Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/http/react-ui/i18next-parser.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export default {
locales: ['en', 'it', 'es', 'de', 'zh-CN'],
locales: ['en', 'it', 'es', 'de', 'zh-CN', 'id'],
defaultNamespace: 'common',
output: 'public/locales/$LOCALE/$NAMESPACE.json',
input: ['src/**/*.{js,jsx}'],
Expand Down
85 changes: 85 additions & 0 deletions core/http/react-ui/public/locales/id/admin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"manage": {
"title": "Sistem",
"subtitle": "Kelola model dan backend yang terinstal"
},
"settings": {
"title": "Pengaturan",
"subtitle": "Konfigurasi pengaturan runtime LocalAI",
"saved": "Pengaturan berhasil disimpan",
"saveFailed": "Gagal menyimpan: {{message}}",
"loadFailed": "Gagal memuat pengaturan: {{message}}",
"sections": {
"branding": "Branding",
"watchdog": "Watchdog",
"memory": "Memori",
"backends": "Backend",
"performance": "Performa",
"tracing": "Tracing",
"api": "API & CORS",
"p2p": "P2P",
"galleries": "Galeri",
"apikeys": "API Key",
"agents": "Agent Job",
"agentpool": "Agent Pool",
"assistant": "Asisten LocalAI",
"responses": "Respons"
}
},
"backends": {
"title": "Manajemen Backend",
"subtitle": "Temukan dan instal backend AI untuk mendukung model Anda"
},
"backendLogs": {
"title": "Log Backend",
"subtitle": "Lihat log dari backend yang sedang berjalan",
"empty": "Tidak ada log yang tersedia"
},
"traces": {
"title": "Trace",
"subtitle": "Lihat log permintaan API, respons, dan operasi backend"
},
"nodes": {
"title": "Node Terdistribusi",
"subtitle": "Kelola node backend dan node worker"
},
"p2p": {
"title": "Komputasi AI Terdistribusi",
"subtitle": "Skalakan beban kerja AI Anda ke beberapa perangkat dengan distribusi peer-to-peer"
},
"users": {
"title": "Pengguna",
"subtitle": "Kelola pengguna terdaftar, peran, dan undangan"
},
"usage": {
"title": "Penggunaan",
"subtitle": "Statistik penggunaan token API",
"sources": {
"tab": "Sumber",
"mixTitle": "Campuran sumber",
"ribbonAria": "{{apikey}}% API Key, {{web}}% Web UI, {{legacy}}% Legasi",
"topSources": "Sumber teratas dari waktu ke waktu",
"searchPlaceholder": "Cari berdasarkan nama atau awalan",
"sortBy": "Urutkan",
"sortTokens": "Token",
"sortRequests": "Permintaan",
"sortLastUsed": "Terakhir digunakan",
"sortName": "Nama",
"sortUser": "Pengguna",
"webUI": "Web UI",
"legacy": "Legasi",
"revoked": " dicabut",
"filteredTo": "Difilter ke: {{name}}",
"clearFilter": "Hapus filter",
"other": "Lainnya ({{count}})",
"noTrafficShort": "Tidak ada permintaan dalam periode ini.",
"noKeysYet": "Setelah permintaan masuk, Anda akan melihat rinciannya di sini.",
"createKey": "Buat API Key pertama Anda",
"truncatedWarning": "Menampilkan 200 key teratas. Terapkan filter untuk mempersempit pencarian."
}
},
"explorer": {
"title": "Penjelajah",
"subtitle": "Jelajahi file dan konfigurasi"
}
}
55 changes: 55 additions & 0 deletions core/http/react-ui/public/locales/id/agents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"title": "Agen",
"subtitle": "Kelola agen AI otonom",
"actions": {
"agentHub": "Pusat Agen",
"import": "Impor",
"createAgent": "Buat Agen",
"edit": "Edit",
"chat": "Obrolan",
"export": "Ekspor",
"delete": "Hapus",
"pause": "Jeda",
"resume": "Lanjutkan"
},
"table": {
"name": "Nama",
"status": "Status",
"events": "Event",
"actions": "Aksi",
"eventsTooltip": "{{count}} event - Klik untuk melihat"
},
"search": {
"placeholder": "Cari agen...",
"summary_one": "{{shown}} dari {{total}} agen",
"summary_other": "{{shown}} dari {{total}} agen"
},
"empty": {
"noConfigured": "Belum ada agen yang dikonfigurasi",
"noConfiguredText": "Buat agen untuk memulai alur kerja AI otonom.",
"browseHub": "Tidak tahu harus mulai dari mana? Jelajahi <1>Pusat Agen</1> untuk menemukan konfigurasi agen siap pakai yang bisa Anda impor.",
"noMatching": "Tidak ada agen yang cocok",
"noMatchingText": "Tidak ada agen yang cocok dengan \"{{query}}\""
},
"sections": {
"yourAgents": "Agent Anda",
"otherUsersAgents": "Agent Pengguna Lain"
},
"deleteDialog": {
"title": "Hapus Agen",
"message": "Hapus agen \"{{name}}\"? Tindakan ini tidak dapat dibatalkan.",
"confirm": "Hapus"
},
"toasts": {
"loadFailed": "Gagal memuat agen: {{message}}",
"deleted": "Agen \"{{name}}\" berhasil dihapus",
"deleteFailed": "Gagal menghapus agen: {{message}}",
"paused": "Agen \"{{name}}\" dijeda",
"resumed": "Agen \"{{name}}\" dilanjutkan",
"pauseFailed": "Gagal menjeda agen: {{message}}",
"resumeFailed": "Gagal melanjutkan agen: {{message}}",
"exported": "Agen \"{{name}}\" berhasil diekspor",
"exportFailed": "Gagal mengekspor agen: {{message}}",
"parseFailed": "Gagal melakukan parse file agen: {{message}}"
}
}
112 changes: 112 additions & 0 deletions core/http/react-ui/public/locales/id/auth.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
"login": {
"subtitle": "Masuk untuk melanjutkan",
"registerSubtitle": "Buat akun",
"createAdminSubtitle": "Buat akun admin Anda",
"tokenSubtitle": "Masukkan API key Anda untuk melanjutkan",
"email": "Email",
"emailPlaceholder": "anda@example.com",
"name": "Nama",
"namePlaceholder": "Nama Anda (opsional)",
"password": "Kata Sandi",
"passwordPlaceholder": "Masukkan kata sandi...",
"newPasswordPlaceholder": "Minimal 12 karakter",
"confirmPassword": "Konfirmasi Kata Sandi",
"confirmPasswordPlaceholder": "Ulangi kata sandi",
"inviteCodeLabel": "Kode Undangan",
"inviteCodeOptional": " (opsional — lewati waktu tunggu persetujuan)",
"inviteCodePlaceholder": "Tempel kode undangan Anda...",
"tokenPlaceholder": "Masukkan API key...",
"tokenAltPlaceholder": "Masukkan token API...",
"signIn": "Masuk",
"signingIn": "Sedang masuk...",
"register": "Daftar",
"creatingAccount": "Membuat akun...",
"createAdminAccount": "Buat Akun Admin",
"signInWithGitHub": "Masuk dengan GitHub",
"signInWithSSO": "Masuk dengan SSO",
"loginWithToken": "Masuk dengan Token",
"showTokenLogin": "Masuk dengan Token API",
"hideTokenLogin": "Sembunyikan Token API",
"noAccount": "Belum punya akun?",
"hasAccount": "Sudah punya akun?",
"or": "atau",
"errors": {
"loginFailed": "Gagal masuk",
"registrationFailed": "Gagal mendaftar",
"invalidToken": "Token tidak valid",
"passwordsDoNotMatch": "Kata sandi tidak cocok",
"enterToken": "Silahkan masukkan token",
"networkError": "Eror jaringan",
"inviteRequired": "Kode undangan yang valid diperlukan untuk mendaftar"
},
"messages": {
"registrationPending": "Pendaftaran berhasil, menunggu persetujuan."
}
},
"account": {
"title": "Akun",
"subtitle": "Profil, kredensial, dan API key",
"unavailable": "Akun tidak tersedia",
"unavailableText": "Autentikasi harus diaktifkan untuk mengelola akun Anda.",
"tabs": {
"profile": "Profil",
"security": "Keamanan",
"apiKeys": "API Key"
},
"profile": {
"displayName": "Nama tampilan",
"displayNameDescription": "Nama tampilan publik Anda",
"avatarUrl": "URL Avatar",
"avatarUrlDescription": "URL ke gambar profil Anda",
"avatarUrlPlaceholder": "https://example.com/avatar.png",
"save": "Simpan",
"saving": "Menyimpan...",
"updated": "Profil berhasil diperbarui",
"updateFailed": "Gagal memperbarui profil: {{message}}"
},
"security": {
"currentPassword": "Kata sandi saat ini",
"currentPasswordDescription": "Masukkan kata sandi Anda saat ini untuk memverifikasi identitas Anda",
"currentPasswordPlaceholder": "Kata sandi saat ini",
"newPassword": "Kata sandi baru",
"newPasswordDescription": "Minimal harus 12 karakter",
"newPasswordPlaceholder": "Kata sandi baru",
"confirmPassword": "Konfirmasi kata sandi",
"confirmPasswordDescription": "Masukkan kembali kata sandi baru Anda",
"confirmPasswordPlaceholder": "Konfirmasi kata sandi baru",
"changePassword": "Ubah kata sandi",
"changing": "Mengubah...",
"changed": "Kata sandi berhasil diubah",
"passwordsDoNotMatch": "Kata sandi tidak cocok",
"tooShort": "Kata sandi baru minimal harus 12 karakter",
"oauthOnly": "Manajemen kata sandi tidak tersedia untuk akun {{provider}}."
},
"apiKeys": {
"create": "Buat API key",
"createDescription": "Buat key untuk akses terprogram",
"namePlaceholder": "Nama key (misal: my-app)",
"createButton": "Buat",
"creating": "Membuat...",
"createdToast": "API key berhasil dibuat",
"createFailed": "Gagal membuat API key: {{message}}",
"loadFailed": "Failed to load API keys: {{message}}",
"revoke": "Cabut",
"revokeKey": "Cabut key",
"revokeTitle": "Cabut API Key",
"revokeMessage": "Cabut API key \"{{name}}\"? Tindakan ini tidak dapat dibatalkan.",
"revoked": "API key dicabut",
"revokeFailed": "Gagal mencabut API key: {{message}}",
"copyNow": "Salin sekarang — key ini tidak akan ditampilkan lagi",
"copiedToast": "Berhasil disalin ke papan klip",
"copyFailed": "Gagal menyalin",
"empty": "Belum ada API key. Buat satu di atas untuk akses terprogram.",
"lastUsed": "terakhir digunakan {{date}}"
}
},
"notFound": {
"title": "Halaman Tidak Ditemukan",
"text": "Sepertinya halaman yang Anda cari tidak ditemukan. Mari kembalikan ke halaman sebelumnya.",
"goHome": "Kembali ke Beranda"
}
}
117 changes: 117 additions & 0 deletions core/http/react-ui/public/locales/id/chat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"activity": {
"thought": "Penalaran",
"tool": "Alat",
"result": "Hasil",
"toolResult": "Hasil {{name}}",
"thinking": "Berpikir..."
},
"header": {
"manageModeTooltip": "Obrolan ini dapat menginstal model, mengedit konfigurasi, dan mengelola backend dengan berbicara melalui LocalAI.",
"modelInfo": "Info model",
"chatSettings": "Pengaturan Obrolan",
"modelInfoTitle": "Info model: {{model}}",
"editConfig": "Edit konfigurasi",
"close": "Tutup"
},
"modelInfo": {
"backend": "Backend",
"modelFile": "File model",
"contextSize": "Ukuran konteks",
"threads": "Thread",
"mcp": "MCP",
"configured": "Dikonfigurasi",
"chatTemplate": "Templat Obrolan",
"yes": "Ya",
"gpuLayers": "Layer GPU"
},
"context": {
"label": "Konteks: {{percent}}%",
"labelWithTokens": "Konteks: {{percent}}% ({{tokens}} tokens)"
},
"settings": {
"title": "Pengaturan Obrolan",
"manageMode": "Mode Manajemen",
"manageModeDesc": "Izinkan obrolan ini menginstal model, mengganti backend, dan mengedit konfigurasi dengan berbicara melalui LocalAI.",
"systemPrompt": "System Prompt",
"systemPromptPlaceholder": "Anda adalah asisten yang membantu...",
"temperature": "Temperatur",
"topP": "Top P",
"topK": "Top K",
"contextSize": "Ukuran Konteks",
"contextSizePlaceholder": "2048",
"clearHistory": "Hapus riwayat obrolan"
},
"empty": {
"manageTitle": "Kelola LocalAI dengan obrolan",
"manageText": "Izinkan untuk menginstal model, mengganti backend, mengedit konfigurasi, atau memeriksa status. Asisten akan merangkum tindakan dan menunggu konfirmasi Anda sebelum mengubah apa pun.",
"startTitle": "Mulai percakapan",
"readyText": "Siap untuk mengobrol dengan {{model}}",
"selectModelText": "Pilih model di atas untuk memulai",
"suggestionsManage": [
"Apa saja yang terinstal?",
"Instal model obrolan",
"Tampilkan status sistem",
"Perbarui backend"
],
"suggestionsChat": [
"Jelaskan cara kerjanya",
"Bantu saya menulis kode",
"Rangkum dokumen",
"Gali ide"
],
"recent": "Terbaru",
"noMessages": "Belum ada pesan",
"hintEnter": "Enter untuk mengirim",
"hintShiftEnter": "Shift+Enter untuk baris baru",
"hintAttach": "Lampirkan file"
},
"errors": {
"viewTraces": "Lihat trace untuk detailnya"
},
"actions": {
"copy": "Salin",
"regenerate": "Hasilkan ulang"
},
"streaming": {
"transferring": "Mentransfer model...",
"transferringTo": "Mentransfer model ke {{node}}..."
},
"tokens": {
"perSec": "{{count}} tok/s",
"peak": "Puncak: {{count}} tok/s",
"usage": "{{prompt}}p + {{completion}}c = {{total}}"
},
"input": {
"placeholder": "Pesan...",
"attachFile": "Lampirkan file",
"stopGenerating": "Hentikan pembuatan",
"canvasTitle": "Canvas — ekstrak blok kode dan media ke panel samping untuk pratinjau, salin, dan unduh",
"canvasLabel": "Canvas",
"openCanvas": "Buka panel canvas"
},
"deleteAllDialog": {
"title": "Hapus Semua Obrolan",
"message": "Hapus semua obrolan? Tindakan ini tidak dapat dibatalkan.",
"confirm": "Hapus semua"
},
"toasts": {
"selectModel": "Silahkan pilih model",
"copied": "Berhasil disalin ke papan klip",
"copyFailed": "Gagal menyalin ke papan klip"
},
"menu": {
"trigger": "Obrolan",
"triggerTitle": "Percakapan (Ctrl/Cmd+K)",
"search": "Cari percakapan...",
"clearSearch": "Hapus pencarian",
"noMatch": "Tidak ada percakapan yang cocok dengan pencarian Anda",
"noConversations": "Belum ada percakapan",
"rename": "Ubah nama",
"exportMarkdown": "Ekspor sebagai Markdown",
"deleteChat": "Hapus obrolan",
"newChat": "Obrolan baru",
"clearAll": "Hapus semua",
"deleteAllTitle": "Hapus semua percakapan"
}
}
Loading