{ "_meta": { "name": "Indonesian", "native_name": "Bahasa Indonesia", "flag": "🇮🇩", "needs_review": true }, "meta": { "lang": "en", "name": "English", "native_name": "English", "direction": "ltr" }, "common": { "loading": "Memuat...", "confirm": "Konfirmasikan", "alert": "Alert", "prompt": "Masukkan nilai", "copied": "Disalin ke papan klip", "save": "Simpan", "saved": "Disimpan", "error": "Error", "success": "Success", "warning": "Warning", "info": "Information", "all": "All", "cancel": "Batalkan", "delete": "Hapus", "actions": "Actions", "close": "Tutup", "required": "diperlukan", "name_required": "Nama wajib diisi", "active": "Active", "inactive": "Inactive", "invalid_json": "JSON tidak valid", "field_required": "{field} diperlukan", "back": "Kembali", "edit": "Sunting", "yes": "Ya", "no": "Tidak" }, "nav": { "main": "Main", "tools": "Tools", "system": "System", "dashboard": "Dasbor", "devices": "Perangkat", "keys": "Keys", "generator": "Generator", "settings": "Pengaturan", "users": "Users", "inventory": "Inventory", "tickets": "Tickets", "help_requests": "Permintaan Bantuan", "activity": "Activity", "automation": "Otomatisasi", "file_transfer": "Pemindahan Berkas", "network": "Network", "dataguard": "DataGuard", "reports": "Reports", "tenants": "Tenants", "registrations": "Registrations", "management": "Manajemen", "toggle_sidebar": "Alihkan bilah sisi", "cdap": "Perangkat CDAP", "fleet": "Fleet", "scaling": "Scaling", "cross_platform": "Cross-Platform", "tokens": "Token Perangkat", "organizations": "Organisasi", "policies": "Kebijakan", "attestation": "Attestation", "remote": "Desktop Jarak Jauh", "toolkit": "Toolkit", "security_audit": "Audit Keamanan", "languages": "Languages", "resource_control": "Kontrol Sumber Daya", "chat": "Chat", "help": "Help", "expand_sidebar": "Luaskan bilah sisi", "toggle_theme": "Beralih tema", "sdk_studio": "SDK Studio", "login": "Login", "permissions": "Izin", "server_management": "Manajemen Server", "server_attestation": "Sertifikasi Server", "commercialization": "Komersialisasi", "remote_open_tab": "Buka klien desktop jarak jauh di tab baru" }, "auth": { "login": "Login", "logout": "Logout", "login_title": "Sign In", "login_subtitle": "Masuk ke Konsol BetterDesk", "username": "Nama pengguna", "username_placeholder": "Masukkan nama pengguna", "password": "Kata sandi", "password_placeholder": "Masukkan kata sandi", "remember_me": "Remember me", "login_failed": "Gagal masuk. Silakan periksa kredensial Anda.", "invalid_credentials": "Nama pengguna atau kata sandi tidak valid.", "username_collision": "Akun lokal dengan nama pengguna ini sudah ada. Masuk dengan kata sandi lokal Anda, atau minta administrator untuk mengganti nama atau menghapus akun yang bentrok.", "fill_all_fields": "Silakan isi semua kolom", "logout_confirm": "Apakah Anda yakin ingin logout?", "change_password": "Ubah Kata Sandi", "password_required": "Kata sandi diperlukan", "totp_title": "Otentikasi Dua Faktor", "totp_subtitle": "Masukkan kode 6 digit dari aplikasi autentikator Anda", "totp_code": "Verification Code", "totp_verify": "Verify", "totp_use_recovery": "Gunakan kode pemulihan sebagai gantinya", "totp_use_code": "Gunakan kode autentikator sebagai gantinya", "totp_recovery_code": "Kode Pemulihan", "totp_back_to_login": "Kembali untuk masuk", "totp_invalid_code": "Kode verifikasi tidak valid. Silakan coba lagi.", "totp_enter_code": "Silakan masukkan kode 6 digit", "totp_enter_recovery": "Silakan masukkan kode pemulihan", "totp_session_expired": "Sesi berakhir. Silakan masuk lagi.", "totp_already_enabled": "Otentikasi dua faktor sudah diaktifkan", "pro_only_account": "Akun ini hanya untuk klien desktop RustDesk. Silakan gunakan aplikasi RustDesk untuk login.", "passwords_mismatch": "Kata sandi tidak cocok", "or": "atau", "login_sso": "Masuk dengan SSO", "login_sso_with": "Masuk dengan {{provider}}", "oidc_denied": "Akses ditolak oleh penyedia identitas.", "oidc_invalid": "Panggilan balik OIDC tidak valid. Silakan coba lagi.", "oidc_failed": "Otentikasi OIDC gagal. Silakan coba lagi.", "oidc_error": "Terjadi kesalahan saat login SSO.", "oidc_no_account": "Akun Anda tidak ditemukan dan pendaftaran otomatis dinonaktifkan.", "totp_rate_limited": "Terlalu banyak upaya. Silakan coba lagi nanti.", "emergency_mode_banner": "Go server tidak dapat dijangkau — berjalan dalam mode darurat (khusus admin, fungsi terbatas)" }, "dashboard": { "title": "Dasbor", "subtitle": "Overview of your RustDesk server", "total_devices": "Jumlah Perangkat", "online_now": "Online Now", "banned": "Banned", "active_connections": "Koneksi Aktif", "offline_devices": "Offline", "server_status": "Status Server", "quick_actions": "Tindakan Cepat", "manage_devices": "Kelola perangkat yang terhubung", "view_keys": "Lihat kunci server", "generate_config": "Hasilkan konfigurasi klien", "server_settings": "Konfigurasikan pengaturan", "greeting_morning": "Selamat pagi {name}", "greeting_afternoon": "Selamat siang, {name}", "greeting_evening": "Selamat malam {name}", "greeting_night": "Selamat malam, {name}", "health_overview": "Ikhtisar Kesehatan", "devices_online": "Perangkat Daring", "active_alerts": "Peringatan Aktif", "recent_connections": "Jumlah Perangkat", "server_uptime": "Waktu Aktif Server", "activity_feed": "Aktivitas Terkini", "no_recent_activity": "Tidak ada aktivitas terkini", "just_now": "just now", "ago": "ago", "tip_desktop_mode": "Coba Mode Desktop untuk ruang kerja multi-jendela dengan widget pemantauan.", "tip_keyboard_shortcuts": "Tekan Ctrl+K di mana saja untuk membuka palet perintah pencarian cepat.", "tip_address_book": "Sinkronkan buku alamat Anda di seluruh perangkat dengan masuk dari klien RustDesk.", "tip_2fa": "Aktifkan Otentikasi Dua Faktor di Pengaturan untuk keamanan akun tambahan.", "tip_bulk_actions": "Pilih beberapa perangkat dan gunakan tindakan massal untuk mengelolanya sekaligus.", "tip_theme": "Beralih antara tema Gelap dan Terang di pengaturan sidebar.", "tip_cdap": "Hubungkan perangkat IoT dan sensor industri melalui gateway CDAP.", "tip_tutorials": "Klik tombol bantuan di sudut kanan bawah untuk tutorial interaktif.", "client_config_eyebrow": "Pengaturan klien", "client_config_title": "Konfigurasi Klien RustDesk", "client_config_subtitle": "Gunakan nilai ini di RustDesk untuk menghubungkan klien ke server BetterDesk ini.", "copy_all_config": "Salin semua", "show_config_qr": "Tampilkan QR", "config_server_id": "Server ID", "config_relay_server": "Server relay", "config_api_server": "Server API", "config_key": "Kunci", "client_config_hint": "Masukkan nilai ini di pengaturan jaringan RustDesk, pada bagian server ID/relay.", "open_generator": "Generator klien", "open_keys": "Buka kunci", "open_remote": "Buka konsol desktop jarak jauh", "attention_panel": "Perlu perhatian", "system_ready": "Sistem siap", "system_attention": "Perlu perhatian", "config_not_ready": "Konfigurasi klien belum siap.", "client_config_qr_title": "QR Konfigurasi RustDesk", "client_config_qr_hint": "Pindai kode ini dari klien RustDesk yang mendukung kode QR konfigurasi.", "client_server_host_label": "Alamat server klien", "client_server_host_placeholder": "mis. 203.0.113.10 atau desk.example.com", "client_server_host_hint": "Alamat yang digunakan klien RustDesk untuk server ini. Ubah jika URL panel berbeda dari IP/DNS klien. Domain terpisah: Pengaturan → Endpoint klien publik.", "apply_client_host": "Terapkan", "copy_deploy_string": "Salin string deploy", "show_intune_script": "Skrip Intune / PSADT", "intune_script_title": "Cuplikan deployment Windows", "intune_script_hint": "Jalankan sebagai admin setelah MSI RustDesk selesai. Menggunakan string config yang sama dengan Salin string deploy.", "deploy_string_not_ready": "String deploy tidak tersedia sampai kunci publik server dimuat.", "client_server_host_env_hint": "Endpoint ID, relay, dan API publik dikonfigurasi di Pengaturan → Endpoint klien publik. Kosongkan di sana untuk override ini." }, "devices": { "title": "Perangkat", "id": "ID", "hostname": "Hostname", "username": "Nama pengguna", "platform": "Platform", "version": "Version", "ip_address": "IP Address", "note": "Note", "last_seen": "Last Seen", "last_online": "Last Online", "first_seen": "First Seen", "created": "Dibuat", "status": "Status", "ban_reason": "Ban Reason", "actions": "Actions", "search_placeholder": "Telusuri perangkat...", "filter_all": "All", "filter_online": "Online", "filter_offline": "Offline", "filter_banned": "Banned", "selected": "selected", "showing": "Showing", "of": "of", "sync_status": "Status Sinkronisasi", "sync_success": "Status berhasil disinkronkan", "empty_title": "Tidak ada perangkat yang ditemukan", "empty_text": "Tidak ada perangkat yang cocok dengan filter Anda saat ini", "edit_title": "Detail Perangkat", "delete_title": "Hapus Perangkat", "delete_confirm": "Apakah Anda yakin ingin menghapus perangkat {id}?", "delete_reserved_hint": "Perangkat akan disembunyikan dan ID-nya tetap dicadangkan. Pilih penghapusan permanen untuk melepas ID agar dapat digunakan kembali.", "delete_warning": "Anda akan menghapus perangkat ini secara permanen:", "delete_permanent": "Tindakan ini tidak dapat dibatalkan. Semua data yang terkait dengan perangkat ini akan dihapus secara permanen dari database.", "delete_success": "Perangkat berhasil dihapus", "revoke_option": "Cabut perangkat", "revoke_hint": "Blokir ID perangkat dan putuskan koneksi aktif", "revoke_success": "Perangkat berhasil dicabut", "details": "Detail Perangkat", "ban_title": "Larangan Perangkat", "ban_confirm": "Apakah Anda yakin ingin mencekal perangkat {id}?", "ban_success": "Perangkat berhasil diblokir", "unban_title": "Batalkan larangan Perangkat", "unban_confirm": "Apakah Anda yakin ingin membatalkan pemblokiran perangkat {id}?", "unban_success": "Perangkat berhasil dibatalkan pemblokirannya", "change_id": "Change ID", "change_id_title": "Ubah ID Perangkat", "new_id": "New ID", "change_id_hint": "6-16 karakter, huruf, angka, tanda hubung, dan garis bawah saja", "change_id_online_warn": "Perangkat sedang online. Ubah ID di klien RustDesk jika memungkinkan. Perubahan panel mempertahankan identitas, tetapi klien harus mengadopsi ID baru.", "change_id_success": "ID Perangkat berhasil diubah", "id_length_error": "Panjang ID harus 6-16 karakter", "id_format_error": "ID hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah", "bulk_delete_title": "Hapus Beberapa Perangkat", "bulk_delete_confirm": "Apakah Anda yakin ingin menghapus perangkat {count}?", "bulk_delete_success": "Perangkat {count} berhasil dihapus", "columns": "Columns", "toggle_columns": "Alihkan kolom yang terlihat", "not_found": "Perangkat tidak ditemukan", "delete_failed": "Gagal menghapus perangkat", "change_id_failed": "Gagal mengubah ID perangkat", "invalid_id": "ID perangkat tidak valid (diperlukan 6-16 karakter)", "invalid_id_format": "Format ID tidak valid (hanya huruf, angka, tanda hubung, garis bawah)", "id_exists": "ID Perangkat sudah ada", "id_reserved_deleted": "ID ini milik perangkat yang dihapus. Pulihkan atau hapus permanen untuk melepaskan ID agar dapat digunakan kembali.", "show_deleted": "Tampilkan perangkat yang dihapus", "deleted_badge": "Dihapus", "restore_title": "Pulihkan perangkat", "restore_confirm": "Pulihkan perangkat {id}? Akan terlihat lagi dan dapat terhubung dengan identitas yang sama.", "restore_success": "Perangkat berhasil dipulihkan", "restore_action": "Pulihkan", "permanent_delete_title": "Hapus perangkat permanen", "permanent_delete_confirm": "Hapus permanen perangkat {id}? ID akan dilepaskan dan tidak dapat dibatalkan.", "permanent_delete_success": "Perangkat dihapus permanen", "filter_deleted": "Dihapus", "no_selection": "Tidak ada perangkat yang dipilih", "device_type": "Type", "filter_type_all": "All Types", "filter_type_rustdesk": "RustDesk", "filter_type_desktop": "Desktop", "filter_type_scada": "SCADA", "filter_type_iot": "IoT", "filter_type_agent": "Agent", "cdap_connected": "CDAP Connected", "revoke": "Revoke", "access_policy": "Kebijakan Akses", "unattended_access": "Akses Tanpa Pengawasan", "enable_unattended": "Aktifkan akses tanpa pengawasan", "access_password": "Akses Kata Sandi", "password_configured": "Kumpulan kata sandi", "no_password": "Tidak ada kata sandi", "new_password": "Kata sandi baru (biarkan kosong agar tetap terkini)", "clear_password": "Hapus kata sandi", "access_schedule": "Jadwal Akses", "enable_schedule": "Aktifkan akses berbasis waktu", "allowed_days": "Hari yang diperbolehkan", "start_time": "Start time", "end_time": "End time", "timezone": "Timezone", "allowed_operators": "Operator yang Diizinkan", "all_operators": "Semua operator (biarkan kosong)", "operators_hint": "Nama pengguna yang dipisahkan koma. Biarkan kosong untuk mengizinkan semua operator.", "last_updated_by": "Terakhir diperbarui oleh", "access_policy_saved": "Kebijakan akses disimpan", "tabs": { "overview": "Ikhtisar", "hardware": "Hardware", "metrics": "Metrik", "connections": "Koneksi", "audit": "Audit", "info": "Info", "history": "Sejarah" }, "hardware": { "cpu": "Processor", "memory": "Memory", "disk": "Disk", "os": "Operating System", "hostname": "Hostname", "uptime": "Uptime", "load_avg": "Rata-rata Beban", "network": "Adaptor Jaringan", "no_data": "Tidak ada data perangkat keras yang tersedia", "title": "Informasi Perangkat Keras", "gpu": "Graphics Card" }, "display_name": "Nama Tampilan", "display_name_placeholder": "Nama khusus (menggantikan nama host)", "note_placeholder": "Catatan tentang perangkat ini", "tags": "Tags", "filter_by_tags": "Filter berdasarkan tag", "no_tags": "No tags", "all_groups": "Semua kelompok", "create_group": "Buat grup", "manage_groups": "Kelola Grup", "group_name": "Nama grup", "group_name_placeholder": "misalnya PC media", "dynamic_group": "Grup dinamis dari tag", "dynamic_group_hint": "Perangkat dengan tag ini bergabung secara otomatis.", "tag_filter": "Tag filter", "group_allowed_users": "Pengguna yang diizinkan", "group_allowed_users_hint": "Biarkan kosong agar grup tetap terlihat oleh semua orang yang memiliki izin perangkat.", "group_tag_required": "Filter tag diperlukan untuk grup dinamis", "group_invalid": "Pengenal grup tidak valid", "group_not_found": "Grup tidak ditemukan", "group_saved": "Grup perangkat disimpan", "strategies_title": "Access control strategies", "strategies_hint": "Link user groups to device groups and push RustDesk Pro security settings to matching clients.", "create_strategy": "Add strategy", "edit_strategy": "Edit strategy", "delete_strategy": "Delete strategy", "delete_strategy_confirm": "Delete strategy {name}?", "strategy_name": "Strategy name", "strategy_name_required": "Strategy name is required", "strategy_user_group": "User group", "strategy_device_group": "Device group", "strategy_any_user_group": "Any user group", "strategy_any_device_group": "Any device group", "strategy_enabled": "Enabled", "strategy_disabled": "Disabled", "strategy_enabled_label": "Strategy enabled", "strategy_permissions": "Client security settings", "strategy_permissions_hint": "Uses RustDesk advanced-setting keys (Y/N). Leave Default to keep client or strategy inheritance.", "strategy_permissions_count": "{count} settings", "strategy_perm_default": "Default", "strategy_perm_allow": "Allow (Y)", "strategy_perm_deny": "Deny (N)", "strategy_perm_file_transfer": "File transfer", "strategy_perm_disable_clipboard": "Disable clipboard", "strategy_perm_enable_clipboard": "Enable clipboard", "strategy_perm_audio": "Audio", "strategy_perm_tunnel": "TCP tunnel", "strategy_perm_camera": "Camera", "strategy_perm_restart": "Remote restart", "strategy_perm_block_input": "Block user input", "strategy_created": "Strategy created", "strategy_updated": "Strategy updated", "strategy_deleted": "Strategy deleted", "strategy_not_found": "Strategy not found", "no_strategies": "No access control strategies yet", "loading_strategies": "Loading strategies...", "groups_saved": "Grup perangkat disimpan", "group_membership_added": "Ditambahkan ke grup", "group_membership_removed": "Dihapus dari grup", "no_groups": "Belum ada grup", "manual_groups": "Grup manual", "dynamic_memberships": "Keanggotaan dinamis", "group_allowed_user_groups": "Grup pengguna yang diizinkan", "group_allowed_user_groups_hint": "Pengguna di grup pengguna yang dipilih dapat mengakses grup perangkat ini.", "no_user_groups": "Tidak ada grup pengguna", "edit_group": "Sunting grup", "delete_group": "Hapus grup", "delete_group_confirm": "Hapus grup perangkat {name}?", "group_deleted": "Grup perangkat dihapus", "folder_group_readonly": "Grup yang didukung folder dikelola dari folder.", "manage_user_groups": "Kelola grup pengguna", "restore_failed": "Gagal memulihkan perangkat", "no_signal_tooltip": "Klien baru saja menghubungi API tetapi tidak terdaftar di server sinyal (UDP :21116). Mulai ulang klien setelah migrasi server.", "per_page": "Per halaman", "strategy_assign": "Assign targets", "strategy_assign_title": "Assign strategy: {name}", "strategy_assign_devices": "Devices", "strategy_assign_users": "Users", "strategy_assign_groups": "Device groups", "strategy_assign_hint": "Select devices, users, or device groups that should use this strategy directly (RustDesk Pro priority: device > user > group).", "strategy_assign_saved": "Strategy assignments saved", "strategy_assign_counts": "{peers} devices, {users} users, {groups} groups", "strategy_assign_none": "No direct assignments" }, "keys": { "title": "Kunci Server", "subtitle": "Kunci publik dan konfigurasi untuk klien RustDesk", "public_key": "Public Key", "qr_code": "QR Code", "server_info": "Informasi Server", "download": "Unduh Kunci", "show_qr": "Show QR", "qr_hint": "Pindai kode QR ini dengan aplikasi seluler RustDesk", "no_key": "Tidak ada kunci publik yang ditemukan", "no_key_to_copy": "Tidak ada kunci untuk disalin", "no_qr": "Kode QR tidak tersedia", "download_success": "File kunci diunduh", "not_found": "Kunci tidak ditemukan", "api_not_found": "Kunci API tidak ditemukan" }, "settings": { "title": "Pengaturan", "subtitle": "Konfigurasi konsol dan pengaturan akun", "tab_general": "General", "tab_server": "pelayan", "tab_branding": "Branding", "tab_backup": "Backup", "language": "Bahasa", "change_password": "Ubah Kata Sandi", "password_desc": "Perbarui kata sandi akun Anda", "current_password": "Kata Sandi Saat Ini", "new_password": "Kata Sandi Baru", "confirm_password": "Konfirmasi Kata Sandi", "save_password": "Perbarui Kata Sandi", "password_changed": "Kata sandi berhasil diubah", "fill_all_fields": "Silakan isi semua kolom", "passwords_not_match": "Kata sandi tidak cocok", "password_requirements": "Persyaratan kata sandi", "password_requirements_not_met": "Kata sandi tidak memenuhi persyaratan", "req_length": "Setidaknya 8 karakter", "req_uppercase": "Setidaknya satu huruf besar", "req_lowercase": "Setidaknya satu huruf kecil", "req_number": "Setidaknya satu nomor", "server_info": "Informasi Server", "version": "Version", "database": "Database", "uptime": "Uptime", "audit_log": "Audit Log", "audit_desc": "Aktivitas konsol terkini", "no_audit_logs": "Tidak ada log audit yang ditemukan", "backend_title": "Bagian Belakang Server", "backend_desc": "Pilih backend server mana yang akan digunakan untuk manajemen perangkat dan layanan sinyal/relai.", "backend_original": "Original", "backend_enhanced": "Enhanced", "backend_rustdesk_desc": "Server sinyal dan relai RustDesk standar (hbbs + hbbr). HTTP API dasar dengan titik akhir terbatas.", "backend_betterdesk_desc": "Server berbasis Go yang ditingkatkan dengan REST API penuh, autentikasi JWT, daftar blokir, tag, peristiwa WebSocket waktu nyata, dan pencatatan audit.", "backend_feature_signal": "Server sinyal (pendaftaran ID)", "backend_feature_relay": "Server relai (relai koneksi)", "backend_feature_basic_api": "REST Dasar API", "backend_feature_full_api": "REST Penuh API (34+ titik akhir)", "backend_feature_jwt": "Otentikasi JWT & TOTP 2FA", "backend_feature_blocklist": "Manajemen daftar blokir IP/ID", "backend_feature_tags": "Tag & pengelompokan perangkat", "backend_feature_audit": "Audit pencatatan peristiwa", "backend_feature_websocket": "Acara WebSocket waktu nyata", "backend_connection": "Koneksi", "backend_api_url": "API URL", "backend_test": "Uji Koneksi", "backend_testing": "Menguji...", "backend_save": "Terapkan Backend", "backend_saved": "Backend server berhasil diubah. Data perangkat sekarang akan dikelola oleh backend baru.", "backend_save_failed": "Gagal berpindah backend server", "backend_test_success": "Koneksi berhasil! Server dapat dijangkau.", "backend_test_failed": "Koneksi gagal. Server tidak dapat dijangkau.", "backend_confirm_switch": "Apakah Anda yakin ingin mengganti backend server? Ini akan mengubah cara perangkat dikelola.", "backend_unreachable": "Tidak dapat beralih: server target tidak dapat dijangkau. Mulai servernya terlebih dahulu.", "invalid_backend": "Pilihan backend tidak valid. Pilih 'rustdesk' atau 'betterdesk'.", "backend_status_running": "Connected", "backend_status_unreachable": "Unreachable", "backend_status_error": "Error", "backend_status_unknown": "Unknown", "totp_title": "Otentikasi Dua Faktor", "totp_desc": "Tambahkan lapisan keamanan ekstra dengan aplikasi autentikator TOTP (Google Authenticator, Microsoft Authenticator, Authy, dll.)", "totp_enabled": "2FA Diaktifkan", "totp_enabled_desc": "Akun Anda dilindungi dengan otentikasi dua faktor.", "totp_disabled": "2FA Tidak Diaktifkan", "totp_disabled_desc": "Aktifkan autentikasi dua faktor untuk keamanan akun tambahan.", "totp_setup": "Enable 2FA", "totp_disable": "Disable 2FA", "totp_step1": "Instal aplikasi autentikator di ponsel Anda", "totp_step2": "Pindai kode QR di bawah ini", "totp_step3": "Masukkan kode 6 digit untuk memverifikasi", "totp_manual_key": "Manual key", "totp_enter_code": "Masukkan kode verifikasi", "totp_verify_enable": "Verifikasi & Aktifkan", "totp_enabled_success": "Otentikasi dua faktor diaktifkan!", "totp_recovery_warning": "Simpan kode pemulihan ini di tempat yang aman. Setiap kode hanya dapat digunakan satu kali. Jika Anda kehilangan akses ke aplikasi pengautentikasi, Anda dapat menggunakan kode ini untuk masuk.", "totp_done": "Done", "totp_disable_warning": "Menonaktifkan otentikasi dua faktor akan membuat akun Anda kurang aman. Masukkan kata sandi Anda untuk mengonfirmasi.", "totp_disabled_success": "Otentikasi dua faktor telah dinonaktifkan.", "tutorials_title": "Tutorial & Panduan", "tutorials_desc": "Kontrol tur terpandu dan overlay bantuan yang ditampilkan di seluruh konsol", "tutorials_enabled": "Aktifkan tutorial", "tutorials_enabled_hint": "Jika dinonaktifkan, tutorial tidak akan dimulai secara otomatis dan tombol bantuan akan disembunyikan", "tutorials_reset_hint": "Tandai semua tutorial sebagai tidak terlihat sehingga dapat ditampilkan kembali", "tutorials_enabled_toast": "Tutorial diaktifkan", "tutorials_disabled_toast": "Tutorial dinonaktifkan", "tutorials_reset_toast": "Semua tutorial telah diatur ulang", "tab_auth": "Otentikasi", "ldap_title": "LDAP / Active Directory", "ldap_desc": "Konfigurasikan autentikasi eksternal melalui LDAP atau Active Directory. Pengguna akan dapat masuk dengan kredensial domain mereka.", "ldap_enabled": "Aktifkan Otentikasi LDAP", "ldap_enabled_hint": "Jika diaktifkan, pengguna direktori dapat masuk dengan kredensial LDAP/AD. Setiap akun terikat ke satu penyedia (local, LDAP, atau OIDC) — kata sandi lokal tidak diterima untuk akun LDAP.", "ldap_connection": "Koneksi Server", "ldap_host": "Tuan rumah", "ldap_port": "Pelabuhan", "ldap_use_tls": "LDAPS (TLS)", "ldap_start_tls": "StartTLS", "ldap_skip_verify": "Lewati verifikasi TLS", "ldap_timeout": "Batas waktu koneksi habis", "ldap_timeout_hint": "Beberapa detik menunggu respons server LDAP", "ldap_bind_mode": "Modus Mengikat", "ldap_direct_bind": "Ikatan Langsung", "ldap_direct_bind_hint": "Ikat langsung dengan templat DN alih-alih menggunakan akun layanan untuk mencari.", "ldap_bind_dn": "Ikat DN (akun layanan)", "ldap_bind_dn_hint": "Nama Khusus akun layanan hanya-baca yang digunakan untuk mencari pengguna.", "ldap_bind_password": "Ikat Kata Sandi", "ldap_base_dn": "Basis DN", "ldap_base_dn_hint": "Basis pencarian untuk menemukan pengguna, mis. dc=contoh,dc=com", "ldap_user_filter": "Filter Pengguna", "ldap_user_filter_hint": "Filter LDAP untuk menemukan pengguna. Gunakan {{username}} sebagai pengganti. Bawaan: (sAMAccountName={{username}})", "ldap_direct_bind_dn": "Templat DN Pengikatan Langsung", "ldap_direct_bind_dn_hint": "Templat DN untuk pengikatan langsung. Gunakan {{username}} sebagai placeholder, mis. uid={{username}},ou=pengguna,dc=contoh,dc=com", "ldap_user_attrs": "Atribut Pengguna", "ldap_attr_id": "Atribut Nama Pengguna", "ldap_attr_email": "Atribut Email", "ldap_attr_name": "Atribut Nama Tampilan", "ldap_group_mapping": "Grup → Pemetaan Peran", "ldap_group_base_dn": "Basis Grup DN", "ldap_group_base_dn_hint": "Biarkan kosong untuk menggunakan Base DN utama", "ldap_group_filter": "Filter Grup", "ldap_group_attr_name": "Atribut Nama Grup", "ldap_default_role": "Peran Default", "ldap_default_role_hint": "Peran ditetapkan kepada pengguna yang grup LDAP-nya tidak cocok dengan pemetaan apa pun", "ldap_role_viewer": "Penampil", "ldap_role_operator": "Operator", "ldap_role_admin": "Admin", "ldap_group_role_map": "Grup → Peta Peran", "ldap_group_role_map_hint": "Petakan grup LDAP ke peran BetterDesk. Format: GroupDN=peran dipisahkan oleh | (pipa). Contoh: CN=Admin,DC=contoh,DC=com=admin|CN=Ops,DC=contoh,DC=com=operator", "ldap_test_connection": "Uji Koneksi", "ldap_testing": "Menguji...", "ldap_test_success": "Koneksi berhasil! Server LDAP dapat dijangkau dan kredensial pengikatannya valid.", "ldap_test_failed": "Koneksi gagal", "ldap_save": "Simpan Konfigurasi LDAP", "ldap_saved": "Konfigurasi LDAP berhasil disimpan", "oidc_title": "OIDC / OAuth2 (SSO)", "oidc_desc": "Konfigurasikan Single Sign-On melalui penyedia OpenID Connect (Azure AD, Okta, Google, Keycloak, dll.).", "oidc_enabled": "Aktifkan Otentikasi OIDC", "oidc_enabled_hint": "Izinkan pengguna masuk dengan penyedia identitas eksternal", "oidc_provider": "Penyedia Identitas", "oidc_display_name": "Nama Tampilan Tombol", "oidc_display_name_hint": "Teks yang ditampilkan pada tombol masuk (misalnya Azure AD, Okta)", "oidc_issuer_url": "Penerbit URL", "oidc_issuer_url_hint": "Penerbit OpenID Connect URL (penemuan akan otomatis)", "oidc_client_id": "ID Klien", "oidc_client_secret": "Rahasia Klien", "oidc_redirect_url": "Pengalihan URL (Panggilan Balik)", "oidc_redirect_url_hint": "Harus sama persis dengan IdP. Path: /api/auth/oidc/callback (atau /api/oidc/callback). Lebih baik URL publik panel — konsol mem-proxy callback ke API Go. Port API (:21114 / :21121) juga berfungsi.", "oidc_panel_url": "URL Panel", "oidc_panel_url_hint": "URL yang digunakan operator untuk membuka konsol web (port 5000 atau hostname reverse proxy). Diperlukan untuk login SSO saat callback OIDC berjalan di port Go API.", "oidc_scopes": "Lingkup", "oidc_use_pkce": "Gunakan PKCE (disarankan)", "oidc_auto_discovery": "Penemuan otomatis", "oidc_allow_signup": "Buat pengguna secara otomatis", "oidc_manual_endpoints": "URL Titik Akhir Manual", "oidc_authorization_url": "Titik Akhir Otorisasi", "oidc_token_url": "Titik Akhir Token", "oidc_userinfo_url": "Titik Akhir Info Pengguna", "oidc_claim_mapping": "Pemetaan Klaim", "oidc_claim_username": "Klaim Nama Pengguna", "oidc_claim_email": "Klaim Email", "oidc_claim_name": "Klaim Nama Tampilan", "oidc_claim_groups": "Klaim Grup", "oidc_role_mapping": "Pemetaan Peran", "oidc_default_role": "Peran Default", "oidc_group_role_map": "Grup → Pemetaan Peran", "oidc_group_role_map_hint": "Satu pemetaan per baris: group_name=role (misalnya admin=admin, operator=operator)", "oidc_test_discovery": "Uji Penemuan", "oidc_testing": "Menguji...", "oidc_test_success": "Penemuan berhasil! Titik akhir terselesaikan.", "oidc_test_failed": "Penemuan gagal", "oidc_issuer_required": "Penerbit URL diwajibkan untuk menguji penemuan", "oidc_save": "Simpan Konfigurasi OIDC", "oidc_saved": "Konfigurasi OIDC berhasil disimpan", "tab_advanced": "Lanjutan", "connection_mode_title": "Strategi koneksi", "connection_mode_desc": "Kendalikan cara klien desktop RustDesk terhubung: P2P langsung (hole punch) jika memungkinkan, atau selalu melalui relay.", "connection_mode_label": "Mode koneksi default", "connection_mode_p2p_first": "P2P terlebih dahulu (disarankan) — coba koneksi langsung, fallback ke relay jika gagal", "connection_mode_relay_only": "Hanya relay — semua sesi menggunakan server relay", "connection_mode_advanced": "Opsi lanjutan", "connection_mode_fallback_ms": "Batas waktu fallback P2P (ms)", "connection_mode_same_nat_relay": "Paksa relay saat kedua peer berbagi IP publik yang sama (NAT hairpin)", "connection_mode_network_hint": "P2P memerlukan port UDP 21116 yang dapat dijangkau antar klien. Server harus membuka Signal TCP 21116, Relay TCP 21117, NAT test TCP 21115. Klien browser web selalu menggunakan relay.", "connection_mode_save": "Simpan", "connection_mode_save_restart": "Simpan & mulai ulang server", "connection_mode_saved": "Mode koneksi tersimpan", "connection_mode_restart_started": "Mulai ulang server dimulai", "connection_mode_restart_failed": "Mulai ulang server gagal", "connection_mode_not_configurable": "Mode koneksi tidak dapat diubah pada deployment ini (tidak ada unit systemd atau docker-compose)", "connection_mode_compose_error": "Tidak dapat menemukan bagian server environment di docker-compose.yml", "connection_mode_source_saved": "Tersimpan di", "connection_mode_source_defaults": "Menggunakan default server (tidak bisa ditulis dari panel)", "connection_mode_runtime": "Server aktif", "advanced_title": "File konfigurasi", "advanced_desc": "Edit file konfigurasi server secara langsung. Perubahan mungkin memerlukan restart layanan. Salinan cadangan dibuat sebelum setiap penyimpanan.", "advanced_warning": "File-file ini berisi rahasia (API key, kata sandi database, session secret). Edit hanya jika Anda memahami dampaknya. Sintaks yang salah dapat mencegah server dari starting.", "advanced_files_label": "File", "advanced_select_file": "Pilih file dari daftar untuk melihat atau mengedit isinya.", "advanced_reload": "Muat ulang", "advanced_save": "Simpan file", "advanced_apply_restart": "Terapkan (restart layanan)", "advanced_saved": "File konfigurasi tersimpan", "advanced_restart_after_save": "Konfigurasi tersimpan. Restart layanan yang terpengaruh sekarang agar perubahan berlaku?", "advanced_restart_confirm": "Restart layanan BetterDesk terkait? Koneksi aktif mungkin terganggu sebentar.", "advanced_restart_console_confirm": "Restart layanan web console? Sesi browser akan terputus sebentar dan halaman akan dimuat ulang saat console kembali.", "advanced_restart_started": "Restart layanan dimulai", "advanced_restart_done": "Console di-restart — memuat ulang halaman…", "advanced_restart_polling": "Menunggu console kembali online…", "advanced_restart_timeout": "Restart dikirim tetapi console tidak merespons tepat waktu. Periksa log systemd/NSSM dan muat ulang secara manual.", "advanced_restart_failed": "Restart layanan gagal (hak istimewa tidak cukup atau layanan belum terinstal)", "advanced_save_confirm": "Simpan perubahan pada file ini? Cadangan versi sebelumnya akan dibuat.", "advanced_unsaved_confirm": "Anda memiliki perubahan yang belum disimpan. Buang?", "advanced_no_files": "Tidak ada file konfigurasi yang tersedia di sistem ini.", "advanced_readonly": "hanya baca", "advanced_missing": "hilang", "advanced_new_file": "File baru (belum dibuat sampai Anda menyimpan)", "advanced_new_file_hint": "File baru — tambahkan konten dan simpan", "advanced_backup_created": "cadangan dibuat", "advanced_restart_console": "Restart layanan web console (mis. systemctl restart betterdesk-console) agar perubahan .env berlaku.", "advanced_restart_goserver": "Restart BetterDesk Go server agar perubahan blocklist dimuat.", "advanced_restart_systemd": "Setelah mengedit unit systemd, jalankan: systemctl daemon-reload && systemctl restart ", "advanced_restart_generic": "Restart layanan yang terpengaruh agar perubahan berlaku.", "advanced_error_unknown": "File konfigurasi tidak dikenal", "advanced_error_not_found": "File tidak ada", "advanced_error_not_file": "Path bukan file biasa", "advanced_error_too_large": "File melebihi ukuran yang dapat diedit maksimum (512 KB)", "advanced_error_binary": "File biner tidak dapat diedit di panel", "advanced_error_invalid": "Konten file tidak valid", "advanced_error_not_writable": "Proses console tidak dapat menulis file ini", "advanced_file_console-env": "Lingkungan console (.env)", "advanced_file_console-env-local": "Override console (.env.local)", "advanced_file_go-blocklist": "Daftar blokir server Go (blocklist.txt)", "advanced_file_systemd-console": "systemd: betterdesk-console (unit layanan)", "advanced_file_systemd-server": "systemd: betterdesk-server (unit layanan)", "advanced_file_console-session-secret": "Rahasia sesi konsol (.session_secret)", "advanced_file_go-audit-log": "Log audit server Go (audit.jsonl)", "advanced_file_build-env": "Lingkungan build agen (/etc/betterdesk/build.env)", "advanced_file_docker-supervisord": "Docker: supervisord.conf (konfigurasi supervisor)", "advanced_file_docker-compose": "Docker: docker-compose.yml (orkestrasi)", "advanced_restart_none": "File ini tidak memerlukan restart layanan.", "enrollment_title": "Pendaftaran perangkat (RustDesk)", "enrollment_desc": "Kendalikan cara klien RustDesk baru mendaftar dan cara operator menyetujuinya di halaman permintaan pendaftaran.", "enrollment_require_approval": "Perlu persetujuan operator (Mode terkelola)", "enrollment_require_approval_hint": "Jika diaktifkan, klien yang tidak dikenal akan antri sampai operator menyetujuinya di \"Permintaan Pendaftaran\".", "enrollment_rich_approve": "Formulir persetujuan lengkap (nama, folder, grup, tag)", "enrollment_rich_approve_hint": "Menampilkan dialog terperinci saat menyetujui permintaan pendaftaran atau pendaftaran LAN.", "enrollment_tag_picker": "Pilih tag dari tag perangkat yang ada", "enrollment_tag_picker_hint": "Memungkinkan operator memilih tag dari daftar di halaman Perangkat alih-alih hanya mengetik.", "enrollment_open_requests": "Buka permintaan pendaftaran", "enrollment_pending_count": "{count} permintaan pendaftaran tertunda", "go_server_version": "Server Go", "go_server_version_dev_hint": "Biner Go melaporkan build pengembangan — bangun ulang atau perbarui server agar sesuai versi produk", "tab_email": "Email", "email": { "title": "Email notifications", "desc": "Configure SMTP delivery for operational notifications and system alert emails.", "smtp_host": "SMTP host", "smtp_port": "Port", "smtp_secure": "Use TLS/SSL", "smtp_user": "Username", "smtp_pass": "Password", "smtp_from": "From address", "alert_email": "Alert email", "alert_email_hint": "Fallback address when no operator email is available, and for system warnings.", "smtp_test": "Test connection", "smtp_save": "Save configuration", "smtp_saved": "Email settings saved", "smtp_test_success": "Connection successful", "smtp_test_failed": "Connection failed" }, "ui": { "search_placeholder": "Search settings…", "search_results": "{count} matching sections", "auth_sub_enrollment": "Enrollment", "auth_sub_ldap": "LDAP / AD", "auth_sub_oidc": "OIDC / SSO", "branding_rdclient": "RdClient", "connection_p2p_hint": "Try direct peer connection first; fall back to relay when P2P fails.", "connection_relay_hint": "Route all client traffic through the relay server.", "auth_sub_client_sessions": "Klien RustDesk" }, "confirm": { "connection_mode_title": "Save connection strategy?", "connection_mode": "Apply the new connection strategy for RustDesk clients?", "connection_restart_title": "Save and restart server?", "connection_restart": "Save connection settings and restart the BetterDesk server? Active sessions may disconnect briefly.", "enrollment_mode_title": "Change enrollment mode?", "enrollment_mode": "Switch enrollment to “{mode}”? This affects how new RustDesk clients can register.", "ldap_enable_title": "Enable LDAP?", "ldap_enable": "Enable LDAP / Active Directory sign-in? Console users may authenticate against your directory.", "ldap_save_title": "Save LDAP settings?", "ldap_save": "Save LDAP configuration? Incorrect settings can block directory sign-in.", "oidc_enable_title": "Enable SSO?", "oidc_enable": "Enable OIDC / SSO sign-in? Users may authenticate through your identity provider.", "oidc_save_title": "Save SSO settings?", "oidc_save": "Save OIDC / SSO configuration? Incorrect settings can block SSO sign-in.", "smtp_save_title": "Save SMTP settings?", "smtp_save": "Save SMTP configuration? Alert emails and notifications will use this mail server.", "backup_restore_title": "Restore backup?", "backup_restore": "Restore from this backup file? Selected data will be overwritten.", "tutorials_reset_title": "Reset tutorials?", "tutorials_reset": "Reset all tutorial progress? Guided tips will show again on each page.", "advanced_save_title": "Save configuration file?", "advanced_restart_after_title": "Restart service?", "advanced_restart_title": "Restart service?", "advanced_discard_title": "Discard changes?" }, "public_endpoints_title": "Endpoint klien publik", "public_endpoints_desc": "Hostname dan URL API untuk klien RustDesk. Digunakan di konfigurasi dashboard, QR, dan deploy string.", "public_endpoints_hint": "Atur jika hostname konsol berbeda dari ID/relay/API (reverse proxy / DNS terpisah). Kosong = deteksi otomatis.", "public_endpoints_server_id": "Server ID publik", "public_endpoints_server_id_placeholder": "mis. remote.example.com", "public_endpoints_relay": "Server relay publik", "public_endpoints_relay_placeholder": "mis. remote.example.com (default: ID)", "public_endpoints_api_url": "URL API publik", "public_endpoints_api_url_placeholder": "mis. https://api.example.com", "public_endpoints_api_url_hint": "URL lengkap untuk login dan API RustDesk (port default 21114).", "public_endpoints_save": "Simpan endpoint", "public_endpoints_saved": "Endpoint klien publik disimpan", "public_endpoints_invalid_host": "Hostname ID atau relay tidak valid", "public_endpoints_invalid_api_url": "URL API tidak valid — gunakan http:// atau https://", "public_endpoints_save_title": "Simpan endpoint klien publik?", "public_endpoints_save_confirm": "Perbarui konfigurasi klien RustDesk di dashboard?", "device_scope_title": "Device visibility default", "device_scope_desc": "Controls what non-admin users see when no folder, group, or direct device grants exist.", "device_scope_open": "Open (legacy) — show all devices until ACL is configured", "device_scope_restricted": "Restricted — show only explicitly granted devices", "device_scope_save": "Save visibility default", "device_scope_saved": "Device visibility default saved", "device_scope_invalid": "Invalid visibility mode", "device_scope_restricted_warning": "Restricted mode is active. Ensure users have folder, group, or direct device grants or they will see an empty device list.", "client_sessions_title": "Sesi klien RustDesk", "client_sessions_desc": "Atur berapa lama aplikasi RustDesk desktop dan mobile tetap masuk ke akun BetterDesk Anda.", "client_sessions_expiry_days": "Durasi sesi (hari)", "client_sessions_expiry_hint": "Default 7 hari. Tanpa perpanjangan geser, klien harus masuk lagi setelah periode ini.", "client_sessions_sliding": "Perpanjang sesi saat aktif", "client_sessions_sliding_hint": "Saat klien digunakan, sesi diperpanjang hingga batas maksimum di bawah.", "client_sessions_max_days": "Masa hidup sesi maksimum (hari)", "client_sessions_max_days_hint": "Batas atas perpanjangan geser sejak login pertama (default 30 hari).", "client_sessions_save": "Simpan pengaturan sesi", "enrollment_ldap_hint": "Pengaturan LDAP/AD dan OIDC ada di tab LDAP / AD dan OIDC / SSO di atas.", "oidc_redirect_url_invalid": "URL redirect harus memakai http(s) dan berakhir dengan /api/auth/oidc/callback (atau /api/oidc/callback).", "oidc_redirect_url_example": "Contoh: {url}" }, "audit": { "time": "Time", "user": "User", "action": "Action", "details": "Details", "action_login": "Login", "action_login_failed": "Gagal Masuk", "action_logout": "Logout", "action_password_change": "Kata Sandi Berubah", "action_2fa_enable": "2FA Diaktifkan", "action_2fa_disable": "2FA Dinonaktifkan", "action_user_create": "Pengguna Dibuat", "action_user_update": "Pengguna Diperbarui", "action_user_delete": "Pengguna Dihapus", "action_settings_update": "Pengaturan Diperbarui", "action_device_ban": "Perangkat Dilarang", "action_device_unban": "Perangkat Tidak Diblokir", "action_device_delete": "Perangkat Dihapus" }, "generator": { "title": "Client Configuration Generator", "subtitle": "Generate configuration for RustDesk clients", "alpha_badge": "ALPHA", "alpha_tooltip": "Fitur awal — generator paket agen sedang dalam pengembangan aktif.", "config_options": "Opsi Konfigurasi", "server_address": "Alamat Server", "server_address_hint": "Domain atau alamat IP server Anda", "custom_port": "Custom Port", "port_hint": "Biarkan kosong untuk default (21116)", "relay_server": "Server Relai", "relay_placeholder": "Sama seperti ID server jika kosong", "relay_hint": "Opsional: alamat server relai terpisah", "include_key": "Sertakan kunci publik dalam konfigurasi", "generate": "Hasilkan Konfigurasi", "output": "Keluaran Konfigurasi", "usage_title": "Detail Koneksi", "generated": "Konfigurasi dihasilkan", "server_required": "Alamat server diperlukan", "nothing_to_copy": "Buat konfigurasi terlebih dahulu", "bundles_title": "Paket agen", "new_bundle": "Bundel baru", "editor_title": "Editor bundel", "empty_state": "Pilih paket di sebelah kiri atau buat paket baru untuk memulai.", "loading": "Memuat…", "no_bundles": "Belum ada bundel. Buat yang pertama Anda.", "bundle_name": "Nama bundel", "bundle_name_hint": "Hanya label internal — tidak ditampilkan kepada pengguna akhir.", "short_link": "Tautan unduhan pendek", "short_link_hint": "Digunakan di URL publik (/d/…). Hanya huruf kecil, angka, dan tanda hubung (2–32 karakter). Diisi otomatis dari nama paket — persingkat untuk memudahkan berbagi (mis. acme).", "branding_section": "merek", "company_name": "Nama perusahaan/merek", "short_text": "Deskripsi singkat", "contact_email": "Hubungi email", "contact_phone": "Hubungi telepon", "contact_url": "Hubungi situs web", "logo": "logo", "logo_hint": "PNG, JPEG, SVG atau WebP. Maksimum 256 KB.", "logo_clear": "Hapus logo", "primary_color": "Warna primer", "accent_color": "Warna tajuk", "default_lang": "Bahasa bawaan", "allow_unattended": "Izinkan akses tanpa pengawasan", "allow_unattended_hint": "Saat diaktifkan, agen menampilkan kata sandi permanen untuk akses operator.", "save": "Simpan bundel", "revoke": "Cabut", "unrevoke": "Aktifkan kembali", "revoked": "Dicabut", "preview_title": "Pratinjau langsung", "preview_hint": "Perkiraan tampilan jendela agen pengguna akhir.", "preview_default_name": "Dukungan BetterDesk", "preview_status_ready": "Siap", "preview_id": "tanda pengenal Anda", "preview_password": "Kata sandi", "preview_chat": "Mengobrol dengan dukungan", "preview_settings": "Pengaturan (khusus admin)", "preview_quit": "Keluar (khusus admin)", "download_link_title": "Tautan unduhan", "download_link_hint": "Bagikan tautan ini dengan pengguna akhir. Mereka akan melihat halaman unduhan bermerek. Tautan hex lama tetap berfungsi setelah Anda mengubah tautan pendek.", "open_portal": "Buka", "created": "Paket dibuat", "saved": "Paket disimpan", "deleted": "Paket dihapus", "revoked_ok": "Bundel dicabut", "unrevoked_ok": "Paket diaktifkan kembali", "link_copied": "Tautan disalin ke papan klip", "copy_failed": "Tidak dapat menyalin secara otomatis — harap salin secara manual", "unsaved_confirm": "Buang perubahan yang belum disimpan?", "confirm_revoke": "Cabut paket ini? Tautan unduhan akan berhenti berfungsi.", "confirm_unrevoke": "Aktifkan kembali paket ini?", "confirm_delete": "Hapus paket ini secara permanen? Hal ini tidak dapat dibatalkan.", "errors": { "validation_failed": "Validasi gagal", "name_required": "Nama paket wajib diisi", "company_name_required": "Nama perusahaan wajib diisi", "logo_invalid": "Logo harus berupa file gambar yang valid", "logo_too_large": "Logo harus berukuran 256 KB atau lebih kecil", "logo_read_failed": "Gagal membaca file logo", "primary_color_invalid": "Warna primer harus berupa nilai hex (misalnya #2563eb)", "accent_color_invalid": "Warna header harus berupa nilai hex (misalnya #1e293b)", "contact_url_invalid": "Situs web kontak harus berupa URL yang valid", "server_host_required": "Alamat server publik wajib diisi", "server_host_invalid": "Masukkan nama domain atau alamat IPv4 yang valid", "token_failed": "Tidak dapat membuat enrollment token — periksa konektivitas server", "rebuild_revoked": "Tidak dapat rebuild bundle yang dicabut — aktifkan kembali terlebih dahulu", "slug_invalid": "Tautan pendek hanya boleh berisi huruf kecil, angka, dan tanda hubung", "slug_too_short": "Tautan pendek harus minimal 2 karakter", "slug_too_long": "Tautan pendek maksimal 32 karakter", "slug_taken": "Tautan pendek ini sudah digunakan paket lain" }, "legacy_title": "Generator Konfigurasi Klien", "connection_section": "Koneksi server", "server_host": "Alamat server publik", "server_host_placeholder": "support.example.com atau 203.0.113.10", "server_host_hint": "Nama domain atau IP publik tempat pengguna akhir menjangkau server BetterDesk Anda. Port diambil dari konfigurasi console.", "use_https": "Gunakan HTTPS / WSS (disarankan)", "enrollment_token": "Pendaftaran perangkat", "enrollment_token_pending": "Per perangkat setelah persetujuan", "enrollment_token_set": "Per perangkat — setujui di Registrations", "enrollment_token_hint": "Setiap instalasi mendaftar sendiri. Setujui perangkat baru di panel Registrations; server kemudian menerbitkan kunci akses unik per komputer.", "enrollment_per_device": "Per perangkat — setujui di Registrations", "background_color": "Latar belakang jendela", "surface_color": "Latar belakang kartu", "text_color": "Warna teks", "text_muted_color": "Warna teks redup", "status_ready_color": "Warna indikator siap", "header_text_color": "Warna teks header", "builds_title": "Build klien", "builds_hint": "Installer yang dikompilasi di server ini untuk setiap platform. Rebuild setelah memperbaiki kesalahan toolchain atau memperbarui sumber agen.", "builds_loading": "Memuat status build…", "builds_empty": "Belum ada build dalam antrian — simpan bundle atau klik Rebuild semua.", "rebuild_all": "Rebuild semua", "rebuilding_all": "Mengantrekan rebuild…", "rebuild_queued": "Semua build platform diantrekan", "rebuild_confirm": "Rebuild semua installer platform untuk bundle ini? Artefak yang sudah siap akan diganti.", "build_status_ready": "Siap", "build_status_pending": "Antrian", "build_status_building": "Membangun", "build_status_failed": "Gagal", "builds_summary": "{{ready}} siap · {{pending}} antrian · {{building}} membangun · {{failed}} gagal", "build_error_hint": "Kesalahan build", "preview_help": "Minta bantuan", "rdclient_tab": "RdClient desktop", "rdclient_new_bundle": "Paket RdClient baru", "rdclient_subtitle": "Buat installer RdClient dengan URL panel tertanam", "rdclient_server_url_hint": "URL publik konsol BetterDesk (/remote).", "agent_client_tab": "Agent Client", "agent_client_new_bundle": "New Agent Client bundle", "support_agent_tab": "Support Agent", "support_agent_new_bundle": "New Support Agent bundle", "product_agent_client": "Agent Client", "product_support_agent": "Support", "product_rdclient": "RdClient" }, "server": { "port": "Port", "api_port": "API Port", "id_server": "Server ID", "relay_server": "Server Relai", "api_key": "API Key" }, "status": { "online": "Online", "offline": "Offline", "banned": "Banned", "running": "Running", "stopped": "Stopped", "unknown": "Unknown", "checking": "Memeriksa...", "label": "Status", "no_signal": "Tanpa sinyal" }, "actions": { "refresh": "Refresh", "copy": "Copy", "connect": "Connect", "connect_desktop": "Terhubung melalui Klien Desktop", "remote_viewer": "Penampil Jarak Jauh", "web_remote": "Jarak Jauh Web", "details": "Details", "edit": "Sunting", "delete": "Hapus", "ban": "Ban", "unban": "Unban", "save": "Simpan", "cancel": "Batalkan", "confirm": "Konfirmasikan", "close": "Tutup", "clear": "Clear", "ok": "OK", "saved": "Berhasil disimpan", "back": "Kembali", "create": "Buat", "dismiss": "Dismiss", "view_all": "Lihat Semua", "cdap_viewer": "CDAP Snapshot Viewer", "add": "Add", "remove": "Remove", "retry": "Coba lagi" }, "time": { "just_now": "Just now", "seconds_ago": "{count} yang lalu", "minutes_ago": "{count}m yang lalu", "hours_ago": "{count}h yang lalu", "days_ago": "{count}d yang lalu", "day_mon": "Mon", "day_tue": "Tue", "day_wed": "Wed", "day_thu": "Thu", "day_fri": "Fri", "day_sat": "Sat", "day_sun": "Sun" }, "users": { "title": "Manajemen Pengguna", "subtitle": "Kelola pengguna dan izin konsol", "add_user": "Add User", "edit_user": "Sunting Pengguna", "username": "Nama pengguna", "username_placeholder": "Masukkan nama pengguna", "username_hint": "3-32 karakter, huruf, angka dan garis bawah saja", "password": "Kata sandi", "password_placeholder": "Masukkan kata sandi", "password_hint": "Minimal 8 karakter dengan campuran huruf besar-kecil, angka dan simbol", "password_leave_empty": "Biarkan kosong agar tetap terkini", "role": "Role", "role_admin": "Administrator", "role_operator": "Remote Operator", "role_viewer": "Viewer", "role_hint": "Server-wide role. Remote Operators connect remotely and can change their own password. Viewers are read-only (no Web Client). Pro License accounts activate RustDesk Pro via the desktop client API only — no web panel access. Organization roles are configured separately.", "created": "Dibuat", "last_login": "Last Login", "never": "Never", "actions": "Actions", "create": "Buat Pengguna", "edit": "Sunting", "reset_password": "Atur Ulang Kata Sandi", "new_password": "Kata Sandi Baru", "delete_title": "Hapus Pengguna", "delete_confirm": "Apakah Anda yakin ingin menghapus pengguna {username}?", "delete_success": "Pengguna berhasil dihapus", "user_created": "Pengguna berhasil dibuat", "user_updated": "Pengguna berhasil diperbarui", "password_reset_success": "Reset kata sandi berhasil", "empty_title": "Tidak ada pengguna yang ditemukan", "empty_text": "Tambahkan pengguna untuk mengelola akses konsol", "fill_required": "Silakan isi semua bidang yang wajib diisi", "invalid_username": "Nama pengguna harus terdiri dari 3-32 karakter, hanya huruf, angka, dan garis bawah", "username_exists": "Nama pengguna sudah ada", "weak_password": "Kata sandi terlalu lemah", "password_too_short": "Kata sandi minimal harus 8 karakter", "invalid_role": "Peran tidak valid", "cannot_demote_self": "Anda tidak dapat menurunkan diri Anda sendiri", "cannot_delete_self": "Anda tidak dapat menghapus akun Anda sendiri", "last_admin": "Tidak dapat menghapus administrator terakhir", "admin_only": "Fitur ini hanya tersedia untuk administrator", "password_required": "Kata sandi diperlukan", "not_found": "Pengguna tidak ditemukan", "strength_weak": "Weak", "strength_medium": "Medium", "strength_strong": "Strong", "security_tips_title": "Praktik Terbaik Keamanan", "tip_strong_passwords": "Gunakan kata sandi yang kuat dan unik untuk setiap pengguna", "tip_unique_accounts": "Buat akun individual untuk setiap orang", "tip_viewer_role": "Use Viewer for read-only monitoring; Remote Operator for users who need to connect", "tip_operator_role": "Use operator role for users who need to manage devices but not users", "tip_audit_logs": "Tinjau log audit secara teratur untuk mengetahui adanya aktivitas mencurigakan", "role_pro": "Pro License (client API only)", "role_super_admin": "Super Admin", "role_server_admin": "Admin Server", "role_global_admin": "Admin Sedunia", "organizations": "Organisasi", "user_organizations": "Organisasi untuk {username}", "no_organizations": "Pengguna tidak ditugaskan ke organisasi mana pun", "org_removed": "Penugasan organisasi dihapus", "server_role_label": "Peran Server", "server_role_hint": "Menentukan apa yang dapat dilakukan pengguna di seluruh konsol (akses panel, konfigurasi server, audit, dll.).", "org_membership_section": "Keanggotaan Organisasi", "org_membership_hint": "Seorang pengguna dapat menjadi anggota beberapa organisasi. Peran organisasi hanya mengontrol izin di dalam organisasi tersebut dan tidak bergantung pada peran server di atas.", "column_organizations": "Organisasi", "no_orgs_short": "—", "org_count_one": "Organisasi {count}", "org_count_many": "Organisasi {count}", "all_orgs_assigned": "Pengguna sudah menjadi anggota setiap organisasi.", "user_groups": "Kelompok pengguna", "user_groups_hint": "Grup pengguna dapat digunakan untuk memberikan akses ke grup perangkat yang dipilih.", "loading_user_groups": "Memuat grup pengguna...", "no_user_groups": "Tidak ada grup pengguna yang tersedia", "create_user_group": "Buat grup", "edit_user_group": "Edit grup pengguna", "delete_user_group": "Hapus grup pengguna", "delete_user_group_confirm": "Hapus grup pengguna {name}? Anggota akan kehilangan akses yang diberikan melalui grup ini.", "user_group_created": "Grup pengguna dibuat", "user_group_updated": "Grup pengguna diperbarui", "user_group_deleted": "Grup pengguna dihapus", "user_group_not_found": "Grup pengguna tidak ditemukan", "group_name": "Nama grup", "group_name_placeholder": "Operator", "group_note": "Note", "group_note_placeholder": "Catatan opsional", "group_name_required": "Nama grup wajib diisi", "group_members_count": "Anggota {count}", "provider": "Penyedia", "provider_local": "Lokal", "provider_ldap": "LDAP/AD", "provider_oidc": "SSO", "password_managed_by_provider": "Dikelola oleh penyedia identitas", "provider_managed_hint": "Akun ini dikelola oleh penyedia identitas eksternal (LDAP/AD atau SSO). Kata sandi dan peran dikendalikan oleh penyedia dan tidak dapat diubah di sini.", "email": "Email", "email_placeholder": "operator@example.com", "email_hint": "Used for help request notifications when the user is assigned to device folders or groups.", "scope_hint": "Limit which devices this user sees: assign user groups, folders, and/or direct devices. Without restrictions, operators and viewers see all devices (unless the server uses restricted default mode in Settings).", "role_desc_viewer": "Read-only panel access: device list, audit, metrics. Cannot use Web Remote Desktop.", "role_desc_operator": "Can connect via Web Client and RustDesk desktop, edit devices, and change own password in Settings.", "role_desc_pro": "RustDesk desktop client API only — activates Pro license. Blocked from web panel login.", "role_desc_admin": "Full access (legacy alias for Super Admin).", "role_desc_super_admin": "Full server and panel access, including user and server configuration.", "role_desc_server_admin": "Server infrastructure, keys, and read-only user visibility. No device connect.", "role_desc_global_admin": "Manage all users, organizations, and devices. Cannot change server config.", "user_folders": "Folder access", "user_folders_hint": "Devices in selected folders are visible to this user when folder ACL is configured.", "user_direct_devices": "Direct devices", "user_direct_devices_hint": "Grant access to specific devices regardless of folder or group membership.", "user_direct_devices_placeholder": "Enter device IDs separated by commas", "effective_scope_count": "{count} devices visible", "loading_folders": "Loading folders...", "no_folders": "No folders available", "pro_strategy_label": "RustDesk Pro strategy", "pro_strategy_hint": "Optional access-control strategy for RustDesk Pro client features (separate from panel role).", "pro_strategy_none": "None", "column_scope": "Scope" }, "folders": { "title": "Folders", "create": "Buat Folder", "edit": "Sunting Map", "delete": "Hapus Folder", "name": "Folder Name", "name_placeholder": "Masukkan nama folder", "name_required": "Nama folder wajib diisi", "name_too_long": "Nama folder terlalu panjang (maks 50 karakter)", "color": "Color", "icon": "Icon", "not_found": "Foldernya tidak ditemukan", "delete_confirm": "Apakah Anda yakin ingin menghapus folder ini? Penetapan perangkat akan dibatalkan.", "delete_success": "Folder berhasil dihapus", "created": "Folder berhasil dibuat", "updated": "Folder berhasil diperbarui", "no_devices_selected": "Tidak ada perangkat yang dipilih", "devices_moved": "Perangkat berhasil dipindahkan", "device_assigned": "Perangkat ditetapkan ke folder", "unassigned": "Unassigned", "all_devices": "Semua Perangkat", "drag_hint": "Seret perangkat ke folder untuk mengaturnya", "move_to": "Pindah ke", "toggle_sidebar": "Alihkan bilah sisi" }, "errors": { "forbidden_title": "Akses Ditolak", "forbidden_message": "Anda tidak memiliki izin untuk mengakses sumber daya ini.", "not_found_title": "Halaman Tidak Ditemukan", "not_found_message": "Halaman yang Anda cari tidak ada atau telah dipindahkan.", "server_error_title": "Kesalahan Server", "server_error_message": "Ada yang tidak beres. Silakan coba lagi nanti.", "go_home": "Go Home", "try_again": "Try Again", "load_devices_failed": "Gagal memuat perangkat", "load_key_failed": "Gagal memuat kunci", "load_qr_failed": "Gagal memuat QR", "load_audit_failed": "Gagal memuat log audit", "load_users_failed": "Gagal memuat pengguna", "load_folders_failed": "Gagal memuat folder", "download_failed": "Pengunduhan gagal", "logout_failed": "Gagal keluar", "password_change_failed": "Gagal mengubah kata sandi", "language_change_failed": "Gagal mengubah bahasa", "ban_failed": "Gagal memblokir perangkat", "unban_failed": "Gagal membatalkan pemblokiran perangkat", "delete_failed": "Gagal menghapus perangkat", "change_id_failed": "Gagal mengubah ID perangkat", "bulk_delete_failed": "Gagal menghapus perangkat", "sync_failed": "Gagal menyinkronkan status", "error": "Error", "not_found": "Not found", "server_error": "Kesalahan server", "load_device_failed": "Gagal memuat perangkat", "load_orgs_failed": "Gagal memuat organisasi" }, "remote": { "title": "Desktop Jarak Jauh", "connecting": "Menghubungkan...", "waiting_password": "Menunggu kata sandi", "authenticating": "Mengautentikasi...", "streaming": "Connected", "disconnected": "Disconnected", "error": "Error", "status_idle": "Idle", "password_required": "Kata Sandi Diperlukan", "enter_password_for": "Masukkan kata sandi untuk perangkat", "password_placeholder": "Kata sandi perangkat", "connect": "Connect", "reconnect": "Reconnect", "disconnect": "Disconnect", "back_to_devices": "Kembali ke Perangkat", "fullscreen": "Fullscreen", "toggle_audio": "Alihkan Audio", "send_keys": "Kirim Kunci", "scale_mode": "Scale Mode", "scale_fit": "Cocok untuk Jendela", "scale_fill": "Fill Window", "scale_original": "Ukuran Asli (1:1)", "scale_stretch": "Regangkan untuk Mengisi", "actions": "Actions", "lock_screen": "Layar Kunci", "restart_remote": "Mulai ulang Perangkat Jarak Jauh", "refresh_screen": "Segarkan Layar", "clipboard_paste": "Tempel dari Papan Klip", "block_input": "Block Input", "reset_keyboard": "Reset status keyboard", "reset_keyboard_done": "Status keyboard di remote direset", "keyboard_mode": "Mode keyboard", "keyboard_mode_auto": "Otomatis (Map, seperti RustDesk)", "keyboard_mode_legacy": "Legacy (karakter)", "keyboard_mode_map": "Map (scancode fisik)", "display_settings": "Pengaturan Tampilan", "image_quality": "Kualitas Gambar", "quality_best": "Terbaik (Kualitas Penuh, 60fps)", "quality_balanced": "Balanced", "quality_low": "Performance", "show_cursor": "Tampilkan Kursor Jarak Jauh", "lock_after_session": "Kunci Setelah Sesi", "privacy_mode": "Modus Privasi", "disable_clipboard": "Nonaktifkan Papan Klip", "chat": "Chat", "chat_placeholder": "Ketik pesan...", "record": "Rekam Layar", "view_only": "Lihat Saja", "pin_toolbar": "Sematkan Bilah Alat", "monitors": "Monitors", "select_monitor": "Pilih Pantau", "quality_speed": "Kecepatan (Kualitas Rendah, 60fps)", "quality_quality": "Kualitas (Terbaik, 30fps)", "recording_started": "Perekaman dimulai", "recording_stopped": "Perekaman dihentikan", "download_recording": "Unduh Rekaman", "e2e_encrypted": "Dienkripsi Ujung-ke-Ujung", "e2e_key_exchange": "Membangun saluran aman...", "confirm_restart": "Apakah Anda yakin ingin memulai ulang perangkat jarak jauh?", "webcodecs_not_supported": "Browser Anda tidak mendukung WebCodecs API. Silakan gunakan Chrome 94+ atau Edge 94+.", "webcodecs_insecure_context": "WebCodecs tidak tersedia melalui HTTP. Video menggunakan fallback perangkat lunak. Untuk performa terbaik, gunakan HTTPS.", "webcodecs_fallback_active": "Dekoder video perangkat lunak aktif (kinerja terbatas)", "click_to_start": "Klik untuk Memulai", "autoplay_blocked": "Browser memerlukan interaksi pengguna untuk memulai pemutaran video dan audio.", "start_playback": "Mulai Pemutaran", "new_connection": "Koneksi Baru", "device_id_placeholder": "Masukkan ID Perangkat", "session_picker": { "title": "Pilih perangkat", "already_connected": "Sudah terhubung" }, "http_warning": "Mode HTTP: terbatas pada dekode perangkat lunak H.264 (~15 FPS). Gunakan HTTPS untuk performa penuh (WebCodecs, VP9, 60 FPS).", "file_transfer": "Pemindahan Berkas", "file_upload": "Upload", "file_download": "Download", "file_empty": "Folder ini kosong", "file_transfers": "Transfers", "file_complete": "Complete", "file_error": "Transfer gagal", "file_show_hidden": "Tampilkan file tersembunyi", "file_new_folder": "New Folder", "file_new_folder_prompt": "Masukkan nama folder:", "file_parent": "Folder induk", "file_root": "Root", "file_rename": "Rename", "file_rename_prompt": "Masukkan nama baru:", "file_delete_confirm": "Apakah Anda yakin ingin menghapus item ini?", "file_cancelled": "Pemindahan dibatalkan", "2fa_required": "Diperlukan Verifikasi 2FA", "2fa_hint": "Masukkan kode 6 digit dari aplikasi autentikator Anda", "2fa_invalid": "Masukkan kode 6 digit yang valid", "verify": "Verify", "use_cdap_fallback": "Gunakan penampil CDAP", "cdap_fallback_hint": "Open the lightweight JPEG-polling viewer that uses bd-signal/CDAP instead of the RustDesk relay. Useful when the peer is offline on the relay but reachable via the agent management channel.", "clipboard_empty": "Papan klip kosong", "clipboard_denied": "Akses papan klip ditolak. HTTPS diperlukan atau izin tidak diberikan.", "file_loading": "Memuat...", "file_timeout": "Perangkat jarak jauh tidak merespons. Transfer file mungkin tidak didukung atau dinonaktifkan pada mesin jarak jauh.", "codec": "Kodek Video", "codec_auto": "Otomatis (disarankan)", "remember_peer_password": "Ingat kata sandi perangkat di komputer ini", "save_peer_password": "Simpan kata sandi", "input_mode_touch": "Sentuh", "input_mode_touchpad": "Touchpad", "show_keyboard": "Keyboard", "special_keys": "Tombol khusus", "special_print_screen": "Print Screen", "mobile_toolbar": "Kontrol remote", "phone_unsupported_title": "Desktop jarak jauh memerlukan layar lebih besar", "phone_unsupported_body": "Gunakan tablet, foldable terbuka, atau desktop. Kelola perangkat tetap di konsol.", "phone_unsupported_back_devices": "Kembali ke perangkat", "phone_unsupported_get_desktop": "Dapatkan RdClient desktop", "file_local": "Komputer lokal", "file_remote": "Komputer jarak jauh", "file_send": "Kirim", "file_pick_folder": "Pilih folder", "file_queue_empty": "Tidak ada transfer yang berlangsung", "file_connecting": "Menghubungkan sesi transfer file…", "file_connect_failed": "Tidak dapat membuka sesi transfer file", "file_local_limited": "Penelusuran folder lokal penuh memerlukan Chrome atau Edge melalui HTTPS. Unggah dan unduh tetap berfungsi.", "file_transfer_unavailable_cdap": "Transfer file tidak tersedia untuk sesi snapshot CDAP.", "file_status_waiting": "Menunggu…", "file_status_transferring": "Mentransfer…", "file_status_saving": "Menyimpan…", "file_status_downloaded": "Diunduh", "file_status_uploaded": "Diunggah", "file_drop_upload_hint": "Lepaskan untuk mengunggah ke: {path}", "file_local_upload_hint": "Letakkan file di kotak kiri atau klik untuk mengunggah. Tujuan adalah folder yang terbuka di sisi remote.", "file_transfer_stalled": "Perangkat remote tidak memulai transfer", "file_no_local_tree": "Pilih folder untuk menelusuri file lokal (opsional)", "file_dropzone_title": "Letakkan file di sini", "file_dropzone_subtitle": "atau klik untuk memilih file", "file_dropzone_multiple": "Beberapa file didukung", "file_dropzone_waiting": "Menunggu koneksi remote…", "file_overwrite_title": "File sudah ada", "file_overwrite_message": "File bernama «{name}» sudah ada di komputer remote. Timpa?", "file_overwrite_skip": "Lewati", "file_overwrite_skip_all": "Lewati semua", "file_overwrite_confirm": "Timpa", "file_overwrite_all": "Timpa semua", "file_resume": "Lanjutkan", "file_open": "Buka", "file_up": "Naik", "file_home": "Beranda", "file_hide_hidden": "Sembunyikan file tersembunyi", "windows_sessions": "Sesi Windows" }, "branding": { "identity_title": "Identitas Merek", "identity_desc": "Sesuaikan nama dan deskripsi aplikasi yang ditampilkan di seluruh konsol", "app_name": "Nama Aplikasi", "app_description": "Deskripsi Aplikasi", "logo_title": "Logo", "logo_desc": "Pilih bagaimana logo Anda muncul di sidebar dan halaman login", "logo_type_icon": "Ikon Bahan", "logo_type_svg": "SVG Code", "logo_type_image": "Image URL", "logo_icon_name": "Icon Name", "logo_icon_hint": "Masukkan nama Ikon Material (misalnya dns, cloud, keamanan). Lihat font.google.com/icons", "logo_svg_code": "SVG Code", "logo_svg_hint": "Tempelkan markup SVG Anda di sini. Mendukung elemen penuh dengan jalur dan gaya.", "logo_image_upload": "Unggah Gambar", "logo_image_choose": "Pilih file gambar", "logo_image_hint": "PNG, JPG, GIF, WebP or SVG. Max 1.5 MB. The image is stored as base64 data.", "logo_image_url": "Image Data / URL", "logo_image_url_hint": "Auto-filled when you upload a file, or paste a URL manually.", "logo_image_too_large": "Image is too large. Maximum size is 1.5 MB.", "logo_image_invalid_type": "Jenis berkas tidak valid. Gunakan PNG, JPG, GIF, WebP atau SVG.", "preview": "Preview", "colors_title": "Skema Warna", "colors_desc": "Sesuaikan palet warna. Biarkan kosong untuk menggunakan default.", "colors_backgrounds": "Backgrounds", "colors_text": "Text", "colors_accents": "Warna Aksen", "colors_borders": "Borders", "import_export_title": "Impor / Ekspor", "import_export_desc": "Simpan tema Anda sebagai file JSON atau impor tema dari instance lain", "export_theme": "Ekspor Tema", "import_theme": "Impor Tema", "reset_defaults": "Atur Ulang ke Default", "save_branding": "Simpan Merek", "saved": "Branding saved successfully.", "exported": "Tema diekspor", "imported": "Theme imported successfully.", "import_error": "Gagal mengimpor tema. Format berkas tidak valid.", "reset_confirm": "Apakah Anda yakin ingin menyetel ulang pencitraan merek ke default? Hal ini tidak dapat dibatalkan.", "reset_success": "Branding reset to defaults.", "logo_type_text": "Text Logo", "logo_text": "Logo Text", "logo_text_hint": "Teks utama ditampilkan sebagai logo merek Anda", "logo_text_accent": "Accent Text", "logo_text_accent_hint": "Teks sekunder di bawah logo (misalnya nama produk atau tagline)", "logo_upload_success": "Logo berhasil diunggah.", "typography_title": "Typography", "typography_desc": "Pilih font untuk judul dan teks isi. Font diunduh ke server untuk dihosting sendiri.", "font_heading": "Font Judul", "font_heading_hint": "Digunakan untuk judul (H1–H6) dan logo teks", "font_body": "Body Font", "font_body_hint": "Digunakan untuk teks isi dan elemen UI", "font_search_placeholder": "Cari font...", "font_system_default": "Bawaan sistem", "font_clear": "Clear", "font_cat_all": "All", "font_downloaded_count": "font diunduh di server", "powered_by": "Didukung oleh", "background_title": "Latar Belakang & Tampilan", "background_desc": "Atur wallpaper console, gradient, atau latar belakang warna solid. Kartu melayang di atasnya.", "bg_type_none": "Tidak ada", "bg_type_color": "Warna Solid", "bg_type_gradient": "Gradient", "bg_type_image": "Gambar", "bg_color": "Warna Latar Belakang", "bg_gradient": "Gradien CSS", "bg_gradient_hint": "CSS gradient yang valid, mis. linear-gradient(135deg, #1e293b, #0f172a)", "bg_image_upload": "Unggah Gambar Latar Belakang", "bg_image_choose": "Pilih file gambar", "bg_image_hint": "PNG, JPG, WebP atau GIF. Maks 8 MB. Disimpan di server.", "bg_image_url": "Path / URL Gambar", "bg_size": "Ukuran Gambar", "bg_size_cover": "Cover (isi layar)", "bg_size_contain": "Contain (sesuaikan)", "bg_size_auto": "Otomatis (asli)", "bg_blur": "Blur Latar Belakang", "bg_overlay": "Overlay Gelap", "bg_overlay_hint": "Mempergelap latar belakang untuk keterbacaan teks yang lebih baik.", "bg_image_too_large": "Gambar terlalu besar. Ukuran maksimum 8 MB.", "bg_image_invalid_type": "Jenis file tidak valid. Gunakan PNG, JPG, WebP atau GIF.", "bg_upload_success": "Gambar latar belakang berhasil diunggah.", "login_title": "Halaman Login", "login_desc": "Sesuaikan judul, subjudul, dan latar belakang layar login.", "login_heading": "Judul Login", "login_heading_placeholder": "Selamat datang kembali", "login_subheading": "Subjudul Login", "login_subheading_placeholder": "Masuk ke akun Anda", "login_bg_inherit": "Sama dengan console", "agent_title": "Halaman Unduhan Agent", "agent_desc": "Sesuaikan portal unduhan agent publik yang ditampilkan kepada pengguna akhir.", "agent_show_powered": "Tampilkan \"Powered by BetterDesk\"", "agent_show_powered_hint": "Tampilkan atribusi BetterDesk di footer portal unduhan.", "footer_title": "Footer & Hak Cipta", "footer_desc": "Tambahkan baris footer kustom yang ditampilkan di layar login dan sidebar console.", "footer_text": "Teks Footer", "footer_text_hint": "mis. pemberitahuan hak cipta atau nama perusahaan.", "show_powered": "Tampilkan atribusi \"BetterDesk\"", "show_powered_hint": "Tampilkan nama dan versi BetterDesk di footer login dan sidebar.", "custom_css_title": "CSS Kustom", "custom_css_desc": "Lanjutan: injeksi CSS kustom yang diterapkan di seluruh console dan halaman login.", "custom_css_hint": "Gunakan dengan hati-hati. Aturan yang tidak valid atau tidak aman akan dibersihkan. Maks 20.000 karakter.", "save_now": "Save now", "autosaved": "Changes saved automatically.", "status_saved": "All changes saved", "status_dirty": "Unsaved changes", "status_saving": "Saving…", "status_error": "Save failed", "revert_changes": "Revert changes", "profiles_label": "Appearance profile", "profile_apply": "Apply profile", "profile_new": "New profile", "profile_save": "Save to profile", "profile_duplicate": "Duplicate", "profile_delete": "Delete", "profile_none": "— Select profile —", "profile_active": "active", "profile_applied": "Profile applied.", "profile_created": "Profile created.", "profile_updated": "Profile updated.", "profile_duplicated": "Profile duplicated.", "profile_deleted": "Profile deleted.", "profile_delete_confirm": "Delete this appearance profile?", "profile_name_prompt": "Profile name:", "profile_select_first": "Select a profile first.", "builtin_themes": "Built-in themes", "theme_apply_confirm": "Apply this built-in theme? Current settings will be replaced.", "theme_applied": "Theme applied.", "module_identity": "Identity & logo", "module_colors": "Colors", "module_typography": "Typography", "module_backgrounds": "Console background", "module_pages": "Login & agent pages", "module_advanced": "Advanced", "modules_nav": "Appearance modules", "live_preview": "Live preview", "preview_apply_page": "Preview on this page", "preview_card_title": "Dashboard card", "preview_card_body": "Sample body text showing your typography and colors.", "preview_btn_primary": "Primary", "preview_btn_secondary": "Secondary", "font_google": "Google Fonts", "font_local": "Downloaded", "font_upload": "Upload custom", "font_upload_choose": "Choose font file", "font_upload_name": "Font family name", "font_upload_success": "Font uploaded successfully.", "font_local_empty": "No fonts downloaded yet.", "font_delete": "Remove font", "glass_title": "Permukaan kaca", "glass_desc": "Latar belakang kaca buram untuk kartu, modal, formulir, dan elemen panel lainnya.", "glass_enabled": "Aktifkan permukaan kaca", "glass_color": "Warna tinta kaca", "glass_color_hint": "Warna dasar untuk panel buram. Menggunakan warna latar sekunder jika kosong.", "glass_blur": "Blur permukaan", "glass_opacity": "Opasitas kaca" }, "device_detail": { "tab_overview": "Ikhtisar", "tab_tags": "Tag & Catatan", "tab_actions": "Actions", "section_identity": "Identity", "section_network": "Network", "section_timestamps": "Timestamps", "section_connect": "Koneksi", "section_manage": "Manajemen", "folder": "Folder", "status_tier": "Status Tier", "device_banned": "Perangkat ini dilarang", "no_reason": "Tidak ada alasan yang diberikan", "tags": "Tags", "no_tags": "Tidak ada tag yang ditetapkan untuk perangkat ini", "tag_placeholder": "Masukkan nama tag...", "add_tag": "Add", "tag_exists": "Tag ini sudah ada", "notes": "Notes", "notes_placeholder": "Tambahkan catatan tentang perangkat ini...", "danger_zone": "Danger Zone", "action_connect_web": "Jarak Jauh Web", "action_connect_web_desc": "Terhubung melalui browser desktop jarak jauh", "action_native_remote": "BetterDesk Jarak Jauh", "action_native_remote_desc": "Native JPEG stream — no plugins required", "action_connect_desktop": "Klien Desktop", "action_connect_desktop_desc": "Buka di aplikasi klien desktop", "action_change_id_desc": "Ubah ID pendaftaran perangkat", "action_ban_desc": "Blokir perangkat ini agar tidak terhubung", "action_unban_desc": "Izinkan perangkat ini terhubung kembali", "action_delete_desc": "Hapus perangkat ini secara permanen", "tab_hardware": "Hardware", "tab_metrics": "Metrik", "section_system": "System", "section_cpu": "Processor", "section_memory": "Memory", "section_displays": "Displays", "section_encoding": "Kemampuan Pengkodean", "section_live_metrics": "Metrik Langsung", "section_current_usage": "Penggunaan Saat Ini", "section_usage_history": "Riwayat Penggunaan", "os": "Operating System", "version": "Client Version", "cpu_model": "CPU Model", "cpu_cores": "CPU Cores", "cpu_freq": "Frekuensi CPU", "total_memory": "Jumlah Memori", "metric_memory": "Memory", "metric_disk": "Disk", "metrics_updated": "Diperbarui", "device_groups": "Grup", "no_sysinfo": "Tidak ada informasi perangkat keras yang tersedia", "no_sysinfo_hint": "Info sistem akan muncul setelah perangkat mengirimkan laporan sysinfo", "no_metrics": "Tidak ada data metrik yang tersedia", "no_metrics_hint": "Metrik akan muncul setelah perangkat mengirimkan laporan detak jantung", "chart_oldest": "← Oldest", "chart_newest": "Newest →", "tab_services": "Services", "tab_processes": "Processes", "tab_events": "Events", "tab_activity": "Activity", "tab_files": "File", "agent_lazy_hint": "Klik tab ini untuk memuat data langsung dari agen", "agent_offline": "Agen sedang offline", "agent_timeout": "Agen tidak merespons tepat waktu", "agent_error": "Gagal memuat data dari agen", "service_name": "Name", "service_display": "Nama tampilan", "service_status": "Status", "service_start": "Start mode", "process_name": "Name", "process_user": "User", "process_memory": "Memory" }, "inventory": { "title": "Inventory", "subtitle": "Inventarisasi perangkat keras dan perangkat lunak dari perangkat yang dikelola", "device_id": "ID Perangkat", "hostname": "Hostname", "os": "Operating System", "cpu": "CPU", "cpu_cores": "CPU Cores", "cpu_usage": "CPU Usage", "memory": "Memory", "memory_total": "Jumlah Memori", "memory_used": "Used Memory", "memory_available": "Memori yang Tersedia", "memory_usage": "Penggunaan Memori", "swap": "Swap", "disks": "Disks", "disk_count": "Disk Count", "network": "Network", "network_interfaces": "Antarmuka Jaringan", "software": "Software", "software_count": "Perangkat Lunak yang Diinstal", "system": "System", "kernel": "Kernel", "architecture": "Architecture", "uptime": "Uptime", "frequency": "Frequency", "physical_cores": "Inti Fisik", "logical_cores": "Inti Logis", "model": "Model", "usage": "Usage", "total": "Total", "used": "Used", "available": "Tersedia", "mount_point": "Mount Point", "removable": "removable", "mac_address": "MAC Address", "ip_addresses": "Alamat IP", "traffic": "Traffic", "collect_now": "Collect Now", "collector_running": "Kolektor Berlari", "collector_stopped": "Kolektor Berhenti", "last_upload": "Last upload", "total_uploads": "total", "last_seen": "Last Seen", "collected_at": "Dikumpulkan Pada", "no_data": "Belum ada data inventaris yang tersedia. Klik \"Kumpulkan Sekarang\" untuk mengumpulkan informasi sistem.", "no_devices": "Tidak ada perangkat dengan data inventaris yang ditemukan", "detail_title": "Detail Inventaris Perangkat", "telemetry": "Telemetry", "view_detail": "Lihat Detil", "export": "Export", "refresh": "Refresh" }, "tickets": { "title": "Tickets", "subtitle": "Mendukung tiket dan pelacakan masalah", "create": "New Ticket", "edit": "Sunting Tiket", "delete": "Hapus Tiket", "detail": "Detail Tiket", "ticket_id": "Ticket ID", "ticket_title": "Title", "description": "Description", "status": "Status", "priority": "Priority", "category": "Category", "assigned_to": "Ditugaskan Ke", "created_by": "Dibuat Oleh", "device": "Perangkat", "sla_due": "SLA Due", "created_at": "Dibuat", "updated_at": "Diperbarui", "resolved_at": "Resolved", "closed_at": "Closed", "status_open": "Buka", "status_in_progress": "In Progress", "status_resolved": "Resolved", "status_closed": "Closed", "priority_low": "Low", "priority_medium": "Medium", "priority_high": "High", "priority_critical": "Critical", "category_general": "General", "category_hardware": "Hardware", "category_software": "Software", "category_network": "Network", "category_access": "Access", "category_other": "Other", "comments": "Comments", "add_comment": "Add Comment", "comment_placeholder": "Tulis komentar...", "internal_note": "Catatan internal (tidak terlihat oleh pengguna akhir)", "attachments": "Attachments", "upload_attachment": "Unggah Lampiran", "download": "Download", "connect_device": "Hubungkan ke Perangkat", "no_tickets": "Tidak ada tiket yang ditemukan", "no_comments": "Belum ada komentar", "no_attachments": "Tidak ada lampiran", "title_required": "Judul diperlukan", "delete_confirm": "Apakah Anda yakin ingin menghapus tiket #{id}?", "delete_success": "Tiket berhasil dihapus", "created_success": "Tiket berhasil dibuat", "updated_success": "Tiket berhasil diperbarui", "sla_overdue": "SLA Overdue", "filter_all": "All", "search_placeholder": "Cari tiket...", "assign_to_me": "Tetapkan untuk saya", "unassign": "Unassign", "stats_total": "Total", "stats_open": "Buka", "stats_in_progress": "In Progress", "stats_resolved": "Resolved", "stats_closed": "Closed" }, "activity": { "title": "Pemantauan Aktivitas", "subtitle": "Penggunaan aplikasi dan pelacakan menganggur", "device": "Perangkat", "hostname": "Hostname", "sessions": "Sesi", "idle_time": "Idle Time", "active_time": "Active Time", "last_report": "Last Report", "top_apps": "Aplikasi Teratas", "app_name": "Application", "window_title": "Judul Jendela", "category": "Category", "duration": "Duration", "started_at": "Started", "ended_at": "Ended", "session_count": "Jumlah Sesi", "total_active": "Jumlah Aktif", "total_idle": "Total Idle", "detail_count": "Catatan Detil", "no_data": "Tidak ada data aktivitas yang tersedia", "no_sessions": "Tidak ada sesi", "filter_from": "Dari", "filter_to": "Untuk", "filter_apply": "Terapkan penyaring", "hours": "hours", "minutes": "minutes", "seconds": "seconds", "category_browser": "Browser", "category_productivity": "Productivity", "category_communication": "Communication", "category_development": "Development", "category_media": "Media", "category_gaming": "Gaming", "category_system": "System", "category_other": "Other", "summary": "Summary", "details": "Details", "refresh": "Refresh", "search": "Telusuri perangkat...", "date_range": "Date Range", "device_id": "ID Perangkat", "session_start": "Sesi Dimulai", "session_end": "Sesi Berakhir", "user": "User", "no_activity": "Tidak ada aktivitas yang tercatat", "reported_at": "Reported At", "detail": "Detail", "no_apps": "Tidak ada aplikasi" }, "automation": { "title": "Otomatisasi & Peringatan", "subtitle": "Aturan peringatan, perintah jarak jauh", "rules": "Alert Rules", "rules_subtitle": "Tentukan kondisi yang memicu notifikasi", "alerts": "Riwayat Peringatan", "alerts_subtitle": "Lihat dan akui peringatan yang dipicu", "commands": "Perintah Jarak Jauh", "commands_subtitle": "Kirim perintah ke perangkat jarak jauh", "smtp": "Konfigurasi SMTP", "smtp_subtitle": "Pengaturan pemberitahuan email", "rule_name": "Rule Name", "description": "Description", "condition_type": "Tipe Kondisi", "condition_op": "Operator", "condition_value": "Threshold", "severity": "Severity", "scope_device": "Perangkat Sasaran", "scope_all": "Semua Perangkat", "cooldown": "Waktu tunggu (detik)", "notify_emails": "Email Pemberitahuan", "enabled": "Diaktifkan", "disabled": "Dengan disabilitas", "create_rule": "Buat Aturan", "edit_rule": "Sunting Aturan", "delete_rule": "Hapus Aturan", "acknowledge": "Acknowledge", "acknowledged": "Acknowledged", "unacknowledged": "Unacknowledged", "triggered_at": "Dipicu Pada", "severity_info": "Info", "severity_warning": "Warning", "severity_critical": "Critical", "op_gt": "Lebih besar dari", "op_gte": "Lebih besar atau setara", "op_lt": "Less than", "op_lte": "Kurang atau sama", "op_eq": "Sama dengan", "op_neq": "Tidak sama dengan", "type_cpu_usage": "Penggunaan CPU (%)", "type_memory_usage": "Penggunaan Memori (%)", "type_disk_usage": "Penggunaan Disk (%)", "type_offline_duration": "Durasi Offline", "type_idle_duration": "Durasi Menganggur", "type_custom": "Custom", "command_type": "Tipe Perintah", "command_payload": "Perintah/Skrip", "command_result": "Result", "command_status": "Status", "send_command": "Kirim Perintah", "status_pending": "Pending", "status_running": "Running", "status_completed": "Completed", "status_failed": "Gagal", "smtp_host": "SMTP Host", "smtp_port": "Port", "smtp_secure": "Use TLS", "smtp_user": "Nama pengguna", "smtp_pass": "Kata sandi", "smtp_from": "Dari Alamat", "smtp_test": "Uji Koneksi", "smtp_save": "Simpan Konfigurasi", "smtp_test_success": "Koneksi berhasil", "smtp_test_failed": "Koneksi gagal", "no_rules": "Tidak ada aturan pemberitahuan yang dikonfigurasi", "no_alerts": "Tidak ada peringatan yang dipicu", "no_commands": "Tidak ada perintah yang dikirim", "id_payload_required": "ID perangkat dan payload diperlukan", "no_commands_sent": "Belum ada perintah yang dikirim" }, "file_transfer": { "title": "Pemindahan Berkas", "transfers": "Transfers", "new_transfer": "Pemindahan Baru", "upload": "Upload", "download": "Download", "direction": "Direction", "filename": "Filename", "file_size": "Ukuran Berkas", "mime_type": "MIME Type", "progress": "Progress", "status": "Status", "device": "Perangkat", "initiated_by": "Diprakarsai Oleh", "created_at": "Dibuat Pada", "cancel": "Batalkan", "cancel_confirm": "Apakah Anda yakin ingin membatalkan transfer ini?", "download_file": "Unduh Berkas", "browse_files": "Jelajahi File", "select_file": "Pilih File", "select_device": "Pilih Perangkat", "no_transfers": "Tidak ada transfer file", "status_pending": "Pending", "status_active": "Active", "status_completed": "Completed", "status_failed": "Gagal", "status_cancelled": "Cancelled", "bytes_transferred": "Byte Ditransfer", "chunks": "Chunks", "transfer_started": "Transfer dimulai", "transfer_completed": "Transfer selesai", "transfer_failed": "Transfer gagal", "transfer_cancelled": "Pemindahan dibatalkan", "max_file_size": "Ukuran file maksimum: 4 GB", "error_too_large": "File terlalu besar", "error_no_device": "Tidak ada perangkat yang dipilih", "error_no_file": "Tidak ada berkas yang dipilih" }, "network": { "title": "Pemantauan Jaringan", "targets": "Target Pemantauan", "add_target": "Add Target", "edit_target": "Sunting Sasaran", "delete_target": "Hapus Sasaran", "delete_confirm": "Apakah Anda yakin ingin menghapus target ini?", "target_name": "Name", "host": "Host", "port": "Port", "url": "URL", "check_type": "Check Type", "timeout": "Batas waktu (md)", "interval": "Interval waktu", "enabled": "Diaktifkan", "status": "Status", "last_check": "Last Check", "last_rtt": "Last RTT", "rtt_ms": "RTT (ms)", "status_up": "Up", "status_down": "Down", "status_unknown": "Unknown", "check_now": "Check Now", "history": "Periksa Riwayat", "stats": "Statistics", "total_targets": "Jumlah Sasaran", "targets_up": "Targets Up", "targets_down": "Target Turun", "type_ping": "Ping (ICMP)", "type_tcp": "TCP Port", "type_http": "HTTP", "type_https": "HTTPS", "tools": "Alat Jaringan", "ping_tool": "Ping Test", "tcp_tool": "Pemeriksaan Port TCP", "http_tool": "HTTP Check", "dns_tool": "DNS Resolve", "monitor_start": "Mulai Memantau", "monitor_stop": "Hentikan Pemantauan", "monitor_running": "Monitor sedang berjalan", "monitor_stopped": "Monitor dihentikan", "no_targets": "Tidak ada target pemantauan yang dikonfigurasi", "no_history": "Tidak ada riwayat pemeriksaan yang tersedia", "error_code": "Error", "status_code": "Kode Status HTTP", "search_targets": "Target pencarian...", "name": "Name", "tab_targets": "Targets", "tab_tools": "Tools", "avg_latency": "Avg Latency", "type": "Type", "latency": "Latency", "check_history": "Periksa Riwayat", "name_host_required": "Nama dan host diperlukan", "uptime": "Uptime", "response_time": "Waktu Respons", "avg_response": "Respon Rata-Rata", "charts": "Charts", "realtime": "Realtime", "response_time_ms": "Waktu Respons (md)", "uptime_percent": "Uptime %", "last_24h": "24 jam terakhir", "last_7d": "Last 7 days", "last_30d": "30 hari terakhir" }, "dataguard": { "title": "DataGuard — DLP", "policies": "Kebijakan DLP", "add_policy": "Tambahkan Kebijakan", "edit_policy": "Sunting Kebijakan", "delete_policy": "Hapus Kebijakan", "delete_confirm": "Apakah Anda yakin ingin menghapus kebijakan ini?", "policy_name": "Name", "policy_description": "Description", "status": "Status", "enabled": "Diaktifkan", "disabled": "Dengan disabilitas", "rules": "Rules", "add_rule": "Add Rule", "rule_type": "Rule Type", "rule_type_usb": "Perangkat USB", "rule_type_file": "Operasi Berkas", "action": "Action", "action_allow": "Allow", "action_block": "Block", "action_log": "Log Only", "filter": "Filter", "vid": "ID Vendor (VID)", "pid": "ID Produk (PID)", "serial": "Nomor Seri", "device_class": "Kelas Perangkat", "drive_type": "Drive Type", "file_extensions": "Ekstensi File", "events": "DLP Events", "event_source": "Source", "event_source_usb": "USB", "event_source_file": "Mengajukan", "event_type": "Event Type", "event_details": "Details", "no_policies": "Tidak ada kebijakan DLP yang dikonfigurasi", "no_events": "Tidak ada peristiwa DLP yang direkam", "stats": "Statistics", "total_events": "Jumlah Acara", "blocked_events": "Blocked", "logged_events": "Logged", "usb_events": "USB Events", "file_events": "File Acara", "device_id": "ID Perangkat", "policy_matched": "Kebijakan Cocok", "timestamp": "Timestamp", "drive_removable": "Removable", "drive_fixed": "Fixed", "drive_network": "Network", "drive_cdrom": "CD-ROM", "drive_unknown": "Unknown", "total_policies": "Jumlah Kebijakan", "active_policies": "Kebijakan Aktif", "violations": "Violations", "blocked": "Blocked", "tab_policies": "Kebijakan", "tab_events": "Events", "search_policies": "Kebijakan penelusuran...", "create_policy": "Buat Kebijakan", "policy_type": "Jenis Kebijakan", "scope": "Scope", "events_count": "Events", "search_events": "Telusuri acara...", "event_time": "Event Time", "device": "Perangkat", "policy": "Kebijakan", "detail": "Detail", "scope_help": "ID perangkat yang dipisahkan koma, atau biarkan kosong untuk semua", "scope_all": "Semua Perangkat", "active": "Active", "type_file_type": "Jenis File", "type_clipboard": "papan klip", "type_screen_share": "Berbagi Layar", "type_file_transfer": "Pemindahan Berkas", "policy_desc": "Deskripsi Kebijakan", "type_usb": "USB" }, "reports": { "title": "Reports", "generate": "Hasilkan Laporan", "generate_csv": "Export CSV", "report_type": "Report Type", "type_devices": "Ringkasan Perangkat", "type_activity": "Ringkasan Kegiatan", "type_security": "Laporan Keamanan", "type_tickets": "Laporan Tiket", "type_network": "Laporan Jaringan", "type_inventory": "Laporan Inventaris", "type_alerts": "Laporan Peringatan", "saved": "Laporan Tersimpan", "save_report": "Simpan Laporan", "delete_report": "Hapus Laporan", "delete_confirm": "Apakah Anda yakin ingin menghapus laporan tersimpan ini?", "no_saved": "Tidak ada laporan tersimpan", "report_title": "Title", "created_by": "Dibuat Oleh", "created_at": "Dibuat Pada", "filters": "Filters", "date_from": "Dari", "date_to": "Untuk", "device_filter": "ID Perangkat", "generated_at": "Dihasilkan Pada", "section": "Bagian Data", "total_devices": "Jumlah Perangkat", "online": "Online", "offline": "Offline", "banned": "Banned", "platform_distribution": "Distribusi Platform", "top_applications": "Aplikasi Teratas", "total_active": "Total Waktu Aktif", "total_idle": "Total Waktu Menganggur", "dlp_stats": "Statistik DLP", "banned_devices": "Perangkat yang Dilarang", "audit_logs": "Audit Logs", "ticket_stats": "Statistik Tiket", "category_distribution": "Distribusi Kategori", "priority_distribution": "Distribusi Prioritas", "targets_status": "Status Sasaran", "os_distribution": "Distribusi OS", "avg_ram": "Average RAM", "alert_rules": "Alert Rules", "recent_alerts": "Peringatan Terbaru", "tab_generate": "Hasilkan Laporan", "tab_saved": "Laporan Tersimpan", "type_devices_desc": "Ikhtisar semua perangkat, platform, dan status", "type_activity_desc": "Ringkasan penggunaan aplikasi dan waktu idle", "type_security_desc": "Larang tindakan, peristiwa DLP, dan log audit", "type_tickets_desc": "Statistik tiket dan kinerja SLA", "type_network_desc": "Target pemantauan jaringan dan data uptime", "type_inventory_desc": "Ringkasan inventaris perangkat keras dan perangkat lunak", "type_alerts_desc": "Aturan peringatan dan riwayat peringatan yang dipicu", "report_name": "Report Name", "format": "Format", "save": "Simpan Laporan", "preview": "Preview", "download": "Download", "delete_saved": "Hapus Laporan", "raw_json": "Raw JSON" }, "tenants": { "title": "Tenants", "list": "Tenants", "add_tenant": "Add Tenant", "edit_tenant": "Sunting Penyewa", "delete_tenant": "Hapus Penyewa", "delete_confirm": "Apakah Anda yakin ingin menghapus penyewa ini? Semua penetapan perangkat dan pengguna akan dihapus.", "name": "Name", "slug": "Slug", "contact_name": "Nama Kontak", "contact_email": "Hubungi Email", "max_devices": "Perangkat Maks", "max_devices_hint": "0 = tidak terbatas", "notes": "Notes", "active": "Active", "inactive": "Inactive", "devices": "Perangkat", "users": "Users", "assign_device": "Tetapkan Perangkat", "assign_devices": "Tetapkan Perangkat", "remove_device": "Hapus Perangkat", "assign_user": "Assign User", "remove_user": "Remove User", "no_tenants": "Tidak ada penyewa yang dikonfigurasi", "no_devices": "Tidak ada perangkat yang ditetapkan ke penyewa ini", "no_users": "Tidak ada pengguna yang ditetapkan ke penyewa ini", "stats": "Statistik Penyewa", "total_devices": "Jumlah Perangkat", "online_devices": "Perangkat Daring", "total_users": "Total Users", "created_at": "Dibuat Pada", "updated_at": "Diperbarui Pada", "slug_exists": "Siput penyewa sudah ada", "total_tenants": "Jumlah Penyewa", "active_tenants": "Penyewa Aktif", "search": "Cari penyewa...", "create_tenant": "Buat Penyewa", "detail": "Detail Penyewa", "contact": "Contact", "enabled": "Diaktifkan", "disabled": "Dengan disabilitas", "max": "max", "info": "Tenant Info", "status": "Status" }, "registrations": { "title": "Device Registrations", "subtitle": "Manage registration requests from devices discovered via LAN", "search_placeholder": "Cari berdasarkan ID perangkat, nama host atau IP...", "no_registrations": "No registration requests", "col_device_id": "ID Perangkat", "col_hostname": "Hostname", "col_platform": "Platform", "col_ip": "IP Address", "col_version": "Version", "col_status": "Status", "col_requested": "Requested", "col_actions": "Actions", "status_pending": "Pending", "status_approved": "Approved", "status_rejected": "Rejected", "approve_btn": "Approve", "approve_confirm": "Apakah Anda yakin ingin menyetujui perangkat ini? Ini akan menerima kredensial server dan dapat terhubung secara otomatis.", "approved_success": "Pendaftaran perangkat berhasil disetujui", "reject_btn": "Reject", "reject_title": "Tolak Pendaftaran", "reject_confirm": "Apakah Anda yakin ingin menolak permintaan pendaftaran ini?", "reject_reason": "Alasan (opsional)", "reject_reason_placeholder": "Masukkan alasan penolakan...", "rejected_success": "Pendaftaran perangkat ditolak", "delete_confirm": "Apakah Anda yakin ingin menghapus catatan pendaftaran ini?", "deleted_success": "Catatan pendaftaran dihapus", "enrollment_title": "Pendaftaran Perangkat", "enrollment_subtitle": "Permintaan pendaftaran yang tertunda dari klien desktop BetterDesk", "enrollment_empty": "Tidak ada permintaan pendaftaran yang tertunda", "enrollment_approve": "Approve", "enrollment_reject": "Reject", "enrollment_display_name": "Nama Tampilan", "enrollment_display_name_placeholder": "Masukkan nama untuk perangkat ini...", "enrollment_sync_mode": "Mode Sinkronisasi", "enrollment_sync_silent": "Silent — minimal telemetry", "enrollment_sync_standard": "Standard — balanced sync", "enrollment_sync_turbo": "Turbo — aggressive sync", "enrollment_approved_success": "Pendaftaran perangkat disetujui", "enrollment_rejected_success": "Pendaftaran perangkat ditolak", "approve_title": "Setujui Perangkat", "field_name": "Nama perangkat", "field_name_placeholder": "Masukkan nama untuk perangkat ini...", "field_sync_mode": "Mode sinkronisasi", "sync_standard": "Standar — sinkronisasi seimbang", "sync_silent": "Senyap — telemetri minimal", "sync_turbo": "Turbo — sinkronisasi agresif", "field_tags": "Tag", "field_tags_placeholder": "Tag dipisahkan koma (mis. kantor, laptop)...", "field_tags_existing": "Tag yang ada", "field_tag_add_placeholder": "Tambah tag baru...", "field_tag_add_btn": "Tambah", "field_groups": "Grup perangkat", "field_folder": "Folder", "field_folder_none": "Tidak ada folder", "reject_ban_option": "Blokir perangkat ini", "reject_ban_hint": "Perangkat akan diblokir dan tidak dapat mengirim permintaan pendaftaran baru.", "banner_open_mode": "Pendaftaran terbuka — klien RustDesk baru mendaftar tanpa persetujuan operator. Atur mode Terkelola di Pengaturan untuk menggunakan antrian ini.", "banner_locked_mode": "Pendaftaran terkunci — hanya perangkat terikat token yang dapat mendaftar. Mode Terkelola diperlukan untuk persetujuan operator atas klien yang tidak dikenal.", "enrollment_settings_link": "Pengaturan pendaftaran" }, "backup": { "title": "Backup", "desc": "Unduh cadangan lengkap konfigurasi konsol Anda, pengguna, grup, dan pengaturan. Data rekan Go server disertakan ketika backend BetterDesk aktif.", "restore_title": "Restore", "restore_desc": "Unggah file cadangan yang diunduh sebelumnya untuk memulihkan konfigurasi konsol. Pilih bagian mana yang akan dipulihkan di bawah.", "stat_users": "Users", "stat_settings": "Pengaturan", "stat_folders": "Folders", "stat_groups": "Grup", "stat_strategies": "Strategies", "stat_backend": "Backend", "download": "Unduh Cadangan", "creating": "Membuat cadangan...", "download_success": "Cadangan berhasil diunduh", "upload": "Unggah Cadangan", "restore_confirm": "Apakah Anda yakin ingin memulihkan dari cadangan ini? Bagian yang dipilih akan ditimpa.", "restore_success": "Cadangan berhasil dipulihkan. Beberapa perubahan mungkin memerlukan pemuatan ulang halaman.", "restored": "Restored", "skipped": "Skipped", "backup_date": "Backup date", "opt_settings": "Pengaturan konsol", "opt_branding": "Merek / Tema", "opt_folders": "Folder perangkat", "opt_groups": "Grup pengguna & perangkat", "opt_addressbooks": "Buku alamat", "opt_users": "Akun pengguna", "opt_users_warning": "Merusak: menggantikan SEMUA akun pengguna dengan data cadangan. Anda mungkin logout.", "no_file": "Tidak ada file cadangan yang dipilih", "invalid_json": "File cadangan tidak valid: JSON tidak valid", "invalid_format": "File cadangan tidak valid: bukan cadangan BetterDesk", "stat_database": "Engine database", "stat_keys": "Server keys disertakan", "stat_env": "File environment", "stat_uploads": "File branding", "restart_required": "Beberapa komponen yang dipulihkan (keys / .env / Go database) memerlukan restart layanan agar berlaku.", "security_warning": "Cadangan ini berisi rahasia (server keys, file environment, hash kata sandi, dan rahasia 2FA). Simpan dengan aman dan jangan pernah berbagi.", "restore_warning": "Memulihkan secrets, file environment, atau database Go server akan menimpa identitas server dan memerlukan restart layanan setelahnya.", "opt_database": "Database (semua tabel)", "opt_database_hint": "Mengimpor ulang semua data console. Diterapkan langsung, tidak perlu restart.", "opt_uploads": "File branding", "opt_uploads_hint": "Logo dan gambar yang diunggah.", "opt_secrets": "Kunci & rahasia server", "opt_secrets_warning": "Menimpa identitas server Ed25519, API key, dan session secret. Memerlukan restart layanan.", "opt_env": "File environment (.env)", "opt_env_warning": "Menimpa SESSION_SECRET, API key, DSN database, port, dan pengaturan TLS. Memerlukan restart layanan.", "opt_godb": "Database Go server", "opt_godb_warning": "Menimpa database SQLite Go server (hanya backend SQLite). Memerlukan restart layanan." }, "cdap": { "device_detail": "Perangkat CDAP", "loading": "Memuat...", "loading_widgets": "Memuat widget perangkat...", "load_error": "Gagal memuat data perangkat", "connected": "Connected", "disconnected": "Disconnected", "device_offline_msg": "Perangkat sedang offline. Nilai widget mungkin sudah basi.", "no_widgets": "Tidak ada widget yang tersedia", "no_widgets_desc": "Perangkat ini belum mendaftarkan manifes CDAP dengan definisi widget.", "command_log": "Command Log", "clear_log": "Clear log", "confirm_command": "Konfirmasikan Perintah", "select_option": "Pilih", "cdap_status": "CDAP Status", "cdap_enabled": "CDAP Enabled", "cdap_disabled": "CDAP Disabled", "cdap_devices": "CDAP Devices", "cdap_connections": "Active Connections", "send_command": "Kirim Perintah", "command_sent": "Perintah berhasil dikirim", "command_failed": "Gagal mengirim perintah", "devices_title": "Perangkat CDAP", "devices_subtitle": "Perangkat yang terhubung melalui Protokol Aplikasi Perangkat Khusus", "stat_connected": "Connected", "stat_port": "Port", "search_devices": "Telusuri perangkat...", "no_devices": "Tidak ada perangkat yang terhubung", "no_devices_desc": "Tidak ada perangkat CDAP yang terhubung saat ini. Perangkat akan muncul di sini setelah terhubung ke gateway.", "gateway_disabled": "Gerbang CDAP Dinonaktifkan", "gateway_disabled_desc": "Aktifkan gateway CDAP dengan mengatur CDAP_ENABLED=true di konfigurasi server.", "gateway_active": "Active", "toggle_enable": "Enable CDAP", "toggle_disable": "Nonaktifkan CDAP", "enabled_restart": "CDAP diaktifkan. Restart server diperlukan untuk menerapkan perubahan.", "disabled_restart": "CDAP dinonaktifkan. Restart server diperlukan untuk menerapkan perubahan.", "widgets": "widget", "type_all": "All", "type_iot": "IoT", "type_scada": "SCADA", "type_os_agent": "OS Agent", "type_network": "Network", "type_camera": "Camera", "type_custom": "Custom", "active_alerts": "Peringatan Aktif", "alert_fired": "Alert fired", "alert_cleared": "Peringatan dihapus", "no_alerts": "Tidak ada peringatan aktif", "connect_terminal": "Hubungkan Terminal", "table_search": "Cari...", "just_now": "Just now", "terminal_connecting": "Menghubungkan ke perangkat...", "terminal_disconnected": "Disconnected", "terminal_error": "Koneksi terminal gagal", "linked_devices": "Perangkat Tertaut", "link_device": "Perangkat Tautan", "unlink_device": "Unlink", "no_linked_devices": "Tidak ada perangkat yang tertaut", "unlink_confirm": "Apakah Anda yakin ingin membatalkan tautan perangkat ini?", "link_prompt": "Masukkan ID Peer untuk ditautkan ke perangkat ini:", "connect_desktop": "Hubungkan Desktop", "connect_video": "Hubungkan Aliran", "connect_files": "Jelajahi File", "connect_audio": "Hubungkan Audio", "upload_file": "Upload", "desktop_connecting": "Menghubungkan...", "video_connecting": "Menghubungkan...", "files_connecting": "Menghubungkan...", "audio_connecting": "Menghubungkan...", "audio_streaming": "Streaming", "clipboard_in": "Papan klip diterima", "clipboard_out": "Papan klip terkirim", "monitor_select": "Pilih Pantau", "keyframe_request": "Minta Bingkai Utama", "quality_auto": "Kualitas Otomatis" }, "desktop": { "switch_mode": "Modus Desktop", "console_mode": "Mode Konsol", "loading": "Memuat...", "minimize": "Minimize", "maximize": "Maximize", "restore": "Restore", "close": "Tutup", "widgets_mode": "Widget", "windows_mode": "Windows", "wallpaper": "Wallpaper", "add_widget": "Tambahkan Widget", "remove_widget": "Hapus Widget", "pop_out_widget": "Pop Out", "pop_in_widget": "Pop In", "configure": "Konfigurasikan", "search_widgets": "Cari widget...", "cat_monitoring": "Monitoring", "cat_devices": "Perangkat", "cat_tools": "Tools", "cat_general": "General", "notes_placeholder": "Tulis catatan di sini...", "search_placeholder": "Cari perangkat, halaman, pengaturan...", "search_pages": "Pages", "search_devices": "Perangkat", "search_no_results": "No results", "exit_desktop": "Keluar dari Mode Desktop", "refresh": "Refresh", "widget_clock": "Clock", "widget_device_status": "Status Perangkat", "widget_server_health": "Informasi Server", "widget_system_stats": "Pengukur Perangkat", "widget_device_list": "Daftar Perangkat", "widget_quick_actions": "Tindakan Cepat", "widget_recent_activity": "Aktivitas Terkini", "widget_notes": "Notes", "widget_network_monitor": "Pemantau Jaringan", "widget_tickets_summary": "Tickets", "widget_iframe": "Web Embed", "widget_cdap_devices": "Perangkat CDAP", "widget_uptime": "Uptime", "widget_port_status": "Port Status", "widget_device_grid": "Jaringan Perangkat", "widget_multi_gauge": "Pengukur Server", "widget_weekly_chart": "Aktivitas Mingguan", "widget_quick_controls": "Kontrol Cepat", "widget_bandwidth": "Bandwidth", "widget_connection_stats": "Statistik Koneksi", "widget_weather": "Weather", "widget_world_clock": "World Clock", "widget_bookmarks": "Bookmarks", "widget_user_sessions": "Sesi Pengguna", "widget_alert_feed": "Alert Feed", "label_online": "Online", "label_offline": "Offline", "label_total": "Total", "label_blocked": "Blocked", "label_banned": "Banned", "label_active": "Active", "label_service": "Service", "label_port": "Port", "label_uptime_prefix": "Uptime:", "label_uptime": "Uptime", "label_no_devices": "Tidak ada perangkat", "label_no_activity": "No activity", "label_no_targets": "No targets", "label_unavailable": "Unavailable", "label_open": "Buka", "label_in_progress": "In Progress", "label_resolved": "Resolved", "label_set_url": "Atur URL di konfigurasi", "label_server_uptime": "Waktu Aktif Server", "label_merged_info": "Digabung ke dalam widget Info Server", "label_with_notes": "Dengan Catatan", "label_metric": "Metric", "label_count": "Count", "label_total_devices": "Jumlah Perangkat", "label_throughput": "Throughput", "label_active_relays": "Relay Aktif", "label_total_relayed": "Jumlah yang Disampaikan", "label_total_bytes": "Total Bytes", "label_filter_devices": "Filter perangkat...", "label_all": "All", "label_ban": "Ban", "label_unban": "Unban", "label_connect": "Connect", "label_no_cdap_devices": "Tidak ada perangkat CDAP", "action_add_widget": "Tambahkan Widget", "label_merged_server_info": "Digabung ke dalam widget Info Server", "wp_images": "Images", "wp_colors": "Warna Padat", "wp_custom_color": "Warna khusus", "wp_fit_style": "Style", "wp_fill": "Fill", "wp_fit": "Fit", "wp_stretch": "Stretch", "wp_center": "Center", "wp_unavailable": "Gambar wallpaper tidak dipasang di server ini.", "wp_download_hint": "Tempatkan gambar PNG di direktori publik/wallpaper/ untuk mengaktifkan pemilihan wallpaper.", "widget_calendar": "Calendar", "widget_process_monitor": "Pemantau Proses", "widget_disk_usage": "Disk Usage", "widget_log_viewer": "Log Viewer", "widget_speed_test": "Speed Test", "widget_database_stats": "Statistik Basis Data", "widget_docker_containers": "Kontainer Docker", "widget_shell_command": "Komando Kerang", "widget_device_map": "Peta Perangkat", "widget_remote_connect": "Koneksi Jarak Jauh", "label_no_online": "Tidak ada perangkat online", "label_no_events": "Tidak ada acara hari ini", "label_event_title": "Judul acara:", "label_no_data": "Tidak ada data yang tersedia", "label_download_speed": "Kecepatan Unduh", "label_latency": "Latency", "label_server": "pelayan", "label_run_test": "Run Test", "label_testing": "Menguji...", "label_table": "Table", "label_rows": "Rows", "label_last_backup": "Last Backup", "label_no_containers": "Tidak ada wadah", "label_docker_unavailable": "Docker tidak tersedia", "label_no_command": "Tidak ada perintah yang dikonfigurasi", "label_no_output": "Belum ada keluaran", "label_run": "Run", "label_presets": "Presets", "label_save_preset": "Simpan Prasetel", "label_load_preset": "Load Preset", "label_preset_name": "Nama preset:", "label_preset_monitoring": "Monitoring", "label_preset_helpdesk": "Helpdesk", "label_preset_minimal": "Minimal", "label_preset_developer": "Developer", "label_snap_layout": "Snap Layout", "label_auto_arrange": "Susun Otomatis", "label_zone_layout": "Zone Layout", "label_2col_equal": "2 Kolom (Sama)", "label_2col_wide": "2 Kolom (60/40)", "label_3col": "3 Columns", "label_2x2_grid": "2Ă—2 Grid", "label_1_2": "1 + 2", "label_1_3": "1 + 3", "widget_group": "Grup Widget", "ungroup_widgets": "Pisahkan Widget", "group_widgets": "Grup Widget yang Dipilih", "snap_layouts": "Tata Letak Jepret", "snap_left": "Snap Left", "snap_right": "Snap Right", "snap_top_left": "Jepret Kiri Atas", "snap_top_right": "Jepret Kanan Atas", "snap_bottom_left": "Jepret Kiri Bawah", "snap_bottom_right": "Jepret Kanan Bawah", "aero_shake": "Kocok untuk Meminimalkan Lainnya", "zone_resize": "Seret batas untuk mengubah ukuran zona", "zone_borders": "Batas Zona yang Dapat Diseret", "app_drawer": "Applications", "search_apps": "Telusuri aplikasi...", "edit_shortcuts": "Edit pintasan", "widgets": "Widget", "theme": "Theme", "fullscreen": "Fullscreen", "help": "Help" }, "desktop_login": { "click_to_sign_in": "Klik di mana saja atau tekan tombol untuk masuk", "username_placeholder": "Nama pengguna", "password_placeholder": "Kata sandi", "sign_in": "Sign in", "verify": "Verify", "totp_title": "Otentikasi Dua Faktor", "totp_subtitle": "Masukkan kode 6 digit dari aplikasi autentikator Anda", "back_to_login": "Kembali untuk masuk", "fill_all_fields": "Silakan isi semua kolom", "invalid_credentials": "Nama pengguna atau kata sandi tidak valid", "invalid_code": "Kode verifikasi tidak valid", "enter_6_digits": "Masukkan semua 6 digit", "network_error": "Network error — check your connection", "session_expired": "Sesi berakhir. Silakan masuk lagi." }, "tokens": { "title": "Token Perangkat", "subtitle": "Kelola token pendaftaran untuk penyediaan perangkat otomatis", "enrollment_mode": "Modus Pendaftaran", "mode_open": "Buka", "mode_open_desc": "Perangkat apa pun dapat mendaftar tanpa token", "mode_managed": "Managed", "mode_managed_desc": "Devices need a valid token to register", "mode_locked": "Locked", "mode_locked_desc": "No new device registrations allowed", "total": "Jumlah Token", "active": "Active", "used": "Used", "revoked": "Revoked", "search_placeholder": "Cari token...", "status_pending": "Pending", "status_active": "Active", "status_used": "Used", "status_revoked": "Revoked", "status_expired": "Expired", "bulk_generate": "Hasilkan Massal", "create": "Buat Token", "edit": "Sunting Token", "token": "Token", "name": "Name", "status": "Status", "uses": "Uses", "bound_peer": "Bound Peer", "expires": "Expires", "created": "Dibuat", "actions": "Actions", "name_placeholder": "misalnya Kumpulan PC kantor", "max_uses": "Max Uses", "max_uses_hint": "0 = tidak terbatas", "expires_in": "Expires In", "no_expiration": "Tidak ada kadaluwarsa", "expires_1h": "1 hour", "expires_24h": "24 hours", "expires_7d": "7 days", "expires_30d": "30 days", "note": "Note", "note_placeholder": "Catatan opsional tentang token ini...", "count": "Count", "count_range": "Jumlah token yang akan dihasilkan (1-100)", "name_prefix": "Name Prefix", "generate": "Generate", "token_created": "Token Dibuat", "tokens_generated": "Token Dihasilkan", "copy_warning": "Salin tokennya sekarang. Itu tidak akan ditampilkan lagi.", "copy_token": "Copy Token", "copied": "Copied!", "revoke": "Revoke", "revoke_confirm": "Apakah Anda yakin ingin mencabut token ini? Perangkat yang sudah terdaftar tidak akan terpengaruh.", "revoked_success": "Token berhasil dicabut", "no_tokens": "Tidak ada token yang ditemukan", "expired": "Expired", "never": "Never", "save": "Simpan", "cancel": "Batalkan", "unlimited": "Unlimited" }, "tutorial": { "next": "Selanjutnya", "prev": "Previous", "skip": "Skip", "finish": "Selesai", "close": "Tutup", "step_of": "{current} dari {total}", "console_sidebar_title": "Bilah Sisi Navigasi", "console_sidebar_text": "Akses semua modul dari sini. Klik ikon mana pun untuk menavigasi ke bagian itu. Sidebar menyesuaikan dengan ukuran layar Anda.", "console_expand_title": "Perluas Bilah Sisi", "console_expand_text": "Klik di sini untuk memperluas sidebar dan melihat label lengkap untuk semua item navigasi. Klik lagi untuk menutup.", "console_search_title": "Pencarian Cepat", "console_search_text": "Telusuri perangkat, setelan, atau tindakan dengan cepat. Tekan Ctrl+K untuk pintasan keyboard.", "console_dashboard_title": "Dasbor", "console_dashboard_text": "Hub pusat Anda menampilkan status server, perangkat online, dan tindakan cepat. Perhatikan sekilas metrik penting.", "console_devices_title": "Manajemen Perangkat", "console_devices_text": "Lihat, cari, dan kelola semua perangkat yang terhubung. Filter berdasarkan status, tetapkan tag, dan konfigurasikan pengaturan perangkat individual.", "console_settings_title": "Pengaturan", "console_settings_text": "Konfigurasikan perilaku server, opsi keamanan, branding, dan manajemen pengguna. Sesuaikan BetterDesk agar sesuai dengan kebutuhan Anda.", "console_desktop_title": "Modus Desktop", "console_desktop_text": "Beralih ke mode desktop untuk ruang kerja berjendela dengan widget. Sempurna untuk dasbor multitugas dan pemantauan.", "console_complete_title": "Anda Siap!", "console_complete_text": "Jelajahi kategori sidebar untuk menemukan semua fitur. Klik ikon Bantuan kapan saja untuk memulai ulang panduan ini.", "desktop_topbar_title": "Top Bar", "desktop_topbar_text": "Bilah atas menampilkan jam, kontrol cepat, dan akses ke laci aplikasi. Klik ikon kisi untuk menelusuri semua aplikasi.", "desktop_drawer_title": "App Drawer", "desktop_drawer_text": "Buka laci aplikasi untuk mencari dan meluncurkan fungsi konsol apa pun sebagai jendela mengambang. Aplikasi disusun berdasarkan kategori.", "desktop_widgets_title": "Dasbor Widget", "desktop_widgets_text": "Ruang kerja Anda yang dapat disesuaikan. Widget menampilkan informasi langsung dan menyediakan akses cepat ke fitur. Seret untuk mengatur ulang.", "desktop_add_widget_title": "Tambahkan Widget", "desktop_add_widget_text": "Klik di sini untuk menelusuri widget yang tersedia. Pilih dari tampilan pemantauan, daftar perangkat, catatan, dan lainnya.", "desktop_taskbar_title": "Taskbar", "desktop_taskbar_text": "Aplikasi yang terbuka muncul di sini. Klik untuk memfokuskan atau memperkecil jendela. Arahkan ikon untuk melihat label aplikasi.", "desktop_snap_title": "Tata Letak Jepret", "desktop_snap_text": "Seret jendela ke tepi layar untuk menempatkannya pada posisinya, atau arahkan tombol maksimalkan untuk pengaturan tata letak. Coba Aero Goyang!", "desktop_windows_title": "App Windows", "desktop_windows_text": "Aplikasi terbuka di jendela yang dapat diseret dan diubah ukurannya. Minimalkan, maksimalkan, atau tutup dari bilah judul. Lapisan Windows di atas widget.", "desktop_search_title": "Pencarian Cepat", "desktop_search_text": "Telusuri di seluruh perangkat, halaman, dan pengaturan. Tekan Ctrl+K di mana saja untuk membuka pencarian secara instan.", "desktop_complete_title": "Mode Desktop Siap!", "desktop_complete_text": "Coba buka aplikasi dari laci dan atur jendela secara berdampingan. Gunakan preset widget untuk tata letak dasbor cepat.", "devices_folders_title": "Folder Perangkat", "devices_folders_text": "Atur perangkat ke dalam folder. Klik folder untuk memfilter daftar. Klik kanan untuk mengganti nama atau menghapus.", "devices_search_title": "Cari & Filter", "devices_search_text": "Cari berdasarkan ID, nama host, atau platform. Gunakan pil status untuk hanya menampilkan online, offline, atau semua perangkat.", "devices_table_title": "Daftar Perangkat", "devices_table_text": "Klik baris perangkat mana pun untuk mengetahui detailnya. Gunakan menu kebab di sebelah kanan untuk tindakan cepat seperti menghubungkan, mengedit tag, atau menghapus.", "devices_complete_title": "Manajemen Perangkat Siap!", "devices_complete_text": "Seret perangkat antar folder untuk mengaturnya. Klik dua kali perangkat untuk membuka panel detailnya.", "settings_tabs_title": "Kategori Pengaturan", "settings_tabs_text": "Navigasi antara bagian Umum, Keamanan, Penampilan, dan konfigurasi lainnya.", "settings_content_title": "Konfigurasi", "settings_content_text": "Setiap bagian berisi pengaturan server dan konsol tertentu. Perubahan disimpan ketika Anda mengklik Simpan.", "settings_complete_title": "Ikhtisar Pengaturan", "settings_complete_text": "Periksa pengaturan Keamanan untuk 2FA, kunci API dan manajemen pengguna. Kunjungi Appearance untuk menyesuaikan tampilan konsol.", "help": "Bantuan & Tutorial", "tour_console": "Tur Konsol", "tour_desktop": "Tur Mode Desktop", "tour_devices": "Tur Perangkat", "tour_settings": "Tur Pengaturan", "reset_all": "Atur Ulang Semua Tutorial", "tour_remote": "Tur Sesi Jarak Jauh", "tour_organization": "Pengaturan Organisasi", "tour_cdap": "Ikhtisar CDAP", "tour_chat": "Dasar-dasar Obrolan", "remote_toolbar_title": "Bilah Alat Jarak Jauh", "remote_toolbar_text": "Akses kontrol tampilan, sinkronisasi clipboard, tombol khusus, dan pengaturan kualitas dari toolbar. Alihkan layar penuh dengan F11.", "remote_canvas_title": "Tampilan Jarak Jauh", "remote_canvas_text": "Ini adalah layar jarak jauh. Klik di dalam untuk mulai mengontrol perangkat jarak jauh. Input mouse dan keyboard diteruskan secara otomatis.", "remote_clipboard_title": "Sinkronisasi Papan Klip", "remote_clipboard_text": "Salin dan tempel teks antara komputer Anda dan perangkat jarak jauh. Gunakan Ctrl+C / Ctrl+V seperti biasa sambil fokus pada tampilan jarak jauh.", "remote_complete_title": "Sesi Jarak Jauh Siap!", "remote_complete_text": "Gunakan tombol toolbar untuk tombol khusus (Ctrl+Alt+Del, PrintScreen) dan peralihan monitor. Tekan Escape atau klik Disconnect untuk mengakhiri sesi.", "org_overview_title": "Organisasi", "org_overview_text": "Organisasi memungkinkan Anda mengelompokkan pengguna, perangkat, dan kebijakan. Setiap organisasi memiliki admin, operator, dan pengaturannya sendiri.", "org_create_title": "Buat Organisasi", "org_create_text": "Klik di sini untuk membuat organisasi baru. Berikan nama, siput, dan deskripsi opsional. Anda akan menjadi pemilik organisasi baru.", "org_members_title": "Kelola Anggota", "org_members_text": "Undang pengguna melalui email, tetapkan peran (admin, operator, pengguna), dan kelola akses. Anggota dapat melihat perangkat yang ditetapkan ke organisasi mereka.", "org_devices_title": "Tetapkan Perangkat", "org_devices_text": "Tambahkan perangkat ke organisasi. Perangkat yang ditetapkan di sini akan mewarisi kebijakan organisasi dan dapat dilihat oleh anggotanya.", "org_policies_title": "Kebijakan Organisasi", "org_policies_text": "Tetapkan kebijakan keamanan seperti persyaratan kata sandi, batas waktu sesi, penerapan 2FA, dan aturan pendaftaran perangkat untuk organisasi.", "org_complete_title": "Pengaturan Organisasi Selesai!", "org_complete_text": "Undang tim Anda dan tetapkan perangkat untuk mulai menggunakan pengelolaan cakupan organisasi. Kebijakan berlaku otomatis untuk semua anggota.", "cdap_devices_title": "CDAP Devices", "cdap_devices_text": "View all connected CDAP devices — IoT sensors, PLCs, bridges, and custom agents. Green indicators show live connections.", "cdap_widgets_title": "Widget Dashboard", "cdap_widgets_text": "Widgets display real-time data from devices. Gauges, toggles, LEDs, charts — each widget type visualizes a different kind of data.", "cdap_commands_title": "Send Commands", "cdap_commands_text": "Interact with devices by sending commands. Some commands need confirmation. The command log keeps a history of all sent commands.", "cdap_terminal_title": "Device Terminal", "cdap_terminal_text": "Open a terminal session to CDAP agents for advanced diagnostics or manual configuration. Type commands directly.", "cdap_complete_title": "CDAP Overview Complete!", "cdap_complete_text": "Explore device widgets, send commands, and use the terminal or file browser for deeper management. CDAP agents report metrics automatically.", "chat_contacts_title": "Kontak & Grup", "chat_contacts_text": "Lihat kontak dan grup obrolan Anda. Klik kontak mana pun untuk membuka percakapan. Titik hijau menunjukkan pengguna online.", "chat_send_title": "Kirim Pesan", "chat_send_text": "Ketik pesan Anda dan tekan Enter untuk mengirim. Pesan dienkripsi ujung ke ujung ketika kedua belah pihak mendukung E2E.", "chat_file_title": "Bagikan File", "chat_file_text": "Klik ikon lampiran untuk berbagi file. File dienkripsi dan ukurannya bisa mencapai 50 MB.", "chat_complete_title": "Obrolan Siap!", "chat_complete_text": "Ngobrol dengan operator dan pengguna akhir secara real time. Buat grup untuk komunikasi tim. Semua pesan mendukung tanda terima telah dibaca.", "disable_tutorials": "Nonaktifkan Tutorial", "enable_tutorials": "Aktifkan Tutorial" }, "help_request": { "title": "Permintaan Bantuan", "subtitle": "Kelola permintaan bantuan yang masuk dari klien desktop", "new_request": "Permintaan Bantuan Baru", "device": "Perangkat", "hostname": "Hostname", "message": "Message", "status": "Status", "pending": "Pending", "accepted": "Accepted", "resolved": "Resolved", "accept": "Accept", "resolve": "Resolve", "no_requests": "Tidak ada permintaan bantuan", "notification": "Permintaan bantuan diterima dari", "stats_total": "Total", "filter_all": "All" }, "organizations": { "title": "Organisasi", "create": "Buat Organisasi", "edit": "Sunting Organisasi", "detail": "Detail Organisasi", "name": "Name", "slug": "Siput (aman URL)", "logo_url": "Logo URL", "users": "Users", "devices": "Perangkat", "invitations": "Invitations", "settings": "Pengaturan", "add_user": "Add User", "assign_device": "Tetapkan Perangkat", "create_invitation": "Buat Undangan", "delete_confirm": "Hapus organisasi ini? Tindakan ini akan menghapus semua pengguna, perangkat, dan pengaturan terkait.", "no_orgs": "Belum ada organisasi", "no_orgs_hint": "Buat organisasi pertama Anda untuk mulai mengelola perangkat dan pengguna.", "connection_policy": "Kebijakan Koneksi", "allow_file_transfer": "Izinkan Transfer File", "allow_clipboard": "Izinkan Papan Klip", "max_session_duration": "Durasi Sesi Maks (mnt)", "role_owner": "Pemilik (admin org)", "role_admin": "Administrator", "role_operator": "Operator", "role_user": "Anggota", "username": "Nama pengguna", "password": "Kata sandi", "display_name": "Nama Tampilan", "email": "Email", "role": "Role", "last_login": "Last Login", "actions": "Actions", "device_id": "ID Perangkat", "department": "Department", "building": "Building", "location": "Location", "assigned_user": "Pengguna yang Ditugaskan", "token": "Token", "expires": "Expires", "used": "Used", "no_users": "Tidak ada pengguna di organisasi ini.", "no_devices": "Tidak ada perangkat yang ditetapkan ke organisasi ini.", "no_invitations": "Tidak ada undangan.", "user_added": "User added", "user_removed": "Pengguna dihapus", "user_updated": "Peran pengguna diperbarui", "device_assigned": "Perangkat ditetapkan", "device_unassigned": "Perangkat tidak ditetapkan", "invitation_created": "Undangan dibuat", "settings_saved": "Pengaturan disimpan", "org_deleted": "Organisasi dihapus", "confirm_remove_user": "Hapus pengguna ini dari organisasi?", "confirm_unassign_device": "Batalkan penetapan perangkat ini dari organisasi?", "confirm_delete_org": "Hapus organisasi ini dan semua data terkait?", "edit_role": "Sunting Peran", "raw_settings": "Pengaturan Mentah", "key": "Key", "value": "Value", "save": "Simpan Pengaturan", "policy_unattended": "Tanpa pengawasan (instan)", "policy_attended": "Dihadiri (dengan konfirmasi)", "policy_ask": "Always ask", "expires_hours": "Kedaluwarsa (jam)", "loading_failed": "Gagal memuat data organisasi", "name_slug_required": "Nama dan siput diperlukan", "org_created": "Organisasi dibuat", "org_updated": "Organisasi diperbarui", "create_new_user": "Buat Baru", "add_existing_user": "Tambahkan Yang Ada", "none_available": "none", "select_user": "Pilih pengguna", "org_role": "Peran Organisasi", "link_user_hint": "Pengguna yang dipilih akan ditautkan ke organisasi ini menggunakan kredensial akun server mereka.", "no_available_users": "Semua pengguna server sudah tertaut ke organisasi ini.", "user_linked": "Pengguna tertaut ke organisasi", "device_groups_tab": "Grup perangkat", "device_groups_intro": "Grup perangkat yang ditautkan ke organisasi ini menentukan mesin mana yang dapat diakses anggota di klien RustDesk. Atur keanggotaan dan akses di halaman Perangkat.", "manage_in_devices": "Buka Perangkat → Grup", "no_org_device_groups": "Belum ada grup perangkat yang ditautkan ke organisasi ini.", "create_org_device_group": "Buat grup perangkat", "org_device_group_created": "Grup perangkat dibuat", "org_user_groups_title": "Grup pengguna", "org_user_groups_intro": "Grup pengguna yang ditautkan ke organisasi dapat diberi akses ke grup perangkat di atas (Perangkat → Grup → Grup pengguna yang diizinkan).", "no_org_user_groups": "Tidak ada grup pengguna yang ditautkan ke organisasi ini.", "group_name": "Name", "group_type": "Type", "group_members": "Perangkat", "group_type_manual": "Manual", "group_type_tag": "Tag", "group_allowed_user_groups": "Grup pengguna yang diizinkan", "group_devices_suffix": "perangkat", "group_name_required": "Nama grup wajib diisi", "org_team_id": "ID tim organisasi", "link_team_id_hint": "Grup akan otomatis ditautkan ke organisasi ini (team ID = ID organisasi).", "address_book": "Buku alamat", "address_book_import_devices": "Impor perangkat organisasi", "address_book_save": "Simpan buku alamat", "address_book_intro": "Kelola kontak yang dibagikan dengan anggota organisasi ini. Entri buku alamat pribadi tetap privat dan diprioritaskan saat terjadi konflik.", "address_book_enabled": "Bagikan buku alamat ini dengan anggota organisasi", "address_book_json": "JSON buku alamat", "address_book_json_hint": "Format lama RustDesk, misalnya: {\"peers\":[{\"id\":\"123456789\",\"alias\":\"PC kantor\"}],\"tags\":[\"Kantor\"]}", "address_book_invalid_json": "Buku alamat harus berupa JSON yang valid", "address_book_peers_array_required": "Peers buku alamat harus berupa array", "address_book_tags_array_required": "Tags buku alamat harus berupa array", "address_book_saved": "Buku alamat disimpan", "address_book_save_failed": "Gagal menyimpan buku alamat", "address_book_imported": "Perangkat organisasi diimpor", "address_book_import_none": "Tidak ada perangkat organisasi baru untuk diimpor", "address_book_contacts": "Shared contacts", "address_book_add_peer": "Add contact", "address_book_peer_id": "Device ID", "address_book_alias": "Alias", "address_book_peer_tags": "Contact tags", "address_book_peer_tags_placeholder": "office, support", "address_book_tags_label": "Global tags", "address_book_tags_placeholder": "Office, Support", "address_book_tags_hint": "Comma-separated tags available in the RustDesk client address book.", "address_book_no_peers": "No contacts yet — add a device ID or import organization devices.", "address_book_show_json": "Advanced JSON", "address_book_hide_json": "Structured editor" }, "chat": { "e2e_enabled": "Dienkripsi ujung ke ujung", "e2e_establishing": "Membangun saluran aman...", "e2e_established": "Saluran aman dibuat", "e2e_unsupported": "Enkripsi E2E tidak didukung di browser ini", "typing_indicator": "mengetik...", "read_receipt": "Read", "delivered": "Delivered", "file_share": "Mengajukan", "file_too_large": "File terlalu besar (maks 50 MB)", "file_encrypted": "Transfer file terenkripsi", "presence_online": "Online", "presence_away": "Away", "presence_busy": "Busy", "presence_offline": "Offline", "key_rotation": "Kunci keamanan diputar", "new_message": "New message", "title": "Chat", "contacts": "Contacts", "groups": "Grup", "no_contacts": "Belum ada kontak", "no_groups": "Belum ada grup", "no_messages": "Belum ada pesan", "no_results": "Tidak ada hasil yang ditemukan", "select_conversation": "Pilih percakapan untuk mulai mengobrol", "type_message": "Ketik pesan...", "send": "Kirim", "attach_file": "Lampirkan berkas", "emoji": "Emoji", "search_messages": "Cari pesan", "create_group": "Buat grup", "group_name": "Nama grup", "group_members": "Anggota", "cancel": "Batalkan", "create": "Buat", "members": "anggota", "today": "Today", "yesterday": "Yesterday", "react": "React", "my_presence": "My status", "search_placeholder": "Cari kontak & pesan", "select_conversation_hint": "Pilih percakapan untuk melihat pesan", "info": "Info", "group_name_placeholder": "Masukkan nama grup" }, "toast": { "device_connected": "Perangkat terhubung", "device_disconnected": "Perangkat terputus", "session_started": "Sesi jarak jauh dimulai", "session_ended": "Sesi jarak jauh berakhir", "file_upload_complete": "Pengunggahan file selesai", "settings_saved": "Pengaturan disimpan", "error_generic": "Terjadi kesalahan", "connection_lost": "Koneksi terputus", "reconnecting": "Menyambungkan kembali..." }, "theme": { "dark": "Dark", "light": "Light", "auto": "System", "title": "Theme", "custom": "Kustom" }, "days": { "mon": "Mon", "tue": "Tue", "wed": "Wed", "thu": "Thu", "fri": "Fri", "sat": "Sat", "sun": "Sun" }, "toolkit": { "title": "Toolkit", "subtitle": "Utilitas admin dan alat diagnostik", "cat_network": "Network", "cat_crypto": "Crypto", "cat_encoding": "Encoding", "cat_system": "System", "host": "Host", "port": "Port", "domain": "Domain", "run": "Run", "generate": "Generate", "encode": "Encode", "decode": "Decode", "send": "Kirim", "refresh": "Refresh", "algorithm": "Algorithm", "input_text": "Input Text", "enter_text": "Masukkan teks...", "length": "Length", "options": "Options", "source": "Source", "lines": "Lines", "log_console": "Console", "log_go": "Buka Server", "mac_address": "MAC Address", "broadcast": "Broadcast", "ping_title": "Ping", "ping_desc": "Periksa keterjangkauan dan latensi host", "tcp_title": "Pemeriksaan Port TCP", "tcp_desc": "Uji konektivitas port TCP", "ssl_title": "Inspektur SSL", "ssl_desc": "Periksa detail sertifikat SSL/TLS", "http_title": "Pemeriksaan Kesehatan HTTP", "http_desc": "Verifikasi status titik akhir HTTP", "dns_title": "DNS Lookup", "dns_desc": "Selesaikan nama host ke alamat IP", "whois_title": "DNS Records", "whois_desc": "Catatan kueri A, AAAA, MX, TXT, NS", "speed_title": "Speed Test", "speed_desc": "Ukur bandwidth unduhan", "run_speed_test": "Jalankan Tes Kecepatan", "wol_title": "Wake-on-LAN", "wol_desc": "Kirim paket ajaib untuk membangunkan perangkat", "wol_sent": "Paket ajaib terkirim", "hash_title": "Pembuat Hash", "hash_desc": "Hasilkan hash kriptografi", "password_title": "Pembuat Kata Sandi", "password_desc": "Hasilkan kata sandi acak yang aman", "jwt_title": "JWT Decoder", "jwt_desc": "Dekode dan periksa Token Web JSON", "jwt_token": "JWT Token", "base64_title": "Base64", "base64_desc": "Menyandikan atau mendekode data Base64", "url_title": "URL Encoder", "url_desc": "Mengkodekan atau mendekode komponen URL", "processes_title": "Daftar Proses", "processes_desc": "Lihat proses sistem yang sedang berjalan", "disk_title": "Disk Usage", "disk_desc": "Lihat penggunaan partisi disk", "db_title": "Statistik Basis Data", "db_desc": "Lihat statistik tabel database", "docker_title": "Kontainer Docker", "docker_desc": "Lihat kontainer Docker yang sedang berjalan", "logs_title": "Log Viewer", "logs_desc": "Lihat keluaran log terbaru", "ip_address": "IP", "latency": "Latency", "ttl": "TTL", "status": "Status", "resolved": "Resolved", "subject": "Subject", "issuer": "Issuer", "valid_from": "Berlaku Mulai", "valid_to": "Berlaku Untuk", "days_left": "Days Left", "days": "days", "protocol": "Protocol", "cipher": "Cipher", "alt_names": "SANs", "chain": "Chain", "record_type": "Type", "record_value": "Value", "hash_value": "Hash", "entropy": "Entropy", "very_strong": "Very Strong", "strong": "Strong", "weak": "Weak", "expiry": "Expiry", "expired": "Expired", "valid": "Valid", "process_name": "Name", "db_type": "Type", "db_size": "Size", "table_name": "Table", "row_count": "Rows", "no_data": "Tidak ada data yang tersedia", "no_docker": "Kontainer Docker tidak ditemukan atau Docker tidak tersedia", "no_logs": "Tidak ada baris log yang tersedia" }, "policies": { "title": "Kebijakan Organisasi", "subtitle": "Kelola kebijakan keamanan, koneksi, dan fitur untuk organisasi Anda", "select_org": "Organisasi", "select_org_placeholder": "Pilih organisasi...", "select_org_first": "Pilih organisasi untuk melihat log audit kebijakan.", "configured": "Configured", "connection_title": "Kebijakan Koneksi", "connection_desc": "Kontrol bagaimana sesi jarak jauh dibuat", "connection_mode": "Modus Koneksi", "mode_attended": "Dihadiri (membutuhkan persetujuan pengguna)", "mode_unattended": "Tanpa pengawasan (selalu izinkan)", "mode_ask": "Always Ask", "max_session": "Durasi Sesi Maks (menit)", "idle_lock": "Batas Waktu Penguncian Idle (menit)", "wallpaper_policy": "Wallpaper Selama Sesi", "wallpaper_show": "Show", "wallpaper_hide_session": "Sembunyikan selama sesi", "wallpaper_hide_always": "Always hide", "features_title": "Kebijakan Fitur", "features_desc": "Mengaktifkan atau menonaktifkan fitur tertentu untuk perangkat", "allow_file_transfer": "Izinkan Transfer File", "allow_clipboard": "Izinkan Sinkronisasi Papan Klip", "allow_audio": "Izinkan Streaming Audio", "allow_recording": "Izinkan Perekaman Sesi", "security_title": "Kebijakan Keamanan", "security_desc": "Menerapkan persyaratan keamanan untuk perangkat organisasi", "require_2fa": "Memerlukan 2FA untuk Akses Tanpa Pengawasan", "password_min_length": "Panjang Kata Sandi Minimum", "password_require_special": "Membutuhkan Karakter Khusus", "password_max_age": "Usia Maks Kata Sandi (hari, 0=tidak pernah)", "allowed_operators": "Peran Operator yang Diizinkan (dipisahkan koma)", "network_title": "Kebijakan Jaringan", "network_desc": "Kontrol server relai dan koneksi langsung", "block_direct_p2p": "Blokir P2P Langsung (relai gaya)", "allowed_relays": "Server Relai yang Diizinkan (satu per baris)", "ip_allowlist": "Daftar IP yang Diizinkan (CIDR, satu per baris)", "update_title": "Perbarui Kebijakan", "update_desc": "Kontrol pembaruan otomatis dan perbarui saluran", "auto_update": "Aktifkan Pembaruan Otomatis", "update_channel": "Perbarui Saluran", "audit_title": "Perubahan Kebijakan", "audit_desc": "Riwayat perubahan kebijakan terkini", "no_audit": "Tidak ada perubahan kebijakan yang tercatat.", "save_success": "Kebijakan berhasil disimpan", "save_failed": "Gagal menyimpan kebijakan", "load_failed": "Gagal memuat kebijakan", "block_direct_p2p_hint": "Berlaku untuk perangkat di organisasi ini. Default global ada di Pengaturan → Strategi koneksi." }, "attestation": { "title": "Pengesahan Perangkat", "subtitle": "Pantau verifikasi identitas perangkat dan sidik jari perangkat keras", "verified": "Verified", "pending": "Pending", "failed": "Gagal", "device_list": "Catatan Pengesahan Perangkat", "device_list_desc": "Sidik jari perangkat keras dan status verifikasi identitas", "col_device": "ID Perangkat", "col_hostname": "Hostname", "col_fingerprint": "Fingerprint", "col_status": "Status", "col_last_check": "Last Check", "col_actions": "Actions", "no_records": "Tidak ada catatan pengesahan yang ditemukan.", "verify_success": "Perangkat ditandai sebagai terverifikasi", "verify_failed": "Gagal memverifikasi perangkat", "revoke_success": "Pengesahan perangkat dicabut", "revoke_failed": "Gagal mencabut pengesahan" }, "fleet": { "title": "Manajemen Armada", "tab_resources": "Resources", "tab_tasks": "Tasks", "tab_builder": "Pembuat Alur Kerja", "tab_compliance": "Compliance", "res_title": "Pemetaan Sumber Daya", "res_all_types": "All Types", "res_type_printer": "Printer", "res_type_network_drive": "Penggerak Jaringan", "res_type_dns": "Server DNS", "res_type_proxy": "Proxy", "res_type_vpn": "VPN", "res_add": "Tambahkan Sumber Daya", "res_name": "Nama Sumber Daya", "res_type": "Type", "res_address": "Alamat / Jalur", "res_target": "Target", "res_scope": "Scope", "res_scope_org": "Organisasi", "res_scope_group": "Kelompok", "res_scope_device": "Perangkat", "res_scope_value": "Scope Value", "res_status": "Status", "res_active": "Active", "res_inactive": "Inactive", "res_no_data": "Tidak ada sumber daya yang ditemukan. Klik 'Tambahkan Sumber Daya' untuk membuatnya.", "res_confirm_delete": "Apakah Anda yakin ingin menghapus sumber daya ini?", "task_title": "Penjadwal Tugas", "task_all_status": "All Status", "task_status_pending": "Pending", "task_status_running": "Running", "task_status_success": "Success", "task_status_failed": "Gagal", "task_search": "Search tasks…", "task_create": "Buat Tugas", "task_name": "Task Name", "task_type": "Type", "task_type_script": "Script", "task_type_install": "Install", "task_type_update": "Pembaruan", "task_type_restart": "Mulai ulang", "task_type_deploy": "Deploy", "task_type_scan": "Scan", "task_targets": "Targets", "task_targets_help": "ID perangkat atau nama grup, dipisahkan koma", "task_schedule": "Schedule", "task_schedule_once": "Once", "task_schedule_cron": "Cron", "task_schedule_interval": "Interval", "task_schedule_value": "Nilai Jadwal", "task_script": "Naskah/Perintah", "task_retries": "Retries", "task_timeout": "Timeout (s)", "task_last_run": "Last Run", "task_no_data": "Tidak ada tugas yang ditemukan. Klik 'Buat Tugas' untuk memulai.", "task_confirm_delete": "Apakah Anda yakin ingin menghapus tugas ini?", "task_output": "Task Output", "task_retry": "Retry", "builder_title": "Pembuat Alur Kerja Visual", "builder_select_workflow": "Select workflow…", "builder_new": "New", "builder_save": "Simpan", "builder_export": "Export", "builder_execute": "Execute", "builder_dry_run": "Dry Run", "builder_triggers": "Triggers", "builder_conditions": "Conditions", "builder_actions": "Actions", "builder_results": "Results", "builder_transforms": "Transforms", "builder_properties": "Properties", "builder_no_selection": "Pilih node untuk mengedit propertinya.", "builder_node_trigger_manual": "Pemicu Manual", "builder_node_trigger_schedule": "Schedule", "builder_node_trigger_event": "Pemicu Peristiwa", "builder_node_cond_os": "OS Check", "builder_node_cond_threshold": "Threshold", "builder_node_cond_time_window": "Time Window", "builder_node_action_script": "Run Script", "builder_node_action_install": "Install SW", "builder_node_action_restart": "Mulai ulang Svc", "builder_node_action_file_deploy": "Menyebarkan Berkas", "builder_node_action_message": "Kirim Pesan", "builder_node_result_log": "Log Output", "builder_node_result_alert": "Kirim Peringatan", "builder_node_result_chain": "Alur Kerja Rantai", "builder_node_transform_parse": "Parse JSON", "builder_node_transform_filter": "Filter", "builder_node_transform_delay": "Delay", "workflow_name": "Nama alur kerja:", "comp_title": "Kepatuhan Perangkat Lunak", "comp_compliant": "Compliant", "comp_warning": "Warning", "comp_critical": "Critical", "comp_score": "Avg. Score", "comp_device": "Perangkat", "comp_hostname": "Hostname", "comp_os": "OS", "comp_score_col": "Score", "comp_issues": "Issues", "comp_last_scan": "Last Scan", "comp_scan": "Scan", "comp_scan_all": "Scan All", "comp_remediate": "Remediate", "comp_remediate_confirm": "Jalankan remediasi otomatis di perangkat ini?", "comp_no_data": "Tidak ada data kepatuhan yang tersedia. Jalankan pemindaian untuk memulai.", "save": "Simpan", "cancel": "Batalkan", "close": "Tutup", "edit": "Sunting", "delete": "Hapus", "actions": "Actions", "all_orgs": "Semua Organisasi", "select_org_placeholder": "Select organization�", "all_types": "All Types", "type_printer": "Printer", "type_network_drive": "Penggerak Jaringan", "type_dns": "Server DNS", "type_vpn": "VPN", "type_proxy": "Proxy", "add_resource": "Tambahkan Sumber Daya", "edit_resource": "Sunting Sumber Daya", "col_name": "Name", "col_type": "Type", "col_target": "Target", "col_scope": "Scope", "col_status": "Status", "col_actions": "Actions", "no_resources": "No resources found.", "active": "Active", "inactive": "Inactive", "address": "Alamat / Jalur", "scope_org": "Organisasi", "scope_group": "Kelompok", "scope_device": "Perangkat", "scope_value": "Scope Value", "scope_value_hint": "Organization, group, or device ID", "confirm_delete": "Apakah Anda yakin ingin menghapus item ini?", "all_statuses": "Semua Status", "status_pending": "Pending", "status_running": "Running", "status_success": "Success", "status_failed": "Gagal", "search_tasks": "Search tasks�", "create_task": "Buat Tugas", "edit_task": "Sunting Tugas", "col_task_name": "Task Name", "col_task_type": "Type", "col_schedule": "Schedule", "col_last_run": "Last Run", "no_tasks": "No tasks found.", "task_type_file_deploy": "Penyebaran File", "task_type_registry": "Registry", "target_devices": "Perangkat Sasaran", "target_hint": "Device IDs or group names", "schedule_immediate": "Immediate", "schedule_once": "Once", "schedule_cron": "Cron", "cron_placeholder": "*/5 * * * *", "script_content": "Naskah/Perintah", "retry_count": "Retries", "timeout_sec": "Timeout (s)", "loading": "Memuat", "no_output": "Tidak ada keluaran yang tersedia", "error_loading": "Terjadi kesalahan saat memuat data", "select_workflow": "Select workflow�", "new_workflow": "New", "export": "Export", "execute": "Execute", "dry_run": "Dry Run", "node_triggers": "Triggers", "node_manual": "Pemicu Manual", "node_schedule": "Schedule", "node_event": "Pemicu Peristiwa", "node_conditions": "Conditions", "node_os_check": "OS Check", "node_threshold": "Threshold", "node_time_window": "Time Window", "node_actions": "Actions", "node_run_script": "Run Script", "node_install": "Install SW", "node_restart": "Mulai ulang Svc", "node_file_deploy": "Menyebarkan Berkas", "node_send_message": "Kirim Pesan", "node_results": "Results", "node_log_output": "Log Output", "node_send_alert": "Kirim Peringatan", "node_chain": "Alur Kerja Rantai", "node_transforms": "Transforms", "node_parse_json": "Parse JSON", "node_filter": "Filter", "node_delay": "Delay", "node_properties": "Properties", "all_organizations": "Semua Organisasi", "scan_all": "Scan All", "compliant": "Compliant", "non_compliant": "Warning", "critical_issues": "Critical", "avg_score": "Avg. Score", "col_device": "Perangkat", "col_hostname": "Hostname", "col_os": "OS", "col_score": "Score", "col_issues": "Issues", "col_last_scan": "Last Scan", "no_compliance_data": "No compliance data available.", "confirm_remediate": "Jalankan remediasi otomatis di perangkat ini?" }, "scaling": { "title": "Penskalaan & Manajemen Relai", "tab_overview": "Ikhtisar", "tab_relays": "Relay Nodes", "tab_rules": "Aturan Penugasan", "tab_capacity": "Perencanaan Kapasitas", "arch_title": "Arsitektur Jaringan", "arch_loading": "Memuat diagram arsitektur...", "stat_relay_nodes": "Relay Nodes", "stat_total_devices": "Jumlah Perangkat", "stat_active_sessions": "Sesi Aktif", "stat_bandwidth": "Jumlah Bandwidth", "relay_health": "Kesehatan Relai", "no_relays": "Tidak ada node relai yang dikonfigurasi. Tambahkan node relai pertama Anda untuk mendistribusikan beban.", "relay_search": "Relai pencarian...", "relay_add": "Tambahkan Node Relai", "relay_edit": "Edit Node Relai", "col_name": "Name", "col_address": "Address", "col_location": "Location", "col_devices": "Perangkat", "col_sessions": "Sesi", "col_bandwidth": "Bandwidth", "col_status": "Status", "col_actions": "Actions", "col_priority": "Priority", "col_rule_name": "Rule Name", "col_match": "Match", "col_target_relay": "Relai Sasaran", "col_fallback": "Fallback", "status_online": "Online", "status_degraded": "Degraded", "status_offline": "Offline", "status_enabled": "Diaktifkan", "status_disabled": "Dengan disabilitas", "confirm_delete_relay": "Apakah Anda yakin ingin menghapus simpul relai ini?", "confirm_delete_rule": "Apakah Anda yakin ingin menghapus aturan penetapan ini?", "rules_hint": "Aturan penugasan menentukan server relai mana yang menangani grup perangkat tertentu. Aturan dievaluasi berdasarkan prioritas (yang terendah terlebih dahulu).", "rule_add": "Add Rule", "rule_edit": "Sunting Aturan", "rule_match_type": "Match Type", "match_subnet": "Subnet", "match_group": "Grup Perangkat", "match_tag": "Tag Perangkat", "match_location": "Location", "rule_match_value": "Match Value", "fallback_master": "Server Utama", "fallback_nearest": "Relai terdekat", "relay_max_sessions": "Sesi Maks", "relay_max_bandwidth": "Bandwidth Maks (Mbps)", "cap_tiers": "Tingkat Kapasitas", "cap_loading": "Memuat data kapasitas...", "cap_recommendations": "Recommendations", "cap_no_recs": "Tidak ada rekomendasi yang tersedia.", "cap_planning": "Perencanaan Infrastruktur", "cap_config": "Konfigurasi", "cap_max_devices": "Perangkat Maks", "cap_max_sessions": "Sesi Maks", "cap_current": "Current", "cap_utilization": "Utilization", "cap_tier_devices": "Kapasitas Perangkat", "cap_tier_sessions": "Kapasitas Sesi", "cap_tier_bandwidth": "Kapasitas Bandwidth", "cap_single_sqlite": "Server Tunggal (SQLite)", "cap_single_pg": "Server Tunggal (PostgreSQL)", "cap_master_3": "Master + 3 Relay", "cap_master_10": "Master + 10 Relay", "rec_no_relays": "Tidak ada node relai yang dikonfigurasi. Pertimbangkan untuk menambahkan node relai untuk kinerja dan redundansi yang lebih baik.", "rec_devices_high": "Pemanfaatan perangkat tinggi. Pertimbangkan untuk menambahkan lebih banyak node relai untuk mendistribusikan beban.", "rec_sessions_high": "Kapasitas sesi mendekati batasnya. Pertimbangkan untuk meningkatkan infrastruktur relai.", "rec_cpu_high": "Beberapa node relai melaporkan penggunaan CPU yang tinggi. Pertimbangkan penyeimbangan beban atau peningkatan kapasitas.", "rec_all_good": "Semua sistem beroperasi dalam parameter normal. Tidak diperlukan tindakan.", "save": "Simpan", "cancel": "Batalkan", "edit": "Sunting", "delete": "Hapus", "close": "Tutup", "no_rules": "Tidak ada aturan penugasan.", "relays_info_banner": "Daftar ini bersifat informatif. Server relai yang sebenarnya digunakan oleh klien dikonfigurasi melalui variabel lingkungan RELAY_SERVERS di server BetterDesk.", "relay_name_address_required": "Nama dan alamat diperlukan.", "relay_save_failed": "Gagal menyimpan simpul relai.", "relay_delete_failed": "Gagal menghapus simpul relai.", "relay_saved": "Node relai disimpan.", "relay_deleted": "Node relai dihapus.", "rule_name_value_required": "Nama aturan dan nilai kecocokan wajib diisi.", "rule_save_failed": "Gagal menyimpan aturan.", "rule_delete_failed": "Gagal menghapus aturan.", "rule_saved": "Aturan disimpan.", "rule_deleted": "Aturan dihapus." }, "cross_platform": { "title": "Kompatibilitas Lintas Platform", "tab_matrix": "Matriks Kompatibilitas", "tab_distribution": "Distribution", "tab_protocols": "Protocols", "tab_limitations": "Limitations", "matrix_hint": "Matriks dukungan fitur di semua platform yang didukung. Hijau = dukungan penuh, kuning = sebagian, abu-abu = tidak tersedia, biru = direncanakan.", "col_feature": "Feature", "legend_full": "Dukungan penuh", "legend_partial": "Dukungan parsial", "legend_none": "Tidak tersedia", "legend_planned": "Planned", "platform_breakdown": "Kerusakan Platform", "arch_breakdown": "Kerusakan Arsitektur", "version_breakdown": "Perincian Versi", "summary": "Summary", "total_devices": "Jumlah Perangkat", "unique_platforms": "Platforms", "unique_archs": "Architectures", "unique_versions": "Versi Klien", "no_devices": "Belum ada perangkat yang terdaftar.", "protocols_hint": "Negosiasi kemampuan protokol memastikan setiap klien hanya menerima fitur yang didukungnya. Server mengadaptasi perilaku berdasarkan kemampuan yang dilaporkan.", "capability_negotiation": "Negosiasi Kemampuan", "codec_support": "Dukungan Codec (Perangkat Online)", "feature_support": "Dukungan Fitur (Perangkat Online)", "no_codec_data": "Tidak ada data codec yang tersedia dari perangkat online.", "no_feature_data": "Tidak ada data fitur yang tersedia dari perangkat online.", "protobuf_schema": "Skema Protobuf Kemampuan Klien", "diagram_client": "Client", "diagram_server": "Server BetterDesk", "diagram_peer": "Rekan Jarak Jauh", "limitations_hint": "Setiap platform memiliki batasan spesifik yang memengaruhi fitur yang tersedia. Tinjau kendala ini saat merencanakan penerapan.", "feat_desktop_client": "Klien Desktop", "feat_background_agent": "Agen Latar Belakang", "feat_remote_target": "Sasaran Jarak Jauh", "feat_screen_capture": "Tangkapan Layar", "feat_input_injection": "Injeksi Masukan", "feat_file_transfer": "Pemindahan Berkas", "feat_clipboard_sync": "Sinkronisasi Papan Klip", "feat_audio_streaming": "Streaming Audio", "feat_chat": "Chat", "feat_h264": "H.264 Codec", "feat_vp9": "VP9 Codec", "feat_av1": "AV1 Codec", "feat_cdap_agent": "CDAP Agent", "platform_windows": "Windows", "platform_linux": "Linux", "platform_macos": "macOS", "platform_android": "Android", "platform_ios": "iOS", "platform_web": "Web Browser", "platform_chromeos": "ChromeOS", "status_production": "Production", "status_testing": "Testing", "status_planned": "Planned", "status_limited": "Limited", "status_experimental": "Experimental", "limit_win_uac": "Ketinggian UAC diperlukan untuk instalasi layanan dan injeksi input pada desktop yang aman.", "limit_win_service": "Berjalan sebagai layanan NSSM; memerlukan hak istimewa Administrator untuk instalasi.", "limit_win_firewall": "Aturan Firewall Windows harus mengizinkan port 21115-21119 untuk koneksi relai.", "limit_linux_wayland": "Kompositor Wayland membatasi tangkapan layar terprogram; Portal PipeWire API diperlukan.", "limit_linux_pipewire": "Pengambilan audio memerlukan PipeWire; Penggantian PulseAudio tersedia tetapi terbatas.", "limit_linux_arm": "Tersedia versi ARM64; beberapa codec mungkin menggunakan decoding perangkat lunak (lebih lambat).", "limit_mac_screen": "Izin Perekaman Layar diperlukan di System Preferences > Privasi & Keamanan.", "limit_mac_signing": "Agen harus ditandatangani dengan ID Pengembang Apple untuk distribusi.", "limit_mac_notarize": "Notaris diperlukan untuk macOS Gatekeeper (distribusi non-App Store).", "limit_android_projection": "MediaProjection API memerlukan persetujuan pengguna untuk setiap sesi tangkapan layar.", "limit_android_accessibility": "Injeksi masukan memerlukan AccessibilityService; dibatasi di Android 14+.", "limit_android_battery": "Layanan latar belakang dibatasi oleh mode Istirahatkan; mungkin memerlukan pengecualian pengoptimalan baterai.", "limit_ios_capture": "Apple melarang pengambilan layar di latar belakang; mode hanya pemirsa didukung.", "limit_ios_input": "Tidak ada injeksi masukan yang diizinkan; melihat jarak jauh dan hanya mengobrol.", "limit_ios_appstore": "Distribusi hanya melalui App Store; TestFlight untuk pengujian beta.", "limit_web_https": "WebCodecs API dan WebRTC memerlukan HTTPS; HTTP kembali ke JMuxer (codec terbatas).", "limit_web_codec": "Dukungan codec bergantung pada browser; H.264 didukung secara luas, VP9/AV1 bervariasi.", "limit_web_performance": "Kinerja dibatasi oleh kotak pasir browser; tidak ada akselerasi perangkat keras langsung.", "limit_chrome_crostini": "Dukungan agen penuh hanya di dalam wadah Crostini Linux.", "limit_chrome_pwa": "Mode PWA menyediakan fitur khusus web; tidak ada kemampuan agen asli.", "limit_chrome_input": "Injeksi masukan tidak didukung di luar wadah Crostini.", "feat_session_recording": "Perekaman Sesi", "feat_multi_monitor": "Multi-Monitor", "feat_unattended_access": "Akses Tanpa Pengawasan", "limit_win_virtual_account": "Layanan berjalan di bawah akun virtual terisolasi alih-alih LocalSystem; jalur log kustom mungkin memerlukan penyesuaian ACL.", "limit_linux_unprivileged": "Layanan berjalan sebagai akun 'betterdesk' tanpa hak istimewa khusus dengan penguatan systemd (NoNewPrivileges, ProtectSystem=strict)." }, "security_audit": { "title": "Audit Keamanan", "tab_overview": "Ikhtisar", "tab_events": "Acara Audit", "tab_hardening": "Hardening", "tab_vulnerabilities": "Vulnerabilities", "security_score": "Skor Keamanan", "failed_logins": "Login Gagal (24 jam)", "active_bans": "Active Bans", "api_keys": "API Keys", "old_keys": "Kunci Lama (>90d)", "security_checks": "Pemeriksaan Keamanan", "tls_status": "TLS Status", "pass": "Pass", "warning": "Warning", "fail": "Fail", "tls_signal": "Signal TLS", "tls_relay": "Relay TLS", "tls_api": "API TLS", "tls_wss": "WebSocket Aman", "enabled": "Diaktifkan", "disabled": "Dengan disabilitas", "all_events": "All Events", "event_login_failed": "Gagal Masuk", "event_login_success": "Masuk Berhasil", "event_peer_banned": "Peer Banned", "event_ip_banned": "IP Banned", "event_config_changed": "Konfigurasi Berubah", "event_key_created": "Kunci Dibuat", "refresh": "Refresh", "col_time": "Time", "col_action": "Action", "col_actor": "Actor", "col_target": "Target", "col_ip": "IP Address", "col_details": "Details", "no_events": "Tidak ada peristiwa audit yang ditemukan.", "hardening_hint": "Prioritas penguatan keamanan untuk penerapan BetterDesk Anda. Barang diurutkan berdasarkan tingkat keparahannya.", "no_hardening": "Tidak ada item pengerasan yang tersedia.", "vuln_hint": "Hasil pemindaian kerentanan ketergantungan. Jalankan npm audit secara teratur untuk menjaga keamanan dependensi.", "no_vulns": "Tidak ada kerentanan yang ditemukan. Dependensi Anda aman." }, "languages": { "title": "Manajemen Bahasa", "total_languages": "Jumlah Bahasa", "fully_translated": "Diterjemahkan Sepenuhnya", "needs_review": "Perlu Peninjauan", "reference_keys": "Kunci Referensi", "no_languages": "Tidak ada file bahasa yang ditemukan.", "badge_reference": "Reference", "badge_review": "Perlu Peninjauan", "badge_complete": "Complete", "coverage": "coverage", "keys": "keys", "missing": "missing", "extra": "extra", "view_missing": "Lihat Hilang", "fix_missing": "Fix Missing", "missing_keys_for": "Kunci untuk", "missing_keys_count": "keys missing (English fallback values shown)", "and_more": "dan {n} lainnya...", "all_keys_present": "Semua kunci ada!", "confirm_fix": "Add missing keys to {code} with English fallback values?", "fixed_title": "Keys Fixed", "fixed_msg": "Kunci yang hilang di {code} harus diterjemahkan secara manual.", "no_fix_needed": "Tidak ada kunci yang hilang untuk diperbaiki." }, "resource_control": { "title": "Kontrol Sumber Daya", "tab_overview": "Ikhtisar", "tab_usb": "USB Control", "tab_optical": "Drive Optik", "tab_monitors": "Monitors", "tab_disks": "Disk Access", "tab_quotas": "Kuota Sumber Daya", "compliance_by_category": "Kepatuhan berdasarkan Kategori", "device_compliance": "Kepatuhan Perangkat", "search_devices": "Telusuri perangkat...", "col_device": "Perangkat", "col_platform": "Platform", "col_status": "Status", "col_usb": "USB", "col_optical": "Optical", "col_monitors": "Monitors", "col_disks": "Disks", "col_quotas": "Quotas", "col_actions": "Actions", "stat_total_devices": "Jumlah Perangkat", "stat_compliant": "Compliant", "stat_partial": "Partial", "stat_noncompliant": "Non-Compliant", "stat_compliance_rate": "Tingkat Kepatuhan", "badge_na": "N/A", "badge_compliant": "OK", "badge_partial": "Partial", "badge_noncompliant": "Fail", "btn_configure": "Konfigurasikan", "no_devices": "Tidak ada perangkat yang ditemukan", "usb_title": "Kontrol Pelabuhan USB", "usb_hint": "Kontrol akses perangkat penyimpanan USB untuk perangkat yang dipilih atau kebijakan default seluruh organisasi.", "usb_storage_policy": "Kebijakan Penyimpanan USB", "usb_whitelist": "Perangkat yang Masuk Daftar Putih (satu per baris)", "usb_whitelist_hint": "VID:PID (misalnya 0781:5583)", "usb_audit_log": "Catat koneksi perangkat USB", "optical_title": "Kontrol Drive Optik", "optical_hint": "Kontrol akses drive CD/DVD/Blu-ray untuk perangkat yang dipilih.", "optical_policy": "Kebijakan Drive Optik", "optical_audit_log": "Catat akses drive optik", "monitors_title": "Pantau Manajemen", "monitors_hint": "Konfigurasikan pengaturan monitor termasuk jumlah maksimum, penerapan resolusi, kecerahan, dan jadwal daya.", "monitors_max_count": "Monitor Maksimum (0 = tidak terbatas)", "monitors_max_hint": "0 berarti tidak ada batasan", "monitors_resolution": "Resolusi Maks", "monitors_brightness": "Batas Kecerahan", "monitors_power_schedule": "Jadwal Daya", "monitors_power_hint": "misalnya libur:22:00-06:00", "disks_title": "Kontrol Akses Disk", "disks_hint": "Konfigurasikan kebijakan akses disk termasuk mode hanya baca, penerapan enkripsi, dan visibilitas partisi.", "disks_readonly": "Paksa mode baca-saja", "disks_encryption": "Memerlukan enkripsi (BitLocker/LUKS)", "disks_smart": "Aktifkan S.M.A.R.T. pemantauan", "disks_hidden": "Partisi Tersembunyi", "disks_hidden_hint": "Huruf drive atau titik pemasangan yang dipisahkan koma", "quotas_title": "Kuota Sumber Daya", "quotas_hint": "Tetapkan CPU, RAM, bandwidth, dan kuota disk per pengguna untuk perangkat yang dipilih.", "quotas_cpu": "CPU Limit", "quotas_ram": "RAM Limit", "quotas_bandwidth": "Batas Bandwidth (Mbps)", "quotas_bandwidth_hint": "0 = tidak terbatas", "quotas_disk_quota": "Kuota Disk (GB)", "quotas_disk_hint": "0 = tidak terbatas", "quotas_process_whitelist": "Proses Daftar Putih (satu per baris)", "quotas_process_hint": "misalnya chrome.exe, kode.exe", "policy_allowed": "Allowed", "policy_blocked": "Blocked", "policy_whitelist": "Hanya Daftar Putih", "policy_any": "Any" }, "sdk_studio": { "title": "SDK Studio", "subtitle": "Visual flow editor for CDAP bridges", "new_flow": "New Flow", "open_flow": "Open Flow", "save_flow": "Save Flow", "run_flow": "Run", "debug": "Debug", "deploy": "Deploy", "undo": "Undo", "redo": "Redo", "untitled": "Untitled Flow", "code_mode": "Code Mode", "toggle_grid": "Toggle Grid", "zoom_in": "Zoom In", "zoom_out": "Zoom Out", "zoom_fit": "Fit to Screen", "palette": "Node Palette", "search_nodes": "Search nodes...", "cat_sources": "Sources", "cat_processing": "Processing", "cat_outputs": "Outputs", "empty_title": "Start Building", "empty_desc": "Drag nodes from the palette to start building a flow", "browse_templates": "Browse Templates", "inspector": "Inspector", "select_node": "Select a node to inspect its properties", "console": "Console", "clear_console": "Clear", "console_ready": "Studio ready", "label": "Label", "configuration": "Configuration", "connections": "Connections", "inputs": "Inputs", "outputs": "Outputs", "delete_node": "Delete Node", "nodes": "Nodes", "wires": "Wires", "status_ready": "Ready", "status_deployed": "Deployed", "flow_name": "Flow Name", "flow_desc": "Description", "loading": "Loading...", "no_flows": "No saved flows yet", "confirm_delete": "Are you sure you want to delete this flow?", "templates": "Templates", "node_modbus_tcp": "Modbus TCP", "node_modbus_rtu": "Modbus RTU", "node_snmp_poll": "SNMP Poll", "node_rest_poll": "REST Poll", "node_mqtt_subscribe": "MQTT Subscribe", "node_webhook": "Webhook", "node_device_telemetry": "Device Telemetry", "node_database_query": "Database Query", "node_file_watch": "File Watch", "node_filter": "Filter", "node_transform": "Transform", "node_aggregate": "Aggregate", "node_delay": "Delay", "node_debounce": "Debounce", "node_switch": "Switch", "node_merge": "Merge", "node_script": "Script", "node_widget_update": "Widget Update", "node_alert": "Alert", "node_command": "Command", "node_log": "Log", "node_rest_call": "REST Call", "node_mqtt_publish": "MQTT Publish", "node_database_write": "Database Write", "node_email": "Email", "node_modbus_write": "Modbus Write", "import_flow": "Import Flow" }, "updates": { "tab_title": "Updates", "title": "Pembaruan Perangkat Lunak", "desc": "Check for new versions and update the BetterDesk console from GitHub", "current_version": "Versi terinstal", "latest_version": "Latest version", "status": "Status", "check_now": "Periksa pembaruan", "checking": "Checking…", "up_to_date": "Terkini", "update_available": "Pembaruan tersedia", "changelog": "Release Notes", "no_changelog": "Tidak ada catatan rilis yang tersedia", "files_changed": "File diubah", "files": "file", "changes_unavailable": "Tidak dapat memuat daftar perubahan file. Anda masih dapat menginstal pembaruan.", "create_backup": "Buat cadangan sebelum memperbarui", "install": "Install Update", "install_confirm": "Are you sure you want to install this update? The console will restart after the update.", "installing": "Menginstal pembaruan…", "creating_backup": "Membuat cadangan…", "downloading": "Mengunduh file…", "install_success": "Pembaruan berhasil diinstal. Konsol dimulai ulang…", "install_failed": "Penginstalan pembaruan gagal", "restarting": "Menunggu konsol dimulai ulang…", "restart_complete": "Konsol berhasil dimulai ulang", "restart_timeout": "Console did not restart in time. Please check manually.", "no_version": "Tidak ada versi pembaruan yang dipilih. Periksa pembaruan terlebih dahulu.", "backups_title": "Perbarui Cadangan", "backups_desc": "Cadangan pra-pembaruan dibuat secara otomatis sebelum setiap pembaruan", "no_backups": "Tidak ada cadangan pembaruan yang ditemukan", "restore": "Restore", "restore_confirm": "Apakah Anda yakin ingin memulihkan dari cadangan ini? File yang diubah akan ditimpa.", "restore_success": "Cadangan berhasil dipulihkan. Konsol dimulai ulang…", "baseline_set": "Kumpulan dasar", "commits_behind": "berkomitmen di belakang", "total_files": "Jumlah file", "applied": "Applied", "failed": "Gagal", "skipped": "Skipped", "removed": "Removed", "auto": "Auto", "manual": "Manual", "component_console": "Web Console", "component_server": "Buka Server", "component_agent": "Agent", "component_scripts": "Skrip & Docker", "component_other": "Other", "server_rebuild_warning": "Go Server source changed — binary rebuild required. Use the ALL-IN-ONE script or compile manually.", "include_server": "Include Go Server (compile & deploy binary)", "checking_go": "Memeriksa Pergi…", "go_not_found": "Pergi tidak diinstal", "go_check_failed": "Tidak dapat memeriksa ketersediaan Go", "server_building": "Mengkompilasi Go server… Ini mungkin memerlukan waktu beberapa menit.", "server_built": "Biner server dikompilasi", "server_build_failed": "Kompilasi server gagal", "server_stale_title": "Biner server kedaluwarsa", "server_stale_desc": "Sumber Go server telah diperbarui tetapi biner yang berjalan tidak dibuat ulang. Bangun kembali sekarang untuk menerapkan pembaruan keamanan dan perpustakaan.", "rebuild_server": "Membangun kembali biner server", "rebuilding_server": "Rebuilding…", "rebuild_server_success": "Biner server dibangun kembali dan dimulai ulang", "rebuild_server_failed": "Pembangunan kembali biner server gagal", "server_deployed": "Biner server dikerahkan", "server_deploy_failed": "Penyebaran server gagal", "server_build_note": "Server compilation may take 1-5 minutes. The page will remain unresponsive during compilation.", "server_source_downloading": "Mengunduh sumber server…", "delete": "Hapus", "delete_confirm": "Hapus cadangan {name} secara permanen? Hal ini tidak dapat dibatalkan.", "delete_success": "Cadangan dihapus", "delete_failed": "Gagal menghapus cadangan", "retention_label": "Simpan N cadangan terbaru", "retention_hint": "Cadangan lama dihapus secara otomatis setelah setiap pembaruan. Gunakan 0 untuk menyimpan semua cadangan.", "retention_saved": "Setelan retensi disimpan", "retention_invalid": "Retensi harus berupa bilangan bulat antara 0 dan 1000", "retention_required_for_prune": "Tetapkan nilai retensi lebih besar dari 0 terlebih dahulu", "prune_now": "Apply now", "prune_confirm": "Simpan hanya cadangan terbaru {n} dan hapus sisanya?", "prune_done": "Cadangan {n} yang dipangkas", "total_size": "Total size", "backups_count": "backup(s)", "strategy_label": "Metode pembaruan", "strategy_download": "Unduh biner yang sudah dibuat sebelumnya", "strategy_compile": "Kompilasi dari sumber", "both_available": "Unduh & Kompilasi", "download_available": "Unduhan tersedia", "no_method": "Tidak ada metode pembaruan", "no_release": "No release", "available": "Tersedia", "server_downloading": "Mengunduh biner server…", "server_downloaded": "Biner server diunduh", "server_download_failed": "Pengunduhan biner server gagal", "server_download_note": "Biner yang sudah dibuat sebelumnya akan diunduh dari GitHub Releases. Ini biasanya memakan waktu kurang dari satu menit.", "install_go_hint": "Instal Go dari https://go.dev/dl/ untuk mengaktifkan kompilasi, atau publikasikan rilis dengan binari yang telah dibuat sebelumnya", "strategy_install_go": "Instal otomatis Go dan kompilasi", "strategy_install_go_hint": "Downloads the official Go toolchain (~120 MB) into the console data directory, then compiles the server. Use this when Go is not installed on the host.", "auto_strategy": "Auto", "auto_strategy_hint": "The console will pick the best available method (download → compile → auto-install Go).", "auto_available": "Siap dibangun kembali secara otomatis", "toolchain_ready": "Rantai alat terpasang", "toolchain_will_install": "Go toolchain will be installed automatically", "toolchain_downloading": "Mengunduh rantai alat Go…", "toolchain_failed": "Pemasangan toolchain gagal", "modal_title": "Menginstal pembaruan", "modal_done_title": "Pembaruan selesai", "modal_close": "Tutup", "modal_reload_now": "Muat ulang konsol", "log_title": "Log pembaruan", "log_expand": "Perluas log", "log_collapse": "Ciutkan log", "log_copy": "Salin log", "progress_step": "Langkah {current} dari {total}", "reload_countdown": "Muat ulang otomatis dalam {seconds} d", "retry_update": "Coba pembaruan lagi", "retry_confirm": "Coba instal pembaruan ini lagi?", "phase_confirm": "Confirmation", "phase_backup": "Backup", "phase_console": "File konsol", "phase_server": "Tahap peladen", "phase_restart": "Mulai ulang", "phase_done": "Done", "preparing": "Preparing…", "backup_skipped": "Pencadangan dilewati (sesuai pilihan pengguna)", "server_skipped": "Go server dilewati", "server_not_selected": "Go server not selected", "server_processing": "Memproses pembaruan Go server…", "no_restart_needed": "Tidak perlu memulai ulang", "complete": "Pembaruan diterapkan", "complete_summary": "Pembaruan telah berhasil diterapkan.", "complete_with_errors": "Pembaruan selesai, tetapi beberapa langkah gagal. Lihat detailnya di bawah.", "modal_done_with_errors_title": "Pembaruan selesai dengan kesalahan", "console_will_restart": "Proses konsol akan dimulai ulang sekarang…", "restart_complete_msg": "Konsol selesai dimulai ulang. Klik muat ulang untuk memuat versi baru. Halaman akan dimuat ulang secara otomatis dalam 8 detik.", "refresh_recommended": "Aset statis berubah — muat ulang halaman untuk melihat UI baru.", "confirm_title": "Terapkan pembaruan", "confirm_with_backup": "Cadangan pra-pembaruan akan dibuat secara otomatis.", "confirm_no_backup": "Tidak ada cadangan yang akan dibuat (risiko Anda tanggung sendiri).", "channel_title": "Saluran pembaruan", "channel_desc": "Pilih sumber pembaruan panel. Server produksi gunakan Stable.", "channel_stable": "Stabil (main)", "channel_development": "Pengembangan (dev)", "channel_branch_label": "Cabang GitHub", "channel_save": "Ganti saluran", "channel_saved": "Saluran diganti. Klik Periksa pembaruan.", "channel_save_failed": "Gagal menyimpan saluran pembaruan", "channel_switch_warning": "Mengganti saluran mengubah cabang GitHub. SHA commit yang dilacak tetap — pemeriksaan berikutnya bisa menunjukkan perbedaan besar. Lanjutkan?", "channel_pick_label": "Beralih ke", "channel_apply_hint": "Disimpan setelah konfirmasi. Lalu klik Periksa pembaruan.", "channel_confirm_switch": "Ganti sumber dari {from} ke {to}? Commit terpasang tetap sampai periksa pembaruan.", "docker_title": "Penyebaran image Docker", "docker_desc": "Konsol ini berjalan dari image kontainer yang sudah dibangun (all-in-one resmi atau split legacy). Pembaruan diterapkan di host dengan menarik image kontainer yang lebih baru dari GHCR, bukan instalasi in-app atau build ulang Go.", "docker_install_note": "Instalasi in-app dinonaktifkan di Docker. Jalankan perintah di atas di host, lalu muat ulang halaman ini.", "docker_update_available": "Image kontainer baru tersedia", "docker_sha_unknown": "Terbaru (commit image tidak diketahui)", "docker_images": "Image", "more_options": "Opsi lainnya", "option_advanced": "Opsi lanjutan", "option_advanced_desc": "Retensi cadangan, penyebaran Docker, rebuild server, dan strategi pembaruan" }, "permissions": { "title": "Izin", "subtitle": "Kelola izin berbasis peran dan penggantian khusus", "info_title": "Cara kerja izin", "info_desc": "Setiap peran memiliki izin default. Anda dapat menambah atau menghapus izin individual per peran dengan mengalihkannya di bawah. Penggantian khusus disorot dan dapat dikembalikan ke default kapan saja.", "select_role": "Pilih peran", "select_role_placeholder": "Pilih peran...", "reset_overrides": "Setel ulang semua penggantian", "granted": "Granted", "overrides": "Overrides", "level": "Level", "super_admin_tag": "Full access", "server_level_tag": "Tingkat server", "custom": "Custom", "default": "Default", "revert": "Kembalikan ke default", "saved": "Izin diperbarui", "reverted": "Dikembalikan ke default", "all_reverted": "Semua penggantian dikembalikan", "confirm_reset": "Setel ulang semua penggantian khusus untuk peran ini ke default?", "empty_title": "Pilih peran", "empty_desc": "Pilih peran dari dropdown di atas untuk melihat dan mengelola izinnya.", "locked_title": "Super Admin", "locked_desc": "Admin Super memiliki semua izin secara default dan tidak dapat dikustomisasi.", "cat_device": "Perangkat", "cat_user": "Users", "cat_server": "pelayan", "cat_org": "Organisasi", "cat_audit": "Audit & Pemantauan", "cat_cdap": "CDAP", "cat_enrollment": "Enrollment", "cat_chat": "Chat", "cat_branding": "Branding", "perm_device_view": "Lihat perangkat", "perm_device_connect": "Hubungkan ke perangkat", "perm_device_edit": "Sunting perangkat", "perm_device_delete": "Hapus perangkat", "perm_device_ban": "Melarang/membatalkan pelarangan perangkat", "perm_device_change_id": "Ubah ID perangkat", "perm_user_view": "Lihat pengguna", "perm_user_create": "Buat pengguna", "perm_user_edit": "Sunting pengguna", "perm_user_delete": "Hapus pengguna", "perm_server_config": "Konfigurasi server", "perm_server_keys": "Kelola kunci API", "perm_org_create": "Buat organisasi", "perm_org_edit": "Sunting organisasi", "perm_org_delete": "Hapus organisasi", "perm_org_manage_users": "Kelola pengguna organisasi", "perm_org_manage_devices": "Kelola perangkat organisasi", "perm_audit_view": "Lihat log audit", "perm_metrics_view": "Lihat metrik", "perm_blocklist_edit": "Edit daftar blokir", "perm_cdap_view": "Lihat perangkat CDAP", "perm_cdap_command": "Kirim perintah CDAP", "perm_cdap_terminal": "Akses terminal CDAP", "perm_cdap_files": "Akses file CDAP", "perm_enrollment_manage": "Kelola pendaftaran", "perm_enrollment_approve": "Menyetujui pendaftaran", "perm_chat_access": "Chat access", "perm_branding_edit": "Sunting merek", "perm_server_attestation": "Sertifikasi kinerja server" }, "notifications": { "title": "Pemberitahuan", "empty": "Tidak ada notifikasi baru", "mark_all_read": "Tandai semua telah dibaca", "see_all": "Lihat semua permintaan bantuan", "help_request": "Permintaan bantuan", "just_now": "just now" }, "accessibility": { "title": "Accessibility", "subtitle": "Sesuaikan konsol dengan kebutuhan penglihatan, gerak, dan membaca Anda.", "close": "Tutup menu aksesibilitas", "profiles": "Profil cepat", "profile_low_vision": "Low vision", "profile_low_vision_hint": "Teks lebih besar, kontras dan fokus kuat.", "profile_dyslexia": "Kenyamanan membaca", "profile_dyslexia_hint": "Font yang mudah dibaca dan spasi lebih lebar.", "profile_motion_safe": "Motion safe", "profile_motion_safe_hint": "Mengurangi transisi dan menjeda animasi.", "profile_color_assist": "Dukungan warna", "profile_color_assist_hint": "Filter warna, label, dan tautan yang disorot.", "reading": "Reading", "font_size": "Font size", "line_height": "Line height", "letter_spacing": "Spasi huruf", "word_spacing": "Spasi kata", "readable_font": "Font yang dapat dibaca", "readable_font_hint": "Menggunakan bentuk huruf yang luas dan familier.", "dyslexia_spacing": "Jarak disleksia", "dyslexia_spacing_hint": "Menambahkan spasi ekstra untuk teks panjang.", "visual": "Visual", "contrast": "Contrast", "contrast_normal": "Normal", "contrast_high_dark": "Gelap kontras tinggi", "contrast_high_light": "Cahaya kontras tinggi", "contrast_yellow_black": "Kuning di atas hitam", "color_filter": "Filter penglihatan warna", "filter_none": "None", "filter_protanopia": "Protanopia", "filter_deuteranopia": "Deuteranopia", "filter_tritanopia": "Tritanopia", "filter_achromatopsia": "Achromatopsia", "saturation": "Saturasi warna", "underline_links": "Garis bawahi tautan", "underline_links_hint": "Membuat tautan terlihat tanpa bergantung pada warna.", "highlight_links": "Sorot tindakan", "highlight_links_hint": "Menguraikan tautan dan tombol.", "highlight_headings": "Sorot judul", "highlight_headings_hint": "Menandai judul bagian dengan bilah warna.", "hide_media": "Dim media", "hide_media_hint": "Meredupkan gambar, video, dan kanvas.", "interaction": "Interaction", "strong_focus": "Fokus yang kuat", "strong_focus_hint": "Menampilkan cincin fokus keyboard yang besar.", "large_cursor": "Kursor besar", "large_cursor_hint": "Menggunakan penunjuk kontras tinggi yang lebih besar.", "reduce_motion": "Kurangi gerakan", "reduce_motion_hint": "Mempersingkat transisi dan pengguliran halus.", "pause_animations": "Jeda animasi", "pause_animations_hint": "Menghentikan perulangan gerakan visual.", "reading_guide": "Panduan membaca", "reading_guide_hint": "Ikuti penunjuk dengan garis terang.", "reading_mask": "Masker membaca", "reading_mask_hint": "Meredupkan konten di atas dan di bawah penunjuk.", "preview": "Preview", "preview_title": "Pratinjau ruang kerja operator", "preview_text": "Periksa apakah teks, tautan, kontrol, dan label status nyaman dibaca sebelum menutup menu ini.", "preview_link": "Tautan detail perangkat", "preview_status": "Online", "preview_button": "Tindakan utama", "preview_secondary": "Secondary", "reset": "Reset", "done": "Done" }, "server_mgmt": { "title": "Manajemen Server", "subtitle": "Bidang kendali seperti kokpit untuk host konsol BetterDesk (BETA).", "beta_tooltip": "Fitur beta — sedang dalam pengembangan aktif.", "notice_title": "Fitur beta", "notice_body": "Alat-alat ini berjalan di host tempat proses konsol BetterDesk berada. Semua operasi diaudit. Cakupan fitur akan diperluas pada rilis mendatang.", "tab_overview": "Ikhtisar", "tab_terminal": "Terminal", "tab_files": "Berkas", "tab_services": "Layanan", "cpu": "CPU", "memory": "Memori", "load": "Rata-rata beban", "disks": "Disk", "history": "Sejarah (60 sampel terakhir)", "host_info": "Host info", "cores": "cores", "uptime": "Waktu aktif", "no_disks": "Tidak ada data disk yang tersedia", "info_hostname": "Hostname", "info_platform": "Platform", "info_kernel": "Kernel", "info_node": "Node.js", "info_process_id": "Process ID", "info_pty_available": "PTY tersedia", "term_connect": "Hubungkan", "term_disconnect": "Putuskan", "term_clear": "Clear", "term_status": "Status", "term_connecting": "Connecting…", "term_connected": "Connected", "term_disconnected": "Disconnected", "term_error": "Kesalahan koneksi", "term_warning": "Perintah dijalankan sebagai pengguna yang memiliki proses konsol. Tambahkan aturan sudoers untuk mengaktifkan elevasi.", "term_hint": "Tip: ketik `sudo -i` untuk melakukan eskalasi (memerlukan konfigurasi sudoers).", "term_lib_failed": "Gagal memuat perpustakaan terminal", "files_up": "Naik satu tingkat", "files_go": "Go", "files_mkdir": "New folder", "files_name": "Name", "files_size": "Size", "files_perms": "Mode", "files_mtime": "Modified", "files_rename": "Rename", "files_rename_prompt": "New name:", "files_empty": "Direktori kosong", "files_error": "Gagal mencantumkan direktori", "read_failed": "Gagal membaca file", "save_failed": "Gagal menyimpan file", "rename_failed": "Gagal mengganti nama", "delete_failed": "Penghapusan gagal", "delete_confirm": "Hapus entri ini?", "mkdir_prompt": "Nama folder baru:", "mkdir_failed": "Gagal membuat folder", "file_saved": "Berkas disimpan", "binary_warn": "File biner — hanya pratinjau", "encoding_utf8": "UTF-8 text", "truncated": "truncated", "full": "full", "svc_search_placeholder": "Layanan pencarian…", "svc_name": "Service", "svc_state": "State", "svc_description": "Description", "svc_empty": "Tidak ada layanan yang ditemukan", "svc_load_failed": "Gagal memuat layanan", "svc_action_failed": "Tindakan gagal", "svc_confirm": "Run", "svc_start": "Start", "svc_stop": "Stop", "svc_restart": "Mulai ulang", "svc_reload": "Reload", "svc_enable": "Enable", "svc_disable": "Disable", "svc_status": "Status" }, "download": { "title": "Unduh Agen BetterDesk", "choose_platform": "Pilih platform Anda", "choose_platform_hint": "Pilih penginstal yang cocok dengan sistem operasi Anda.", "download": "Unduh", "building": "Membangun…", "failed": "Pembuatan gagal", "need_help": "Butuh bantuan?", "powered_by": "Didukung oleh", "product_agent_client": "BetterDesk Agent Client — full managed endpoint agent", "product_support_agent": "BetterDesk Support Agent — lightweight end-user client", "product_rdclient": "BetterDesk RdClient — operator remote desktop client" }, "server_attestation": { "title": "Sertifikasi Kinerja Server", "subtitle": "Benchmark kinerja yang menentukan kapasitas koneksi jarak jauh bersamaan pada ambang CPU, RAM, dan disk 80%.", "warning_title": "Uji beban", "warning_body": "Benchmark mensimulasikan koneksi WebSocket paralel ke server signal dan relay. Jalankan di luar jam sibuk — pengujian ini membebani produksi.", "run_benchmark": "Jalankan Benchmark", "abort": "Batalkan", "download_report": "Unduh laporan JSON", "last_test": "Pengujian terakhir", "no_test_yet": "Belum ada benchmark yang dijalankan", "max_connections": "Koneksi maksimum", "threshold_80": "Ambang 80% — metrik akhir", "disk": "Disk", "ramp_chart": "Grafik ramp beban", "connections": "Koneksi", "connections_short": "koneksi", "tier_guide_title": "Apa arti setiap tingkatan?", "tier_bronze": "BRONZE", "tier_iron": "IRON", "tier_titanium": "TITANIUM", "tier_platinum": "PLATINUM", "tier_obsidian": "OBSIDIAN", "tier_none": "UNRATED", "tier_bronze_desc": "1–25 koneksi bersamaan — VPS kecil (1–2 vCPU, 2–4 GB RAM).", "tier_iron_desc": "26–75 koneksi — server kelas menengah (2–4 vCPU, 4–8 GB RAM).", "tier_platinum_desc": "76–200 koneksi — server berperforma tinggi (4–8 vCPU, 8–16 GB RAM).", "tier_titanium_desc": "201–400 koneksi — infrastruktur enterprise (8+ vCPU, 16–32 GB RAM).", "tier_obsidian_desc": "401+ koneksi — kelas turbo: hardware khusus, 16+ vCPU, 32+ GB RAM, NVMe.", "docker_note": "Catatan: di Docker, metrik CPU/RAM dapat mencerminkan batas container daripada host fisik.", "badge_tooltip": "BetterDesk Server Attestation — sertifikasi kinerja server", "confirm_run": "Benchmark ini akan menguji beban server dengan koneksi simulasi. Lanjutkan?", "starting": "Memulai…", "complete": "Benchmark selesai", "signal_peers": "Peer sinyal", "relay_sessions": "Sesi relay", "page_error": "Gagal memuat halaman Server Attestation", "mode_estimated": "Estimasi (WebSocket tidak dapat dijangkau)", "incomplete": "Benchmark selesai tanpa tingkatan yang valid" }, "commercialization": { "title": "Komersialisasi", "subtitle": "Paket dukungan, sesi berbayar, dan laporan kerja", "alpha_badge": "ALPHA", "alpha_tooltip": "Fitur awal — penagihan dan paket sedang dalam pengembangan aktif.", "tabs": { "overview": "Ikhtisar", "packages": "Paket & kontrak", "sessions": "Sesi", "reports": "Laporan", "settings": "Pengaturan lanjutan" }, "clock": { "title": "Waktu server (NTP)", "check_now": "Periksa sekarang", "unsynced": "Jam server tidak tersinkron — sesi berbayar dapat diblokir", "synced_detail": "Jam disinkronkan untuk penagihan", "ntp_servers": "Server NTP", "ntp_servers_hint": "Nama host atau IP dipisah koma. Berlaku untuk server Go (betterdesk-server).", "max_skew_ms": "Selisih jam maksimum (ms)", "require_sync": "Wajib jam tersinkron untuk sesi berbayar", "trust_os": "Percayai NTP OS jika kueri langsung gagal", "trust_os_hint": "Gunakan status systemd-timesyncd/chrony saat UDP NTP diblokir (DMZ/firewall).", "save": "Simpan pengaturan NTP", "saved": "Pengaturan jam disimpan. Restart server Go dimulai.", "save_restart": "Simpan NTP dan restart server Go? Sesi aktif mungkin terputus sebentar.", "status_offset": "Offset", "status_server": "Sumber NTP", "status_os": "Jam OS tersinkron", "status_error": "Kesalahan terakhir", "os_yes": "Ya", "os_no": "Tidak", "checked": "Clock check completed" }, "stats": { "active_sessions": "Sesi berbayar aktif", "expiring_contracts": "Contracts expiring (30 days)", "expiring_hint": "Active assignments with end date within 30 days" }, "packages": { "new": "Paket baru", "name": "Nama", "included_minutes": "Menit termasuk", "overage_rate": "Tarif kelebihan / j", "currency": "Mata uang", "heading": "Paket dukungan", "prompt_name": "Nama paket", "create_title": "Paket baru untuk organisasi", "create_submit": "Buat paket", "select_org": "Organisasi", "select_org_placeholder": "Pilih organisasi…", "description": "Description", "edit_title": "Edit package", "created": "Package created", "updated": "Package updated", "deleted": "Package deleted", "delete_confirm": "Delete this package? Assignments using it must be removed first." }, "sessions": { "device": "Perangkat", "operator": "Operator", "duration": "Durasi", "phase": "Fase", "amount": "Jumlah", "org": "Organization" }, "reports": { "session": "Sesi", "summary": "Ringkasan", "date": "Tanggal" }, "contracts": { "title": "Kontrak organisasi", "new": "Tetapkan paket", "org": "Organisasi", "package": "Paket", "remaining": "Menit tersisa", "status": "Status", "actions": "Tindakan", "suspend": "Tangguhkan", "activate": "Aktifkan", "select_org": "Pilih organisasi", "select_package": "Pilih paket", "no_orgs": "Organisasi tidak ditemukan", "no_packages": "Buat paket terlebih dahulu", "assignments_title": "Package assignments", "target": "Target", "hourly_rate": "Hourly rate", "custom_overage": "Custom overage rate / h", "validity": "Validity", "valid_from": "Valid from", "valid_until": "Valid until", "edit_title": "Edit assignment", "updated": "Assignment updated", "deleted": "Assignment removed", "delete_confirm": "Remove this package assignment?" }, "export": { "csv": "Ekspor CSV", "pdf": "Ekspor PDF", "sessions_csv": "Ekspor sesi CSV" }, "report": { "title": "Laporan kerja", "subtitle": "Jelaskan pekerjaan yang dilakukan selama sesi jarak jauh ini.", "category": "Kategori", "ticket_ref": "Referensi tiket", "summary": "Pekerjaan yang dilakukan", "skip": "Lewati untuk sekarang", "submit": "Kirim laporan", "summary_required": "Ringkasan wajib diisi", "saved": "Laporan kerja disimpan" }, "empty": { "packages": "Belum ada paket. Buat dengan tombol di atas.", "contracts": "Belum ada kontrak organisasi. Tetapkan paket ke organisasi.", "sessions": "Belum ada sesi berbayar tercatat.", "reports": "Belum ada laporan kerja." }, "assign": { "title": "Tetapkan paket yang ada", "submit": "Tetapkan", "target_type": "Target type", "target": "Target", "select_target": "Select target…", "missing_fields": "Select target and package", "optional": "Optional", "success": "Package assigned" }, "form": { "cancel": "Batal" }, "notifications": { "title": "Email notifications", "desc": "Notify operators by email when devices in their folders or groups submit help requests.", "smtp_status": "SMTP status", "smtp_configured": "SMTP is configured", "smtp_missing": "SMTP is not configured — set it up in Settings → Email", "smtp_link": "Open SMTP settings", "help_requests_enabled": "Send email for new help requests", "notify_assigned_operators": "Notify operators assigned to the device folder or group", "fallback_alert_email": "Use alert email when no operator address is available", "include_folder_in_subject": "Include folder name in the email subject", "save": "Save notification settings", "saved": "Notification settings saved" }, "targets": { "org": "Organization", "device_group": "Device group", "folder": "Folder", "device": "Device" }, "actions": { "edit": "Edit", "delete": "Delete", "save": "Save", "refresh": "Refresh" }, "filters": { "target_type": "Target type", "all_types": "All types", "all_statuses": "All statuses", "all_orgs": "All organizations", "organization": "Organization", "search": "Search", "search_placeholder": "Name or package…", "device_id_placeholder": "Device ID" }, "status": { "active": "Active", "suspended": "Suspended", "pending_report": "Pending report", "closed": "Closed" } }, "remote_dashboard": { "title": "Klien desktop jarak jauh", "subtitle": "Hubungkan ke perangkat Anda dari browser", "search_placeholder": "Cari berdasarkan ID, hostname, atau catatan…", "filter_all": "Semua", "filter_online": "Online", "filter_offline": "Offline", "col_id": "ID perangkat", "col_hostname": "Hostname", "col_platform": "Platform", "col_status": "Status", "col_last_seen": "Terakhir terlihat", "connect": "Hubungkan", "empty": "Tidak ada perangkat yang cocok dengan filter", "loading": "Memuat perangkat…", "error_load": "Gagal memuat perangkat", "open_panel": "Buka konsol", "devices_count": "{count} perangkat", "retry": "Coba lagi", "nav_address_book": "Buku alamat", "nav_folders": "Folder", "nav_groups": "Grup", "nav_tags": "Tag", "quick_connect": "Kendalikan desktop jarak jauh", "quick_connect_placeholder": "Masukkan ID jarak jauh…", "view_grid": "Tampilan grid", "view_list": "Tampilan daftar", "sync_now": "Segarkan", "last_sync": "Diperbarui", "status_ready": "Siap", "sync_error": "Kesalahan sinkronisasi", "unassigned": "Belum ditetapkan", "no_groups": "Tidak ada grup", "no_tags": "Tidak ada tag", "collapse_devices": "Ciutkan daftar perangkat", "expand_devices": "Perluas daftar perangkat", "open_settings": "Pengaturan" }, "rdclient_login": { "title": "Klien Desktop Jarak Jauh", "subtitle": "Masuk untuk terhubung ke perangkat Anda", "username_placeholder": "Nama pengguna", "password_placeholder": "Kata sandi", "remember_me": "Ingat saya di perangkat ini", "sign_in": "Masuk", "totp_title": "Autentikasi dua faktor", "totp_subtitle": "Masukkan kode 6 digit dari aplikasi autentikator Anda", "verify": "Verifikasi", "back_to_login": "Kembali ke masuk", "open_console_login": "Buka login konsol", "session_expired": "Sesi berakhir. Silakan masuk lagi.", "fill_all_fields": "Harap isi semua bidang", "invalid_credentials": "Kredensial tidak valid", "network_error": "Kesalahan jaringan", "enter_6_digits": "Masukkan semua 6 digit", "invalid_code": "Kode tidak valid" }, "rdclient_settings": { "title": "Pengaturan RdClient", "open": "Pengaturan", "server_url": "URL panel", "tls_strict": "TLS ketat", "sign_out": "Keluar", "reset_client": "Reset klien", "discovery_refresh": "Segarkan", "discovery_empty": "Tidak ada server di jaringan lokal" }, "mobile_nav": { "label": "Navigasi utama", "home": "Beranda", "devices": "Perangkat", "remote": "Remote", "chat": "Obrolan", "more": "Lainnya" }, "mesh": { "settings_title": "MeshCentral Compatibility", "enabled": "MeshCentral layer enabled", "disabled": "MeshCentral layer disabled", "server_id": "Server ID (for .msh)", "download_msh": "Download MeshAgent .msh", "agents_online": "Mesh agents online", "device_type": "Mesh Agent", "transport_mesh": "MeshCentral KVM", "linked_peer": "Linked device", "link_peer": "Link to RustDesk/CDAP peer on same host", "onboarding_title": "MeshAgent onboarding", "onboarding_body": "Download the .msh file, install MeshAgent on endpoints, and devices appear as mesh_agent in the device list.", "run_command": "Jalankan perintah", "terminal": "Terminal", "files": "Penjelajah file", "run_command_title": "Jalankan perintah di perangkat", "command_placeholder": "Perintah yang dijalankan", "command_sent": "Perintah dikirim ke agen", "command_failed": "Gagal mengirim", "run_as_shell": "Jalankan di shell", "terminal_title": "Terminal jarak jauh", "terminal_unavailable": "Modul terminal tidak dimuat", "link_peer_title": "Tautkan agen Mesh", "link_peer_hint": "ID peer RustDesk atau CDAP di host yang sama. Kosong untuk memutus.", "link_saved": "Tautan diperbarui", "transport_terminal": "Terminal Mesh", "transport_files": "File Mesh", "settings_desc": "Onboarding MeshAgent dan Server ID untuk file .msh.", "mesh_name": "Nama grup Mesh (.msh)", "copy_server_id": "Salin Server ID", "copy_server_id_ok": "Server ID disalin", "enabled_label": "Diaktifkan", "disabled_label": "Nonaktif", "share_link": "Tautan desktop tamu", "share_link_title": "Buat tautan desktop tamu", "share_link_hint": "Tautan hanya-lihat berbatas waktu. Penerima dapat membuka desktop jarak jauh tanpa akun panel.", "share_ttl": "Berlaku (menit)", "share_url": "URL berbagi", "share_create": "Buat tautan", "share_created": "Tautan tamu dibuat", "port_tcp": "Relay port TCP", "port_forward_title": "Relay TCP via MeshAgent", "port_connect": "Hubungkan", "port_connected": "Relay siap", "port_connecting": "Menghubungkan…", "port_closed": "Terputus", "port_error": "Kesalahan WebSocket", "port_invalid": "Port tidak valid", "port_send": "Kirim", "port_send_placeholder": "Kirim teks ke port jarak jauh…", "port_unavailable": "Modul port relay tidak dimuat", "power_sleep": "Tidur", "power_reset": "Reset", "power_confirm": "Kirim aksi daya", "power_sent": "Perintah daya dikirim", "power_wake": "Wake", "power_off": "Power off", "filter_mesh": "Mesh agents", "port_udp": "UDP port relay", "groups_title": "Mesh groups", "group_id_placeholder": "Group ID", "group_name_placeholder": "Display name", "group_add": "Add group", "groups_save": "Save groups", "groups_empty": "No mesh groups yet.", "groups_load_error": "Could not load mesh groups.", "groups_saved": "Mesh groups saved", "groups_save_error": "Failed to save mesh groups", "recordings_title": "Session recordings (server)", "recordings_desc": "Mesh desktop sessions captured on the server (.mcrec). CDAP/RustDesk browser recordings stay local unless exported.", "recordings_empty": "No server recordings yet.", "recordings_load_error": "Could not load recordings.", "recording_download": "Download", "recording_server_on": "Server recording enabled — reconnecting…", "recording_server_off": "Server recording disabled — reconnecting…", "cert_missing": "Agent-server certificate not found. Back up mesh_agent_server.pem after agents connect.", "cert_ok": "Agent-server certificate present", "onboarding_step_msh": "Download the .msh file and set the mesh group name.", "onboarding_step_install": "Install unmodified MeshAgent on endpoints using the .msh file.", "onboarding_step_verify": "Confirm devices appear as mesh_agent and show online." }, "guest_access": { "title": "Remote tamu", "subtitle": "Akses sementara — hanya perangkat yang dibagikan", "menu": "Tautan akses tamu", "create_title": "Buat tautan akses tamu", "create_hint": "Tautan RdClient berbatas waktu. Penerima hanya dapat terhubung ke perangkat yang dipilih — tanpa login Console atau daftar lengkap.", "devices": "Perangkat", "ttl": "Berlaku (menit)", "label": "Label (opsional)", "view_only": "Hanya lihat", "url": "URL berbagi", "create": "Buat tautan", "created": "Tautan tamu dibuat", "invalid_title": "Tautan tamu tidak valid", "missing_token": "Tautan tamu ini tidak memiliki token.", "expired": "Tautan tamu ini tidak valid atau kedaluwarsa.", "device_denied": "Tautan tidak valid, kedaluwarsa, atau tidak mengizinkan perangkat ini.", "empty": "Tidak ada perangkat pada tautan ini.", "expires": "Kedaluwarsa", "back_to_list": "Kembali ke daftar tamu" }, "ux35": { "resize_sidebar": "Ubah lebar bilah samping", "open_menu": "Buka menu", "theme_mode_hint": "Terang dan Gelap bawaan. Kustom aktif saat Anda mengubah warna di bawah." } }