diff --git a/locales/en.json b/locales/en.json index 960df82..208bc92 100644 --- a/locales/en.json +++ b/locales/en.json @@ -1732,7 +1732,56 @@ "admin_key": "Admin API Key (For external access)", "wa_enable": "Enable WhatsApp Bot", "wa_numbers": "Admin WA Numbers (Comma-separated)", - "wa_delay": "Delay Between Broadcast Messages (seconds)" + "wa_delay": "Delay Between Broadcast Messages (seconds)", + "logo_title": "Application Logo", + "logo_portal": "Customer Portal & Login Logo", + "logo_invoice": "PDF & Invoice Logo", + "logo_pwa": "PWA Logo (App Icon)", + "hero": "Landing Page Hero Image", + "speed_title": "Speed Test & Uptime", + "speed_provider": "Speed Test Provider (Quick Fill)", + "speed_provider_ph": "-- Select to auto-fill URL & mode (optional) --", + "sp_librespeed": "LibreSpeed Self-Hosted (internal, embed)", + "sp_openspeed": "OpenSpeedTest Self-Hosted (internal, embed)", + "sp_ookla": "Ookla Speedtest Custom (external, embed)", + "sp_cloudflare": "Cloudflare Speed Test (external, new tab)", + "sp_googlefiber": "Google Fiber Speed Test (external, new tab)", + "sp_speedtestnet": "Speedtest.net / Ookla (external, new tab)", + "speed_link": "Speed Test Link", + "speed_mode": "Display Mode on Customer Dashboard", + "sp_mode_iframe": "Embed / iframe — for providers that allow it", + "sp_mode_tab": "New Tab — for providers that block iframes", + "repo_link": "Project Repository Link (GitHub)", + "uptime_link": "Website Uptime Link (Status)", + "qris_status": "Static QRIS Status", + "qris_url": "QRIS Static QR URL", + "qris_payload": "QRIS Static Payload (String)", + "qris_upload": "Upload QRIS Image (optional)", + "bank_status": "Bank Transfer Status", + "ewallet_status": "E-Wallet Status", + "bank_list": "Bank Accounts (1 per line: Bank|Number|Holder Name)", + "ewallet_list": "E-Wallets (1 per line: Name|Number|Holder Name)", + "wh_url": "1) Webhook URL (POST method)", + "wh_secret": "2) Secret Token (alternative header X-Webhook-Token)", + "wh_wa_notif": "WA Notification when Payment Not Matched", + "wh_wa_hint": "Send WA to admin whenever a payment is detected but not matched (to be matched manually by comparing notification time vs transfer proof).", + "wh_retention": "Webhook Notification Retention (Automation)", + "wh_retention_hint": "Webhook notifications older than this number of days are deleted automatically each day (04:45). Default 30 days.", + "wh_howto": "How to set up in the app (e.g. android-notification-forwarder / MacroDroid):", + "wh_li1": "Method POST, Content-Type application/json.", + "wh_li2": "API URL = the URL above (secret included), or the base URL + header X-Webhook-Token: <token>.", + "wh_li3": "Target Apps = bank/e-wallet app packages (e.g. com.gojek.gopay, OVO, DANA, Jenius).", + "wh_li4": "WhatsApp/Telegram notifications are automatically rejected so chats are not treated as payments.", + "wh_li5": "The amount in the notification must equal the invoice unique amount (amount + QRIS unique code).", + "wh_test": "Test Webhook", + "pay_on_self": "Self-Service (static QRIS + manual/MacroDroid)", + "pay_on_gateway": "Gateway (Mayar)", + "pay_mode_hint": "Mode 1 = Gateway (Mayar only). Mode 2 = static QRIS + manual verification.", + "mayar_key": "Mayar API Key", + "mayar_webhook": "Mayar Webhook (Mode 1 — Gateway)", + "save": "Save Settings", + "pay_mode": "Mode", + "qris_note": "Note" } }, "tech": { diff --git a/locales/id.json b/locales/id.json index 11a615a..69d9efe 100644 --- a/locales/id.json +++ b/locales/id.json @@ -1733,7 +1733,56 @@ "admin_key": "Admin API Key (Untuk akses luar)", "wa_enable": "Enable WhatsApp Bot", "wa_numbers": "Nomor Admin WA (Pisahkan dengan koma)", - "wa_delay": "Jeda Antar Pesan Broadcast (Detik)" + "wa_delay": "Jeda Antar Pesan Broadcast (Detik)", + "logo_title": "Logo Aplikasi", + "logo_portal": "Logo Portal Pelanggan & Login", + "logo_invoice": "Logo PDF & Invoice", + "logo_pwa": "Logo PWA (Ikon Aplikasi)", + "hero": "Foto Hero Landing Page", + "speed_title": "Speed Test & Uptime", + "speed_provider": "Provider Speed Test (Isi Cepat)", + "speed_provider_ph": "-- Pilih untuk isi URL & mode otomatis (opsional) --", + "sp_librespeed": "LibreSpeed Self-Hosted (internal, embed)", + "sp_openspeed": "OpenSpeedTest Self-Hosted (internal, embed)", + "sp_ookla": "Ookla Speedtest Custom (eksternal, embed)", + "sp_cloudflare": "Cloudflare Speed Test (eksternal, buka tab)", + "sp_googlefiber": "Google Fiber Speed Test (eksternal, buka tab)", + "sp_speedtestnet": "Speedtest.net / Ookla (eksternal, buka tab)", + "speed_link": "Link Speed Test", + "speed_mode": "Mode Tampilan di Dashboard Pelanggan", + "sp_mode_iframe": "Embed / iframe — untuk provider yang mengizinkan", + "sp_mode_tab": "Buka Tab Baru — untuk provider yang memblokir iframe", + "repo_link": "Link Repositori Proyek (GitHub)", + "uptime_link": "Link Uptime Website (Status)", + "qris_status": "Status QRIS Statis", + "qris_url": "QRIS Static QR URL", + "qris_payload": "QRIS Static Payload (String)", + "qris_upload": "Upload Gambar QRIS (opsional)", + "bank_status": "Status Transfer Bank", + "ewallet_status": "Status E-Wallet", + "bank_list": "Rekening Bank (1 per baris: Bank|Nomor|Atas Nama)", + "ewallet_list": "E-Wallet (1 per baris: Nama|Nomor|Atas Nama)", + "wh_url": "1) URL Webhook (method POST)", + "wh_secret": "2) Secret Token (alternatif header X-Webhook-Token)", + "wh_wa_notif": "Notifikasi WA saat Pembayaran Belum Cocok", + "wh_wa_hint": "Kirim WA ke admin tiap ada pembayaran terdeteksi tapi belum cocok (untuk dicocokkan manual via jam notif vs bukti transfer).", + "wh_retention": "Retensi Notifikasi Webhook (Otomasi)", + "wh_retention_hint": "Notif webhook yang lebih tua dari jumlah hari ini dihapus otomatis tiap hari (04:45). Default 30 hari.", + "wh_howto": "Cara memasang di app (mis. android-notification-forwarder / MacroDroid):", + "wh_li1": "Method POST, Content-Type application/json.", + "wh_li2": "API URL = URL di atas (secret sudah termasuk), atau URL dasar + header X-Webhook-Token: <token>.", + "wh_li3": "Target Apps = package aplikasi bank/e-wallet (mis. com.gojek.gopay, OVO, DANA, Jenius).", + "wh_li4": "Notifikasi WhatsApp/Telegram otomatis ditolak agar chat tak dianggap pembayaran.", + "wh_li5": "Nominal di notifikasi harus sama dengan nominal unik tagihan (jumlah + kode unik QRIS).", + "wh_test": "Tes Webhook", + "pay_on_self": "Self-Service (QRIS statis + manual/MacroDroid)", + "pay_on_gateway": "Gateway (Mayar)", + "pay_mode_hint": "Mode 1 = Gateway (hanya Mayar). Mode 2 = QRIS statis + verifikasi manual.", + "mayar_key": "Mayar API Key", + "mayar_webhook": "Webhook Mayar (Mode 1 — Gateway)", + "save": "Simpan Pengaturan", + "pay_mode": "Mode", + "qris_note": "Catatan" } }, "tech": { diff --git a/views/admin/settings.ejs b/views/admin/settings.ejs index 2275295..44e805e 100644 --- a/views/admin/settings.ejs +++ b/views/admin/settings.ejs @@ -457,11 +457,11 @@
/issues/new/choose), Wiki, dan Lisensi di landing page.