{
  "levels": {
    "low": {
      "label": "OK",
      "verb": "Sistem stabil",
      "hint": "Jaga perlindungan harian"
    },
    "elevated": {
      "label": "Tinggi",
      "verb": "Keanehan terlihat",
      "hint": "Beralih ke hardened dan perhatikan IP yang mencurigakan"
    },
    "under_attack": {
      "label": "Sedang diserang",
      "verb": "Kemungkinan sedang diserang",
      "hint": "Terapkan preset yang sedang diserang + larangan massal"
    },
    "critical": {
      "label": "Kritis",
      "verb": "Ancaman parah",
      "hint": "Pertimbangkan keadaan darurat; pastikan Anda masuk daftar putih"
    }
  },
  "presetsWhen": {
    "daily": "Sehari-hari",
    "hardened": "Pindai / kasar",
    "under_attack": "L7 banjir",
    "emergency": "Pilihan terakhir"
  },
  "note": {
    "notApplied": "Tidak diterapkan pada host (memerlukan root + YSK_EXECUTE=1) — disimpan ke pengaturan panel",
    "nginxWritten": "Menulis file panel batas kecepatan Nginx",
    "f2bWritten": "Menulis pengaturan panel fail2ban",
    "hintDropped": "Petunjuk perlindungan internal dihilangkan",
    "nginxLimits": "Akan menulis cuplikan batas kecepatan Nginx"
  },
  "rel": {
    "justNow": "Baru saja",
    "minutesAgo": "{{n}} menit yang lalu",
    "hoursAgo": "{{n}} jam yang lalu"
  },
  "apiUnreachable": "Tidak dapat menjangkau API (proksi web/backend mungkin tidak aktif)",
  "geoipLoadFailed": "Gagal memuat GeoIP",
  "loadFailed": "Gagal memuat",
  "previewDone": "Pratinjau selesai (tidak tertulis)",
  "presetApplied": "Prasetel perlindungan diterapkan",
  "manualBan": "Larangan manual",
  "banSent": "Larangan dikirim untuk {{ip}}",
  "quickSelectBan": "Larangan pilih cepat",
  "bulkBan": "Larangan massal {{count}}",
  "autoBanStatus": "Larangan otomatis: {{onOff}} · {{mode}} · {{method}}",
  "autoBanUpdated": "Larangan otomatis diperbarui",
  "automationMaster": "Ahli otomasi: {{onOff}}",
  "autoPresetStatus": "Prasetel otomatis: {{onOff}}",
  "autoBanAutomation": "Larangan otomatis: {{onOff}} ({{mode}})",
  "automationSaved": "Pengaturan otomatisasi disimpan",
  "statFirewall": "tembok api",
  "statSuspects": "Tersangka IP",
  "statSuspectsSplit": "{{actionable}} dapat ditindaklanjuti / {{total}} terdaftar",
  "suspectActionableCount": "IP yang dapat ditindaklanjuti {{count}}",
  "scoreBasisHint": "Skor ancaman menggunakan firewall, volume larangan fail2ban, dan sinyal tingkat permintaan — tidak dihitung sama dengan daftar tersangka intel.",
  "statAutoBan": "Larangan otomatis",
  "statApply": "Sistem berlaku",
  "statActiveBans": "Larangan aktif",
  "statPreset": "Prasetel",
  "threatPill": "Ancaman {{label}} · skor {{score}}",
  "reprobed": "Diselidiki ulang",
  "loadingStatus": "Memuat status perlindungan…",
  "tabs": {
    "command": "Tanggapan",
    "automation": "Otomatisasi",
    "bans": "Larangan",
    "geo": "akses IP",
    "stack": "Tumpukan",
    "intel": "Intel",
    "about": "Tentang"
  },
  "reapply": "Melamar lagi",
  "nginxLimits": "Batas kecepatan Nginx",
  "notWritten": "Tidak tertulis",
  "modeValue": {
    "normal": "Normal",
    "degraded": "Terdegradasi",
    "ddos-protection": "Perlindungan DDoS",
    "offline": "Luring"
  },
  "mode": "Mode",
  "controlPlane": "Pesawat kendali",
  "canApply": "Bisa melamar",
  "needRoot": "Perlu akar",
  "writeOnly": "Tulis file saja",
  "autoRunning": "Berlari · setiap {{sec}}s · larangan pada jam ini {{n}}",
  "autoOffManual": "Mati — hanya manual",
  "lastTick": "· terakhir {{t}}",
  "nextTick": "· selanjutnya {{t}}",
  "on": "Pada",
  "off": "Mati",
  "open": "Membuka",
  "ranAutomationTick": "Jalankan satu centang otomatisasi",
  "escalateHardened": "Mengeras ≥ skor",
  "escalateAttack": "Sedang diserang ≥ skor",
  "deescalateDaily": "Kembali ke <skor harian",
  "zeroOff": "Diskon 0",
  "holdAfterEscalate": "Tunggu minimal setelah eskalasi",
  "min5": "5 menit",
  "min15": "15 menit",
  "min30": "30 menit",
  "hour1": "1 jam",
  "hour2": "2 jam",
  "hour6": "6 jam",
  "presetOrCustom": "Prasetel/kustom",
  "autoBanMode": "Mode larangan otomatis",
  "soft": "Lembut",
  "normal": "Normal",
  "aggressive": "Agresif",
  "custom": "Kebiasaan",
  "method": "Metode",
  "banMethod": "Metode larangan",
  "both": "Keduanya",
  "scoreGte": "Skor ≥",
  "hitsGte": "Permintaan hit ≥",
  "hits429Gte": "429 hit terkait ≥",
  "scanHitsGte": "Jalur pemindaian mencapai ≥",
  "cooldown": "Pendinginan",
  "maxPerHour": "Maks per jam",
  "scanInterval": "Interval pemindaian",
  "schedulerDefault": "penjadwal default 120 detik",
  "collapse": "Runtuh",
  "expand": "Memperluas",
  "step": "Melangkah",
  "mechanism": "Mekanisme",
  "youCanTune": "Anda bisa menyetel",
  "probe": "Menguji",
  "probeSignals": "WAN / tingkat kebutuhan / TCP / f2b / UFW",
  "escalateThreshold": "Tingkatkan ambang batas",
  "emergency": "Keadaan darurat",
  "neverAuto": "Tidak pernah otomatis",
  "manualEmergency": "DARURAT Manual",
  "signalNetworkDown": "WAN turun",
  "signalHighReq": "Tingkat permintaan yang tinggi",
  "signalDdos": "heuristik DDoS",
  "signalTcp": "koneksi TCP",
  "signalUfwOff": "UFW mati",
  "signalF2bBans": "jumlah larangan fail2ban",
  "weightHint": "{{label}} berat 0–3",
  "detected": "(terdeteksi)",
  "notSet": "(tidak disetel)",
  "zonesComma": "Zona (dipisahkan koma)",
  "underAttackRequested": "Di bawah Serangan diminta",
  "underAttackCleared": "Hapus UA yang diminta",
  "autoBanOpen": "Aktif · {{mode}} · jam ini {{n}}/{{max}}",
  "autoBanClosed": "Mati — hanya manual/daftar",
  "pausedNoExecute": "· dijeda (tidak ada EXECUTE)",
  "circuitOpen": "· sirkuit terbuka",
  "autoBanModeLabel": "Mode larangan otomatis",
  "scanned": "Dipindai",
  "bulkOps": "Tindakan massal",
  "fromAccessLog": "Dari log akses · larangan sekali klik atau massal",
  "noSuspectIps": "Tidak ada IP yang mencurigakan untuk saat ini",
  "noSuspectDesc": "Muncul ketika lalu lintas scan/429 terlihat. Perluas untuk larangan manual.",
  "whitelistPlus": "Daftar Putih + {{ip}}",
  "whitelistAdded": "Ditambahkan ke daftar putih",
  "activeBansTitle": "Larangan aktif ({{count}})",
  "activeBansDesc": "Agregat perlindungan · batalkan pemblokiran melalui API pertahanan (sama seperti klien fail2ban)",
  "source": "Sumber",
  "unbanned": "Tidak dilarang",
  "noBans": "Tidak ada larangan",
  "noBansDesc": "Larangan ditampilkan di sini",
  "collapseQuickAdd": "Ciutkan penambahan cepat",
  "quickAddOne": "Tambahkan satu dengan cepat",
  "removeItem": "Hapus {{w}}",
  "updated": "Diperbarui",
  "ipOrCidr": "IPv4/IPv6 atau CIDR",
  "autoBanWhitelistAdded": "Ditambahkan ke daftar putih larangan otomatis",
  "added": "Ditambahkan",
  "banIpPlaceholder": "IPv4 atau IPv6 untuk dilarang",
  "reason": "Alasan",
  "scanBrute": "Pindai / kasar",
  "noSignals": "Belum ada sinyal",
  "pressReprobe": "Tekan selidiki ulang",
  "points": "poin",
  "noTopIps": "Belum ada IP teratas",
  "topIpsAfterLog": "Ditampilkan setelah log ada",
  "noManagedVhost": "Tidak ada vhost yang dikelola",
  "afterPresetMarker": "Penerapan preset menyuntikkan penanda",
  "injected": "YSK_DEFENSE disuntikkan",
  "notInjected": "Tidak disuntik",
  "noEvents": "Belum ada acara",
  "eventsAfterOps": "Muncul setelah penerapan/larangan",
  "geoipUpdated": "GeoIP DB diperbarui",
  "dbReady": "DB siap",
  "stale": "Basi",
  "older7d": ">7 hari",
  "freshnessNa": "tidak ada",
  "freshnessMissing": "Tidak ada basis data",
  "freshnessStale": "Basi",
  "freshnessFresh": "Saat ini",
  "lastSuccess": "Kesuksesan terakhir",
  "downloaded": "Diunduh",
  "missing": "Hilang",
  "geoMode": "Mode akses geografis",
  "denyList": "Daftar tolak",
  "allowListHighRisk": "Izinkan daftar · risiko tinggi",
  "autoUpdateDb": "Perbarui DB secara otomatis",
  "countriesSelected": "Negara ({{n}} dipilih)",
  "searchCountry": "Cari nama Cina atau ISO",
  "countryPlaceholder": "Cina / CN",
  "regionsSelected": "Wilayah ({{n}} dipilih)",
  "regionsHint": "Dari negara terpilih; kustom CN-GD Oke",
  "pickCountryFirst": "Pilih negara pertama yang akan dipersempit daftarnya",
  "customRegion": "Kustom, mis. CN-GD",
  "regionPlaceholder": "Guangdong/CA/Tokyo",
  "continentsSelected": "Benua ({{n}} dipilih)",
  "continentsHint": "Benua opsional",
  "continentPlaceholder": "Asia / UE",
  "asnsSelected": "ASN Penyedia ({{n}} dipilih)",
  "asnsHint": "Awan/ISP; ASN kustom oke",
  "customAsn": "ASN khusus, mis. 13335",
  "asnPlaceholder": "Cloudflare / ISP",
  "cityExample": "misalnya CN|Shenzhen atau AS|Ashburn",
  "policySaved": "Kebijakan disimpan · negara {{c}} · wilayah {{r}} · ASN {{a}}",
  "ipPolicySaved": "Kebijakan akses IP disimpan",
  "nginxGeoWritten": "Menulis cuplikan geo nginx",
  "ipAddress": "alamat IP",
  "lookupPlaceholder": "IPv4 atau IPv6 untuk mencari",
  "wouldBlock": "Akan memblokir · {{reason}} · {{matched}}",
  "wouldAllow": "Izinkan · {{reason}}",
  "lookupDone": "Pencarian selesai",
  "item": "Bidang",
  "value": "Nilai",
  "country": "Negara",
  "region": "Wilayah",
  "city": "Kota",
  "continent": "Benua",
  "coords": "koordinat",
  "provider": "Penyedia",
  "policy": "Kebijakan",
  "block": "Memblokir",
  "allow": "Mengizinkan",
  "matched": "Cocok",
  "applyStricterTitle": "Terapkan preset yang lebih ketat?",
  "applyStricterDesc": "Dapat mengaktifkan larangan otomatis. Konfirmasikan IP Anda masuk daftar putih.",
  "confirmEmergencyTitle": "Konfirmasikan preset darurat",
  "confirmEmergencyDesc": "Darurat sangat membatasi tarif. Konfirmasikan daftar putih dan ketik DARURAT.",
  "confirmString": "Konfirmasikan string",
  "applyEmergency": "Terapkan darurat",
  "sectionPreset": "Preset",
  "sectionAutoPreset": "① Prasetel otomatis",
  "sectionAutoBan": "② Larangan otomatis",
  "unban": "Batalkan pelarangan",
  "ban": "Melarang",
  "banConfirmTitle": "Larangan {{ip}}?",
  "banConfirmMethod": "Metode: {{method}}",
  "banConfirmUntilUnban": "Tetap diblokir sampai Anda membatalkan pemblokirannya (atau masa berlaku fail2ban habis).",
  "banConfirmDesc": "IP ini akan diblokir di host. Konfirmasikan bahwa itu bukan panel atau alamat sesi saat ini.",
  "wlRemovedUndo": "Menghapus {{ip}} dari daftar yang diizinkan. Batalkan dalam waktu 5 detik.",
  "undo": "Membuka",
  "banSelectedConfirmTitle": "Larang {{count}} IP yang dipilih?",
  "banSelectedConfirmDesc": "Alamat berikut akan diblokir di host: {{ips}}",
  "save": "Menyimpan",
  "yes": "Ya",
  "no": "TIDAK",
  "oneClickSuggested": "Terapkan preset yang disarankan",
  "stackApply": "Terapkan tumpukan perlindungan (UFW, fail2ban, preset)",
  "stackApplyDone": "Tumpukan perlindungan diterapkan diminta",
  "stackApplyHint": "Ini mengaktifkan UFW dan menerapkan fail2ban ditambah preset yang disarankan. Konfirmasikan bahwa Anda tidak akan mengunci diri Anda di luar panel jarak jauh.",
  "viewPresets": "Lihat preset",
  "suspectIpsCount": "IP Tersangka {{count}}",
  "goBans": "Pergi ke larangan",
  "singleEntryPrefix": "Entri tunggal:",
  "singleEntryBody": " ",
  "emergencyNeverAuto": "darurat tidak pernah otomatis",
  "writeOnlyBanner": "Hanya tulis: penerapan sistem memerlukan EXECUTE=1 dan root.",
  "readiness": "Kesiapan",
  "goTo": "Membuka",
  "presetGuide": "",
  "active": "Aktif",
  "recommended": "Disarankan",
  "useCarefully": "Peringatan",
  "preview": "Pratinjau",
  "stackToolsSee": "Alat tumpukan di tab Tumpukan ·",
  "readinessCheck": "Pemeriksaan kesiapan",
  "automationMasterLabel": "Sakelar utama otomasi",
  "runOneTick": "Jalankan satu centang sekarang",
  "suggestEmergencyBanner": "Skor sangat tinggi — sistem menyarankan keadaan darurat tetapi tidak akan diterapkan secara otomatis. Konfirmasikan pada tab Respons.",
  "autoPresetDesc": "Beralih otomatis setiap hari/dikeraskan/diserang berdasarkan skor. Darurat tidak pernah otomatis.",
  "allowDeescalate": "Izinkan de-eskalasi otomatis",
  "autoBanThresholdHint": "ambang pengisian lembut/normal/agresif;",
  "sectionMechanism": "③ Cara kerjanya",
  "lastNotes": "Terakhir: {{notes}}",
  "sectionWeights": "④ Bobot sinyal (0–3)",
  "weightsDesc": "Bawaan 1;",
  "needCfToken": "Membutuhkan CF_API_TOKEN",
  "cfOnEscalate": ". Dapat memanggil API saat melakukan eskalasi ke serangan sedang atau penerapan manual.",
  "ufwOnlyCf": "Sedang diserang: UFW hanya mengizinkan rentang CF (+SSH)",
  "ufwOnlyCfHint": "Menyetel ulang UFW ke IP Cloudflare saja; membutuhkan hak perubahan sistem.",
  "saveZones": "Simpan zona",
  "uaNow": "Sedang Diserang sekarang",
  "uaClear": "Jelas (→ tinggi)",
  "stackRoleNote": "UFW dan fail2ban adalah halaman alat di bawah Perlindungan (bukan navigasi tingkat atas). Sidebar menyimpan halaman ini saja.",
  "fwUfwTitle": "Firewall UFW",
  "fwStats": "Kebijakan pelabuhan · DENY permanen · izinkan {{allow}} · tolak {{deny}}",
  "fwRulesProfiles": "Aturan & profil UFW",
  "f2bStats": "Catat larangan sementara · {{jails}} penjara · dilarang {{banned}}",
  "jailsWhitelistPolicy": "Penjara · daftar putih · kebijakan",
  "divisionTitle": "Pembagian kerja",
  "divisionUfw": "UFW = port mana yang terbuka, IP permanen ditolak",
  "divisionF2b": "fail2ban = larangan sementara setelah pemindaian log",
  "divisionDefense": "Halaman ini = orkestrasi serangan (preset rate + larangan otomatis + tersangka)",
  "autoBanLabel": "Larangan otomatis",
  "scanOnce": "Pindai sekali",
  "selectedIps": "{{count}} IP dipilih",
  "banSelected": "Larangan dipilih",
  "suspectIps": "Tersangka IP",
  "selectAll": "Pilih semua",
  "alreadyBanned": "Dilarang",
  "whitelist": "Daftar putih",
  "bansWorkflow": "Tanggapan: daftar tersangka → pelarangan/batalkan pelarangan. Kebijakan penjara, pengabaikan, siklus hidup layanan:",
  "f2bTool": "alat fail2ban",
  "noSecondJail": "(tidak ada editor penjara kedua di sini).",
  "autoBanWhitelistTitle": "Daftar putih larangan otomatis",
  "autoBanWhitelistDesc": "Pengecualian larangan otomatis perlindungan (sinkronisasi fail2ban abaikan",
  "ufwOff": "UFW (mati)",
  "ufwOffHint": "UFW tidak aktif — fail2ban adalah target yang dapat digunakan.",
  "whitelistSyncHint": "{{n}} entri panel · fail2ban abaikan sinkronisasi ip: {{sync}}",
  "whitelistSyncOn": "pada",
  "whitelistSyncOff": "mati (daftar mungkin berbeda)",
  "ignoreipWhitelist": "abaikan daftar putih",
  "notSetSuggestAdmin": "Belum disetel (tambahkan IP admin Anda)",
  "moreItems": "… {{n}} selengkapnya · lihat daftar putih fail2ban",
  "add": "Menambahkan",
  "manualBanTitle": "Larangan manual",
  "methodFollows": "Metode mengikuti pilihan di atas (fail2ban / UFW)",
  "preferSuspectList": "Biasanya daftar tersangka sudah cukup.",
  "threatSignals": "Sinyal ancaman",
  "scoreSource": "Sumber skor · bobot merdu",
  "accessAuthSample": "akses + sampel autentikasi",
  "fullLogsAt": "Log nginx/auth lengkap:",
  "logCenter": "Pusat pencatatan",
  "colScore": "Skor",
  "colHits": "Hit",
  "col429": "429",
  "topIpsTitle": "IP teratas",
  "hitsCount": "{{n}} hit",
  "sampleWindowHint": "Hitungan dari jendela sampel access + auth saat ini, bukan file log penuh.",
  "banShort": "Melarang",
  "vhostLimits": "Batas kecepatan Vhost",
  "eventStream": "Aliran acara",
  "eventKind": {
    "preset": "Prasetel",
    "auto_preset": "Prasetel otomatis",
    "cloudflare_ua": "awan suar",
    "ban": "Melarang",
    "unban": "Batalkan pelarangan"
  },
  "hours48": "48 jam",
  "geoipDb": "Basis data GeoIP",
  "refreshStatus": "Segarkan status",
  "updateDbNow": "Perbarui DB sekarang",
  "geoipSourceHint": "Menggunakan DB GeoIP lokal secara default; token info IP opsional.",
  "retry": "Mencoba kembali",
  "loadingGeoip": "Memuat status GeoIP…",
  "nextScheduledUpdate": "Pembaruan terjadwal berikutnya: {{at}}",
  "statusNotLoaded": "Status tidak dimuat",
  "load": "Memuat",
  "accessPolicy": "Kebijakan akses",
  "enable": "Memungkinkan",
  "freeGranularity": "Maksimum gratis: negara + wilayah + ASN; kota opsional (default nonaktif, akurasi lebih rendah). Penyedia = ASN. Daftar putih selalu dikecualikan. Klik chip untuk menghapus.",
  "allowListDanger": "Mode daftar yang diizinkan berisiko tinggi: IP publik yang tidak terdaftar (termasuk geografis yang tidak diketahui) diblokir. Pastikan IP admin ada dalam daftar putih larangan halaman.",
  "dailySchedule": "Jadwal harian",
  "cityPolicy": "Kebijakan kota (kepercayaan rendah · opsional)",
  "useCityAccess": "Gunakan kota untuk akses",
  "cityPolicyHint": "Akurasi kota DB gratis terbatas",
  "noCitiesYet": "Belum ada kota",
  "savePolicy": "Simpan kebijakan",
  "applyNginxSnippet": "Terapkan cuplikan Nginx",
  "nginxSnippetHint": "Pemblokiran HTTP memerlukan modul nginx geoip2.",
  "testIp": "Uji IP",
  "lookup": "Pencarian",
  "plusCountry": "+ negara {{v}}",
  "plusRegion": "+ wilayah {{v}}",
  "plusCity": "+ kota {{v}}",
  "lastTickPrefix": "· terakhir {{t}}",
  "nextTickPrefix": "· selanjutnya {{t}}",
  "cannotBanSelf": "Tidak bisa memblokir {{ip}} — ini host, IP login, atau ignoreip",
  "selfIp": "Tuan rumah ini",
  "selfHostIp": "IP tuan rumah",
  "selfLoginIp": "IP masuk Anda",
  "showZeroScore": "Tampilkan skor 0",
  "hideZeroScore": "Sembunyikan skor 0",
  "geoDraftOnly": "Kebijakan mati — Simpan hanya menulis draf. Nginx tidak menegakkan sampai Anda mengaktifkannya.",
  "geoNeedDb": "Basis data GeoIP tidak ada — perbarui file MMDB terlebih dahulu",
  "uaNeedZones": "Tetapkan zona Cloudflare terlebih dahulu",
  "selectAllCountriesWarn": "Pilih semua negara di daftar blokir? Ini bisa mengunci host ini dan negara login Anda.",
  "badgeRecommendPreset": "Preset lebih kuat disarankan untuk ancaman saat ini",
  "badgeAutomationOn": "Otomatisasi aktif",
  "badgeBanCount": "Blokir aktif",
  "badgeGeoOn": "Kebijakan akses Geo aktif",
  "badgeGeoNotReady": "Basis data GeoIP belum siap",
  "badgeIntelSignals": "Sinyal yang saat ini menambah skor",
  "signalActive": "Aktif",
  "signalInactive": "Tidak aktif",
  "signalJails": "{{n}} jail",
  "dbReadyHint": "Berkas MMDB ada",
  "dbNotReadyHint": "Unduh dulu basis data GeoIP",
  "staleHint": "Apakah pembaruan berhasil terakhir lebih dari 7 hari",
  "draftBadge": "Draf",
  "banIsSelf": "IP ini cocok dengan sumber panel saat ini atau host ini.",
  "banNotSelf": "IP ini bukan sumber panel saat ini.",
  "geoSourceLocal": "Perpustakaan GeoIP lokal (sapis + DB-IP)",
  "nginxPreviewHint": "Cuplikan Nginx yang akan ditulis oleh preset ini (hanya pratinjau):"
}
