Skip to content

Commit e79ed28

Browse files
committed
feat: add Indonesian localization and improve translations in i18n files
1 parent 6116cde commit e79ed28

2 files changed

Lines changed: 83 additions & 15 deletions

File tree

i18n/i18n.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ const locales: LocaleObject[] = [
2525
name: 'Français',
2626
emoji: '🇫🇷',
2727
},
28+
{
29+
code: 'id-ID',
30+
file: 'id-ID.json',
31+
name: 'Bahasa Indonesia',
32+
emoji: '🇮🇩',
33+
},
2834
{
2935
code: 'it-IT',
3036
file: 'it-IT.json',

i18n/locales/id-ID.json

Lines changed: 77 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"common": {
3-
"i18n": "Multi Bahasa",
3+
"i18n": "Multibahasa",
44
"abbreviations": "Id",
55
"current_language": "Bahasa Indonesia",
66
"try_again": "Coba lagi",
@@ -36,7 +36,7 @@
3636
},
3737
"layouts": {
3838
"footer": {
39-
"copyright": "Produk dari HTML.ZONE",
39+
"copyright": "Sebuah produk dari HTML.ZONE",
4040
"social": {
4141
"email": "Email",
4242
"telegram": "Telegram",
@@ -62,7 +62,7 @@
6262
"settings": "Pengaturan",
6363
"import": "Impor",
6464
"export": "Ekspor",
65-
"coffee": "Traktir kopi",
65+
"coffee": "Traktir Kopi",
6666
"github": "GitHub",
6767
"stars": "Bintang",
6868
"update": "Versi baru {version} tersedia (saat ini: {current})"
@@ -83,7 +83,7 @@
8383
"description": "Pantau analitik tautan dan kumpulkan statistik"
8484
},
8585
"serverless": {
86-
"title": "Tanpa Server",
86+
"title": "Serverless",
8787
"description": "Deploy tanpa perlu server tradisional"
8888
},
8989
"customizable_slug": {
@@ -99,16 +99,16 @@
9999
"description": "Atur tanggal kedaluwarsa untuk tautan"
100100
},
101101
"device_routing": {
102-
"title": "Routing Perangkat",
103-
"description": "Alihkan pengguna iOS/Android ke App Store"
102+
"title": "Pengalihan Perangkat",
103+
"description": "Alihkan pengguna iOS/Android ke tautan App Store"
104104
},
105105
"og_preview": {
106106
"title": "Pratinjau Sosial",
107107
"description": "Pratinjau OpenGraph khusus untuk media sosial"
108108
},
109109
"realtime_analytics": {
110110
"title": "Analitik Real-time",
111-
"description": "Globe 3D langsung dan log event real-time"
111+
"description": "Globe 3D langsung dan log peristiwa real-time"
112112
},
113113
"qr_code": {
114114
"title": "Kode QR",
@@ -119,7 +119,7 @@
119119
"description": "Migrasi massal melalui file JSON"
120120
},
121121
"multi_language": {
122-
"title": "Multi Bahasa",
122+
"title": "Multibahasa",
123123
"description": "Dukungan penuh i18n untuk dashboard"
124124
}
125125
},
@@ -236,20 +236,39 @@
236236
"link_settings": "Pengaturan Tautan",
237237
"redirect_with_query_label": "Redirect dengan Parameter Query",
238238
"redirect_with_query_description": "Tambahkan parameter query ke URL tujuan.",
239-
"cloaking_label": "Aktifkan Cloaking",
240-
"cloaking_description": "Menampilkan link pendek di address bar.",
239+
"cloaking_label": "Aktifkan Cloaking Tautan",
240+
"cloaking_description": "Tampilkan tautan pendek di bilah alamat browser, bukan URL tujuan. Mungkin tidak berfungsi pada situs yang memblokir penyematan iframe.",
241241
"unsafe_label": "Tandai Tidak Aman",
242-
"unsafe_description": "Tampilkan peringatan sebelum redirect.",
243-
"password_label": "Proteksi Password",
244-
"password_description": "Wajibkan password untuk akses.",
245-
"password_placeholder": "Kosongkan untuk nonaktif",
242+
"unsafe_description": "Tampilkan halaman peringatan sebelum mengalihkan. Pengunjung harus mengonfirmasi untuk melanjutkan.",
243+
"password_label": "Proteksi Kata Sandi",
244+
"password_description": "Wajibkan kata sandi untuk mengakses tautan pendek ini.",
245+
"password_placeholder": "Kosongkan untuk menonaktifkan",
246246
"og_settings": "Pengaturan OpenGraph",
247247
"og_title": "Judul",
248+
"og_title_placeholder": "Kosongkan untuk menggunakan nama host URL",
248249
"og_description": "Deskripsi",
250+
"og_description_placeholder": "Deskripsi tautan",
249251
"og_image": "Gambar",
250252
"advanced": "Lanjutan",
251253
"more_options": "Opsi Tambahan",
252-
"slug_required": "Masukkan slug terlebih dahulu"
254+
"image_invalid_type": "Harap unggah file gambar",
255+
"image_size_limit": "Ukuran gambar tidak boleh melebihi 5MB",
256+
"image_upload_success": "Gambar berhasil diunggah",
257+
"image_upload_failed": "Gagal mengunggah gambar",
258+
"image_upload_hint": "Klik atau seret untuk mengunggah gambar",
259+
"image_ratio_hint": "Disarankan: 1200×630",
260+
"slug_required": "Masukkan slug terlebih dahulu",
261+
"utm_builder": "Pembuat UTM",
262+
"utm_description": "Buat parameter UTM secara lokal dan tambahkan ke URL tujuan.",
263+
"utm_preview": "Pratinjau",
264+
"utm_source": "Sumber UTM",
265+
"utm_medium": "Media UTM",
266+
"utm_campaign": "Kampanye UTM",
267+
"utm_term": "Istilah UTM",
268+
"utm_content": "Konten UTM",
269+
"utm_apply": "Terapkan",
270+
"utm_clear": "Bersihkan",
271+
"utm_invalid_url": "Masukkan URL valid untuk melihat pratinjau dan menerapkan parameter UTM."
253272
},
254273
"sort": {
255274
"newest": "Terbaru",
@@ -261,5 +280,48 @@
261280
"update_failed": "Gagal memperbarui tautan",
262281
"create_failed": "Gagal membuat tautan",
263282
"ai_slug_failed": "Gagal membuat slug AI"
283+
},
284+
"migrate": {
285+
"backup": {
286+
"title": "Cadangan Manual",
287+
"description": "Picu pencadangan manual semua tautan ke bucket R2 yang dikonfigurasi",
288+
"button": "Mulai Pencadangan",
289+
"backing_up": "Mencadangkan...",
290+
"success": "Pencadangan berhasil",
291+
"failed": "Pencadangan gagal"
292+
},
293+
"export": {
294+
"title": "Ekspor Tautan",
295+
"description": "Unduh semua tautan Anda sebagai file JSON",
296+
"button": "Ekspor Semua",
297+
"total_links": "Total tautan",
298+
"success": "Ekspor berhasil",
299+
"failed": "Ekspor gagal"
300+
},
301+
"import": {
302+
"title": "Impor Tautan",
303+
"description": "Unggah file JSON untuk mengimpor tautan",
304+
"dropzone": "Jatuhkan file JSON di sini atau klik untuk mengunggah",
305+
"links_found": "tautan ditemukan",
306+
"button": "Mulai Impor",
307+
"importing": "Mengimpor...",
308+
"import_more": "Impor Lagi",
309+
"download_success": "Unduh Item Berhasil",
310+
"download_skipped": "Unduh Item Dilewati",
311+
"download_failed": "Unduh Item Gagal",
312+
"result": {
313+
"title": "Hasil Impor",
314+
"success": "Berhasil diimpor",
315+
"skipped": "Dilewati (sudah ada)",
316+
"failed": "Gagal",
317+
"success_message": "{count} tautan berhasil diimpor"
318+
},
319+
"errors": {
320+
"invalid_json": "File JSON tidak valid",
321+
"invalid_format": "Format file tidak valid. Gunakan file yang diekspor dari Sink.",
322+
"no_links": "Tidak ada tautan yang ditemukan dalam file",
323+
"parse_error": "Gagal mengurai file"
324+
}
325+
}
264326
}
265327
}

0 commit comments

Comments
 (0)