From 5337441d971b3c6ee38da22c04916cdefb1d203e Mon Sep 17 00:00:00 2001 From: Fazri Gading Date: Sat, 31 Jan 2026 00:51:24 +0800 Subject: [PATCH] feat: add Indonesian language translation --- GUI/js/i18n.js | 3 +- GUI/locales/id-ID.json | 250 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 252 insertions(+), 1 deletion(-) create mode 100644 GUI/locales/id-ID.json diff --git a/GUI/js/i18n.js b/GUI/js/i18n.js index 2cccd2b..2c4158c 100644 --- a/GUI/js/i18n.js +++ b/GUI/js/i18n.js @@ -11,7 +11,8 @@ const i18n = (() => { { code: 'pt-BR', name: 'Portuguese (Brazil)' }, { code: 'ru-RU', name: 'Russian (Russia)' }, { code: 'sv-SE', name: 'Swedish (Sweden)' }, - { code: 'tr-TR', name: 'Turkish (Turkey)' } + { code: 'tr-TR', name: 'Turkish (Turkey)' }, + { code: 'id-ID', name: 'Indonesian (Indonesia)' } ]; // Load single language file diff --git a/GUI/locales/id-ID.json b/GUI/locales/id-ID.json new file mode 100644 index 0000000..6c2066f --- /dev/null +++ b/GUI/locales/id-ID.json @@ -0,0 +1,250 @@ +{ + "nav": { + "play": "Main", + "mods": "Mod", + "news": "Berita", + "chat": "Obrolan Pemain", + "settings": "Pengaturan" + }, + "header": { + "playersLabel": "Pemain:", + "manageProfiles": "Kelola Profil", + "defaultProfile": "Default" + }, + "install": { + "title": "LAUNCHER GRATIS UNTUK DIMAINKAN", + "playerName": "Nama Pemain", + "playerNamePlaceholder": "Masukkan namamu", + "gameBranch": "Versi Game", + "releaseVersion": "Rilis (Stabil)", + "preReleaseVersion": "Pra-Rilis (Eksperimental)", + "customInstallation": "Instalasi Kustom", + "installationFolder": "Folder Instalasi", + "pathPlaceholder": "Lokasi default", + "browse": "Telusuri", + "installButton": "INSTAL HYTALE", + "installing": "MENGINSTAL..." + }, + "play": { + "ready": "SIAP BERMAIN", + "subtitle": "Luncurkan Hytale dan mulai petualanganmu", + "playButton": "MAIN HYTALE", + "latestNews": "BERITA TERBARU", + "viewAll": "LIHAT SEMUA", + "checking": "MEMERIKSA...", + "play": "MAIN" + }, + "mods": { + "searchPlaceholder": "Cari mod...", + "myMods": "MOD SAYA", + "previous": "SEBELUMNYA", + "next": "BERIKUTNYA", + "page": "Halaman", + "of": "dari", + "modalTitle": "MOD SAYA", + "noModsFound": "Mod Tidak Ditemukan", + "noModsFoundDesc": "Coba sesuaikan pencarianmu", + "noModsInstalled": "Tidak ada Mod Terinstal", + "noModsInstalledDesc": "Tambahkan mod dari CurseForge atau impor file lokal", + "view": "LIHAT", + "install": "INSTAL", + "installed": "TERINSTAL", + "enable": "AKTIFKAN", + "disable": "NONAKTIFKAN", + "active": "AKTIF", + "disabled": "NONAKTIF", + "delete": "Hapus mod", + "noDescription": "Tidak ada deskripsi tersedia", + "confirmDelete": "Apakah kamu yakin ingin menghapus \"{name}\"?", + "confirmDeleteDesc": "Tindakan ini tidak dapat dibatalkan.", + "confirmDeletion": "Konfirmasi Penghapusan", + "apiKeyRequired": "Kunci API Diperlukan", + "apiKeyRequiredDesc": "Kunci API CurseForge diperlukan untuk menelusuri mod" + }, + "news": { + "title": "SEMUA BERITA", + "readMore": "Baca Selengkapnya" + }, + "chat": { + "title": "OBROLAN PEMAIN", + "pickColor": "Warna", + "inputPlaceholder": "Ketik pesanmu...", + "send": "Kirim", + "online": "aktif", + "charCounter": "{current}/{max}", + "secureChat": "Obrolan aman - Tautan disensor", + "joinChat": "Gabung Obrolan", + "chooseUsername": "Pilih nama pengguna untuk bergabung ke Obrolan Pemain", + "username": "Nama Pengguna", + "usernamePlaceholder": "Masukkan nama penggunamu...", + "usernameHint": "3-20 karakter, huruf, angka, - dan _ saja", + "joinButton": "Gabung Obrolan", + "colorModal": { + "title": "Kustomisasi Warna Nama Pengguna", + "chooseSolid": "Pilih warna solid:", + "customColor": "Warna kustom:", + "preview": "Pratinjau:", + "previewUsername": "Nama Pengguna", + "apply": "Terapkan Warna" + } + }, + "settings": { + "title": "PENGATURAN", + "java": "Runtime Java", + "useCustomJava": "Gunakan lokasi Java Kustom", + "javaDescription": "Ganti runtime Java bawaan dengan instalasi milikmu", + "javaPath": "Lokasi Eksekutabel Java", + "javaPathPlaceholder": "Pilih lokasi Java...", + "javaBrowse": "Telusuri", + "javaHint": "Pilih folder instalasi Java (mendukung Windows, Mac, Linux)", + "discord": "Integrasi Discord", + "enableRPC": "Aktifkan Discord Rich Presence", + "discordDescription": "Tampilkan aktivitas launchermu di Discord", + "game": "Opsi Game", + "playerName": "Nama Pemain", + "playerNamePlaceholder": "Masukkan nama pemainmu", + "playerNameHint": "Nama ini akan digunakan di dalam game (1-16 karakter)", + "openGameLocation": "Buka Lokasi Game", + "openGameLocationDesc": "Buka folder instalasi game", + "account": "Manajemen UUID Pemain", + "currentUUID": "UUID Saat Ini", + "uuidPlaceholder": "Memuat UUID...", + "copyUUID": "Salin UUID", + "regenerateUUID": "Regenerasi UUID", + "uuidHint": "Pengidentifikasi pemain unikmu untuk nama pengguna ini", + "manageUUIDs": "Kelola Semua UUID", + "manageUUIDsDesc": "Lihat dan kelola semua UUID pemain", + "language": "Bahasa", + "selectLanguage": "Pilih Bahasa", + "repairGame": "Perbaiki Game", + "reinstallGame": "Instal ulang file game (tetap menyimpan data)", + "gpuPreference": "Preferensi GPU", + "gpuHint": "Fitur khusus laptop; setel ke Terintegrasi jika di PC", + "gpuAuto": "Otomatis", + "gpuIntegrated": "Terintegrasi", + "gpuDedicated": "Terdedikasi", + "logs": "LOG SISTEM", + "logsCopy": "Salin", + "logsRefresh": "Segarkan", + "logsFolder": "Buka Folder", + "logsLoading": "Memuat log...", + "closeLauncher": "Perilaku Launcher", + "closeOnStart": "Tutup launcher saat game dimulai", + "closeOnStartDescription": "Tutup launcher secara otomatis setelah Hytale diluncurkan", + "hwAccel": "Akselerasi Perangkat Keras", + "hwAccelDescription": "Aktifkan akselerasi perangkat keras untuk launcher`", + "gameBranch": "Cabang Game", + "branchRelease": "Rilis", + "branchPreRelease": "Pra-Rilis", + "branchHint": "Beralih antara rilis stabil dan versi pra-rilis eksperimental", + "branchWarning": "Mengubah cabang akan mengunduh dan menginstal versi game yang berbeda", + "branchSwitching": "Beralih ke {branch}...", + "branchSwitched": "Berhasil beralih ke {branch}!", + "installRequired": "Instalasi Diperlukan", + "branchInstallConfirm": "Game akan diinstal untuk cabang {branch}. Lanjutkan?" + }, + "uuid": { + "modalTitle": "Manajemen UUID", + "currentUserUUID": "UUID Pengguna Saat Ini", + "allPlayerUUIDs": "Semua UUID Pemain", + "generateNew": "Hasilkan UUID Baru", + "loadingUUIDs": "Memuat UUID...", + "setCustomUUID": "Setel UUID Kustom", + "customPlaceholder": "Masukkan UUID kustom (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)", + "setUUID": "Setel UUID", + "warning": "Peringatan: Menyetel UUID secara kustom akan mengubah identitas pemainmu saat ini", + "copyTooltip": "Salin UUID", + "regenerateTooltip": "Hasilkan UUID Baru" + }, + "profiles": { + "modalTitle": "Kelola Profil", + "newProfilePlaceholder": "Nama Profil Baru", + "createProfile": "Buat Profil" + }, + "discord": { + "notificationText": "Gabung komunitas Discord kami!", + "joinButton": "Gabung Discord" + }, + "common": { + "confirm": "Konfirmasi", + "cancel": "Batal", + "save": "Simpan", + "close": "Tutup", + "delete": "Hapus", + "edit": "Edit", + "loading": "Memuat...", + "apply": "Terapkan", + "install": "Instal" + }, + "notifications": { + "gameDataNotFound": "Kesalahan: Data game tidak ditemukan", + "gameUpdatedSuccess": "Game berhasil diperbarui! 🎉", + "updateFailed": "Pembaruan gagal: {error}", + "updateError": "Kesalahan pembaruan: {error}", + "discordEnabled": "Discord Rich Presence diaktifkan", + "discordDisabled": "Discord Rich Presence dinonaktifkan", + "discordSaveFailed": "Gagal menyimpan pengaturan Discord", + "playerNameRequired": "Silakan masukkan nama pemain yang valid", + "playerNameSaved": "Nama pemain berhasil disimpan", + "playerNameSaveFailed": "Gagal menyimpan nama pemain", + "uuidCopied": "UUID disalin ke papan klip!", + "uuidCopyFailed": "Gagal menyalin UUID", + "uuidRegenNotAvailable": "Regenerasi UUID tidak tersedia", + "uuidRegenFailed": "Gagal meregenerasi UUID", + "uuidGenerated": "UUID baru berhasil dihasilkan!", + "uuidGeneratedShort": "UUID baru dihasilkan!", + "uuidGenerateFailed": "Gagal menghasilkan UUID baru", + "uuidRequired": "Silakan masukkan UUID", + "uuidInvalidFormat": "Format UUID tidak valid", + "uuidSetFailed": "Gagal menyetel UUID kustom", + "uuidSetSuccess": "UUID kustom berhasil disetel!", + "uuidDeleteFailed": "Gagal menghapus UUID", + "uuidDeleteSuccess": "UUID berhasil dihapus!", + "modsDownloading": "Mengunduh {name}...", + "modsTogglingMod": "Beralih mod...", + "modsDeletingMod": "Menghapus mod...", + "modsLoadingMods": "Memuat mod dari CurseForge...", + "modsInstalledSuccess": "{name} berhasil diinstal! 🎉", + "modsDeletedSuccess": "{name} berhasil dihapus", + "modsDownloadFailed": "Gagal mengunduh mod: {error}", + "modsToggleFailed": "Gagal beralih mod: {error}", + "modsDeleteFailed": "Gagal menghapus mod: {error}", + "modsModNotFound": "Informasi mod tidak ditemukan", + "hwAccelSaved": "Pengaturan akselerasi perangkat keras disimpan", + "hwAccelSaveFailed": "Gagal menyimpan pengaturan akselerasi perangkat keras" + }, + "confirm": { + "defaultTitle": "Konfirmasi tindakan", + "regenerateUuidTitle": "Hasilkan UUID baru", + "regenerateUuidMessage": "Apakah kamu yakin ingin menghasilkan UUID baru? Ini akan mengubah identitas pemainmu.", + "regenerateUuidButton": "Hasilkan", + "setCustomUuidTitle": "Setel UUID kustom", + "setCustomUuidMessage": "Apakah kamu yakin ingin menyetel UUID kustom ini? Ini akan mengubah identitas pemainmu.", + "setCustomUuidButton": "Setel UUID", + "deleteUuidTitle": "Hapus UUID", + "deleteUuidMessage": "Apakah kamu yakin ingin menghapus UUID untuk \"{username}\"? Tindakan ini tidak dapat dibatalkan.", + "deleteUuidButton": "Hapus", + "uninstallGameTitle": "Hapus instalasi game", + "uninstallGameMessage": "Apakah kamu yakin ingin menghapus instalasi Hytale? Semua file game akan dihapus.", + "uninstallGameButton": "Hapus Instalasi" + }, + "progress": { + "initializing": "Menginisialisasi...", + "downloading": "Mengunduh...", + "installing": "Menginstal...", + "extracting": "Mengekstrak...", + "verifying": "Memverifikasi...", + "switchingProfile": "Beralih profil...", + "profileSwitched": "Profil dialihkan!", + "startingGame": "Memulai game...", + "launching": "MELUNCURKAN...", + "uninstallingGame": "Menghapus instalasi game...", + "gameUninstalled": "Instalasi game berhasil dihapus!", + "uninstallFailed": "Penghapusan instalasi gagal: {error}", + "startingUpdate": "Memulai pembaruan game wajib...", + "installationComplete": "Instalasi berhasil diselesaikan!", + "installationFailed": "Instalasi gagal: {error}", + "installingGameFiles": "Menginstal file game...", + "installComplete": "Instalasi selesai!" + } +} \ No newline at end of file