/** * The id (Indonesian) dictionary for the betterSidebar namespace. * * Mirrors the key set of `zh` in `locales.ts`. The sidebar's `t()` * consults this dict when `attachBetterLocale(store)` has been called * with an active better-locale store whose `active` is `'id'`; absent * that, the existing zh/en chain runs unchanged. * * Translation conventions: * - Git vocabulary stays close to the English form (stage, commit, branch, fork). * - Settings labels mirror the zh cadence (… perilaku / … cara). * - Placeholders keep {name} verbatim (interpolation runs after lookup). * - English brand names (VS Code, Cursor, Zed, SSH) stay as-is. */ export const id: Record = { files: 'Berkas', guideDescFiles: 'Telusuri pohon berkas workspace; klik untuk pratinjau atau edit', guideDescGit: 'Perubahan Git dan perubahan berkas sesi ini dalam satu tab', guideDescSubagent: 'Topologi subagent dan tugas latar belakang, langsung', guideDescSidechat: 'Utas lanjutan independen yang mewarisi konteks sesi ini', guideDescTerminal: 'Shell sungguhan (xterm + pty), bisa menyambung ulang', guideDescBrowser: 'Peramban tertanam, bisa mengambil alih tautan chat', changesSessionEmpty: 'Belum ada operasi file di sesi ini', changesRead: 'Baca', changesMdReading: 'Baca', changesHtmlRender: "Render", changesHtmlRaw: "Sumber", changesPdfRender: "Render", changesPdfRaw: "Sumber", changesMdRaw: 'Mentah', changesWrite: 'Tulis', changesEdit: 'Edit', changesRunning: 'berjalan', changesError: 'error', changesFold: '{count} baris… klik untuk meluaskan', changesFoldLoading: 'Meluaskan…', changesFoldUnavailable: 'Konteks tidak tersedia', changesContext: 'konteks', changesPriorUnknown: 'Konten sebelum perubahan berada di luar jendela; ditampilkan sebagai sepenuhnya baru', explorer: 'Explorer', terminal: 'Terminal', editor: 'Editor', editorExplorer: 'Perilaku buka berkas', editorExplorerDesc: 'Mengontrol cara berkas dibuka', editorExplorerMerged: 'Gabung', editorExplorerMergedDesc: 'Berkas beralih di tempat di jendela yang sama; jendela baru memulai dengan pohon terbuka', editorExplorerSplit: 'Terpisah', editorExplorerSplitDesc: 'Jendela tanpa path adalah explorer mandiri (pohon saja); setiap berkas membuka jendelanya sendiri (pohon terpasang, tertutup secara default)', editorTreeToggle: 'Panel pohon berkas', editorPathPlaceholder: 'Path berkas (relatif terhadap direktori sesi atau absolut), Enter untuk membuka', editorSearchPlaceholder: 'Cari berkas berdasarkan nama…', editorSearchNoResults: 'Tidak ada berkas yang cocok', editorSearchTruncated: 'Terlalu banyak hasil — menampilkan daftar parsial', editorEmptyHint: 'Pilih berkas dari panel pohon atau input path di atas untuk mulai pratinjau', openFileNewTab: 'Buka di Tab Baru', openFileSide: 'Buka di Samping', openWithMenu: 'Buka dengan', openWithSshSuffix: ' (SSH)', pinOpenWith: 'Sematkan ke menu', unpinOpenWith: 'Lepas sematan', openWithExplorer: 'File Manager', openWithVscode: 'VS Code', openWithCursor: 'Cursor', openWithZed: 'Zed', openWithSettingsSshTitle: 'Host remote SSH', openWithSettingsSshDesc: 'Kosong = ruang kerja lokal; dengan user@host atau alias SSH, opener VSCode-family beralih ke protokol vscode-remote/ssh-remote dan File Manager / Zed / editor kustom non-VSCode-family disembunyikan dari menu', openWithSettingsSshPlaceholder: 'user@host atau alias SSH', openWithSettingsCustomTitle: 'Editor kustom', openWithSettingsCustomDesc: 'Nama + template URL (placeholder {path}) + flag VSCode-family; dalam mode remote hanya editor VSCode-family yang dapat membuka path remote', openWithSettingsAdd: 'Tambah', openWithSettingsName: 'Nama', openWithSettingsTemplate: 'mis. cursor://file/{path}', openWithSettingsFamily: 'VSCode-family', openWithSettingsFamilyDesc: 'Editor ini menggunakan dialek URL VSCode (mendukung pembukaan remote SSH)', openWithSettingsRemove: 'Hapus', openWithSettingsInvalidHint: 'Editor dengan nama hilang atau template tanpa {path} / scheme:// tidak ditampilkan di menu', newTab: 'Tab baru', openExplorer: 'Explorer', brokenSymlink: 'Symlink rusak', openGit: 'Panel Git', newTerminal: 'Terminal baru', terminalLimit: 'Batas terminal tercapai (3)', close: 'Tutup', closeOtherTabs: 'Tutup Tab Lain', closeLeftTabs: 'Tutup Tab di Kiri', closeRightTabs: 'Tutup Tab di Kanan', floatDropHint: 'Lepaskan untuk membuka di jendela bebas', dockToSidebar: 'Kembali ke bilah samping', pinTerminal: 'Sematkan Terminal', pinAgentTerminal: 'Sematkan Terminal Agent', pinToWorkspace: 'Sematkan ke Workspace', pinToGlobal: 'Sematkan Global', unpinTerminal: 'Lepas Sematan', pinnedTerminalTooltip: '{kind} · {scope} · {cwd}', pinnedTerminalKindUi: 'Terminal UI', pinnedTerminalKindAgent: 'Terminal Agent', pinnedTerminalScopeWorkspace: 'Disematkan ke workspace', pinnedTerminalScopeGlobal: 'Disematkan global', pinnedRailLabel: 'Terminal Tersemat', closePinnedTerminal: 'Tutup Terminal', collapseBottomPanel: 'Lipat panel bawah', expandBottomPanel: 'Bentangkan panel bawah', terminalError: 'Koneksi terminal gagal', terminalConnectFailed: 'Terminal gagal terhubung berulang kali', terminalRetry: 'Coba lagi', terminalWaitBanner: 'Agen menunggu {needle}', terminalSkipWait: 'Lewati penungguan', terminalDepsFailed: 'Dependensi terminal node-pty gagal dimuat', terminalDepsHint: 'Jalankan perintah di bawah ini di terminal atau cmd pada mesin DSH untuk memperbaikinya, lalu coba lagi (node-pty tetap sinkron dengan versi inti DSH):', terminalDepsProfile: ' (profil terdeteksi: {profile})', terminalShellNotFound: 'Shell yang dikonfigurasi tidak ditemukan: {name} — periksa path shell di Pengaturan → Side card → Terminal', preview: 'Pratinjau', toc: 'Daftar Isi', edit: 'Edit', mermaidError: 'Render Mermaid gagal', mermaidZoomIn: 'Perbesar', mermaidZoomOut: 'Perkecil', mermaidZoomReset: 'Reset', mermaidZoomHint: 'Gulir untuk zoom · seret untuk geser · Esc untuk tutup', refresh: 'Segarkan', showInFolder: 'Tampilkan di folder', refreshUnsavedConfirm: 'File berubah di disk. Menyegarkan akan membuang edit yang belum disimpan. Lanjutkan?', save: 'Simpan', saved: 'Tersimpan', unsaved: 'Belum disimpan', saveFailed: 'Gagal menyimpan', truncation: 'Berkas terlalu besar — menampilkan 512KB pertama', binary: 'Berkas biner, pratinjau tidak tersedia', loading: 'Memuat…', error: 'Gagal memuat', retry: 'Coba lagi', splitLeft: 'Bagi ke kiri', splitRight: 'Bagi ke kanan', splitUp: 'Bagi ke atas', splitDown: 'Bagi ke bawah', notRepo: 'Direktori ini bukan repositori git', noChanges: 'Tidak ada perubahan', statusTruncated: 'Terlalu banyak perubahan; hanya 2000 entri pertama yang ditampilkan', stage: 'Stage', unstage: 'Unstage', stageAll: 'Stage semua', unstageAll: 'Unstage semua', commitPlaceholder: 'Pesan commit (Ctrl+Enter)', commit: 'Commit', commitError: 'Commit gagal', branch: 'Branch', worktree: 'Worktree', checkoutError: 'Beralih branch gagal', history: 'Riwayat', changes: 'Perubahan berkas', changesGitLens: 'Git', changesSessionLens: 'Sesi', changesFilterAll: 'Semua', changesFilterEmpty: 'Tidak ada operasi jenis ini', changesOpenDiffTab: 'Buka di tab diff terpisah', changesClosePreview: 'Tutup pratinjau', changesResizePreview: 'Ubah ukuran pratinjau', changesLoadError: 'Catatan berkas sesi sedang tidak tersedia', staged: 'Staged', unstaged: 'Unstaged', cancel: 'Batal', diffEmpty: 'Tidak ada perubahan teks', diffLoadError: 'Gagal memuat diff', diffBinary: 'Biner', diffAdded: 'Ditambahkan', diffDeleted: 'Dihapus', diffRenamed: 'Diubah nama', diffExpand: 'Bentangkan {count} baris lagi', diffCollapse: 'Lipat', discard: 'Buang perubahan', discardTitle: 'Buang perubahan', discardDesc: 'Ini membuang perubahan worktree "{path}" (tidak dapat dipulihkan).', viewCommitDiff: 'Lihat diff commit', copyShortHash: 'Salin hash pendek', copyFullHash: 'Salin hash lengkap', copySubject: 'Salin subjek', revertCommit: 'Revert commit', revertTitle: 'Revert commit', revertDesc: 'Membuat commit baru pada branch saat ini yang membalikkan "{subject}".', cherryPickCommit: 'Cherry-pick commit', cherryPickTitle: 'Cherry-pick commit', cherryPickDesc: 'Menerapkan perubahan dari "{subject}" ke branch saat ini.', timeJustNow: 'baru saja', timeMinutesAgo: '{n} mnt lalu', timeHoursAgo: '{n} j lalu', timeYesterday: 'kemarin', loadMore: 'Muat lebih banyak', historyLoadError: 'Gagal memuat lebih banyak riwayat', produced: 'Dihasilkan', producedOpen: 'Buka di sidebar', disconnected: 'Terminal terputus, menyambung ulang…', exited: 'Proses terminal keluar', noSession: 'Pilih obrolan untuk menggunakan sidebar', pluginNotLoaded: 'Plugin tidak dimuat; tab tidak tersedia untuk sementara:', hiddenFiles: 'Berkas tersembunyi', parent: 'Direktori induk', copied: 'Tersalin', copy: 'Salin', newFile: 'Berkas baru', openEditor: 'Buka editor', gitDetail: 'Lihat detail perubahan', referenceFile: '@berkas', addToConversation: 'Tambahkan ke obrolan', copyRelative: 'Salin path relatif', copyAbsolute: 'Salin path absolut', rename: 'Ganti nama', renameInvalid: 'Nama tidak boleh kosong atau mengandung pemisah jalur.', delete: 'Hapus', deleteTitle: 'Hapus "{name}"?', deleteDescFile: 'Ini menghapus file secara permanen. Tidak dapat dibatalkan.', deleteDescDir: 'Ini menghapus direktori dan seluruh isinya secara permanen. Tidak dapat dibatalkan.', dismiss: 'Tutup', download: 'Unduh', uploadFiles: 'Unggah berkas', uploadFolder: 'Unggah folder', uploadHere: 'Unggah di sini', uploadDropHint: 'Jatuhkan berkas/folder di sini untuk mengunggah', uploadDropChat: 'Jatuhkan ke area obrolan: tambahkan gambar ke obrolan', uploadTo: 'Unggah ke {dir}', uploadingTo: 'Mengunggah ke {dir}…', uploadProgress: 'Mengunggah {done}/{total}: {name}', uploadDone: 'Diunggah {count} berkas', uploadFailed: 'Unggahan gagal: {error}', uploadFailedUnknown: 'Galat tak dikenal', uploadTooLarge: 'Berkas terlalu besar (melebihi batas unggah)', uploadCancelled: 'Unggahan dibatalkan', settingsNav: 'Kartu samping', settingsIntro: 'Kelola apa yang ditampilkan kartu samping dan perilakunya', settingsPopupDesc: 'Konfigurasikan opsi terkait untuk {feature}', settingsDone: 'Selesai', settingsOpenToolsTitle: 'Suntik alat buka sidebar untuk model', settingsOpenToolsDesc: 'Saat diaktifkan, model dapat membuka file, folder, dan halaman HTTP(S) di sidebar melalui alat sidebar_open (nonaktif secara default)', settingsTitleBarTitle: 'Mode kompatibilitas posisi', settingsTitleBarDesc: 'Pilih skema kompatibilitas title-bar: auto-detect (default, konservatif) / Web resmi DSH / shell desktop yang dikenal / kustom (jarak geser + CSS kustom)', settingsTitleBarStripTitle: 'Jarak geser', settingsTitleBarStripDesc: 'Tinggi strip title-bar: seberapa jauh tombol sidebar dan konten bergeser ke bawah dalam px (0–120, default 40; berlaku di bawah skema kustom)', settingsSchemeAutoTitle: 'Auto-detect', settingsSchemeAutoDesc: 'Konservatif: hanya API Window Controls Overlay standar yang berkontribusi (tinggi caption-overlay nyata); lingkungan web polos tidak dimodifikasi', settingsSchemeWebTitle: 'Web resmi DSH', settingsSchemeWebDesc: 'Deklarasikan secara eksplisit UI web resmi: tanpa adaptasi sama sekali (bahkan geometri WCO standar tidak berlaku)', settingsSchemeCustomTitle: 'Kustom', settingsSchemeCustomDesc: 'Kendali penuh: injeksikan CSS kustom (dapat menimpa style bawaan) dan atur jarak geser title-bar', settingsSchemeDetectedSuffix: 'terdeteksi', settingsCustomCssTitle: 'CSS kustom', settingsCustomCssDesc: 'Style yang ditambahkan di akhir halaman (yang ditulis kemudian menang pada seri; gunakan !important untuk menimpa variabel inline yang ditulis JS)', settingsCustomCssPlaceholder: '/* mis. sediakan 36px untuk shell dengan title-bar yang digambar sendiri */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}', settingsSaveFailed: 'Gagal menyimpan', settingsConflict: 'Pengaturan diubah di jendela lain — silakan coba lagi', binaryNoPreview: 'Tipe berkas ini tidak dapat dipratinjau', downloadToView: 'Unduh untuk melihat', settingsSubagentTitle: 'Aktifkan otomatis halaman Tasks saat subagen muncul', settingsSubagentDesc: 'Aktifkan halaman Tasks saat obrolan saat ini membuat subagen baru; pada layar lebar, kartu samping juga dibentangkan; pada layar sempit, laci layar penuh tidak dipaksa terbuka; matikan untuk membukanya secara manual', settingsJobsTitle: 'Aktifkan otomatis halaman Tasks saat ada tugas latar baru', settingsJobsDesc: 'Aktifkan halaman Tasks setiap kali tugas latar baru muncul untuk obrolan saat ini (setiap tugas baru memicu aktivasi); pada layar lebar, kartu samping juga dibentangkan; pada layar sempit, laci layar penuh tidak dipaksa terbuka; matikan untuk membukanya secara manual', settingsToolsTitle: 'Suntik alat terminal untuk model', settingsToolsDesc: 'Saat diaktifkan, model dapat membuat dan mengendalikan terminal sidebar melalui 8 alat terminal_* (nonaktif secara default)', settingsFenceTitle: 'Pemeriksaan path workspace', settingsFenceDesc: 'Saat aktif, fitur berkas sidebar hanya menjangkau path di dalam workspace sesi (default); saat nonaktif, berkas di mana pun di host dapat diakses — skrip halaman memperoleh jangkauan yang sama selama itu', fenceErrorReason: 'Path ini berada di luar workspace sesi dan diblokir oleh pemeriksaan', fenceDisableAction: 'Matikan pemeriksaan workspace', settingsBottomTerminalTitle: 'Buka terminal otomatis saat panel bawah pertama kali dibentangkan', settingsBottomTerminalDesc: 'Saat panel bawah pertama kali dibentangkan dalam sesi, coba buka tab terminal baru di panel bawah (kuota terminal tetap berlaku; aktif secara default)', settingsFontFamilyTitle: 'Keluarga font terminal', settingsFontFamilyDesc: 'Keluarga font terminal kustom (stack CSS font-family seperti "JetBrains Mono", monospace; biarkan kosong untuk mengikuti font monospace tema)', settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace', settingsFontSizeTitle: 'Ukuran font terminal', settingsFontSizeDesc: 'Ukuran font terminal dalam px (9–32, default 13)', settingsFontSizeSuffix: 'px', settingsShellTitle: 'Path shell', settingsShellDesc: 'Shell yang dibangkitkan untuk terminal UI dan model (path absolut atau executable polos). Kosong mempertahankan urutan lama: config.shell yaml → $SHELL / login shell / powershell.exe Windows. Berlaku untuk terminal yang dibuka setelahnya', settingsShellPlaceholder: 'mis. /bin/zsh (kosong = auto)', settingsShellArgsTitle: 'Argumen shell', settingsShellArgsDesc: 'Argumen shell eksplisit, dipisah spasi; jika tidak kosong, sepenuhnya menggantikan default (kontrak yang sama dengan shellArgs yaml)', settingsShellArgsPlaceholder: 'mis. -l (kosong = default)', settingsTabsTitle: 'Konten sidebar', settingsViewersTitle: 'Pratinjau berkas', settingsGeneralTitle: 'Umum', settingsPopup: 'Pengaturan fitur', settingsViewerCatchAll: 'Catch-all: berkas apa pun', viewerImage: 'Gambar', viewerPdf: 'PDF', viewerMarkdown: 'Markdown', viewerCode: 'Kode', viewerBinary: 'Unduhan biner', viewerHtml: 'HTML', browser: 'Browser', browserPlaceholder: 'Masukkan URL, mis. example.com', browserGo: 'Buka', browserBack: 'Mundur', browserForward: 'Maju', browserStart: 'Masukkan URL untuk mulai menjelajah (mode sandbox)', browserBlockedScheme: 'Diblokir: hanya URL http/https yang diizinkan', browserBlockedLoopback: 'Diblokir: alamat lokal dan internal tidak dapat dijelajahi di sini', browserInvalid: 'URL tidak valid', browserNoSandboxWarning: 'Sandbox mati: halaman saat ini berjalan dengan hak penuh GUI (aktifkan kembali di pengaturan)', htmlNoSandboxWarning: 'Sandbox mati: HTML ini berjalan dengan hak penuh GUI (aktifkan kembali di pengaturan)', sandboxStatusOn: 'Mode sandbox: aktif · halaman tidak dapat mengakses data GUI atau berkas lokal; login dan cookie pihak ketiga mungkin tidak berfungsi', sandboxUnlock: 'Nonaktifkan sementara (tidak aman)', sandboxRestore: 'Pulihkan sandbox', settingsHtmlDefaultUnsafeTitle: 'Buka pratinjau HTML tanpa sandbox secara default (tidak aman)', settingsHtmlDefaultUnsafeDesc: 'Saat aktif, setiap pratinjau HTML yang baru dibuka dimulai dalam keadaan tanpa sandbox (asal yang sama dengan GUI — dapat membaca berkas sesi dan API internal); baris status masih menawarkan pemulihan sekali ketuk', settingsHtmlSandboxTitle: 'Nonaktifkan sandbox pratinjau HTML (tidak aman)', settingsHtmlSandboxDesc: 'Dengan sandbox mati, HTML yang dipratinjau berjalan dengan asal yang sama dengan GUI: dapat membaca berkas sesi, penyimpanan lokal, dan memanggil API internal. Hanya aktifkan untuk berkas yang sepenuhnya tepercaya', settingsBrowserSandboxTitle: 'Nonaktifkan sandbox browser (tidak aman)', settingsBrowserSandboxDesc: 'Dengan sandbox mati, situs yang dikunjungi berjalan dengan asal yang sama dengan GUI: dapat membaca data sesi dan menyamar sebagai sesi login Anda. Hanya aktifkan untuk situs yang sepenuhnya tepercaya', settingsBrowserLinksTitle: 'Buka tautan eksternal obrolan di sidebar', settingsBrowserLinksDesc: 'Saat aktif, mengeklik tautan eksternal di obrolan atau GUI membuka sidebar alih-alih jendela baru; HTTP dan HTTPS dikendalikan terpisah oleh sakelar di bawah; Ctrl/Cmd+klik selalu menembus', settingsBrowserHttpTitle: 'Buka halaman HTTP di sidebar', settingsBrowserHttpDesc: 'Saat aktif, mengeklik tautan eksternal HTTP di obrolan atau GUI membuka sidebar (halaman plugin yang mendeklarasikan urlTarget menang); Ctrl/Cmd+klik selalu menembus', settingsBrowserHttpsTitle: 'Buka halaman HTTPS di sidebar', settingsBrowserHttpsDesc: 'Saat aktif, mengeklik tautan eksternal HTTPS di obrolan atau GUI membuka sidebar. Nonaktif secara default: kebanyakan situs HTTPS menolak untuk disematkan, jadi browser sistem adalah default yang lebih mulus', settingsBrowserLoopbackTitle: 'Alamat lokal yang diizinkan', settingsBrowserLoopbackDesc: 'Daftar putih alamat loopback yang dipisahkan koma (mis. localhost:5174 atau 127.0.0.1:8080) yang dapat dikunjungi browser sidebar; kosong memblokir semua alamat lokal secara default. Sandbox tetap berlaku — halaman tidak dapat membaca data GUI', settingsBrowserLoopbackPlaceholder: 'mis. localhost:5174, 127.0.0.1:8080', browserOpenExternal: 'Buka di browser', browserEmbedBlocked: '{host} menolak untuk disematkan', browserEmbedBlockedDesc: 'Situs melarang ditampilkan di dalam halaman lain (X-Frame-Options / frame-ancestors), sehingga tidak dapat dimuat di sidebar. Buka langsung di browser Anda.', browserEmbedAnyway: 'Tetap muat', subagent: 'Tasks', openSubagent: 'Tasks', subagentMainAgent: 'Agen utama', subagentEmpty: 'Tidak ada subagen', subagentEmptyDesc: 'Subagen yang dibangkitkan di bawah agen utama akan muncul di sini', subagentRunning: 'Berjalan', subagentInactive: 'Menganggur', subagentModeOneShot: 'Sekali pakai', subagentModeContinuable: 'Dapat dilanjutkan', subagentCount: '{count} subagen', subagentCountRunning: '{count} subagen · {running} berjalan', subagentDiagCorrupt: 'Rusak', subagentDiagUnsupported: 'Tidak didukung', subagentDiagUnavailable: 'Tidak tersedia', subagentThinking: 'Berpikir…', sideChat: 'Side Chat (beta)', sideChatNew: 'Thread baru', sideChatUntitled: 'Thread baru', sideChatEmpty: 'Tidak ada obrolan samping', sideChatEmptyDesc: 'Setiap obrolan samping adalah tab sendiri di strip tab — mewarisi konteks sesi saat ini dan tidak pernah masuk ke obrolan utama', sideChatCreating: 'Membuat obrolan samping…', sideChatRetry: 'Coba lagi', sideChatThreads: 'Beralih thread / baru', sideChatSave: 'Simpan sebagai sesi baru', sideChatSaveTitle: 'Promosikan thread ini ke sesi tingkat atas dalam daftar sesi utama', sideChatSaved: 'Tersimpan sebagai sesi baru', sideChatNoTurn: 'Simpan tersedia setelah giliran pertama selesai', sideChatPendingDrop: 'Tindak lanjut yang belum terjawab terakhir tidak akan disertakan dalam sesi yang disimpan', sideChatFirstPlaceholder: 'Ajukan pertanyaan pertama — konteks diwarisi…', sideChatComposerPlaceholder: 'Ajukan tindak lanjut…', sideChatThinking: 'Mendalami…', sideChatThink: 'Berpikir', sideChatInjection: 'Konteks disuntik', sideChatSend: 'Kirim', sideChatCancel: 'Hentikan', sideChatCancelTitle: 'Batalkan giliran yang berjalan (pekerjaan antrean dipertahankan)', sideChatClose: 'Tutup thread', sideChatCloseTitle: 'Lepaskan agen thread (riwayat dipertahankan)', sideChatError: 'Kesalahan Side Chat: {message}', sideChatTurnUsage: 'Input {input} tok · Output {output} tok', sideChatBlockCollapse: 'Lipat', sideChatBlockCollapseAria: 'Lipat', sideChatBlockExpand: 'Perlihatkan {hidden} baris', sideChatBlockExpandAria: 'Perlihatkan {hidden} baris lagi', sideChatBlockSignal: 'Diakhiri sinyal: {signal}', sideChatBlockExitCode: 'Kode keluar {code}', sideChatBlockRunning: 'Berjalan', sideChatBlockFailed: 'Gagal', sideChatBlockDone: 'Selesai', sideChatBlockNoOutput: '(tanpa output)', sideChatBlockFiles: '{count} file', sideChatBlockWindow: '{shown} dari {total} baris', sideChatConnDisconnected: 'Koneksi terputus', sideChatConnReconnect: 'Sambungkan ulang', sideChatConnConnecting: 'Menyambung ulang…', sideChatConnRecovered: 'Koneksi dipulihkan', sideChatConnReconnectAction: 'Sambungkan ulang sekarang', sideChatConnRestartAction: 'Mulai ulang koneksi', jobs: 'Tugas latar', jobsCount: '{count} tugas latar', jobsCountRunning: '{count} tugas latar · {running} berjalan', jobStatusRunning: 'Berjalan', jobStatusStopping: 'Menghentikan', jobStatusCompleted: 'Selesai', jobStatusKilled: 'Dihentikan', jobStatusFailed: 'Gagal', jobDurationSeconds: '{seconds}d', jobDurationMinutes: '{minutes}m {seconds}d', jobDurationHours: '{hours}j {minutes}m', jobViewOutput: 'Lihat keluaran', jobHideOutput: 'Sembunyikan keluaran', jobNoOutput: 'Belum ada keluaran', jobNotReadYet: 'Menunggu model membaca tugas ini; keluarannya muncul di sini setelah model menjalankan job_output', jobOutputTruncated: 'Keluaran dipotong', jobOutputError: 'Gagal membaca keluaran', jobKill: 'Hentikan', jobKillConfirm: 'Klik lagi untuk mengonfirmasi penghentian', jobKillError: 'Penghentian gagal', addPluginsTabCard: 'Tambah plugin tab', addPluginsTabCardDesc: 'Daftarkan halaman sidebar baru', addPluginsViewerCard: 'Tambah plugin pratinjau', addPluginsViewerCardDesc: 'Daftarkan pratinjau tipe berkas', addPluginsTabDesc: 'Halaman sidebar (tab) dapat diperluas oleh plugin. Plugin mendaftar melalui layanan ctx.betterSidebar; klik Install menyalin perintah instalasi — tempel ke terminal tempat profil DSH Anda berada dan jalankan.', addPluginsViewerDesc: 'Pratinjau berkas dapat diperluas oleh plugin. Plugin mendaftar melalui layanan ctx.betterSidebar; klik Install menyalin perintah instalasi — tempel ke terminal tempat profil DSH Anda berada dan jalankan.', addPluginsBrowseMore: 'Jelajahi lebih banyak plugin di GitHub (topic: dsh-better-sidebar)', addPluginsSearch: 'Cari berdasarkan nama / deskripsi plugin…', addPluginsNoMatch: 'Tidak ada plugin yang cocok', addPluginsRecommended: 'Plugin yang direkomendasikan', addPluginsEmpty: 'Belum ada plugin yang dikurasi — publikasikan plugin Anda di bawah topik GitHub', openPlugin: 'Buka', copyInstall: 'Salin perintah instalasi', pluginOfficeDesc: 'Pratinjau Office-suite (.docx / .xlsx / .pptx) untuk editor better-sidebar, menjaga pustaka render Office yang berat tetap di luar bundle inti', pluginFlowglassDesc: 'Flowgraph sesi langsung dengan tiga lajur untuk pengguna, asisten, dan panggilan alat, plus grup paralel, cabang sub-agen, drill-down, dan status langsung; mendaftarkan tab Flowglass native saat better-sidebar terpasang dan mempertahankan laci mandirinya sebagai fallback', pluginGitForgeDesc: 'Tab Git Forge: pustaka akun GitHub/Gitea (dan forge lain) + pemberian izin per proyek + kebijakan push yang ditegakkan keras; token tetap di rahasia lokal (tidak pernah dalam konteks model); alat GitForge hanya-baca dan helper kredensial HTTPS agen', pluginGithubWorkbenchDesc: 'Tab GitHub Workbench: pohon repo remote + Issues / Pull requests / Actions dengan dukungan tulis penuh — buat Issue/PR, komentar, edit, tutup/buka ulang, merge squash·merge·rebase (konfirmasi kuat), jalankan ulang/batalkan CI; pengalih repo otomatis mencantumkan repo yang dapat diakses dan mencari repo publik; tanpa better-sidebar otomatis beralih ke panel kanan mandiri', pluginMdExportDesc: 'Menambahkan tombol "Ekspor" ke bilah alat Markdown di better-sidebar: merender .md saat ini menjadi HTML mandiri dalam satu klik (tabel/blok kode/diagram Mermaid inline, tata letak mengikuti tema pratinjau) dan menyimpannya di folder yang sama, atau mengekspor ke PDF lewat dialog cetak', pluginCodeNavDesc: 'Navigasi pratinjau kode: mengenali bahasa dari jenis berkas dan menyorot sintaks, kerangka simbol (filter kelas/metode/variabel + lompat sekali klik), serta pencarian dalam berkas (sorot semua kecocokan, sebelum/berikutnya, peka huruf besar-kecil) — mengambil alih pratinjau berkas kode di editor better-sidebar', pluginSuhuangScrollDesc: 'Menghubungkan Suhuang Scroll Runtime lokal ke pengaturan DSH dan better-sidebar untuk konfigurasi model, uji koneksi, dan kontrol penilaian berkelanjutan; memerlukan Suhuang Scroll Runtime dan dsh-better-sidebar', pluginBetterOverleafDesc: 'Tab Overleaf untuk better-sidebar: login langsung lewat peramban CDP (mendukung Chromium pihak ketiga), daftar/pergantian proyek, mirror git lokal di /overleaf/, sinkronisasi git dua arah dengan fallback API baca-saja, dan pratinjau berkas melalui workbench sidebar', pluginGitRemotesDesc: 'Tab Git Remotes: branch/upstream/ahead-behind, fetch (prune opsional), ff-only pull, dan push hanya setelah konfirmasi dalam tab. Tidak menggantikan tab stage/commit Git bawaan, dan tidak menawarkan force-push atau alat auto-push model', pluginSentinelDesc: 'Sistem bangun agen berbasis kondisi: sensor berkas/proses/port/http/perintah/webhook membangunkan sesi yang tidur saat kondisi terpicu; mendaftarkan tab "Sentinel" dengan tabel pengawasan server-wide', pluginServerDeckDesc: 'Dasbor kartu server: satu kartu per host menampilkan status online, OS, uptime, penggunaan CPU/memori/disk dan latensi; klik kartu untuk membuka terminal xterm.js interaktif; impor ~/.ssh/config sekali klik (alias hosting Git dilewati otomatis). Mendaftarkan tab 「Server」 native saat better-sidebar terpasang, jika tidak panel laci mandiri tetap digunakan', pluginSidebarQaDesc: 'Select-and-ask: Pilih teks obrolan → ajukan di panel kanan → sesi tindak lanjut khusus (❓追问) di ruang kerja yang sama; model no-thinking yang cepat mengompresi konteks utama dan menyuntiknya bersama kutipan, tanpa mengganggu obrolan utama. Tindak lanjut dapat bersarang, dilanjutkan, dan diarsipkan', pluginSidenoteDesc: 'Side chat ala Codex + anotasi seleksi: fork sesi saat ini menjadi panel samping persisten (diarsipkan hingga hilang dari daftar sesi, multi-instance, perintah /side, bertahan setelah reload, model mengikuti sesi utama); pilih teks assistant → badge bernomor + editor catatan → chip "N anotasi" yang ikut terkirim dengan pesan berikutnya, atau langsung bertanya di side chat', pluginSshTunnelDesc: 'Tab SSH Tunnel: inventaris multi-host + pemberian izin per proyek + rahasia lokal; alat SSHManager (exec/SFTP/strategi sesi); terminal interaktif pusat dan SFTP dua panel', pluginTurnReviewDesc: 'Gerbang manusia pada giliran yang baru selesai: Approve / Request changes per path dengan komentar opsional; path dikelompokkan berdasarkan sesi utama / subagen / tidak teratribusi; diff snapshot-vs-now inline sebelum Anda memutuskan. Tanpa fork, tanpa /rewind', pluginVideoPreviewDesc: 'Pratinjau video inline (.mp4/.webm/.mov/.mkv/.avi dll.) untuk editor better-sidebar, didukung oleh rute host /video khusus dengan dukungan HTTP Range (206) — scrubbing berfungsi dan berkas tidak dibatasi oleh mediaLimit 20MB', pluginDocsPanelDesc: 'Dokumen global di sidebar DSH: baca catatan Markdown Anda sendiri dari ruang kerja apa pun — daftar berkas, kerangka, buka di Chrome / VS Code, dan tombol salin; direktori docs dapat dikonfigurasi (default ~/.dsh/docs)', pluginEgoBrowserDesc: 'Browser agen untuk DeepSeek Harness: 32 alat ego_* menggerakkan Chromium sungguhan; tab «ego browser» native di bilah samping menampilkan langsung setiap halaman yang dikunjungi agen — Anda bisa mengklik, menyeret, dan mengetik untuk mengambil alih. Tab terdaftar otomatis jika better-sidebar terpasang; jika tidak, jatuh ke gelembung mengambang', pluginBilingualReaderDesc: 'Baca PDF di sidebar DSH: tampilan PDF asli, pilih teks untuk diterjemahkan dengan LLM, dengan konteks dan sepenuhnya terisolasi dari percakapan utama', changesRedactOn: "Redaksi aktif: rahasia tampil sebagai [REDACTED]; klik untuk mematikan (risiko Anda sendiri)", changesRedactOff: "Redaksi mati: konten tampil apa adanya; klik untuk mengaktifkan", changesRedactOnLabel: "Redaksi", changesRedactOffLabel: "Tanpa redaksi", changesRedactBanner: "Teredaksi", pluginSentinelName: 'dsh-sentinel Sistem bangun', pluginEgoBrowserName: 'ego-browser Peramban agen', pluginBetterOverleafName: 'dsh-better-overleaf Tab Overleaf', pluginDocsPanelName: 'dsh-docs-panel Dokumen global', pluginFlowglassName: 'dsh-flowglass Flowglass', pluginGitForgeName: 'dsh-git-forge Kredensial Git', pluginGitRemotesName: 'dsh-git-remotes Remote Git', pluginGithubWorkbenchName: 'dsh-github-workbench Meja kerja GitHub', pluginSidebarQaName: 'dsh-sidebar-qa Pilih & tanya', pluginSidenoteName: 'dsh-sidenote Obrolan samping', pluginServerDeckName: 'dsh-server-deck Dek server', pluginSuhuangScrollName: 'dsh-suhuang-scroll Suhuang Scroll', pluginSshTunnelName: 'dsh-ssh-tunnel Terowongan SSH', pluginTurnReviewName: 'dsh-turn-review Tinjauan giliran', pluginBilingualReaderName: 'dsh-bilingual-reader Pembaca dwibahasa', pluginOfficeName: 'Pratinjau Office', pluginMdExportName: 'Ekspor Markdown', pluginCodeNavName: 'Navigator pratinjau kode', pluginVideoPreviewName: 'Pratinjau video', presetDshDesktopDesc: 'Mode Electron lanjutan (tanpa bingkai): macOS mencadangkan 20px di atas; Windows mencadangkan 32px untuk bilah judul saat WCO tidak tersedia', }