import type { Dict } from '../types';
import { en } from './en';

export const id: Dict = {
  ...en,
  'homeHero.addMenu': 'Tambah konteks',
  'homeHero.addPlugin': 'Tambah plugin',
  'homeHero.addConnectors': 'Tambah konektor',
  'homeHero.addMcp': 'Tambah server MCP',
  'homeHero.noPlugins': 'Tidak ada plugin terpasang',
  'homeHero.noMcp': 'Tidak ada server MCP',
  'homeHero.noConnectors': 'Tidak ada konektor terhubung',
  'chat.amrCard.switchTitle': 'Panggilan model gagal — proses ini dijeda',
  'chat.amrCard.switchBody': 'Beralih ke layanan model AMR resmi Open Design — tanpa perlu mengatur API Key. Setelah masuk, otorisasi, dan isi ulang, proses ini akan dicoba ulang otomatis.',
  'chat.amrCard.chipOfficial': 'Hosting resmi',
  'chat.amrCard.chipNoKey': 'Tanpa API Key',
  'chat.amrCard.chipAutoRetry': 'Coba ulang otomatis setelah masuk',
  'chat.amrCard.switchCta': 'Beralih ke AMR & coba lagi',
  'chat.amrError.authMessage': 'Akun AMR Anda belum diotorisasi. Otorisasi sekarang dan proses ini akan dicoba ulang otomatis.',
  'chat.amrError.balanceMessage': 'Saldo AMR Anda habis. Isi ulang untuk melanjutkan proses ini.',
  'chat.amrError.authorizeCta': 'Otorisasi & coba lagi',
  'chat.amrError.rechargeCta': 'Isi ulang AMR',
  'chat.antigravityError.launchTerminalCta': 'Sign in via terminal',
  'chat.antigravityError.launchSwitchModelCta': 'Switch model in terminal',
  'plugins.actions.copyInstallCommand': 'Salin perintah instal',
  'plugins.actions.copyPluginId': 'Salin ID plugin',
  'plugins.actions.copyReadmeBadge': 'Salin lencana README',
  'plugins.actions.openSourceGithub': 'Buka sumber di GitHub',
  'plugins.actions.openSource': 'Buka sumber',
  'plugins.actions.openHomepage': 'Buka beranda',
  'plugins.actions.openMarketplace': 'Buka di marketplace',
  'workingDirPicker.title': "Folder",
  'workingDirPicker.homeTitle': "Choose where this project should live",
  'workingDirPicker.processing': "Processing…",
  'workingDirPicker.select': "Choose working directory",
  'workingDirPicker.clearAria': "Clear working directory",
  'workingDirPicker.replaceFailed': "Could not replace working directory",
  'workingDirPicker.unavailable': "Folder picker is unavailable in this build. Run the desktop app to pick a folder.",
  'workingDirPicker.openUnavailable': "Open this project in the desktop app to show the folder.",
  'workingDirPicker.openFailed': "Could not show this folder",
  'workingDirPicker.showInFileManager': "Show in file manager",
  'workingDirPicker.replace': "Replace directory…",
  'workingDirPicker.recent': "Recent directories",
  'handoff.toTarget': 'Hand off to {target}',
  'handoff.action': 'Hand off',
  'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
  'handoff.chooseTargetAria': 'Choose hand-off target',
  'handoff.notInstalled': 'Not installed',
  'handoff.notDetectedTitle': '{target} - not detected on $PATH',
  'homeHero.promptExamples': "Contoh",
  'homeHero.footer.designSystem': "Gaya",
  'homeHero.footer.autoDesignSystem': "Auto",
  'homeHero.footer.autoDesignSystemSummary': "Otomatis memilih sistem desain dan gaya visual yang paling cocok untuk prompt saat ini.",
  'homeHero.footer.ratio': "Rasio",
  'homeHero.footer.duration': "Durasi",
  'homeHero.footer.resolution': "Resolusi",
  'homeHero.footer.speakerNotes': "Notes",
  'homeHero.footer.noSpeakerNotes': "Tanpa catatan",
  'homeHero.footer.availableCount': "{n} available",
  'homeHero.footer.noMatches': "No matches",
  'homeHero.moreShortcuts': "Lainnya",
  'common.cancel': 'Batal',
  'home.openExistingProject': "Buka proyek yang ada",
  'home.openExistingProjectOpening': "Membuka...",
  'home.chooseFolderSubtitle': "Pilih folder dari disk Anda.",
  'common.save': 'Simpan',
  'common.close': 'Tutup',
  'common.clear': 'Bersihkan',
  'common.delete': 'Hapus',
  'common.rename': 'Ganti nama',
  'common.edit': 'Edit',
  'common.preview': 'Pratinjau',
  'common.share': 'Bagikan',
  'common.search': 'Cari',
  'common.searchEllipsis': 'Cari...',
  'common.loading': 'Memuat...',
  'common.all': 'Semua',
  'common.none': 'Tidak ada',
  'common.default': 'Default',
  'common.installed': 'terpasang',
  'common.notInstalled': 'belum terpasang',
  'common.active': 'aktif',
  'common.offline': 'offline',
  'common.selected': 'dipilih',
  'common.create': 'Buat',
  'common.openPreview': 'Buka pratinjau',
  'common.exitFullscreen': 'Keluar layar penuh',
  'common.fullscreen': 'Layar penuh',
  'common.openInNewTab': 'Buka di tab baru',
  'common.exportPdf': 'Ekspor sebagai PDF',
  'common.exportZip': 'Unduh sebagai .zip',
  'common.exportHtml': 'Ekspor sebagai HTML mandiri',
  'common.exportImage': 'Ekspor sebagai gambar',
  'common.exportImageFailed': 'Gagal menangkap gambar. Silakan coba lagi atau gunakan alat tangkapan layar browser Anda.',
  'common.justNow': 'baru saja',
  'common.minutesAgo': '{n}m lalu',
  'common.hoursAgo': '{n}j lalu',
  'common.daysAgo': '{n}h lalu',
  'common.weeksAgo': '{n}w ago',
  'common.now': 'sekarang',
  'common.minutesShort': '{n}m',
  'common.hoursShort': '{n}j',
  'common.daysShort': '{n}h',
  'common.untitled': 'Tanpa judul',

  'app.brand': 'Open Design',
  'app.brandPill': 'Pratinjau Riset',
  'app.brandSubtitle': 'oleh Nexu Labs',
  'app.welcomeLoading': 'Memuat workspace...',

  'settings.welcomeKicker': "",
  'settings.welcomeTitle': "Welcome",
  'settings.welcomeSubtitle': "",
  'settings.onboardingCreateTitle': 'Start from a brief',
  'settings.onboardingCreateBody':
    'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
  'settings.onboardingMemoryTitle': 'Save working context',
  'settings.onboardingMemoryBody':
    'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
  'settings.onboardingSystemsTitle': 'Bring your design system',
  'settings.onboardingSystemsBody':
    'Pick or create a brand system so generated work follows real colors, typography, and product language.',
  'settings.onboardingExecutionTitle': 'Choose how generation runs',
  'settings.onboardingExecutionBody':
    'Official CLI with one-click setup and ready-to-use defaults. Use one key to choose from many models with better pricing.',
  'settings.onboardingAmrCloudBenefitOfficial': 'Direkomendasikan resmi',
  'settings.onboardingAmrCloudBenefitReady': 'Tanpa deploy',
  'settings.onboardingAmrCloudBenefitModels': 'Mendukung Claude Opus 4.8',
  'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
  'settings.onboardingAmrCloudUpcomingLabel': 'Segera hadir',
  'settings.onboardingAmrCloudUpcomingImageVideo': 'Gambar dan video',
  'settings.onboardingAmrCloudUpcomingSkills': 'Banyak Skills',
  'settings.onboardingAmrCloudUpcomingRouting': 'Routing cerdas',
  'settings.onboardingAmrModelSourceLabel': 'AMR CLI',
  'settings.onboardingAmrCloudAuthorizeAction': 'Otorisasi AMR',
  'settings.onboardingAmrCloudAuthorizedAction': 'Diotorisasi',
  'settings.onboardingStepConnect': "Connect",
  'settings.onboardingStepDesignSystem': "Design system",
  'settings.onboardingStepProfile': "About you",
  'settings.onboardingConnectTitle': "Choose a runtime",
  'settings.onboardingConnectBody': "",
  'settings.onboardingRecommended': "Recommended",
  'settings.onboardingLocalTitle': "Local coding agent",
  'settings.onboardingLocalBody': "Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.",
  'settings.onboardingLocalAction': "Open CLI settings",
  'settings.onboardingCliScanHint': "This usually takes 5-10 seconds.",
  'settings.onboardingByokTitle': "Bring your own key",
  'settings.onboardingByokBody': "Use your own model provider credentials.",
  'settings.onboardingByokAction': "Open BYOK settings",
  'settings.onboardingDesignTitle': "Design system",
  'settings.onboardingDesignBody': "Generate once, reuse everywhere.",
  'settings.onboardingDesignIntroGenerateTitle': "Generate from existing work",
  'settings.onboardingDesignIntroGenerateBody': "Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.",
  'settings.onboardingDesignIntroReuseTitle': "Reuse in future work",
  'settings.onboardingDesignIntroReuseBody': "Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.",
  'settings.onboardingDesignIntroSkipTitle': "Optional for now",
  'settings.onboardingDesignIntroSkipBody': "Skip this step if you want to start without generating a design system.",
  'settings.onboardingGithubTitle': "Import from GitHub",
  'settings.onboardingGithubBody': "Use a frontend repository.",
  'settings.onboardingUploadTitle': "Upload local files",
  'settings.onboardingUploadBody': "Add project files, screenshots, CSS, docs, or assets.",
  'settings.onboardingPromptTitle': "Generate from prompt",
  'settings.onboardingPromptBody': "Describe the product or brand.",
  'settings.onboardingProfileTitle': "About you",
  'settings.onboardingProfileBody': "Optional details for better defaults.",
  'settings.onboardingRoleLabel': "Your role",
  'settings.onboardingOrgSizeLabel': "Organization size",
  'settings.onboardingUseCaseLabel': "Use case",
  'settings.onboardingSourceLabel': "Where did you hear about us?",
  'settings.onboardingSelectPlaceholder': "Select one",
  'settings.onboardingSelectMultiplePlaceholder': "Select one or more",
  'settings.onboardingOrgSolo': "Solo / personal (1)",
  'settings.onboardingOrgTeam': "Small team (2-10)",
  'settings.onboardingOrgStartup': "Startup / SMB (11-50)",
  'settings.onboardingOrgGrowth': "Growth company (51-200)",
  'settings.onboardingOrgMidMarket': "Mid-market (201-1000)",
  'settings.onboardingOrgEnterprise': "Enterprise (1000+)",
  'settings.onboardingRolePm': "📋 Product manager",
  'settings.onboardingRoleDesigner': "🎨 Designer",
  'settings.onboardingRoleEngineer': "💻 Engineer",
  'settings.onboardingRoleMarketing': "📣 Marketing",
  'settings.onboardingRoleGrowth': "📈 Growth",
  'settings.onboardingRoleOps': "⚙️ Operations",
  'settings.onboardingRoleFounder': "🚀 Founder / executive",
  'settings.onboardingRoleStudent': "🎓 Student / educator",
  'settings.onboardingRoleOther': "✨ Other",
  'settings.onboardingUseProduct': "🎨 Product design",
  'settings.onboardingUseDesignSystem': "🧩 Design system",
  'settings.onboardingUsePrototype': "📱 Prototype / app UI",
  'settings.onboardingUseLanding': "🌐 Landing pages",
  'settings.onboardingUseAds': "📣 Ads / social content",
  'settings.onboardingUseDashboard': "📊 Dashboards / internal tools",
  'settings.onboardingUseDeck': "🖥️ Presentation / deck",
  'settings.onboardingUseMarketing': "📈 Marketing / growth",
  'settings.onboardingUseEngineering': "🤝 Engineering handoff",
  'settings.onboardingUseAgency': "💼 Agency / client work",
  'settings.onboardingSourceGithub': "🐙 GitHub",
  'settings.onboardingSourceFriend': "👥 Friend or coworker",
  'settings.onboardingSourceSocial': "📱 Social media",
  'settings.onboardingSourceProductHunt': "🅿️ Product Hunt",
  'settings.onboardingSourceCommunity': "💬 Design / AI community",
  'settings.onboardingSourceYoutube': "▶️ YouTube",
  'settings.onboardingSourceBlog': "📰 Blog or newsletter",
  'settings.onboardingSourceAiTool': "✨ AI tool recommendation",
  'settings.onboardingSourceSearch': "🔍 Search",
  'settings.onboardingSourceEvent': "🎤 Event or community",
  'settings.onboardingBack': "Back",
  'settings.onboardingContinue': "Continue",
  'settings.onboardingFinish': "Finish setup",
  'settings.onboardingSkip': "Skip for now",
  'settings.kicker': 'Pengaturan',
  'settings.title': 'Mode eksekusi',
  'settings.subtitle': 'Pilih antara CLI lokal dan BYOK.',
  'settings.modeAria': 'Mode eksekusi',
  'settings.protocolAria': 'Protokol API',
  'settings.modeDaemon': 'CLI lokal',
  'settings.modeDaemonHelp': 'Jalankan lewat code-agent CLI di komputer ini',
  'settings.modeDaemonOffline': 'Daemon tidak berjalan',
  'settings.modeDaemonOfflineMeta': 'daemon offline',
  'settings.modeDaemonInstalledMeta': '{count} terpasang',
  'settings.modeApi': 'Anthropic API',
  'settings.modeApiMeta': 'BYOK',
  'settings.codeAgent': 'Code agent',
  'settings.codeAgentHint': 'Terdeteksi dari PATH. Pilih CLI yang ingin dipakai untuk menjalankan generasi.',
  'settings.rescan': 'Pindai ulang',
  'settings.rescanTitle': 'Pindai ulang PATH',
  'settings.rescanRunning': 'Memindai...',
  'settings.rescanSuccess': 'Pemindaian selesai. {count} tersedia.',
  'settings.designSystemRenameFailed': 'Gagal mengganti nama. Periksa daemon lalu coba lagi.',
  'settings.rescanFailed': 'Pemindaian gagal. Periksa daemon lalu coba lagi.',
  'settings.test': 'Tes',
  'settings.testTitle': 'Kirim prompt kecil untuk memverifikasi koneksi',
  'settings.testRunning': 'Menguji koneksi...',
  'settings.byokReadyToTest': 'Siap diuji',
  'settings.testCancel': 'Batal',
  'settings.testSuccessApi': 'Tersambung. Membalas dalam {ms} md — \'{sample}\'',
  'settings.testSuccessCli': '{agentName} membalas dalam {ms} md — \'{sample}\'',
  'settings.testAuthFailed': 'Autentikasi gagal. Periksa API key kamu.',
  'settings.testForbidden': 'Akses ditolak. Verifikasi akun, wilayah, atau organisasi kamu.',
  'settings.testNotFoundModel': 'Model \'{model}\' tidak ditemukan di endpoint ini.',
  'settings.testInvalidModelId':
    'ID model \'{model}\' tidak valid. ID kustom harus diawali huruf atau angka dan tidak boleh berisi spasi.',
  'settings.testInvalidBaseUrl': 'Base URL tidak valid atau tidak dapat dijangkau.',
  'settings.testRateLimited': 'Provider membatasi laju tes. Konfigurasi tampak valid.',
  'settings.testUpstream': 'Provider mengembalikan {status}. Coba lagi sebentar lagi.',
  'settings.testTimeout': 'Tes melewati batas waktu setelah {ms} md.',
  'settings.testAgentMissing': '{agentName} tidak terpasang atau tidak ada di PATH.',
  'settings.testAgentSpawn': 'Tidak dapat memulai {agentName}: {detail}.',
  'settings.testUnknown': 'Tes gagal: {detail}',
  'settings.agentInstall.install': 'Instal',
  'settings.agentInstall.docs': 'Dokumentasi',
  'settings.agentInstall.pathHint':
    'Jika Anda memasang CLI dengan npm atau Homebrew tetapi masih tampil sebagai belum terpasang, pastikan direktori bin alat ada di PATH yang diwarisi daemon Open Design (PATH Terminal dan aplikasi GUI bisa berbeda di macOS). Lihat QUICKSTART.md (bagian "Local agent CLI and PATH").',
  'settings.agentInstall.stepOpenLinks': 'Buka Instal atau Dokumentasi untuk agen pilihan Anda.',
  'settings.agentInstall.stepAuth':
    'Lakukan autentikasi di CLI vendor (masuk atau tambahkan kredensial API) sebelum kembali ke Open Design.',
  'settings.agentInstall.stepRescan': 'Klik Pindai ulang di bagian ini.',
  'settings.agentInstall.stepSelect': 'Pilih kartu agen setelah statusnya terpasang.',
  'settings.noAgentsDetected':
    'Belum ada agent terdeteksi. Pasang salah satu dari Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen, atau GitHub Copilot CLI, lalu klik pindai ulang.',
  'settings.agentInstalledGroup': 'CLI Anda ({count})',
  'settings.agentInstallGroup': 'Tersedia untuk dipasang ({count})',
  'settings.agentAuthRequired': 'Autentikasi diperlukan',
  'settings.agentAuthUnknown': 'Status autentikasi tidak diketahui',
  'settings.amrLogin': 'Sign in',
  'settings.amrLogout': 'Sign out',
  'settings.amrLoggingIn': 'Signing in…',
  'settings.amrLoggingOut': 'Signing out…',
  'settings.amrLoggedInAs': 'Signed in as {email}',
  'settings.amrLoggedInWithPlan': 'Signed in as {email} · {plan}',
  'settings.amrLoggedInPill': 'Signed in',
  'settings.amrNotLoggedIn': 'Not signed in',
  'settings.amrCloud': 'Open Design AMR',
  'settings.amrAuthorize': 'Authorize',
  'settings.amrBenefitOfficial': 'Officially maintained',
  'settings.amrBenefitLowerPrice': 'Lower price',
  'settings.amrBenefitManyModels': 'Many models',
  'settings.amrPromoBonus': 'Limited bonus: +100%',
  'settings.amrSignInToContinue': 'Sign in to continue',
  'settings.amrSignIn': 'Sign in',
  'settings.amrSignedIn': 'Signed in',
  'settings.amrNotSignedIn': 'Not signed in',
  'settings.amrSigningIn': 'Signing in…',
  'settings.amrCancelSignIn': 'Cancel sign-in',
  'settings.amrAccountStatus': 'AMR account status',
  'settings.amrConsole': 'AMR Console',
  'settings.amrLoginErrorCompact': 'AMR sign-in failed.',
  'settings.apiSection': 'Anthropic API',
  'settings.quickFillProvider': 'Provider isi cepat',
  'settings.customProvider': 'Provider kustom',
  'settings.providerPreset': 'Preset gateway',
  'settings.protocolGroupProtocols': 'Protokol',
  'settings.protocolGroupGateways': 'Gateway',
  'settings.apiKey': 'API key',
  'settings.showKey': 'Tampilkan key',
  'settings.hideKey': 'Sembunyikan key',
  'settings.show': 'Tampilkan',
  'settings.hide': 'Sembunyikan',
  'settings.model': 'Model',
  'settings.suggestedModelsHint': 'Ini model yang disarankan untuk protokol ini. Provider kamu mungkin mendukung model lain.',
  'settings.baseUrl': 'Base URL',
  'settings.baseUrlInvalid': 'Gunakan URL publik http:// atau https://.',
  'settings.azureDeploymentModel': 'Nama deployment',
  'settings.azureCustomDeploymentName': 'Custom deployment name',
  'settings.azureDeploymentModelHint':
    'Untuk Azure OpenAI, field ini digunakan sebagai nama deployment di /openai/deployments/<model>. Masukkan nama deployment yang kamu buat di Azure.',
  'settings.apiVersion': 'Versi API',
  'settings.byokImageModel': 'Model pembuatan gambar',
  'settings.byokVideoModel': 'Model pembuatan video',
  'settings.byokVideoI2vHint': 'Model gambar-ke-video: perlu gambar referensi (jika tidak dipilih, gambar terbaru di proyek dipakai otomatis)',
  'settings.byokSpeechModel': 'Model suara',
  'settings.byokSpeechVoice': 'Suara',
  'settings.byokModelDefaultOption': 'Default',
  'settings.maxTokens': 'Token maks (opsional)',
  'settings.maxTokensHint':
    'Batas panjang respons. Setiap model punya default sendiri; kosongkan untuk memakainya, atau isi angka untuk menimpa.',
  'settings.apiHint':
    'Panggilan dikirim langsung dari browser ini ke base URL yang kamu atur. Tanpa proxy. Key tidak keluar dari localStorage.',
  'settings.skipForNow': 'Lewati dulu',
  'settings.getStarted': 'Mulai',
  'settings.envConfigure': 'Mode eksekusi',
  'settings.localCli': 'CLI lokal',
  'settings.anthropicApi': 'Anthropic API',
  'settings.noAgentSelected': 'belum ada agent dipilih',
  'settings.language': 'Bahasa',
  'settings.languageHint': 'Ganti bahasa antarmuka. Disimpan di browser ini.',
  'settings.appearance': 'Tampilan',
  'settings.appearanceHint': 'Pilih terang, gelap atau ikuti pengaturan sistem.',
  'settings.themeSystem': 'Sistem',
  'settings.themeLight': 'Terang',
  'settings.themeDark': 'Gelap',
  'settings.agentModelHead': 'Model untuk:',
  'settings.modelPicker': 'Model',
  'settings.modelSourceLive': 'Langsung dari CLI',
  'settings.modelSourceFallback': 'Daftar bawaan',
  'settings.reasoningPicker': 'Kekuatan penalaran',
  'settings.modelPickerHint':
    'Diambil dari CLI jika tersedia. "Default" mengikuti konfigurasi CLI; "Custom..." untuk mengetik model id sendiri.',
  'settings.modelPickerLiveHint':
    'Model diperbarui dari CLI yang terpasang. Default tetap memakai konfigurasi CLI.',
  'settings.modelPickerLiveCatalogOnlyHint':
    'Model diperbarui dari CLI yang terpasang.',
  'settings.modelPickerFallbackHint':
    'Menampilkan default bawaan. Klik Pindai ulang untuk mengambil model langsung dari CLI.',
  'settings.cliEnvTitle': 'Lokasi konfigurasi CLI',
  'settings.cliEnvHint': 'Atur direktori konfigurasi non-rahasia untuk menjalankan aplikasi paket dan deteksi agent.',
  'settings.cliEnvClaudeConfigDir': 'Direktori konfigurasi Claude Code',
  'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
  'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
  'settings.cliEnvCodexHome': 'Home Codex',
  'settings.cliEnvCodexBin': 'Path executable Codex',
  'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
  'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
  'settings.modelCustom': 'Kustom (isi di bawah)...',
  'settings.modelCustomLabel': 'ID model kustom',
  'settings.modelCustomPlaceholder': 'mis. anthropic/claude-sonnet-4-6',
  'settings.mediaProviders': 'Provider media',
  'settings.mediaProvidersHint': 'API key untuk generasi gambar, video, dan audio. Disimpan lokal dan disinkronkan ke daemon lokal.',
  'settings.mcpServerTitle': 'Server MCP',
  'settings.mcpServerHint': 'Ekspos Open Design sebagai server MCP untuk agen koding Anda.',
  'settings.externalMcpTitle': 'MCP eksternal',
  'settings.externalMcpHint': 'Tambahkan alat MCP dari layanan eksternal (Higgsfield, GitHub, …).',
  'settings.mediaProviderApiKey': 'API key',
  'settings.mediaProviderBaseUrl': 'Base URL',
  'settings.mediaProviderConfigured': 'Sudah diatur',
  'settings.mediaProviderUnset': 'Belum diatur',
  'settings.mediaProviderClear': 'Bersihkan',
  'settings.mediaProviderClearConfirm': 'Hapus pengaturan {name} yang tersimpan? Anda perlu memasukkannya lagi untuk menggunakan {name}.',
  'settings.mediaProviderPlaceholder': 'Tempel API key',
  'settings.mediaProviderBaseUrlPlaceholder': 'Timpa base URL default',
  'settings.mediaProviderReload': 'Muat ulang dari daemon',
  'settings.mediaProviderReloadError': 'Tidak dapat memuat ulang pengaturan penyedia media dari daemon lokal.',
  'settings.mediaProviderReloadSuccess': 'Pengaturan penyedia media berhasil dimuat ulang dari daemon lokal.',
  'settings.mediaProviderLoadError': 'Tidak dapat memuat pengaturan penyedia media dari daemon lokal. Untuk sementara menggunakan pengaturan yang tersimpan di browser.',
  'settings.mediaProviderComingSoonHint': 'Kami melacak ini untuk roadmap; daemon belum mengirimkan klien, jadi tidak ada yang perlu dikonfigurasi.',
  'settings.privacy': 'Privacy',
  'settings.privacyHint': 'What data is shared with the Open Design team',
  'settings.privacyConsentKicker': 'Help us improve Open Design',
  'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
  'settings.privacyConsentFooter': 'You can change either of these any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
  'settings.privacyConsentShare': 'Share usage data',
  'settings.privacyConsentDecline': "Don't share",
  'settings.privacyConsentAccept': 'I get it',
  'settings.privacyConsentBannerFooter':
    'Data sharing is on by default. You can turn it off any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
  'settings.privacyConsentPolicyLink': 'Read the privacy policy',
  'settings.privacyMetrics': 'Anonymous metrics',
  'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
  'settings.privacyContent': 'Conversation content',
  'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
  'settings.privacyArtifacts': 'Project artifacts manifest',
  'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
  'settings.privacyInstallationId': 'Anonymous ID',
  'settings.privacyOptedOut': 'opted out',
  'settings.privacyDataDeletion': 'Delete my data',
  'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
  'settings.about': 'Tentang',
  'settings.aboutHint': 'Detail versi dan runtime',
  'settings.appVersion': 'Versi',
  'settings.appChannel': 'Channel',
  'settings.appRuntime': 'Runtime',
  'settings.appPlatform': 'Platform',
  'settings.appArchitecture': 'Arsitektur',
  'settings.runtimePackaged': 'Aplikasi paket',
  'settings.runtimeDevelopment': 'Development',
  'settings.versionUnavailable': 'Detail versi tidak tersedia saat daemon offline.',
  'settings.installLatest': 'Pasang versi terbaru',
  'settings.alreadyLatest': 'Anda sudah menggunakan versi terbaru',
  'settings.connectorsNavHint': 'Koneksi sistem eksternal',
  'settings.connectorsHint': 'Kelola pengaturan konektor dan penyedia alat untuk perangkat ini.',
  'settings.connectorsComposioApiKey': 'API key Composio',
  'settings.connectorsSavedTitle': 'Tersimpan di daemon lokal',
  'settings.connectorsSavedWithTail': 'Tersimpan · ••••{tail}',
  'settings.connectorsSaved': 'Tersimpan',
  'settings.connectorsGetApiKey': 'Dapatkan API key',
  'settings.connectorsReplaceKeyPlaceholder': 'Tempel key baru untuk mengganti yang tersimpan',
  'settings.connectorsApiKeyPlaceholder': 'Tempel API key Composio',
  'settings.connectorsClear': 'Hapus',
  'settings.connectorsClearConfirmTitle': 'Hapus API key Composio yang tersimpan?',
  'settings.connectorsClearConfirmBody':
    'Menghapus key akan memutus semua konektor Composio yang terkait dengan workspace ini. Akun terhubung, grant OAuth, dan akses alat semuanya akan dihapus.',
  'settings.connectorsClearConfirmContinue': 'Lanjutkan',
  'settings.connectorsClearFinalTitle': 'Ini akan memutus semua konektor',
  'settings.connectorsClearFinalBody':
    'Tindakan ini tidak bisa dibatalkan. Kamu harus menghubungkan ulang setiap integrasi dari awal setelah menempelkan key baru.',
  'settings.connectorsClearFinalConfirm': 'Hapus key & putuskan koneksi',
  'settings.connectorsClearArming': 'Tunggu…',
  'settings.connectorsClearCancel': 'Batal',
  'settings.connectorsSaveKey': 'Simpan key',
  'settings.connectorsSaveKeyTitle': 'Kirim key ini ke daemon lokal',
  'settings.connectorsKeySaving': 'Menyimpan…',
  'settings.connectorsKeySaved': "Tersimpan ✓",
  'settings.connectorsKeyError': 'Tidak bisa menyimpan key. Pastikan daemon lokal berjalan lalu coba lagi.',
  'settings.connectorsHelpSaved':
    'Key kamu tersimpan di daemon lokal. Tempel key baru untuk menggantinya, atau Hapus untuk menghapusnya.',
  'settings.connectorsHelpUnsaved':
    'Ada perubahan yang belum disimpan — klik Simpan key untuk menyimpan kredensial ini di daemon lokal dan menyegarkan katalog di bawah.',
  'settings.connectorsHelpEmpty':
    'Tambahkan key untuk memuat katalog di bawah. Key disimpan secara lokal di daemon dan tidak pernah dikirim lewat environment variable.',
  'settings.connectorsLoadingSavedKey': 'Memeriksa key yang tersimpan di daemon lokal…',
  'settings.autosaveSaving': 'Menyimpan…',
  'settings.autosaveSaved': 'Semua perubahan tersimpan',
  'settings.autosaveError': 'Tidak bisa menyimpan perubahan. Daemon lokal mungkin offline.',
  'settings.orbit.eyebrow': 'Otomatisasi',
  'settings.orbit.title': 'Orbit',
  'settings.orbit.navHint': 'Ringkasan konektor harian',
  'settings.orbit.lede': 'Kumpulkan aktivitas konektor sesuai jadwal dan publikasikan hasilnya sebagai live artifact yang bisa diperbarui.',
  'settings.orbit.statusOnTitle': 'Jadwal jalan harian aktif',
  'settings.orbit.statusOffTitle': 'Jadwal jalan harian nonaktif',
  'settings.orbit.statusActive': 'Aktif',
  'settings.orbit.statusOff': 'Mati',
  'settings.orbit.runTitle': 'Mulai Orbit dan buka percakapan live',
  'settings.orbit.running': 'Berjalan…',
  'settings.orbit.runOpen': 'Jalankan sekarang',
  'settings.orbit.dailySummaryTitle': 'Ringkasan harian',
  'settings.orbit.dailySummarySub': 'Berjalan sekali per hari pada waktu lokal yang dijadwalkan.',
  'settings.orbit.on': 'Nyala',
  'settings.orbit.off': 'Mati',
  'settings.orbit.runTimeTitle': 'Waktu jalan',
  'settings.orbit.runTimeSub': 'Default 08.00. Simpan untuk menerapkannya ke jadwal daemon.',
  'settings.orbit.runTimeAria': 'Waktu jalan Orbit harian',
  'settings.orbit.nextRun': 'Jalan berikutnya',
  'settings.orbit.nextRunScheduledAfterSave': 'Dijadwalkan setelah Simpan',
  'settings.orbit.schedule': 'Jadwal',
  'settings.orbit.pausedManualOnly': 'Dijeda — hanya jalan manual',
  'settings.orbit.templateTitle': 'Templat prompt',
  'settings.orbit.templateMissing': 'Templat {id} belum terpasang.',
  'settings.orbit.templateMissingOption': '{id} (belum terpasang)',
  'settings.orbit.templateMissingInstall': 'Pasang skill Orbit untuk mengarahkan prompt.',
  'settings.orbit.templateMissingPickAnother': 'Pilih templat lain dari dropdown.',
  'settings.orbit.templateResetTitle': 'Reset ke {id}',
  'settings.orbit.templateReset': 'Atur ulang',
  'settings.orbit.templateHelp': 'Arahkan Orbit dengan skill — contoh prompt templat yang dipilih akan disuntikkan ke setiap jalan Orbit agar ringkasan mengikuti bentuk templat itu.',
  'settings.orbit.templateAria': 'Templat prompt Orbit',
  'settings.orbit.templatesLoading': 'Memuat templat…',
  'settings.orbit.templatesOptgroup': 'Templat skill Orbit',
  'settings.orbit.lastRun': 'Jalan terakhir',
  'settings.orbit.triggerManual': 'Manual',
  'settings.orbit.triggerScheduled': 'Terjadwal',
  'settings.orbit.meterAria': '{succeeded} berhasil, {skipped} dilewati, {failed} gagal dari {checked} yang diperiksa',
  'settings.orbit.countChecked': 'Diperiksa',
  'settings.orbit.countSucceeded': 'Berhasil',
  'settings.orbit.countSkipped': 'Dilewati',
  'settings.orbit.countFailed': 'Gagal',
  'settings.orbit.runError': 'Tidak bisa menjalankan Orbit. Pastikan daemon lokal berjalan dan konektor sudah dikonfigurasi.',
  'settings.orbit.gateAriaLabel': 'Konektor diperlukan untuk memakai Orbit',
  'settings.orbit.gateEyebrow': 'Perlu pengaturan',
  'settings.orbit.gateTitle': 'Hubungkan alat untuk menjalankan Orbit',
  'settings.orbit.gateBody': 'Orbit merangkum aktivitas di seluruh konektormu. Belum ada yang terhubung — tambahkan setidaknya satu integrasi agar Orbit punya sesuatu untuk dilaporkan.',
  'settings.orbit.gateBodyNoKey': 'Orbit merangkum aktivitas di seluruh konektormu, dan konektor berjalan melalui Composio. Tambahkan API key Composio di Connectors untuk memuat katalog dan memilih integrasi pertamamu.',
  'settings.orbit.gateAction': 'Buka Connectors',
  'settings.orbit.gateActionNoKey': 'Konfigurasikan Composio',
  'settings.orbit.gateLoading': 'Memeriksa konektor…',
  'settings.orbit.controlsLockedBadge': 'Terkunci',
  'settings.orbit.controlsLockedHint': 'Hubungkan alat untuk membuka kontrol jadwal dan templat Orbit.',
  'settings.orbit.artifactKickerLive': 'artifact live',
  'settings.orbit.artifactKickerLegacy': 'Ringkasan lama',
  'settings.orbit.artifactTitle': 'Ringkasan aktivitas Orbit harian',
  'settings.orbit.artifactMetaLive': 'Artifact HTML yang bisa diperbarui ulang dan dihasilkan dari aktivitas konektor.',
  'settings.orbit.artifactMetaLegacy': 'Dibuat sebelum dukungan live artifact diaktifkan — jalankan Orbit lagi untuk menerbitkannya.',
  'settings.orbit.copyMarkdownTitle': 'Salin ringkasan markdown ke clipboard',
  'settings.orbit.copied': 'Tersalin',
  'settings.orbit.copy': 'Salin',
  'settings.orbit.openArtifact': 'Buka artifact',
  'settings.orbit.sourceMarkdown': 'Markdown sumber',

  'entry.tabDesigns': 'Desain',
  'entry.tabTemplates': 'Templat',
  'entry.tabDesignSystems': 'Sistem desain',
  'entry.tabConnectors': 'Konektor',
  'entry.openSettingsTitle': 'Pengaturan',
  'entry.openSettingsAria': 'Buka pengaturan',
  'entry.resizeAria': 'Ubah ukuran sidebar',
  'entry.loadingWorkspace': 'Memuat workspace...',
  'entry.useEverywhereTitle': 'Gunakan di mana saja',
  'entry.useEverywhereAria': 'Buka panduan “Gunakan di mana saja” (CLI, MCP, HTTP, Skills)',
  'entry.navExpand': 'Buka bilah sisi',
  'entry.navCollapse': 'Tutup bilah sisi',
  'entry.navNewProject': 'Proyek baru',
  'entry.navHome': 'Beranda',
  'entry.navProjects': 'Proyek',
  'entry.navDesignSystems': 'Sistem desain',
  'entry.helpAria': 'Bantuan',
  'entry.helpMenuAria': 'Menu bantuan',
  'entry.helpGetHelp': 'Dapatkan bantuan di GitHub',
  'entry.helpSubmitFeature': 'Ajukan fitur',
  'entry.helpWhatsNew': 'Apa yang baru',
  'entry.helpDownloadDesktop': 'Unduh aplikasi desktop',
  'entry.githubStarLabel': 'Star',
  'entry.githubStarTitle': 'Klik untuk memberi star di GitHub',
  'entry.githubStarAria': 'Beri star Open Design di GitHub',
  'entry.tabImageTemplates': 'Templat gambar',
  'entry.tabVideoTemplates': 'Templat video',

  'promptTemplates.searchPlaceholder': 'Cari templat...',
  'promptTemplates.countLabel': '{n} hasil',
  'promptTemplates.emptyImage': 'Belum ada templat prompt gambar.',
  'promptTemplates.emptyVideo': 'Belum ada templat prompt video.',
  'promptTemplates.emptyNoMatch': 'Tidak ada templat yang cocok dengan pencarianmu.',
  'promptTemplates.attributionFooter': 'Diadaptasi dari library prompt publik. Tiap kartu menautkan ke author asli.',
  'promptTemplates.openPreviewTitle': 'Buka prompt dan pratinjau',
  'promptTemplates.sourcePrefix': 'Sumber:',
  'promptTemplates.fetchError': 'Tidak bisa memuat isi templat ini.',
  'promptTemplates.promptLabel': 'Isi prompt',
  'promptTemplates.copyPrompt': 'Salin prompt',
  'promptTemplates.copyDone': 'Tersalin!',
  'promptTemplates.modelHint': 'Model disarankan: {model}',
  'promptTemplates.openSource': 'Lihat asli',
  'promptTemplates.openFullscreen': 'Buka pratinjau layar penuh',
  'promptTemplates.closeFullscreen': 'Tutup pratinjau layar penuh',
  'promptTemplates.allSources': 'Semua sumber',
  'promptTemplates.sourceFilterAria': 'Filter berdasarkan sumber',
  'promptTemplates.retry': 'Coba lagi',

  'connectors.title': 'Konektor',
  'connectors.subtitle': 'Sumber data lokal dan mendatang yang bisa mendukung live artifact.',
  'connectors.account': 'Akun',
  'connectors.noAccount': 'Belum terhubung',
  'connectors.tools': 'Alat',
  'connectors.connect': 'Hubungkan',
  'connectors.disconnect': 'Putuskan',
  'connectors.configure': 'Konfigurasikan',
  'connectors.unavailable': 'Tidak tersedia',
  'connectors.phaseStubTitle': 'API konektor hadir di Fase 3; ini adalah area pratinjau.',
  'connectors.statusAvailable': 'Tersedia',
  'connectors.statusConnected': 'Terhubung',
  'connectors.statusError': 'Error',
  'connectors.statusDisabled': 'Nonaktif',
  'connectors.authorizationPending': 'Menunggu otorisasi...',
  'connectors.authorizationPendingHint': 'Selesaikan otorisasi di jendela yang terbuka.',
  'connectors.cancelAuthorization': 'Batal',
  'connectors.gateTitle': 'Konfigurasikan API key Composio',
  'connectors.gateBody':
    'Konektor membutuhkan API key Composio. Tambahkan di Pengaturan untuk membuka integrasi yang tersedia.',
  'connectors.aboutLabel': 'Tentang',
  'connectors.detailsLabel': 'Detail',
  'connectors.statusLabel': 'Status',
  // Keep CI-stable explicit fallbacks for keys that still use English in
  // Indonesian. Some TypeScript/tsbuild combinations do not reliably
  // account for the top-level `...en` spread when checking this large object.
  'connectors.category.aiAgents': 'AI agents',
  'connectors.category.aiInfrastructure': 'AI infrastructure',
  'connectors.category.accounting': 'Accounting',
  'connectors.category.admin': 'Admin',
  'connectors.category.advertising': 'Advertising',
  'connectors.category.analytics': 'Analytics',
  'connectors.category.automation': 'Automation',
  'connectors.category.cms': 'CMS',
  'connectors.category.crm': 'CRM',
  'connectors.category.calendar': 'Calendar',
  'connectors.category.commerce': 'Commerce',
  'connectors.category.communication': 'Communication',
  'connectors.category.contacts': 'Contacts',
  'connectors.category.dataPlatform': 'Data platform',
  'connectors.category.database': 'Database',
  'connectors.category.design': 'Design',
  'connectors.category.developer': 'Developer',
  'connectors.category.documentation': 'Documentation',
  'connectors.category.erp': 'ERP',
  'connectors.category.education': 'Education',
  'connectors.category.email': 'Email',
  'connectors.category.events': 'Events',
  'connectors.category.fieldService': 'Field service',
  'connectors.category.finance': 'Finance',
  'connectors.category.fitness': 'Fitness',
  'connectors.category.forms': 'Forms',
  'connectors.category.gaming': 'Gaming',
  'connectors.category.hr': 'HR',
  'connectors.category.hospitality': 'Hospitality',
  'connectors.category.itsm': 'ITSM',
  'connectors.category.integration': 'Integration',
  'connectors.category.localization': 'Localization',
  'connectors.category.logistics': 'Logistics',
  'connectors.category.maps': 'Maps',
  'connectors.category.marketing': 'Marketing',
  'connectors.category.media': 'Media',
  'connectors.category.meetings': 'Meetings',
  'connectors.category.nonprofit': 'Nonprofit',
  'connectors.category.observability': 'Observability',
  'connectors.category.payments': 'Payments',
  'connectors.category.personal': 'Personal',
  'connectors.category.presentations': 'Presentations',
  'connectors.category.procurement': 'Procurement',
  'connectors.category.product': 'Product',
  'connectors.category.productivity': 'Productivity',
  'connectors.category.projectManagement': 'Project management',
  'connectors.category.recruiting': 'Recruiting',
  'connectors.category.research': 'Research',
  'connectors.category.salesIntelligence': 'Sales intelligence',
  'connectors.category.scheduling': 'Scheduling',
  'connectors.category.search': 'Search',
  'connectors.category.security': 'Security',
  'connectors.category.signing': 'Signing',
  'connectors.category.social': 'Social',
  'connectors.category.spreadsheets': 'Spreadsheets',
  'connectors.category.storage': 'Storage',
  'connectors.category.support': 'Support',
  'connectors.category.surveys': 'Surveys',
  'connectors.category.tasks': 'Tasks',
  'connectors.category.timeTracking': 'Time tracking',
  'connectors.category.video': 'Video',
  'connectors.category.whiteboard': 'Whiteboard',
  'connectors.categoryLabel': 'Kategori',
  'connectors.providerLabel': 'Provider',
  'connectors.toolsSection': 'Alat',
  'connectors.toolsLoading': 'Memuat alat...',
  'connectors.noToolsAvailable': 'Belum ada alat tersedia. Hubungkan untuk melihat apa yang disediakan integrasi ini.',
  'connectors.toolDetailsUnavailable': 'Detail alat tidak tersedia, tetapi konektor ini melaporkan {n} alat.',
  'connectors.loadMoreTools': 'Muat alat lainnya',
  'connectors.openDetailsAria': 'Buka detail {name}',
  'connectors.toolsBadgeNone': 'Tidak ada alat',
  'connectors.toolsBadgeOne': '{n} alat',
  'connectors.toolsBadgeMany': '{n} alat',
  'connectors.searchPlaceholder': 'Cari konektor...',
  'connectors.searchAriaLabel': 'Cari konektor berdasarkan nama, provider, atau alat',
  'connectors.searchClear': 'Bersihkan pencarian',
  'connectors.emptyNoMatchTitle': 'Tidak ada konektor yang cocok dengan "{query}"',
  'connectors.emptyNoMatchBody': 'Coba kata kunci lain, atau bersihkan pencarian untuk melihat seluruh katalog.',
  'connectors.emptyNoMatchAction': 'Bersihkan pencarian',

  'newproj.tabPrototype': 'Prototype',
  'newproj.tabLiveArtifact': 'Live artifact',
  'newproj.tabDeck': 'Slide deck',
  'newproj.tabTemplate': 'Dari templat',
  'newproj.tabMedia': 'Media',
  'newproj.tabOther': 'Lainnya',
  'newproj.titlePrototype': 'Prototype baru',
  'newproj.titleLiveArtifact': 'Live artifact baru',
  'newproj.titleDeck': 'Slide deck baru',
  'newproj.titleTemplate': 'Mulai dari templat',
  'newproj.titleImage': 'Gambar baru',
  'newproj.titleVideo': 'Video baru',
  'newproj.titleAudio': 'Audio baru',
  'newproj.titleMedia': 'Media baru',
  'newproj.titleOther': 'Proyek baru',
  'newproj.namePlaceholder': 'Nama proyek',
  'newproj.fidelityLabel': 'Fidelity',
  'newproj.fidelityWireframe': 'Wireframe',
  'newproj.fidelityHigh': 'High fidelity',
  'newproj.toggleSpeakerNotes': 'Gunakan catatan pembicara',
  'newproj.toggleSpeakerNotesHint': 'Kurangi teks di slide; simpan poin bicara di catatan.',
  'newproj.toggleAnimations': 'Sertakan animasi',
  'newproj.toggleAnimationsHint': 'Tambahkan motion, hover, dan transisi di atas templat.',
  'newproj.surfaceOptionsLabel': 'Companion surfaces',
  'newproj.includeLandingPage': 'Include landing page',
  'newproj.includeLandingPageHint':
    'Add a responsive marketing page for ads, waitlists, launch campaigns, app downloads, or product explanation.',
  'newproj.includeOsWidgets': 'Include OS widgets',
  'newproj.includeOsWidgetsHint':
    'Add platform-native home screen, lock screen, or quick-access widgets for mobile/tablet apps.',
  'newproj.includeOsWidgetsDisabledHint':
    'Available when iOS, Android, or tablet app is selected as a target platform.',
  'newproj.templateLabel': 'Templat',
  'newproj.noTemplatesTitle': 'Belum ada templat',
  'newproj.noTemplatesBody': 'Buka proyek apa pun, lalu pakai menu Share di penampil berkas untuk mengubahnya menjadi templat.',
  'newproj.savedTemplate': 'Templat tersimpan',
  'newproj.fileSingular': 'berkas',
  'newproj.filePlural': 'berkas',
  'newproj.create': 'Buat',
  'newproj.locationLabel': 'Simpan ke',
  'newproj.locationDefault': 'Proyek Open Design',
  'newproj.locationExternalBase': 'Basis eksternal',
  'newproj.createLiveArtifact': 'Buat live artifact',
  'newproj.createFromTemplate': 'Buat dari templat',
  'newproj.createDisabledTitle': 'Simpan proyek sebagai templat dulu.',
  'newproj.importClaudeZip': 'Impor ZIP Claude Design',
  'newproj.importClaudeZipTitle': 'Impor file .zip hasil ekspor Claude Design',
  'newproj.importingClaudeZip': 'Mengimpor...',
  'newproj.privacyFooter': 'Secara default hanya kamu yang bisa melihat proyekmu.',
  'newproj.designSystem': 'Sistem desain',
  'newproj.dsNoneFreeform': 'Tidak ada - bebas',
  'newproj.dsNoneSubtitleEmpty': 'Tanpa token sistem, pilih palet sendiri',
  'newproj.dsNoneSubtitleSelected': 'Lewati token sistem. Agent memilih paletnya sendiri.',
  'newproj.dsCategoryFallback': 'Sistem desain',
  'newproj.dsSearch': 'Cari sistem desain...',
  'newproj.dsModeAria': 'Mode pilihan',
  'newproj.dsModeSingle': 'Tunggal',
  'newproj.dsModeMulti': 'Multi',
  'newproj.dsNoneTitle': 'Tidak ada - bebas',
  'newproj.dsNoneSub': 'Lewati token sistem. Agent memilih paletnya sendiri.',
  'newproj.dsEmpty': 'Tidak ada sistem desain yang cocok dengan "{query}".',
  'newproj.dsFootSingular': 'hanya sebagai inspirasi.',
  'newproj.dsFootPlural': 'hanya sebagai inspirasi.',
  'newproj.dsFootClear': 'Bersihkan',
  'newproj.dsBadgeDefault': 'DEFAULT',
  'newproj.dsPrimaryFallback': 'Utama',
  'newproj.surfaceImage': 'Gambar',
  'newproj.surfaceVideo': 'Video',
  'newproj.surfaceAudio': 'Audio',
  'newproj.modelLabel': 'Model',
  'newproj.modelSearch': 'Cari model…',
  'newproj.modelEmpty': 'Tidak ada model yang cocok.',
  'newproj.modelRecommended': 'Direkomendasikan',
  'newproj.modelMissingTitle': 'Pilih model',
  'newproj.modelMissingSub': 'Pilih model untuk permukaan ini.',
  'newproj.aspectLabel': 'Aspek',
  'newproj.videoLengthLabel': 'Durasi',
  'newproj.videoLengthSeconds': '{n}d',
  'newproj.audioKindLabel': 'Jenis audio',
  'newproj.audioKindMusic': 'Musik',
  'newproj.audioKindSpeech': 'Speech / TTS',
  'newproj.audioKindSfx': 'SFX',
  'newproj.audioDurationLabel': 'Durasi',
  'newproj.audioDurationSeconds': '{n}d',
  'newproj.voiceLabel': 'Suara',
  'newproj.voicePlaceholder': 'ID suara provider, opsional',
  'newproj.connectorsLabel': 'Konektor',
  'newproj.connectorsHint': 'Sumber data yang bisa diambil artifact ini.',
  'newproj.connectorsEmptyTitle': 'Belum ada konektor dikonfigurasi',
  'newproj.connectorsEmptyBody': 'Hubungkan sumber data agar live artifact dapat mengambil angka nyata, bukan placeholder.',
  'newproj.connectorsEmptyCta': 'Atur konektor ->',
  'newproj.connectorsLoading': 'Memuat konektor...',
  'newproj.connectorsCountOne': '{n} terhubung',
  'newproj.connectorsCountMany': '{n} terhubung',
  'newproj.connectorsManage': 'Kelola',
  'newproj.promptTemplateLabel': 'Templat referensi',
  'newproj.promptTemplateNoneTitle': 'Tidak ada - tulis sendiri',
  'newproj.promptTemplateNoneSub': 'Lewati galeri, jelaskan brief sendiri',
  'newproj.promptTemplateRefSub': 'Templat referensi',
  'newproj.promptTemplateSearch': 'Cari templat...',
  'newproj.promptTemplateEmpty': 'Belum ada templat untuk tipe ini.',
  'newproj.promptTemplateBodyLabel': 'Prompt (bisa diedit)',
  'newproj.promptTemplateOptimizeHint': 'Edit prompt sebelum membuat proyek agar sesuai dengan kebutuhanmu.',
  'newproj.promptTemplateBodyEmpty': 'Prompt kosong - agent tidak menerima referensi templat.',

  'newproj.deleteTemplateTitle': 'Hapus templat',
  'newproj.deleteTemplateConfirm': 'Hapus "{name}"? Tindakan ini tidak dapat dibatalkan.',
  'newproj.deleteTemplateConfirmCta': 'Hapus templat',
  'newproj.deleteTemplateError':
    'Tidak dapat menghapus templat ini. Silakan coba lagi.',
  'designs.subRecent': 'Terbaru',
  'designs.subYours': 'Desainmu',
  'designs.filterAria': 'Filter proyek',
  'designs.searchPlaceholder': 'Cari...',
  'designs.emptyNoProjects': 'Belum ada proyek.',
  'designs.emptyNoMatch': 'Tidak ada proyek yang cocok dengan pencarianmu.',
  'designs.deleteTitle': 'Hapus proyek',
  'designs.deleteConfirm': 'Hapus "{name}"?',
  'designs.cardFreeform': 'Bebas',
  'designs.badgeLive': 'Live',
  'designs.liveArtifactBadgesAria': 'Badge live artifact',
  'designs.liveCount': '{n} live',
  'designs.statusLive': 'Live artifact',
  'designs.statusArchived': 'Diarsipkan',
  'designs.statusError': 'Error',
  'designs.statusRefreshing': 'Memperbarui...',
  'designs.statusRefreshFailed': 'Refresh gagal',
  'designs.statusRefreshed': 'Diperbarui',
  'designs.status.notStarted': 'Belum dimulai',
  'designs.status.queued': 'Dalam antrean',
  'designs.status.running': 'Berjalan',
  'designs.status.awaitingInput': 'Menunggu input',
  'designs.status.succeeded': 'Selesai',
  'designs.status.published': 'Diterbitkan',
  'designs.status.failed': 'Gagal',
  'designs.status.canceled': 'Dibatalkan',
  'designs.viewToggleAria': 'Mode tampilan',
  'designs.viewGrid': 'Tampilan grid',
  'designs.viewKanban': 'Tampilan kanban',
  'designs.kanbanEmptyColumn': 'Tidak ada desain',
  'designs.deleteAria': 'Hapus proyek {name}',
  'designs.menuMore': 'More actions',
  'designs.menuRename': 'Rename',
  'designs.menuDelete': 'Delete',
  'designs.renamePrompt': 'New name for "{name}"',
  'designs.selectMode': 'Select',
  'designs.cancelSelect': 'Cancel',
  'designs.deleteSelected': 'Delete selected',
  'designs.selectedCount': '{n} selected',
  'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
  'designs.deleteSelectedSuccess': '{n} project(s) deleted successfully.',
  'designs.deleteSelectedPartial': 'Deleted {deleted} project(s); {failed} failed.',
  'designs.tagPrototype': 'Prototype',
  'designs.tagLiveArtifact': 'Live Artifact',
  'designs.tagSlide': 'Slide',
  'designs.tagMedia': 'Media',
  'designs.renameTitle': 'Rename project',
  'designs.renameSave': 'OK',
  'designs.renameCancel': 'Cancel',

  'examples.typeLabel': 'Tipe',
  'examples.surfaceLabel': 'Surface',
  'examples.surfaceWeb': 'Web',
  'examples.surfaceImage': 'Gambar',
  'examples.surfaceVideo': 'Video',
  'examples.surfaceAudio': 'Audio',
  'examples.scenarioLabel': 'Skenario',
  'examples.modeAll': 'Semua',
  'examples.modePrototypeDesktop': 'Prototype - desktop',
  'examples.modePrototypeMobile': 'Prototype - mobile',
  'examples.modeDeck': 'Slide',
  'examples.modeDocument': 'Dokumen & templat',
  'examples.modeOrbit': 'Orbit',
  'examples.modeLive': 'Langsung',
  'examples.scenarioGeneral': 'Umum',
  'examples.scenarioEngineering': 'Engineering',
  'examples.scenarioProduct': 'Produk',
  'examples.scenarioDesign': 'Desain',
  'examples.scenarioMarketing': 'Marketing',
  'examples.scenarioSales': 'Sales',
  'examples.scenarioFinance': 'Keuangan',
  'examples.scenarioHr': 'HR',
  'examples.scenarioOperations': 'Operasi',
  'examples.scenarioSupport': 'Support',
  'examples.scenarioLegal': 'Legal',
  'examples.scenarioEducation': 'Edukasi',
  'examples.scenarioPersonal': 'Personal',
  'examples.searchPlaceholder': 'Cari contoh...',
  'examples.searchAria': 'Cari contoh berdasarkan nama',
  'examples.emptyNoSkills': 'Tidak ada skill tersedia. Apakah daemon berjalan?',
  'examples.emptyNoMatch': 'Tidak ada contoh yang cocok dengan filter ini.',
  'examples.openPreview': 'Buka pratinjau',
  'examples.loadingPreview': 'Memuat pratinjau...',
  'examples.hoverPreview': 'Arahkan kursor untuk pratinjau',
  'examples.usePrompt': 'Gunakan prompt ini',
  'examples.previewModalTitle': 'Buka pratinjau penuh',
  'examples.shareTitle': 'Bagikan contoh ini',
  'examples.shareLoadFirst': 'Arahkan kursor dulu untuk memuat pratinjau',
  'examples.unavailablePlaceholder': 'Tidak ada pratinjau {kind} bawaan — buka untuk lihat detail',
  'examples.shareUnavailable': 'Tidak ada pratinjau {kind} bawaan untuk dibagikan',
  'examples.shareMenu': 'Bagikan',
  'examples.exportPdfAllSlides': 'Ekspor PDF (semua slide)',
  'examples.exportPptxLocked': 'Ekspor PPTX... (buka templat dulu)',
  'examples.tagSlideDeck': 'Slide deck',
  'examples.tagTemplate': 'Templat',
  'examples.tagDesignSystem': 'Sistem desain',
  'examples.tagMobilePrototype': 'Prototype mobile',
  'examples.tagDesktopPrototype': 'Prototype desktop',
  'examples.tagImage': 'Gambar',
  'examples.tagVideo': 'Video',
  'examples.tagAudio': 'Audio',
  'examples.previewLabel': 'Pratinjau',

  'ds.surfaceLabel': 'Surface',
  'ds.surfaceWeb': 'Web',
  'ds.surfaceImage': 'Gambar',
  'ds.surfaceVideo': 'Video',
  'ds.surfaceAudio': 'Audio',
  'ds.searchPlaceholder': 'Cari sistem desain...',
  'ds.emptyNoMatch': 'Tidak ada sistem desain yang cocok.',
  'ds.badgeDefault': 'Default',
  'ds.preview': 'Pratinjau',
  'ds.previewTitle': 'Pratinjau sistem desain',
  'ds.categoryAll': 'Semua',
  'ds.categoryUncategorized': 'Tanpa kategori',
  'ds.showcase': 'Showcase',
  'ds.tokens': 'Token',
  'ds.specToggle': 'Spesifikasi',
  'ds.specLoading': 'Memuat spesifikasi...',

  'avatar.title': 'Akun & pengaturan',
  'avatar.localCli': 'CLI lokal',
  'avatar.anthropicApi': 'Anthropic API',
  'avatar.useLocal': 'Gunakan CLI lokal',
  'avatar.useApi': 'Gunakan Anthropic API',
  'avatar.codeAgent': 'Code agent',
  'avatar.rescan': 'Pindai ulang PATH',
  'avatar.amrConsole': 'AMR account',
  'avatar.amrConsoleMeta': 'Balance & recharge',
  'avatar.settings': 'Pengaturan',
  'avatar.backToProjects': 'Kembali ke proyek',
  'avatar.metaActive': 'aktif',
  'avatar.metaOffline': 'offline',
  'avatar.metaSelected': 'dipilih',
  'avatar.noAgentSelected': 'Belum ada agent dipilih',
  'avatar.modelSection': 'Model',
  'avatar.modelLabel': 'Model',
  'avatar.reasoningLabel': 'Penalaran',
  'avatar.customSuffix': '(kustom)',

  'inlineSwitcher.chipTitle': 'Beralih CLI / model',
  'inlineSwitcher.chipCli': 'CLI Lokal',
  'inlineSwitcher.chipByok': 'BYOK',
  'inlineSwitcher.modelDefault': 'default',
  'inlineSwitcher.noAgent': 'tidak ada agen',
  'inlineSwitcher.modeLabel': 'Mode',
  'inlineSwitcher.agentLabel': 'Agen',
  'inlineSwitcher.providerLabel': 'Penyedia',
  'inlineSwitcher.modelLabel': 'Model',
  'inlineSwitcher.useCli': 'Gunakan CLI Lokal',
  'inlineSwitcher.useByok': 'Gunakan kunci API BYOK',
  'inlineSwitcher.daemonOffline': 'Daemon offline — buka pengaturan',
  'inlineSwitcher.noAgentsDetected': 'Tidak ada CLI di PATH',
  'inlineSwitcher.openSettingsForModel': 'Atur penyedia di Pengaturan',
  'inlineSwitcher.missingApiKey': 'Kunci API belum diatur — buka Pengaturan.',
  'inlineSwitcher.openFullSettings': 'Buka pengaturan eksekusi',
  'inlineSwitcher.customSuffix': '(kustom)',

  'project.backToProjects': 'Kembali ke proyek',
  'project.metaFreeform': 'Bebas',
  'project.resizeChatPanel': 'Ubah ukuran panel chat',
  'project.instructionsActive': 'Aktif — disertakan di setiap pesan',

  'chat.tabChat': 'Chat',
  'chat.tabComments': 'Komentar',
  'chat.commentsSoon': 'Komentar - segera hadir',
  'chat.comments.attached': 'Dilampirkan ke chat',
  'chat.comments.emptyAttached': 'Tidak ada komentar terlampir.',
  'chat.comments.saved': 'Komentar tersimpan',
  'chat.comments.emptySaved': 'Tidak ada komentar tersimpan.',
  'chat.comments.add': 'Tambah',
  'chat.comments.addAll': 'Tambah semua',
  'chat.comments.remove': 'Hapus',
  'chat.comments.placeholder': 'Komentari elemen ini...',
  'chat.comments.addSend': 'Tambah & kirim',
  'chat.comments.updateSend': 'Perbarui & kirim',
  'chat.comments.removeAttachment': 'Hapus lampiran komentar',
  'chat.comments.removeAttachmentAria': 'Hapus lampiran komentar untuk {name}',
  'chat.comments.comment': 'Comment',
  'chat.comments.sendToChat': 'Send to chat',
  'chat.comments.sending': 'Sending…',
  'chat.comments.edit': 'Edit',
  'chat.comments.select': 'Select',
  'chat.comments.selectAll': 'Pilih semua',
  'chat.comments.deselect': 'Deselect',
  'chat.comments.nSelected': '{n} selected',
  'chat.comments.pin': 'Pin',
  'chat.comments.addNote': 'Add note',
  'chat.comments.savedToast': 'Comment saved',
  'chat.comments.pinSavedToast': 'Pin saved',
  'chat.comments.pinAtCoords': 'at {x}, {y}',
  'chat.comments.capturedItems': '{n} captured items',
  'chat.comments.clear': 'Clear',
  'chat.comments.targetImage': 'Image',
  'chat.comments.targetControl': 'Control',
  'chat.comments.targetLink': 'Link',
  'chat.comments.targetText': 'Text',
  'chat.comments.targetSection': 'Section',
  'chat.comments.targetPage': 'Page',
  'chat.comments.targetArea': 'Area',
  'chat.annotationNotePlaceholder': 'Add a note for this mark',
  'chat.annotationAttachImage': 'Lampirkan gambar',
  'chat.annotationAttachedImages': 'Gambar terlampir',
  'chat.annotationAttachedRemove': 'Hapus gambar terakhir',
  'chat.annotationAddToInput': 'Add to input',
  'chat.annotationAddingToInput': 'Adding...',
  'chat.annotationQueue': 'Queue',
  'chat.annotationQueueing': 'Queueing...',
  'chat.annotationSending': 'Sending...',
  'chat.annotationSendDisabledReason': 'A task is currently running',
  'chat.annotationPreviewMissing': 'Could not capture the preview. Please try again.',
  'chat.annotationPreviewMissingInk': 'Could not capture the preview. Try again to avoid sending only ink.',
  'chat.annotationTimeout': 'Annotation send timed out. Please try again.',
  'chat.annotationFailed': 'Annotation send failed. Please try again.',
  'chat.annotationProjectCreateFailed': 'Could not create a project, so the annotation was not sent.',
  'chat.annotationUploadFailed': 'Attachment upload failed. Please try again.',
  'chat.inspect.noEditableTargets': 'This page has no editable elements yet.',
  'chat.inspect.noCommentTargets': 'This page has no commentable elements yet.',
  'chat.inspect.editHint': 'Click an element in the canvas to edit its styles.',
  'chat.inspect.commentHint': 'Click an element in the canvas to add a comment.',
  'chat.conversationsTitle': 'Percakapan',
  'chat.conversationsAria': 'Buka percakapan',
  'chat.newConversation': 'Percakapan baru',
  'chat.newConversationsTitle': 'Mulai percakapan baru',
  'chat.conversationsHeading': 'Percakapan',
  'chat.new': 'Baru',
  'chat.emptyConversations': 'Belum ada percakapan.',
  'chat.deleteConversation': 'Hapus percakapan',
  'chat.renameConversationLabel': 'Ganti nama "{title}"',
  'chat.deleteConversationConfirm': 'Hapus "{title}"? Semua pesannya ikut dihapus.',
  'chat.untitledConversation': 'Percakapan tanpa judul',
  'chat.forkedConversationTitle': 'Fork {title}',
  'chat.forkConversationFailed': 'Tidak dapat membuat fork percakapan ini.',
  'chat.startTitle': 'Mulai percakapan',
  'chat.startHint': "Jelaskan apa yang ingin kamu hasilkan, atau mulai dari salah satu contoh ini:",
  'chat.fillInputTitle': 'Isi brief dulu',
  'chat.jumpToLatest': 'Lompat ke terbaru',
  'chat.scrollToLatest': 'Scroll ke terbaru',
  'chat.you': 'Kamu',
  'chat.openFile': 'Buka {name}',
  'chat.copyPrompt': 'Salin prompt',
  'chat.copyDone': 'Disalin!',
  'chat.composerPlaceholder': "Jelaskan apa yang ingin kamu hasilkan…",
  'chat.activeFileEditingLabel': "Mengedit",
  'chat.activeFilePlaceholder': "Minta Open Design mengubah {file}...",
  'chat.designArtifactsShowMore': "Tampilkan {count} file desain lagi",
  'chat.mode.chat.label': 'Ask',
  'chat.mode.chat.title': 'Mode Ask',

  'chat.mode.chat.summary': 'Untuk jawaban cepat, revisi, perencanaan, dan diskusi tanpa menganggap harus membuat artefak desain.',
  'chat.mode.chat.solves': 'Gunakan untuk memperjelas ide, menyempurnakan prompt, membandingkan opsi, atau bertanya tentang pekerjaan yang sudah ada.',
  'chat.mode.chat.query1': 'Ringkas draf ini dan tunjukkan kekurangannya.',
  'chat.mode.chat.query2': 'Bantu saya memilih struktur terbaik untuk landing page ini.',
  'chat.mode.chat.query3': 'Tinjau desain ini dan sarankan perbaikan konkret.',
  'chat.mode.design.label': 'Design Agent',
  'chat.mode.design.title': 'Mode Design Agent',
  'chat.mode.design.summary': 'Untuk membuat atau mengubah output konkret: halaman, prototipe, live artifact, slide, gambar, video, HyperFrames, audio, dashboard, dan file proyek.',
  'chat.mode.design.solves': 'Gunakan saat Anda ingin Open Design membuat file, memperbarui workspace, atau mengubah brief menjadi deliverable multimodal.',
  'chat.mode.design.query1': 'Buat landing page peluncuran produk dan prototipe HyperFrames dari brief ini.',
  'chat.mode.design.query2': 'Buat deck investor 10 slide dengan catatan pembicara.',
  'chat.mode.design.query3': 'Buat konsep gambar, video, dan audio untuk kampanye ini.',
  'chat.mode.cardBestFor': 'Cocok untuk',
  'chat.mode.cardTry': 'Coba tanyakan',
  'chat.composerHint': "⌘/Ctrl + Enter untuk mengirim · sertakan tujuan, konten, gaya, dan format",
  'chat.cliSettingsTitle': 'Pengaturan CLI',
  'chat.cliSettingsAria': 'Buka pengaturan CLI',
  'chat.attachTitle': 'Lampirkan',
  'chat.attachAria': 'Lampirkan file atau konteks',
  'chat.importTitle': 'Impor',
  'chat.importLabel': 'Impor konteks',
  'chat.importComingSoon': 'Segera hadir',
  'chat.importSoon': 'Segera',
  'chat.importFig': 'File desain',
  'chat.importGitHub': 'GitHub',
  'chat.importWeb': 'Web',
  'chat.importFolder': 'Tautkan folder kode',
  'chat.importSkills': 'Skills',
  'chat.importProject': 'Proyek',
  'chat.importDesignSystemHeader': 'Pilih design system',
  'chat.importDesignSystemBack': 'Kembali',
  'chat.importDesignSystemSearch': 'Cari design system…',
  'chat.importDesignSystemEmpty': 'Tidak ada design system yang cocok dengan "{query}"',
  'chat.importDesignSystemNone': 'Tidak ada — bebas',
  'chat.importDesignSystemNoneSub': "Jangan terikat sistem pada giliran ini",
  'chat.importDesignSystemActive': 'Aktif',
  'chat.importDesignSystemSwitched': 'Design system beralih ke {title}',
  'chat.importDesignSystemFailed': "Tidak dapat mengganti design system. Silakan coba lagi.",
  'chat.importDesignSystemLoadFailed': 'Tidak dapat memuat sistem desain.',
  'chat.linkedFolderRemoveAria': 'Hapus folder tertaut {path}',
  'chat.linkedFolderNotFound': 'Folder tidak ada',
  'chat.linkedFolderAlready': 'Folder ini sudah tertaut',
  'chat.linkedFolderPickError': 'Tidak bisa membuka pemilih folder',
  'chat.queuedHeader': 'Queued',
  'chat.queuedToSend': 'to Send',
  'chat.queuedEditQueuedTaskAria': 'Edit queued task',
  'chat.queuedSave': 'Save',
  'chat.queuedCancel': 'Cancel',
  'chat.queuedReorder': 'Drag to reorder',
  'chat.queuedEdit': 'Edit',
  'chat.queuedMore': 'more queued',
  'chat.queuedFollowUpFallback': 'Queued follow-up',
  'chat.send': 'Kirim',
  'chat.stop': 'Stop',
  'chat.removeAria': 'Hapus {name}',
  'chat.example1Title': 'Pitch editorial',
  'chat.example1Tag': 'Majalah',
  'chat.example1Prompt': 'Buat pitch deck bergaya majalah untuk seed round startup AI.',
  'chat.example2Title': 'Dashboard analitik SaaS',
  'chat.example2Tag': 'Data',
  'chat.example2Prompt':
    'Buat dashboard analitik padat untuk SaaS developer tools dengan KPI, grafik MRR, peta heatmap penggunaan, kohort retensi, dan feed event real-time.',
  'chat.example3Title': 'Laporan tahunan long-scroll',
  'chat.example3Tag': 'Editorial',
  'chat.example3Prompt': 'Buat laporan tahunan long-scroll dengan hero editorial, angka utama, timeline, dan visualisasi data.',

  'preview.shareMenu': 'Bagikan',
  'preview.exportMenu': 'Export',
  'preview.shareTemplateBadge': 'Template',
  'preview.shareToX': 'X / Twitter',
  'preview.shareToReddit': 'Reddit',
  'preview.shareToFacebook': 'Facebook',
  'preview.shareToLinkedIn': 'LinkedIn',
  'preview.shareToInstagram': 'Instagram',
  'preview.shareToXiaohongshu': '小红书',
  'preview.copyTemplateLink': 'Copy template link',
  'preview.copyShareText': 'Copy share text',
  'preview.shareSocialGroup': 'Share to social',
  'preview.shareCopyGroup': 'Copy',
  'preview.shareExportGroup': 'Export files',
  'preview.shareCopied': 'Copied',
  'preview.shareCopyFailed': 'Copy failed',
  'preview.shareTextDefault': 'Open Design template: {title}',
  'preview.openInNewTab': 'Buka di tab baru',
  'preview.exit': 'Keluar',
  'preview.fullscreen': 'Layar penuh',
  'preview.closeTitle': 'Tutup pratinjau',
  'preview.loading': 'Memuat {label}...',
  'preview.errorTitle': 'Tidak dapat memuat contoh ini.',
  'preview.errorBody': 'Pengambilan HTML contoh gagal. Pastikan Open Design berjalan, lalu coba lagi.',
  'preview.retry': 'Coba lagi',
  'preview.unavailableTitle': 'Tidak ada pratinjau bawaan untuk {noun}.',
  'preview.unavailableBody': 'Jalankan prompt di chat untuk membuat keluaran {kind}.',
  'preview.nounSkill': 'skill ini',
  'preview.nounPlugin': 'plugin ini',
  'preview.nounTemplate': 'templat ini',
  'preview.showSidebar': 'Tampilkan {label}',
  'preview.hideSidebar': 'Sembunyikan {label}',

  'misc.savedTemplate': 'Templat tersimpan',
  'misc.primary': 'Utama',
  'misc.designSystem': 'Sistem desain',

  'workspace.designFiles': 'File desain',
  'workspace.focusMode': 'Fokus workspace',
  'workspace.showChat': 'Tampilkan chat',
  'workspace.closeTab': 'Tutup tab',
  'workspace.deleteFileConfirm': 'Hapus "{name}" dari folder proyek?',
  'workspace.deleteSelectedFilesConfirm': 'Hapus {n} file terpilih dari folder proyek?',
  'workspace.deleteSelectedFilesPartial': 'Gagal menghapus {n} file.',
  'workspace.openFromDesignFiles': 'Buka file dari',
  'workspace.designFilesLink': 'File desain',
  'workspace.loadingSketch': 'Memuat sketsa...',
  'workspace.newTab': 'New tab',
  'workspace.searchFilesPlaceholder': 'Search files…',
  'workspace.openFile': 'Open a file',
  'workspace.noFilesMatch': 'No files match',
  'workspace.allFiles': 'All',
  'workspace.createNew': 'Create new',
  'workspace.tabOpen': 'Open',
  'workspace.newSideChat': 'New Side Chat',
  'workspace.newSideChatDescription': 'Open a context-aware chat in a new tab',
  'workspace.sideChatContextBanner': 'Integrated context from the current conversation',
  'workspace.sideChatDefaultTitle': 'Side chat',
  'workspace.newTerminal': 'New Terminal',
  'workspace.newTerminalDescription': 'Open a shell in the project directory in a new tab',
  'workspace.newBrowser': 'Browser Baru',
  'workspace.newBrowserDescription': 'Buka tab browser bawaan untuk situs referensi dan tugas browser',
  'workspace.terminalStarting': 'Memulai terminal…',
  'workspace.terminalStartingDescription': 'Menyiapkan shell proyek. Biasanya hanya butuh beberapa detik.',
  'workspace.terminalSessionEnded': 'Session ended',
  'workspace.terminalReconnecting': 'Reconnecting…',
  'workspace.terminalStartFailed': 'Could not start the terminal session',
  'workspace.terminalRestart': 'Restart',

  'designFiles.title': 'File desain',
  'designFiles.upload': 'Upload file',
  'designFiles.pasteText': 'Tempel sebagai file teks',
  'designFiles.newSketch': 'Sketsa baru',
  'designFiles.empty': 'Belum ada file desain.',
  'designFiles.refresh': 'Refresh',
  'designFiles.delete': 'Hapus',
  'designFiles.searchPlaceholder': 'Cari file...',
  'designFiles.up': 'Naik',
  'designFiles.back': 'Kembali',
  'designFiles.crumbs': 'Proyek',
  'designFiles.rowMenu': 'Menu baris',
  'designFiles.openInTab': 'Buka di tab',
  'designFiles.download': 'Unduh',
  'designFiles.downloadSelected': 'Unduh {n} sebagai ZIP',
  'designFiles.deleteSelected': 'Hapus {n}',
  'designFiles.clearSelection': 'Bersihkan',
  'designFiles.selectPage': 'Pilih semua di halaman',
  'designFiles.selectAll': 'Pilih semua',
  'designFiles.dropTitle': 'Lepaskan file di sini',
  'designFiles.dropDesc': 'Upload file desain, gambar, dokumen, atau aset lain ke proyek ini.',
  'designFiles.upload.title': 'Upload file',
  'designFiles.paste.title': 'Tempel teks sebagai file',
  'designFiles.upload.label': 'Upload',
  'designFiles.paste.label': 'Tempel',
  'designFiles.previewOpen': 'Buka',
  'designFiles.previewClose': 'Tutup pratinjau',
  'designFiles.modified': 'Diubah {time} - {size}',
  'designFiles.weeksAgo': '{n} minggu lalu',
  'designFiles.groupBy': 'Kelompokkan menurut',
  'designFiles.groupByKind': 'Jenis',
  'designFiles.groupByModified': 'Diubah',
  'designFiles.expandGroup': 'Perluas',
  'designFiles.collapseGroup': 'Ciutkan',
  'designFiles.sectionPages': 'Halaman',
  'designFiles.sectionScripts': 'Skrip',
  'designFiles.sectionImages': 'Gambar',
  'designFiles.sectionSketches': 'Sketsa',
  'designFiles.sectionLiveArtifacts': 'Live artifact',
  'designFiles.sectionOther': 'Lainnya',
  'designFiles.modifiedToday': 'Hari ini',
  'designFiles.modifiedYesterday': 'Kemarin',
  'designFiles.modifiedPrevious7Days': '7 hari sebelumnya',
  'designFiles.modifiedPrevious30Days': '30 hari sebelumnya',
  'designFiles.modifiedOlder': 'Lebih lama',
  'designFiles.showMore': 'Tampilkan +{n} lagi',
  'designFiles.kindHtml': 'Halaman HTML',
  'designFiles.kindImage': 'Gambar',
  'designFiles.kindSketch': 'Sketsa',
  'designFiles.kindText': 'Teks',
  'designFiles.kindCode': 'Skrip',
  'designFiles.kindPdf': 'PDF',
  'designFiles.kindDocument': 'Dokumen',
  'designFiles.kindPresentation': 'Presentasi',
  'designFiles.kindSpreadsheet': 'Spreadsheet',
  'designFiles.kindLiveArtifact': 'Live artifact',
  'designFiles.kindBinary': 'Biner',
  'designFiles.kindFolder': 'Folder',
  'designFiles.folderCount': '{n} file',
  'designFiles.newFolderTitle': 'Folder baru',
  'designFiles.newFolderLabel': 'Nama folder',
  'designFiles.moveTitle': 'Pindahkan ke folder',
  'designFiles.moveLabel': 'Folder tujuan',
  'designFiles.moveRoot': 'Akar proyek',
  'designFiles.moveNewFolder': 'Folder baru…',
  'designFiles.move': 'Pindahkan',
  'designFiles.copyPath': 'Salin jalur',
  'designFiles.copiedPath': 'Jalur disalin',
  'designFiles.deleteFolderConfirm': 'Hapus folder "{name}" beserta seluruh isinya?',
  'designFiles.folderCreated': 'Folder "{name}" dibuat',
  'designFiles.folderDeleted': 'Folder "{name}" dihapus',
  'designFiles.filesMoved': 'Memindahkan {n} ke {dest}',
  'designFiles.colName': 'Nama',
  'designFiles.colKind': 'Jenis',
  'designFiles.colModified': 'Diubah',
  'designFiles.perPage': 'Tampilkan',
  'designFiles.all': 'Semua',
  'designFiles.prev': 'Sebelumnya',
  'designFiles.next': 'Berikutnya',
  'designFiles.jumpToPage': 'Lompat ke halaman',
  'designFiles.pageInfo': '{start}–{end} dari {total}',
  'designFiles.sectionFolders': 'Folders',
  'designFiles.sectionStylesheets': 'Stylesheets',
  'designFiles.sectionDocuments': 'Documents',
  'designFiles.kindStylesheet': 'Stylesheet',
  'designFiles.modifiedExt': 'Modified {time} · {size} · {ext}',
  'designFiles.usefulInfoLabel': 'Useful info',
  'designFiles.usefulInfoTip': 'Double-click any file to open it in a full tab.',

  'quickSwitcher.placeholder': 'Buka file...',
  'quickSwitcher.empty': 'Tidak ada file di proyek ini',
  'quickSwitcher.noMatches': 'Tidak ada yang cocok',
  'quickSwitcher.navigate': 'navigasi',
  'quickSwitcher.open': 'buka',
  'quickSwitcher.close': 'tutup',

  'pasteDialog.title': 'Tempel teks',
  'pasteDialog.hint': 'Disimpan ke folder proyek. Pilih nama apa saja.',
  'pasteDialog.fileNameLabel': 'Nama berkas',
  'pasteDialog.namePlaceholder': 'catatan.txt',
  'pasteDialog.contentLabel': 'Konten',
  'pasteDialog.contentPlaceholder': 'Tempel apa saja...',
  'pasteDialog.save': 'Simpan',
  'pasteDialog.cancel': 'Batal',

  'sketch.save': 'Simpan',
  'sketch.cancel': 'Batal',
  'sketch.saving': 'Menyimpan...',
  'sketch.saved': 'Tersimpan',
  'sketch.tooltipDirty': 'Ada perubahan belum disimpan',
  'sketch.tooltipClean': 'Tersimpan',

  'fileViewer.empty': 'Pilih file untuk dilihat.',
  'fileViewer.loading': 'Memuat file...',
  'fileViewer.exportPptx': 'Ekspor PPTX',
  'fileViewer.openInNewTab': 'Buka di tab baru',
  'fileViewer.copyPath': 'Salin path',
  'fileViewer.copied': 'Tersalin',
  'fileViewer.share': 'Bagikan',
  'fileViewer.binaryMeta': 'Biner - {size}',
  'fileViewer.binaryNote': 'Berkas biner ({size} byte). Unduh atau buka dari disk untuk memeriksanya.',
  'fileViewer.pdfMeta': 'PDF - {size}',
  'fileViewer.documentMeta': 'Dokumen',
  'fileViewer.presentationMeta': 'Presentasi',
  'fileViewer.spreadsheetMeta': 'Spreadsheet',
  'fileViewer.previewUnavailable': 'Pratinjau tidak tersedia untuk file ini.',
  'fileViewer.download': 'Unduh',
  'fileViewer.open': 'Buka',
  'fileViewer.imageMeta': 'Gambar - {size}',
  'fileViewer.reactMeta': 'Komponen React - {size}',
  'fileViewer.sketchMeta': 'Sketsa - {size}',
  'fileViewer.markdownStreamingMeta': 'Memuat pratinjau...',
  'fileViewer.markdownErrorMeta': 'Pratinjau mungkin belum lengkap (error generasi).',
  'fileViewer.markdownStreamingStatus': 'Memuat... menampilkan markdown sebagian.',
  'fileViewer.markdownErrorStatus': 'Error generasi. Menampilkan konten terakhir yang tersedia.',
  'fileViewer.videoMeta': 'Video - {size}',
  'fileViewer.audioMeta': 'Audio - {size}',
  'fileViewer.reload': 'Muat ulang',
  'fileViewer.reloadDisk': 'Muat ulang dari disk',
  'fileViewer.copy': 'Salin',
  'fileViewer.copyTitle': 'Salin konten',
  'fileViewer.saveDisabled': 'Tidak ada perubahan untuk disimpan',
  'fileViewer.save': 'Simpan',
  'fileViewer.preview': 'Pratinjau',
  'fileViewer.source': 'Sumber',
  'fileViewer.tweaks': 'Tweaks',
  'fileViewer.tweaksUnavailable': 'Tidak ada panel tweaks pada artefak ini',
  'fileViewer.jsxModuleTitle': 'Tidak ada pratinjau mandiri',
  'fileViewer.jsxModuleBody': 'File ini adalah modul komponen yang dimuat oleh halaman lain.',
  'fileViewer.jsxModuleCta': 'Buka halaman yang merendernya:',
  'fileViewer.comment': 'Komentar',
  'fileViewer.edit': 'Edit',
  'fileViewer.draw': 'Gambar',
  'fileViewer.mark': 'Mark',
  'fileViewer.markTool': 'Mark tool',
  'fileViewer.boxSelect': 'Box select',
  'fileViewer.screenshot': 'Screenshot',

  'manualEdit.layers': 'Lapisan',
  'manualEdit.editableCount': '{count} dapat diedit',
  'manualEdit.hiddenBadge': 'Tersembunyi',
  'manualEdit.title': 'Editor manual',
  'manualEdit.fallbackTitle': 'Edit',
  'manualEdit.movePanel': 'Move edit panel',
  'manualEdit.editParams': 'Edit parameter',
  'manualEdit.closePanel': 'Close edit panel',
  'manualEdit.selectLayer': 'Pilih lapisan',
  'manualEdit.empty': 'Klik elemen di pratinjau atau pilih lapisan.',
  'manualEdit.noEditableLayers': 'Tidak ada lapisan yang dapat diedit.',
  'manualEdit.noClass': 'tanpa class',
  'manualEdit.tabsAria': 'Tab edit manual',
  'manualEdit.tabContent': 'Konten',
  'manualEdit.tabStyle': 'Gaya',
  'manualEdit.tabAttributes': 'Atribut',
  'manualEdit.tabHtml': 'HTML',
  'manualEdit.tabSource': 'Sumber',
  'manualEdit.attributesJson': 'JSON atribut',
  'manualEdit.selectedHtml': 'HTML elemen terpilih',
  'manualEdit.fullSource': 'Sumber artifact lengkap',
  'manualEdit.applyContent': 'Terapkan konten',
  'manualEdit.applyStyle': 'Terapkan gaya',
  'manualEdit.applyAttributes': 'Terapkan atribut',
  'manualEdit.applyHtml': 'Terapkan HTML',
  'manualEdit.applySource': 'Terapkan sumber',
  'manualEdit.invalidAttributes': 'JSON atribut tidak valid.',
  'manualEdit.changes': 'Perubahan',
  'manualEdit.undo': 'Undo',
  'manualEdit.redo': 'Redo',
  'manualEdit.noChanges': 'Belum ada edit manual.',
  'manualEdit.imageUrl': 'URL gambar',
  'manualEdit.altText': 'Teks alt',
  'manualEdit.label': 'Label',
  'manualEdit.text': 'Teks',
  'manualEdit.href': 'Href',
  'manualEdit.textColor': 'Warna teks',
  'manualEdit.background': 'Latar belakang',
  'manualEdit.fontSize': 'Ukuran font',
  'manualEdit.weight': 'Bobot',
  'manualEdit.align': 'Rata',
  'manualEdit.padding': 'Padding',
  'manualEdit.margin': 'Margin',
  'manualEdit.radius': 'Radius',
  'manualEdit.border': 'Border',
  'manualEdit.width': 'Lebar',
  'manualEdit.minHeight': 'Tinggi minimum',

  'fileViewer.zoomOut': 'Perkecil',
  'fileViewer.zoomIn': 'Perbesar',
  'fileViewer.resetZoom': 'Atur ulang zoom',
  'fileViewer.viewportAria': 'Preview viewport',
  'fileViewer.viewportDesktop': 'Desktop',
  'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
  'fileViewer.viewportTablet': 'Tablet',
  'fileViewer.viewportTabletTitle': 'Tablet preview at 820 × 1180 (modern portrait baseline)',
  'fileViewer.viewportMobile': 'Mobile',
  'fileViewer.viewportMobileTitle': 'Mobile preview at 390 × 844',
  'fileViewer.reloadAria': 'Muat ulang file',
  'fileViewer.previousSlide': 'Slide sebelumnya',
  'fileViewer.nextSlide': 'Slide berikutnya',
  'fileViewer.slideNavAria': 'Navigasi slide',
  'fileViewer.present': 'Presentasikan',
  'fileViewer.presentInTab': 'Presentasikan di tab',
  'fileViewer.presentFullscreen': 'Presentasi layar penuh',
  'fileViewer.presentNewTab': 'Presentasi di tab baru',
  'fileViewer.exitPresentation': 'Keluar presentasi',
  'fileViewer.shareLabel': "Bagikan",
  'fileViewer.shareMenuShareLink': 'BAGIKAN',
  'fileViewer.shareMenuPublishOnline': 'PUBLIKASIKAN ONLINE',
  'fileViewer.shareMenuDownload': 'UNDUH',
  'fileViewer.shareMenuPresentation': 'Presentasi',
  'fileViewer.shareMenuSourceFiles': 'File sumber',
  'fileViewer.shareMenuSave': 'SIMPAN',
  'fileViewer.copyShareLink': 'Salin tautan berbagi',
  'fileViewer.openSharePage': 'Buka halaman berbagi',
  'fileViewer.shareLinkRequiresDeploy': 'Publikasikan online terlebih dahulu untuk mendapatkan tautan',
  'fileViewer.shareLinkPublishGuide': 'Publikasikan online di atas untuk mengaktifkan berbagi ↑',
  'fileViewer.shareAfterGenerationComplete': 'Berbagi tersedia setelah pembuatan selesai',
  'fileViewer.copyProviderLink': 'Copy {provider} link',
  'fileViewer.copyCloudflareLink': 'Copy Cloudflare link',
  'fileViewer.screenshotCopying': 'Copying screenshot...',
  'fileViewer.screenshotCopied': 'Screenshot copied to clipboard',
  'fileViewer.screenshotClipboardDenied': 'Browser blocked clipboard access',
  'fileViewer.screenshotPreviewLoading': 'Preview is still loading. Try again in a moment.',
  'fileViewer.screenshotCaptureFailed': 'Could not capture the preview. Please try again.',
  'fileViewer.exportPdf': 'Ekspor PDF',
  'fileViewer.exportPdfAllSlides': 'Ekspor PDF semua slide',
  'fileViewer.exportPptxBusy': 'Mengekspor PPTX...',
  'fileViewer.exportPptxHint': 'Buat deck terlebih dahulu untuk mengekspor PPTX.',
  'fileViewer.exportPptxNa': 'PPTX tidak tersedia',
  'fileViewer.exportZip': 'Ekspor ZIP',
  'fileViewer.exportHtml': 'Ekspor HTML',
  'fileViewer.exportMd': 'Ekspor Markdown',
  'fileViewer.exportImage': 'Ekspor gambar',
  'fileViewer.exportImageFailed': 'Gagal menangkap gambar. Silakan coba lagi atau gunakan alat tangkapan layar browser Anda.',
  'fileViewer.exportImageModalSubtitle': 'Pilih format, lalu unduh pratinjau saat ini sebagai gambar.',
  'fileViewer.exportImageFormatLabel': 'Format',
  'fileViewer.exportImageSaving': 'Menyimpan gambar…',
  'fileViewer.exportImageSaved': 'Gambar tersimpan',
  'fileViewer.exportImageDownloadStarted': 'Unduhan dimulai',
  'fileViewer.exportImageDownloadDetails': '{filename} ada di unduhan browser jika dialog Simpan Sebagai tidak muncul.',
  'fileViewer.exportJsx': 'Ekspor JSX',
  'fileViewer.exportReactHtml': 'Ekspor React HTML',
  'fileViewer.exportStarted': 'Export started',
  'fileViewer.saveAsTemplate': 'Simpan sebagai templat',
  'fileViewer.savingTemplate': 'Menyimpan templat...',
  'fileViewer.savedTemplate': 'Disimpan sebagai "{name}"',
  'fileViewer.savedTemplateFail': 'Gagal menyimpan templat',
  'fileViewer.templateNamePrompt': 'Nama templat',
  'fileViewer.templateNameDefault': 'Templat baru',
  'fileViewer.templateDescPrompt': 'Deskripsi templat',

  'liveArtifact.refresh.button': 'Refresh',
  'liveArtifact.refresh.buttonTitle': 'Refresh live artifact ini',
  'liveArtifact.refresh.loadingTitle': 'Memuat live artifact...',
  'liveArtifact.refresh.noSourceTitle': 'Belum ada sumber refresh yang tersedia.',
  'liveArtifact.refresh.running': 'Memperbarui...',
  'liveArtifact.refresh.runningMessage': 'Memperbarui data dan pratinjau. Ini bisa butuh waktu sebentar.',
  'liveArtifact.refresh.runningAction': 'Pratinjau sebelumnya tetap terlihat sampai refresh berhasil.',
  'liveArtifact.refresh.successOne': 'Refresh selesai. Data diperbarui.',
  'liveArtifact.refresh.successMany': 'Refresh selesai. Data diperbarui.',
  'liveArtifact.refresh.successAction': 'Pratinjau sudah dimuat ulang dengan data committed terbaru.',
  'liveArtifact.refresh.previousFailure': 'Refresh sebelumnya gagal: {message}',
  'liveArtifact.refresh.failureAction': 'Periksa riwayat refresh, perbaiki sumber atau masalah izin, lalu coba lagi.',
  'liveArtifact.refresh.networkFailure': 'Permintaan refresh gagal. Periksa koneksi lalu coba lagi.',
  'liveArtifact.refresh.genericFailure': 'Refresh gagal.',
  'liveArtifact.refresh.statusNever': 'Tidak bisa di-refresh',
  'liveArtifact.refresh.statusReady': 'Siap di-refresh',
  'liveArtifact.refresh.statusSucceeded': 'Sudah terbaru',
  'liveArtifact.refresh.statusFailed': 'Refresh gagal',
  'liveArtifact.viewer.tabPreview': 'Preview',
  'liveArtifact.viewer.tabCode': 'Code',
  'liveArtifact.viewer.tabData': 'Data',
  'liveArtifact.viewer.tabRefreshHistory': 'Refresh history',
  'liveArtifact.viewer.dataEmpty': 'No data.json cache available.',
  'liveArtifact.viewer.code.templateHeading': 'Template HTML',
  'liveArtifact.viewer.code.renderedHeading': 'Rendered HTML',
  'liveArtifact.viewer.code.templateHelp': 'The editable template used with data.json to generate the preview.',
  'liveArtifact.viewer.code.renderedHelp': 'The generated index.html currently loaded by Preview.',
  'liveArtifact.viewer.code.variantAria': 'Code variant',
  'liveArtifact.viewer.code.variantTemplate': 'Template',
  'liveArtifact.viewer.code.variantRendered': 'Rendered',
  'liveArtifact.viewer.code.loading': 'Loading code…',
  'liveArtifact.viewer.code.unavailable': 'Code is not available yet.',
  'liveArtifact.viewer.code.empty': 'This code file is empty.',
  'fileViewer.deployToVercel': 'Deploy ke Vercel',
  'fileViewer.redeployToVercel': 'Deploy ulang ke Vercel',
  'fileViewer.deployingToVercel': 'Deploying ke Vercel...',
  'fileViewer.deployProviderLabel': 'Provider',
  'fileViewer.vercelProvider': 'Vercel',
  'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
  'fileViewer.deployToProvider': 'Deploy ke {provider}',
  'fileViewer.redeployToProvider': 'Deploy ulang ke {provider}',
  'fileViewer.deployingToProvider': 'Deploying ke {provider}...',
  'fileViewer.cloudflareApiToken': 'Token API Cloudflare',
  'fileViewer.cloudflareApiTokenGetLink': 'Dapatkan token API',
  'fileViewer.cloudflareApiTokenPlaceholder': 'Tempelkan token API Cloudflare Anda',
  'fileViewer.cloudflareApiTokenReuseHint': 'Token API Cloudflare yang tersimpan akan digunakan. Masukkan token baru untuk menggantinya.',
  'fileViewer.cloudflareApiTokenRequired': 'Masukkan dan simpan token API Cloudflare terlebih dahulu.',
  'fileViewer.cloudflareApiTokenScopeHint': 'Pilih Pages Edit saat membuat token API; domain kustom memerlukan Zone Read / DNS Edit.',
  'fileViewer.cloudflareAccountId': 'ID Akun',
  'fileViewer.cloudflareAccountIdHint': 'Temukan ID akun di dasbor Cloudflare.',
  'fileViewer.cloudflareAccountIdRequired': 'Masukkan dan simpan ID Akun Cloudflare terlebih dahulu.',
  'fileViewer.cloudflareZoneLabel': 'Domain',
  'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
  'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
  'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domains…',
  'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
  'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
  'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
  'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
  'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
  'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
  'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
  'fileViewer.cloudflareCustomDomainHint': 'Opsional: hubungkan domain kustom. Jika dibiarkan kosong, tautan pages.dev tetap dibuat.',
  'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
  'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
  'fileViewer.cloudflarePagesPreviewHint': 'Deploy Cloudflare Pages menggunakan Direct Upload.',
  'fileViewer.deployProviderConfigSaveFailed': 'Tidak dapat menyimpan pengaturan {provider}.',
  'fileViewer.deployProviderFailed': 'Deploy {provider} gagal. Periksa pengaturan dan coba lagi.',
  'fileViewer.preparingPublicLink': 'Menyiapkan link publik...',
  'fileViewer.copyDeployLink': 'Salin link deploy',
  'fileViewer.deployModalTitle': 'Deploy ke Vercel',
  'fileViewer.deployModalSubtitle': 'Masukkan token Vercel untuk membuat link publik.',
  'fileViewer.vercelToken': 'Token Vercel',
  'fileViewer.vercelTokenGetLink': 'Buat token',
  'fileViewer.vercelTokenPlaceholder': 'Tempel token Vercel',
  'fileViewer.vercelTokenReuseHint': 'Token disimpan lokal untuk deploy berikutnya.',
  'fileViewer.vercelTokenRequired': 'Token Vercel wajib diisi.',
  'fileViewer.vercelTeamId': 'Team ID Vercel',
  'fileViewer.vercelTeamSlug': 'Team slug Vercel',
  'fileViewer.optional': 'opsional',
  'fileViewer.vercelPreviewOnly': 'Buat preview deployment saja',
  'fileViewer.savingConfig': 'Menyimpan konfigurasi...',
  'fileViewer.deployConfigSaveFailed': 'Gagal menyimpan konfigurasi deploy.',
  'fileViewer.deployFailed': 'Deploy gagal.',
  'fileViewer.deployResultLabel': 'Hasil deploy',
  'fileViewer.deployLinkReady': 'Siap',
  'fileViewer.deploySuccessToast': 'Deploy berhasil diunggah',
  'fileViewer.deploySuccessToastDetails': '{provider} · {url}',
  'fileViewer.deployLinkPreparingLabel': 'Link deploy sedang disiapkan',
  'fileViewer.deployLinkDelayed': 'Link publik belum siap. Coba lagi sebentar lagi.',
  'fileViewer.deployLinkFailed': 'Domain kustom gagal',
  'fileViewer.deployLinkProtectedLabel': 'Deployment dilindungi',
  'fileViewer.deployLinkProtected': 'Vercel meminta autentikasi untuk membuka link ini.',
  'fileViewer.retryLink': 'Coba link lagi',

  'questionForm.submit': 'Kirim',
  'questionForm.skip': 'Lewati',
  'questionForm.locked': 'Terkunci',

  'conv.switch': 'Ganti percakapan',
  'conv.label': 'Percakapan',
  'conv.heading': 'Percakapan',
  'conv.new': 'Baru',
  'conv.empty': 'Belum ada percakapan.',
  'conv.untitled': 'Tanpa judul',
  'conv.renameTooltip': 'Ganti nama percakapan',
  'conv.delete': 'Hapus percakapan',
  'conv.deleteConfirm': 'Hapus "{title}"? Semua pesannya ikut dihapus.',

  'agentPicker.label': 'Agent',
  'agentPicker.modeChoose': 'Pilih mode',
  'agentPicker.localCli': 'CLI lokal',
  'agentPicker.daemonOff': 'Daemon mati',
  'agentPicker.byok': 'BYOK',
  'agentPicker.selectAgent': 'Pilih agent',
  'agentPicker.noAgents': 'Tidak ada agent',
  'agentPicker.notInstalled': 'Belum terpasang',
  'agentPicker.rescan': 'Pindai ulang',

  'tool.openInTab': 'Buka {name} di tab',
  'tool.open': 'Buka',
  'tool.todos': 'Todo',
  'tool.askQuestion': 'Pertanyaan',
  'tool.askQuestionSubmit': 'Kirim',
  'tool.askQuestionPending': 'Menunggu jawabanmu',
  'tool.askQuestionAnswered': 'Dijawab',
  'tool.todosExpand': 'Tampilkan tugas',
  'tool.todosCollapse': 'Sembunyikan tugas',
  'tool.todosDone': 'Selesai',
  'tool.todosDismiss': 'Tutup daftar tugas',
  'tool.write': 'Tulis',
  'tool.edit': 'Edit',
  'tool.read': 'Baca',
  'tool.bash': 'Bash',
  'tool.glob': 'Glob',
  'tool.grep': 'Grep',
  'tool.fetch': 'Fetch',
  'tool.search': 'Cari',
  'tool.lines': '{n} baris',
  'tool.changeSingular': 'perubahan',
  'tool.changePlural': 'perubahan',
  'tool.in': 'di {path}',
  'tool.hide': 'Sembunyikan',
  'tool.output': 'Output',
  'tool.running': 'Berjalan',
  'tool.error': 'Error',
  'tool.done': 'Selesai',

  'assistant.role': 'Asisten',
  'assistant.workingLabel': 'Sedang bekerja',
  'assistant.doneLabel': 'Selesai',
  'assistant.copyMarkdown': 'Salin Markdown respons',
  'assistant.forkConversation': 'Fork dari sini',
  'assistant.forkingConversation': 'Membuat fork…',
  'assistant.feedbackPrompt': 'Masukan',
  'assistant.feedbackPositive': 'Membantu',
  'assistant.feedbackNegative': 'Tidak membantu',
  'assistant.feedbackReasonTitle': 'Tell us why',
  'assistant.feedbackReasonPositiveMatched': 'Understood my request',
  'assistant.feedbackReasonPositiveVisual': 'Looks good',
  'assistant.feedbackReasonPositiveUseful': 'Useful structure',
  'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
  'assistant.feedbackReasonPositiveDesignSystem': 'Followed the design system',
  'assistant.feedbackReasonNegativeMissed': 'Missed my request',
  'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
  'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
  'assistant.feedbackReasonNegativeHard': 'Hard to use',
  'assistant.feedbackReasonNegativeDesignSystem': 'Did not follow the design system',
  'assistant.feedbackReasonOther': 'Other',
  'assistant.feedbackReasonPlaceholder': 'Add a short note...',
  'assistant.feedbackReasonSubmit': 'Submit',
  'assistant.emptyResponseLabel': 'No output',
  'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
  'assistant.unfinishedLabel': 'Belum selesai',
  'assistant.unfinishedSummary': '{n} tugas tersisa',
  'assistant.unfinishedMore': '+{n} lagi',
  'assistant.continueRemaining': 'Lanjutkan',
  'assistant.outTokens': '{n} keluar',
  'assistant.producedFiles': 'File yang dibuat',
  'assistant.openFile': 'Buka file',
  'assistant.downloadFile': 'Unduh file',
  'nextStep.title': 'Langkah berikutnya',
  'nextStep.share': 'Bagikan',
  'nextStep.chipJoiner': ', ',
  'nextStep.chipPolishVisual': 'Buat lebih premium',
  'nextStep.chipBrand': 'Perkuat gaya merek',
  'nextStep.chipConcise': 'Ringkas teksnya',
  'nextStep.chipSecondVersion': 'Hasilkan versi kedua',
  'assistant.thinking': 'Berpikir...',
  'assistant.thought': 'Berpikir',
  'assistant.thoughtFor': 'Berpikir {s}d',
  'assistant.systemReminder': 'Pengingat sistem',
  'assistant.possiblePromptInjection': 'Kemungkinan injeksi prompt',
  'assistant.waitingFirstOutput': 'Menunggu output pertama...',
  'assistant.statusBootingAgent': 'Menyalakan agent...',
  'assistant.statusPreparing': 'Preparing...',
  'assistant.statusStarting': 'Memulai...',
  'assistant.statusRequesting': 'Mengirim permintaan...',
  'assistant.statusThinking': 'Berpikir...',
  'assistant.statusStreaming': 'Memuat...',
  'assistant.slowHint': 'Ini mungkin butuh waktu sebentar.',
  'assistant.verbEditing': 'mengedit',
  'assistant.verbWriting': 'menulis',
  'assistant.verbReading': 'membaca',
  'assistant.verbSearching': 'mencari',
  'assistant.verbRunning': 'menjalankan',
  'assistant.verbTodos': 'memperbarui todo',
  'assistant.verbFetching': 'mengambil',
  'assistant.verbCalling': 'memanggil',

  'qf.answered': 'Terjawab',
  'qf.choose': 'Pilih',
  'qf.required': 'Wajib',
  'qf.lockedSubmitted': 'Jawaban terkunci setelah dikirim.',
  'qf.lockedPrev': 'Jawaban sebelumnya',
  'qf.hint': 'Pilih opsi atau isi jawaban singkat.',
  'qf.submitDefault': 'Kirim jawaban',
  'qf.submitDisabledTitle': 'Lengkapi pertanyaan wajib dulu.',
  'qf.submitTitle': 'Kirim jawaban',
  'qf.cardSelected': 'Dipilih',
  'qf.cardRefs': 'Referensi',
  'qf.cardSampleText': 'Contoh teks',
  'questions.tabLabel': 'Questions',
  'questions.banner': 'Mind if I ask a couple of quick questions?',
  'questions.continue': 'Continue',
  'questions.generating': 'Generating questions…',
  'questions.skipAll': 'Skip all',
  'questions.autoSkipHint': 'Auto-continues when the timer ends',

  'sketch.toolSelect': 'Pilih',
  'sketch.toolPen': 'Pena',
  'sketch.toolText': 'Teks',
  'sketch.toolRect': 'Kotak',
  'sketch.toolArrow': 'Panah',
  'sketch.toolEraser': 'Penghapus',
  'sketch.color': 'Warna',
  'sketch.strokeSize': 'Ukuran garis',
  'sketch.undo': 'Undo',
  'sketch.clear': 'Bersihkan',
  'sketch.close': 'Tutup',
  'sketch.closeConfirm': 'Tutup sketsa dan buang perubahan yang belum disimpan?',
  'sketch.textPrompt': 'Teks',
  'sketch.textModalTitle': 'Tambah teks',

  'pet.title': 'Teman kerja',
  'pet.subtitle': 'Pilih teman kecil untuk melayang di workspace.',
  'pet.navTitle': 'Pets',
  'pet.navHint': 'Pilih teman untuk melayang di workspace.',
  'pet.tabBuiltIn': 'Bawaan',
  'pet.tabBuiltInHint': 'Pet pilihan yang disertakan dengan Open Design - pilih satu lalu adopsi.',
  'pet.builtInEmpty': 'Pet bawaan belum tersedia. Coba refresh tab Komunitas setelah daemon online.',
  'pet.tabCustom': 'Kustom',
  'pet.tabCustomHint': 'Buat sendiri dengan nama, glyph, warna, atau sprite.',
  'pet.tabCommunity': 'Komunitas',
  'pet.tabCommunityHint': 'Pet hasil hatch dari Codex - adopsi satu atau buat yang baru.',
  'pet.tabsAria': 'Sumber pet',
  'pet.adopt': 'Adopsi pet',
  'pet.adoptedBadge': 'Diadopsi',
  'pet.adoptCallout': 'Pet aktif akan muncul di workspace.',
  'pet.changePet': 'Ganti pet',
  'pet.wake': 'Bangunkan',
  'pet.tuck': 'Tidurkan',
  'pet.wakeTitle': 'Tampilkan pet',
  'pet.tuckTitle': 'Sembunyikan pet',
  'pet.settingsTitle': 'Kustomisasi pet',
  'pet.useCustom': 'Gunakan kustom',
  'pet.customTitle': 'Kustom Pet',
  'pet.customHint': 'Buat nama, simbol, dan sapaan sendiri.',
  'pet.customGreetingPlaceholder': 'Halo, aku siap membantu.',
  'pet.fieldName': 'Nama',
  'pet.fieldGlyph': 'Glyph',
  'pet.fieldGlyphHint': 'Satu karakter atau simbol singkat.',
  'pet.fieldGreeting': 'Sapaan',
  'pet.fieldAccent': 'Aksen',
  'pet.fieldAccentCustom': 'Kustom',
  'pet.fieldAccentDefault': 'Warna aksen default',
  'pet.overlayAria': 'Overlay pet',
  'pet.spriteAria': '{name} - geser untuk memindahkan, klik untuk chat',
  'pet.spriteTitle': 'Halo dari {name}! Klik untuk chat.',
  'pet.composerTitle': 'Pet',
  'pet.composerMenuTitle': 'Perintah pet',
  'pet.composerMenuHint': 'Kelola pet dari composer.',
  'pet.composerOpenSettings': 'Kelola Hewan Peliharaan',
  'pet.welcomeTeaserTitle': 'Tambahkan teman kecil',
  'pet.welcomeTeaserBody': 'Pet bisa menemani workspace saat agent bekerja.',
  'pet.welcomeTeaserCta': 'Pilih pet',
  'pet.imageUpload': 'Upload sprite',
  'pet.imageReplace': 'Ganti sprite',
  'pet.imageRemove': 'Gunakan emoji',
  'pet.imageHintIdle': 'PNG, JPG, WebP, GIF, atau SVG. Upload sheet? Letakkan strip horizontal dan atur jumlah frame.',
  'pet.imageHintActive': 'Sprite kamu sedang ditampilkan. Atur frame > 1 untuk menjalankan spritesheet horizontal.',
  'pet.fieldFrames': 'Frame',
  'pet.fieldFramesHint': '1 = statis. > 1 = spritesheet horizontal.',
  'pet.fieldFps': 'Kecepatan (fps)',
  'pet.fieldFpsHint': 'Seberapa cepat frame berganti.',
  'pet.atlasImport': 'Impor sprite Codex',
  'pet.atlasImportTitle': 'Impor atlas hatch-pet 8x9 / 192x208 (PNG atau WebP).',
  'pet.atlasPickerTitle': 'Pilih baris animasi',
  'pet.atlasPickerHint':
    'Pet Codex memiliki 9 baris animasi. Secara default, atlas penuh dipertahankan agar pet mengganti baris saat hover, drag, dan idle. Kamu juga bisa membekukannya ke satu loop.',
  'pet.atlasCancel': 'Buang atlas',
  'pet.atlasAdopt': 'Bekukan ke baris ini',
  'pet.atlasAdoptFull': 'Gunakan atlas penuh (animasi)',
  'pet.atlasAdoptFullTitle': 'Pertahankan semua baris agar pet bereaksi terhadap hover, arah drag, dan idle lama.',
  'pet.atlasAdoptRowTitle': 'Potong baris yang disorot menjadi satu strip loop.',
  'pet.atlasActiveHint': 'Atlas animasi aktif - pet memilih baris dari interaksimu (hover, drag, idle).',
  'pet.atlasRow.idle': 'Idle',
  'pet.atlasRow.running-right': 'Lari kanan',
  'pet.atlasRow.running-left': 'Lari kiri',
  'pet.atlasRow.waving': 'Melambai',
  'pet.atlasRow.jumping': 'Melompat',
  'pet.atlasRow.failed': 'Gagal',
  'pet.atlasRow.waiting': 'Menunggu',
  'pet.atlasRow.running': 'Berjalan',
  'pet.atlasRow.review': 'Review',
  'pet.hatchTitle': 'Hatch pet baru dengan AI',
  'pet.hatchHint': 'Gunakan skill hatch-pet bawaan di chat untuk membuat spritesheet bergaya Codex, lalu impor di sini.',
  'pet.hatchConcept': 'Konsep pet (opsional)',
  'pet.hatchConceptPlaceholder': 'mis. shiba pixel-art kecil memakai sweater nyaman',
  'pet.hatchCopy': 'Salin prompt',
  'pet.hatchCopied': 'Tersalin!',
  'pet.hatchFoot': 'Setelah skill menyimpan pet, kembali ke sini dan pilih "Impor sprite Codex".',
  'pet.slashPopoverAria': 'Perintah slash',
  'pet.slashPopoverTitle': 'Perintah',
  'pet.slashPopoverHint': 'atas/bawah untuk navigasi - enter untuk pilih - esc untuk tutup',
  'pet.slashPet': 'Toggle, adopsi, atau buka pengaturan pet.',
  'pet.slashPetWake': 'Bangunkan overlay pet melayang.',
  'pet.slashPetTuck': 'Sembunyikan pet untuk sekarang.',
  'pet.slashHatch': 'Buat pet Codex lewat skill hatch-pet.',
  'pet.slashHatchArg': '<konsep>',
  'pet.slashSearch': 'Cari web lewat perintah OD research.',
  'pet.slashSearchArg': '<kueri>',
  'pet.codexTitle': 'Baru di-hatch',
  'pet.codexSubtitle': 'Pet yang dikemas oleh skill hatch-pet muncul di sini untuk adopsi sekali klik.',
  'pet.codexSubtitleWithDir': 'Memindai {dir} untuk pet yang dikemas oleh skill hatch-pet.',
  'pet.codexEmpty': 'Belum ada pet hasil hatch. Ketik /hatch di chat untuk membuat satu.',
  'pet.codexLoading': 'Mencari pet hasil hatch...',
  'pet.codexRefresh': 'Refresh',
  'pet.codexAdopt': 'Adopsi',
  'pet.codexAdopting': 'Mengadopsi...',
  'pet.communitySync': 'Unduh pet komunitas',
  'pet.communitySyncing': 'Mengunduh...',
  'pet.communitySyncTitle': 'Sinkronkan pet terbaru dari Codex Pet Share + j20 Hatchery ke ~/.codex/pets/.',
  'pet.communitySyncDone': 'Tersinkron {wrote} pet baru ({total} total).',
  'pet.communitySyncFailed': 'Sinkronisasi gagal: {error}',
  'pet.codexBundled': 'Bawaan',
  'pet.codexBundledTitle': 'Disertakan dengan Open Design - tidak perlu diunduh.',

  'settings.notifications': 'Notifikasi',
  'settings.notificationsHint': 'Atur suara dan notifikasi desktop.',
  'settings.notifyCompletionSound': 'Suara saat selesai',
  'settings.notifyCompletionSoundHint': 'Putar suara ketika generasi selesai.',
  'settings.notifySuccessSound': 'Suara berhasil',
  'settings.notifyFailureSound': 'Suara gagal',
  'settings.notifyDesktop': 'Notifikasi desktop',
  'settings.notifyDesktopHint': 'Tampilkan notifikasi sistem saat generasi selesai.',
  'settings.notifyDesktopBlocked': 'Notifikasi diblokir oleh browser.',
  'settings.notifyDesktopUnsupported': 'Browser ini tidak mendukung notifikasi desktop.',
  'settings.notifyTest': 'Tes notifikasi',
  'settings.notifyTestSent': 'Notifikasi tes terkirim.',
  'settings.notifyTestFailed': 'Gagal mengirim notifikasi tes.',
  'settings.notifySoundDing': 'Ding',
  'settings.notifySoundChime': 'Chime',
  'settings.notifySoundTwoToneUp': 'Dua nada naik',
  'settings.notifySoundPluck': 'Pluck',
  'settings.notifySoundBuzz': 'Buzz',
  'settings.notifySoundTwoToneDown': 'Dua nada turun',
  'settings.notifySoundThud': 'Thud',
  'settings.skills': 'Keterampilan',
  'settings.skillsHint': 'Keterampilan fungsional yang dapat dipanggil agen saat tugas',
  'settings.skillsNew': 'Keterampilan baru',
  'settings.skillsEmpty': 'Pilih keterampilan di kiri, atau buat yang baru.',
  'settings.skillsEdit': 'Edit',
  'settings.skillsDelete': 'Hapus',
  'settings.skillsDeleteConfirm': 'Konfirmasi hapus',
  'settings.skillsName': 'Nama',
  'settings.skillsTriggers': 'Pemicu (dipisahkan koma atau baris baru)',
  'settings.skillsDescription': 'Deskripsi',
  'settings.skillsBody': 'Isi SKILL.md',
  'settings.skillsCreate': 'Buat',
  'settings.skillsSave': 'Simpan',
  'settings.skillsSaving': 'Menyimpan…',
  'settings.skillsFiles': 'Berkas',
    'settings.skillsNoFiles': 'Tidak ada berkas dalam folder keterampilan ini.',
  'settings.skillsNameRequired': 'Nama keterampilan wajib diisi.',
  'settings.skillsBodyRequired': 'Isi keterampilan wajib diisi.',
  'settings.designSystems': 'Sistem desain',
  'settings.designSystemsHint': 'Telusuri dan aktifkan sistem desain yang tersedia',
  'settings.designSystemsInstalled': 'Terpasang',
  'settings.designSystemsAdd': 'Tambah sistem desain',
  'settings.designSystemsHiddenCount': '{count} disembunyikan dari galeri beranda',
  'settings.designSystemsShowAll': 'Tampilkan semua',
  'settings.designSystemsShowHidden': 'Tampilkan tersembunyi',
  'settings.designSystemsSource': 'Sumber',
  'settings.designSystemsSourceLocal': 'Lokal',
  'settings.designSystemsSourceGithub': 'GitHub',
  'settings.designSystemsSourceShadcn': 'shadcn',
  'settings.designSystemsShadcnReference': 'Referensi registry shadcn',
  'settings.designSystemsImportShadcn': 'Impor dari shadcn',
  'settings.designSystemsStructure': 'Struktur',
  'settings.designSystemsModeHybrid': 'Hibrida',
  'settings.designSystemsModeNormalized': 'Dinormalisasi',
  'settings.designSystemsModeVerbatim': 'Apa adanya',
  'settings.designSystemsCraft': 'Craft',
  'settings.designSystemsCraftColor': 'Warna',
  'settings.designSystemsCraftAccessibility': 'Aksesibilitas',
  'settings.designSystemsGithubUrl': 'URL GitHub',
  'settings.designSystemsProjectPath': 'Path proyek',
  'settings.designSystemsImportGithub': 'Impor dari GitHub',
  'settings.designSystemsImportProject': 'Impor dari proyek',
  'settings.designSystemsImportedStatus': '{title} diimpor',
  'settings.designSystemsViewImported': 'Lihat sistem desain yang diimpor',
  'settings.designSystemsCategory': 'Kategori',
  'settings.designSystemsAllCategories': 'Semua kategori',
  'settings.designSystemsShowInHomeGallery': 'Tampilkan di galeri beranda',
  'settings.projectLocations': 'Lokasi proyek',
  'settings.projectLocationsHint': 'Root penyimpanan workspace',
  'settings.projectLocationsDescription': 'Tambahkan basis kerja yang dapat berisi beberapa folder proyek Open Design. Proyek baru disimpan sebagai folder di dalam basis yang dipilih.',
  'settings.projectLocationsSaveError': 'Tidak dapat menyimpan lokasi proyek. Pastikan setiap path adalah folder yang dapat diakses.',
  'settings.projectLocationsSaved': 'Lokasi proyek disimpan.',
  'settings.projectLocationsScanError': 'Tidak dapat memindai lokasi proyek.',
  'settings.projectLocationsScanComplete': 'Pemindaian selesai: {imported} diimpor, {existing} sudah terdaftar.',
  'settings.projectLocationsNoFolderSelected': 'Tidak ada folder yang dipilih.',
  'settings.projectLocationsDuplicate': 'Basis kerja itu sudah ditambahkan.',
  'settings.projectLocationsWorkBaseMeta': 'Basis kerja · proyek dibuat di sini sebagai subfolder',
  'settings.projectLocationsAddFolder': 'Tambah folder…',
  'settings.projectLocationsDefaultBadge': 'Lokasi default',
  'settings.projectLocationsMakeDefault': 'Jadikan default',
  'settings.projectLocationsDefaultSaved': 'Lokasi proyek default diperbarui.',
  'settings.librarySkills': 'Skill',
  'settings.libraryDesignSystems': 'Sistem desain',
  'settings.librarySearch': 'Cari...',
  'settings.libraryAll': 'Semua',
  'settings.libraryPreview': 'Pratinjau',
  'settings.libraryPreviewClose': 'Tutup',
  'settings.libraryLoading': 'Memuat...',
  'settings.libraryNoResults': 'Tidak ada item yang cocok dengan pencarianmu.',
  'settings.libraryEnabled': 'Aktif',
  'settings.libraryDisabled': 'Nonaktif',
  'settings.libraryToggleLabel': 'Toggle',
  // Memory (auto-extracted personalization saved as on-disk markdown)
  'settings.memory': 'Memory',
  'settings.memoryHint': 'Personal facts auto-extracted from chats',
  'settings.memoryDescription': 'Auto-extracted facts about you and your preferences. Saved as Markdown files and folded into every chat.',
  'settings.memoryEnabled': 'Enabled',
  'settings.memoryDisabled': 'Disabled',
  'settings.memoryEnableLabel': 'Enable memory injection',
  'settings.memoryDisabledBanner': 'Memory is currently OFF. Existing facts are preserved on disk but will not be folded into new chats and new turns will not extract anything new.',
  'settings.memoryNew': 'New memory',
  'settings.memoryEdit': 'Edit',
  'settings.memoryDelete': 'Delete',
  'settings.memoryPreview': 'Preview',
  'settings.memoryEmpty': 'No memory yet.',
  'settings.memoryEmptyHintZh': '记住: 用户偏好深色主题',
  'settings.memoryEmptyHintEn': 'I prefer dark mode',
  'settings.memoryName': 'Name',
  'settings.memoryDesc': 'One-line description',
  'settings.memoryBody': 'Memory body (Markdown supported)',
  'settings.memoryBodyHint': 'Lead with the rule itself; add Why and How to apply lines.',
  'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
  'settings.memoryStarterUserName': 'My role',
  'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
  'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat — frame examples around web frontend.',
  'settings.memoryStarterFeedbackName': 'UI preferences',
  'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
  'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: ≥ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
  'settings.memoryStarterProjectName': 'Current project',
  'settings.memoryStarterProjectDesc': 'Open Design v0.5 — chat-driven design editor',
  'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
  'settings.memorySaveHint': 'Not auto-saved — click Create / Save to apply.',
  'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved — click Save index to apply.',
  'settings.memoryIndexUnsaved': 'Unsaved changes',
  'settings.memoryFlashCreated': '✓ Memory created',
  'settings.memoryFlashSaved': '✓ Memory saved',
  'settings.memoryFlashDeleted': '✓ Memory deleted',
  'settings.memoryFlashIndexSaved': '✓ Index saved',
  'settings.memoryFlashPathCopied': '✓ Jalur disalin',
  'settings.memoryNameLabel': 'Title',
  'settings.memoryTypeLabel': 'Type',
  'settings.memoryDescLabel': 'Description',
  'settings.memoryBodyLabel': 'Content',
  'settings.memoryTypeUser': 'User',
  'settings.memoryTypeFeedback': 'Feedback',
  'settings.memoryTypeProject': 'Project',
  'settings.memoryTypeReference': 'Reference',
  'settings.memoryIndex': 'MEMORY.md (index)',
  'settings.memoryIndexSave': 'Save index',
  'settings.memoryIndexReset': 'Reset',
  'settings.memoryToastChanged': 'Memory updated',
  'settings.memoryToastClickHint': 'Lihat',
  'settings.memoryAll': 'All',
  'settings.memoryExtractions': 'Extraction history',
  'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
  'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
  'settings.memoryExtractionsRefresh': 'Refresh',
  'settings.memoryExtractionsRefreshing': 'Refreshing…',
  'settings.memoryExtractionPhaseRunning': 'Running…',
  'settings.memoryExtractionPhaseSuccess': 'Success',
  'settings.memoryExtractionPhaseSkipped': 'Skipped',
  'settings.memoryExtractionPhaseFailed': 'Failed',
  'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
  'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
  'settings.memoryExtractionSkipEmpty': 'Empty user message — nothing to extract.',
  'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
  'settings.memoryExtractionKindHeuristic': 'regex',
  'settings.memoryExtractionKindLlm': 'LLM',
  'settings.memoryExtractionProviderEnv': 'env',
  'settings.memoryExtractionProviderMediaConfig': 'media settings',
  'settings.memoryExtractionProposed': 'proposed',
  'settings.memoryExtractionWritten': 'written',
  'settings.memoryExtractionDuration': 'in',
  'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
  'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
  'settings.memoryExtractionProviderOverride': 'memory settings',
  'settings.memoryExtractionDelete': 'Delete',
  'settings.memoryExtractionsClear': 'Clear',
  'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
  'settings.libraryInstall': 'Instal',
  'settings.libraryInstallGithub': 'GitHub',
  'settings.libraryInstallLocal': 'Jalur lokal',
  'settings.libraryInstallUrl': 'https://github.com/owner/repo',
  'settings.libraryInstallPath': '/path/to/skill-folder',
  'settings.libraryInstallButton': 'Instal',
  'settings.libraryUninstall': 'Copot',
  'settings.libraryBuiltIn': 'Bawaan',
  'settings.libraryInstalled': 'Terinstal',

  'notify.successTitle': 'Pembuatan selesai',
  'notify.failureTitle': 'Pembuatan gagal',
  'notify.successBody': 'Artifact siap dilihat.',
  'notify.failureBody': 'Cek chat untuk detail error.',
  'updater.available': 'Update tersedia',
  'updater.availableBody': 'Open Design {version} tersedia. Update akan diunduh sebelum installer dapat dibuka.',
  'updater.checking': 'Memeriksa update',
  'updater.download': 'Unduh update',
  'updater.downloading': 'Mengunduh update',
  'updater.downloadingPercent': 'Mengunduh update {percent}%',
  'updater.done': 'Selesai',
  'updater.failed': 'Update gagal',
  'updater.installerOpenBody': 'Installer sudah terbuka. Open Design sedang ditutup agar Anda dapat menyelesaikan pembaruan.',
  'updater.installerOpened': 'Installer terbuka',
  'updater.later': 'Nanti',
  'updater.openFailedFallback': 'Installer tidak dapat dibuka.',
  'updater.openInstaller': 'Instal pembaruan',
  'updater.opening': 'Membuka installer...',
  'updater.quitButton': 'Tutup Open Design',
  'updater.quitFailedBody': 'Installer sudah terbuka, tetapi Open Design tidak dapat ditutup. Tutup Open Design sebelum mengganti aplikasi.',
  'updater.quitFailedTitle': 'Tidak dapat menutup',
  'updater.quitting': 'Menutup...',
  'updater.ready': 'Update siap',
  'updater.readyGeneric': 'Versi baru siap. Open Design akan ditutup dan membuka installer.',
  'updater.readyVersion': 'Open Design {version} siap. Open Design akan ditutup dan membuka installer.',
  'updater.upToDate': 'Anda sudah menggunakan versi terbaru.',
  'settings.memoryModelInlineLabel': 'Memory model',
  'settings.memoryModelInlineSameAsChat': 'Same as chat',
  'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
  'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
  'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
  'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
  'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider — picking a different (usually cheaper) model only changes the request body.',
  'settings.memoryModelInlineFlashSaved': 'Saved',
  'settings.memoryModelInlineFlashCleared': 'Cleared',

  // Diagnostics export
  'diagnostics.exportTitle': 'Ekspor diagnostik',
  'diagnostics.exportButton': 'Ekspor diagnostik',
  'diagnostics.exportHint': 'Mengemas log aplikasi terbaru dan info perangkat ke dalam zip untuk dibagikan ke tim.',
  'diagnostics.exporting': 'Mengekspor…',
  'diagnostics.exportSuccess': 'Diagnostik disimpan di {path}',
  'diagnostics.exportFailed': 'Gagal mengekspor diagnostik: {message}',
  'generationPreview.title': 'Membuat…',
  'generationPreview.failedTitle': 'Pembuatan gagal',
  'generationPreview.failedFallback': 'Terjadi kesalahan. Silakan coba lagi.',
  'generationPreview.footnote': 'Biasanya butuh 2–5 menit',
  'generationPreview.stepUnderstand': 'Memahami kebutuhan',
  'generationPreview.stepGenerate': 'Membuat halaman',
  'generationPreview.stepPrepare': 'Menyiapkan pratinjau',
  'generationPreview.retry': 'Coba lagi',
  'generationPreview.awaitingTitle': 'Menunggu masukan Anda',
  'generationPreview.awaitingLead': 'Jawab beberapa pertanyaan di obrolan untuk melanjutkan.',
  'generationPreview.stoppedTitle': 'Pembuatan dijeda',
  'generationPreview.stoppedLead': 'Lanjutkan langkah yang tersisa dari obrolan di kiri.',
  'generationPreview.reasonAuth': 'Login atau otorisasi kedaluwarsa',
  'generationPreview.reasonRateLimited': 'Terlalu banyak permintaan',
  'generationPreview.reasonService': 'Layanan pembuatan tidak tersedia',
  'generationPreview.reasonBalance': 'Saldo akun habis',
};
