{ "common": { "menu": "Menu", "home": "Beranda", "login": "Masuk", "search": "Cari", "filter": "Filter", "reset": "Reset", "refresh": "Refresh", "loading": "Memuat data...", "loading_short": "Memuat...", "all_status": "Semua Status", "view_all": "Lihat Semua", "close": "Tutup", "processing": "Memproses...", "success": "Berhasil", "failed": "Gagal", "details": "Detail", "active": "Aktif", "inactive": "Nonaktif", "cancel": "Batal", "back_to": "Kembali ke", "portal": "Portal", "edit": "Edit", "delete": "Hapus", "save": "Simpan", "add": "Tambah", "actions": "Aksi", "copy_link": "Salin Link", "logout": "Logout", "language": "Bahasa", "estimated_done": "Estimasi selesai", "since": "sejak", "days": "hari", "hours": "jam", "back": "Kembali", "status": "Status", "toggle_theme": "Toggle tema", "customer": "Pelanggan", "note_optional2": "Keterangan / Catatan (Opsional)", "type": "Tipe", "date": "Tanggal", "amount_qty": "Jumlah", "category": "Kategori", "desc_note": "Deskripsi / Catatan", "desc_note2": "Deskripsi / Keterangan", "description": "Deskripsi", "error_colon": "Error:", "order": "Urutan", "note_optional": "Keterangan (Opsional)", "optional": "Opsional", "success_excl": "Berhasil!", "failed_colon": "Gagal:", "required": "(wajib)", "reload": "Muat Ulang" }, "admin": { "panel": "Admin Panel", "login": { "subtitle": "Administrator Portal", "username": "Username", "password": "Password", "sign_in": "Masuk Sekarang", "back_customer": "Kembali ke Portal Pelanggan" }, "role": { "admin": "Admin", "cashier": "Kasir", "technician": "Teknisi", "collector": "Kolektor" }, "dashboard": { "live_update": "Live Update", "portal_link": "Link Portal Pelanggan", "monitoring_onu": "Monitoring ONU", "onu_status_title": "Status ONU", "total_onu": "Total ONU", "onu_registered": "Perangkat terdaftar", "online": "Online", "active_now": "Aktif saat ini", "offline": "Offline", "no_response": "Tidak merespons", "warning": "Warning", "needs_attention": "Perlu perhatian", "billing_summary_month": "Ringkasan Billing Bulan Ini", "revenue_month": "Pendapatan Bulan Ini", "collected": "Sudah terkumpul", "active_customers": "Pelanggan Aktif", "from": "Dari", "total_customers_suffix": "total pelanggan", "unpaid_invoices": "Tagihan Belum Bayar", "awaiting_payment": "Menunggu pembayaran", "total_receivable": "Total Piutang", "not_collected": "Belum tertagih", "quick_actions": "Aksi Cepat", "qa_add_customer": "Tambah Pelanggan", "qa_manage_packages": "Kelola Paket", "qa_create_invoice": "Buat Tagihan", "qa_reports": "Laporan", "qa_monitor_onu": "Monitor ONU", "qa_bulk": "Bulk Config", "latest_offline": "ONU Offline Terbaru", "uptime": "Uptime", "search_placeholder": "Cari tag, SN, atau username pppoe...", "realtime": "Realtime Monitoring", "onu_device_list": "Daftar Perangkat ONU", "loading_onu": "Memuat data ONU...", "loading_devices": "Memuat perangkat...", "table": { "tag_customer": "Tag / Pelanggan", "device": "Perangkat", "network": "Jaringan", "status_info": "Status / Info", "actions": "Aksi" }, "device_detail": "Detail Perangkat", "edit_ssid": "Ubah SSID", "new_ssid": "SSID Baru", "new_ssid_placeholder": "Nama WiFi baru", "edit_wifi_password": "Ubah Password WiFi", "new_password": "Password Baru", "new_password_placeholder": "Minimal 8 karakter", "devices_suffix": "perangkat", "update_prefix": "Update:", "all_onu_online": "Semua ONU online!", "never": "Tidak pernah", "seconds_ago": "detik lalu", "minutes_ago": "menit lalu", "hours_ago": "jam lalu", "days_ago": "hari lalu", "reboot_confirm_prefix": "Yakin reboot ONU:", "reboot_sent": "Reboot terkirim", "load_failed": "Gagal memuat data", "no_devices_found": "Tidak ada perangkat ditemukan", "onu_device_fallback": "ONU Device", "no_ip": "No IP", "connected_suffix": "dev tersambung", "edit_password": "Ubah Password", "reboot": "Reboot", "ssid_required": "SSID tidak boleh kosong", "ssid_sent": "Perubahan SSID telah dikirim ke perangkat.", "ssid_failed": "Gagal mengubah SSID.", "password_min": "Password minimal 8 karakter", "password_sent": "Perubahan Password telah dikirim ke perangkat.", "password_failed": "Gagal mengubah password.", "connection_error": "Terjadi kesalahan koneksi.", "portal_link_copied": "Link Portal berhasil disalin!", "connected_devices": "Perangkat Terhubung", "no_connected_devices": "Tidak ada perangkat terhubung", "detail_load_failed": "Gagal memuat detail", "detail": { "tag": "Tag", "status": "Status", "ssid": "SSID", "serial": "Serial", "model": "Model", "software": "SW Version", "pppoe_user": "PPPoE User", "ip": "IP", "rx_power": "RX Power", "uptime": "Uptime", "last_inform": "Last Inform", "user_conn": "User Conn." } }, "mikrotik": { "default_router": "-- Default Router --", "backup_rsc": "Backup RSC", "search_placeholder": "Cari...", "stats": { "pppoe_online": "PPPoE Online", "hotspot_online": "Hotspot Online", "total_secrets": "Total Secrets", "total_hotspot": "Total Hotspot" }, "nav": { "dashboard": "Dashboard", "mikrotik": "MikroTik", "radius_server": "RADIUS Server", "network_map": "Peta Jaringan", "acs_pro": "GenieACS Pro", "whatsapp": "WhatsApp", "finance_report": "Laporan Keuangan", "customers": "Pelanggan", "internet_packages": "Paket Internet", "invoices": "Tagihan", "customer_tickets": "Keluhan Pelanggan", "technicians": "Teknisi", "cashiers": "Kasir", "agents": "Agent", "agent_reports": "Laporan Agent", "update": "Update GitHub", "settings": "Pengaturan", "cashiers_reports": "Laporan Kasir", "collector_payments": "Approval Kolektor", "inventory": "Inventaris (Stok)", "attendance": "Absensi Karyawan", "payroll": "Gaji Karyawan", "cashier_attendance": "Absensi Saya", "collectors": "Kolektor", "backup": "Backup & Recovery", "monitoring": "Monitoring Sistem", "audit_logs": "Log Aktivitas" }, "section": { "main": "UTAMA", "billing": "BILLING", "service": "LAYANAN", "cashier": "KASIR", "user_management": "MANAJEMEN USER", "system": "SISTEM" }, "tabs": { "pppoe_secrets": "PPPoE Secrets", "hotspot_users": "Hotspot Users", "pppoe_profiles": "PPPoE Profiles", "hotspot_profiles": "Hotspot Profiles" }, "pppoe": { "title": "Daftar PPPoE Secrets" }, "hotspot": { "title": "Daftar Hotspot Users" }, "pppoe_profiles": { "title": "Daftar PPPoE Profiles" }, "hotspot_profiles": { "title": "Daftar Hotspot User Profiles", "price": "Harga", "duration": "Durasi" }, "actions": { "add_secret": "Tambah Secret", "edit_secret": "Edit Secret", "add_user": "Tambah User", "add_profile": "Tambah Profile", "add_hotspot_user": "Tambah User Hotspot", "edit_hotspot_user": "Edit User Hotspot", "add_pppoe_profile": "Tambah PPPoE Profile", "edit_pppoe_profile": "Edit PPPoE Profile", "add_hotspot_profile": "Tambah Hotspot Profile", "edit_hotspot_profile": "Edit Hotspot Profile" }, "confirm": { "delete_secret": "Hapus secret ini?", "delete_hotspot_user": "Hapus user hotspot ini?", "delete_profile": "Hapus profile ini?" }, "empty": { "secrets": "Tidak ada data secret", "hotspot_users": "Tidak ada data user hotspot" }, "errors": { "save_failed": "Gagal menyimpan", "delete_failed": "Gagal menghapus", "load_failed": "Gagal memuat data" }, "status": { "online": "Online", "offline": "Offline", "disabled": "Disabled" } }, "vouchers": { "default_router": "-- Default Router --", "stats": { "batches": "Batch", "vouchers": "Voucher", "used": "Terpakai", "unused": "Belum" }, "create": { "title": "Buat Voucher Batch", "profile": "Hotspot User Profile", "qty": "Jumlah", "price": "Harga (Rp)", "mode": "Mode", "mode_voucher": "Voucher (User=Pass)", "mode_member": "Member (User & Pass Beda)", "charset": "Karakter", "charset_numbers": "Hanya Angka", "charset_letters": "Hanya Huruf (Kecil)", "charset_mixed": "Huruf & Angka", "length": "Panjang", "prefix": "Prefix", "create_btn": "Buat", "hint_default": "Durasi diambil dari metadata profile. Harga bisa diisi manual (kalau kosong akan pakai dari profile)." }, "batches": { "title": "Batch Voucher" }, "table": { "router": "Router", "used": "Terpakai", "created": "Dibuat" }, "detail": { "title": "Detail Batch", "code": "Kode", "password": "Password", "used_at": "Terpakai", "last_seen": "Last Seen" }, "actions": { "sync": "Sync", "print": "Print", "csv": "CSV" }, "js": { "price_prefix": "Harga:", "duration_prefix": "Durasi:", "mode_voucher_hint": "Mode Voucher: Username dan Password sama. Durasi diambil dari metadata profile. Harga bisa diisi manual.", "mode_member_hint": "Mode Member: Username dan Password di-generate secara terpisah. Durasi diambil dari metadata profile. Harga bisa diisi manual.", "choose_profile_first": "Pilih profile hotspot terlebih dulu.", "invalid_qty": "Jumlah voucher tidak valid.", "processing": "Proses...", "create_failed": "Gagal membuat batch", "batch_created_prefix": "Batch", "batch_created_suffix": "dibuat. Sistem sedang membuat voucher di MikroTik.", "no_batches": "Belum ada batch voucher.", "default_router": "Default", "detail_failed": "Gagal mengambil detail", "detail_title_prefix": "Detail Batch", "no_vouchers": "Tidak ada voucher.", "sync_failed": "Gagal sync", "sync_done_prefix": "Sync selesai. Used baru:", "sync_done_middle": "Missing:", "delete_creating_warn": "Batch sedang diproses. Tunggu sampai statusnya selesai, lalu coba hapus lagi.", "delete_confirm_prefix": "Hapus Batch", "delete_confirm_line1": "- Data voucher batch ini akan dihapus dari sistem.", "delete_confirm_line2": "- Ini TIDAK menghapus user Hotspot yang sudah terbuat di MikroTik.", "delete_confirm_continue": "Lanjutkan?", "delete_failed": "Gagal menghapus batch", "delete_success_prefix": "Batch", "delete_success_suffix": "berhasil dihapus.", "deleted_vouchers_prefix": "Vouchers terhapus:", "used_prefix": "Terpakai:" } }, "routers": { "list_title": "Daftar Router MikroTik", "add": "Tambah Router", "empty": "Belum ada router yang ditambahkan", "table": { "name": "Nama Router", "host": "Host / IP", "port": "Port", "username": "Username", "status": "Status" }, "form": { "name": "Nama Router", "name_placeholder": "Contoh: Router Pusat", "host": "Host / IP", "api_port": "Port API", "username": "Username MikroTik", "password": "Password", "password_keep": "Password (Kosongkan jika tetap)", "status": "Status", "description": "Deskripsi / Lokasi", "optional": "Opsional..." }, "actions": { "test": "Test Koneksi", "save": "Simpan Router", "edit_title": "Edit Router", "update": "Update Router" }, "confirm": { "delete": "Hapus router ini?", "test": "Test koneksi ke router ini?" }, "js": { "system_error": "Terjadi kesalahan sistem." } }, "tickets": { "list_title": "Daftar Keluhan", "empty": "Tidak ada tiket keluhan", "no_technician": "Belum ada", "stats": { "total": "Total Tiket" }, "status": { "open": "Belum Ditangani", "in_progress": "Sedang Dikerjakan", "working_short": "Dikerjakan", "resolved": "Selesai" }, "table": { "time": "Waktu", "customer": "Pelanggan", "issue": "Kendala", "technician": "Teknisi", "status": "Status" }, "actions": { "update_status": "Update Status", "save_changes": "Simpan Perubahan" }, "confirm": { "delete": "Hapus keluhan ini?" }, "modal": { "title": "Update Status Keluhan", "message": "Detail Pesan" } }, "whatsapp": { "status_title": "Status WhatsApp", "checking": "Mengecek status...", "please_wait": "Harap tunggu sebentar.", "connected": "Terhubung", "need_scan": "Perlu Pemindaian", "qr_instruction": "Silakan pindai QR Code ini dengan aplikasi WhatsApp Anda:", "qr_auto_refresh": "QR Code akan diperbarui secara otomatis.", "connected_title": "WhatsApp Terhubung", "connected_as": "Terhubung sebagai:", "last_updated": "Terakhir diperbarui:", "refresh_status": "Refresh Status", "reset_session": "Hapus Sesi / Reset", "test_notification": "Kirim Test Notif", "confirm_test": "Kirim test notifikasi WhatsApp ke admin sekarang?", "confirm_reset": "Apakah Anda yakin ingin menghapus sesi WhatsApp? Anda harus scan QR ulang setelah ini.", "desc_open": "Bot WhatsApp aktif dan siap mengirim notifikasi.", "desc_qr": "Sesi tidak ditemukan atau kedaluwarsa.", "disconnected_prefix": "Terputus", "desc_off": "Bot WhatsApp sedang offline atau sedang mencoba menghubungkan ulang.", "device_fallback": "Device", "wait_qr_lib": "Menunggu library QR Code...", "qr_fail": "Gagal memproses QR Code. Silakan cek konsol browser." }, "broadcast": { "title": "Broadcast WhatsApp", "start": "Mulai Broadcast", "target": "Target Penerima", "delay": "Jeda Antar Pesan (Detik)", "message": "Isi Pesan WhatsApp", "send_mass": "Kirim Pesan Massal", "sending": "Mengirim:", "failed": "Gagal", "confirm_send": "Kirim pesan broadcast sekarang? Pastikan target dan pesan sudah benar.", "info": "Pesan akan dikirim menggunakan nomor WhatsApp Bot Anda secara otomatis dengan jeda aman per pesan agar tidak terdeteksi sebagai spam.", "target_all": "Semua Pelanggan (Aktif & Isolir)", "target_active": "Hanya Pelanggan Aktif", "target_suspended": "Hanya Pelanggan Terisolir", "target_unpaid": "Pelanggan yang Punya Tunggakan Tagihan", "warning_title": "PERINGATAN PENTING:", "warning_body": "Penggunaan fitur broadcast massal berisiko menyebabkan akun WhatsApp Anda DIBLOKIR (BANNED) oleh pihak Meta jika dianggap melanggar ketentuan spam. Pastikan pesan relevan bagi pelanggan. Developer aplikasi tidak bertanggung jawab atas segala risiko pemblokiran akun.", "variables": "Variabel:", "portal_link": "Link Portal", "formatting": "Gunakan *Tebal*, _Miring_, atau ~Coret~ sesuai standar WhatsApp.", "confirm_change_target": "Ganti target penerima? Pesan yang sudah Anda ketik akan ditimpa dengan template baru.", "sending_btn": "Sedang Mengirim...", "done_prefix": "Selesai:", "sent_suffix": "dikirim" }, "billing": { "title": "Tagihan", "manage_title": "Manajemen Tagihan", "generate": "Generate Tagihan", "search_placeholder": "Cari nama / telepon...", "all_months": "Semua Bulan", "all_status": "Semua Status", "unpaid": "Belum Bayar", "paid": "Sudah Bayar", "list": "Daftar Tagihan", "empty": "Tidak ada tagihan. Generate tagihan bulanan terlebih dahulu.", "summary": { "total": "Total Tagihan", "paid": "Sudah Bayar", "unpaid": "Belum Bayar", "collected_pct": "% Terkumpul" }, "table": { "customer": "Pelanggan", "period": "Periode", "package": "Paket", "amount": "Jumlah", "status": "Status", "paid_by": "Dibayar Oleh", "paid_time": "Waktu Bayar", "actions": "Aksi" }, "status": { "paid": "Lunas", "unpaid": "Belum Bayar" }, "actions": { "mark_paid": "Tandai Lunas", "unisolate": "Buka Isolir", "send_wa": "Kirim Tagihan WA", "print_invoice": "Cetak Struk/Invoice", "unpay": "Batalkan Lunas", "isolate_manual": "Isolir Manual" }, "confirm": { "unisolate_without_payment": "Buka isolir pelanggan ini tanpa bayar?", "unpay": "Batalkan status lunas?", "isolate_manual": "Isolir pelanggan ini secara manual?", "delete": "Hapus tagihan ini?" }, "generate_monthly": "Generate Tagihan Bulanan", "generate_hint": "Tagihan akan dibuat untuk semua pelanggan aktif yang belum memiliki tagihan di periode yang dipilih.", "month": "Bulan", "year": "Tahun", "choose_invoice": "Pilih Tagihan yang akan dilunasi:", "received_by": "Diterima Oleh", "received_by_placeholder": "Nama petugas / teknisi", "notes_optional": "Catatan (opsional)", "notes_placeholder": "Transfer BRI, tunai, dll...", "confirm_paid": "Konfirmasi Lunas", "loading_other_invoices": "Loading tagihan lainnya...", "js": { "customer_prefix": "Pelanggan:", "package_fallback": "Internet" } }, "reports": { "total_revenue_year": "Total Pendapatan", "this_month": "Bulan Ini", "pending_receivable": "Piutang Belum Bayar", "active_customers_total": "Total Pelanggan Aktif", "revenue_via_agent_year": "Pendapatan Via Agent", "agent_deposit_year": "Deposit Agent Masuk", "cash_in_year": "Kas Masuk (Tanpa Double)", "this_month_prefix": "Bulan ini:", "monthly_revenue": "Pendapatan Bulanan", "top_unpaid": "Piutang Tertinggi", "all_paid": "Semua pelanggan sudah lunas", "invoices_suffix": "tagihan", "monthly_breakdown": "Rincian Per Bulan", "no_data_year_prefix": "Belum ada data untuk tahun", "recent_payments": "Pembayaran Terakhir", "no_payments": "Belum ada pembayaran", "table": { "month": "Bulan", "total_invoices": "Total Tagihan", "paid": "Sudah Bayar", "unpaid": "Belum Bayar", "revenue": "Pendapatan", "pct": "Persentase", "customer": "Pelanggan", "period": "Periode", "amount": "Jumlah", "recorded_by": "Dicatat Oleh", "time": "Waktu" }, "chart": { "revenue_label": "Pendapatan (Rp)" } }, "customers": { "title": "Pelanggan", "manage_title": "Manajemen Pelanggan", "list": "Daftar Pelanggan", "add": "Tambah Pelanggan", "export_excel": "Export Excel", "import_excel": "Import Excel", "search_placeholder": "Cari nama, telepon, tag...", "empty": "Belum ada pelanggan", "stats": { "total": "Total", "active": "Aktif", "suspended": "Disuspend", "inactive": "Pendaftar Baru (Nonaktif)" }, "filter": { "all_status": "Semua Status", "active": "Aktif", "suspended": "Suspend", "inactive": "Pendaftar Baru / Nonaktif" }, "table": { "name": "Nama", "phone_tag": "Telepon / Tag ONU", "package": "Paket", "address": "Alamat", "status": "Status", "unpaid": "Tagihan Belum Bayar", "actions": "Aksi" }, "auto_isolate": { "label": "Auto Isolir", "off": "OFF", "date_prefix": "Tgl " }, "unpaid_suffix": "tagihan", "paid_label": "Lunas", "confirm_delete": "Hapus pelanggan ini?", "actions": { "generate_invoice": "Generate Tagihan", "pay_invoice": "Bayar Tagihan" }, "generate_invoice_title": "Generate Tagihan (Pelanggan)", "generate_invoice_hint": "Tagihan hanya dibuat untuk pelanggan yang dipilih. Jika sudah ada, tidak akan dibuat ulang.", "generate_invoice_customer": "Pelanggan", "generate_invoice_btn": "Generate", "pay_invoice_title": "Bayar Tagihan (Pelanggan)", "pay_invoice_hint": "Untuk pembayaran di muka: pilih periode. Jika tagihan belum ada, sistem akan membuat tagihan lalu langsung menandai Lunas.", "pay_invoice_customer": "Pelanggan", "pay_invoice_notes_placeholder": "Contoh: Bayar di muka", "pay_invoice_btn": "Bayar", "paid_badge": "Lunas", "paid_months_label": "Sudah lunas:", "none_paid": "Belum ada yang lunas", "total_selected_label": "Total dipilih:", "months_suffix": "bulan" }, "agents": { "title": "Agent", "manage_title": "Manajemen Agent", "list": "Daftar Agent", "add": "Tambah Agent", "empty": "Belum ada agent.", "confirm_delete": "Hapus agent ini?", "table": { "name": "Nama", "username": "Username", "phone": "No. HP", "balance": "Saldo", "billing_fee": "Fee Tagihan", "status": "Status", "actions": "Aksi" }, "reports": { "title": "Laporan", "open": "Buka Laporan Agent" }, "modal": { "add_title": "Tambah Agent Baru", "edit_title": "Edit Agent" }, "form": { "name": "Nama", "username": "Username", "password": "Password", "phone": "No. HP", "billing_fee": "Fee Tagihan (Rp)", "initial_balance": "Saldo Awal (Rp)", "status": "Status" }, "topup": { "title": "Topup Saldo Agent", "agent": "Agent", "amount": "Nominal (Rp)", "note": "Catatan", "note_placeholder": "Contoh: topup awal shift", "process": "Proses" }, "prices": { "title": "Harga Voucher Agent", "agent": "Agent", "add_update": "Tambah / Update Harga", "router": "Router", "default_router": "(Default)", "profile": "Profile Hotspot", "choose_profile": "Pilih profile", "validity": "Validitas", "validity_placeholder": "Contoh: 1d", "buy": "Harga Beli (potong saldo) (Rp)", "sell": "Harga Jual (tampil struk) (Rp)", "status": "Status", "save": "Simpan Harga", "active_list": "Harga Aktif", "table": { "router": "Router", "profile": "Profile", "validity": "Validitas", "buy": "Beli", "sell": "Jual", "status": "Status", "actions": "Aksi" }, "empty_select_agent": "Pilih agent", "empty_no_prices": "Belum ada harga", "required_agent_profile": "Agent dan profile wajib diisi", "save_failed": "Gagal menyimpan", "confirm_delete_price": "Hapus harga ini?", "delete_failed": "Gagal hapus" } }, "agent_reports": { "title": "Laporan Agent", "history": "Riwayat Transaksi", "empty": "Belum ada transaksi.", "transactions_suffix": "transaksi", "invoice_prefix": "INV #", "filter": { "all_agents": "Semua Agent" }, "type": { "topup": "TOPUP", "invoice": "TAGIHAN", "voucher": "VOUCHER", "adjust": "ADJUST" }, "table": { "time": "Waktu", "agent": "Agent", "type": "Jenis", "detail": "Detail", "deduct": "Potong Saldo", "sell": "Harga Jual", "fee": "Fee/Profit", "balance_after": "Saldo Akhir" } }, "cashiers": { "add": "Tambah Kasir", "list": "Daftar Petugas Kasir", "empty": "Belum ada data kasir.", "confirm_delete": "Hapus kasir ini?", "save_changes": "Simpan Perubahan", "table": { "name": "Nama", "username": "Username", "password": "Password", "phone": "No. HP", "status": "Status", "actions": "Aksi" }, "modal": { "add_title": "Tambah Kasir Baru", "edit_title": "Edit Data Kasir" }, "form": { "full_name": "Nama Lengkap", "login_username": "Username Login", "password": "Password", "phone": "No. HP", "phone_placeholder": "Contoh: 08123456789", "account_status": "Status Akun" } }, "technicians": { "add": "Tambah Teknisi", "list": "Daftar Teknisi Lapangan", "empty": "Belum ada data teknisi.", "confirm_delete": "Hapus teknisi ini?", "save_changes": "Simpan Perubahan", "table": { "name": "Nama", "username": "Username", "password": "Password", "whatsapp": "WhatsApp", "area": "Area Tugas", "status": "Status", "actions": "Aksi" }, "modal": { "add_title": "Tambah Teknisi Baru", "edit_title": "Edit Data Teknisi" }, "form": { "full_name": "Nama Lengkap", "login_username": "Username Login", "password": "Password", "whatsapp": "No. WhatsApp", "whatsapp_placeholder": "Contoh: 08123456789", "area": "Area Tugas", "area_placeholder": "Contoh: Kelurahan A, Blok B", "account_status": "Status Akun" } }, "olts": { "manage": "Kelola OLT", "add": "Tambah OLT", "select_label": "Pilih Perangkat OLT:", "no_data": "Tidak ada data OLT", "refresh_data": "Refresh Data", "loading": "Mengambil Data OLT...", "onu_list_title": "Daftar Perangkat ONU Terdaftar", "search_placeholder": "Cari ID / SN...", "last_update": "Update Terakhir", "empty_select": "Pilih perangkat OLT di atas untuk memantau data ONU.", "confirm_delete": "Hapus OLT ini?", "confirm_reboot": "Yakin ingin reboot ONU ini?", "reboot_sent": "Perintah reboot berhasil dikirim.", "failed_prefix": "Gagal", "error_prefix": "Error", "status": { "online": "Online", "offline": "Offline" }, "stats": { "total_onu": "Total ONU", "online": "Online", "offline": "Offline", "weak_signal": "Sinyal Lemah" }, "system": { "temp": "Suhu", "cpu": "CPU", "ram": "RAM", "uptime": "Uptime", "traffic_in": "Traffic Masuk", "traffic_out": "Traffic Keluar" }, "table": { "no": "No", "id": "ID", "serial": "Serial Number", "status": "Status", "tx": "TxPower", "rx": "RxPower", "oid": "Index OID" }, "manage_modal": { "title": "Manajemen Perangkat OLT", "table": { "name": "Nama OLT", "host": "Host / IP", "brand": "Brand", "status": "Status", "actions": "Aksi" } }, "add_modal": { "title": "Tambah OLT Baru", "save": "Simpan Perangkat" }, "edit_modal": { "title": "Edit Data OLT", "update": "Update Perangkat" }, "form": { "name": "Nama OLT", "name_placeholder": "Contoh: OLT Pusat", "host": "IP Address / Host", "snmp_port": "SNMP Port", "brand": "Brand / Type", "snmp_community": "SNMP Community", "web_user_optional": "Login User (Optional)", "web_password_optional": "Login Pass (Optional)", "web_user": "Login User", "web_password": "Login Pass", "description": "Deskripsi / Lokasi", "monitoring_status": "Status Monitoring" }, "actions": { "try_again": "Coba Lagi", "rename_prompt": "Masukkan nama baru untuk ONU:", "rename": "Ubah Nama", "reboot": "Reboot ONU" }, "errors": { "server_connect_failed": "Gagal menghubungi server" }, "empty_no_onu": "Tidak ada data ONU ditemukan." }, "map": { "add_odp": "Tambah ODP", "stats": { "total_odp": "Total ODP", "active_customers": "Pelanggan Aktif", "suspended_customers": "Isolir / Nonaktif" }, "legend": { "odp": "ODP (Box)", "active": "Aktif", "suspended": "Isolir" }, "add_modal": { "title": "Tambah ODP Baru", "save": "Simpan ODP" }, "edit_modal": { "title": "Edit Data ODP", "update": "Update ODP" }, "form": { "name": "Nama ODP", "name_placeholder": "Contoh: ODP-A-01", "pick_location": "Pilih Lokasi di Peta", "adjust_location": "Sesuaikan Lokasi di Peta", "lat": "Latitude", "lng": "Longitude", "tips": "*Tips: Geser marker atau klik pada peta untuk menentukan posisi presisi", "description": "Deskripsi" }, "layers": { "osm": "OpenStreetMap", "hybrid": "Satelit (Hybrid)" }, "popup": { "description": "Deskripsi", "location": "Lokasi", "status": "Status", "package": "Paket", "address": "Alamat", "view_details": "Lihat Detail" }, "status": { "active": "Aktif", "suspended": "Isolir" }, "cable": { "online": "Online", "offline": "Offline" } }, "print_invoice": { "title": "Cetak Struk Tagihan", "address_fallback": "Pusat Layanan Internet", "contact_label": "Telp/WA", "receipt_no": "No. Struk", "date": "Tanggal", "cashier": "Kasir", "system": "Sistem", "notes": "Catatan", "dear": "Yth.", "id_tag": "ID/Tag", "payment_title": "Pembayaran Tagihan Internet", "period": "Periode", "package": "Paket", "package_fallback": "Internet Service", "total_paid": "TOTAL BAYAR", "paid": "LUNAS", "manager": "Manajer", "manager_fallback": "Admin Pusat", "footer": { "thanks": "Terima kasih atas pembayaran Anda.", "keep_receipt": "Simpan struk ini sebagai bukti pembayaran yang sah.", "printed_from": "Dicetak dari Sistem Billing" } }, "print_vouchers": { "title": "Cetak Voucher Batch", "days": "hari", "hint_user_pass": "Masukkan User (U) dan Pass (P).", "contact_label": "Telp/WA" }, "packages": { "title": "Paket Internet", "list": "Daftar Paket", "add": "Tambah Paket", "edit": "Edit Paket", "update": "Update", "empty": "Belum ada paket. Tambah paket pertama!", "customers_suffix": "pelanggan", "table": { "name": "Nama Paket", "price_month": "Harga / Bulan", "speed": "Kecepatan", "description": "Deskripsi", "customers": "Pelanggan", "status": "Status" }, "form": { "name_profile": "Nama Paket (Profile MikroTik)", "pick_from_mikrotik": "-- Pilih dari MikroTik --", "type_manual": "Atau ketik manual...", "price_month": "Harga / Bulan (Rp)", "speed_down": "Kecepatan Download (Mbps)", "speed_up": "Kecepatan Upload (Mbps)", "status": "Status", "description": "Deskripsi", "optional": "Opsional..." }, "confirm": { "delete": "Hapus paket ini? Pelanggan yang menggunakan paket ini akan kehilangan referensi paket." } }, "settings": { "title": "Pengaturan", "system_title": "Pengaturan Sistem", "telegram": { "title": "Pengaturan Telegram Bot (Backup Admin)", "status": "Status Bot Telegram", "admin_id": "Admin Telegram ID", "bot_token": "Telegram Bot Token", "sync_title": "Sinkronkan / Hapus Webhook Lama", "sync": "Sinkronkan" }, "whatsapp": { "title": "Pengaturan WhatsApp" }, "app_info": "Info Aplikasi", "company_name": "Nama Aplikasi / Perusahaan", "footer_info": "Info Footer", "owner_name": "Nama Manajer / Owner", "primary_phone": "Telepon Utama (CS)", "company_email": "Email Perusahaan", "office_address": "Alamat Kantor", "office_lat": "Latitude Kantor", "office_lng": "Longitude Kantor", "operational_hours": "Jam Operasional", "server_port": "Port Server", "timezone": "Zona Waktu (WIB/WITA/WIT)", "customer_otp_login": "Login OTP Pelanggan", "otp_enabled": "Aktif (Kirim via WA)", "otp_disabled": "Nonaktif (Langsung)", "external_api": "API Eksternal" }, "section": { "main": "UTAMA", "billing": "BILLING", "service": "LAYANAN", "user_management": "MANAJEMEN USER", "system": "SISTEM" }, "nav": { "dashboard": "Dashboard", "mikrotik_monitoring": "Monitoring MikroTik", "voucher_hotspot": "Voucher Hotspot", "router_management": "Manajemen Router", "olt_management": "Manajemen OLT", "network_map": "Peta Jaringan", "whatsapp_status": "Status WhatsApp", "customers": "Pelanggan", "internet_packages": "Paket Internet", "invoices": "Tagihan", "finance_report": "Laporan Keuangan", "customer_tickets": "Keluhan Pelanggan", "technicians": "Teknisi", "cashiers": "Kasir", "agents": "Agent", "agent_reports": "Laporan Agent", "update": "Update GitHub", "settings": "Pengaturan", "automation": "Automation", "network": "Jaringan", "grp_packages": "Paket & Voucher", "grp_finance": "Keuangan", "grp_service": "Layanan", "grp_users": "Pengguna", "grp_system": "Sistem", "customers_data": "Data Pelanggan", "invoices_list": "Data Tagihan" }, "update": { "title": "Update GitHub", "status_title": "Status Versi", "server_version": "Versi Server (version.txt)", "github_version_prefix": "Versi GitHub (origin/", "github_version_suffix": ")", "has_update": "Ada update", "latest": "Terbaru", "check": "Cek Versi", "run": "Update Sekarang", "keep_files": "File yang tidak ditimpa saat update: settings.json dan folder database. Setelah update selesai, restart aplikasi agar versi baru aktif.", "log_title": "Log Update", "confirm": "Jalankan update dari GitHub sekarang? Pastikan koneksi internet aman dan aplikasi akan direstart setelah selesai." }, "acs": { "monitoring": "Monitoring GenieACS", "total_devices": "Total Perangkat", "all_servers": "Semua ACS Server", "device_id": "ID Perangkat / SN", "customer_name": "Nama Pelanggan", "name": "Nama", "location": "Lokasi", "devices": "Perangkat", "profile_mikrotik": "Profil MikroTik", "progress_add_wan": "Progres Tambah WAN", "waiting": "Menunggu", "workflow_not_started": "Alur belum dimulai.", "server_name": "Nama Server", "location_note": "Lokasi / Catatan", "location_note_ph": "cth. Data Center", "action": "Aksi", "cancel": "Batal", "search_ph": "Cari SN, Pelanggan, PPPoE...", "optional": "Opsional", "online": "Online", "offline": "Offline" }, "vd": { "action": "Aksi", "active": "Aktif", "inactive": "Nonaktif", "cancel": "Batal", "usage_limit": "Batas Pemakaian", "empty": "Belum ada voucher.", "install_fee": "Biaya Pasang Awal (Rp)", "note": "Catatan", "used": "Dipakai", "pppoe_domain": "Domain PPPoE", "code": "Kode", "max_discount": "Maks. Diskon (Rp)", "min_billing": "Min. Tagihan (Rp)", "value": "Nilai", "value_rp_pct": "Nilai (Rp / %)", "nominal": "Nominal (Rp)", "default_pppoe_pass": "Password PPPoE Default", "percent": "Persen (%)", "status": "Status", "type": "Tipe" }, "wa": { "tab_status": "Status WhatsApp", "tab_broadcast": "Broadcast & Pengingat", "tab_templates": "Template Pesan", "tab_livechat": "Live Chat", "tab_preview": "Preview Pesan" }, "automation": { "title": "Otomatisasi", "intro": "Semua pengaturan otomatis (pengingat tagihan, tunggakan/isolir, auto-lunas) beserta pemilihan template ada di halaman ini.", "tab_reminder": "Pengingat Tagihan", "tab_arrears": "Tunggakan & Isolir", "tab_lunas": "Auto-Lunas", "tab_templates": "Template & Preview", "reminder_title": "Pengingat Tagihan Otomatis", "allow_billing": "Kirim Tagihan via WhatsApp (Global)", "allow_billing_hint": "Izinkan pengiriman tagihan ke pelanggan (semua fitur)", "cron_enable": "Pengingat Otomatis (Jadwal / CRON)", "cron_enable_hint": "Jalankan pengingat tagihan otomatis", "cron_hint": "Dikirim pada hari ke-H sebelum tanggal isolir. Contoh: 3,1 = H-3 dan H-1.", "days_before": "Hari pengingat (H sebelum isolir)", "auto_template": "Template Pengingat Otomatis", "auto_template_hint": "Pilih \"Tagihan QRIS\" bila ingin lampiran gambar QR.", "delay": "Jeda Antar Pesan (detik)", "billing_message": "Isi Pesan Pengingat", "vars": "Variabel", "arrears_title": "Tunggakan & Isolir Otomatis", "auto_deactivate": "Auto-Nonaktif Pelanggan Menunggak", "deactivate_months": "Batas Tunggakan (bulan)", "deactivate_months_hint": "Pelanggan dinonaktif (isolir) bila menunggak sebanyak ini (3 = 3x tagihan baru belum lunas).", "auto_delete": "Auto-Hapus Pelanggan (lewat batas)", "auto_delete_hint": "Jika Aktif: pelanggan menunggak lebih dari batas (mis. bulan ke-4) dihapus otomatis — harus daftar ulang.", "arrears_notice": "Auto-Peringatan Tunggakan", "arrears_notice_hint": "Kirim WA peringatan saat menunggak mendekati batas. Template di tab Template & Preview.", "manual_action": "Aksi Manual", "run_now": "Jalankan sekarang", "lunas_title": "Auto-Lunas (Tagihan Rp 0 / auto_isolate=0)", "lunas_notify": "Notifikasi ke Pelanggan", "lunas_notify_hint": "Kirim WA \"Tagihan LUNAS\" ke pelanggan saat tagihan Rp 0 / auto_isolate=0 dilunaskan otomatis.", "lunas_recap": "Rekap Bulanan ke Admin", "lunas_recap_hint": "Rekap (jumlah + daftar mitra Rp 0) dikirim ke admin tiap tanggal 1.", "view_recap": "Lihat Rekap", "open_recap": "Buka Log & Rekap", "mapping_title": "Template yang Dipakai Tiap Otomatisasi", "edit_templates": "Edit Template", "preview": "Preview", "col_event": "Otomatisasi", "col_template": "Template", "map_reminder": "Pengingat tagihan (CRON)", "map_arrears": "Peringatan tunggakan", "map_deactivated": "Auto-Nonaktif pelanggan", "map_deleted": "Auto-Hapus pelanggan", "map_lunas": "Auto-Lunas", "map_qris": "Tagihan QRIS (lampiran QR)", "mapping_hint": "Ganti isi pesan di menu template, lalu cek hasilnya di Preview Pesan.", "tab_manual": "Kirim Manual", "tab_history": "Riwayat", "manual_title": "Kirim Tagihan Manual (berdasarkan tanggal isolir)", "manual_isolate": "Tanggal Isolir", "all_dates": "Semua", "manual_template": "Template", "manual_interval": "Interval", "interval_static": "Statis", "interval_random": "Random (anti-ban)", "delay_short": "Jeda (detik)", "delay_random": "Jeda acak (min–max detik)", "manual_hint": "Kirim ke pelanggan belum bayar pada tanggal isolir terpilih. Bisa dipakai meski pengingat otomatis OFF. Gunakan Random agar tidak dianggap spam.", "stop": "Hentikan", "manual_send": "Kirim Tagihan Sekarang", "history_title": "Riwayat Otomatisasi", "col_type": "Tipe", "col_isolate": "Isolir", "col_interval": "Jeda", "col_target": "Target", "col_sent": "Kirim", "col_failed": "Gagal", "col_status": "Status", "type_auto": "Otomatis", "type_manual": "Manual", "no_history": "Belum ada riwayat otomatisasi.", "history_hint": "Riwayat 30 aktivitas terakhir (manual & otomatis): template, jumlah terkirim, gagal, dan status." }, "service_notice": { "title": "Status Layanan & Pengumuman", "view_landing": "Lihat Landing", "mode_time": "Mode & Waktu", "mode": "Mode Pengumuman", "mode_normal": "NORMAL — tidak ada pengumuman", "mode_mass": "Gangguan Masal — warning + estimasi", "mode_repair": "Perbaikan Sistem — info ringan", "start": "Jam Mulai Gangguan/Perbaikan", "interval": "Interval Estimasi (jam)", "interval_hint": "Estimasi maju otomatis tiap interval ini bila belum ditandai selesai.", "note": "Catatan Kustom (opsional)", "note_ph": "Kosongkan untuk teks bawaan", "preview": "Pratinjau Kotak Pesan", "preview_text": "Sedang ada sedikit perbaikan sistem.", "preview_hint": "Pratinjau kasar. Tampilan final mengikuti tema landing & dashboard pelanggan (di bawah iklan).", "js_mass": "Gangguan Masal", "js_repair": "Perbaikan Sistem", "js_mass_text": "Sedang terjadi gangguan pada jaringan kami. Tim teknis sedang menangani dan akan segera memulihkan layanan.", "js_repair_text": "Sedang ada sedikit perbaikan sistem. Mohon kesabarannya ya, layanan akan kembali normal secepatnya.", "js_eta": "Estimasi selesai:", "js_since": "sejak" }, "audit": { "total": "Total Log", "recent24": "Aktivitas 24 Jam", "updates": "Update Data", "deletes": "Penghapusan", "table_title": "Log Aktivitas Sistem", "all_actions": "-- Semua Aksi --", "all_modules": "-- Semua Modul --", "th_time": "Waktu", "th_action": "Aksi", "th_module": "Modul", "th_entity": "ID Entity", "th_actor": "Pelaku", "th_detail": "Detail", "th_ip": "IP / Device", "view_detail": "Lihat Detail" }, "sb": { "title": "Pengaturan Sidebar", "control": "Kontrol Menu", "status_all": "Status Semua Menu Sidebar", "can_manage": "Admin dapat mengubah semua menu", "readonly": "Mode baca saja untuk akun ini", "intro": "Setiap menu bisa diatur menjadi Tampil, Sembunyikan, atau Kunci. Menu yang dikunci akan meminta password khusus sebelum dibuka.", "th_menu": "Menu", "th_section": "Section", "th_role": "Role", "th_status": "Status", "st_visible": "Tampil", "st_hidden": "Sembunyikan", "st_locked": "Kunci", "pass_label": "Kode Aktivasi (Gratis)", "pass_ph": "Masukkan password aktivasi sebelum menyimpan", "pass_hint": "Perubahan status menu sidebar hanya akan disimpan jika password aktivasi benar.", "no_pass": "Belum punya kode aktivasi?", "get_donation": "Dapatkan kode aktivasi GRATIS di halaman Dukungan OPEN-ISP", "or_contact": "atau hubungi", "donation_page": "Kode Aktivasi Gratis (Dukungan OPEN-ISP)", "save": "Simpan Pengaturan Sidebar", "only_admin": "Hanya admin utama yang dapat mengubah status menu sidebar.", "notes": "Catatan", "note_lock": "Jika menu berstatus Kunci diklik dari sidebar, sistem menampilkan cara mengambil kode aktivasi GRATIS atau menghubungi", "note1": "Status Sembunyikan akan menghilangkan menu dari sidebar dan menolak akses URL langsung.", "note2": "Status Kunci tetap menampilkan menu, tetapi tidak bisa dibuka sampai statusnya diubah di halaman ini.", "note3": "Perubahan status menu hanya dapat disimpan setelah memasukkan password aktivasi yang benar." }, "acsdev": { "title": "Detail Perangkat", "online": "Perangkat Online", "offline": "Perangkat Offline", "last_inform": "Inform Terakhir", "never": "Belum pernah", "device_info": "Info Perangkat", "tag": "Tag/ID", "model": "Model", "serial": "Serial Number", "swver": "Versi Software", "net_info": "Info Jaringan", "pppoe_user": "PPPoE User", "ip": "IP Address", "rxpower": "RX Power", "ssid": "SSID", "uptime": "Uptime", "pppoe_uptime": "PPPoE Uptime", "clients": "Klien Terhubung (Live)", "iface": "Interface", "no_clients": "Tidak ada klien terhubung.", "genieacs": "GenieACS Pro" }, "payslip": { "title": "Slip Gaji", "print": "Cetak Slip Gaji", "close": "Tutup", "doc_title": "SLIP GAJI KARYAWAN", "period": "Periode", "employee": "Nama Karyawan", "position": "Jabatan", "work_days": "Hari Kerja", "absent_days": "Hari Absen", "late": "Terlambat", "status": "Status", "income": "PENDAPATAN", "base_salary": "Gaji Pokok", "allow_transport": "Tunjangan Transport", "allow_meal": "Tunjangan Makan", "allow_phone": "Tunjangan Pulsa", "allow_other": "Tunjangan Lain", "ticket_bonus": "Bonus Tiket", "tickets_done": "tiket selesai", "collection_commission": "Komisi Tagihan", "overtime": "Lembur", "total_income": "Total Pendapatan", "deductions": "POTONGAN", "ded_absent": "Potongan Absen", "ded_late": "Potongan Terlambat", "ded_other": "Potongan Lain", "total_deductions": "Total Potongan", "net": "GAJI BERSIH", "note": "Catatan", "sign_employee": "Karyawan", "sign_admin": "Admin / Pimpinan", "printed": "Dicetak", "slip_id": "Slip ID" }, "role2": {}, "inventory": { "add_item": "Tambah Barang", "tab_items": "Daftar Barang", "tab_categories": "Kategori", "tab_logs": "Riwayat Stok", "title": "Semua Barang Inventaris", "search": "Cari barang...", "th_name": "Nama Barang", "th_category": "Kategori", "th_brand": "Brand / Model", "th_stock": "Stok Tersedia", "th_assigned": "Terpasang", "th_action": "Aksi", "detail_stock": "Detail Stok", "add_stock": "Tambah Stok", "cat_title": "Daftar Kategori", "cat_name": "Nama Kategori", "cat_desc": "Keterangan", "confirm_del_cat": "Hapus kategori ini?", "cat_add": "Tambah Kategori", "cat_save": "Simpan Kategori", "logs_title": "Riwayat Pergerakan Barang", "th_time": "Waktu", "th_item": "Barang", "th_sn": "SN", "th_type": "Tipe", "th_qty": "Qty", "th_actor": "Petugas", "th_note": "Catatan", "type_in": "Masuk", "type_out": "Keluar", "type_adjust": "Penyesuaian", "modal_add": "Tambah Barang Baru", "modal_edit": "Edit Barang", "f_category": "Kategori", "f_category_ph": "-- Pilih Kategori --", "f_name": "Nama Barang", "f_brand": "Brand", "f_model": "Model", "f_unit": "Satuan (Unit)", "f_min_stock": "Stok Minimum", "f_desc": "Deskripsi", "save_item": "Simpan Barang", "stock_modal": "Input Stok Masuk", "f_serial": "Serial Number (Opsional)", "f_serial_ph": "Contoh: SN12345678", "f_qty": "Jumlah (Qty)", "f_condition": "Kondisi", "cond_new": "Baru", "cond_used": "Bekas / Copotan", "f_location": "Lokasi Penyimpanan", "f_note": "Catatan", "f_note_ph": "Contoh: Pembelian dari Supplier X" }, "onustickers": { "title": "Cetak Stiker Modem / ONU", "ctrl_title": "Cetak Stiker Modem / ONU (Name Tag Size)", "print": "Cetak Stiker (A4 / PDF)", "mode": "Mode Cetak", "mode_blank": "Template Blank (Stok Teknisi Lapangan)", "mode_customers": "Data Pelanggan (Personalized)", "count": "Jumlah Stiker", "count10": "10 Stiker (1 Lembar A4)", "count20": "20 Stiker (2 Lembar A4)", "count30": "30 Stiker (3 Lembar A4)", "count1": "1 Stiker (Thermal / Satuan)", "filter_router": "Filter Router", "all_routers": "Semua Router", "search": "Cari Pelanggan", "search_ph": "Ketik nama / ID...", "cs_label": "No. CS / WA Bantuan (Tampil di Stiker)", "info": "Ukuran stiker diatur presisi standar Name Tag / Kartu ID (~8.5cm x 5.4cm). Format A4 memuat 10 stiker per lembar. Gunakan kertas stiker HVS atau Glossy.", "badge": "MODEM ONU", "l_name": "Nama", "l_id": "ID / Inet", "l_pkg": "Paket", "tip1_t": "Waspada Petir:", "tip1_x": "Cabut adaptor daya & kabel saat hujan lebat!", "tip2_t": "Cara Reboot:", "tip2_x": "Matikan power 10 detik, nyalakan kembali saat lambat.", "tip3_t": "LOS Merah:", "tip3_x": "Kabel optik bermasalah/putus, segera kontak CS.", "qr_label": "SCAN DI APLIKASI", "qr_sub": "Auto-koneksi Server", "footer_cs": "CS / Bantuan:", "footer_notice": "Tempel pada Modem Pelanggan" }, "reportprint": { "title": "Laporan Keuangan", "company_sub": "Pusat Layanan Internet Broadband & RT/RW Net", "telp": "Telp/WA", "email": "Email", "title_box": "LAPORAN LABA / RUGI", "period": "Periode Tahun", "printed": "Dicetak", "kpi_income": "Total Pemasukan (Gross)", "kpi_expense": "Total Pengeluaran & Modal", "kpi_profit": "Laba Bersih (Net Profit)", "sec1": "1. Rincian Pemasukan & Pengeluaran Bulanan", "sec2": "2. Rincian Pos Pengeluaran Terbesar", "th_no": "No", "th_month": "Bulan", "th_income": "Pemasukan (Rp)", "th_expense": "Pengeluaran (Rp)", "th_net": "Laba Bersih (Rp)", "no_monthly": "Data rekap bulanan belum tersedia.", "total_year": "TOTAL TAHUN", "th_pos": "Kategori / Pos Pengeluaran", "th_total": "Total Biaya (Rp)", "th_share": "Porsi (%)", "no_expenses": "Tidak ada catatan pengeluaran di tahun ini.", "total_expense": "TOTAL PENGELUARAN:", "sig1": "Dibuat Oleh,", "sig1_role": "Bagian Keuangan / Admin", "sig1_name": "Staf Administrasi", "sig2": "Mengetahui & Menyetujui,", "sig2_role": "Pimpinan / Direktur", "sig2_name": "Direktur Utama", "print_btn": "Cetak Dokumen" }, "lock": { "reason": "Aktivasi diperlukan untuk membuka fitur ini", "get_code": "Ambil Kode Aktivasi (Gratis)", "open_settings": "Buka Pengaturan Sidebar", "code_label": "Kode aktivasi menu ini", "lock": "Kunci", "understood": "Mengerti", "title": "Menu Terkunci", "desc": "Menu ini sedang terkunci.", "wiki_note": "— tanpa perlu donasi untuk membukanya." }, "side": { "settings": "Pengaturan Sidebar", "router_filter": "Router Filter", "all_routers": "Semua Router", "theme": "Tema", "section_control": "KONTROL" }, "dash": { "enable_auto": "Aktifkan monitoring otomatis RX Power & Offline Devices", "del_device": "Hapus Perangkat", "del_selected": "Hapus Terpilih", "interval_label": "Interval monitoring otomatis (1-24 jam)", "interval_hours": "Monitoring Interval (jam)", "acs_settings": "Pengaturan GenieACS", "summon_selected": "Summon Terpilih", "last_tr069": "TR-069 terakhir:", "test_conn": "Test Koneksi", "threshold_hint": "Threshold untuk warning RX Power (-40 sampai -15 dBm)", "timeout_hint": "Timeout untuk request ke GenieACS (5000-120000 ms)" }, "cust": { "ph_note": "Catatan internal opsional...", "ph_phone": "Contoh: 08123456789", "ph_ip": "Contoh: 192.168.10.10", "ph_nik": "Contoh: 3201xxxxxxxxxxxx", "ph_mac": "Contoh: AA:BB:CC:DD:EE:FF", "ph_name": "Contoh: John Doe", "ph_user": "Contoh: user01", "ph_addr": "Jl. Raya No. 123...", "ph_new_pppoe": "Ketik username PPPoE baru...", "ph_same_user": "Kosong = sama dengan username", "ph_pppoe_pass": "Masukkan password PPPoE", "ph_pick_pppoe": "Pilih / cari username PPPoE MikroTik", "ph_hotspot_profile": "Pilih profile hotspot", "ph_same_cust": "Sama dengan ID/User Pelanggan", "tt_print_data": "Cetak Data Pelanggan", "tt_print_sticker": "Cetak Stiker Modem / ONU", "tt_f_new": "Klik untuk filter Pendaftar Baru / Nonaktif", "tt_f_active": "Klik untuk filter pelanggan Aktif", "tt_f_susp": "Klik untuk filter pelanggan Disuspend", "tt_detail": "Klik untuk lihat detail pelanggan & MikroTik", "tt_all": "Klik untuk tampilkan semua pelanggan", "tt_prepaid": "Masa Aktif Paket Prabayar", "tt_pick_map": "Pilih di Peta", "opt_default": "-- Default (Pengaturan) --", "opt_area": "-- Pilih Area --", "opt_no_collector": "-- Tanpa Kolektor --", "opt_no_odp": "-- Tanpa ODP --", "opt_no_port": "-- Tanpa Port --", "st_active_auto": "Aktif (Auto-Isolir Jatuh Tempo)", "sec_addr_area": "Alamat & Area", "f_address_full": "Alamat Lengkap", "f_auto_off": "Auto-Isolir OFF", "f_auto_on": "Auto-Isolir ON", "f_auto_all": "Auto-Isolir: Semua", "opt_free_isolir": "Bebas Isolir (Tidak Pernah Isolir)", "f_monthly_fee": "Biaya Langganan Bulanan (Rp)", "f_install_fee": "Biaya Pasang", "f_install_fee_rp": "Biaya Pasang (Rp)", "btn_print": "Cetak", "modal_title": "Detail & Informasi Koneksi Pelanggan", "printed_at": "Dicetak:", "f_voucher_disc": "Diskon Voucher", "f_voucher_disc_rp": "Diskon Voucher (Rp)", "st_suspended": "Ditangguhkan", "f_mikrotik_api": "Diutamakan MikroTik API", "btn_edit": "Edit Pelanggan", "f_email": "Email (Notifikasi Billing)", "filter_active": "Filter Aktif", "map_hint": "Geser penanda (marker) atau klik pada peta untuk menentukan lokasi yang akurat.", "btn_delete": "Hapus Pelanggan", "lbl_cust_id": "ID Pelanggan:", "btn_import": "Import Pelanggan", "sec_mikrotik": "Informasi Koneksi MikroTik", "sec_info": "Informasi Pelanggan", "sec_personal": "Informasi Pribadi Pelanggan", "sec_infra": "Infrastruktur (OLT, ODP, & Peta)", "f_manual_radius": "Input Manual (RADIUS)", "f_due": "Jatuh Tempo (acuan tgl 5)", "f_days": "Jumlah Hari", "btn_calc": "Kalkulator & Setujui", "btn_calc_full": "Kalkulator Prorata — Setujui Pendaftar", "f_collector": "Kolektor Penagihan", "f_mikrotik_conn": "Koneksi MikroTik", "bulk_delete": "Hapus Terpilih", "bulk_selected": "dipilih", "bulk_pick_one": "Pilih minimal 1 pelanggan untuk dihapus.", "bulk_confirm": "Yakin ingin menghapus", "bulk_confirm2": "data pelanggan terpilih?", "bulk_confirm3": "CATATAN: Data user / secret PPPoE di MikroTik TIDAK akan dihapus (tetap aman)." }, "bill": { "ph_note": "mis. kompensasi gangguan", "tt_print_recap": "Cetak Rekap Tagihan", "tt_view_proof": "Lihat Bukti Bayar", "btn_revert": "Batalkan Lunas", "btn_mass_pay": "Bayar Massal", "btn_discount": "Beri Diskon", "btn_gen_unique": "Buat Kode Unik QRIS", "btn_unisolate": "Buka Isolir", "note_optional": "Catatan (opsional)", "btn_print_a4": "Cetak Faktur (A4)", "btn_print_recap": "Cetak Rekap", "btn_print_thermal": "Cetak Struk Thermal", "disc_prefix": "Diskon -Rp", "st_void": "Hangus", "btn_del_unique": "Hapus Kode Unik", "btn_mass_delete": "Hapus Massal", "btn_del_bill": "Hapus Tagihan", "btn_invoice_pdf": "Invoice PDF", "period_label": "• Periode:", "all_packages": "Semua Paket", "all_areas": "Semua Area", "all_routers": "Semua Router", "all_collectors": "Semua Kolektor", "opt_percent": "Persen (%)", "opt_amount": "Nominal (Rp)" }, "common": { "keep_empty": "Biarkan kosong jika tidak diganti", "uptime": "Uptime", "search_user": "Cari username...", "del_profile": "Hapus Profil", "del_user": "Hapus User", "edit_profile": "Edit Profil", "edit_user": "Edit User", "type_manual": "Atau ketik manual...", "approve": "Approve", "open_new_tab": "Buka Link di Tab Baru", "non_active": "Non-Aktif", "view_photo": "Lihat Foto" }, "fin": { "start_date": "Tanggal Mulai", "end_date": "Tanggal Akhir", "gross": "Pemasukan (Bruto)", "net": "Laba Bersih" }, "tk": { "all_techs": "Semua Teknisi", "general_task": "-- Tugas Umum / Non-Pelanggan (Maintenance) --", "unassigned": "-- Belum Ditugaskan (Bebas) --", "st_open": "Belum Ditangani (Open)", "st_progress": "Sedang Dikerjakan (In Progress)" }, "onu": { "select_vendor": "Pilih Vendor", "hint_rescan": "Klik \"Scan Ulang\" untuk mencari ONU yang belum terkonfigurasi", "hint_reload": "Klik \"Muat Ulang / Scan\" untuk memantau status ONU terkonfigurasi via SNMP" }, "rds": { "card_status": "Status RADIUS Server", "card_online": "User RADIUS Online", "card_online_sub": "Sesi Aktif Terhubung Saat Ini", "card_nas_sub": "Router NAS Terdaftar di Server", "card_traffic": "Trafik RADIUS Hari Ini", "card_log_today": "Log Accounting Hari Ini", "tab_sessions": "Sesi Active RADIUS", "tab_settings": "Pengaturan RADIUS", "tab_nas": "Daftar NAS Router", "tab_log": "Log Accounting", "svc_title": "Layanan RADIUS Server", "svc_status": "Status Service RADIUS", "opt_active_bg": "Aktif (Running Background UDP Service)", "opt_inactive": "Non-Aktif (Disabled)", "desc_listen": "Mendengarkan request autentikasi & accounting dari Router NAS MikroTik.", "secret": "Global Shared Secret RADIUS", "secret_desc": "Secret default yang digunakan jika IP NAS tidak didaftarkan secara khusus.", "ports_title": "Port Jaringan UDP", "port_auth": "Port Auth (UDP)", "port_acct": "Port Acct (UDP)", "limit_title": "Limitasi Kecepatan & Sesi Aktif", "simuse": "Pembatasan Sesi Aktif Ganda (Simultaneous-Use)", "opt_simuse_on": "Aktif - Batasi 1 Akun 1 Sesi Online (Rejek Login Ganda)", "opt_simuse_off": "Non-Aktif - Bebas Multi-Login", "simuse_desc": "Mencegah 1 akun dipakai secara bersamaan di banyak perangkat.", "rate_default": "Default Rate Limit (Fallback Kecepatan)", "ph_rate": "Contoh: 5M/10M", "rate_desc": "Digunakan jika pengguna/pelanggan tidak terikat pada Paket Internet khusus. (Format: Upload/Download).", "isolir_title": "Isolir & Suspended Policy RADIUS", "isolir_action": "Aksi Pelanggan Terisolir", "opt_isolir_pool": "Access-Accept dengan Dynamic IP Pool Isolir (Rekomendasi)", "opt_isolir_reject": "Access-Reject (Koneksi Ditolak Total)", "isolir_pool_alloc": "Alokasi IP Pool Isolir oleh RADIUS Server", "opt_isolir_pool_on": "Aktif - RADIUS Alokasikan IP Isolir Khusus Secara Otomatis", "opt_isolir_pool_off": "Non-Aktif - Hanya Kirim Mikrotik-Group / Framed-Pool", "isolir_pool_desc": "Pelanggan terisolir akan mendapatkan IP khusus dari subnet isolir RADIUS tanpa perlu user/pool di MikroTik.", "isolir_start": "Rentang IP Pool Isolir (Awal)", "isolir_end": "Rentang IP Pool Isolir (Akhir)", "isolir_rate": "Kecepatan Limit Pelanggan Terisolir (Rate-Limit)", "ph_isolir_rate": "Contoh: 512k/512k atau 1M/1M", "isolir_rate_desc": "Format: Upload/Download (misal: 512k/512k, 1M/1M, 256k/512k). Dikirimkan langsung ke MikroTik saat pelanggan terisolir.", "isolir_pool_name": "Nama Pool / Group Isolir RADIUS (Attribute)", "isolir_pool_name_desc": "Atribut Mikrotik-Group / Framed-Pool tambahan untuk pelanggan terisolir.", "ipool_title": "Pembagian IP Pool RADIUS Otomatis", "ipool_alloc": "Alokasi IP Dinamis oleh RADIUS Server", "opt_ipool_on": "Aktif - RADIUS Bagikan IP Otomatis dari Rentang IP Pool (Rekomendasi)", "opt_ipool_off": "Non-Aktif - Gunakan Dynamic Pool dari MikroTik (Framed-Pool)", "ipool_desc": "Jika aktif, RADIUS akan membagikan IP dinamis otomatis ke pelanggan tanpa IP statis sehingga tidak tergantung pada pool lokal MikroTik.", "ipool_start": "Rentang IP Pool Normal (Awal)", "ipool_end": "Rentang IP Pool Normal (Akhir)", "framed_pool": "Nama Framed Pool Default (Fallback)", "autogen_title": "Auto-Generate Akun PPPoE (Pelanggan Baru)", "autogen_hint": "Dipakai saat admin menyetujui pendaftar atau menekan Generate Akun PPPoE. Berlaku untuk mode MikroTik maupun RADIUS.", "autogen_label": "Otomatis buat akun PPPoE", "opt_yes": "Ya (otomatis)", "opt_no_manual": "Tidak (isi manual)", "pattern": "Pola Username", "opt_cust_code": "ID Pelanggan (ISP-xxxxx)", "default_pass": "Password Default", "profile_title": "Mode Profil MikroTik (RADIUS)", "profile_hint": "Jika Ya: RADIUS hanya mengautentikasi & mengirim Mikrotik-Group (nama paket) — rate-limit & IP diambil dari profil PPP di MikroTik (RADIUS tidak mengirim atribut Rate-Limit maupun IP). Pastikan nama profil di MikroTik = nama paket.", "profile_use": "Gunakan Profil & IP dari MikroTik", "opt_profile_off": "Tidak (RADIUS atur rate-limit & IP)", "opt_profile_on": "Ya (ambil dari profil PPP MikroTik)", "script_title": "Script Setup Otomatis MikroTik (RADIUS & Isolir)", "billing_ip": "IP Server Billing:", "copy_script": "Salin Script MikroTik", "ufw_title": "1. Perintah Firewall Linux Server (UFW)", "ufw_desc": "Jalankan perintah ini di terminal server Linux (VPS / Server Produksi) agar router dapat menghubungi server:", "mt_title": "2. Script Integrasi RADIUS & Isolir di MikroTik (RouterOS Terminal)", "mt_desc": "Copy dan pastekan seluruh script di bawah ini ke Terminal MikroTik (IP server otomatis terisi dari IP di atas):", "save": "Simpan Konfigurasi RADIUS", "username_hint": "Username = pola + @ + domain. Contoh: budi_santoso@openisp.id" } }, "tech": { "login_title": "Login Teknisi", "portal_title": "Portal Teknisi", "new_customer": "Tambah Pelanggan", "logout_confirm": "Apakah Anda yakin ingin logout?", "dashboard": { "greeting": "Halo, Selamat Bekerja!", "in_progress": "Sedang Dikerjakan", "resolved_today": "Selesai Hari Ini", "active_tasks": "Tugas Aktif Anda", "empty_active": "Bagus! Tidak ada tugas aktif saat ini.", "empty_active_hint": "Silakan cek tab \"Tiket Baru\" untuk mengambil tugas." }, "ticket": { "open": "Belum Ditangani", "in_progress": "Sedang Dikerjakan", "resolved": "Selesai", "no_address": "Tidak ada alamat", "mark_resolved": "Tandai Selesai", "resolve_title": "Selesaikan Tugas", "resolve_confirm_prefix": "Apakah Anda yakin tugas untuk keluhan", "resolve_confirm_suffix": "sudah selesai dikerjakan?", "cancel": "Batal", "yes_resolved": "Ya, Selesai" }, "pool": { "title": "Tiket Baru", "subtitle": "Daftar keluhan yang belum ditangani", "empty": "Tidak ada keluhan baru saat ini.", "empty_hint": "Semua pelanggan berjalan normal.", "take_confirm": "Ambil tiket ini untuk Anda kerjakan sekarang?", "take_action": "Ambil Tugas Ini" }, "history_page": { "title": "Riwayat Tugas", "subtitle": "50 tugas terakhir yang sudah diselesaikan", "empty": "Belum ada riwayat tugas yang diselesaikan." }, "nav": { "my_tasks": "Tugas Saya", "new_tickets": "Tiket Baru", "map": "Peta", "monitor": "Monitor", "history": "Riwayat" }, "map": { "total_odp": "Total ODP", "active": "Aktif", "isolated": "Isolir", "mode": "Mode", "mode_sat": "Satelit (Navigasi)", "gps_ready": "GPS Ready", "satellite": "Satelit", "standard": "Standard", "olt": "OLT", "port": "Port", "ket": "Ket", "directions": "Petunjuk Arah", "address": "Alamat", "package": "Paket", "status": "Status", "chat": "Chat", "route": "Rute", "your_pos": "Posisi Anda" }, "odp": "ODP", "note_ph": "Jelaskan pekerjaan, kendala, material yang digunakan…", "more_photos": "+ foto lainnya", "job_note": "Catatan Pekerjaan *", "job_note_hint": "Catatan ini akan dilihat admin dan pelanggan.", "job_photos": "Foto Pekerjaan (Opsional, max 10)", "job_photos_hint": "Foto sebelum/sesudah, perangkat, atau signal level. Max 5MB/foto.", "gps_note": "Lokasi GPS otomatis tersimpan saat menyelesaikan tugas.", "done_save": "Selesai & Simpan", "task_for": "Tugas untuk", "cust_photos": "Foto dari pelanggan", "more_photos_suffix": "foto lainnya", "cc": { "ph_odp": "-- Pilih ODP --", "ph_pkg": "-- Pilih Paket --", "ph_router": "-- Pilih Router --", "ph_olt": "-- Tanpa OLT --", "gps_btn": "Ambil Lokasi HP", "note": "Catatan", "subtitle": "Isi data pelanggan dan lokasi pemasangan.", "auto_isolate": "Isolir Otomatis", "odp_capacity": "Kapasitas Port ODP", "cust_location": "Lokasi Pelanggan", "phone": "No. HP", "identity": "No. Identitas (KTP/SIM/Paspor)", "odp_pon": "ODP PON Port (Trunk)", "pppoe_user": "PPPoE Username", "cust_port": "Port Pelanggan (ODP)", "isolir_profile": "Profile Isolir", "router": "Router (MikroTik) *", "same_location": "Samakan Lokasi ODP = Lokasi Pelanggan", "save": "Simpan Pelanggan", "title": "Tambah Pelanggan", "isolir_date": "Tanggal Isolir (1-31)", "install_date": "Tanggal Pasang", "no": "Tidak", "yes": "Ya", "inactive2": "Tidak Aktif", "update_odp": "Update ODP", "required_pppoe": "Wajib untuk pelanggan PPPoE/Hotspot", "odp_port": "ODP & Port", "ph_optional": "opsional", "ph_address": "Contoh: Kelurahan A, Blok B" }, "mon": { "dhcp": "Aktifkan DHCP Server LAN (Nonaktifkan jika Bridge)", "reboot_confirm": "Apakah Anda yakin ingin melakukan reboot pada perangkat ini?", "auto_create": "Auto-create di MikroTik", "run_prov": "Jalankan Provisioning", "subtitle": "Kelola perangkat pelanggan di lapangan", "wifi_config": "Konfigurasikan Wi-Fi Sekaligus", "pppoe_cred": "Kredensial PPPoE", "port_binding": "LAN / WLAN Port Binding", "port_binding_label": "LAN Port Binding:", "loading_devices": "Memuat data perangkat...", "loading_ssid": "Mengunduh SSID lama...", "new_ssid": "Nama WiFi (SSID) Baru", "pppoe_router": "PPPoE (Router Mode)", "pppoe_user": "PPPoE User", "pppoe_pass": "Password PPPoE", "new_pass": "Password WiFi Baru", "mikrotik_profile": "Profile MikroTik", "prov_title": "Provisioning All-in-One WAN", "rx": "Redaman (RX)", "sn": "SN Perangkat:", "ssid_label": "SSID (Nama Wi-Fi)", "wifi_pass": "Sandi Wi-Fi (WPA2)", "all_acs": "Semua Server ACS", "save": "Simpan Perubahan", "no_devices": "Tidak ada perangkat ditemukan", "model": "Tipe Model:", "edit_settings": "Ubah Pengaturan", "pppoe_username": "Username PPPoE", "vendor": "Vendor:", "wan_mode": "WAN Connection Mode", "wlan_binding": "WLAN (SSID) Binding:" } }, "customer": { "login_title": "Login Pelanggan", "portal_title": "Portal Pelanggan", "id_tag": "ID/Tag Pelanggan", "id_tag_placeholder": "Masukkan ID/Tag Pelanggan", "otp_sent_via_wa": "Kode OTP akan dikirim via WhatsApp", "sign_in": "Masuk", "not_subscribed": "Belum berlangganan?", "register_new": "Daftar Pemasangan Baru", "otp_title": "Verifikasi OTP", "dashboard_title": "Dashboard Pelanggan", "dashboard": { "portal": "Portal Pelanggan", "hello": "Halo", "service": "Layanan", "active": "AKTIF", "suspended": "ISOLIR", "device_status": "Status Perangkat", "current_ssid": "SSID Saat Ini", "software_version": "Versi Software", "last_inform": "Last Inform", "rx_power": "RX Power", "pppoe_ip": "PPPoE IP", "pppoe_username": "PPPoE Username", "connected_users": "User Terhubung" }, "billing": { "title": "Status Tagihan & Riwayat", "period": "Periode", "service_package": "Layanan / Paket", "amount": "Jumlah", "status": "Status", "paid": "LUNAS", "paid_at": "Dibayar", "paid_through": "Sudah lunas sampai", "paid_year_prefix": "Sudah lunas tahun", "none_paid": "Belum ada tagihan yang lunas", "unpaid_summary_prefix": "Masih ada", "unpaid_summary_suffix": "tagihan belum dibayar", "pay_online": "BAYAR ONLINE", "unpaid": "BELUM BAYAR", "empty": "Tidak ada data tagihan.", "internet_service": "Layanan Internet" }, "ticket": { "title": "Tiket Bantuan & Keluhan", "report_1": "LAPORKAN", "report_2": "MASALAH", "time": "Waktu", "issue": "Kendala", "status": "Status", "waiting": "Menunggu", "in_progress": "Dikerjakan", "resolved": "Selesai", "empty": "Belum ada riwayat keluhan." }, "wifi": { "change_ssid": "Ganti Nama WiFi (SSID)", "current_ssid": "SSID saat ini", "new_ssid_placeholder": "Nama WiFi baru", "change_ssid_btn": "Ganti SSID", "change_password": "Ganti Password WiFi", "new_password_placeholder": "Password baru", "change_password_btn": "Ganti Password" }, "reboot": { "device": "Reboot Perangkat", "confirm": "Yakin ingin reboot perangkat Anda?" }, "devices": { "title": "Perangkat Terhubung", "hostname": "Hostname", "ip": "IP", "mac": "MAC", "interface": "Interface", "status": "Status", "online": "Online", "offline": "Offline", "empty": "Tidak ada perangkat yang sedang terhubung." }, "help": { "contact_admin": "Jika mengalami kendala, silakan hubungi admin melalui WhatsApp." }, "footer": { "about": "Tentang Kami", "tos": "Ketentuan Layanan", "privacy": "Kebijakan Privasi", "contact": "Kontak", "refund": "Kebijakan Refund" }, "payment": { "choose_title": "Pilih Pembayaran", "choose_desc": "Silakan pilih metode pembayaran untuk tagihan sebesar" }, "nav": { "home": "Beranda", "billing": "Tagihan", "help": "Bantuan", "wifi": "WiFi", "wifi_name": "Nama WiFi", "wifi_pass": "Sandi WiFi", "edit_wifi_name": "Ubah Nama WiFi", "edit_wifi_pass": "Ubah Sandi WiFi", "help_ticket": "Bantuan Keluhan" }, "pages": { "about": { "meta_title": "Tentang Kami", "hero_title_prefix": "Tentang", "hero_subtitle": "Solusi internet cepat dan terjangkau untuk masyarakat.", "p1": "{company} adalah penyedia layanan internet (ISP) yang berfokus pada penyediaan akses broadband berkualitas tinggi untuk perumahan dan bisnis kecil.", "p2": "Kami percaya bahwa di era digital saat ini, akses internet yang stabil dan cepat bukan lagi kemewahan, melainkan kebutuhan dasar untuk mendukung pendidikan, ekonomi kreatif, dan komunikasi tanpa batas.", "stats": { "speed_title": "Kecepatan Tinggi", "speed_desc": "Jaringan serat optik untuk pengalaman internet tanpa hambatan.", "stable_title": "Stabil & Aman", "stable_desc": "Infrastruktur yang dirancang untuk keandalan maksimal 24/7.", "support_title": "Dukungan Lokal", "support_desc": "Tim teknis yang siap membantu Anda kapan saja." }, "vision_title": "Visi Kami", "vision_body": "Menjadi mitra konektivitas digital terpercaya yang mampu menjangkau hingga pelosok, memberikan dampak positif bagi perkembangan ekonomi dan sosial masyarakat.", "mission_title": "Misi Kami", "mission_1": "Menyediakan layanan internet dengan harga yang kompetitif namun berkualitas premium.", "mission_2": "Terus berinovasi dalam infrastruktur jaringan untuk mengikuti perkembangan teknologi.", "mission_3": "Memberikan layanan pelanggan yang responsif dan solutif.", "footer_tagline": "Menghubungkan Anda ke Masa Depan" }, "tos": { "meta_title": "Syarat & Ketentuan", "title": "Syarat & Ketentuan", "subtitle": "Harap baca dengan teliti sebelum menggunakan layanan kami.", "p1": "Selamat datang di layanan internet {company}. Dengan menggunakan layanan kami dan melakukan pembayaran melalui sistem ini, Anda setuju untuk terikat oleh syarat dan ketentuan berikut:", "s1_title": "Layanan", "s1_body": "Kami menyediakan layanan akses internet (ISP) kepada pelanggan sesuai dengan paket yang dipilih. Kualitas layanan dapat dipengaruhi oleh faktor teknis, lokasi geografis, dan kondisi cuaca yang ekstrem.", "s2_title": "Pembayaran & Tagihan", "s2_li1": "Tagihan internet akan diterbitkan secara otomatis oleh sistem setiap bulan sesuai dengan siklus langganan Anda.", "s2_li2": "Pembayaran dapat dilakukan secara mandiri melalui Portal Pelanggan menggunakan metode QRIS, Virtual Account, atau Retail Outlet yang tersedia.", "s2_li3": "Setiap pembayaran yang sudah berhasil diverifikasi oleh sistem bersifat final dan tidak dapat dibatalkan atau dikembalikan (Non-Refundable).", "s3_title": "Kebijakan Isolir (Suspend)", "s3_body": "Sistem kami akan melakukan pemutusan layanan sementara (Isolir) secara otomatis apabila tagihan belum dilunasi hingga melewati batas waktu (Jatuh Tempo) yang telah ditentukan. Layanan akan aktif kembali secara otomatis segera setelah pembayaran terverifikasi.", "s4_title": "Pengembalian Dana (Refund)", "s4_body": "Pengembalian dana hanya dapat dipertimbangkan jika terjadi kesalahan sistem pada payment gateway kami yang menyebabkan transaksi ganda untuk satu tagihan yang sama.", "s5_title": "Batasan Tanggung Jawab", "s5_body": "{company} tidak bertanggung jawab atas kerugian yang disebabkan oleh gangguan teknis dari penyedia hulu (Upstream), kerusakan perangkat akibat kelalaian pelanggan, atau kejadian luar biasa (Force Majeure).", "footer_tagline": "Semua Hak Dilindungi" }, "privacy": { "meta_title": "Kebijakan Privasi", "title": "Kebijakan Privasi", "subtitle": "Bagaimana kami menjaga dan melindungi data pribadi Anda.", "p1": "Di {company}, privasi pelanggan kami adalah prioritas utama. Dokumen Kebijakan Privasi ini menjelaskan jenis informasi pribadi yang kami kumpulkan dan bagaimana kami menggunakannya.", "s1_title": "Informasi yang Kami Kumpulkan", "s1_body": "Kami mengumpulkan informasi terbatas yang diperlukan untuk penyediaan layanan, termasuk:", "s1_li1": "Nama lengkap dan alamat pemasangan.", "s1_li2": "Nomor telepon/WhatsApp untuk keperluan notifikasi tagihan dan teknis.", "s1_li3": "Data penggunaan layanan untuk pemantauan kualitas jaringan.", "s1_li4": "Data transaksi pembayaran melalui payment gateway pihak ketiga.", "s2_title": "Penggunaan Informasi", "s2_body": "Informasi yang kami kumpulkan digunakan untuk:", "s2_li1": "Memproses pendaftaran dan aktivasi layanan internet Anda.", "s2_li2": "Mengirimkan informasi tagihan dan pengingat pembayaran otomatis.", "s2_li3": "Memberikan dukungan teknis dan menanggapi keluhan Anda.", "s2_li4": "Meningkatkan kualitas jaringan dan pengalaman pengguna.", "s3_title": "Keamanan Data", "s3_body": "Kami menerapkan standar keamanan teknis untuk melindungi data Anda dari akses yang tidak sah. Data sensitif seperti kata sandi WiFi dan detail login disimpan dengan enkripsi di server kami.", "s4_title": "Pihak Ketiga", "s4_body": "Kami tidak menjual atau menyewakan data pribadi Anda kepada pihak ketiga. Kami hanya berbagi data dengan mitra payment gateway (seperti Tripay/Xendit/Midtrans) untuk memproses transaksi pembayaran Anda secara aman.", "s5_title": "Persetujuan", "s5_body": "Dengan menggunakan layanan kami, Anda dengan ini menyetujui Kebijakan Privasi kami dan menyetujui ketentuan-ketentuannya.", "footer_tagline": "Keamanan Data Anda adalah Komitmen Kami" }, "contact": { "meta_title": "Kontak Support", "title": "Hubungi Kami", "subtitle": "Kami siap membantu setiap kendala internet Anda.", "p1": "Tim support kami tersedia untuk melayani pertanyaan teknis, bantuan pembayaran, atau informasi pemasangan baru.", "whatsapp_title": "WhatsApp Support", "whatsapp_fallback": "Hubungi WhatsApp Kami", "fast_response": "Respon Cepat", "email_title": "Email Support", "hours_title": "Jam Operasional", "address_title": "Alamat Kantor", "footer_tagline": "Kepuasan Pelanggan adalah Kebanggaan Kami" } }, "register": { "title": "Pendaftaran Pelanggan Baru", "aria_home": "Beranda", "aria_theme": "Ganti tema", "header_login": "Masuk", "subtitle": "Isi data di bawah, tim kami akan menghubungi Anda.", "form_name": "Nama Lengkap", "form_name_ph": "Contoh: Budi Santoso", "form_phone": "Nomor WhatsApp Aktif", "form_phone_ph": "Contoh: 081234567890", "form_email": "Email (Opsional)", "form_email_ph": "Contoh: budi@gmail.com", "form_email_note": "Email digunakan untuk pengiriman invoice otomatis.", "form_nik": "No. Identitas — KTP/SIM/Paspor (Opsional)", "form_nik_ph": "Contoh: 3201xxxxxxxxxxxx", "form_nik_note": "Opsional, seperti email. Untuk kelengkapan data identitas.", "form_address": "Alamat Pemasangan", "form_address_ph": "Sertakan RT/RW, Desa, Kecamatan", "form_location": "Lokasi di Peta (Opsional)", "btn_pick_map": "Pilih di Peta", "btn_use_gps": "Gunakan GPS", "coord_none": "Koordinat belum dipilih.", "form_voucher": "Kode Voucher (Opsional)", "form_voucher_ph": "mis. HEMAT50", "voucher_note": "Punya kode promo? Masukkan untuk potongan biaya awal.", "voucher_pick_pkg": "Pilih paket dulu untuk cek voucher.", "btn_next": "Lanjut Pilih Paket", "btn_back": "Kembali", "form_package": "Pilih Paket Layanan", "package_ph": "Pilih salah satu paket…", "per_month": "bulan", "est_title": "Estimasi Biaya Awal", "est_install": "Biaya Pasang", "est_prorata": "Paket Prorata", "est_days": "hari", "est_discount": "Diskon Voucher", "est_total": "Total Bayar Awal", "est_note_pre": "Paket dihitung prorata s/d", "est_note_post": "(acuan tanggal 5). Ini estimasi; nominal final ditetapkan admin.", "btn_submit": "Kirim Pendaftaran", "have_account": "Sudah punya akun?", "login_here": "Login di sini", "link_about": "Tentang Kami", "link_tos": "Ketentuan", "link_privacy": "Privasi", "link_contact": "Kontak", "succ_id": "ID Pelanggan", "succ_pkg": "Paket", "succ_estimate": "Estimasi Biaya Awal", "succ_install": "Biaya pasang", "succ_prorata": "Prorata", "succ_discount": "Diskon", "succ_note": "Simpan ID Pelanggan Anda. Nominal final ditetapkan admin saat pemasangan.", "back_login": "Kembali ke Login", "modal_title": "Pilih Lokasi Pemasangan", "modal_close": "Tutup", "modal_tip": "Geser pin atau klik peta untuk menentukan titik lokasi.", "btn_done": "Selesai", "js_fill_required": "Lengkapi Nama, No. WhatsApp, dan Alamat dulu.", "js_fill_required2": "Lengkapi Nama, No. WhatsApp, dan Alamat terlebih dahulu.", "js_pick_package": "Pilih paket layanan terlebih dahulu.", "js_gps_unsupported": "GPS tidak didukung di perangkat ini.", "js_gps_fail": "Gagal mengambil lokasi: ", "err_required": "Semua field wajib diisi.", "err_phone": "Nomor WhatsApp tidak valid. Gunakan format 08xxxxxxxxxx.", "err_pkg": "Paket yang dipilih tidak ditemukan.", "err_ratelimit": "Terlalu banyak pendaftaran dari jaringan ini. Silakan coba lagi beberapa menit lagi.", "success": "Pendaftaran berhasil! Tim kami akan segera menghubungi Anda melalui WhatsApp." }, "aria_home": "Beranda", "aria_theme": "Ganti tema", "header_login": "Login", "tos_agree": "Saya setuju dengan", "tos_terms": "Syarat & Ketentuan (TOS)", "check_billing": { "title": "Cek Tagihan", "subtitle": "tanpa perlu login", "search_label": "Cari pelanggan", "search_ph": "Nama / No. WA / username PPPoE / ID", "search_btn": "Cek", "search_note": "Bisa pakai: Nama pelanggan, Nomor WhatsApp, PPPoE Username, GenieACS Tag, atau ID pelanggan.", "not_found": "Pelanggan tidak ditemukan. Pastikan input sudah benar.", "results": "Hasil Pencarian", "results_hint": "Pilih pelanggan untuk melihat detail tagihan", "col_customer": "Pelanggan", "unpaid": "Belum Bayar", "col_total": "Total", "view": "Lihat", "paid": "Lunas", "all_paid": "Semua tagihan sudah lunas.", "unpaid_bills": "Tagihan Belum Dibayar", "col_period": "Periode", "col_amount": "Nominal", "col_select": "Pilih", "payment": "Pembayaran", "pay_method": "QRIS / Transfer Bank / E-Wallet", "pay_note": "Metode dipilih di halaman pembayaran", "pay": "Bayar", "history": "Riwayat (Lunas)", "showing": "Menampilkan", "data_latest": "data terbaru", "col_date": "Tanggal" }, "public_voucher": { "title": "Voucher Hotspot", "subtitle": "beli & kirim ke WhatsApp", "order_status": "Status Pesanan", "st_done": "Selesai", "st_process": "Diproses", "st_wait": "Menunggu", "pkg": "Paket", "duration": "Durasi", "price": "Harga", "ready": "Voucher Siap", "sent_wa": "Voucher berhasil dikirim ke WhatsApp pembeli.", "wa_fail": "WhatsApp gagal terkirim", "backup": "Cadangan: simpan kode voucher yang tampil di halaman ini.", "fallback": "Jika WhatsApp gagal terkirim, kode voucher tetap tampil di halaman ini.", "paid_processing": "Pembayaran berhasil — voucher sedang dibuat di MikroTik. Halaman ini diperbarui otomatis.", "open_qris": "Buka QRIS Statis", "qris_na": "Link QRIS tidak tersedia.", "continue_pay": "Lanjutkan Pembayaran", "pkg_label": "Paket Voucher", "no_profile": "Belum ada profile voucher (metadata Mikhmon) di MikroTik.", "pay_method": "Metode Pembayaran", "qris_static": "QRIS Statis (Scan)", "unique_nominal": "Nominal unik", "free": "Gratis", "buyer_wa": "Nomor WhatsApp Pembeli", "buyer_ph": "Contoh: 08xxxxxxxxxx", "buyer_note": "Kode voucher akan dikirim ke nomor ini.", "pay_create": "Bayar & Buat Voucher" }, "app_connect": { "title": "Portal Pelanggan", "badge": "Koneksi Resmi Modem Pelanggan", "id_label": "ID Pelanggan", "thanks": "Terima kasih telah menggunakan layanan internet kami. Silakan akses akun dan layanan Anda:", "download": "Unduh Aplikasi Pelanggan (APK)", "login": "Masuk ke Portal Web Pelanggan", "contact": "Hubungi Bantuan CS WhatsApp", "tip1_title": "Waspada Petir:", "tip1_text": "Cabut adaptor daya & kabel saat hujan lebat demi keselamatan modem Anda.", "tip2_title": "Cara Reboot:", "tip2_text": "Matikan tombol power modem 10 detik lalu nyalakan kembali jika koneksi melambat." } }, "agent": { "portal_title": "Portal Agent", "login_title": "Login Agent", "dashboard_title": "Dashboard Agent", "username": "Username", "password": "Password", "username_placeholder": "Masukkan username", "password_placeholder": "Masukkan password", "sign_in": "Masuk", "logout": "Logout", "nav": { "home": "Beranda", "billing": "Tagihan", "voucher": "Voucher", "history": "Riwayat" }, "receipt_last": "Struk Terakhir", "new": "Baru", "summary": "Ringkasan", "balance": "Saldo", "billing_fee": "Fee Tagihan", "account_status": "Status Akun", "active": "Aktif", "inactive": "Nonaktif", "last_tx": "Transaksi Terakhir", "time": "Waktu", "customer": "Pelanggan", "invoice": "Invoice", "period": "Periode", "amount": "Nominal", "package": "Paket", "validity": "Masa Aktif", "user": "User", "pass": "Pass", "price": "Harga", "profit": "Profit", "cut_balance": "Potong Saldo", "fee": "Fee", "whatsapp": "WhatsApp", "wa_sent": "Terkirim", "wa_not_sent": "Tidak terkirim", "print_thermal": "Print Thermal", "copy_all": "Copy Semua", "pay_invoice": "Bayar Tagihan", "search": "Cari", "search_placeholder": "No HP / PPPoE / Tag / ID", "no_unpaid_prefix": "Tidak ada tagihan belum bayar untuk pencarian:", "unpaid_badge": "BELUM BAYAR", "note_optional": "Catatan (opsional)", "process_pay_prefix": "Proses Bayar", "sell_voucher": "Jual Voucher Hotspot", "instant": "Instant", "no_voucher_profiles": "Belum ada profile voucher untuk agent ini. Minta admin mengatur harga & profile.", "buyer_phone_optional": "No WhatsApp pembeli (opsional)", "choose_voucher": "Pilih paket voucher", "create_voucher_prefix": "Buat Voucher - ", "history_title": "Riwayat Singkat", "no_transactions": "Belum ada transaksi.", "tx_type": { "topup": "TOPUP", "invoice": "TAGIHAN", "voucher": "VOUCHER", "generic": "TRANSAKSI" }, "receipt": { "voucher_title": "STRUK VOUCHER HOTSPOT", "payment_title": "STRUK PEMBAYARAN", "transaction_no": "No. Transaksi", "date": "Tanggal", "router": "Router", "code": "KODE VOUCHER", "password": "PASSWORD", "total_paid": "TOTAL BAYAR", "thanks_voucher": "Terima kasih.\nSimpan struk ini sebagai bukti transaksi.", "thanks_payment": "Terima kasih atas pembayaran Anda.\nSimpan struk ini sebagai bukti pembayaran yang sah." } }, "collector": { "login_title": "Portal Kolektor", "role": "Kolektor", "fallback_name": "Penagih", "absensi": "Absensi", "today": "Hari Ini", "btn_belum": "Belum", "btn_isolir": "Isolir", "btn_over1m": ">1 Bln", "month_short": "Bln", "tag_belum_bayar": "Tagihan Belum Bayar", "tag_hari_ini": "Tagihan Hari Ini", "tag_hari_ini_tgl": "Tagihan Hari Ini (tgl", "tag_isolir": "Tagihan Isolir", "tag_menunggak": "Menunggak > 1 Bulan", "count_prefix": "Menampilkan maks 500 tagihan periode", "bill_list": "Daftar Tagihan", "read_only": "Read Only", "filter_all": "Semua", "filter_all_area": "Semua Area", "filter_all_cust": "Semua Pelanggan", "filter_belum": "Belum Bayar", "filter_search": "Cari (opsional): nama / HP / PPPoE / TAG", "data_title_pre": "Data Pelanggan & Tagihan Area", "no_data": "Tidak ada data pelanggan untuk filter ini.", "col_name": "Nama", "col_address": "Alamat", "col_area": "Area / Wilayah", "col_area_short": "Area:", "col_period": "Periode", "col_due": "Jatuh Tempo", "col_cust_id": "ID Pelanggan", "col_pppoe": "PPPoE", "col_onu_tag": "Tag ONU", "col_amount": "Nominal", "col_status_action": "Status / Aksi", "status_active": "Aktif", "status_pending": "PENDING", "status_belum_bayar": "BELUM BAYAR", "status_belum_tagihan": "BELUM TAGIHAN", "status_isolir": "ISOLIR", "status_lunas": "LUNAS", "lunas": "Lunas", "belum_bayar_title": "Belum Bayar", "approved": "APPROVED", "rejected": "REJECTED", "waiting_approval": "MENUNGGU APPROVAL", "print_receipt": "Cetak Struk (Thermal)", "struk": "Struk", "send_wa_pdf": "Kirim WA PDF", "request_history": "Riwayat Pengajuan Saya", "total_requests": "Total pengajuan (halaman ini)", "no_requests": "Belum ada pengajuan.", "col_time": "Waktu", "col_status": "Status", "map": "Map", "attendance_title": "Absensi Karyawan", "today_status": "Status Hari Ini", "checked_in": "Sudah Check-in", "checked_out": "Sudah Check-out", "not_checked_in": "Belum Check-in", "not_checked_out": "Belum check-out", "checkin_now": "Check-in Sekarang", "checkout_now": "Check-out Sekarang", "checkin": "Check-in", "checkout": "Check-out", "month_summary": "Ringkasan Bulan Ini", "total_days": "Total Hari", "full_days": "Hari Lengkap", "avg_hours": "Rata-rata Jam", "recent_history": "Riwayat Terakhir", "no_history": "Belum ada riwayat absensi", "work_duration": "Durasi Kerja", "selfie_required": "Foto wajib", "selfie_checkin": "Foto selfie check-in (wajib)", "selfie_checkout": "Foto selfie check-out (wajib)", "tap_camera": "Ketuk tombol kamera untuk mengambil foto selfie", "photo_preview": "Preview foto final yang akan dikirim:", "delete_photo": "Hapus Foto", "no_selfie_in": "Belum ada foto selfie dipilih. Foto wajib untuk check-in.", "no_selfie_out": "Belum ada foto selfie dipilih. Foto wajib untuk check-out.", "getting_gps": "Mengambil lokasi GPS...", "start_day": "Silakan lakukan check-in untuk memulai hari kerja Anda.", "note_checkin": "Catatan Check-in:", "note_checkout": "Catatan Check-out:", "attendance_photo": "Foto Absensi:", "duration_label": "Durasi:", "minutes": "menit", "home": "Beranda", "data_title": "Data Pelanggan & Tagihan Area", "checkin_label": "Check-in:", "checkout_label": "Check-out:", "total_hours": "Total Jam", "hours_minutes": "jam menit", "filter_unpaid": "Belum Bayar (Filter)", "customer": "Pelanggan", "note_in_ph": "Catatan check-in (opsional)", "note_out_ph": "Catatan check-out (opsional)", "gps_fail": "Gagal mendapatkan lokasi GPS" }, "portal": { "staff_login": "Pintu masuk staf", "choose": "Pilih portal untuk masuk.", "admin": "Admin", "admin_desc": "Panel administrator", "agent": "Agen", "agent_desc": "Portal agen / reseller", "collector": "Kolektor", "collector_desc": "Penagihan lapangan", "tech": "Teknisi", "tech_desc": "Portal teknisi", "back_customer": "Kembali ke Portal Pelanggan" }, "pwa": { "title": "Portal Pelanggan", "nav": { "billing": "Tagihan", "network": "Jaringan", "account": "Akun", "back_home": "Kembali ke Beranda" }, "greeting": "Selamat datang kembali", "speed": "Kecepatan", "active_period": "Masa Aktif", "coming_soon": "Segera hadir", "promo": { "b1": "PROMO OKTOBER", "s1_title": "Upgrade ke 100 Mbps — diskon 30%", "s1_text": "Berlaku hingga 31 Oktober 2026", "b2": "REWARD PELANGGAN", "s2_title": "Bayar tepat waktu, dapat cashback Rp 20.000", "s2_text": "Program loyalitas khusus pelanggan aktif", "s3_title": "Jaringan dipantau 24/7 oleh tim teknis", "s3_text": "Respon gangguan kurang dari 2 jam", "show": "Tampilkan Promo", "show_short": "Tampil", "hidden": "Disembunyikan" }, "quick": { "title": "Aksi Cepat" }, "home": { "modem": "Modem", "help": "Bantuan", "no_bill": "Tidak ada tagihan", "paid": "Lunas" }, "isolir": "Isolir:", "net": { "status_title": "Status Jaringan", "realtime_note": "Kartu di bawah menampilkan kecepatan real-time berdasarkan pemakaian WiFi saat ini — angka kecil atau 0 wajar bila tidak ada aktivitas.", "subtitle": "Monitoring ONU & perangkat terhubung", "onu_missing": "ONU Tidak Terdeteksi", "onu_missing_note": "Perangkat ONU/modem Anda belum terdeteksi di sistem. Pastikan modem menyala dan kabel fiber terpasang dengan benar. Bila tetap tidak terdeteksi, hubungi admin.", "view_detail": "Lihat detail gangguan", "pppoe_off": "Koneksi PPPoE tidak terdeteksi — tombol dinonaktifkan.", "modem_status": "Status Modem", "maintenance": "Pemeliharaan Jaringan", "maintenance_short": "Perawatan", "ssid": "Nama WiFi (SSID)", "poll_onu": "Poll ONU", "restart_modem": "Restart Modem", "devices_connected": "Perangkat Terhubung (", "no_devices": "Tidak ada perangkat terdeteksi.", "f_serial": "Serial ONU", "f_serial_no": "Serial Number", "f_model": "Model ONU", "f_rx": "Redaman (Rx)", "f_pppoe": "Koneksi PPPoE", "f_pppoe_short": "PPPoE", "f_ip_local": "IP Lokal", "f_ip_public": "IP Publik", "f_uptime": "Uptime", "f_password": "Password", "status_prefix": "Status jaringan: ", "ssid_short": "SSID WiFi", "onu_primary": "ONU Utama · GPON", "status_aria": "Status jaringan" }, "billing": { "pay_now": "Bayar Sekarang", "total_unique": "(termasuk kode unik)", "nominal_note": "Harga paket + kode unik", "methods": "Metode pembayaran: QRIS · Transfer Bank · E-Wallet", "pkg_detail": "Detail Paket", "actions": "Aksi Tagihan", "download_pdf": "Download Tagihan (PDF)", "history": "Riwayat Pembayaran", "view_history": "Lihat Semua Riwayat", "paid_note": "Tagihan yang sudah lunas.", "no_history": "Belum ada riwayat pembayaran.", "nominal_note_pre": "Harga paket", "nominal_note_mid": "+ kode unik", "quick": "Bayar" }, "status": { "unpaid": "BELUM BAYAR", "paid": "LUNAS" }, "total": "Total", "thanks": "Terima kasih", "field": { "period": "Periode", "name": "Nama", "customer_id": "ID Pelanggan", "address": "Alamat", "area": "Area", "package": "Paket", "phone": "No. HP / WA", "company": "Perusahaan", "phone_plain": "Telepon", "email": "Email" }, "speedtest": { "subtitle": "Ukur kecepatan internet Anda", "note": "Untuk hasil akurat, tutup aplikasi lain yang menggunakan internet dan dekatkan perangkat ke router.", "not_set": "Speedtest belum di setup", "not_set_hint": "Admin belum mengatur Link Speed Test. Silakan hubungi admin.", "contact_admin": "Hubungi Admin", "tips": "Tips Speed Test", "no_history": "Belum ada riwayat tes.", "open_title": "Buka Speed Test", "open_hint": "Speed test akan dibuka di jendela baru. Tuntaskan pengukuran, lalu kembali ke aplikasi.", "open_btn": "Mulai Speed Test", "provider": "Penyedia Speed Test", "clear_cache": "Bersihkan Cache", "reloading": "Memuat ulang Speed Test..." }, "js": { "speed_measuring": "Mengukur kecepatan...", "speed_down": "Mengukur kecepatan unduh...", "speed_up": "Mengukur kecepatan unggah...", "speed_done": "Tes selesai", "speed_done_fail": "Tes gagal", "speed_failed": "Tes kecepatan gagal:", "st_not_detected": "ONU / Modem tidak terdeteksi", "st_detected_no_conn": "ONU terdeteksi, koneksi terputus", "st_na": "Tidak terdeteksi", "logout_title": "Keluar dari akun?", "logout_msg": "Anda perlu masuk lagi untuk mengakses portal.", "logout_yes": "Ya, Keluar", "logging_out": "Mengeluarkan akun...", "logged_out": "Berhasil keluar", "reconnect_title": "Reconnect PPPoE?", "reconnect_msg": "Koneksi internet akan terputus sementara selama proses reconnect. Lanjutkan?", "reconnect_yes": "Ya, Reconnect", "reconnecting": "Menyambung ulang PPPoE...", "reconnected": "PPPoE tersambung", "restart_title": "Restart Modem?", "restart_yes": "Ya, Restart", "restart_msg_old": "Modem ZTE F609 akan direstart. Koneksi internet akan terputus sekitar 1-2 menit.", "restart_msg": " akan direstart. Koneksi terputus sekitar 1-2 menit.", "restarting": "Mengirim perintah restart...", "restarted": "Modem sedang restart", "restart_sent": "Perintah restart dikirim ke modem", "restart_sent_short": "Perintah restart dikirim", "polling": "Memperbarui status ONU...", "polled": "Status ONU diperbarui", "loading_devices": "Memuat perangkat...", "devices_updated": "Daftar perangkat diperbarui", "saving_wifi": "Menyimpan pengaturan WiFi...", "wifi_saved": "Pengaturan WiFi tersimpan", "save_failed": "Gagal menyimpan", "onu_missing_restart": "ONU tidak terdeteksi — restart modem tidak dapat dilakukan.", "onu_missing_wifi": "ONU tidak terdeteksi — ubah sandi tidak dapat dilakukan.", "onu_missing_wifi2": "ONU tidak terdeteksi — pengaturan WiFi tidak tersedia.", "ssid_empty": "SSID tidak boleh kosong", "net_ok": "Jaringan Normal", "net_issue": "Sedang terjadi gangguan pada jaringan.", "net_fine": "Tidak ada gangguan pada jaringan saat ini. Layanan berjalan normal.", "estimate": "Estimasi selesai:", "sending_wa": "Mengirim tagihan ke WhatsApp...", "sent_wa": "Tagihan terkirim ke WhatsApp", "send_failed": "Gagal mengirim", "send_failed_wa": "Gagal mengirim ke WhatsApp", "conn_failed": "Koneksi gagal", "pdf_ok": "PDF berhasil diunduh (", "pdf_fail": "Gagal mengunduh PDF. Coba lagi ya.", "bill_prefix": "Tagihan-", "speed_failed_trail": "Tes kecepatan gagal: ", "st_connected": "ONU / Modem terkoneksi" }, "account": { "personal_info": "Informasi Pribadi", "service_data": "Data Layanan", "billing_reminder": "Pengingat Tagihan", "always_on": "Selalu Aktif", "help_info": "Bantuan & Informasi", "logout": "Keluar dari Akun", "data_note": "Data akun Anda. Untuk mengubah data, ajukan ke admin.", "tech_info_note": "Informasi teknis untuk keperluan bantuan/teknisi.", "copy_all": "Salin Semua", "copy_id": "Salin ID", "apps": "Aplikasi", "about": "Tentang Aplikasi", "settings": "Setting", "preferences": "Preferensi", "clear_cache": "Bersihkan Cache Aplikasi" }, "wa_edit_prefix": "Halo Admin, saya ingin mengubah data pelanggan saya. ID: ", "wifi": { "title": "Pengaturan WiFi", "subtitle": "Ubah SSID dan password jaringan WiFi Anda", "password_hint": "Minimal 8 karakter. Gunakan kombinasi huruf, angka, dan simbol.", "name_ph": "Nama WiFi", "pwd_ph": "Password baru (min. 8 karakter)", "apply": "Ajukan Perubahan" }, "help": { "center": "Pusat Bantuan", "needed": "Butuh Bantuan?", "subtitle": "Kirim laporan gangguan ke admin (foto opsional), atau chat langsung via WhatsApp.", "issue_type": "Jenis Kendala", "pick_issue": "-- Pilih jenis kendala --", "pick_hint": "Ketuk untuk memilih jenis kendala", "message": "Detail Pesan", "message_ph": "Jelaskan kendala Anda…", "photo": "Foto Lampiran (opsional)", "photo_note": "Opsional — boleh dikosongkan jika tidak ada foto.", "submit": "Kirim Gangguan", "info": "Info Gangguan", "chat_wa": "Chat WhatsApp", "chat_wa_alt": "Chat via WhatsApp", "official_note": "Hanya percaya kontak resmi di atas. Admin tidak pernah meminta password.", "topic_billing": "Pertanyaan Tagihan & Pembayaran", "i_disconnected": "Koneksi Terputus / Tidak Bisa Konek", "i_slow": "Koneksi Lambat / Lemot", "i_pon": "Lampu PON Merah / Los Sinyal", "i_pwd": "Kendala Lupa Password WiFi", "i_other": "Lainnya" }, "notif": { "title": "Notifikasi", "subtitle": "Pemberitahuan terbaru untuk akun Anda", "empty": "Belum ada notifikasi." }, "confirm": { "sure": "Apakah Anda yakin?", "yes": "Ya, Lanjutkan", "title": "Konfirmasi" }, "estimate_prefix": "Estimasi:", "r": { "fallback_name": "Pelanggan", "bill_prefix": "Tagihan", "unpaid": "Belum dibayar", "due_short": "jatuh", "due_full": "Jatuh Tempo:", "waiting": "Menunggu pembayaran", "pending": "Menunggu Pembayaran", "days_left": "hari tersisa", "over": "Lewat", "days": "hari", "paid_on": "Dibayar", "device": "Perangkat", "net_info": "Info Jaringan", "service_info": "Info Layanan", "payment_success": "Pelunasan Tagihan Berhasil", "amount_of": "sebesar", "has_paid": "telah LUNAS.", "system_confirmed": "Terkonfirmasi Sistem", "monthly_reminder": "Pengingat Tagihan Bulanan", "awaiting": "menunggu pembayaran.", "due": "Jatuh Tempo" }, "update": { "available": "Versi baru tersedia" }, "cache": { "confirm_title": "Bersihkan Cache?", "confirm_msg": "Cache aplikasi akan dihapus lalu halaman dimuat ulang.", "confirm_yes": "Ya, Bersihkan" } }, "landing": { "nav": { "features": "Keunggulan", "packages": "Paket", "how": "Cara Daftar", "area": "Area", "faq": "FAQ", "login": "Masuk", "register": "Daftar", "cust_login": "Masuk Pelanggan", "status": "Status", "packages_full": "Paket & Harga" }, "hero": { "eyebrow": "Fiber Optic · Tanpa Batas", "subtitle": "Nikmati koneksi fiber optic simetris, latensi rendah, dan dukungan teknis responsif. Pasang mudah, harga transparan, tanpa biaya tersembunyi.", "title_prefix": "Internet", "title_hl": "cepat & stabil", "title_rest": "untuk rumah dan usaha Anda", "subscribe": "Daftar Berlangganan", "wa": "Chat WhatsApp", "check": "Cek Tagihan", "stat_packages": "Pilihan Paket", "stat_customers": "Pelanggan", "stat_areas": "Area Layanan", "stat_support": "Dukungan", "online": "Jaringan Online", "monitoring": "Monitoring 24 jam" }, "feat": { "title": "Kenapa memilih", "sub": "Kami membangun jaringan fiber optic sendiri dengan standar kualitas dan layanan yang bisa Anda andalkan." }, "f1": { "title": "Perangkat Modern", "desc": "Perangkat ONU/ONT berkualitas yang dipantau langsung dari sistem kami." }, "f2": { "title": "Tanpa Batas Kuota", "desc": "Belanja data sepuasnya tanpa FUP tersembunyi. Pakai sepanjang bulan dengan tenang." }, "f3": { "title": "Fiber Simetris", "desc": "Kecepatan unggah sama dengan unduh — ideal untuk streaming, meeting, dan kerja dari rumah." }, "f4": { "title": "Koneksi Stabil", "desc": "Latensi rendah dan jitter kecil untuk gaming, video call, dan semua aktivitas daring." }, "f5": { "title": "Jangkauan Luas", "desc": "Terus memperluas jaringan ke lebih banyak titik di wilayah layanan kami." }, "f6": { "title": "Dukungan Responsif", "desc": "Tim teknis siap membantu lewat WhatsApp dan tiket. Gangguan ditangani cepat." }, "pkg": { "eyebrow": "Paket", "title": "Pilih paket sesuai kebutuhan", "sub": "Harga jujur per bulan. Semua paket sudah termasuk perangkat dan dukungan teknis.", "symmetric": "Kecepatan simetris", "popular": "Terpopuler", "permonth": "bulan", "choose": "Pilih Paket", "install": "Pemasangan", "device": "Perangkat ONU/ONT disediakan", "empty": "Daftar paket belum tersedia. Silakan hubungi kami untuk informasi.", "f_unlimited": "Tanpa batas kuota" }, "how": { "eyebrow": "Cara Daftar", "title": "Berlangganan cuma 3 langkah", "s1t": "Daftar", "s1d": "Daftar online lewat halaman pendaftaran. Cukup nama, nomor WhatsApp, dan alamat.", "s2t": "Verifikasi & Survei", "s2d": "Tim kami memverifikasi ketersediaan jaringan di lokasi Anda dan menyepakati jadwal pasang.", "s3t": "Pemasangan", "s3d": "Teknisi memasang perangkat dan mengaktifkan layanan. Internet siap digunakan.", "start": "Mulai Daftar Sekarang", "s1t2": "Isi Formulir" }, "area": { "eyebrow": "Area Layanan", "title": "Jangkauan jaringan kami", "sub": "Layanan kami mencakup beberapa wilayah. Hubungi kami untuk memastikan ketersediaan di lokasi Anda.", "empty": "Informasi area belum tersedia.", "covered": "Wilayah terjangkau", "loading": "Memuat peta…" }, "testi": { "eyebrow": "Testimoni", "title": "Kata pelanggan kami", "sub": "Cerita nyata dari pelanggan yang memakai layanan" }, "faq": { "eyebrow": "FAQ", "title": "Pertanyaan yang sering diajukan", "q1": "Apakah ada biaya pemasangan?", "a1": "Biaya pemasangan serta ketentuan lainnya akan dijelaskan tim kami saat verifikasi. Harga paket bulanan bersifat transparan tanpa biaya tersembunyi.", "q2": "Bagaimana cara cek tagihan?", "a2": "Anda bisa mengecek tagihan tanpa login melalui halaman Cek Tagihan, atau masuk ke portal pelanggan untuk melihat riwayat dan melakukan pembayaran.", "q3": "Berapa lama proses pemasangan?", "a3": "Setelah pendaftaran diverifikasi dan lokasi Anda terjangkau jaringan, pemasangan umumnya dapat dijadwalkan dalam 1–3 hari kerja.", "q4": "Bagaimana jika ada gangguan?", "a4": "Hubungi tim teknis via WhatsApp atau buat tiket dari portal pelanggan. Kami memantau jaringan 24 jam dan menangani gangguan secepat mungkin.", "q5": "Apakah kecepatan simetris (upload = download)?", "a5": "Ya. Jaringan fiber optic kami menyediakan kecepatan simetris sehingga unggah dan unduh sama cepat, cocok untuk meeting dan unggah konten." }, "ads": { "eyebrow": "Iklan & Sponsor", "title": "Halaman Iklan Segera Hadir", "desc": "Slot promosi untuk mitra dan pelaku usaha lokal sedang disiapkan. Ingin memasang iklan Anda di sini? Hubungi kami untuk informasi lebih lanjut.", "ask": "Tanya Slot Iklan", "wa": "Tanya via WhatsApp" }, "cta": { "title": "Siap beralih ke internet fiber yang lebih baik?", "sub": "Daftar sekarang atau tanyakan ketersediaan jaringan di lokasi Anda. Tim kami siap membantu.", "note": "Proses cepat, tim kami akan menghubungi Anda setelah pendaftaran." }, "footer": { "nav": "Navigasi", "opensource": "Open Source", "repo": "Repositori", "issues": "Laporkan Masalah / Form", "wiki": "Wiki & Dokumentasi", "wiki2": "Wiki / Dokumentasi", "license": "Lisensi ISC", "contact": "Kontak", "tagline": "Micro Internet Provider dan Server Platform.", "portal": "Portal Pelanggan", "check": "Cek Tagihan", "server_status": "Status Server", "status": "Status", "github": "GitHub", "repo_gh": "Repositori (GitHub)", "area_nav": "Area Layanan", "testi_nav": "Testimoni" }, "map": { "no_office": "Lokasi kantor belum diatur." }, "coming_soon": "Coming Soon" }, "login": { "f1t": "Fiber Simetris", "f1d": "Fiber optic dedicated", "f2t": "Tanpa Batas", "f2d": "Nikmati internet tanpa FUP tersembunyi sepanjang bulan.", "f3t": "Stabil", "f3d": "Latensi rendah dengan jaringan yang dipantau 24 jam.", "f4t": "Dukungan", "f4d": "Tim teknis siap membantu melalui WhatsApp dan tiket.", "support247": "Dukungan teknisi 24/7", "dashboard": "Dashboard Pelanggan", "manage": "Kelola layanan internet Anda", "manage_desc": "Masuk untuk melihat tagihan, melakukan pembayaran, memantau koneksi, dan mengatur WiFi perangkat Anda.", "chk_desc": "Cek & bayar tagihan kapan saja", "mon_desc": "Pantau trafik dan status koneksi", "wifi_desc": "Ubah SSID & password WiFi", "rbt_desc": "Reboot perangkat & buat laporan gangguan", "pwa_desc": "Akses lebih cepat dari layar utama", "install_app": "Pasang aplikasi", "voucher": "Beli Voucher Wi-Fi", "voucher_short": "Beli Voucher", "new_install": "Pasang Baru", "install": "Pasang", "pkg_title": "Paket & tarif layanan", "pkg_sub": "Pilih kecepatan yang sesuai kebutuhan Anda, dari rumah hingga kantor.", "pkg_empty_title": "Belum ada paket dipublikasikan", "pkg_empty": "Silakan hubungi customer service untuk informasi paket terkini.", "pkg_choose": "Pilih Paket Ini", "hint": "Hanya ID Pelanggan (SKY-xxxxx) atau Nomor WhatsApp terdaftar", "register_new": "Daftar Baru", "info": "Informasi", "status_full": "Status Server & Uptime", "check_full": "Cek & Bayar Tagihan", "voucher_nav": "Voucher", "manage_hl": "dalam satu tempat" }, "iso": { "redirected": "Akses Dialihkan", "limited": "Akses Terbatas", "auto_restore": "Akses otomatis pulih setelah pembayaran terkonfirmasi.", "unpaid": "BELUM LUNAS", "pay_qris": "Bayar Cepat via QRIS", "open_gateway": "Buka Halaman Gateway", "open_portal": "Buka Portal Pelanggan", "search_title": "Cari Tagihan Anda", "contact_wa": "Hubungi Admin via WhatsApp", "contact_cs": "Hubungi Customer Service", "data_for": "Data untuk", "not_found": "tidak ditemukan. Pastikan nomor WhatsApp atau ID sudah benar.", "notice": "Koneksi internet Anda dialihkan sementara karena tagihan telah melewati jatuh tempo. Bayar instan via QRIS agar layanan langsung aktif kembali.", "suspended": "Layanan Terisolir", "reactivating": "Layanan internet Anda sedang diaktifkan kembali otomatis…", "login_portal": "Masuk ke Portal Pelanggan", "connecting": "Menghubungkan ke gateway pembayaran server", "waiting": "Menunggu Pembayaran… (Auto-Check)", "preparing_qris": "Menyiapkan QRIS…", "cust_name": "Nama Pelanggan", "phone": "No. Telepon", "qris_payment": "PEMBAYARAN QRIS", "pkg_net": "Paket Internet", "pkg_sub": "Paket Langganan", "paid_title": "Pembayaran Berhasil!", "notice_title": "Pemberitahuan Isolir", "notice_body_pre": "Perangkat Anda dialihkan ke portal pembayaran billing", "notice_body_post": "Masukkan Nomor WhatsApp atau ID Pelanggan untuk menampilkan tagihan Anda.", "period": "Periode", "restore": "Pulihkan & Refresh Koneksi", "copy_amount": "Salin Nominal", "all_paid": "Semua Tagihan Lunas", "billing_sys": "Sistem Billing", "unpaid_bill": "Tagihan Belum Dibayar", "net_bill": "Tagihan Internet", "thanks": "Terima kasih! Pembayaran Anda telah kami terima.", "isolated_status": "Terisolir", "unique_note": "Termasuk Kode Unik Verifikasi", "no_bill": "Tidak Ada Tagihan", "no_bill_desc": "Tidak ada tagihan tertunggak atas nama akun Anda. Jika koneksi belum normal, pulihkan koneksi di bawah.", "total": "Total Pembayaran", "transfer": "Transfer Bank / E-Wallet", "waiting_js": "Menunggu Pembayaran…" }, "donate": { "admin_panel": "Admin Panel", "open_wiki": "Buka Wiki", "how_pay": "Cara Pembayaran", "dl_qr": "Download QR", "title": "Dukung OPEN-ISP", "free": "GRATIS", "code_hint": "Gunakan kode ini untuk membuka menu yang terkunci di sidebar Admin Panel:", "code_label": "KODE AKTIVASI", "code_free": "KODE AKTIVASI GRATIS", "goto_settings": "Ke Pengaturan Sidebar Admin", "send": "Kirim", "code": "Kode Aktivasi", "code_yours": "Kode Aktivasi Sidebar Anda:", "code_sent": "Kode aktivasi dikirim ke WA Anda dan ditampilkan di bawah.", "menu_code": "Kode aktivasi menu", "menu_code_free": "Kode aktivasi menu tersedia GRATIS", "manual_confirm": "Konfirmasi Manual (jika belum terdeteksi)", "enter_code": "Masukkan kode pada kolom", "waiting_donation": "Menunggu Donasi Masuk", "waiting_payment": "Menunggu Pembayaran Masuk…", "min_donation": "Minimal donasi", "donor_name": "Nama Donatur (Opsional)", "custom_amount": "Nominal Kustom (Rp) *", "amount_exact": "Nominal transfer harus sama persis agar sistem mengenali transaksi Anda.", "phone": "Nomor WhatsApp * (untuk kode aktivasi)", "notif_wa": "Notifikasi & kode aktivasi dikirim ke WhatsApp Anda!", "paid": "PEMBAYARAN DONASI DITERIMA!", "important": "PENTING:", "sidebar_settings": "Pengaturan Sidebar", "message": "Pesan / Doa (Opsional)", "quick_amount": "Pilih Nominal Cepat (Rp)", "pick_menu": "Pilih menu", "copy": "Salin", "copy_code": "Salin Kode", "scan_qr": "Scan QRIS", "auto_detect": "Sistem otomatis mendeteksi transaksi & mengirim kode aktivasi ke WA Anda.", "status": "Status:", "show": "Tampil", "show_qris": "Tampilkan QRIS Donasi", "thanks": "Terima Kasih Banyak!", "unique_incl": "Termasuk Kode Unik", "total_transfer": "Total Nominal Transfer (beserta kode unik)", "verified": "Transaksi donasi Anda telah berhasil diverifikasi oleh sistem.", "thanks_note": "Ucapan terima kasih & kode aktivasi sidebar dikirim ke nomor ini.", "wiki": "Wiki OPEN-ISP", "scan_hint": "dan arahkan kamera ke QR di atas.", "free_hint": "untuk semua — donasi", "not_required": "tidak wajib", "sidebar_code_hint": "Masukkan kode pada kolom", "portal": "Portal Pelanggan", "tagline": "Donasi sukarela untuk pengembangan aplikasi open source (ISC)", "step1": "Buka m-Banking (BCA, Mandiri, BRI, BNI) atau e-Wallet (GoPay, OVO, DANA, ShopeePay, LinkAja).", "step2_pre": "Pilih menu Scan QRIS", "unique_code": "Kode Unik: +" }, "thermal": { "paid": "*** LUNAS ***", "print_receipt": "Cetak Struk", "discount": "Diskon:", "cust_id": "ID Pelg:", "name": "Nama:", "invoice_no": "No. Faktur:", "phone": "No. HP:", "package": "Paket:", "period": "Periode:", "officer": "Petugas:", "receipt_title": "STRUK BUKTI PEMBAYARAN", "receipt_note": "Simpan struk ini sebagai bukti pembayaran yang sah.", "invoice_prefix": "Struk Thermal #INV-", "total_payment": "TOTAL PEMBAYARAN", "contact": "Telp/WA:", "thanks": "Terima Kasih atas Pembayaran Anda!", "size58": "Thermal 58mm", "size80": "Thermal 80mm", "time": "Waktu:" }, "auth": { "username_ph": "Masukkan username", "password_ph": "Masukkan password", "password": "Password", "tech_username": "Username Teknisi" } }