Update localization

This commit is contained in:
Andrie
2026-06-05 13:19:40 +07:00
parent e693fa3843
commit 5dc770dfe3
3 changed files with 36 additions and 18 deletions
+4 -4
View File
@@ -1249,8 +1249,8 @@
<div id="stat-total-ach" <div id="stat-total-ach"
style="font-size:clamp(2rem,4.5vw,4rem);font-weight:900;color:#003150;line-height:1;font-family:'Roboto Condensed',sans-serif;"> style="font-size:clamp(2rem,4.5vw,4rem);font-weight:900;color:#003150;line-height:1;font-family:'Roboto Condensed',sans-serif;">
0</div> 0</div>
<div style="font-size:clamp(0.5rem,1.2vw,0.85rem);font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:#003150;margin-top:0.5rem;line-height:1.3;word-break:break-word;"> <div style="font-size:clamp(0.5rem,1.2vw,0.85rem);font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:#003150;margin-top:0.5rem;line-height:1.3;word-break:break-word;"
Prestasi<br>Mahasiswa</div> data-i18n="grp_acaab_stats_label_ach">Prestasi<br>Mahasiswa</div>
</div> </div>
<!-- Internasional --> <!-- Internasional -->
<div style="flex:1;text-align:center;padding:0 0.15rem;"> <div style="flex:1;text-align:center;padding:0 0.15rem;">
@@ -1291,8 +1291,8 @@
<div id="stat-total-proj" <div id="stat-total-proj"
style="font-size:clamp(2rem,4.5vw,4rem);font-weight:900;color:#003150;line-height:1;font-family:'Roboto Condensed',sans-serif;"> style="font-size:clamp(2rem,4.5vw,4rem);font-weight:900;color:#003150;line-height:1;font-family:'Roboto Condensed',sans-serif;">
0</div> 0</div>
<div style="font-size:clamp(0.5rem,1.2vw,0.85rem);font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:#003150;margin-top:0.5rem;line-height:1.3;word-break:break-word;"> <div style="font-size:clamp(0.5rem,1.2vw,0.85rem);font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:#003150;margin-top:0.5rem;line-height:1.3;word-break:break-word;"
Proyek<br>Mahasiswa</div> data-i18n="grp_acaab_stats_label_proj">Proyek<br>Mahasiswa</div>
</div> </div>
</div> </div>
</div> </div>
+18
View File
@@ -48,6 +48,15 @@
grp_acaab_modal_visit: "Kunjungi Proyek", grp_acaab_modal_visit: "Kunjungi Proyek",
grp_acaab_modal_read_more: "Selengkapnya", grp_acaab_modal_read_more: "Selengkapnya",
grp_acaab_modal_no_link: "Link tidak tersedia", grp_acaab_modal_no_link: "Link tidak tersedia",
grp_acaab_stats_label_ach: "Prestasi Mahasiswa",
grp_acaab_stats_label_proj: "Proyek Mahasiswa",
grp_acaab_modal_year: "Tahun",
grp_acaab_modal_competition: "Kompetisi",
grp_acaab_modal_field: "Bidang",
grp_acaab_modal_description: "Deskripsi",
grp_acaab_modal_close: "Tutup",
grp_acaab_modal_note: "Catatan Tambahan",
grp_acaab_modal_batch_prefix: "Angkatan",
grp_acaab_cta_badge: "HUBUNGI KAMI", grp_acaab_cta_badge: "HUBUNGI KAMI",
grp_acaab_cta_title: "Ingin Tahu Lebih Lanjut?", grp_acaab_cta_title: "Ingin Tahu Lebih Lanjut?",
grp_acaab_cta_desc: "Tertarik bergabung dengan Program Studi Informatika UNTAN, mendaftarkan prestasi mahasiswa, atau menjalin kerja sama? Hubungi kami sekarang.", grp_acaab_cta_desc: "Tertarik bergabung dengan Program Studi Informatika UNTAN, mendaftarkan prestasi mahasiswa, atau menjalin kerja sama? Hubungi kami sekarang.",
@@ -93,6 +102,15 @@
grp_acaab_modal_visit: "Visit Project", grp_acaab_modal_visit: "Visit Project",
grp_acaab_modal_read_more: "Read More", grp_acaab_modal_read_more: "Read More",
grp_acaab_modal_no_link: "Link not available", grp_acaab_modal_no_link: "Link not available",
grp_acaab_stats_label_ach: "Student Achievements",
grp_acaab_stats_label_proj: "Student Projects",
grp_acaab_modal_year: "Year",
grp_acaab_modal_competition: "Competition",
grp_acaab_modal_field: "Field",
grp_acaab_modal_description: "Description",
grp_acaab_modal_close: "Close",
grp_acaab_modal_note: "Additional Notes",
grp_acaab_modal_batch_prefix: "Batch",
grp_acaab_cta_badge: "CONTACT US", grp_acaab_cta_badge: "CONTACT US",
grp_acaab_cta_title: "Want to Know More?", grp_acaab_cta_title: "Want to Know More?",
grp_acaab_cta_desc: "Interested in joining the Informatics Study Program at UNTAN, registering a student achievement, or establishing a partnership? Contact us now.", grp_acaab_cta_desc: "Interested in joining the Informatics Study Program at UNTAN, registering a student achievement, or establishing a partnership? Contact us now.",
+14 -14
View File
@@ -99,7 +99,7 @@ function transformAchievement(item) {
id, title, category, competition, rank, year, level, description, id, title, category, competition, rank, year, level, description,
team, team,
nim: item.nim || '', nim: item.nim || '',
generation: item.angkatan ? `Angkatan ${item.angkatan}` : 'Informatika', generation: item.angkatan ? `${t('grp_acaab_modal_batch_prefix')} ${item.angkatan}` : 'Informatika',
image: getImageUrl(item, `prestasi-${id}`), image: getImageUrl(item, `prestasi-${id}`),
avatar, avatar,
members: anggota.map(m => ({ nama: m.nama || '', angkatan: m.angkatan ? parseInt(m.angkatan) : undefined })), members: anggota.map(m => ({ nama: m.nama || '', angkatan: m.angkatan ? parseInt(m.angkatan) : undefined })),
@@ -489,9 +489,9 @@ function memberItem(nama, sub) {
function openAchModal(a) { function openAchModal(a) {
const membersHtml = a.members && a.members.length > 0 ? ` const membersHtml = a.members && a.members.length > 0 ? `
<div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1rem;"> <div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1rem;">
<p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">Anggota Tim</p> <p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">${t('grp_acaab_modal_members')}</p>
<ul style="list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;"> <ul style="list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;">
${a.members.map(m => memberItem(m.nama, m.angkatan ? `Angkatan ${m.angkatan}` : '')).join('')} ${a.members.map(m => memberItem(m.nama, m.angkatan ? `${t('grp_acaab_modal_batch_prefix')} ${m.angkatan}` : '')).join('')}
</ul> </ul>
</div>` : ''; </div>` : '';
@@ -525,19 +525,19 @@ function openAchModal(a) {
${infoRow('users', t('grp_acaab_modal_team'), a.team)} ${infoRow('users', t('grp_acaab_modal_team'), a.team)}
${a.nim ? infoRow('id-card', 'NIM', a.nim) : ''} ${a.nim ? infoRow('id-card', 'NIM', a.nim) : ''}
${infoRow('user-graduate', t('grp_acaab_modal_generation'), a.generation)} ${infoRow('user-graduate', t('grp_acaab_modal_generation'), a.generation)}
${infoRow('calendar-alt', 'Tahun', String(a.year))} ${infoRow('calendar-alt', t('grp_acaab_modal_year'), String(a.year))}
${infoRow('award', 'Kompetisi', a.competition)} ${infoRow('award', t('grp_acaab_modal_competition'), a.competition)}
${infoRow('tag', 'Bidang', a.category)} ${infoRow('tag', t('grp_acaab_modal_field'), a.category)}
</div> </div>
${membersHtml} ${membersHtml}
<!-- Description --> <!-- Description -->
<div style="border-top:1px solid #f1f5f9;padding-top:1rem;"> <div style="border-top:1px solid #f1f5f9;padding-top:1rem;">
<p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">Deskripsi</p> <p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">${t('grp_acaab_modal_description')}</p>
<p style="color:#475569;font-size:0.875rem;line-height:1.65;margin:0;">${escHtml(a.description)}</p> <p style="color:#475569;font-size:0.875rem;line-height:1.65;margin:0;">${escHtml(a.description)}</p>
</div> </div>
<!-- Close button full-width --> <!-- Close button full-width -->
<button id="acaab-modal-close-btn" style="margin-top:1.5rem;width:100%;padding:0.75rem;background:#003150;color:white;font-weight:700;border:none;border-radius:0.5rem;cursor:pointer;font-size:0.875rem;"> <button id="acaab-modal-close-btn" style="margin-top:1.5rem;width:100%;padding:0.75rem;background:#003150;color:white;font-weight:700;border:none;border-radius:0.5rem;cursor:pointer;font-size:0.875rem;">
Tutup ${t('grp_acaab_modal_close')}
</button> </button>
</div> </div>
`, true); `, true);
@@ -714,7 +714,7 @@ function bindProjEvents() {
function openProjModal(p) { function openProjModal(p) {
const membersHtml = p.members && p.members.length > 0 ? ` const membersHtml = p.members && p.members.length > 0 ? `
<div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1rem;"> <div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1rem;">
<p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">Anggota Tim</p> <p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">${t('grp_acaab_modal_members')}</p>
<ul style="list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;"> <ul style="list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;">
${p.members.map(m => memberItem(m.nama, m.nim || '')).join('')} ${p.members.map(m => memberItem(m.nama, m.nim || '')).join('')}
</ul> </ul>
@@ -755,24 +755,24 @@ function openProjModal(p) {
<div style="display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;background:#f8fafc;border-radius:0.5rem;margin-bottom:1.25rem;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;background:#f8fafc;border-radius:0.5rem;margin-bottom:1.25rem;">
${p.studentName ? infoRow('users', t('grp_acaab_modal_team'), p.studentName) : ''} ${p.studentName ? infoRow('users', t('grp_acaab_modal_team'), p.studentName) : ''}
${p.nim ? infoRow('id-card', 'NIM', p.nim) : ''} ${p.nim ? infoRow('id-card', 'NIM', p.nim) : ''}
${infoRow('calendar-alt', 'Tahun', String(p.year))} ${infoRow('calendar-alt', t('grp_acaab_modal_year'), String(p.year))}
${infoRow('tag', 'Bidang', p.categories.join(', '))} ${infoRow('tag', t('grp_acaab_modal_field'), p.categories.join(', '))}
</div> </div>
${membersHtml} ${membersHtml}
<!-- Description --> <!-- Description -->
<div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1.25rem;"> <div style="border-top:1px solid #f1f5f9;padding-top:1rem;margin-bottom:1.25rem;">
<p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">Deskripsi</p> <p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin:0 0 0.5rem;">${t('grp_acaab_modal_description')}</p>
<p style="color:#475569;font-size:0.875rem;line-height:1.65;margin:0;">${escHtml(p.description)}</p> <p style="color:#475569;font-size:0.875rem;line-height:1.65;margin:0;">${escHtml(p.description)}</p>
${p.catatan ? ` ${p.catatan ? `
<div style="margin-top:1rem;padding:0.75rem;background:rgba(239,246,255,0.5);border:1px solid #bfdbfe;border-radius:0.5rem;"> <div style="margin-top:1rem;padding:0.75rem;background:rgba(239,246,255,0.5);border:1px solid #bfdbfe;border-radius:0.5rem;">
<p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;color:#93c5fd;margin:0 0 0.25rem;">Catatan Tambahan</p> <p style="font-size:0.6rem;font-weight:700;text-transform:uppercase;color:#93c5fd;margin:0 0 0.25rem;">${t('grp_acaab_modal_note')}</p>
<p style="font-size:0.875rem;color:#475569;font-style:italic;margin:0;">${escHtml(p.catatan)}</p> <p style="font-size:0.875rem;color:#475569;font-style:italic;margin:0;">${escHtml(p.catatan)}</p>
</div>` : ''} </div>` : ''}
</div> </div>
<!-- Link + close buttons --> <!-- Link + close buttons -->
${linkSection} ${linkSection}
<button id="acaab-modal-close-btn" style="width:100%;padding:0.625rem;border:2px solid #e2e8f0;color:#475569;font-weight:700;background:white;border-radius:0.5rem;cursor:pointer;font-size:0.875rem;transition:border-color 0.2s,background 0.2s;"> <button id="acaab-modal-close-btn" style="width:100%;padding:0.625rem;border:2px solid #e2e8f0;color:#475569;font-weight:700;background:white;border-radius:0.5rem;cursor:pointer;font-size:0.875rem;transition:border-color 0.2s,background 0.2s;">
Tutup ${t('grp_acaab_modal_close')}
</button> </button>
</div> </div>
`, true); `, true);