{ "app": { "brand": "nanobot", "loading": { "connecting": "Menghubungkan ke nanobot…", "boot": "Memuat nanobot…" }, "error": { "title": "Tidak dapat menjangkau nanobot", "gatewayHint": "Pastikan gateway sedang berjalan (`nanobot gateway`) dan halaman ini dibuka pada mesin yang sama." }, "system": { "section": "Sistem", "restartHint": "Mulai ulang nanobot untuk menerapkan perubahan runtime.", "restart": "Mulai ulang nanobot", "restarting": "Memulai ulang..." }, "restart": { "completed": "Mulai ulang selesai dalam {{seconds}} dtk." }, "documentTitle": { "base": "nanobot", "chat": "{{title}} · nanobot" }, "meta": { "description": "UI web nanobot — ngobrol dengan workspace nanobot Anda." } }, "sidebar": { "collapse": "Ciutkan sidebar", "toggleTheme": "Ganti tema", "newChat": "Obrolan baru", "recent": "Terbaru", "refreshSessions": "Segarkan sesi", "settings": "Pengaturan", "language": { "label": "Bahasa", "ariaLabel": "Ganti bahasa" } }, "settings": { "backToChat": "Kembali ke obrolan", "sidebar": { "title": "Pengaturan", "ariaLabel": "Bagian pengaturan" }, "nav": { "general": "Umum", "byok": "BYOK" }, "sections": { "interface": "Antarmuka", "ai": "AI", "system": "Sistem" }, "rows": { "theme": "Tema", "language": "Bahasa", "provider": "Penyedia", "model": "Model", "restart": "Mulai ulang nanobot", "configPath": "Path konfigurasi" }, "help": { "theme": "Beralih antara tampilan terang dan gelap.", "language": "Pilih bahasa yang digunakan WebUI.", "provider": "Pilih penyedia untuk permintaan model baru.", "model": "Atur nama model default yang digunakan nanobot.", "configPath": "File konfigurasi gateway yang sedang digunakan." }, "values": { "light": "Terang", "dark": "Gelap", "notAvailable": "Tidak tersedia" }, "status": { "loading": "Memuat pengaturan...", "loadError": "Tidak dapat memuat pengaturan", "unsaved": "Ada perubahan yang belum disimpan.", "savedRestart": "Tersimpan. Mulai ulang nanobot untuk menerapkan." }, "actions": { "save": "Simpan", "saving": "Menyimpan", "edit": "Edit", "cancel": "Batal" }, "byok": { "description": "Gunakan kunci provider Anda sendiri. Nanobot membaca nilai ini dari config saat ini, dan hanya provider yang sudah dikonfigurasi yang bisa dipilih di Umum.", "configured": "Terkonfigurasi", "notConfigured": "Belum dikonfigurasi", "configuredSection": "Terkonfigurasi", "notConfiguredSection": "Belum dikonfigurasi", "showMore": "Tampilkan {{count}} lagi", "showLess": "Tampilkan lebih sedikit", "apiKey": "API key", "apiBase": "API base", "apiKeyPlaceholder": "Masukkan API key", "apiKeyConfiguredPlaceholder": "Kosongkan untuk mempertahankan key saat ini", "configuredKeyHint": "Key terkonfigurasi", "apiBasePlaceholder": "Gunakan default provider", "apiKeyRequired": "API key diperlukan untuk mengonfigurasi provider ini.", "showApiKey": "Tampilkan API key", "hideApiKey": "Sembunyikan API key", "noConfiguredProviders": "Belum ada provider terkonfigurasi", "configureFirst": "Konfigurasikan provider di BYOK terlebih dahulu.", "openByok": "Buka BYOK", "tabs": { "ariaLabel": "Jenis kredensial BYOK", "llm": "LLM", "webSearch": "Web Search" }, "webSearch": { "provider": "Search provider", "providerHelp": "Pilih backend yang digunakan alat web search.", "selectProvider": "Pilih provider", "credentials": "Kredensial", "noCredentialRequired": "Tidak perlu key", "noCredentialHelp": "DuckDuckGo berfungsi tanpa menyimpan API key.", "apiKeyHelp": "Disimpan di config dan ditampilkan tersamarkan setelah disimpan.", "baseUrl": "Base URL", "baseUrlHelp": "SearXNG memerlukan URL instance Anda sendiri.", "baseUrlPlaceholder": "https://search.example.com", "apiKeyRequired": "Provider pencarian ini memerlukan API key.", "baseUrlRequired": "SearXNG memerlukan Base URL.", "missingCredential": "Tambahkan kredensial yang diperlukan sebelum menyimpan.", "saveHint": "Perubahan berlaku untuk permintaan web search baru." } } }, "chat": { "fallbackTitle": "Obrolan {{id}}", "loading": "Memuat…", "noSessions": "Belum ada sesi.", "actions": "Aksi obrolan untuk {{title}}", "delete": "Hapus", "newChat": "Obrolan baru" }, "deleteConfirm": { "title": "Hapus obrolan ini?", "description": "Tindakan ini tidak dapat dibatalkan.", "cancel": "Batal", "confirm": "Hapus" }, "connection": { "idle": "Idle", "connecting": "Menghubungkan…", "open": "Terhubung", "reconnecting": "Menyambung ulang…", "closed": "Terputus", "error": "Kesalahan koneksi" }, "thread": { "loadingConversation": "Memuat percakapan…", "empty": { "description": "Ajukan pertanyaan, lanjutkan pekerjaan lokal, atau mulai thread baru.", "greeting": "Apa yang bisa saya bantu?", "quickActions": { "plan": { "title": "Buat rencana proyek", "prompt": "Buat rencana proyek ringkas untuk apa yang sebaiknya saya bangun berikutnya." }, "analyze": { "title": "Analisis data ini", "prompt": "Bantu saya menganalisis data ini dan soroti pola yang paling penting." }, "brainstorm": { "title": "Brainstorm ide", "prompt": "Brainstorm beberapa ide praktis dan tradeoff untuk masalah ini." }, "code": { "title": "Tulis kode", "prompt": "Bantu saya menulis kode untuk tugas ini, mulai dari perubahan berguna yang paling kecil." }, "summarize": { "title": "Ringkas dokumen ini", "prompt": "Ringkas dokumen ini dan daftar poin-poin utamanya." }, "more": { "title": "Lainnya", "prompt": "Tunjukkan beberapa cara berguna Anda dapat membantu di workspace ini." } }, "imageQuickActions": { "icon": { "title": "Desain ikon aplikasi", "prompt": "Buat ikon aplikasi 1:1 yang bersih untuk nanobot: robot ramah, gaya vektor sederhana, palet biru dan putih lembut, tanpa teks." }, "sticker": { "title": "Buat stiker", "prompt": "Buat gambar gaya stiker yang lucu dari asisten robot kecil, latar terlihat transparan, ekspresif dan menyenangkan." }, "poster": { "title": "Buat poster", "prompt": "Buat konsep poster yang rapi untuk asisten AI pribadi, komposisi modern, hierarki visual kuat, cocok untuk landing page." }, "product": { "title": "Mockup produk", "prompt": "Buat gambar mockup produk yang bersih untuk aplikasi web AI percakapan, antarmuka minimal, pencahayaan premium, bingkai perangkat realistis." }, "portrait": { "title": "Potret bergaya", "prompt": "Buat potret bergaya dari pendamping AI yang ramah, pencahayaan lembut, detail tetapi tetap mudah didekati, gaya ilustrasi modern." }, "edit": { "title": "Edit gambar", "prompt": "Bantu saya mengedit gambar. Minta saya mengunggah atau menyebutkan gambar terlebih dahulu, lalu buat hasil editnya." } } }, "header": { "toggleSidebar": "Tampilkan atau sembunyikan sidebar" }, "composer": { "placeholderThread": "Ketik pesan Anda…", "placeholderHero": "Apa yang sedang Anda pikirkan?", "placeholderOpening": "Membuka obrolan baru…", "placeholderStreaming": "Model sedang merespons…", "inputAria": "Input pesan", "sendHint": "Enter untuk kirim · Shift+Enter untuk baris baru", "runRuntimeTitle": "Berjalan · {{elapsed}}", "goalStateStrip": "Tujuan · {{label}}", "goalStateFallback": "Tujuan", "goalStateExpandAria": "Lihat tujuan lengkap", "goalStateSheetTitle": "Tujuan", "send": "Kirim pesan", "stop": "Hentikan respons", "attachImage": "Lampirkan gambar", "imageMode": { "label": "Buat gambar", "toggle": "Alihkan mode pembuatan gambar", "placeholder": "Deskripsikan atau edit gambar…", "aspectAria": "Rasio aspek gambar", "aspectLabel": "Rasio gambar", "aspect": { "auto": "Otomatis", "1_1": "Persegi 1:1", "3_4": "Potret 3:4", "9_16": "Story 9:16", "4_3": "Lanskap 4:3", "16_9": "Lebar 16:9" } }, "encoding": "Memproses…", "remove": "Hapus lampiran", "normalizedSizeHint": "{{orig}} → {{current}} (auto)", "imageRejected": { "unsupported_type": "Tipe file tidak didukung", "too_many_images": "Maksimal {{max}} gambar per pesan", "magic_mismatch": "File ini tampaknya bukan gambar asli", "decode_failed": "Tidak dapat mendekode gambar ini", "too_large": "Gambar terlalu besar — coba yang lebih kecil", "io": "Tidak dapat membaca file ini" }, "slash": { "ariaLabel": "Perintah slash", "label": "perintah", "navigateHint": "↑↓ Pilih", "selectHint": "Enter/Tab Sisipkan", "closeHint": "Esc Tutup", "commands": { "new": { "title": "Obrolan baru", "description": "Hentikan tugas saat ini dan mulai percakapan baru." }, "stop": { "title": "Hentikan tugas saat ini", "description": "Batalkan giliran agent yang sedang aktif di chat ini." }, "restart": { "title": "Mulai ulang nanobot", "description": "Mulai ulang proses bot di tempat." }, "status": { "title": "Tampilkan status", "description": "Tampilkan status runtime, provider, dan channel." }, "history": { "title": "Tampilkan riwayat", "description": "Cetak N pesan percakapan tersimpan terbaru." }, "dream": { "title": "Jalankan Dream", "description": "Picu konsolidasi memori secara manual." }, "dream_log": { "title": "Tampilkan log Dream", "description": "Tampilkan perubahan dari konsolidasi Dream terakhir." }, "dream_restore": { "title": "Pulihkan memori", "description": "Kembalikan memori ke snapshot Dream sebelumnya." }, "goal": { "title": "Tujuan jangka panjang", "description": "Instruksikan agen memperlakukan ini sebagai tujuan multi-langkah yang berkelanjutan." }, "help": { "title": "Tampilkan bantuan", "description": "Daftar perintah slash yang tersedia." } } }, "goalStateCloseAria": "Tutup tujuan" }, "scrollToBottom": "Gulir ke bawah", "loadEarlier": "Muat pesan sebelumnya" }, "message": { "streaming": "sedang mengalir", "assistantTyping": "Asisten sedang mengetik", "toolSingle": "Menggunakan sebuah alat", "toolMany": "Menggunakan {{count}} alat", "toolSummary": "{{count}} alat", "toolSummaryMany": "{{count}} alat", "reasoningTools": "Penalaran · {{count}} alat", "reasoningToolsSingular": "Penalaran · 1 alat", "reasoning": "Penalaran", "reasoningStreaming": "Berpikir…", "reasoningSummary": "Penalaran", "agentActivitySummary": "{{reasoning}} langkah · {{tools}} panggilan alat", "agentActivityToolsOnly": "{{tools}} panggilan alat", "agentActivityLiveSummary": "Berjalan… · {{reasoning}} langkah · {{tools}} panggilan alat", "agentActivityLiveToolsOnly": "Berjalan… · {{tools}} panggilan alat", "imageAttachment": "Lampiran gambar", "turnLatencyTitle": "Waktu respons (ujung ke ujung)" }, "lightbox": { "title": "Pratinjau gambar", "open": "Lihat gambar", "prev": "Gambar sebelumnya", "next": "Gambar berikutnya", "close": "Tutup pratinjau" }, "code": { "fallbackLanguage": "kode", "copyAria": "Salin kode", "copy": "Salin", "copied": "Tersalin" }, "common": { "dismiss": "Tutup" }, "errors": { "messageTooBig": { "title": "Pesan terlalu besar", "body": "Server menolak pesan terakhir karena melebihi batas ukuran. Hapus beberapa gambar atau gunakan berkas yang lebih kecil, lalu coba lagi." } } }