feat: bahasa indonesia translation (#1007)

This commit is contained in:
Yoga Ardiansyah
2025-02-27 15:29:31 +07:00
committed by GitHub
parent edd7689887
commit cbbd187214
9 changed files with 253 additions and 4 deletions

View File

@@ -131,6 +131,7 @@ UpSnap is available in the following languages so far:
- 🇩🇪 **German** (de-DE)
- 🇪🇸 **Spanish** (es-ES)
- 🇫🇷 **French** (fr-FR)
- ID **Bahasa Indonesia** (id-ID)
- 🇮🇹 **Italian** (it-IT)
- 🇯🇵 **Japanese** (ja-JP)
- 🇳🇱 **Dutch** (nl-NL)

View File

@@ -1,6 +1,5 @@
// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten.
import { initI18nSvelte } from 'typesafe-i18n/svelte';
import type { Formatters, Locales, TranslationFunctions, Translations } from './i18n-types';
import { loadedFormatters, loadedLocales } from './i18n-util';

View File

@@ -18,6 +18,8 @@ export type Locales =
| 'es-ES'
| 'fr'
| 'fr-FR'
| 'id'
| 'id-ID'
| 'it'
| 'it-IT'
| 'ja'

View File

@@ -1,6 +1,5 @@
// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten.
import { initFormatters } from './formatters';
import type { Locales, Translations } from './i18n-types';
import { loadedFormatters, loadedLocales, locales } from './i18n-util';
@@ -14,6 +13,8 @@ const localeTranslationLoaders = {
'es-ES': () => import('./es-ES'),
fr: () => import('./fr'),
'fr-FR': () => import('./fr-FR'),
id: () => import('./id'),
'id-ID': () => import('./id-ID'),
it: () => import('./it'),
'it-IT': () => import('./it-IT'),
ja: () => import('./ja'),

View File

@@ -1,6 +1,5 @@
// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten.
import { initFormatters } from './formatters';
import type { Locales, Translations } from './i18n-types';
import { loadedFormatters, loadedLocales, locales } from './i18n-util';
@@ -13,6 +12,8 @@ import es from './es';
import es_ES from './es-ES';
import fr from './fr';
import fr_FR from './fr-FR';
import id from './id';
import id_ID from './id-ID';
import it from './it';
import it_IT from './it-IT';
import ja from './ja';
@@ -36,6 +37,8 @@ const localeTranslations = {
'es-ES': es_ES,
fr,
'fr-FR': fr_FR,
id,
'id-ID': id_ID,
it,
'it-IT': it_IT,
ja,

View File

@@ -1,6 +1,5 @@
// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten.
import {
i18n as initI18n,
i18nObject as initI18nObject,
@@ -23,6 +22,8 @@ export const locales: Locales[] = [
'es-ES',
'fr',
'fr-FR',
'id',
'id-ID',
'it',
'it-IT',
'ja',

View File

@@ -0,0 +1,8 @@
import id from '../id';
import type { Translation } from '../i18n-types';
const id_ID = {
...(id as unknown as Translation)
} satisfies Translation;
export default id_ID;

View File

@@ -0,0 +1,232 @@
import en from '../en';
import type { Translation } from '../i18n-types';
const id = {
...(en as unknown as Translation),
home: {
page_title: 'Beranda',
order_groups: 'Grup',
order_name: 'Nama',
order_ip: 'IP',
order_tooltip: 'Urutan',
no_devices: 'Tidak ada perangkat terdeteksi.',
add_first_device: 'Tambahkan perangkat pertama Anda',
grant_permissions:
'Mohon minta admin untuk memberikan izin ke perangkat yang sudah ada atau membuat perangkat baru.',
search_placeholder: 'Mencari perangkat'
},
account: {
page_title: 'Akun',
account_type_admin: 'Admin',
account_type_user: 'Pengguna',
avatar_title: 'Personifikasi',
language_title: 'Bahasa',
language_option_auto: 'Otomatis',
change_password_title: 'Ubah kata sandi',
change_password_body: 'Setelah kata sandi diubah, Anda harus masuk kembali.',
change_password_label: 'Kata sandi lama',
change_password_new: 'Kata sandi baru',
change_password_confirm: 'Konfirmasi kata sandi'
},
device: {
page_title: 'Perangkat Baru',
tabs: ['Manual', 'Pindai Jaringan'],
card_btn_more: 'Lainnya',
card_btn_more_edit: 'Ubah',
card_btn_more_sleep: 'Tidur',
card_btn_more_reboot: 'Mulai ulang',
card_tooltip_wake_cron: 'Jadwal Bangun',
card_tooltip_shutdown_cron: 'Jadwal Mati',
card_tooltip_wake_password: 'Kata sandi bangun',
card_tooltip_last_status_change: 'Status perubahan terakhir',
card_password: 'Kata Sandi',
card_nic_tooltip_pending: 'Tertunda',
card_nic_tooltip_shutdown: 'Matikan',
card_nic_tooltip_shutdown_no_cmd: 'Tidak ada perintah mematikan yang diatur',
card_nic_tooltip_shutdown_no_permission: 'Tidak ada izin untuk mematikan perangkat ini',
card_nic_tooltip_power: 'Nyalakan',
card_nic_tooltip_power_no_permission: 'Tidak ada izin untuk menyalakan perangkat ini',
modal_confirm_wake_title: 'Bangunkan {device}?',
modal_confirm_wake_desc: 'Harap konfirmasi untuk membangunkan {device}.',
modal_confirm_shutdown_title: 'Matikan {device}?',
modal_confirm_shutdown_desc: 'Harap konfirmasi untuk mematikan {device}.',
general: 'Umum',
general_name: 'Nama',
general_ip: 'IP',
general_mac: 'Mac',
general_netmask: 'Netmask',
general_description: 'Deskripsi',
general_description_placeholder: 'Deskripsi perangkat ini',
general_required_field: 'wajib diisi',
ports: 'Port',
ports_desc: 'UpSnap juga dapat memeriksa apakah port tertentu terbuka.',
ports_add_new: 'Tambahkan port baru',
ports_name: 'Nama',
ports_number: 'Nomor',
link: 'Tautan',
link_desc:
'Membuat nama perangkat Anda menjadi tautan yang dapat diklik, contohnya untuk menghubungkan ke dasbor.',
link_open: 'Buka tautan secara otomatis',
link_open_no: 'Tidak',
link_open_same_tab: 'Tab yang sama',
link_open_new_tab: 'Tab baru',
ping: 'Ping',
ping_desc:
'Anda dapat menggunakan perintah shell khusus untuk melihat apakah perangkat menyala. Perintah harus mengembalikan kode keluar <span class="badge">0</span> untuk menunjukkan bahwa perangkat menyala, Selain kode tadi menandakan bahwa perangkat mati.',
ping_cmd: 'Perintah ping khusus',
wake: 'Bangunkan',
wake_desc: 'Anda dapat menyalakan perangkat ini menggunakan tugas penjadwalan.',
wake_cmd: 'Perintah bangunkan khusus',
wake_cron: 'Jadwal Bangun',
wake_cron_enable: 'Aktifkan jadwal bangun',
sol: 'Sleep-On-LAN',
sol_desc1:
'Anda dapat membuat tidur komputer menggunakan alat <a class="link" href="https://github.com/SR-G/sleep-on-lan" target="_blank">Sleep-On-LAN</a>. Sleep-On-LAN (SOL) merupakan alat/daemon eksternal yang berjalan di PC yang ingin Anda tidurkan, dengan menyediakan REST endpoint. Untuk instruksi pemasangan Sleep-On-LAN, silakan merujuk ke bagian <a href="https://github.com/SR-G/sleep-on-lan#usage" class="link" target="_blank">Penggunaan</a>.',
sol_desc2:
'SOL dikonfigurasi untuk mengirim permintaan melalui HTTP, bukan UDP, guna memungkinkan otorisasi dan membuat permintaan lebih andal.',
sol_desc3:
'Oleh karena itu, pastikan Anda menyertakan <span class="badge">HTTP:&lt;YOURPORT&gt;</span> dalam bagian <span class="badge">Listeners</span> dari <a href="https://github.com/SR-G/sleep-on-lan#configuration" class="link" target="_blank">SOL configuration</a>.',
sol_enable: 'Aktifkan Sleep-On-LAN',
sol_port: 'Port SOL',
sol_authorization: 'Otorisasi',
sol_user: 'Pengguna SOL',
sol_password: 'Kata sandi SOL',
shutdown: 'Matikan',
shutdown_desc:
'Perintah <strong>shell command</strong> ini akan berjalan dalam kontainer (jika menggunakan doker) atau di host Anda (jika menggunakan binary). Untuk memastikan ini berfungsi, Anda dapat menjalankan perintah di dalam kontainer atau di shell host terlebih dahulu. Perintah umum meliputi <span class="badge">net rpc</span> untuk windows, <span class="badge">sshpass</span> untuk linux atau <span class="badge">curl</span> untuk permintaan web secara umum.',
shutdown_examples: 'Contoh:',
shutdown_examples_windows: 'Mematikan Windows jarak jauh:',
shutdown_examples_linux: 'Mematikan Linux jarak jauh:',
shutdown_cmd: 'Perintah mematikan',
shutdown_cron_desc:
'Sama seperti mengatur penjadwalan untuk menyalakan perangkat, Anda juga dapat mengatur tugas penjadwal untuk mematikan perangkat ini.',
shutdown_cron: 'Mematikan tugas penjadwalan',
shutdown_cron_enable: 'Menyalakan tugas penjadwalan',
password: 'Kata sandi',
password_desc:
'Beberapa kartu jaringan memiliki opsi untuk mengatur kata sandi untuk paket ajaib, juga disebut <span class="badge">SecureON</span>. Kata sandi hanya dapat memiliki panjang 0, 4, atau 6 karakter.',
groups: 'Grup',
groups_desc:
'Anda dapat menambahkan perangkat ke dalam grup agar ditampilkan secara terorganisir di dasbor.',
groups_placeholder: "Contoh: 'Ruang Bawah Tanah' atau 'Kantor'",
network_scan_range_saved: 'Rentang pemindaian disimpan',
network_scan_desc:
'Pindai jaringan Anda secara otomatis untuk menemukan perangkat. Agar ini berfungsi, Anda perlu menjalankan UpSnap sebagai root/admin dan memastikan nmap sudah terinstal serta tersedia di $PATH Anda (Untuk pengguna Docker, ini sudah diatur secara otomatis). Pemindaian mungkin memerlukan beberapa detik.',
network_scan_ip_range: 'Rentang IP',
network_scan_no_range: 'Tidak ada rentang pemindaian',
network_scan_unsaved_changes: 'Perubahan belum disimpan',
network_scan_running: 'Pemindaian sedang berjalan',
network_scan: 'Pindai',
network_scan_ip: 'IP:',
network_scan_mac: 'Mac:',
network_scan_mac_vendor: 'Vendor Mac:',
network_scan_netmask: 'Netmask:',
network_scan_add_all: 'Tambahkan semua perangkat',
network_scan_replace_netmask: 'Ganti netmask untuk semua perangkat?',
network_scan_new_netmask: 'Netmask baru',
network_scan_include_unknown: 'Sertakan perangkat dengan nama "Tidak Diketahui"',
require_confirmation: 'Memerlukan Konfirmasi'
},
login: {
welcome: 'Selamat Datang',
email_label: 'Email atau Nama Pengguna:',
password_label: 'Kata Sandi:',
btn_more: 'Lainnya',
menu_title_auth_providers: 'Penyedia Autentikasi Lainnya',
btn_login: 'Masuk'
},
settings: {
page_title: 'Pengaturan',
ping_interval_title: 'Interval Ping',
ping_interval_desc1:
'Menetapkan interval waktu di mana perangkat akan diping. Biarkan kosong untuk menggunakan nilai default <span class="badge">@every 3s</span>.',
ping_interval_desc2:
'Pelajari lebih lanjut tentang sintaks tugas penjadwalan yang benar di <a class="link" href="https://en.wikipedia.org/wiki/Cron" target="_blank">Wikipedia</a> atau lihat <a class="link" href="https://github.com/harrisiirak/cron-parser" target="_blank">dokumentasi paket</a>.',
lazy_ping_title: 'Ping Santai',
lazy_ping_desc:
'Saat Ping Santai diaktifkan, UpSnap hanya akan memping perangkat jika ada pengguna yang mengakses situs web. Jika dinonaktifkan, UpSnap akan selalu memping perangkat.',
lazy_ping_enable: 'Aktifkan',
website_title_title: 'Judul Situs Web',
website_title_desc: 'Mengatur judul situs web dan tab di browser.',
icon_title: 'Ikon',
icon_desc: 'Atur favicon khusus. Jenis file yang didukung:',
upsnap_version: 'Versi UpSnap',
invalid_cron: 'Sintaks tugas penjadwalan tidak valid'
},
users: {
page_title: 'Pengguna',
allow_create_devices:
'Izinkan {username} untuk membuat perangkat baru dan mengedit grup perangkat',
device_permissions: 'Izin Perangkat',
create_new_device: 'Buat perangkat baru',
read: 'Baca',
update: 'Perbarui',
delete: 'Hapus',
power: 'Daya',
toggle: 'Alihkan',
confirm_delete_title: 'Konfirmasi Penghapusan',
confirm_delete_desc: 'Apakah Anda yakin ingin menghapus {username}?',
create_new_user: 'Buat pengguna baru',
username: 'Nama Pengguna',
password: 'Kata Sandi',
password_confirm: 'Konfirmasi Kata Sandi',
required_field: 'Kolom wajib diisi'
},
buttons: {
save: 'Simpan',
delete: 'Hapus',
change: 'Ubah',
reset: 'Atur Ulang',
cancel: 'Batal',
add: 'Tambah',
confirm: 'Konfirmasi'
},
welcome: {
step1_page_title: 'Selamat Datang di UpSnap 🥳',
step1_setup_desc: 'Silakan selesaikan langkah-langkah berikut untuk menyelesaikan pengaturan.',
step1_setup_btn_next: 'Lanjut',
step2_page_title: 'Buat Akun Admin',
step2_label_email: 'Email:',
step2_label_password: 'Kata Sandi:',
step2_label_min_chars: 'minimal 10 karakter',
step2_label_password_confirm: 'Konfirmasi Kata Sandi:',
step2_btn_create: 'Buat',
step3_page_title: 'Semua sudah siap! 🎉',
step3_page_desc: 'Silakan tambahkan beberapa perangkat ke dasbor Anda.',
step3_btn_done: 'Ayo mulai!',
not_expected_title: 'Saya tidak mengira Anda akan berada di sini! 🧐',
not_expected_desc: 'Anda sudah menyelesaikan pengaturan! Tidak ada yang perlu dilakukan.',
not_expected_back: 'Kembali ke halaman utama',
progress_step1: 'Selamat Datang',
progress_step2: 'Buat Akun',
progress_step3: 'Selesai'
},
toasts: {
admin_saved: 'Admin disimpan',
user_saved: 'Pengguna disimpan',
user_created: 'Pengguna {username} dibuat',
user_deleted: 'Pengguna {username} dihapus',
settings_saved: 'Pengaturan disimpan',
password_changed: 'Kata sandi diubah. Silakan masuk kembali.',
passwords_missmatch: 'Kata sandi tidak cocok',
permissions_created: 'Izin untuk {username} dibuat',
permissions_deleted: 'Izin untuk {username} dihapus',
permissions_updated: 'Izin untuk {username} diperbarui',
permissions_updated_personal: 'Izin Anda telah diperbarui',
no_permission: 'Anda tidak memiliki izin untuk mengakses {url}',
device_created: 'Membuat {device}',
devices_created_multiple: 'Membuat {count|int} perangkat',
device_updated: 'Memperbarui {device}',
device_deleted: 'Menghapus {device}',
group_created: 'Membuat grup {group}',
group_deleted: 'Menghapus grup {group}'
},
navbar: {
theme: 'Tema',
new: 'Baru',
edit_account: 'Ubah akun',
logout: 'Keluar'
}
} satisfies Translation;
export default id;

View File

@@ -21,6 +21,8 @@
'en-US': '🇺🇸',
fr: '🇫🇷',
'fr-FR': '🇫🇷',
id: 'id',
'id-ID': 'id',
it: '🇮🇹',
'it-IT': '🇮🇹',
ja: '🇯🇵',