feat(i18n): add Indonesian locale (#30134)
Co-authored-by: khidhir-ziyan <khdihirziyan@gmail.com> Co-authored-by: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com>
This commit is contained in:
co-authored by
khidhir-ziyan
Bandhan Majumder
parent
39c96bc04d
commit
b0a34f21c9
@@ -1,4 +1,47 @@
|
||||
{
|
||||
"apply_to_all": "Terapkan ke semua",
|
||||
"identity_provider": "Penyedia identitas",
|
||||
"untitled": "Tanpa judul",
|
||||
"invalid_characters_in_name": "Hanya huruf, angka, spasi, dan tanda baca yang didukung yang diperbolehkan.",
|
||||
"max_characters": "Maks. karakter",
|
||||
"min_characters": "Min. karakter",
|
||||
"min_characters_required": "Diperlukan minimal {{count}} karakter",
|
||||
"max_characters_allowed": "Maksimal {{count}} karakter diperbolehkan",
|
||||
"verify_email_subject": "{{appName}}: Verifikasi akun Anda",
|
||||
"verify_email_subject_verifying_email": "{{appName}}: Verifikasi email Anda",
|
||||
"verify_email_subject_no_branding": "Verifikasi email Anda",
|
||||
"check_your_email": "Periksa email Anda",
|
||||
"old_email_address": "Email lama",
|
||||
"new_email_address": "Email baru",
|
||||
"verify_email_page_body": "Kami telah mengirim email ke {{email}}. Verifikasi alamat email Anda untuk memastikan pengiriman email dan sinkronisasi kalender terbaik dari {{appName}}.",
|
||||
"verify_email_banner_body": "Verifikasi alamat email Anda untuk memastikan pengiriman email dan sinkronisasi kalender terbaik",
|
||||
"verify_email_email_header": "Verifikasi alamat email Anda",
|
||||
"verify_email_button": "Verifikasi email",
|
||||
"verify_email_email_body": "Silakan verifikasi alamat email Anda dengan mengeklik tombol di bawah.",
|
||||
"verify_email_by_code_email_body": "Silakan verifikasi alamat email Anda menggunakan kode di bawah.",
|
||||
"verify_email_email_link_text": "Berikut tautannya jika Anda tidak ingin mengeklik tombol:",
|
||||
"email_verification_code": "Masukkan kode verifikasi",
|
||||
"email_verification_code_placeholder": "Masukkan kode verifikasi yang dikirim ke email Anda",
|
||||
"incorrect_email_verification_code": "Kode verifikasi salah.",
|
||||
"email_sent": "Email berhasil dikirim",
|
||||
"email_not_sent": "Terjadi kesalahan saat mengirim email",
|
||||
"event_cancelled_subject": "Dibatalkan: {{title}} pada {{date}}",
|
||||
"event_reassigned_subject": "Dialihkan: {{title}} pada {{date}}",
|
||||
"reassigned_to": "Dialihkan kepada",
|
||||
"you_can_view_booking_details_with_this_url": "Anda dapat melihat detail pemesanan melalui URL ini {{url}} dan menambahkan acara ke kalender Anda",
|
||||
"no_options_available": "Tidak ada opsi yang tersedia",
|
||||
"cancellation_reason_optional_label": "Alasan pembatalan (opsional)",
|
||||
"cancelled_by": "Dibatalkan oleh",
|
||||
"notify_attendee_cancellation_reason_warning": "Alasan pembatalan akan dibagikan kepada tamu",
|
||||
"rejection_reason_placeholder": "Mengapa Anda menolak pemesanan ini?",
|
||||
"report_reason_spam": "Spam atau pemesanan yang tidak diinginkan",
|
||||
"report_reason_dont_know_person": "Saya tidak mengenal orang ini",
|
||||
"report_reason_other": "Lainnya",
|
||||
"cancel_booking_when_reporting": "Batalkan pemesanan ini",
|
||||
"submit_report": "Kirim laporan",
|
||||
"report_booking_description_placeholder": "Berikan detail tambahan tentang alasan Anda melaporkan pemesanan ini (opsional)",
|
||||
"invite_team_individual_segment": "Undang satu per satu",
|
||||
"invite_team_bulk_segment": "Impor massal",
|
||||
"trial_days_left": "Tersisa $t(day, {\"count\": {{days}} }) di akun PRO kamu",
|
||||
"day_one": "{{count}} hari",
|
||||
"day_other": "{{count}} hari",
|
||||
@@ -128,7 +171,7 @@
|
||||
"no_account_exists": "Tidak ada akun dengan email tersebut.",
|
||||
"need_help": "Butuh bantuan?",
|
||||
"email_team_invite|subject|invited_to_regular_team": "{{user}} mengundangmu untuk bergabung ke tim {{team}} di {{appName}}",
|
||||
"signing_up_terms": "Dengan melanjutkan, Anda menyetujui <0>Persyaratan</0> dan <1>Kebijakan Privasi</1> kami.",
|
||||
"signing_up_terms": "Dengan melanjutkan, Anda menyetujui <0>Persyaratan</0> dan <1>Kebijakan Privasi</1> {{appName}}.",
|
||||
"multiple_duration_timeUnit_short": "{{count}}$t({{unit}}_short)",
|
||||
"minute_short": "menit",
|
||||
"hour_short": "jam",
|
||||
@@ -143,7 +186,7 @@
|
||||
"ooo_reasons_travel": "Perjalanan",
|
||||
"ooo_reasons_sick_leave": "Izin sakit",
|
||||
"ooo_reasons_public_holiday": "Hari libur umum",
|
||||
"ooo_forwarding_to": "Dialihkan ke {{username}}",
|
||||
"ooo_forwarding_to": "Dialihkan ke <0>{{username}}</0>",
|
||||
"ooo_not_forwarding": "Tidak ada pengalihan",
|
||||
"ooo_empty_title": "Buat OOO",
|
||||
"ooo_empty_description": "Beri tahu pemesan Anda ketika Anda tidak tersedia untuk menerima pemesanan. Mereka masih dapat memesan Anda saat Anda kembali atau Anda dapat mengalihkan mereka ke anggota tim.",
|
||||
|
||||
@@ -49,4 +49,20 @@ describe("@calcom/i18n/next-i18next.config", () => {
|
||||
expect(typeof enTranslations).toBe("object");
|
||||
expect(Object.keys(enTranslations).length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("Indonesian translations preserve interpolation and rich-text tokens", () => {
|
||||
const enTranslations = JSON.parse(
|
||||
fs.readFileSync(path.join(config.localePath, "en", "common.json"), "utf-8")
|
||||
);
|
||||
const idTranslations = JSON.parse(
|
||||
fs.readFileSync(path.join(config.localePath, "id", "common.json"), "utf-8")
|
||||
);
|
||||
const tokenPattern = /\{\{[^}]+\}\}|<\/?\d+>|\$t\([^)]*\)/g;
|
||||
const tokens = (value: string): string[] => (value.match(tokenPattern) ?? []).sort();
|
||||
|
||||
for (const [key, translation] of Object.entries(idTranslations)) {
|
||||
if (typeof enTranslations[key] !== "string" || typeof translation !== "string") continue;
|
||||
expect(tokens(translation), key).toEqual(tokens(enTranslations[key]));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user