This commit is contained in:
2025-12-01 17:21:38 +08:00
parent 32fee2b8ab
commit fab8c13cb3
7511 changed files with 996300 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
const translation = {
noData: {
title: 'Tidak ada anotasi',
description: 'Anda dapat mengedit anotasi selama penelusuran kesalahan aplikasi atau mengimpor anotasi secara massal di sini untuk respons berkualitas tinggi.',
},
table: {
header: {
answer: 'Jawaban',
question: 'pertanyaan',
createdAt: 'dibuat di',
hits: 'Kecocokan',
addAnnotation: 'Tambahkan Anotasi',
bulkImport: 'Impor Massal',
clearAllConfirm: 'Menghapus semua anotasi?',
bulkExport: 'Ekspor Massal',
clearAll: 'Hapus Semua',
actions: 'Tindakan',
},
},
editModal: {
answerPlaceholder: 'Ketik jawaban Anda di sini',
removeThisCache: 'Hapus Anotasi ini',
title: 'Edit Balas Anotasi',
yourAnswer: 'Jawaban Anda',
queryName: 'Kueri Pengguna',
queryPlaceholder: 'Ketik kueri Anda di sini',
yourQuery: 'Pertanyaan Anda',
createdAt: 'Dibuat di',
answerName: 'Bot Pendongeng',
},
addModal: {
answerName: 'Jawaban',
title: 'Tambahkan Anotasi Balasan',
queryName: 'Pertanyaan',
createNext: 'Tambahkan respons beranotasi lainnya',
queryPlaceholder: 'Ketik kueri di sini',
answerPlaceholder: 'Ketik jawaban di sini',
},
batchModal: {
ok: 'OKE',
content: 'puas',
error: 'Kesalahan Impor',
runError: 'Menjalankan batch gagal',
run: 'Jalankan Batch',
cancel: 'Membatalkan',
title: 'Impor Massal',
browse: 'Telusuri',
template: 'Unduh templat di sini',
tip: 'File CSV harus sesuai dengan struktur berikut:',
answer: 'Jawaban',
contentTitle: 'konten potongan',
processing: 'Dalam pemrosesan batch',
completed: 'Impor selesai',
csvUploadTitle: 'Seret dan lepas file CSV Anda di sini, atau',
question: 'pertanyaan',
},
list: {
delete: {
title: 'Apakah Anda yakin Hapus?',
},
},
batchAction: {
selected: 'Dipilih',
delete: 'Menghapus',
cancel: 'Membatalkan',
},
errorMessage: {
queryRequired: 'Pertanyaan diperlukan',
answerRequired: 'Jawaban diperlukan',
},
viewModal: {
hit: 'Kecocokan',
hitHistory: 'Riwayat Kecocokan',
noHitHistory: 'Tidak ada riwayat kecocokan',
annotatedResponse: 'Balas Anotasi',
hits: 'Kecocokan',
},
hitHistoryTable: {
response: 'Jawaban',
match: 'Kecocokan',
query: 'Kueri',
source: 'Sumber',
time: 'Waktu',
score: 'Skor',
},
initSetup: {
confirmBtn: 'Simpan & Aktifkan',
configTitle: 'Pengaturan Balasan Anotasi',
title: 'Pengaturan Awal Balasan Anotasi',
configConfirmBtn: 'Simpan',
},
title: 'Anotasi',
name: 'Balas Anotasi',
embeddingModelSwitchTip: 'Model vektorisasi teks anotasi, model switching akan disematkan kembali, menghasilkan biaya tambahan.',
editBy: 'Jawaban diedit oleh {{author}}',
}
export default translation

View File

@@ -0,0 +1,85 @@
const translation = {
merMaid: {
rerender: 'Ulangi Render Ulang',
},
apiKeyModal: {
lastUsed: 'TERAKHIR DIGUNAKAN',
secretKey: 'Kunci Rahasia',
apiSecretKey: 'Kunci rahasia API',
created: 'DIBUAT',
apiSecretKeyTips: 'Untuk mencegah penyalahgunaan API, lindungi Kunci API Anda. Hindari menggunakannya sebagai teks biasa dalam kode front-end. :)',
generateTips: 'Simpan kunci ini di tempat yang aman dan mudah diakses.',
createNewSecretKey: 'Membuat kunci Rahasia baru',
},
actionMsg: {
deleteConfirmTips: 'Tindakan ini tidak dapat dibatalkan.',
ok: 'OKE',
deleteConfirmTitle: 'Hapus kunci rahasia ini?',
},
completionMode: {
createCompletionApi: 'Membuat Pesan Penyelesaian',
messageIDTip: 'ID Pesan',
messageFeedbackApi: 'Umpan balik pesan (mis. spam, tidak relevan, pujian)',
ratingTip: '(mis. suka/tidak suka), null berarti membatalkan penilaian',
parametersApi: 'Dapatkan informasi parameter aplikasi',
parametersApiTip: 'Ambil parameter Input yang dikonfigurasi, termasuk nama variabel, nama bidang, jenis, dan nilai default. Biasanya digunakan untuk menampilkan bidang ini dalam formulir atau mengisi nilai default setelah klien dimuat.',
info: 'Untuk pembuatan teks berkualitas tinggi, seperti artikel, ringkasan, dan terjemahan, gunakan API pesan penyelesaian dengan input pengguna. Pembuatan teks bergantung pada parameter model dan templat prompt yang ditetapkan di Dify Prompt Engineering.',
createCompletionApiTip: 'Buat Pesan Penyelesaian untuk mendukung mode tanya jawab.',
title: 'API Aplikasi Penyelesaian',
blocking: 'Jenis pemblokiran, menunggu eksekusi selesai dan mengembalikan hasil. (Permintaan dapat terganggu jika prosesnya panjang)',
streaming: 'streaming kembali. Implementasi pengembalian streaming berdasarkan SSE (Server-Sent Events).',
inputsTips: '(Opsional) Berikan bidang input pengguna sebagai pasangan kunci-nilai, sesuai dengan variabel di Prompt Eng. Kunci adalah nama variabel, Nilai adalah nilai parameter. Jika jenis bidang adalah Pilih, Nilai yang dikirimkan harus menjadi salah satu pilihan prasetel.',
messageFeedbackApiTip: 'Beri peringkat pesan yang diterima atas nama pengguna akhir yang suka atau tidak suka. Data ini terlihat di halaman Log & Anotasi dan digunakan untuk penyempurnaan model di masa mendatang.',
queryTips: 'Konten teks input pengguna.',
},
chatMode: {
messageFeedbackApiTip: 'Beri peringkat pesan yang diterima atas nama pengguna akhir yang suka atau tidak suka. Data ini terlihat di halaman Log & Anotasi dan digunakan untuk penyempurnaan model di masa mendatang.',
conversationRenamingApiTip: 'Ganti nama percakapan; Nama ditampilkan di antarmuka klien multi-sesi.',
conversationRenamingNameTip: 'Nama baru',
chatMsgHistoryFirstId: 'ID rekaman obrolan pertama di halaman saat ini. Defaultnya tidak ada.',
conversationsListApiTip: 'Mendapatkan daftar sesi pengguna saat ini. Secara default, 20 sesi terakhir ditampilkan.',
title: 'API Aplikasi Obrolan',
chatMsgHistoryApi: 'Mendapatkan pesan riwayat obrolan',
blocking: 'Jenis pemblokiran, menunggu eksekusi selesai dan mengembalikan hasil. (Permintaan dapat terganggu jika prosesnya panjang)',
createChatApi: 'Buat pesan obrolan',
info: 'Untuk aplikasi percakapan serbaguna yang menggunakan format Tanya Jawab, panggil API pesan obrolan untuk memulai dialog. Pertahankan percakapan yang sedang berlangsung dengan meneruskan conversation_id yang dikembalikan. Parameter respons dan templat bergantung pada pengaturan Dify Prompt Eng.',
conversationIdTip: '(Opsional) ID Percakapan: kosongkan untuk percakapan pertama kali; Teruskan conversation_id dari konteks untuk melanjutkan dialog.',
queryTips: 'Konten input/pertanyaan pengguna',
conversationsListLimitTip: 'Berapa banyak obrolan yang dikembalikan dalam satu permintaan',
chatMsgHistoryLimit: 'Berapa banyak obrolan yang dikembalikan dalam satu permintaan',
conversationsListFirstIdTip: 'ID rekaman terakhir di halaman saat ini, default tidak ada.',
messageFeedbackApi: 'Umpan balik pengguna terminal pesan (mis. spam, tidak relevan, pujian)',
parametersApi: 'Dapatkan informasi parameter aplikasi',
streaming: 'streaming kembali. Implementasi pengembalian streaming berdasarkan SSE (Server-Sent Events).',
inputsTips: '(Opsional) Berikan bidang input pengguna sebagai pasangan kunci-nilai, sesuai dengan variabel di Prompt Eng. Kunci adalah nama variabel, Nilai adalah nilai parameter. Jika jenis bidang adalah Pilih, Nilai yang dikirimkan harus menjadi salah satu pilihan prasetel.',
parametersApiTip: 'Ambil parameter Input yang dikonfigurasi, termasuk nama variabel, nama bidang, jenis, dan nilai default. Biasanya digunakan untuk menampilkan bidang ini dalam formulir atau mengisi nilai default setelah klien dimuat.',
chatMsgHistoryConversationIdTip: 'ID Percakapan',
messageIDTip: 'ID Pesan',
createChatApiTip: 'Buat pesan percakapan baru atau lanjutkan dialog yang ada.',
chatMsgHistoryApiTip: 'Halaman pertama mengembalikan bilah \'batas\' terbaru, yang dalam urutan terbalik.',
conversationsListApi: 'Dapatkan daftar percakapan',
ratingTip: '(mis. suka/tidak suka), null berarti membatalkan penilaian',
conversationRenamingApi: 'Penggantian nama percakapan',
},
develop: {
query: 'Kueri',
toc: 'Isi',
pathParams: 'Parameter Jalur',
requestBody: 'Isi Permintaan',
},
apiServer: 'Server API',
copied: 'Disalin',
copy: 'Salin',
ok: 'OK',
regenerate: 'Hasilkan Ulang',
status: 'Status',
never: 'Tidak pernah',
playing: 'Sedang Memutar',
play: 'Putar',
disabled: 'Dinonaktifkan',
apiKey: 'Kunci API',
pause: 'Jeda',
loading: 'Memuat...',
}
export default translation

View File

@@ -0,0 +1,564 @@
const translation = {
pageTitle: {
line1: 'CEPAT',
line2: 'Teknik',
},
promptMode: {
advancedWarning: {
ok: 'OKE',
description: 'Dalam Mode Pakar, Anda dapat mengedit seluruh PROMPT.',
learnMore: 'Pelajari lebih lanjut',
title: 'Anda telah beralih ke Mode Pakar, dan setelah Anda memodifikasi PROMPT, Anda TIDAK DAPAT kembali ke mode dasar.',
},
operation: {
addMessage: 'Tambahkan Pesan',
},
contextMissing: 'Komponen konteks terlewatkan, efektivitas prompt mungkin tidak baik.',
switchBack: 'Beralih kembali',
simple: 'Beralih ke Mode Pakar untuk mengedit seluruh PROMPT',
advanced: 'Mode Ahli',
},
operation: {
applyConfig: 'Menerbitkan',
automatic: 'Menghasilkan',
addFeature: 'Tambahkan Fitur',
cancelDisagree: 'Batalkan ketidaksukaan',
stopResponding: 'Berhenti merespons',
disagree: 'tidak suka',
debugConfig: 'Awakutu',
agree: 'suka',
userAction: 'Pengguna',
cancelAgree: 'Batalkan seperti',
resetConfig: 'Reset',
},
notSetAPIKey: {
title: 'Kunci penyedia LLM belum diatur',
description: 'Kunci penyedia LLM belum diatur, dan perlu diatur sebelum debugging.',
settingBtn: 'Buka pengaturan',
trailFinished: 'Jejak selesai',
},
trailUseGPT4Info: {
description: 'Gunakan gpt-4, silakan atur Kunci API.',
title: 'Tidak mendukung gpt-4 sekarang',
},
feature: {
groupChat: {
title: 'Peningkatan obrolan',
description: 'Menambahkan pengaturan pra-percakapan untuk aplikasi dapat meningkatkan pengalaman pengguna.',
},
groupExperience: {
title: 'Pengalaman meningkatkan',
},
conversationOpener: {
description: 'Dalam aplikasi obrolan, kalimat pertama yang AI secara aktif berbicara kepada pengguna biasanya digunakan sebagai sambutan.',
title: 'Pembuka Percakapan',
},
suggestedQuestionsAfterAnswer: {
description: 'Menyiapkan saran pertanyaan berikutnya dapat memberi pengguna obrolan yang lebih baik.',
title: 'Tindak lanjut',
tryToAsk: 'Cobalah untuk bertanya',
resDes: '3 saran untuk pertanyaan pengguna berikutnya.',
},
moreLikeThis: {
tip: 'Menggunakan fitur ini akan dikenakan overhead token tambahan',
description: 'Buat beberapa teks sekaligus, lalu edit dan lanjutkan membuat',
title: 'Lebih seperti ini',
generateNumTip: 'Jumlah setiap kali yang dihasilkan',
},
speechToText: {
resDes: 'Input suara diaktifkan',
title: 'Ucapan ke Teks',
description: 'Input suara dapat digunakan dalam obrolan.',
},
textToSpeech: {
resDes: 'Teks ke Audio diaktifkan',
title: 'Teks ke Ucapan',
description: 'Pesan percakapan dapat diubah menjadi ucapan.',
},
citation: {
description: 'Tampilkan dokumen sumber dan bagian atribut dari konten yang dihasilkan.',
title: 'Kutipan dan Atribusi',
resDes: 'Kutipan dan Atribusi diaktifkan',
},
annotation: {
scoreThreshold: {
accurateMatch: 'Kecocokan yang Akurat',
title: 'Ambang Skor',
description: 'Digunakan untuk menetapkan ambang batas kesamaan untuk balasan anotasi.',
easyMatch: 'Pencocokan Mudah',
},
matchVariable: {
choosePlaceholder: 'Pilih variabel pencocokan',
title: 'Cocokkan Variabel',
},
add: 'Menambahkan anotasi',
cached: 'Beranotasi',
description: 'Anda dapat menambahkan respons berkualitas tinggi secara manual ke cache untuk pencocokan prioritas dengan pertanyaan pengguna serupa.',
edit: 'Edit anotasi',
resDes: 'Respons Anotasi diaktifkan',
cacheManagement: 'Anotasi',
remove: 'Buka',
title: 'Balas Anotasi',
removeConfirm: 'Hapus anotasi ini ?',
},
dataSet: {
queryVariable: {
choosePlaceholder: 'Pilih variabel kueri',
tip: 'Variabel ini akan digunakan sebagai input kueri untuk pengambilan konteks, mendapatkan informasi konteks yang terkait dengan input variabel ini.',
unableToQueryDataSet: 'Tidak dapat mengkueri Pengetahuan',
title: 'Variabel kueri',
noVar: 'Non-variabel',
unableToQueryDataSetTip: 'Tidak dapat berhasil mengkueri Pengetahuan, silakan pilih variabel kueri konteks di bagian konteks.',
contextVarNotEmpty: 'Variabel kueri konteks tidak dapat kosong',
deleteContextVarTip: 'Variabel ini telah ditetapkan sebagai variabel kueri konteks, dan menghapusnya akan berdampak pada penggunaan normal Pengetahuan. Jika Anda masih perlu menghapusnya, silakan pilih kembali di bagian konteks.',
ok: 'OKE',
noVarTip: 'silakan buat variabel di bawah bagian Variabel',
deleteContextVarTitle: 'Hapus variabel “{{varName}}”?',
},
notSupportSelectMulti: 'Saat ini hanya mendukung satu Pengetahuan',
selectTitle: 'Pilih referensi Pengetahuan',
toCreate: 'Pergi ke membuat',
noDataSet: 'Tidak ada Pengetahuan yang ditemukan',
noData: 'Anda dapat mengimpor Pengetahuan sebagai konteks',
title: 'Pengetahuan',
selected: 'Pengetahuan yang dipilih',
},
tools: {
modal: {
toolType: {
title: 'Jenis Alat',
placeholder: 'Silakan pilih jenis alat',
},
name: {
title: 'Nama',
placeholder: 'Silakan masukkan nama',
},
variableName: {
placeholder: 'Silakan masukkan nama variabel',
title: 'Nama Variabel',
},
title: 'Alat',
},
tips: 'Alat menyediakan metode panggilan API standar, mengambil input atau variabel pengguna sebagai parameter permintaan untuk mengkueri data eksternal sebagai konteks.',
title: 'Perkakas',
toolsInUse: '{{count}} alat yang digunakan',
},
conversationHistory: {
editModal: {
assistantPrefix: 'Awalan asisten',
userPrefix: 'Awalan pengguna',
title: 'Mengedit Nama Peran Percakapan',
},
description: 'Menetapkan nama awalan untuk peran percakapan',
title: 'Riwayat Percakapan',
learnMore: 'Pelajari lebih lanjut',
tip: 'Riwayat Percakapan tidak diaktifkan, silakan tambahkan <histories> di prompt di atas.',
},
toolbox: {
title: 'TOOLBOX',
},
moderation: {
modal: {
provider: {
openaiTip: {
suffix: '.',
prefix: 'OpenAI Moderation memerlukan kunci OpenAI API yang dikonfigurasi di',
},
title: 'Penyedia',
keywords: 'Kata kunci',
openai: 'Moderasi OpenAI',
},
keywords: {
line: 'Garis',
placeholder: 'Satu per baris, dipisahkan oleh jeda baris',
tip: 'Satu per baris, dipisahkan oleh jeda baris. Hingga 100 karakter per baris.',
},
content: {
preset: 'Balasan yang telah ditetapkan sebelumnya',
input: 'Konten INPUT Moderatif',
output: 'Konten OUTPUT Moderatif',
errorMessage: 'Balasan prasetel tidak boleh kosong',
condition: 'Konten INPUT dan OUTPUT moderat mengaktifkan setidaknya satu',
placeholder: 'Konten balasan preset di sini',
supportMarkdown: 'Penurunan harga didukung',
fromApi: 'Balasan prasetel dikembalikan oleh API',
},
openaiNotConfig: {
after: '',
before: 'OpenAI Moderation memerlukan kunci OpenAI API yang dikonfigurasi di',
},
title: 'Setelan moderasi konten',
},
title: 'Moderasi konten',
outputEnabled: 'HASIL',
contentEnableLabel: 'Moderasi konten diaktifkan',
inputEnabled: 'MASUKAN',
allEnabled: 'MASUKAN & KELUARAN',
description: 'Amankan output model dengan menggunakan API moderasi atau mempertahankan daftar kata yang sensitif.',
},
fileUpload: {
title: 'Unggah File',
supportedTypes: 'Jenis File Dukungan',
numberLimit: 'Upload maksimal',
modalTitle: 'Pengaturan Unggahan File',
description: 'Kotak input obrolan memungkinkan pengunggahan gambar, dokumen, dan file lainnya.',
},
imageUpload: {
supportedTypes: 'Jenis File Dukungan',
description: 'Izinkan mengunggah gambar.',
modalTitle: 'Pengaturan Unggahan Gambar',
numberLimit: 'Upload maksimal',
title: 'Unggah Gambar',
},
bar: {
empty: 'Aktifkan fitur untuk meningkatkan pengalaman pengguna aplikasi web',
enableText: 'Fitur Diaktifkan',
manage: 'Urus',
},
documentUpload: {
title: 'Surat',
description: 'Aktifkan Dokumen akan memungkinkan model untuk mengambil dokumen dan menjawab pertanyaan tentangnya.',
},
audioUpload: {
title: 'Audio',
description: 'Aktifkan Audio akan memungkinkan model untuk memproses file audio untuk transkripsi dan analisis.',
},
},
codegen: {
title: 'Pembuat Kode',
noDataLine2: 'Pratinjau kode akan ditampilkan di sini.',
apply: 'Berlaku',
instruction: 'Peraturan',
description: 'Pembuat Kode menggunakan model yang dikonfigurasi untuk menghasilkan kode berkualitas tinggi berdasarkan instruksi Anda. Harap berikan instruksi yang jelas dan terperinci.',
loading: 'Menghasilkan kode...',
overwriteConfirmMessage: 'Tindakan ini akan menimpa kode yang ada. Apakah Anda ingin melanjutkan?',
generate: 'Menghasilkan',
generatedCodeTitle: 'Kode yang Dihasilkan',
overwriteConfirmTitle: 'Menimpa kode yang ada?',
resTitle: 'Kode yang Dihasilkan',
instructionPlaceholder: 'Masukkan deskripsi terperinci tentang kode yang ingin Anda hasilkan.',
applyChanges: 'Terapkan Perubahan',
noDataLine1: 'Jelaskan kasus penggunaan Anda di sebelah kiri,',
},
generate: {
template: {
pythonDebugger: {
name: 'Debugger Python',
instruction: 'Bot yang dapat menghasilkan dan men-debug kode Anda berdasarkan instruksi Anda',
},
translation: {
name: 'Terjemahan',
instruction: 'Penerjemah yang dapat menerjemahkan berbagai bahasa',
},
professionalAnalyst: {
name: 'Analis profesional',
instruction: 'Ekstrak wawasan, identifikasi risiko, dan suling informasi penting dari laporan panjang ke dalam satu memo',
},
excelFormulaExpert: {
name: 'Pakar rumus Excel',
instruction: 'Chatbot yang dapat membantu pengguna pemula memahami, menggunakan, dan membuat rumus Excel berdasarkan instruksi pengguna',
},
travelPlanning: {
name: 'Perencanaan perjalanan',
instruction: 'Asisten Perencanaan Perjalanan adalah alat cerdas yang dirancang untuk membantu pengguna merencanakan perjalanan mereka dengan mudah',
},
SQLSorcerer: {
instruction: 'Mengubah bahasa sehari-hari menjadi kueri SQL',
name: 'Penyihir SQL',
},
GitGud: {
instruction: 'Hasilkan perintah Git yang sesuai berdasarkan tindakan kontrol versi yang dijelaskan pengguna',
name: 'Git gud',
},
meetingTakeaways: {
name: 'Kesimpulan rapat',
instruction: 'Suling rapat menjadi ringkasan ringkas termasuk topik diskusi, poin penting, dan item tindakan',
},
writingsPolisher: {
name: 'Menulis pemoles',
instruction: 'Gunakan teknik copyediting canggih untuk meningkatkan tulisan Anda',
},
},
overwriteMessage: 'Menerapkan prompt ini akan mengganti konfigurasi yang ada.',
title: 'Prompt Generator',
tryIt: 'Cobalah',
idealOutputPlaceholder: 'Jelaskan format respons ideal Anda, panjang, nada, dan persyaratan konten...',
resTitle: 'Prompt yang Dihasilkan',
overwriteTitle: 'Ganti konfigurasi yang ada?',
optional: 'Fakultatif',
instruction: 'Peraturan',
versions: 'Versi',
to: 'ke',
press: 'Peras',
latest: 'Terbaru',
version: 'Versi',
generate: 'Menghasilkan',
loading: 'Mengatur aplikasi untuk Anda...',
optimizePromptTooltip: 'Optimalkan di Prompt Generator',
apply: 'Berlaku',
instructionPlaceHolderLine3: 'Nadanya terlalu keras, tolong buat lebih ramah.',
optimizationNote: 'Catatan Pengoptimalan',
dismiss: 'Mengabaikan',
description: 'Prompt Generator menggunakan model yang dikonfigurasi untuk mengoptimalkan prompt untuk kualitas yang lebih tinggi dan struktur yang lebih baik. Silakan tulis instruksi yang jelas dan terperinci.',
idealOutput: 'Keluaran Ideal',
codeGenInstructionPlaceHolderLine: 'Semakin detail umpan balik, seperti jenis data input dan output serta bagaimana variabel diproses, semakin akurat pembuatan kode.',
newNoDataLine1: 'Tulis instruksi di kolom kiri, dan klik Hasilkan untuk melihat respons.',
instructionPlaceHolderTitle: 'Jelaskan bagaimana Anda ingin meningkatkan Prompt ini. Misalnya:',
instructionPlaceHolderLine1: 'Buat output lebih ringkas, pertahankan poin-poin inti.',
insertContext: 'Sisipkan konteks',
instructionPlaceHolderLine2: 'Format keluarannya salah, harap ikuti format JSON dengan ketat.',
},
resetConfig: {
title: 'Mengonfirmasi reset?',
message: 'Atur ulang membuang perubahan, memulihkan konfigurasi terakhir yang diterbitkan.',
},
errorMessage: {
queryRequired: 'Teks permintaan diperlukan.',
waitForImgUpload: 'Silakan tunggu gambar diunggah',
notSelectModel: 'Silakan pilih model',
waitForResponse: 'Harap tunggu hingga respons terhadap pesan sebelumnya selesai.',
waitForBatchResponse: 'Harap tunggu hingga respons terhadap tugas batch selesai.',
waitForFileUpload: 'Harap tunggu file/file diunggah',
nameOfKeyRequired: 'nama kunci: {{key}} diperlukan',
valueOfVarRequired: 'Nilai {{key}} tidak boleh kosong',
},
warningMessage: {
timeoutExceeded: 'Hasil tidak ditampilkan karena batas waktu. Silakan lihat log untuk mengumpulkan hasil lengkap.',
},
variableTable: {
action: 'Tindakan',
typeString: 'String',
typeSelect: 'Pilih',
type: 'Jenis Masukan',
key: 'Kunci Variabel',
name: 'Nama Bidang Input Pengguna',
},
varKeyError: {
canNoBeEmpty: '{{key}} wajib diisi',
tooLong: '{{key}} terlalu panjang. Tidak boleh lebih dari 30 karakter',
notValid: '{{key}} tidak valid. Hanya boleh berisi huruf, angka, dan garis bawah',
notStartWithNumber: '{{key}} tidak dapat diawali dengan angka',
keyAlreadyExists: '{{key}} sudah ada',
},
otherError: {
queryNoBeEmpty: 'Kueri harus diatur dalam prompt',
historyNoBeEmpty: 'Riwayat percakapan harus diatur dalam prompt',
promptNoBeEmpty: 'Prompt tidak bisa kosong',
},
variableConfig: {
'file': {
image: {
name: 'Citra',
},
audio: {
name: 'Audio',
},
document: {
name: 'Dokumen',
},
video: {
name: 'Video',
},
custom: {
name: 'Jenis file lainnya',
description: 'Tentukan jenis file lainnya.',
createPlaceholder: ' Ekstensi file, misalnya .doc',
},
supportFileTypes: 'Jenis File Dukungan',
},
'errorMsg': {
atLeastOneOption: 'Setidaknya satu opsi diperlukan',
labelNameRequired: 'Nama label diperlukan',
optionRepeat: 'Memiliki opsi pengulangan',
varNameCanBeRepeat: 'Nama variabel tidak dapat diulang',
},
'string': 'Teks Singkat',
'single-file': 'File Tunggal',
'labelName': 'Nama Label',
'number': 'Angka',
'json': 'Kode JSON',
'optional': 'fakultatif',
'addOption': 'Tambahkan opsi',
'checkbox': 'Kotak centang',
'hide': 'Menyembunyikan',
'required': 'Diperlukan',
'maxLength': 'Panjang maks',
'select': 'Pilih',
'paragraph': 'Paragraf',
'options': 'Pilihan',
'apiBasedVar': 'Variabel berbasis API',
'varName': 'Nama Variabel',
'editModalTitle': 'Edit Bidang Input',
'multi-files': 'Daftar File',
'text-input': 'Teks Singkat',
'content': 'Puas',
'inputPlaceholder': 'Silakan masukkan',
'selectDefaultValue': 'Pilih nilai default',
'fieldType': 'Jenis bidang',
'addModalTitle': 'Tambahkan Bidang Input',
'stringTitle': 'Opsi kotak teks formulir',
'jsonSchema': 'Skema JSON',
'noDefaultValue': 'Tidak ada nilai default',
'defaultValue': 'Nilai default',
'localUpload': 'Unggahan Lokal',
'maxNumberOfUploads': 'Jumlah upload maksimal',
'both': 'Keduanya',
'uploadFileTypes': 'Unggah Jenis File',
'unit': 'Satuan',
'startChecked': 'Mulai diperiksa',
'placeholder': 'Placeholder',
'uploadMethod': 'Metode Unggah',
'noDefaultSelected': 'Jangan pilih',
'defaultValuePlaceholder': 'Masukkan nilai default untuk mengisi kolom sebelumnya',
'showAllSettings': 'Tampilkan Semua Pengaturan',
'tooltips': 'Tooltip',
'displayName': 'Nama Tampilan',
'tooltipsPlaceholder': 'Masukkan teks bermanfaat yang ditampilkan saat mengarahkan kursor ke label',
'startSelectedOption': 'Mulai opsi yang dipilih',
'unitPlaceholder': 'Tampilkan unit setelah angka, misalnya token',
'placeholderPlaceholder': 'Masukkan teks untuk ditampilkan saat bidang kosong',
'description': 'Pengaturan untuk variabel {{varName}}',
'notSet': 'Belum diatur, coba ketik {{input}} di prompt awalan',
'maxNumberTip': 'Dokumen < {{docLimit}}, gambar < {{imgLimit}}, audio < {{audioLimit}}, video < {{videoLimit}}',
},
vision: {
visionSettings: {
both: 'Keduanya',
high: 'Tinggi',
uploadMethod: 'Metode Unggah',
title: 'Pengaturan Penglihatan',
localUpload: 'Unggahan Lokal',
low: 'Rendah',
uploadLimit: 'Batas Unggahan',
resolution: 'Resolusi',
url: 'URL',
resolutionTooltip: 'res rendah akan memungkinkan model menerima versi gambar resolusi rendah 512 x 512, dan merepresentasikan gambar dengan anggaran 65 token. Ini memungkinkan API memberikan respons lebih cepat dan menggunakan lebih sedikit token input untuk kasus penggunaan yang tidak memerlukan detail tinggi.\n\nres tinggi pertama-tama memungkinkan model melihat gambar resolusi rendah dan kemudian membuat potongan gambar yang lebih detail sebagai kotak 512px berdasarkan ukuran gambar input. Setiap potongan detail menggunakan dua kali anggaran token sehingga totalnya menjadi 129 token.',
},
settings: 'Pengaturan',
description: 'Aktifkan Penglihatan akan memungkinkan model untuk mengambil gambar dan menjawab pertanyaan tentangnya.',
onlySupportVisionModelTip: 'Hanya mendukung model penglihatan',
name: 'Penglihatan',
},
voice: {
voiceSettings: {
autoPlayEnabled: 'Di atas',
voice: 'Suara',
language: 'Bahasa',
title: 'Pengaturan Suara',
autoPlay: 'Putar Otomatis',
autoPlayDisabled: 'Dinonaktifkan',
resolutionTooltip: 'Bahasa pendukung suara text-to-speech。',
},
settings: 'Pengaturan',
defaultDisplay: 'Suara Default',
description: 'Pengaturan suara teks ke ucapan',
name: 'Suara',
},
openingStatement: {
openingQuestion: 'Pertanyaan Pembuka',
add: 'Tambah',
writeOpener: 'Edit pembuka',
title: 'Pembuka Percakapan',
noDataPlaceHolder: 'Memulai percakapan dengan pengguna dapat membantu AI menjalin hubungan yang lebih dekat dengan mereka dalam aplikasi percakapan.',
tooShort: 'Setidaknya 20 kata prompt awal diperlukan untuk menghasilkan pidato pembuka untuk percakapan.',
placeholder: 'Tulis pesan pembuka Anda di sini, Anda bisa menggunakan variabel, coba ketik {{variable}}.',
openingQuestionPlaceholder: 'Anda bisa menggunakan variabel, coba ketik {{variable}}.',
varTip: 'Anda dapat menggunakan variabel, coba ketik {{variable}}',
notIncludeKey: 'Prompt awal tidak menyertakan variabel: {{key}}. Harap tambahkan ke prompt awal.',
},
modelConfig: {
modeType: {
completion: 'Lengkap',
chat: 'Mengobrol',
},
title: 'Model dan Parameter',
model: 'Pola',
setTone: 'Atur nada respons',
},
inputs: {
queryPlaceholder: 'Silakan masukkan teks permintaan.',
run: 'Jalankan',
completionVarTip: 'Isi nilai variabel, yang akan secara otomatis diganti dengan kata-kata prompt setiap kali pertanyaan diajukan.',
noVar: 'Isi nilai variabel, yang akan secara otomatis diganti dalam kata prompt setiap kali sesi baru dimulai.',
noPrompt: 'Coba tulis beberapa prompt dalam input pra-prompt',
previewTitle: 'Pratinjau prompt',
userInputField: 'Bidang Input Pengguna',
queryTitle: 'Kueri konten',
title: 'Debug & Pratinjau',
chatVarTip: 'Isi nilai variabel, yang akan secara otomatis diganti dalam kata prompt setiap kali sesi baru dimulai',
},
datasetConfig: {
retrieveOneWay: {
title: 'Pengambilan N-ke-1',
description: 'Berdasarkan maksud pengguna dan deskripsi Pengetahuan, Agen secara mandiri memilih Pengetahuan terbaik untuk kueri. Terbaik untuk aplikasi dengan Pengetahuan yang berbeda dan terbatas.',
},
retrieveMultiWay: {
title: 'Pengambilan multi-jalur',
description: 'Berdasarkan maksud pengguna, kueri di semua Pengetahuan, mengambil teks yang relevan dari berbagai sumber, dan memilih hasil terbaik yang cocok dengan kueri pengguna setelah peringkat ulang.',
},
rerankModelRequired: 'Model Rerank yang dikonfigurasi diperlukan',
top_k: 'K Teratas',
score_threshold: 'Ambang Skor',
settingTitle: 'Pengaturan pengambilan',
score_thresholdTip: 'Digunakan untuk mengatur ambang kesamaan untuk pemfilteran potongan.',
retrieveChangeTip: 'Memodifikasi mode indeks dan mode pengambilan dapat memengaruhi aplikasi yang terkait dengan Pengetahuan ini.',
embeddingModelRequired: 'Model Penyematan yang dikonfigurasi diperlukan',
params: 'Parameter',
top_kTip: 'Digunakan untuk memfilter potongan yang paling mirip dengan pertanyaan pengguna. Sistem juga akan secara dinamis menyesuaikan nilai Top K, sesuai dengan max_tokens model yang dipilih.',
knowledgeTip: 'Klik tombol " " untuk menambahkan pengetahuan',
},
assistantType: {
chatAssistant: {
description: 'Membuat asisten berbasis obrolan menggunakan Model Bahasa Besar',
name: 'Asisten Dasar',
},
agentAssistant: {
description: 'Bangun Agen cerdas yang dapat secara mandiri memilih alat untuk menyelesaikan tugas',
name: 'Asisten Agen',
},
name: 'Jenis Asisten',
},
agent: {
agentModeType: {
ReACT: 'Bereaksi',
functionCall: 'Fungsi Panggilan',
},
setting: {
maximumIterations: {
name: 'Iterasi Maksimum',
description: 'Membatasi jumlah iterasi yang dapat dijalankan oleh asisten agen',
},
description: 'Pengaturan Asisten Agen memungkinkan pengaturan mode agen dan fitur lanjutan seperti perintah bawaan, hanya tersedia dalam jenis Agen.',
name: 'Pengaturan Agen',
},
tools: {
enabled: 'Diaktifkan',
name: 'Perkakas',
description: 'Menggunakan alat dapat memperluas kemampuan LLM, seperti mencari di internet atau melakukan perhitungan ilmiah',
},
agentModeDes: 'Mengatur jenis mode inferensi untuk agen',
firstPrompt: 'Prompt Pertama',
buildInPrompt: 'Perintah Bawaan',
agentMode: 'Mode Agen',
nextIteration: 'Iterasi Berikutnya',
promptPlaceholder: 'Tulis prompt Anda di sini',
},
orchestrate: 'Mengatur',
chatSubTitle: 'Peraturan',
variableTitle: 'Variabel',
variableTip: 'Pengguna mengisi variabel dalam formulir, secara otomatis mengganti variabel dalam perintah.',
formattingChangedText: 'Memodifikasi pemformatan akan mengatur ulang area debug, apakah Anda yakin?',
completionSubTitle: 'Prompt Awalan',
debugAsMultipleModel: 'Debug sebagai Beberapa Model',
publishAs: 'Publikasikan sebagai',
autoAddVar: 'Variabel yang tidak ditentukan direferensikan dalam pra-prompt, apakah Anda ingin menambahkannya dalam formulir input pengguna?',
debugAsSingleModel: 'Debug sebagai Model Tunggal',
formattingChangedTitle: 'Pemformatan diubah',
duplicateModel: 'Duplikat',
result: 'Teks Keluaran',
noResult: 'Output akan ditampilkan di sini.',
promptTip: 'Prompts membimbing respons AI dengan instruksi dan batasan. Masukkan variabel seperti {{input}}. Prompt ini tidak akan terlihat oleh pengguna.',
notSetVar: 'Variabel memungkinkan pengguna untuk memasukkan kata pemicu atau ucapan pembuka saat mengisi formulir. Anda dapat mencoba memasukkan "{{input}}" pada kata pemicu.',
}
export default translation

View File

@@ -0,0 +1,112 @@
const translation = {
table: {
header: {
output: 'Hasil',
version: 'VERSI',
time: 'Waktu yang dibuat',
messageCount: 'Jumlah Pesan',
summary: 'Ringkasan',
adminRate: 'Tingkat Admin',
user: 'Pengguna Akhir atau Akun',
startTime: 'WAKTU MULAI',
updatedTime: 'Waktu yang diperbarui',
tokens: 'TOKEN',
endUser: 'Pengguna Akhir atau Akun',
userRate: 'Tarif Pengguna',
input: 'Masukan',
status: 'KEADAAN',
runtime: 'WAKTU BERJALAN',
triggered_from: 'DIPICU OLEH',
},
pagination: {
previous: 'Sebelumnya',
next: 'Selanjutnya',
},
empty: {
element: {
title: 'Apakah ada yang ada di sana?',
content: 'Amati dan anotasi interaksi antara pengguna akhir dan aplikasi AI di sini untuk terus meningkatkan akurasi AI. Anda dapat mencoba <shareLink>berbagi</shareLink> atau <testLink>menguji</testLink> Aplikasi Web sendiri, kemudian kembali ke halaman ini.',
},
noChat: 'Belum ada percakapan',
noOutput: 'Tidak ada keluaran',
},
},
detail: {
timeConsuming: 'Memakan waktu',
operation: {
dislike: 'tidak suka',
like: 'suka',
addAnnotation: 'Tambahkan Anotasi',
editAnnotation: 'Edit Anotasi',
annotationPlaceholder: 'Masukkan jawaban yang diharapkan yang Anda inginkan untuk dibalas AI, yang dapat digunakan untuk penyempurnaan model dan peningkatan berkelanjutan kualitas pembuatan teks di masa mendatang.',
},
time: 'Waktu',
loading: 'Loading',
variables: 'Variabel',
tokenCost: 'Token yang dibelanjakan',
modelParams: 'Parameter model',
conversationId: 'ID Percakapan',
promptTemplate: 'Templat Prompt',
second: 's',
promptTemplateBeforeChat: 'Templat Prompt Sebelum Obrolan · Sebagai Pesan Sistem',
uploadImages: 'Gambar yang Diunggah',
annotationTip: 'Peningkatan Ditandai oleh {{user}}',
},
filter: {
period: {
today: 'Hari Ini',
last4weeks: '4 minggu terakhir',
quarterToDate: 'Kuartal hingga saat ini',
last7days: '7 Hari Terakhir',
monthToDate: 'Bulan hingga saat ini',
last3months: '3 bulan terakhir',
yearToDate: 'Tahun hingga saat ini',
allTime: 'Sepanjang masa',
last12months: '12 bulan terakhir',
custom: 'Kustom',
last30days: '30 Hari Terakhir',
},
annotation: {
all: 'Semua',
not_annotated: 'Tidak Beranotasi',
annotated: 'Peningkatan yang Diberi Catatan ({{count}} item)',
},
ascending: 'Naik',
descending: 'Turun',
sortBy: 'Urutkan berdasarkan',
},
runDetail: {
fileListDetail: 'Detail',
workflowTitle: 'Log Detail',
title: 'Log Percakapan',
fileListLabel: 'Rincian File',
testWithParams: 'Uji Dengan Param',
},
agentLogDetail: {
iterations: 'Iterasi',
finalProcessing: 'Pemrosesan Akhir',
iteration: 'Iterasi',
toolUsed: 'Alat yang Digunakan',
agentMode: 'Mode Agen',
},
title: 'Log',
description: 'Log mencatat status berjalan aplikasi, termasuk input pengguna dan balasan AI.',
dateFormat: 'MM / DD / YYYY',
agentLog: 'Log Agen',
viewLog: 'Lihat Log',
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A',
promptLog: 'Prompt Log',
workflowSubtitle: 'Log mencatat pengoperasian Automate.',
workflowTitle: 'Log Alur Kerja',
triggerBy: {
debugging: 'Men-debug',
appRun: 'Aplikasi Web',
webhook: 'Webhook',
schedule: 'Jadwal',
plugin: 'Plugin',
ragPipelineRun: 'Rangkaian RAG',
ragPipelineDebugging: 'Debugging RAG',
},
}
export default translation

View File

@@ -0,0 +1,189 @@
const translation = {
welcome: {
firstStepTip: 'Untuk memulai,',
placeholder: 'Kunci API OpenAI Anda (misalnya.sk-xxxx)',
enterKeyTip: 'masukkan Kunci API OpenAI Anda di bawah ini',
getKeyTip: 'Dapatkan Kunci API Anda dari dasbor OpenAI',
},
apiKeyInfo: {
cloud: {
trial: {
description: 'Kuota uji coba disediakan untuk tujuan pengujian Anda. Sebelum kuota uji coba habis, harap siapkan penyedia model Anda sendiri atau beli kuota tambahan.',
title: 'Anda sedang menggunakan kuota percobaan {{providerName}}.',
},
exhausted: {
title: 'Kuota uji coba Anda telah habis, silakan atur APIKey Anda.',
description: 'Anda telah menghabiskan kuota percobaan Anda. Silakan siapkan penyedia model Anda sendiri atau beli kuota tambahan.',
},
},
selfHost: {
title: {
row1: 'Untuk memulai,',
row2: 'Siapkan penyedia model Anda terlebih dahulu.',
},
},
usedToken: 'Token bekas',
callTimes: 'Waktu panggilan',
tryCloud: 'Atau coba Dify versi cloud dengan penawaran gratis',
setAPIBtn: 'Buka penyedia model penyiapan',
},
overview: {
appInfo: {
settings: {
workflow: {
hide: 'Menyembunyikan',
subTitle: 'Detail Alur Kerja',
showDesc: 'Menampilkan atau menyembunyikan detail alur kerja di aplikasi web',
title: 'Alur Kerja',
show: 'Memperlihatkan',
},
sso: {
label: 'Penegakan SSO',
tooltip: 'Hubungi administrator untuk mengaktifkan SSO aplikasi web',
title: 'aplikasi web SSO',
description: 'Semua pengguna diharuskan masuk dengan SSO sebelum menggunakan aplikasi web',
},
more: {
customDisclaimerPlaceholder: 'Masukkan teks penafian khusus',
copyrightTooltip: 'Silakan tingkatkan ke paket Profesional atau lebih tinggi',
entry: 'Tampilkan setelan lainnya',
copyRightPlaceholder: 'Masukkan nama penulis atau organisasi',
copyrightTip: 'Menampilkan informasi hak cipta di aplikasi web',
privacyPolicy: 'Kebijakan Privasi',
customDisclaimer: 'Penafian Kustom',
privacyPolicyPlaceholder: 'Masukkan tautan kebijakan privasi',
customDisclaimerTip: 'Teks penafian khusus akan ditampilkan di sisi klien, memberikan informasi tambahan tentang aplikasi',
copyright: 'Hak cipta',
privacyPolicyTip: 'Membantu pengunjung memahami data yang dikumpulkan aplikasi, lihat <privacyPolicyLink>Kebijakan Privasi Dify</privacyPolicyLink>.',
},
chatColorThemeInverted: 'Terbalik',
invalidPrivacyPolicy: 'Tautan kebijakan privasi tidak valid. Silakan gunakan tautan valid yang dimulai dengan http atau https',
language: 'Bahasa',
invalidHexMessage: 'Nilai hex tidak valid',
webName: 'Nama aplikasi web',
webDescPlaceholder: 'Masukkan deskripsi aplikasi web',
chatColorThemeDesc: 'Atur tema warna chatbot',
modalTip: 'Pengaturan aplikasi web sisi klien.',
title: 'Pengaturan Aplikasi Web',
webDescTip: 'Teks ini akan ditampilkan di sisi klien, memberikan panduan dasar tentang cara menggunakan aplikasi',
entry: 'Pengaturan',
chatColorTheme: 'Tema warna obrolan',
webDesc: 'Deskripsi aplikasi web',
},
embedded: {
copied: 'Disalin',
title: 'Sematkan di situs web',
entry: 'Tertanam',
explanation: 'Pilih cara menyematkan aplikasi obrolan ke situs web Anda',
copy: 'Menyalin',
chromePlugin: 'Instal Ekstensi Chrome Dify Chatbot',
iframe: 'Untuk menambahkan aplikasi obrolan di mana saja di situs web Anda, tambahkan iframe ini ke kode html Anda.',
scripts: 'Untuk menambahkan aplikasi obrolan ke kanan bawah situs web Anda, tambahkan kode ini ke html Anda.',
},
qrcode: {
scan: 'Pindai Untuk Berbagi',
download: 'Unduh Kode QR',
title: 'Tautan Kode QR',
},
customize: {
way1: {
step1Operation: 'Dify-WebClient',
step2Operation: 'Impor repositori',
step1: 'Fork kode klien dan modifikasi',
step2Tip: 'Klik di sini untuk mengimpor repositori ke Vercel dan menyebarkan',
step2: 'Terapkan ke Vercel',
name: 'Fork kode klien, modifikasi dan terapkan ke Vercel (disarankan)',
step3: 'Mengonfigurasi variabel lingkungan',
step1Tip: 'Klik di sini untuk melakukan fork kode sumber ke akun GitHub Anda dan memodifikasi kode',
step3Tip: 'Tambahkan variabel lingkungan berikut di Vercel',
},
way2: {
operation: 'Dokumentasi',
name: 'Tulis kode sisi klien untuk memanggil API dan menyebarkannya ke server',
},
way: 'jalan',
entry: 'Menyesuaikan',
title: 'Sesuaikan aplikasi web AI',
explanation: 'Anda dapat menyesuaikan frontend Aplikasi Web agar sesuai dengan skenario dan kebutuhan gaya Anda.',
},
launch: 'Luncur',
regenerate: 'Regenerasi',
preview: 'Pratayang',
accessibleAddress: 'URL publik',
preUseReminder: 'Harap aktifkan aplikasi web sebelum melanjutkan.',
regenerateNotice: 'Apakah Anda ingin membuat ulang URL publik?',
explanation: 'Aplikasi web AI siap pakai',
enableTooltip: {
description: 'Untuk mengaktifkan fitur ini, harap tambahkan node Input Pengguna ke kanvas. (Mungkin sudah ada di draft, berlaku setelah dipublikasikan)',
learnMore: 'Pelajari lebih lanjut',
},
title: 'Aplikasi Web',
},
apiInfo: {
accessibleAddress: 'Titik Akhir API Layanan',
title: 'API Layanan Backend',
doc: 'Referensi API',
explanation: 'Mudah diintegrasikan ke dalam aplikasi Anda',
},
status: {
disable: 'Nonaktif',
running: 'Berjalan',
},
title: 'Ikhtisar',
triggerInfo: {
title: 'Pemicu',
explanation: 'Manajemen pemicu alur kerja',
triggersAdded: '{{count}} Pemicu ditambahkan',
noTriggerAdded: 'Tidak ada pemicu yang ditambahkan',
triggerStatusDescription: 'Status node pemicu muncul di sini. (Mungkin sudah ada di draf, berlaku setelah dipublikasikan)',
learnAboutTriggers: 'Pelajari tentang Pemicu',
},
disableTooltip: {
triggerMode: 'Fitur {{feature}} tidak didukung dalam mode Node Pemicu.',
},
},
analysis: {
totalMessages: {
explanation: 'Interaksi AI harian diperhitungkan.',
title: 'Total Pesan',
},
totalConversations: {
title: 'Total Percakapan',
explanation: 'Percakapan AI harian diperhitungkan; Pengecualian rekayasa/debugging prompt.',
},
activeUsers: {
explanation: 'Pengguna unik yang terlibat dalam Tanya Jawab dengan AI; Pengecualian rekayasa/debugging prompt.',
title: 'Pengguna Aktif',
},
tokenUsage: {
title: 'Penggunaan Token',
explanation: 'Mencerminkan penggunaan token harian dari model bahasa untuk aplikasi, berguna untuk tujuan pengendalian biaya.',
consumed: 'Dikonsumsi',
},
avgSessionInteractions: {
title: 'Interaksi Sesi Rata-rata',
explanation: 'Jumlah komunikasi pengguna-AI yang berkelanjutan; untuk aplikasi berbasis percakapan.',
},
avgUserInteractions: {
explanation: 'Mencerminkan frekuensi penggunaan harian pengguna. Metrik ini mencerminkan kelengketan pengguna.',
title: 'Rata-rata Interaksi Pengguna',
},
userSatisfactionRate: {
title: 'Tingkat Kepuasan Pengguna',
explanation: 'Jumlah suka per 1.000 pesan. Ini menunjukkan proporsi jawaban yang sangat dipuaskan pengguna.',
},
avgResponseTime: {
explanation: 'Waktu (ms) bagi AI untuk memproses/merespons; untuk aplikasi berbasis teks.',
title: 'Rata-rata Waktu Respons',
},
tps: {
title: 'Kecepatan Keluaran Token',
explanation: 'Mengukur kinerja LLM. Hitung kecepatan keluaran Token LLM dari awal permintaan hingga penyelesaian output.',
},
tokenPS: 'Token',
title: 'Analisis',
ms: 'Ms',
},
}
export default translation

345
dify/web/i18n/id-ID/app.ts Normal file
View File

@@ -0,0 +1,345 @@
const translation = {
types: {
chatbot: 'Chatbot',
workflow: 'Alur Kerja',
advanced: 'Alur obrolan',
agent: 'Agen',
completion: 'Penyelesaian',
basic: 'Dasar',
all: 'Semua',
},
mermaid: {
handDrawn: 'Digambar Tangan',
classic: 'Klasik',
},
dslUploader: {
browse: 'Ramban',
button: 'Seret dan lepas file, atau',
},
newApp: {
chatbotUserDescription: 'Bangun chatbot berbasis LLM dengan cepat dengan konfigurasi sederhana. Anda dapat beralih ke Chatflow nanti.',
agentShortDescription: 'Agen cerdas dengan penalaran dan penggunaan alat otonom',
noTemplateFound: 'Tidak ada templat yang ditemukan',
appCreated: 'Aplikasi dibuat',
appNamePlaceholder: 'Beri nama aplikasi Anda',
appCreateDSLErrorPart3: 'Versi DSL aplikasi saat ini:',
Cancel: 'Batal',
previewDemo: 'Pratinjau demo',
appCreateDSLWarning: 'Perhatian: Perbedaan versi DSL dapat memengaruhi fitur tertentu',
appCreateDSLErrorPart1: 'Perbedaan yang signifikan dalam versi DSL telah terdeteksi. Memaksa impor dapat menyebabkan aplikasi tidak berfungsi.',
chatApp: 'Asisten',
workflowWarning: 'Saat ini dalam versi beta',
completionShortDescription: 'Asisten AI untuk tugas pembuatan teks',
startFromBlank: 'Buat dari Kosong',
captionDescription: 'Deskripsi',
forBeginners: 'Jenis aplikasi yang lebih dasar',
noIdeaTip: 'Tidak ada ide? Lihat templat kami',
completionUserDescription: 'Buat asisten AI dengan cepat untuk tugas pembuatan teks dengan konfigurasi sederhana.',
forAdvanced: 'UNTUK PENGGUNA TINGKAT LANJUT',
workflowUserDescription: 'Bangun alur kerja AI otonom secara visual dengan kesederhanaan seret dan lepas.',
learnMore: 'Pelajari lebih lanjut',
agentUserDescription: 'Agen cerdas yang mampu penalaran berulang dan penggunaan alat otonom untuk mencapai tujuan tugas.',
noAppsFound: 'Tidak ada aplikasi yang ditemukan',
startFromTemplate: 'Buat dari Template',
appDescriptionPlaceholder: 'Masukkan deskripsi aplikasi',
captionName: 'Nama & Ikon Aplikasi',
showTemplates: 'Saya ingin memilih dari templat',
caution: 'Hati',
chatbotShortDescription: 'Chatbot berbasis LLM dengan pengaturan sederhana',
Confirm: 'Konfirmasi',
agentAssistant: 'Asisten Agen Baru',
appCreateFailed: 'Gagal membuat aplikasi',
appCreateDSLErrorTitle: 'Ketidakcocokan Versi',
chatAppIntro: 'Saya ingin membangun aplikasi berbasis obrolan. Aplikasi ini menggunakan format tanya jawab, memungkinkan beberapa putaran percakapan berkelanjutan.',
nameNotEmpty: 'Nama tidak boleh kosong',
appTemplateNotSelected: 'Silakan pilih templat',
noTemplateFoundTip: 'Coba cari menggunakan kata kunci yang berbeda.',
appCreateDSLErrorPart4: 'Versi DSL yang didukung sistem:',
appTypeRequired: 'Silakan pilih jenis aplikasi',
advancedShortDescription: 'Alur kerja disempurnakan untuk obrolan multi-giliran',
completeAppIntro: 'Saya ingin membuat aplikasi yang menghasilkan teks berkualitas tinggi berdasarkan petunjuk, seperti menghasilkan artikel, ringkasan, terjemahan, dan banyak lagi.',
Create: 'Buat',
advancedUserDescription: 'Alur kerja dengan fitur memori tambahan dan antarmuka chatbot.',
dropDSLToCreateApp: 'Jatuhkan file DSL di sini untuk membuat aplikasi',
completeApp: 'Pembuat Teks',
optional: 'Fakultatif',
workflowShortDescription: 'Aliran agen untuk otomatisasi cerdas',
chooseAppType: 'Pilih Jenis App',
hideTemplates: 'Kembali ke pemilihan mode',
useTemplate: 'Gunakan template ini',
appCreateDSLErrorPart2: 'Apakah Anda ingin melanjutkan?',
import: 'Mengimpor',
foundResult: 'Hasil {{count}}',
foundResults: 'Hasil {{count}}',
},
newAppFromTemplate: {
sidebar: {
HR: 'HR',
Programming: 'Pemrograman',
Recommended: 'Direkomendasikan',
Workflow: 'Alur Kerja',
Assistant: 'Asisten',
Writing: 'Tulisan',
Agent: 'Agen',
},
byCategories: 'BERDASARKAN KATEGORI',
searchAllTemplate: 'Cari semua templat...',
},
iconPicker: {
cancel: 'Batal',
emoji: 'Emoji',
image: 'Citra',
ok: 'OK',
},
answerIcon: {
title: 'Gunakan ikon aplikasi web untuk mengganti 🤖',
description: 'Apakah akan menggunakan ikon aplikasi web untuk mengganti 🤖 di aplikasi bersama',
descriptionInExplore: 'Apakah akan menggunakan ikon aplikasi web untuk mengganti 🤖 di Jelajahi',
},
typeSelector: {
agent: 'Agen',
advanced: 'Alur obrolan',
completion: 'Penyelesaian',
all: 'Semua Jenis',
workflow: 'Alur Kerja',
chatbot: 'Chatbot',
},
tracing: {
configProviderTitle: {
notConfigured: 'Penyedia konfigurasi untuk mengaktifkan pelacakan',
configured: 'Dikonfigurasi',
moreProvider: 'Lebih Banyak Penyedia',
},
arize: {
title: 'Arize',
description: 'Observabilitas LLM tingkat perusahaan, evaluasi, pemantauan, dan eksperimen online & offline—didukung oleh OpenTelemetry. Dibuat khusus untuk LLM & aplikasi berbasis agen.',
},
phoenix: {
title: 'Phoenix',
description: 'Observabilitas, evaluasi, rekayasa cepat, dan platform eksperimen berbasis sumber terbuka & OpenTelemetri untuk alur kerja dan agen LLM Anda.',
},
langsmith: {
title: 'LangSmith',
description: 'Platform pengembang all-in-one untuk setiap langkah siklus hidup aplikasi yang didukung LLM.',
},
langfuse: {
title: 'Langfuse',
description: 'Observabilitas LLM sumber terbuka, evaluasi, manajemen prompt, dan metrik untuk men-debug dan meningkatkan aplikasi LLM Anda.',
},
opik: {
title: 'Opik',
description: 'Opik adalah platform sumber terbuka untuk mengevaluasi, menguji, dan memantau aplikasi LLM.',
},
weave: {
description: 'Weave adalah platform sumber terbuka untuk mengevaluasi, menguji, dan memantau aplikasi LLM.',
title: 'Weave',
},
aliyun: {
title: 'Monitor Awan',
description: 'Platform observabilitas yang dikelola sepenuhnya dan bebas perawatan yang disediakan oleh Alibaba Cloud, memungkinkan pemantauan, pelacakan, dan evaluasi aplikasi Dify yang out-of-the-box.',
},
configProvider: {
project: 'Proyek',
publicKey: 'Kunci Publik',
removeConfirmContent: 'Konfigurasi saat ini sedang digunakan, menghapusnya akan mematikan fitur Pelacakan.',
title: 'Konfigurasi',
secretKey: 'Kunci Rahasia',
experimentId: 'ID Eksperimen',
trackingUri: 'URI Pelacakan',
clientId: 'ID Klien OAuth',
clientSecret: 'Rahasia Klien OAuth',
username: 'Nama Pengguna',
databricksHost: 'URL Workspace Databricks',
personalAccessToken: 'Token Akses Pribadi (lama)',
password: 'Kata sandi',
placeholder: 'Masukkan {{key}} Anda',
viewDocsLink: 'Lihat dokumen {{key}}',
removeConfirmTitle: 'Hapus konfigurasi {{key}}?',
},
expand: 'Memperluas',
disabledTip: 'Silakan konfigurasi penyedia terlebih dahulu',
view: 'Melihat',
collapse: 'Roboh',
tracing: 'Menelusuri',
title: 'Melacak performa aplikasi',
disabled: 'Nonaktif',
enabled: 'Aktif',
config: 'Konfigurasi',
description: 'Mengonfigurasi penyedia LLMOps Pihak Ketiga dan melacak performa aplikasi.',
inUse: 'Sedang digunakan',
tracingDescription: 'Tangkap konteks lengkap eksekusi aplikasi, termasuk panggilan LLM, konteks, perintah, permintaan HTTP, dan lainnya, ke platform pelacakan pihak ketiga.',
tencent: {
title: 'Tencent APM',
description: 'Tencent Application Performance Monitoring menyediakan pelacakan komprehensif dan analisis multi-dimensi untuk aplikasi LLM.',
},
mlflow: {
title: 'MLflow',
description: 'MLflow adalah platform sumber terbuka untuk manajemen eksperimen, evaluasi, dan pemantauan aplikasi LLM.',
},
databricks: {
title: 'Databricks',
description: 'Databricks menawarkan MLflow yang sepenuhnya dikelola dengan tata kelola dan keamanan yang kuat untuk menyimpan data jejak.',
},
},
appSelector: {
placeholder: 'Pilih aplikasi...',
params: 'PARAMETER APLIKASI',
noParams: 'Tidak perlu parameter',
label: 'APP',
},
structOutput: {
notConfiguredTip: 'Output terstruktur belum dikonfigurasi',
required: 'Diperlukan',
structured: 'Terstruktur',
modelNotSupported: 'Model tidak didukung',
structuredTip: 'Output Terstruktur adalah fitur yang memastikan model akan selalu menghasilkan respons yang mematuhi Skema JSON yang Anda sediakan',
LLMResponse: 'Tanggapan LLM',
modelNotSupportedTip: 'Model saat ini tidak mendukung fitur ini dan secara otomatis diturunkan ke injeksi minta.',
configure: 'Mengkonfigurasi',
moreFillTip: 'Menampilkan maksimal 10 tingkat bersarang',
},
accessItemsDescription: {
anyone: 'Siapa pun dapat mengakses aplikasi web (tidak perlu login)',
organization: 'Semua anggota dalam platform dapat mengakses aplikasi web',
specific: 'Hanya anggota tertentu dalam platform yang dapat mengakses aplikasi web',
external: 'Hanya pengguna eksternal yang diautentikasi yang dapat mengakses aplikasi web',
},
accessControlDialog: {
accessItems: {
organization: 'Semua anggota dalam platform',
external: 'Pengguna eksternal yang diautentikasi',
anyone: 'Siapa pun yang memiliki tautan',
specific: 'Anggota tertentu dalam platform',
},
operateGroupAndMember: {
expand: 'Memperluas',
searchPlaceholder: 'Cari grup dan anggota',
noResult: 'Tidak ada hasil',
allMembers: 'Semua anggota',
},
updateSuccess: 'Update berhasil',
noGroupsOrMembers: 'Tidak ada grup atau anggota yang dipilih',
webAppSSONotEnabledTip: 'Hubungi administrator organisasi Anda untuk mengonfigurasi autentikasi eksternal untuk aplikasi web.',
description: 'Menetapkan izin akses aplikasi web',
title: 'Kontrol Akses Aplikasi Web',
accessLabel: 'Siapa yang memiliki akses',
groups_one: 'GRUP {{count}}',
groups_other: '{{count}} KELOMPOK',
members_one: '{{count}} ANGGOTA',
members_other: '{{count}} ANGGOTA',
},
publishApp: {
notSetDesc: 'Saat ini tidak ada yang dapat mengakses aplikasi web. Silakan atur izin.',
notSet: 'Tidak diatur',
title: 'Siapa yang dapat mengakses aplikasi web',
},
gotoAnything: {
actions: {
themeDark: 'Tema Gelap',
themeCategoryDesc: 'Ganti tema aplikasi',
themeCategoryTitle: 'Tema',
searchWorkflowNodesHelp: 'Fitur ini hanya berfungsi saat melihat alur kerja. Navigasikan ke alur kerja terlebih dahulu.',
searchApplicationsDesc: 'Cari dan navigasikan ke aplikasi Anda',
searchPlugins: 'Cari Plugin',
searchApplications: 'Cari Aplikasi',
languageCategoryTitle: 'Bahasa',
themeLight: 'Tema Cahaya',
communityDesc: 'Buka komunitas Discord',
searchWorkflowNodesDesc: 'Temukan dan lompat ke simpul dalam alur kerja saat ini berdasarkan nama atau jenis',
searchWorkflowNodes: 'Cari Node Alur Kerja',
runTitle: 'Perintah',
themeSystemDesc: 'Ikuti tampilan OS Anda',
languageCategoryDesc: 'Ganti bahasa antarmuka',
themeDarkDesc: 'Gunakan penampilan gelap',
searchPluginsDesc: 'Cari dan navigasikan ke plugin Anda',
accountDesc: 'Arahkan ke halaman akun',
searchKnowledgeBases: 'Cari Basis Pengetahuan',
runDesc: 'Jalankan perintah cepat (tema, bahasa, ...)',
docDesc: 'Buka dokumentasi bantuan',
themeLightDesc: 'Gunakan penampilan ringan',
feedbackDesc: 'Buka diskusi umpan balik komunitas',
slashDesc: 'Jalankan perintah (ketik / untuk melihat semua perintah yang tersedia)',
searchKnowledgeBasesDesc: 'Cari dan navigasikan ke basis pengetahuan Anda',
themeSystem: 'Tema Sistem',
languageChangeDesc: 'Mengubah bahasa UI',
},
emptyState: {
noWorkflowNodesFound: 'Tidak ada simpul alur kerja yang ditemukan',
noAppsFound: 'Tidak ada aplikasi yang ditemukan',
noPluginsFound: 'Tidak ada plugin yang ditemukan',
noKnowledgeBasesFound: 'Tidak ada basis pengetahuan yang ditemukan',
tryDifferentTerm: 'Coba istilah penelusuran lain',
trySpecificSearch: 'Coba {{shortcuts}} untuk pencarian spesifik',
},
groups: {
apps: 'Apps',
commands: 'Perintah',
plugins: 'Plugin',
knowledgeBases: 'Basis Pengetahuan',
workflowNodes: 'Node Alur Kerja',
},
searchTitle: 'Cari apa pun',
noResults: 'Tidak ada hasil yang ditemukan',
searchTemporarilyUnavailable: 'Penelusuran tidak tersedia untuk sementara',
selectSearchType: 'Pilih apa yang akan dicari',
someServicesUnavailable: 'Beberapa layanan penelusuran tidak tersedia',
searching: 'Mencari...',
searchPlaceholder: 'Cari atau ketik @ atau / untuk perintah...',
slashHint: 'Ketik / untuk melihat semua perintah yang tersedia',
commandHint: 'Ketik @ untuk menelusuri berdasarkan kategori',
useAtForSpecific: 'Gunakan @ untuk jenis tertentu',
clearToSearchAll: 'Hapus @ untuk mencari semua',
searchHint: 'Mulailah mengetik untuk mencari semuanya secara instan',
servicesUnavailableMessage: 'Beberapa layanan penelusuran mungkin mengalami masalah. Coba lagi sebentar lagi.',
tryDifferentSearch: 'Coba istilah penelusuran lain',
noMatchingCommands: 'Tidak ada perintah yang cocok ditemukan',
searchFailed: 'Pencarian gagal',
tips: 'Tekan ↑↓ untuk menavigasi',
startTyping: 'Mulai mengetik untuk mencari',
selectToNavigate: 'Pilih untuk menavigasi',
pressEscToClose: 'Tekan ESC untuk menutup',
resultCount: 'hasil {{count}}',
resultCount_other: 'hasil {{count}}',
inScope: 'di {{scope}}s',
},
createApp: 'BUAT APLIKASI',
accessControl: 'Kontrol Akses Aplikasi Web',
maxActiveRequestsTip: 'Jumlah maksimum permintaan aktif bersamaan per aplikasi (0 untuk tidak terbatas)',
noAccessPermission: 'Tidak ada izin untuk mengakses aplikasi web',
maxActiveRequestsPlaceholder: 'Masukkan 0 untuk tidak terbatas',
join: 'Bergabunglah dengan komunitas',
deleteAppConfirmContent: 'Menghapus aplikasi tidak dapat diubah. Pengguna tidak akan dapat lagi mengakses aplikasi Anda, dan semua konfigurasi prompt serta log akan dihapus secara permanen.',
duplicate: 'Duplikat',
importDSL: 'Impor file DSL',
appDeleted: 'Aplikasi dihapus',
importFromDSLFile: 'Dari file DSL',
export: 'Ekspor DSL',
createFromConfigFile: 'Buat dari file DSL',
importFromDSLUrlPlaceholder: 'Tempel tautan DSL di sini',
exportFailed: 'Ekspor DSL gagal.',
importFromDSL: 'Impor dari DSL',
duplicateTitle: 'Aplikasi Duplikat',
roadmap: 'Lihat peta jalan kami',
editDone: 'Info aplikasi diperbarui',
deleteAppConfirmTitle: 'Hapus aplikasi ini?',
editFailed: 'Gagal memperbarui info aplikasi',
removeOriginal: 'Menghapus aplikasi asli',
importFromDSLUrl: 'Dari URL',
communityIntro: 'Berdiskusi dengan anggota tim, kontributor, dan pengembang di berbagai saluran.',
switchTip: 'tidak mengizinkan',
switchTipEnd: 'beralih kembali ke Basic Orchestrate.',
switch: 'Beralih ke Workflow Orchestrate',
editApp: 'Edit Info',
switchTipStart: 'Salinan aplikasi baru akan dibuat untuk Anda, dan salinan baru akan beralih ke Workflow Orchestrate. Salinan baru akan',
switchLabel: 'Salinan aplikasi yang akan dibuat',
editAppTitle: 'Edit Info Aplikasi',
maxActiveRequests: 'Permintaan bersamaan maksimum',
switchStart: 'Sakelar mulai',
openInExplore: 'Buka di Jelajahi',
showMyCreatedAppsOnly: 'Dibuat oleh saya',
appDeleteFailed: 'Gagal menghapus aplikasi',
noUserInputNode: 'Node input pengguna hilang',
notPublishedYet: 'Aplikasi belum diterbitkan',
}
export default translation

View File

@@ -0,0 +1,203 @@
const translation = {
usagePage: {
buildApps: 'Bangun Aplikasi',
vectorSpace: 'Penyimpanan Data Pengetahuan',
vectorSpaceTooltip: 'Dokumen dengan mode pengindeksan Kualitas Tinggi akan menggunakan sumber daya Penyimpanan Data Pengetahuan. Ketika Penyimpanan Data Pengetahuan mencapai batas, dokumen baru tidak akan diunggah.',
documentsUploadQuota: 'Kuota Unggah Dokumen',
teamMembers: 'Anggota Tim',
annotationQuota: 'Kuota Anotasi',
perMonth: 'per bulan',
triggerEvents: 'Pemicu Acara',
resetsIn: 'Diatur ulang dalam {{count,number}} hari',
},
upgradeBtn: {
encourage: 'Tingkatkan Sekarang',
plain: 'Lihat Paket',
encourageShort: 'Upgrade',
},
plansCommon: {
planRange: {
yearly: 'Tahunan',
monthly: 'Bulanan',
},
priority: {
'priority': 'Prioritas',
'top-priority': 'Prioritas utama',
'standard': 'Standar',
},
supportItems: {
llmLoadingBalancing: 'Penyeimbangan Beban LLM',
communityForums: 'Forum komunitas',
agentMode: 'Mode Agen',
logoChange: 'Perubahan logo',
priorityEmail: 'Dukungan email & obrolan prioritas',
emailSupport: 'Dukungan email',
personalizedSupport: 'Dukungan yang dipersonalisasi',
bulkUpload: 'Mengunggah dokumen secara massal',
customIntegration: 'Integrasi dan dukungan khusus',
dedicatedAPISupport: 'Dukungan API khusus',
SSOAuthentication: 'Autentikasi SSO',
ragAPIRequest: 'Permintaan API RAG',
llmLoadingBalancingTooltip: 'Tambahkan beberapa kunci API ke model, secara efektif melewati batas kecepatan API.',
workflow: 'Alur Kerja',
},
messageRequest: {
tooltip: 'Kredit pesan disediakan untuk membantu Anda mencoba berbagai model OpenAI dengan mudah di Dify. Kredit digunakan berdasarkan jenis model. Setelah habis, Anda dapat beralih ke kunci API OpenAI Anda sendiri.',
title: 'kredit pesan {{count,number}}',
titlePerMonth: '{{count,number}} kredit pesan/bulan',
},
annotatedResponse: {
tooltip: 'Pengeditan manual dan anotasi respons memberikan kemampuan menjawab pertanyaan berkualitas tinggi yang dapat disesuaikan untuk aplikasi. (Hanya berlaku di aplikasi Chat)',
title: 'Batas Kuota Anotasi {{count,number}}',
},
mostPopular: 'Populer',
free: 'Bebas',
freeTrialTipSuffix: 'Tidak perlu kartu kredit',
freeTrialTipPrefix: 'Daftar dan dapatkan',
month: 'bulan',
talkToSales: 'Bicaralah dengan Sales',
freeTrialTip: 'uji coba gratis 200 panggilan OpenAI.',
apiRateLimit: 'Batas Tarif API',
yearlyTip: 'Bayar selama 10 bulan, nikmati 1 tahun!',
contractOwner: 'Hubungi manajer tim',
save: 'Simpan',
self: 'Hosting Mandiri',
comparePlanAndFeatures: 'Bandingkan paket & fitur',
unavailable: 'Tidak tersedia',
support: 'Dukung',
cloud: 'Layanan Cloud',
annotationQuota: 'Kuota Anotasi',
contactSales: 'Hubungi Sales',
currentPlan: 'Rencana Saat Ini',
unlimitedApiRate: 'Tidak Ada Batas Tarif API',
priceTip: 'per ruang kerja/',
apiRateLimitTooltip: 'Batas Tarif API berlaku untuk semua permintaan yang dibuat melalui Dify API, termasuk pembuatan teks, percakapan obrolan, eksekusi alur kerja, dan pemrosesan dokumen.',
documentsTooltip: 'Kuota jumlah dokumen yang diimpor dari Sumber Data Pengetahuan.',
days: 'Hari',
vectorSpaceTooltip: 'Dokumen dengan mode pengindeksan Kualitas Tinggi akan menggunakan sumber daya Penyimpanan Data Pengetahuan. Ketika Penyimpanan Data Pengetahuan mencapai batas, dokumen baru tidak akan diunggah.',
memberAfter: 'Anggota',
year: 'tahun',
getStarted: 'Memulai',
comingSoon: 'Segera datang',
annualBilling: 'Penagihan Tahunan',
contractSales: 'Hubungi penjualan',
documentProcessingPriority: 'Pemrosesan Dokumen',
startForFree: 'Mulai Gratis',
documentsRequestQuotaTooltip: 'Menentukan jumlah total tindakan yang dapat dilakukan ruang kerja per menit dalam pangkalan pengetahuan, termasuk pembuatan, penghapusan, pembaruan, pengunggahan dokumen, modifikasi, pengarsipan, dan kueri basis pengetahuan himpunan data. Metrik ini digunakan untuk mengevaluasi performa permintaan basis pengetahuan. Misalnya, jika pengguna Sandbox melakukan 10 pengujian hit berturut-turut dalam satu menit, ruang kerja mereka akan dibatasi sementara untuk melakukan tindakan berikut selama menit berikutnya: pembuatan, penghapusan, pembaruan, dan unggahan atau modifikasi himpunan data.',
unlimited: 'Unlimited',
documentProcessingPriorityUpgrade: 'Proses lebih banyak data dengan akurasi yang lebih tinggi pada kecepatan yang lebih tinggi.',
ragAPIRequestTooltip: 'Mengacu pada jumlah panggilan API yang hanya memanggil kemampuan pemrosesan basis pengetahuan Dify.',
receiptInfo: 'Hanya pemilik tim dan admin tim yang dapat berlangganan dan melihat informasi penagihan',
customTools: 'Alat Kustom',
modelProviders: 'Mendukung OpenAI/Anthropic/Llama2/Azure OpenAI/Hugging Face/Replite',
member: 'Anggota',
startBuilding: 'Mulai Membangun',
taxTip: 'Semua harga langganan (bulanan/tahunan) belum termasuk pajak yang berlaku (misalnya, PPN, pajak penjualan).',
taxTipSecond: 'Jika wilayah Anda tidak memiliki persyaratan pajak yang berlaku, tidak akan ada pajak yang muncul saat checkout, dan Anda tidak akan dikenakan biaya tambahan apa pun selama masa langganan.',
triggerEvents: {
unlimited: 'Peristiwa Pemicu Tak Terbatas',
tooltip: 'Jumlah peristiwa yang secara otomatis memulai alur kerja melalui pemicu Plugin, Jadwal, atau Webhook.',
sandbox: '{{count,number}} Memicu Peristiwa',
professional: '{{count,number}} Pemicu Peristiwa/bulan',
},
workflowExecution: {
priority: 'Eksekusi Alur Kerja Prioritas',
standard: 'Eksekusi Alur Kerja Standar',
faster: 'Eksekusi Alur Kerja yang Lebih Cepat',
tooltip: 'Prioritas dan kecepatan antrian eksekusi alur kerja.',
},
startNodes: {
unlimited: 'Pemicu/alur kerja tanpa batas',
limited: 'Hingga {{count}} Pemicu/alur kerja',
},
title: {
plans: 'rencana',
description: 'Pilih paket yang paling sesuai dengan kebutuhan tim Anda.',
},
teamWorkspace: 'Ruang Kerja Tim {{count,number}}',
teamMember_one: 'Anggota Tim {{count,number}}',
teamMember_other: 'Anggota Tim {{count,number}}',
buildApps: 'Aplikasi {{count,number}}',
documents: '{{count,number}} Dokumen Pengetahuan',
vectorSpace: '{{size}} Penyimpanan Data Pengetahuan',
documentsRequestQuota: '{{count,number}} Permintaan Pengetahuan/menit',
apiRateLimitUnit: '{{count,number}}',
logsHistory: '{{days}} Riwayat log',
},
plans: {
sandbox: {
name: 'Sandbox',
description: 'Uji Coba Gratis Kemampuan Inti',
for: 'Uji Coba Gratis Kemampuan Inti',
},
professional: {
name: 'Profesional',
for: 'Untuk Pengembang Independen/Tim Kecil',
description: 'Untuk Pengembang Independen/Tim Kecil',
},
team: {
name: 'Tim',
description: 'Untuk Tim Berukuran Menengah',
for: 'Untuk Tim Berukuran Menengah',
},
community: {
features: ['Semua Fitur Inti Dirilis di Bawah Repositori Publik', 'Ruang Kerja Tunggal', 'Mematuhi Lisensi Sumber Terbuka Dify'],
price: 'Bebas',
for: 'Untuk Pengguna Individu, Tim Kecil, atau Proyek Non-Komersial',
name: 'Masyarakat',
description: 'Untuk Pengguna Individu, Tim Kecil, atau Proyek Non-Komersial',
btnText: 'Mulai dengan Komunitas',
includesTitle: 'Fitur Gratis:',
},
premium: {
features: ['Keandalan yang Dikelola Sendiri oleh Berbagai Penyedia Cloud', 'Ruang Kerja Tunggal', 'Kostumisasi Logo & Merek WebApp', 'Dukungan Email & Obrolan Prioritas'],
name: 'Premi',
price: 'Scalable',
priceTip: 'Berdasarkan Cloud Marketplace',
for: 'Untuk Organisasi dan Tim Menengah',
comingSoon: 'Dukungan Microsoft Azure & Google Cloud Segera Hadir',
includesTitle: 'Semuanya dari Komunitas, ditambah:',
description: 'Untuk Organisasi dan Tim Menengah',
btnText: 'Dapatkan Premium di',
},
enterprise: {
features: ['Solusi Penerapan Skala Besar Kelas Perusahaan', 'Otorisasi Lisensi Komersial', 'Fitur Eksklusif Perusahaan', 'Beberapa Ruang Kerja & Manajemen Perusahaan', 'SSO', 'SLA yang dinegosiasikan oleh Mitra Dify', 'Keamanan & Kontrol Lanjutan', 'Pembaruan dan Pemeliharaan oleh Dify Secara Resmi', 'Dukungan Teknis Profesional'],
includesTitle: 'Semuanya mulai dari Premium, ditambah:',
btnText: 'Hubungi Sales',
price: 'Adat',
for: 'Untuk Tim berukuran besar',
name: 'Usaha',
priceTip: 'Hanya Penagihan Tahunan',
description: 'Untuk perusahaan, memerlukan keamanan, kepatuhan, skalabilitas, kontrol, dan fitur yang lebih canggih di seluruh organisasi',
},
},
vectorSpace: {
fullSolution: 'Tingkatkan paket Anda untuk mendapatkan lebih banyak ruang.',
fullTip: 'Ruang Vektor penuh.',
},
apps: {
contactUs: 'Hubungi',
fullTip2des: 'Disarankan untuk membersihkan aplikasi yang tidak aktif untuk mengosongkan penggunaan, atau hubungi kami.',
fullTip1des: 'Anda telah mencapai batas build app pada paket ini',
fullTip1: 'Tingkatkan untuk membuat lebih banyak aplikasi',
fullTip2: 'Batas paket tercapai',
},
annotatedResponse: {
fullTipLine2: 'Anotasi lebih banyak percakapan.',
fullTipLine1: 'Tingkatkan paket Anda ke',
quotaTitle: 'Kuota Balasan Anotasi',
},
currentPlan: 'Rencana Saat Ini',
buyPermissionDeniedTip: 'Hubungi administrator perusahaan Anda untuk berlangganan',
viewBilling: 'Mengelola penagihan dan langganan',
teamMembers: 'Anggota Tim',
triggerLimitModal: {
upgrade: 'Tingkatkan',
dismiss: 'Tutup',
usageTitle: 'PERISTIWA PEMICU',
title: 'Tingkatkan untuk membuka lebih banyak peristiwa pemicu',
description: 'Anda telah mencapai batas pemicu acara alur kerja untuk paket ini.',
},
}
export default translation

View File

@@ -0,0 +1,783 @@
const translation = {
theme: {
theme: 'Tema',
light: 'Terang',
auto: 'Otomatis',
dark: 'Gelap',
},
api: {
success: 'Keberhasilan',
saved: 'Disimpan',
remove: 'Dihapus',
actionSuccess: 'Aksi berhasil',
create: 'Dibuat',
},
operation: {
setup: 'Setup',
download: 'Mengunduh',
getForFree: 'Dapatkan gratis',
reload: 'Muat Ulang',
lineBreak: 'Baris Baru',
learnMore: 'Pelajari lebih lanjut',
saveAndRegenerate: 'Simpan & Buat Ulang Potongan Anak',
zoomOut: 'Perkecil',
openInNewTab: 'Buka di tab baru',
viewMore: 'LIHAT LEBIH BANYAK',
selectAll: 'Pilih Semua',
in: 'di',
skip: 'Lewat',
remove: 'Hapus',
rename: 'Ubah nama',
close: 'Tutup',
ok: 'OKE',
regenerate: 'Regenerasi',
settings: 'Pengaturan',
log: 'Batang',
delete: 'Menghapus',
viewDetails: 'Lihat Detail',
view: 'Lihat',
clear: 'Hapus',
deleteApp: 'Hapus Aplikasi',
downloadSuccess: 'Unduh Selesai.',
change: 'Ubah',
params: 'Parameter',
search: 'Mencari',
copied: 'Disalin',
deSelectAll: 'Batalkan pilihan Semua',
saveAndEnable: 'Simpan & Aktifkan',
refresh: 'Segarkan',
downloadFailed: 'Unduhan gagal. Silakan coba lagi nanti.',
edit: 'Mengedit',
send: 'Kirim',
copyImage: 'Salin Gambar',
confirm: 'Mengkonfirmasi',
format: 'Format',
create: 'Menciptakan',
add: 'Tambah',
copy: 'Menyalin',
audioSourceUnavailable: 'AudioSource tidak tersedia',
submit: 'Kirim',
duplicate: 'Duplikat',
save: 'Simpan',
added: 'Ditambahkan',
more: 'Lebih',
zoomIn: 'Perbesar',
reset: 'Reset',
cancel: 'Membatalkan',
sure: 'Saya yakin',
imageCopied: 'Gambar yang disalin',
config: 'Konfigurasi',
deleteConfirmTitle: 'Hapus?',
confirmAction: 'Silakan konfirmasi tindakan Anda.',
yes: 'Ya',
no: 'Tidak',
noSearchResults: 'Tidak ada {{content}} yang ditemukan',
resetKeywords: 'Atur ulang kata kunci',
selectCount: '{{count}} Dipilih',
searchCount: 'Temukan {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Sekarang',
},
errorMsg: {
urlError: 'URL harus dimulai dengan http:// atau https://',
fieldRequired: '{{field}} wajib diisi',
},
placeholder: {
select: 'Silakan pilih',
input: 'Silakan masuk',
search: 'Cari...',
},
voice: {
language: {
zhHans: 'Cina',
roRO: 'Rumania',
jaJP: 'Jepang',
plPL: 'Polandia',
ptBR: 'Portugis',
esES: 'Spanyol',
idID: 'Indonesia',
enUS: 'Inggris',
trTR: 'Turki',
hiIN: 'Hindi',
koKR: 'Korea',
viVN: 'Vietnam',
ukUA: 'Ukraina',
faIR: 'Farsi',
itIT: 'Italia',
zhHant: 'Mandarin Tradisional',
thTH: 'Thai',
ruRU: 'Rusia',
deDE: 'Jerman',
frFR: 'Prancis',
},
},
unit: {
char: 'karakter',
},
actionMsg: {
noModification: 'Tidak ada modifikasi saat ini.',
generatedUnsuccessfully: 'Dihasilkan tidak berhasil',
modifiedUnsuccessfully: 'Dimodifikasi tidak berhasil',
modifiedSuccessfully: 'Berhasil dimodifikasi',
copySuccessfully: 'Berhasil disalin',
payCancelled: 'Pembayaran dibatalkan',
paySucceeded: 'Pembayaran berhasil',
generatedSuccessfully: 'Berhasil dihasilkan',
},
model: {
params: {
temperature: 'Suhu',
max_tokensTip: 'Digunakan untuk membatasi panjang maksimum balasan, dalam token. \nNilai yang lebih besar dapat membatasi ruang yang tersisa untuk kata prompt, log obrolan, dan Pengetahuan. \nDisarankan untuk menetapkannya di bawah dua pertiga\nGPT-4-1106-Preview, GPT-4-Vision-Preview Max Token (input 128K output 4K)',
stop_sequencesTip: 'Hingga empat urutan di mana API akan berhenti menghasilkan token lebih lanjut. Teks yang ditampilkan tidak akan berisi urutan berhenti.',
frequency_penaltyTip: 'Berapa banyak yang harus menghukum token baru berdasarkan frekuensi yang ada dalam teks sejauh ini.\nMengurangi kemungkinan model untuk mengulangi baris yang sama kata demi kata.',
max_tokens: 'Token maks',
stop_sequences: 'Urutan berhenti',
frequency_penalty: 'Penalti frekuensi',
top_p: 'P Teratas',
maxTokenSettingTip: 'Pengaturan token maks Anda tinggi, berpotensi membatasi ruang untuk perintah, kueri, dan data. Pertimbangkan untuk mengaturnya di bawah 2/3.',
stop_sequencesPlaceholder: 'Masukkan urutan dan tekan Tab',
top_pTip: 'Mengontrol keragaman melalui pengambilan sampel nukleus: 0,5 berarti setengah dari semua opsi berbobot kemungkinan dipertimbangkan.',
presence_penalty: 'Penalti kehadiran',
presence_penaltyTip: 'Berapa banyak yang harus menghukum token baru berdasarkan apakah mereka muncul dalam teks sejauh ini.\nMeningkatkan kemungkinan model untuk membicarakan topik baru.',
temperatureTip: 'Mengontrol keacakan: Menurunkan menghasilkan lebih sedikit penyelesaian acak. Saat suhu mendekati nol, model akan menjadi deterministik dan berulang.',
setToCurrentModelMaxTokenTip: 'Token maksimum diperbarui menjadi 80% dari token maksimum model saat ini {{maxToken}}.',
},
tone: {
Precise: 'Tepat',
Balanced: 'Seimbang',
Custom: 'Adat',
Creative: 'Kreatif',
},
addMoreModel: 'Buka pengaturan untuk menambahkan lebih banyak model',
capabilities: 'Kemampuan MultiModal',
settingsLink: 'Pengaturan Penyedia Model',
},
menus: {
plugins: 'Plugin',
pluginsTips: 'Integrasikan plugin pihak ketiga atau buat AI-Plugin yang kompatibel dengan ChatGPT.',
datasetsTips: 'SEGERA HADIR: Impor data teks Anda sendiri atau tulis data secara real-time melalui Webhook untuk peningkatan konteks LLM.',
appDetail: 'Detail Aplikasi',
datasets: 'Pengetahuan',
account: 'Rekening',
newApp: 'Aplikasi Baru',
explore: 'Menjelajahi',
apps: 'Aplikasi',
status: 'beta',
tools: 'Perkakas',
exploreMarketplace: 'Jelajahi Marketplace',
newDataset: 'Ciptakan Pengetahuan',
},
userProfile: {
emailSupport: 'Dukungan Email',
helpCenter: 'Docs',
compliance: 'Kepatuhan',
community: 'Masyarakat',
roadmap: 'Peta jalan',
logout: 'Keluar',
settings: 'Pengaturan',
support: 'Dukung',
github: 'GitHub',
about: 'Tentang',
workspace: 'Workspace',
createWorkspace: 'Membuat Ruang Kerja',
contactUs: 'Hubungi Kami',
forum: 'Forum',
},
compliance: {
soc2Type2: 'Laporan SOC 2 Tipe II',
professionalUpgradeTooltip: 'Hanya tersedia dengan paket Tim atau lebih tinggi.',
gdpr: 'GDPR DPA',
soc2Type1: 'Laporan SOC 2 Tipe I',
sandboxUpgradeTooltip: 'Hanya tersedia dengan paket Profesional atau Tim.',
iso27001: 'Sertifikasi ISO 27001:2022',
},
settings: {
generalGroup: 'UMUM',
billing: 'Penagihan',
plugin: 'Plugin',
members: 'Anggota',
workplaceGroup: 'WORKSPACE',
dataSource: 'Sumber Data',
integrations: 'Integrasi',
provider: 'Penyedia Model',
language: 'Bahasa',
accountGroup: 'UMUM',
account: 'Akun saya',
apiBasedExtension: 'Ekstensi API',
},
account: {
changeEmail: {
title: 'Ubah Email',
verifyNew: 'Memverifikasi email baru Anda',
content3: 'Masukkan email baru dan kami akan mengirimkan kode verifikasi kepada Anda.',
emailPlaceholder: 'Masukkan email baru',
existingEmail: 'Pengguna dengan email ini sudah ada.',
codeLabel: 'Kode verifikasi',
resendTip: 'Tidak menerima kode?',
continue: 'Terus',
newEmail: 'Menyiapkan alamat email baru',
resend: 'Kirim Ulang',
codePlaceholder: 'Tempel kode 6 digit',
emailLabel: 'Email baru',
sendVerifyCode: 'Kirim kode verifikasi',
verifyEmail: 'Memverifikasi email Anda saat ini',
unAvailableEmail: 'Email ini tidak tersedia untuk sementara.',
authTip: 'Setelah email Anda diubah, akun Google atau GitHub yang ditautkan ke email lama Anda tidak akan dapat lagi masuk ke akun ini.',
content1: 'Jika Anda melanjutkan, kami akan mengirim kode verifikasi ke <email>{{email}}</email> untuk autentikasi ulang.',
content2: 'Email Anda saat ini adalah <email>{{email}}</email>. Kode verifikasi telah dikirim ke alamat email ini.',
content4: 'Kami baru saja mengirimkan kode verifikasi sementara kepada Anda ke <email>{{email}}</email>.',
changeTo: 'Ubah ke {{email}}',
resendCount: 'Kirim ulang dalam {{count}} detik',
},
account: 'Rekening',
langGeniusAccount: 'Data akun',
email: 'Email',
studio: 'Belajar',
resetPassword: 'Setel ulang kata sandi',
sendVerificationButton: 'Kirim Kode Verifikasi',
editName: 'Edit Nama',
setPassword: 'Menetapkan kata sandi',
passwordTip: 'Anda dapat mengatur kata sandi permanen jika tidak ingin menggunakan kode login sementara',
confirmPassword: 'Konfirmasi kata sandi',
delete: 'Hapus Akun',
verificationPlaceholder: 'Tempel kode 6 digit',
editWorkspaceInfo: 'Edit Info Ruang Kerja',
currentPassword: 'Kata sandi saat ini',
newPassword: 'Kata sandi baru',
name: 'Nama',
notEqual: 'Dua kata sandi berbeda.',
avatar: 'Avatar',
myAccount: 'Akun Saya',
deletePlaceholder: 'Silakan masukkan email Anda',
permanentlyDeleteButton: 'Hapus Akun Secara Permanen',
feedbackPlaceholder: 'Fakultatif',
deletePrivacyLink: 'Kebijakan Privasi.',
feedbackTitle: 'Umpan balik',
workspaceName: 'Nama Ruang Kerja',
deletePrivacyLinkTip: 'Untuk informasi lebih lanjut tentang bagaimana kami menangani data Anda, silakan lihat',
deleteLabel: 'Untuk mengonfirmasi, silakan ketik email Anda di bawah ini',
feedbackLabel: 'Beri tahu kami mengapa Anda menghapus akun Anda?',
langGeniusAccountTip: 'Data pengguna akun Anda.',
deleteSuccessTip: 'Akun Anda membutuhkan waktu untuk menyelesaikan penghapusan. Kami akan mengirimkan email kepada Anda setelah semuanya selesai.',
verificationLabel: 'Kode Verifikasi',
password: 'Kata sandi',
deleteTip: 'Harap dicatat, setelah dikonfirmasi, sebagai Pemilik Ruang Kerja apa pun, ruang kerja Anda akan dijadwalkan dalam antrean untuk penghapusan permanen, dan semua data pengguna Anda akan diantri untuk penghapusan permanen.',
workspaceIcon: 'Ikon Ruang Kerja',
showAppLength: 'Tampilkan {{length}} aplikasi',
},
members: {
transferModal: {
warningTip: 'Anda akan menjadi anggota admin, dan pemilik baru akan memiliki kendali penuh.',
codePlaceholder: 'Tempel kode 6 digit',
title: 'Mentransfer kepemilikan ruang kerja',
codeLabel: 'Kode verifikasi',
sendVerifyCode: 'Kirim kode verifikasi',
continue: 'Terus',
transfer: 'Mentransfer kepemilikan ruang kerja',
resendTip: 'Tidak menerima kode?',
verifyContent2: 'Kami akan mengirimkan kode verifikasi sementara ke email ini untuk autentikasi ulang.',
verifyEmail: 'Memverifikasi email Anda saat ini',
transferLabel: 'Mentransfer kepemilikan ruang kerja ke',
resend: 'Kirim Ulang',
transferPlaceholder: 'Pilih anggota ruang kerja...',
warning: 'Anda akan mentransfer kepemilikan “{{workspace}}”. Ini akan berlaku segera dan tidak dapat dibatalkan.',
sendTip: 'Jika Anda melanjutkan, kami akan mengirim kode verifikasi ke <email>{{email}}</email> untuk autentikasi ulang.',
verifyContent: 'Email Anda saat ini adalah <email>{{email}}</email>.',
resendCount: 'Kirim ulang dalam {{count}} detik',
},
lastActive: 'TERAKHIR AKTIF',
owner: 'Pemilik',
normal: 'Biasa',
team: 'Tim',
adminTip: 'Dapat membangun aplikasi & mengelola pengaturan tim',
emailNotSetup: 'Server email tidak disiapkan, sehingga email undangan tidak dapat dikirim. Harap beri tahu pengguna tentang tautan undangan yang akan dikeluarkan setelah undangan.',
editor: 'Editor',
setAdmin: 'Tetapkan sebagai administrator',
failedInvitationEmails: 'Pengguna di bawah ini tidak berhasil diundang',
emailInvalid: 'Format Email Tidak Valid',
setEditor: 'Tetapkan sebagai editor',
datasetOperatorTip: 'Hanya dapat mengelola basis pengetahuan',
builderTip: 'Dapat membangun & mengedit aplikasi sendiri',
datasetOperator: 'Admin Pengetahuan',
pending: 'Tertunda...',
setBuilder: 'Tetapkan sebagai pembuat',
invitationSentTip: 'Undangan terkirim, dan mereka dapat masuk ke Dify untuk mengakses data tim Anda.',
role: 'PERAN',
ok: 'OKE',
setMember: 'Atur ke anggota biasa',
deleteMember: 'Hapus Anggota',
name: 'NAMA',
invite: 'Tambah',
inviteTeamMemberTip: 'Mereka dapat mengakses data tim Anda langsung setelah masuk.',
transferOwnership: 'Pengalihan Kepemilikan',
sendInvite: 'Kirim Undangan',
email: 'Email',
removeFromTeamTip: 'Akan menghapus akses tim',
invitationLink: 'Tautan Undangan',
you: '(Anda)',
removeFromTeam: 'Hapus dari tim',
emailPlaceholder: 'Silakan masukkan email',
inviteTeamMember: 'Tambahkan anggota tim',
builder: 'Pembangun',
disInvite: 'Batalkan undangan',
invitationSent: 'Undangan terkirim',
editorTip: 'Dapat membangun & mengedit aplikasi',
admin: 'Admin',
normalTip: 'Hanya dapat menggunakan aplikasi, tidak dapat membuat aplikasi',
invitedAsRole: 'Diundang sebagai pengguna {{role}}',
},
feedback: {
subtitle: 'Tolong beri tahu kami apa yang salah dengan tanggapan ini',
placeholder: 'Tolong jelaskan apa yang salah atau bagaimana kami dapat meningkatkan...',
content: 'Konten Umpan Balik',
title: 'Berikan Umpan Balik',
},
integrations: {
github: 'GitHub',
connected: 'Terhubung',
connect: 'Sambung',
githubAccount: 'Masuk dengan akun GitHub',
googleAccount: 'Masuk dengan akun Google',
google: 'Google',
},
language: {
displayLanguage: 'Bahasa Tampilan',
timezone: 'Zona Waktu',
},
provider: {
azure: {
helpTip: 'Pelajari Azure OpenAI Service',
apiKey: 'Kunci API',
apiBase: 'Basis API',
apiKeyPlaceholder: 'Masukkan kunci API Anda di sini',
apiBasePlaceholder: 'URL Dasar API Titik Akhir Azure OpenAI Anda.',
},
openaiHosted: {
desc: 'Layanan hosting OpenAI yang disediakan oleh Dify memungkinkan Anda menggunakan model seperti GPT-3.5. Sebelum kuota uji coba habis, Anda harus menyiapkan penyedia model lain.',
callTimes: 'Waktu panggilan',
useYourModel: 'Saat ini menggunakan Penyedia Model sendiri.',
usedUp: 'Kuota percobaan habis. Tambahkan Penyedia Model sendiri.',
openaiHosted: 'OpenAI yang Dihosting',
close: 'Tutup',
exhausted: 'KUOTA HABIS',
onTrial: 'SEDANG DIADILI',
},
anthropicHosted: {
trialQuotaTip: 'Kuota uji coba Anthropic Anda akan berakhir pada 17/03/2025 dan tidak akan tersedia lagi setelahnya. Silakan manfaatkan tepat waktu.',
callTimes: 'Waktu panggilan',
onTrial: 'SEDANG DIADILI',
anthropicHosted: 'Claude Antropis',
useYourModel: 'Saat ini menggunakan Penyedia Model sendiri.',
desc: 'Model yang kuat, yang unggul dalam berbagai tugas mulai dari dialog canggih dan pembuatan konten kreatif hingga instruksi terperinci.',
close: 'Tutup',
exhausted: 'KUOTA HABIS',
usedUp: 'Kuota percobaan habis. Tambahkan Penyedia Model sendiri.',
},
anthropic: {
keyFrom: 'Dapatkan kunci API Anda dari Anthropic',
enableTip: 'Untuk mengaktifkan model Anthropic, Anda perlu mengikat ke OpenAI atau Azure OpenAI Service terlebih dahulu.',
using: 'Kemampuan penyematan menggunakan',
notEnabled: 'Tidak diaktifkan',
},
encrypted: {
front: 'API KEY Anda akan dienkripsi dan disimpan menggunakan',
back: 'Teknologi.',
},
validatedError: 'Validasi gagal:',
invalidApiKey: 'Kunci API tidak valid',
apiKeyExceedBill: 'API KEY ini tidak memiliki kuota yang tersedia, silakan baca',
apiKey: 'Kunci API',
saveFailed: 'Menyimpan kunci api gagal',
editKey: 'Mengedit',
addKey: 'Tambahkan Kunci',
invalidKey: 'Kunci API OpenAI tidak valid',
enterYourKey: 'Masukkan kunci API Anda di sini',
comingSoon: 'Segera datang',
validating: 'Memvalidasi kunci...',
},
modelProvider: {
systemReasoningModel: {
tip: 'Atur model inferensi default yang akan digunakan untuk membuat aplikasi, serta fitur seperti pembuatan nama dialog dan saran pertanyaan berikutnya juga akan menggunakan model inferensi default.',
key: 'Model Penalaran Sistem',
},
embeddingModel: {
tip: 'Atur model default untuk pemrosesan penyematan dokumen Pengetahuan, baik pengambilan maupun impor Pengetahuan menggunakan model Penyematan ini untuk pemrosesan vektorisasi. Pengalihan akan menyebabkan dimensi vektor antara Pengetahuan yang diimpor dan pertanyaan menjadi tidak konsisten, mengakibatkan kegagalan pengambilan. Untuk menghindari kegagalan pengambilan, jangan mengganti model ini sesuka hati.',
required: 'Model Penyematan diperlukan',
key: 'Menyematkan Model',
},
speechToTextModel: {
tip: 'Atur model default untuk input ucapan-ke-teks dalam percakapan.',
key: 'Model Ucapan-ke-Teks',
},
ttsModel: {
tip: 'Atur model default untuk input teks-ke-ucapan dalam percakapan.',
key: 'Model Teks-ke-Ucapan',
},
rerankModel: {
key: 'Peringkat ulang Model',
tip: 'Model rerank akan menyusun ulang daftar dokumen kandidat berdasarkan kecocokan semantik dengan kueri pengguna, meningkatkan hasil peringkat semantik',
},
selector: {
rerankTip: 'Silakan atur model Rerank',
emptyTip: 'Tidak ada model yang tersedia',
emptySetting: 'Silakan buka pengaturan untuk mengonfigurasi',
tip: 'Model ini telah dihapus. Silakan tambahkan model atau pilih model lain.',
},
card: {
onTrial: 'Sedang Diadili',
paid: 'Dibayar',
buyQuota: 'Beli Kuota',
removeKey: 'Menghapus Kunci API',
tokens: 'Token',
callTimes: 'Waktu panggilan',
priorityUse: 'Penggunaan prioritas',
quota: 'KUOTA',
tip: 'Prioritas akan diberikan pada kuota yang dibayarkan. Kuota Trial akan digunakan setelah kuota yang dibayarkan habis.',
quotaExhausted: 'Kuota habis',
},
item: {
freeQuota: 'KUOTA GRATIS',
deleteDesc: '{{modelName}} sedang digunakan sebagai model penalaran sistem. Beberapa fungsi tidak akan tersedia setelah dihapus. Harap konfirmasi.',
},
encrypted: {
back: 'Teknologi.',
front: 'API KEY Anda akan dienkripsi dan disimpan menggunakan',
},
freeQuota: {
howToEarn: 'Cara mendapatkan penghasilan',
},
auth: {
apiKeyModal: {
addModel: 'Tambahkan model',
desc: 'Setelah mengonfigurasi kredensial, semua anggota dalam ruang kerja dapat menggunakan model ini saat mengatur aplikasi.',
title: 'Konfigurasi Otorisasi Kunci API',
},
addCredential: 'Tambahkan kredensial',
authorizationError: 'Kesalahan otorisasi',
addApiKey: 'Menambahkan Kunci API',
modelCredentials: 'Kredensial model',
authRemoved: 'Autentikasi dihapus',
configModel: 'Model konfigurasi',
providerManagedTip: 'Konfigurasi saat ini dihosting oleh penyedia.',
specifyModelCredentialTip: 'Gunakan kredensial model yang dikonfigurasi.',
apiKeys: 'Kunci API',
providerManaged: 'Penyedia dikelola',
addNewModel: 'Tambahkan model baru',
unAuthorized: 'Sah',
configLoadBalancing: 'Penyeimbangan Beban Konfigurasi',
addModelCredential: 'Menambahkan kredensial model',
specifyModelCredential: 'Tentukan kredensial model',
addNewModelCredential: 'Menambahkan kredensial model baru',
modelCredential: 'Kredensial model',
addModel: 'Tambahkan model',
removeModel: 'Hapus Model',
manageCredentials: 'Kelola Kredensial',
selectModelCredential: 'Pilih kredensial model',
editModelCredential: 'Mengedit kredensial model',
customModelCredentials: 'Kredensial Model Kustom',
customModelCredentialsDeleteTip: 'Kredensial sedang digunakan dan tidak dapat dihapus',
},
systemModelSettingsLink: 'Mengapa perlu menyiapkan model sistem?',
apiKey: 'API-KUNCI',
selectModel: 'Pilih model Anda',
showMoreModelProvider: 'Tampilkan lebih banyak penyedia model',
systemModelSettings: 'Pengaturan Model Sistem',
addModel: 'Tambahkan Model',
quota: 'Kuota',
setupModelFirst: 'Silakan atur model Anda terlebih dahulu',
loadBalancingDescription: 'Konfigurasikan beberapa kredensial untuk model dan panggil secara otomatis.',
loadBalancingInfo: 'Secara default, penyeimbangan beban menggunakan strategi Round-robin. Jika pembatasan kecepatan dipicu, periode cooldown 1 menit akan diterapkan.',
apiKeyStatusNormal: 'Status APIKey normal',
credits: 'Kredit Pesan',
confirmDelete: 'Mengkonfirmasi penghapusan?',
addMoreModelProvider: 'TAMBAHKAN PENYEDIA MODEL LAINNYA',
collapse: 'Roboh',
providerManaged: 'Penyedia dikelola',
parameters: 'PARAMETER',
notConfigured: 'Model sistem belum sepenuhnya dikonfigurasi',
priorityUsing: 'Prioritaskan penggunaan',
model: 'Pola',
buyQuota: 'Beli Kuota',
configureTip: 'Menyiapkan api-key atau menambahkan model untuk digunakan',
emptyProviderTip: 'Silakan instal penyedia model terlebih dahulu.',
loadBalancing: 'Penyeimbangan beban',
loadPresets: 'Muat Preset',
loadBalancingHeadline: 'Penyeimbangan Beban',
editConfig: 'Edit Konfigurasi',
discoverMore: 'Temukan lebih lanjut di',
modelAndParameters: 'Model dan Parameter',
upgradeForLoadBalancing: 'Tingkatkan paket Anda untuk mengaktifkan Penyeimbangan Beban.',
providerManagedDescription: 'Gunakan satu set kredensial yang disediakan oleh penyedia model.',
showModels: 'Tampilkan Model',
deprecated: 'Usang',
models: 'Model',
configLoadBalancing: 'Penyeimbangan Beban Konfigurasi',
emptyProviderTitle: 'Penyedia model tidak disiapkan',
loadBalancingLeastKeyWarning: 'Untuk mengaktifkan penyeimbangan beban, setidaknya 2 tombol harus diaktifkan.',
toBeConfigured: 'Untuk dikonfigurasi',
addApiKey: 'Menambahkan kunci API Anda',
modelHasBeenDeprecated: 'Model ini tidak digunakan lagi',
searchModel: 'Model pencarian',
addConfig: 'Tambahkan Konfigurasi',
invalidApiKey: 'Kunci API tidak valid',
defaultConfig: 'Konfigurasi Default',
config: 'Konfigurasi',
quotaTip: 'Token gratis yang masih tersedia',
installProvider: 'Menginstal penyedia model',
callTimes: 'Waktu panggilan',
getFreeTokens: 'Dapatkan Token gratis',
parametersInvalidRemoved: 'Beberapa parameter tidak valid dan telah dihapus',
installDataSourceProvider: 'Pasang penyedia sumber data',
noModelFound: 'Tidak ditemukan model untuk {{model}}',
modelsNum: 'Model {{num}}',
showModelsNum: 'Tampilkan {{num}} Model',
featureSupported: '{{feature}} didukung',
apiKeyRateLimit: 'Batas kecepatan tercapai, tersedia setelah {{seconds}} detik',
},
dataSource: {
notion: {
selector: {
searchPages: 'Halaman pencarian...',
addPages: 'Tambahkan halaman',
pageSelected: 'Halaman yang Dipilih',
preview: 'PRATAYANG',
noSearchResult: 'Tidak ada hasil pencarian',
},
integratedAlert: 'Notion terintegrasi melalui kredensial internal, tidak perlu mengotorisasi ulang.',
disconnected: 'Terputus',
remove: 'Hapus',
addWorkspace: 'Menambahkan ruang kerja',
description: 'Menggunakan Notion sebagai sumber data untuk Pengetahuan.',
connected: 'Terhubung',
pagesAuthorized: 'Halaman yang disahkan',
changeAuthorizedPages: 'Mengubah halaman resmi',
title: 'Notion',
sync: 'Sync',
connectedWorkspace: 'Ruang kerja yang terhubung',
},
website: {
title: 'Situs web',
with: 'Dengan',
active: 'Aktif',
inactive: 'Aktif',
description: 'Impor konten dari situs menggunakan perayap web.',
configuredCrawlers: 'Perayap yang dikonfigurasi',
},
connect: 'Sambung',
configure: 'Mengkonfigurasi',
add: 'Menambahkan sumber data',
},
plugin: {
serpapi: {
apiKey: 'Kunci API',
apiKeyPlaceholder: 'Masukkan kunci API Anda',
keyFrom: 'Dapatkan kunci SerpAPI Anda dari Halaman Akun SerpAPI',
},
},
apiBasedExtension: {
selector: {
title: 'Ekstensi API',
placeholder: 'Silakan pilih ekstensi API',
manage: 'Kelola Ekstensi API',
},
modal: {
name: {
title: 'Nama',
placeholder: 'Silakan masukkan nama',
},
apiEndpoint: {
title: 'Titik Akhir API',
placeholder: 'Silakan masukkan titik akhir API',
},
apiKey: {
title: 'Kunci API',
lengthError: 'Panjang kunci API tidak boleh kurang dari 5 karakter',
placeholder: 'Silakan masukkan kunci API',
},
editTitle: 'Edit Ekstensi API',
title: 'Tambahkan Ekstensi API',
},
link: 'Pelajari cara mengembangkan Ekstensi API Anda sendiri.',
title: 'Ekstensi API menyediakan manajemen API terpusat, menyederhanakan konfigurasi agar mudah digunakan di seluruh aplikasi Dify.',
type: 'Jenis',
add: 'Tambahkan Ekstensi API',
},
about: {
changeLog: 'Log perubahan',
updateNow: 'Perbarui sekarang',
nowAvailable: 'Dify {{version}} kini tersedia.',
latestAvailable: 'Dify {{version}} adalah versi terbaru yang tersedia.',
},
appMenus: {
logs: 'Log',
overview: 'Pemantauan',
logAndAnn: 'Log & Anotasi',
promptEng: 'Mengatur',
apiAccess: 'Akses API',
},
environment: {
development: 'PENGEMBANGAN',
testing: 'PENGUJIAN',
},
appModes: {
completionApp: 'Pembuat Teks',
chatApp: 'Aplikasi Obrolan',
},
datasetMenus: {
hitTesting: 'Pengujian Pengambilan',
relatedApp: 'Aplikasi tertaut',
emptyTip: 'Pengetahuan ini belum terintegrasi dalam aplikasi apa pun. Silakan lihat dokumen untuk panduan.',
documents: 'Dokumen',
settings: 'Pengaturan',
noRelatedApp: 'Tidak ada aplikasi yang ditautkan',
viewDoc: 'Lihat dokumentasi',
pipeline: 'Pipa',
},
voiceInput: {
speaking: 'Bicaralah sekarang...',
notAllow: 'mikrofon tidak diizinkan',
converting: 'Mengonversi ke teks...',
},
modelName: {
'claude-2': 'Claude-2',
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
'gpt-4': 'GPT-4',
'whisper-1': 'Whisper-1',
'text-davinci-003': 'Teks-Davinci-003',
'gpt-4-32k': 'GPT-4-32K',
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
'claude-instant-1': 'Claude-Instan',
'text-embedding-ada-002': 'Penyematan Teks-Ada-002',
},
chat: {
citation: {
linkToDataset: 'Tautan ke Pengetahuan',
characters: 'Karakter:',
vectorHash: 'Hash vektor:',
hitScore: 'Skor Pengambilan:',
title: 'KUTIPAN',
hitCount: 'Jumlah pengambilan:',
},
resend: 'Kirim Ulang',
conversationName: 'Nama percakapan',
thinking: 'Sedang berpikir...',
conversationNameCanNotEmpty: 'Nama percakapan diperlukan',
thought: 'Pikiran',
renameConversation: 'Ganti Nama Percakapan',
conversationNamePlaceholder: 'Silakan masukkan nama percakapan',
inputPlaceholder: 'Bicaralah dengan {{botName}}',
},
promptEditor: {
context: {
item: {
title: 'Konteks',
desc: 'Sisipkan templat konteks',
},
modal: {
footer: 'Anda dapat mengelola konteks di bagian Konteks di bawah.',
add: 'Tambahkan Konteks',
title: '{{num}} Pengetahuan dalam Konteks',
},
},
history: {
item: {
title: 'Riwayat Percakapan',
desc: 'Menyisipkan templat pesan historis',
},
modal: {
edit: 'Mengedit Nama Peran Percakapan',
title: 'CONTOH',
user: 'Halo',
assistant: 'Halo! Bagaimana saya dapat membantu Anda hari ini?',
},
},
variable: {
item: {
title: 'Variabel & Alat Eksternal',
desc: 'Sisipkan Variabel & Alat Eksternal',
},
outputToolDisabledItem: {
desc: 'Sisipkan Variabel',
title: 'Variabel',
},
modal: {
addTool: 'Alat baru',
add: 'Variabel baru',
},
},
query: {
item: {
desc: 'Menyisipkan templat kueri pengguna',
title: 'Kueri',
},
},
placeholder: 'Tulis kata prompt Anda di sini, masukkan \'{\' untuk menyisipkan variabel, masukkan \'/\' untuk menyisipkan blok konten prompt',
existed: 'Sudah ada di prompt',
},
imageUploader: {
pasteImageLink: 'Tempel tautan gambar',
uploadFromComputer: 'Unggah dari Komputer',
uploadFromComputerUploadError: 'Unggahan gambar gagal, silakan unggah lagi.',
imageUpload: 'Unggah Gambar',
uploadFromComputerReadError: 'Pembacaan gambar gagal, silakan coba lagi.',
pasteImageLinkInvalid: 'Tautan gambar tidak valid',
pasteImageLinkInputPlaceholder: 'Tempel tautan gambar di sini',
uploadFromComputerLimit: 'Unggah gambar tidak boleh lebih dari {{size}} MB',
},
fileUploader: {
fileExtensionNotSupport: 'Ekstensi file tidak didukung',
uploadFromComputer: 'Unggahan lokal',
pasteFileLink: 'Tempel tautan file',
uploadFromComputerUploadError: 'Unggahan file gagal, silakan unggah lagi.',
pasteFileLinkInvalid: 'Tautan file tidak valid',
pasteFileLinkInputPlaceholder: 'Masukkan URL...',
uploadFromComputerReadError: 'Pembacaan file gagal, silakan coba lagi.',
fileExtensionBlocked: 'Tipe file ini diblokir karena alasan keamanan',
uploadFromComputerLimit: 'Unggahan {{type}} tidak boleh melebihi {{size}}',
},
tag: {
noTag: 'Tidak ada tag',
manageTags: 'Kelola Tag',
created: 'Tag berhasil dibuat',
delete: 'Hapus tag',
editTag: 'Edit tag',
addTag: 'Tambahkan tag',
create: 'Menciptakan',
addNew: 'Tambahkan tag baru',
failed: 'Pembuatan tag gagal',
selectorPlaceholder: 'Ketik untuk mencari atau membuat',
deleteTip: 'Tag sedang digunakan, hapus?',
placeholder: 'Semua Tag',
noTagYet: 'Belum ada tag',
},
license: {
unlimited: 'Unlimited',
expiring: 'Kedaluwarsa dalam satu hari',
expiring_plural: 'Kedaluwarsa dalam {{count}} hari',
},
pagination: {
perPage: 'Item per halaman',
},
avatar: {
deleteTitle: 'Hapus Avatar',
deleteDescription: 'Apakah Anda yakin ingin menghapus gambar profil Anda? Akun Anda akan menggunakan avatar awal default.',
},
imageInput: {
browse: 'Telusuri',
supportedFormats: 'Mendukung PNG, JPG, JPEG, WEBP dan GIF',
dropImageHere: 'Letakkan gambar Anda di sini, atau',
},
you: 'Kamu',
label: {
optional: '(opsional)',
},
noData: 'Tidak ada data',
dynamicSelect: {
error: 'Gagal memuat opsi',
noData: 'Tidak ada opsi yang tersedia',
loading: 'Memuat opsi...',
selected: '{{count}} dipilih',
},
}
export default translation

View File

@@ -0,0 +1,32 @@
const translation = {
upgradeTip: {
prefix: 'Tingkatkan paket Anda ke',
des: 'Tingkatkan paket Anda untuk menyesuaikan merek Anda',
suffix: 'Sesuaikan merek Anda.',
title: 'Tingkatkan paket Anda',
},
webapp: {
changeLogoTip: 'Format SVG atau PNG dengan ukuran minimum 40x40px',
removeBrand: 'Hapus Branding Dify',
changeLogo: 'Ubah Logo Merek',
title: 'Kustomisasi Branding Aplikasi Web',
},
app: {
title: 'Kustomisasi Branding Header Aplikasi',
changeLogoTip: 'Format SVG atau PNG dengan ukuran minimal 80x80px',
},
customize: {
suffix: 'untuk upgrade ke edisi Enterprise.',
prefix: 'Untuk kustomisasi logo merek di dalam aplikasi, silakan',
contactUs: 'Hubungi Kami',
},
custom: 'Kustomisasi',
uploading: 'Mengunggah...',
upload: 'Unggah',
change: 'Ubah',
restore: 'Pulihkan Default',
apply: 'Terapkan',
uploadedFail: 'Unggahan gambar gagal, silakan unggah ulang.',
}
export default translation

View File

@@ -0,0 +1,217 @@
const translation = {
steps: {
header: {
fallbackRoute: 'Pengetahuan',
},
two: 'Pemrosesan Dokumen',
three: 'Eksekusi & Selesaikan',
one: 'Sumber Data',
},
error: {
unavailable: 'Pengetahuan ini tidak tersedia',
},
firecrawl: {
getApiKeyLinkText: 'Dapatkan kunci API Anda dari firecrawl.dev',
configFirecrawl: 'Mengonfigurasi 🔥Firecrawl',
apiKeyPlaceholder: 'Kunci API dari firecrawl.dev',
},
watercrawl: {
configWatercrawl: 'Mengonfigurasi Watercrawl',
getApiKeyLinkText: 'Dapatkan kunci API Anda dari watercrawl.dev',
apiKeyPlaceholder: 'Kunci API dari watercrawl.dev',
},
jinaReader: {
apiKeyPlaceholder: 'Kunci API dari jina.ai',
getApiKeyLinkText: 'Dapatkan kunci API gratis Anda di jina.ai',
configJinaReader: 'Konfigurasikan Jina Reader',
},
stepOne: {
dataSourceType: {
file: 'Impor dari file',
notion: 'Sinkronkan dari Notion',
web: 'Sinkronkan dari situs web',
},
uploader: {
validation: {
count: 'Beberapa file tidak didukung',
typeError: 'Jenis file tidak didukung',
size: 'Berkas terlalu besar. Maksimal {{size}}MB',
filesNumber: 'Anda telah mencapai batas unggah batch sebanyak {{filesNumber}}.',
},
buttonSingleFile: 'Seret dan lepas file, atau',
title: 'Unggah file',
browse: 'Ramban',
cancel: 'Membatalkan',
button: 'Seret dan lepas file atau folder, atau',
change: 'Ubah',
failed: 'Upload gagal',
tip: 'Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.',
},
modal: {
title: 'Buat Pengetahuan kosong',
placeholder: 'Silakan masukkan',
confirmButton: 'Menciptakan',
cancelButton: 'Membatalkan',
nameNotEmpty: 'Nama tidak boleh kosong',
input: 'Nama pengetahuan',
failed: 'Pembuatan gagal',
nameLengthInvalid: 'Nama harus antara 1 hingga 40 karakter',
tip: 'Pengetahuan kosong tidak akan berisi dokumen, dan Anda dapat mengunggah dokumen kapan saja.',
},
website: {
configure: 'Konfigurasikan',
fireCrawlNotConfigured: 'Firecrawl tidak dikonfigurasi',
chooseProvider: 'Pilih penyedia',
configureFirecrawl: 'Konfigurasikan Firecrawl',
watercrawlDoc: 'Dokumen Watercrawl',
options: 'Pilihan',
firecrawlTitle: 'Mengekstrak konten web dengan 🔥Firecrawl',
jinaReaderNotConfigured: 'Jina Reader tidak dikonfigurasi',
preview: 'Pratayang',
resetAll: 'Atur Ulang Semua',
run: 'Jalankan',
limit: 'Batas',
useSitemap: 'Menggunakan peta situs',
jinaReaderDoc: 'Pelajari lebih lanjut tentang Jina Reader',
configureJinaReader: 'Konfigurasikan Jina Reader',
watercrawlTitle: 'Ekstrak konten web dengan Watercrawl',
crawlSubPage: 'Merayapi sub-halaman',
totalPageScraped: 'Total halaman yang dikikis:',
waterCrawlNotConfigured: 'Watercrawl tidak dikonfigurasi',
fireCrawlNotConfiguredDescription: 'Konfigurasikan Firecrawl dengan kunci API untuk menggunakannya.',
exceptionErrorTitle: 'Pengecualian terjadi saat menjalankan pekerjaan crawling:',
jinaReaderNotConfiguredDescription: 'Siapkan Jina Reader dengan memasukkan kunci API gratis Anda untuk akses.',
includeOnlyPaths: 'Sertakan hanya jalur',
jinaReaderTitle: 'Konversi seluruh situs ke Markdown',
excludePaths: 'Kecualikan jalur',
unknownError: 'Kesalahan tidak diketahui',
extractOnlyMainContent: 'Ekstrak hanya konten utama (tanpa header, navigasi, footer, dll.)',
useSitemapTooltip: 'Ikuti peta situs untuk meng-crawl situs. Jika tidak, Jina Reader akan merayapi secara berulang berdasarkan relevansi halaman, menghasilkan halaman yang lebih sedikit tetapi berkualitas lebih tinggi.',
maxDepth: 'Kedalaman maks',
jinaReaderDocLink: 'https://jina.ai/reader',
selectAll: 'Pilih Semua',
maxDepthTooltip: 'Kedalaman maksimum untuk di-crawl relatif terhadap URL yang dimasukkan. Kedalaman 0 hanya mengikis halaman url yang dimasukkan, kedalaman 1 mengikis url dan semuanya setelah dimasukkan URL satu /, dan seterusnya.',
waterCrawlNotConfiguredDescription: 'Konfigurasikan Watercrawl dengan kunci API untuk menggunakannya.',
firecrawlDoc: 'Dokumen Firecrawl',
configureWatercrawl: 'Konfigurasikan Watercrawl',
running: 'Menjalankan',
scrapTimeInfo: 'Telah mengumpulkan {{total}} halaman secara total dalam {{time}} detik',
},
pagePreview: 'Pratinjau Halaman',
notionSyncTitle: 'Notion tidak terhubung',
filePreview: 'Pratinjau File',
cancel: 'Membatalkan',
emptyDatasetCreation: 'Saya ingin membuat Pengetahuan kosong',
button: 'Berikutnya',
notionSyncTip: 'Untuk menyinkronkan dengan Notion, koneksi ke Notion harus dibuat terlebih dahulu.',
connect: 'Hubungkan',
},
stepTwo: {
paragraph: 'Paragraf',
QATitle: 'Segmentasi dalam format Tanya Jawab',
QALanguage: 'Segmen menggunakan',
custom: 'Adat',
fullDoc: 'Dokumen Lengkap',
overlapCheck: 'Tumpang tindih potongan tidak boleh lebih besar dari panjang potongan maksimum',
economical: 'Ekonomis',
parentChunkForContext: 'Parent-chunk untuk Konteks',
estimateCost: 'Kira',
other: 'dan lainnya',
autoDescription: 'Atur aturan potongan dan prapemrosesan secara otomatis. Pengguna yang tidak dikenal disarankan untuk memilih ini.',
reset: 'Reset',
auto: 'Otomatis',
removeExtraSpaces: 'Mengganti spasi berturut-turut, baris baru, dan tab',
indexMode: 'Metode Indeks',
useQALanguage: 'Potongan menggunakan format Tanya Jawab di',
previousStep: 'Langkah sebelumnya',
warning: 'Silakan siapkan kunci API penyedia model terlebih dahulu.',
paragraphTip: 'Mode ini membagi teks menjadi paragraf berdasarkan pembatas dan panjang potongan maksimum, menggunakan teks terpisah sebagai potongan induk untuk pengambilan.',
separatorTip: 'Pemisah adalah karakter yang digunakan untuk memisahkan teks. \\n\\n dan \\n adalah pembatas yang biasa digunakan untuk memisahkan paragraf dan baris. Dikombinasikan dengan koma (\\n\\n,\\n), paragraf akan disegmentasikan berdasarkan baris saat melebihi panjang potongan maksimum. Anda juga dapat menggunakan pembatas khusus yang ditentukan sendiri (misalnya ***).',
notionSource: 'Halaman praproses',
overlap: 'Tumpang tindih potongan',
click: 'Buka pengaturan',
highQualityTip: 'Setelah selesai menyematkan dalam mode Kualitas Tinggi, kembali ke mode Ekonomis tidak tersedia.',
previewChunk: 'Pratinjau Potongan',
webpageUnit: 'Halaman',
fullDocTip: 'Seluruh dokumen digunakan sebagai potongan induk dan diambil secara langsung. Harap dicatat bahwa untuk alasan kinerja, teks yang melebihi 10000 token akan dipotong secara otomatis.',
maxLength: 'Panjang potongan maksimum',
fileUnit: 'File',
parentChild: 'Orang tua-anak',
estimateSegment: 'Perkiraan potongan',
calculating: 'Menghitung...',
qualified: 'Kualitas Tinggi',
segmentation: 'Pengaturan Potongan',
generalTip: 'Mode pemotongan teks umum, potongan yang diambil dan ditarik kembali sama.',
characters: 'Karakter',
fileSource: 'Praproses dokumen',
parentChildDelimiterTip: 'Pemisah adalah karakter yang digunakan untuk memisahkan teks. \\n\\n direkomendasikan untuk membagi dokumen asli menjadi potongan induk yang besar. Anda juga dapat menggunakan pembatas khusus yang ditentukan sendiri.',
separatorPlaceholder: '\\n\\n untuk paragraf; \\n untuk baris',
qualifiedTip: 'Memanggil model penyematan untuk memproses dokumen untuk pengambilan yang lebih tepat membantu LLM menghasilkan jawaban berkualitas tinggi.',
previewTitle: 'Pratayang',
economicalTip: 'Menggunakan 10 kata kunci per potongan untuk pengambilan, tidak ada token yang dikonsumsi dengan mengorbankan penurunan akurasi pengambilan.',
recommend: 'Merekomendasikan',
segmentCount: 'Potongan',
removeUrlEmails: 'Menghapus semua URL dan alamat email',
childChunkForRetrieval: 'Potongan anak untuk Pengambilan',
cancel: 'Membatalkan',
notionUnit: 'Halaman',
removeStopwords: 'Hapus kata henti seperti "a", "an", "the"',
customDescription: 'Sesuaikan aturan potongan, panjang potongan, dan aturan prapemrosesan, dll.',
overlapTip: 'Mengatur tumpang tindih potongan dapat mempertahankan relevansi semantik di antara mereka, meningkatkan efek pengambilan. Disarankan untuk mengatur 10% -25% dari ukuran potongan maksimum.',
previewSwitchTipStart: 'Pratinjau potongan saat ini dalam format teks, beralih ke pratinjau format tanya jawab akan',
nextStep: 'Simpan & Proses',
previewButton: 'Beralih ke format Tanya Jawab',
notAvailableForQA: 'Tidak tersedia untuk Indeks Tanya Jawab',
previewSwitchTipEnd: 'Konsumsi token tambahan',
retrievalSettingTip: 'Untuk mengubah pengaturan pengambilan, silakan buka',
previewChunkTip: 'Klik tombol \'Pratinjau Potongan\' di sebelah kiri untuk memuat pratinjau',
sideTipP4: 'Potongan dan pembersihan yang tepat meningkatkan kinerja model, memberikan hasil yang lebih akurat dan berharga.',
previewTitleButton: 'Pratayang',
switch: 'Beralih',
datasetSettingLink: 'Pengaturan pengetahuan.',
rules: 'Aturan Pra-pemrosesan Teks',
sideTipP2: 'Segmentasi membagi teks panjang menjadi paragraf sehingga model dapat memahami dengan lebih baik. Ini meningkatkan kualitas dan relevansi hasil model.',
sideTipP1: 'Saat memproses data teks, potongan dan pembersihan adalah dua langkah prapemrosesan yang penting.',
QATip: 'Aktifkan opsi ini akan menggunakan lebih banyak token',
qaSwitchHighQualityTipTitle: 'Format Q&A Membutuhkan Metode Pengindeksan Berkualitas Tinggi',
sideTipTitle: 'Mengapa chunk dan praproses?',
parentChildTip: 'Saat menggunakan mode induk-anak, potongan anak digunakan untuk pengambilan dan potongan induk digunakan untuk penarikan kembali sebagai konteks.',
sideTipP3: 'Pembersihan menghapus karakter dan format yang tidak perlu, membuat Pengetahuan lebih bersih dan lebih mudah diuraikan.',
notAvailableForParentChild: 'Tidak tersedia untuk Indeks Induk-anak',
separator: 'Pembatas',
save: 'Simpan & Proses',
preview: 'Pratayang',
websiteSource: 'Situs web praproses',
parentChildChunkDelimiterTip: 'Pemisah adalah karakter yang digunakan untuk memisahkan teks. \\n direkomendasikan untuk membagi potongan induk menjadi potongan anak kecil. Anda juga dapat menggunakan pembatas khusus yang ditentukan sendiri.',
qaSwitchHighQualityTipContent: 'Saat ini, hanya metode indeks berkualitas tinggi yang mendukung pemotongan format Tanya Jawab. Apakah Anda ingin beralih ke mode berkualitas tinggi?',
general: 'Umum',
indexSettingTip: 'Untuk mengubah metode indeks & model penyematan, silakan pergi ke',
qaTip: 'Saat menggunakan data Tanya Jawab terstruktur, Anda dapat membuat dokumen yang memasangkan pertanyaan dengan jawaban. Dokumen-dokumen ini diindeks berdasarkan bagian pertanyaan, memungkinkan sistem untuk mengambil jawaban yang relevan berdasarkan kesamaan kueri.',
maxLengthCheck: 'Panjang potongan maksimum sebaiknya kurang dari {{limit}}',
previewChunkCount: '{{count}} Potongan perkiraan',
},
stepThree: {
modelTitle: 'Apakah Anda yakin untuk berhenti menyematkan?',
sideTipTitle: 'Apa selanjutnya',
additionTitle: '🎉 Dokumen diunggah',
creationTitle: '🎉 Pengetahuan yang diciptakan',
additionP2: ', Anda dapat menemukannya di daftar dokumen Pengetahuan.',
additionP1: 'Dokumen telah diunggah ke Knowledge',
navTo: 'Buka dokumen',
resume: 'Melanjutkan pemrosesan',
stop: 'Hentikan pemrosesan',
creationContent: 'Kami secara otomatis menamai Pengetahuan, Anda dapat memodifikasinya kapan saja.',
modelButtonConfirm: 'Konfirmasi',
sideTipContent: 'Setelah dokumen selesai diindeks, Pengetahuan dapat diintegrasikan ke dalam aplikasi sebagai konteks, Anda dapat menemukan pengaturan konteks di halaman orkestrasi perintah. Anda juga dapat membuatnya sebagai plugin pengindeksan ChatGPT independen untuk dirilis.',
modelButtonCancel: 'Membatalkan',
label: 'Nama pengetahuan',
modelContent: 'Jika Anda perlu melanjutkan pemrosesan nanti, Anda akan melanjutkan dari bagian terakhir yang Anda tinggalkan.',
},
otherDataSource: {
title: 'Terhubung ke sumber data lain?',
learnMore: 'Pelajari lebih lanjut',
description: 'Saat ini, basis pengetahuan Dify hanya memiliki sumber data yang terbatas. Menyumbangkan sumber data ke basis pengetahuan Dify adalah cara yang fantastis untuk membantu meningkatkan fleksibilitas dan kekuatan platform bagi semua pengguna. Panduan kontribusi kami memudahkan untuk memulai. Silakan klik tautan di bawah ini untuk mempelajari lebih lanjut.',
},
}
export default translation

View File

@@ -0,0 +1,406 @@
const translation = {
list: {
table: {
header: {
hitCount: 'HITUNGAN PENGAMBILAN',
uploadTime: 'WAKTU UNGGAH',
fileName: 'NAMA',
words: 'KATA',
status: 'KEADAAN',
action: 'PERBUATAN',
chunkingMode: 'CHUNKING MODE',
},
rename: 'Ubah nama',
name: 'Nama',
},
action: {
add: 'Tambahkan potongan',
uploadFile: 'Unggah file baru',
addButton: 'Tambahkan potongan',
delete: 'Menghapus',
archive: 'Mengarsipkan',
pause: 'Jeda',
settings: 'Pengaturan Chunking',
enableWarning: 'File yang diarsipkan tidak dapat diaktifkan',
resume: 'Melanjutkan',
batchAdd: 'Tambahkan batch',
unarchive: 'Batalkan arsip',
sync: 'Sync',
},
index: {
all: 'Semua',
enable: 'Mengaktifkan',
enableTip: 'File dapat diindeks',
disableTip: 'File tidak dapat diindeks',
disable: 'Menonaktifkan',
},
status: {
error: 'Kesalahan',
archived: 'Diarsipkan',
paused: 'Berhenti',
queuing: 'Antrian',
enabled: 'Diaktifkan',
disabled: 'Cacat',
available: 'Tersedia',
indexing: 'Pengindeksan',
},
empty: {
upload: {
tip: 'Anda dapat mengunggah file, menyinkronkan dari situs web, atau dari aplikasi web seperti Notion, GitHub, dll.',
},
sync: {
tip: 'Dify akan mengunduh file dari Notion Anda secara berkala dan menyelesaikan pemrosesan.',
},
title: 'Belum ada dokumentasi',
},
delete: {
title: 'Apakah Anda yakin Hapus?',
content: 'Jika Anda perlu melanjutkan pemrosesan nanti, Anda akan melanjutkan dari bagian terakhir',
},
batchModal: {
cancel: 'Membatalkan',
run: 'Jalankan Batch',
template: 'Unduh templat di sini',
csvUploadTitle: 'Seret dan lepas file CSV Anda di sini, atau',
question: 'pertanyaan',
tip: 'File CSV harus sesuai dengan struktur berikut:',
contentTitle: 'konten potongan',
processing: 'Dalam pemrosesan batch',
content: 'puas',
ok: 'OKE',
error: 'Kesalahan Impor',
completed: 'Impor selesai',
answer: 'menjawab',
runError: 'Menjalankan batch gagal',
browse: 'ramban',
title: 'Tambahkan potongan batch',
},
desc: 'Semua file Pengetahuan ditampilkan di sini, dan seluruh Pengetahuan dapat ditautkan ke kutipan Dify atau diindeks melalui plugin Obrolan.',
addPages: 'Tambahkan Halaman',
addFile: 'Tambahkan file',
learnMore: 'Pelajari lebih lanjut',
addUrl: 'Tambahkan URL',
title: 'Dokumen',
sort: {
uploadTime: 'Waktu Unggah',
hitCount: 'Jumlah Pengambilan',
},
},
metadata: {
placeholder: {
select: 'Pilih',
add: 'Tambah',
},
source: {
notion: 'Sinkronkan formulir Notion',
upload_file: 'Unggah File',
github: 'Sinkronkan formulir Github',
website_crawl: 'Perayapan Situs Web',
online_document: 'Dokumen Online',
local_file: 'File Lokal',
},
type: {
book: 'Buku',
github: 'Sinkronkan formulir Github',
webPage: 'Halaman Web',
paper: 'Kertas',
technicalParameters: 'Parameter teknis',
personalDocument: 'Dokumen Pribadi',
wikipediaEntry: 'Entri Wikipedia',
socialMediaPost: 'Postingan Media Sosial',
notion: 'Sinkronkan formulir Notion',
IMChat: 'Obrolan IM',
businessDocument: 'Dokumen Bisnis',
},
field: {
processRule: {
processClean: 'Proses Teks Bersih',
segmentRule: 'Aturan Potongan',
processDoc: 'Dokumen Proses',
segmentLength: 'Panjang Potongan',
},
book: {
publicationDate: 'Tanggal Publikasi',
language: 'Bahasa',
category: 'Golongan',
publisher: 'Penerbit',
ISBN: 'ISBN',
author: 'Pengarang',
title: 'Titel',
},
webPage: {
language: 'Bahasa',
authorPublisher: 'Penulis/Penerbit',
description: 'Deskripsi',
topicKeywords: 'Topik/Kata Kunci',
url: 'URL',
title: 'Titel',
publishDate: 'Tanggal Publikasi',
},
paper: {
title: 'Titel',
DOI: 'DOI',
volumeIssuePage: 'Volume/Edisi/Halaman',
topicsKeywords: 'Topik/Kata Kunci',
abstract: 'Abstrak',
author: 'Pengarang',
journalConferenceName: 'Nama Jurnal/Konferensi',
language: 'Bahasa',
publishDate: 'Tanggal Publikasi',
},
socialMediaPost: {
postURL: 'URL posting',
topicsTags: 'Topik/Tag',
publishDate: 'Tanggal Publikasi',
platform: 'Balei-balei',
authorUsername: 'Penulis/Nama Pengguna',
},
personalDocument: {
author: 'Pengarang',
title: 'Titel',
tagsCategory: 'Tags/Kategori',
documentType: 'Jenis Dokumen',
creationDate: 'Tanggal Pembuatan',
lastModifiedDate: 'Tanggal Terakhir Diubah',
},
businessDocument: {
creationDate: 'Tanggal Pembuatan',
author: 'Pengarang',
title: 'Titel',
departmentTeam: 'Departemen/Tim',
lastModifiedDate: 'Tanggal Terakhir Diubah',
documentType: 'Jenis Dokumen',
},
IMChat: {
endDate: 'Tanggal Berakhir',
participants: 'Peserta',
topicsKeywords: 'Topik/Kata Kunci',
startDate: 'Tanggal Mulai',
fileType: 'Jenis File',
chatPlatform: 'Platform Obrolan',
chatPartiesGroupName: 'Chat Party/Nama Grup',
},
wikipediaEntry: {
webpageURL: 'URL halaman web',
title: 'Titel',
language: 'Bahasa',
lastEditDate: 'Tanggal Edit Terakhir',
editorContributor: 'Editor/Kontributor',
summaryIntroduction: 'Ringkasan/Pendahuluan',
},
notion: {
url: 'URL',
createdTime: 'Waktu yang Diciptakan',
description: 'Deskripsi',
title: 'Titel',
author: 'Pengarang',
lastModifiedTime: 'Waktu Terakhir Dimodifikasi',
language: 'Bahasa',
tag: 'Tag',
},
github: {
repoDesc: 'Deskripsi Repo',
lastCommitTime: 'Waktu Komitmen Terakhir',
lastCommitAuthor: 'Penulis Komitmen Terakhir',
url: 'URL',
fileName: 'Nama File',
programmingLang: 'Bahasa pemrograman',
repoName: 'Nama Repo',
filePath: 'Jalur File',
repoOwner: 'Pemilik Repo',
license: 'Lisensi',
},
originInfo: {
source: 'Sumber',
originalFilename: 'Nama file asli',
lastUpdateDate: 'Tanggal pembaruan terakhir',
originalFileSize: 'Ukuran file asli',
uploadDate: 'Tanggal upload',
},
technicalParameters: {
avgParagraphLength: 'Rata-rata panjang paragraf',
paragraphs: 'Paragraf',
segmentLength: 'Panjang potongan',
segmentSpecification: 'Spesifikasi potongan',
embeddingTime: 'Waktu penyematan',
embeddedSpend: 'Pengeluaran tertanam',
hitCount: 'Jumlah pengambilan',
},
},
languageMap: {
en: 'Inggris',
es: 'Spanyol',
ar: 'Arab',
fr: 'Prancis',
ko: 'Korea',
pl: 'Polandia',
no: 'Norwegia',
tr: 'Turki',
id: 'Indonesia',
ja: 'Jepang',
nl: 'Belanda',
zh: 'Cina',
fi: 'Finlandia',
hi: 'Hindi',
el: 'Yunani',
th: 'Thai',
it: 'Italia',
pt: 'Portugis',
ru: 'Rusia',
he: 'Ibrani',
hu: 'Hongaria',
de: 'Jerman',
da: 'Denmark',
cs: 'Ceko',
sv: 'Swedia',
},
categoryMap: {
book: {
biography: 'Biografi',
businessEconomics: 'BisnisEkonomi',
health: 'Kesehatan',
religion: 'Agama',
poetry: 'Puisi',
technology: 'Teknologi',
travel: 'Bepergian',
science: 'Ilmu',
comicsGraphicNovels: 'KomikNovel Grafis',
philosophy: 'Filsafat',
socialSciences: 'Ilmu Sosial',
cooking: 'Memasak',
other: 'Lain',
selfHelp: 'Bantuan Mandiri',
art: 'Seni',
history: 'Sejarah',
fiction: 'Fiksi',
drama: 'Drama',
childrenYoungAdults: 'Anak-anakMudaDewasa',
education: 'Pendidikan',
},
personalDoc: {
bookExcerpt: 'Kutipan Buku',
projectOverview: 'Ikhtisar Proyek',
designDraft: 'Draf Desain',
blogDraft: 'Draf Blog',
codeSnippet: 'Cuplikan Kode',
notes: 'Catatan',
diary: 'Buku harian',
schedule: 'Jadwal',
creativeWriting: 'Penulisan Kreatif',
other: 'Lain',
researchReport: 'Laporan Penelitian',
list: 'Daftar',
personalResume: 'Resume Pribadi',
photoCollection: 'Koleksi Foto',
},
businessDoc: {
meetingMinutes: 'Risalah Rapat',
emailCorrespondence: 'Korespondensi Email',
researchReport: 'Laporan Penelitian',
designDocument: 'Dokumen Desain',
productSpecification: 'Spesifikasi Produk',
projectPlan: 'Rencana Proyek',
requirementsDocument: 'Dokumen Persyaratan',
financialReport: 'Laporan Keuangan',
contractsAgreements: 'Kontrak & Perjanjian',
proposal: 'Proposal',
employeeHandbook: 'Buku Pegangan Karyawan',
marketAnalysis: 'Analisis Pasar',
trainingMaterials: 'Materi Pelatihan',
teamStructure: 'Struktur Tim',
other: 'Lain',
policiesProcedures: 'Kebijakan & Prosedur',
},
},
docTypeSelectWarning: 'Jika jenis dokumen diubah, metadata yang sekarang terisi tidak akan lagi dipertahankan',
firstMetaAction: 'Ayo',
docTypeChangeTitle: 'Mengubah jenis dokumen',
dateTimeFormat: 'MMMM D, YYYY hh:mm A',
docTypeSelectTitle: 'Silakan pilih jenis dokumen',
desc: 'Pelabelan metadata untuk dokumen memungkinkan AI mengaksesnya tepat waktu dan mengekspos sumber referensi bagi pengguna.',
title: 'Metadata',
},
embedding: {
completed: 'Penyematan selesai',
processing: 'Pemrosesan penyematan...',
pause: 'Jeda',
textCleaning: 'Aturan Prapemrosesan Teks',
automatic: 'Otomatis',
estimate: 'Perkiraan konsumsi',
economy: 'Mode ekonomi',
error: 'Kesalahan penyematan',
docName: 'Dokumen pra-pemrosesan',
previewTip: 'Pratinjau paragraf akan tersedia setelah penyematan selesai',
mode: 'Pengaturan Chunking',
parentMaxTokens: 'Ortu',
hierarchical: 'Orang tua-anak',
highQuality: 'Mode berkualitas tinggi',
childMaxTokens: 'Anak',
segments: 'Paragraf',
segmentLength: 'Panjang Potongan Maksimum',
paused: 'Penyematan dijeda',
stop: 'Hentikan pemrosesan',
custom: 'Adat',
resume: 'Melanjutkan',
waiting: 'Menunggu embedding...',
},
segment: {
searchResults_one: 'HASIL',
editParentChunk: 'Edit Potongan Induk',
contentEmpty: 'Konten tidak boleh kosong',
keywordEmpty: 'Kata kunci tidak boleh kosong',
chunkDetail: 'Detail Potongan',
chunkAdded: '1 potongan ditambahkan',
collapseChunks: 'Ciutkan potongan',
delete: 'Hapus potongan ini ?',
addChunk: 'Tambahkan Potongan',
childChunks_one: 'POTONGAN ANAK',
empty: 'Tidak ada Potongan yang ditemukan',
regeneratingTitle: 'Meregenerasi potongan turunan',
keywords: 'KATA KUNCI',
answerPlaceholder: 'Tambahkan jawaban di sini',
parentChunks_other: 'POTONGAN INDUK',
childChunk: 'Potongan Anak',
chunk: 'Potongan',
childChunkAdded: '1 potongan anak ditambahkan',
characters_one: 'watak',
dateTimeFormat: 'MM / DD / YYYY h: mm',
edited: 'DIEDIT',
editChunk: 'Edit Potongan',
regenerationConfirmTitle: 'Apakah Anda ingin meregenerasi potongan turunan?',
searchResults_zero: 'HASIL',
questionPlaceholder: 'Tambahkan pertanyaan di sini',
addAnother: 'Tambahkan yang lain',
expandChunks: 'Perluas potongan',
regenerationSuccessTitle: 'Regenerasi selesai',
answerEmpty: 'Jawaban tidak bisa kosong',
regenerationConfirmMessage: 'Meregenerasi potongan turunan akan menimpa potongan turunan saat ini, termasuk potongan yang diedit dan potongan yang baru ditambahkan. Regenerasi tidak dapat dibatalkan.',
hitCount: 'Jumlah pengambilan',
regeneratingMessage: 'Ini mungkin perlu beberapa saat, harap tunggu ...',
vectorHash: 'Hash vektor:',
editChildChunk: 'Edit Potongan Anak',
keywordError: 'Panjang maksimum kata kunci adalah 20',
addKeyWord: 'Tambahkan kata kunci',
chunks_one: 'POTONGAN',
childChunks_other: 'POTONGAN ANAK',
regenerationSuccessMessage: 'Anda dapat menutup jendela ini.',
editedAt: 'Diedit di',
clearFilter: 'Hapus filter',
characters_other: 'Karakter',
contentPlaceholder: 'Tambahkan konten di sini',
newChunk: 'Potongan Baru',
newTextSegment: 'Segmen Teks Baru',
newChildChunk: 'Potongan Anak Baru',
chunks_other: 'POTONGAN',
questionEmpty: 'Pertanyaan tidak bisa kosong',
parentChunk: 'Potongan Induk',
addChildChunk: 'Tambahkan Potongan Anak',
parentChunks_one: 'POTONGAN INDUK',
keywordDuplicate: 'Kata kunci sudah ada',
paragraphs: 'Paragraf',
newQaSegment: 'Segmen Tanya Jawab Baru',
searchResults_other: 'HASIL',
},
}
export default translation

View File

@@ -0,0 +1,34 @@
const translation = {
table: {
header: {
text: 'Teks',
source: 'Sumber',
time: 'Waktu',
},
},
input: {
title: 'Teks sumber',
countWarning: 'Hingga 200 karakter.',
placeholder: 'Silakan masukkan teks, disarankan untuk memasukkan kalimat deklaratif singkat.',
indexWarning: 'Pengetahuan berkualitas tinggi saja.',
testing: 'Pengujian',
},
hit: {
emptyTip: 'Hasil Pengujian Pengambilan akan ditampilkan di sini',
title: '{{num}} Potongan yang Diambil',
},
keyword: 'Kata kunci',
noRecentTip: 'Tidak ada hasil kueri terbaru di sini',
records: 'Catatan',
open: 'Buka',
settingTitle: 'Pengaturan Pengambilan',
dateTimeFormat: 'MM / DD / YYYY hh: mm A',
desc: 'Uji dampak pengetahuan terhadap hasil pencarian berdasarkan teks kueri yang diberikan.',
viewDetail: 'Lihat Detail',
viewChart: 'Lihat GRAFIK VAKTOR',
chunkDetail: 'Detail Potongan',
title: 'Tes Pengambilan',
hitChunks: 'Pukul {{num}} potongan anak',
}
export default translation

View File

@@ -0,0 +1,166 @@
const translation = {
creation: {
createFromScratch: {
title: 'Alur pengetahuan kosong',
description: 'Buat alur kustom dari awal dengan kontrol penuh atas pemrosesan dan struktur data.',
},
caution: 'Hati',
createKnowledge: 'Ciptakan Pengetahuan',
errorTip: 'Gagal membuat Basis Pengetahuan',
backToKnowledge: 'Kembali ke Pengetahuan',
successTip: 'Berhasil membuat Basis Pengetahuan',
importDSL: 'Mengimpor dari file DSL',
},
templates: {
customized: 'Disesuaikan',
},
operations: {
choose: 'Memilih',
convert: 'Mengkonversi',
preview: 'Pratayang',
saveAndProcess: 'Simpan & Proses',
process: 'Proses',
details: 'Rincian',
backToDataSource: 'Kembali ke Sumber Data',
editInfo: 'Edit info',
dataSource: 'Sumber Data',
exportPipeline: 'Pipa Ekspor',
useTemplate: 'Gunakan Alur Pengetahuan ini',
},
deletePipeline: {
title: 'Apakah Anda yakin akan menghapus templat alur ini?',
content: 'Menghapus templat alur tidak dapat diubah.',
},
publishPipeline: {
success: {
message: 'Alur Pengetahuan Diterbitkan',
tip: '<CustomLink>Buka Dokumen</CustomLink> untuk menambahkan atau mengelola dokumen.',
},
error: {
message: 'Gagal Menerbitkan Alur Pengetahuan',
},
},
publishTemplate: {
success: {
learnMore: 'Pelajari lebih lanjut',
message: 'Templat Alur Diterbitkan',
tip: 'Anda dapat menggunakan template ini di halaman pembuatan.',
},
error: {
message: 'Gagal menerbitkan templat alur',
},
},
exportDSL: {
successTip: 'Ekspor DSL pipeline berhasil',
errorTip: 'Gagal mengekspor DSL alur',
},
details: {
structure: 'Struktur',
structureTooltip: 'Struktur Potongan menentukan bagaimana dokumen dibagi dan diindeks—menawarkan mode Umum, Induk-Anak, dan Tanya Jawab—dan unik untuk setiap basis pengetahuan.',
createdBy: 'Oleh {{author}}',
},
testRun: {
steps: {
documentProcessing: 'Pemrosesan Dokumen',
dataSource: 'Sumber Data',
},
dataSource: {
localFiles: 'File Lokal',
},
notion: {
docTitle: 'Dokumen gagasan',
title: 'Pilih Halaman Notion',
},
title: 'Uji Coba',
tooltip: 'Dalam mode uji coba, hanya satu dokumen yang diizinkan untuk diimpor pada satu waktu untuk penelusuran kesalahan dan pengamatan yang lebih mudah.',
},
inputFieldPanel: {
uniqueInputs: {
title: 'Input Unik untuk Setiap Pintu Masuk',
tooltip: 'Input Unik hanya dapat diakses oleh sumber data yang dipilih dan simpul hilirnya. Pengguna tidak perlu mengisinya saat memilih sumber data lain. Hanya bidang input yang direferensikan oleh variabel sumber data yang akan muncul di langkah pertama (Sumber Data). Semua bidang lainnya akan ditampilkan pada langkah kedua (Proses Dokumen).',
},
globalInputs: {
title: 'Input Global untuk Semua Pintu Masuk',
tooltip: 'Input Global dibagikan di semua simpul. Pengguna harus mengisinya saat memilih sumber data apa pun. Misalnya, bidang seperti pembatas dan panjang potongan maksimum dapat diterapkan secara seragam di beberapa sumber data. Hanya bidang input yang direferensikan oleh variabel Sumber Data yang muncul di langkah pertama (Sumber Data). Semua bidang lainnya muncul di langkah kedua (Proses Dokumen).',
},
preview: {
stepTwoTitle: 'Dokumen Proses',
stepOneTitle: 'Sumber Data',
},
error: {
variableDuplicate: 'Nama variabel sudah ada. Silakan pilih nama yang berbeda.',
},
title: 'Bidang Input Pengguna',
editInputField: 'Edit Bidang Input',
addInputField: 'Tambahkan Bidang Input',
description: 'Bidang input pengguna digunakan untuk menentukan dan mengumpulkan variabel yang diperlukan selama proses eksekusi alur. Pengguna dapat menyesuaikan jenis bidang dan mengonfigurasi nilai input secara fleksibel untuk memenuhi kebutuhan sumber data atau langkah pemrosesan dokumen yang berbeda.',
},
addDocuments: {
steps: {
processDocuments: 'Dokumen Proses',
processingDocuments: 'Memproses Dokumen',
chooseDatasource: 'Pilih Sumber Data',
},
stepOne: {
preview: 'Pratayang',
},
stepTwo: {
chunkSettings: 'Pengaturan Potongan',
previewChunks: 'Pratinjau Potongan',
},
stepThree: {
learnMore: 'Pelajari lebih lanjut',
},
title: 'Tambahkan Dokumen',
backToDataSource: 'Sumber Data',
characters: 'Karakter',
selectOnlineDocumentTip: 'Proses hingga {{count}} halaman',
selectOnlineDriveTip: 'Proses hingga {{count}} file, maksimum {{fileSize}} MB masing-masing',
},
documentSettings: {
title: 'Pengaturan Dokumen',
},
onlineDocument: {
pageSelectorTitle: '{{name}} halaman',
},
onlineDrive: {
breadcrumbs: {
allFiles: 'Semua File',
allBuckets: 'Semua Bucket Penyimpanan Cloud',
searchPlaceholder: 'Cari file...',
searchResult: 'Temukan {{searchResultsLength}} item di folder "{{folderName}}"',
},
resetKeywords: 'Mengatur ulang kata kunci',
notSupportedFileType: 'Jenis file ini tidak didukung',
emptySearchResult: 'Tidak ada barang yang ditemukan',
emptyFolder: 'Folder ini kosong',
notConnected: '{{name}} tidak terhubung',
notConnectedTip: 'Untuk menyinkronkan dengan {{name}}, koneksi ke {{name}} harus dibuat terlebih dahulu.',
},
credentialSelector: {
name: '{{credentialName}}\'s {{pluginName}}',
},
conversion: {
confirm: {
title: 'Konfirmasi',
content: 'Tindakan ini bersifat permanen. Anda tidak akan dapat kembali ke metode sebelumnya. Silakan konfirmasi untuk mengonversi.',
},
warning: 'Tindakan ini tidak dapat dibatalkan.',
descriptionChunk2: '— pendekatan yang lebih terbuka dan fleksibel dengan akses ke plugin dari pasar kami. Ini akan menerapkan metode pemrosesan baru untuk semua dokumen di masa mendatang.',
successMessage: 'Berhasil mengonversi himpunan data menjadi alur',
errorMessage: 'Gagal mengonversi himpunan data ke alur',
descriptionChunk1: 'Anda sekarang dapat mengonversi basis pengetahuan yang ada untuk menggunakan Knowledge Pipeline untuk pemrosesan dokumen',
title: 'Mengonversi ke Alur Pengetahuan',
},
knowledgePermissions: 'Izin',
pipelineNameAndIcon: 'Nama & ikon pipa',
inputField: 'Bidang Masukan',
knowledgeDescription: 'Deskripsi pengetahuan',
knowledgeNameAndIconPlaceholder: 'Silakan masukkan nama Basis Pengetahuan',
knowledgeNameAndIcon: 'Nama & ikon pengetahuan',
knowledgeDescriptionPlaceholder: 'Jelaskan apa yang ada di Basis Pengetahuan ini. Deskripsi terperinci memungkinkan AI mengakses konten kumpulan data dengan lebih akurat. Jika kosong, Dify akan menggunakan strategi hit default. (Opsional)',
editPipelineInfo: 'Mengedit info alur',
configurationTip: 'Konfigurasikan {{pluginName}}',
}
export default translation

View File

@@ -0,0 +1,51 @@
const translation = {
form: {
retrievalSetting: {
title: 'Pengaturan Pengambilan',
description: 'tentang metode pengambilan.',
longDescription: 'tentang metode pengambilan, Anda dapat mengunduhnya kapan saja di pengaturan Pengetahuan.',
method: 'Metode Pengambilan',
learnMore: 'Pelajari lebih lanjut',
},
save: 'Simpan',
embeddingModel: 'Menyematkan Model',
namePlaceholder: 'Silakan masukkan nama Pengetahuan',
permissions: 'Izin',
embeddingModelTipLink: 'Pengaturan',
descInfo: 'Silakan tulis deskripsi tekstual yang jelas untuk menguraikan isi Pengetahuan. Deskripsi ini akan digunakan sebagai dasar untuk pencocokan saat memilih dari beberapa Pengetahuan untuk inferensi.',
searchModel: 'Model pencarian',
nameError: 'Nama tidak boleh kosong',
indexMethodEconomy: 'Ekonomis',
indexMethodHighQuality: 'Kualitas Tinggi',
permissionsInvitedMembers: 'Anggota tim parsial',
permissionsAllMember: 'Semua anggota tim',
desc: 'Deskripsi Pengetahuan',
upgradeHighQualityTip: 'Setelah memutakhirkan ke mode Kualitas Tinggi, kembali ke mode Ekonomis tidak tersedia',
descPlaceholder: 'Jelaskan apa yang ada dalam kumpulan data ini. Deskripsi terperinci memungkinkan AI mengakses konten kumpulan data tepat waktu. Jika kosong, Dify akan menggunakan strategi hit default.',
retrievalSettings: 'Pengaturan Pengambilan',
indexMethodChangeToEconomyDisabledTip: 'Tidak tersedia untuk downgrade dari HQ ke ECO',
indexMethod: 'Metode Indeks',
me: '(Anda)',
externalKnowledgeID: 'ID Pengetahuan Eksternal',
descWrite: 'Pelajari cara menulis deskripsi Pengetahuan yang baik.',
name: 'Nama Pengetahuan',
embeddingModelTip: 'Ubah model yang disematkan, silakan buka',
externalKnowledgeAPI: 'API Pengetahuan Eksternal',
helpText: 'Pelajari cara menulis deskripsi himpunan data yang baik.',
indexMethodHighQualityTip: 'Memanggil model penyematan untuk memproses dokumen untuk pengambilan yang lebih tepat membantu LLM menghasilkan jawaban berkualitas tinggi.',
permissionsOnlyMe: 'Hanya saya',
indexMethodEconomyTip: 'Menggunakan 10 kata kunci per potongan untuk pengambilan, tidak ada token yang dikonsumsi dengan mengorbankan penurunan akurasi pengambilan.',
chunkStructure: {
learnMore: 'Pelajari lebih lanjut',
description: 'tentang Struktur Potongan.',
title: 'Struktur Potongan',
},
nameAndIcon: 'Nama & Ikon',
onSearchResults: 'Tidak ada anggota yang cocok dengan kueri penelusuran Anda.\nCoba cari lagi.',
numberOfKeywords: 'Jumlah Kata Kunci',
},
desc: 'Di sini Anda dapat memodifikasi properti dan pengaturan pengambilan Pengetahuan ini.',
title: 'Setelan pengetahuan',
}
export default translation

View File

@@ -0,0 +1,242 @@
const translation = {
chunkingMode: {
general: 'Umum',
parentChild: 'Orang tua-anak',
graph: 'Grafik',
qa: 'Tanya Jawab',
},
parentMode: {
fullDoc: 'Dokumen lengkap',
paragraph: 'Paragraf',
},
editExternalAPIConfirmWarningContent: {
front: 'API Pengetahuan Eksternal ini ditautkan ke',
end: 'pengetahuan eksternal, dan modifikasi ini akan diterapkan pada semuanya. Apakah Anda yakin ingin menyimpan perubahan ini?',
},
editExternalAPIFormWarning: {
front: 'API Eksternal ini ditautkan ke',
end: 'pengetahuan eksternal',
},
deleteExternalAPIConfirmWarningContent: {
title: {
front: 'Menghapus',
end: '?',
},
content: {
end: 'pengetahuan eksternal. Menghapus API ini akan membatalkan semuanya. Apakah Anda yakin ingin menghapus API ini?',
front: 'API Pengetahuan Eksternal ini ditautkan ke',
},
noConnectionContent: 'Apakah Anda yakin akan menghapus API ini?',
},
selectExternalKnowledgeAPI: {
placeholder: 'Pilih API Pengetahuan Eksternal',
},
connectDatasetIntro: {
content: {
front: 'Untuk terhubung ke basis pengetahuan eksternal, Anda perlu membuat API eksternal terlebih dahulu. Harap baca dengan seksama dan lihat',
end: '. Kemudian temukan ID pengetahuan yang sesuai dan isi di formulir di sebelah kiri. Jika semua informasi sudah benar, itu akan secara otomatis melompat ke tes pengambilan di pangkalan pengetahuan setelah mengklik tombol hubungkan.',
link: 'Pelajari cara membuat API eksternal',
},
title: 'Cara Terhubung ke Basis Pengetahuan Eksternal',
learnMore: 'Pelajari lebih lanjut',
},
connectHelper: {
helper4: 'Baca dokumentasi bantuan',
helper1: 'Hubungkan ke pangkalan pengetahuan eksternal melalui API dan ID pangkalan pengetahuan. Saat ini,',
helper2: 'hanya fungsionalitas pengambilan yang didukung',
helper3: '. Kami sangat menyarankan agar Anda',
helper5: 'hati-hati sebelum menggunakan fitur ini.',
},
externalKnowledgeForm: {
connect: 'Sambung',
cancel: 'Membatalkan',
},
externalAPIForm: {
encrypted: {
end: 'Teknologi.',
front: 'Token API Anda akan dienkripsi dan disimpan menggunakan',
},
apiKey: 'Kunci API',
name: 'Nama',
endpoint: 'Titik Akhir API',
cancel: 'Membatalkan',
save: 'Simpan',
edit: 'Mengedit',
},
retrieval: {
semantic_search: {
description: 'Hasilkan penyematan kueri dan cari potongan teks yang paling mirip dengan representasi vektornya.',
title: 'Pencarian Vektor',
},
full_text_search: {
description: 'Indeks semua istilah dalam dokumen, memungkinkan pengguna untuk mencari istilah apa pun dan mengambil potongan teks yang relevan yang berisi istilah tersebut.',
title: 'Pencarian Teks Lengkap',
},
hybrid_search: {
recommend: 'Merekomendasikan',
title: 'Pencarian Hibrida',
description: 'Jalankan pencarian teks lengkap dan pencarian vektor secara bersamaan, peringkatkan ulang untuk memilih kecocokan terbaik untuk kueri pengguna. Pengguna dapat memilih untuk mengatur bobot atau mengonfigurasi ke model Rerank.',
},
invertedIndex: {
},
change: 'Ubah',
changeRetrievalMethod: 'Ubah metode pengambilan',
keyword_search: {
description: 'Indeks Terbalik adalah struktur yang digunakan untuk pengambilan yang efisien. Diatur berdasarkan istilah, setiap istilah menunjuk ke dokumen atau halaman web yang berisinya.',
title: 'Indeks Terbalik',
},
},
indexingTechnique: {
economy: 'EKO',
high_quality: 'HQ',
},
indexingMethod: {
invertedIndex: 'TERBALIK',
full_text_search: 'TEKS LENGKAP',
semantic_search: 'VEKTOR',
hybrid_search: 'HIBRIDA',
},
weightedScore: {
semantic: 'Semantik',
title: 'Skor Tertimbang',
customized: 'Disesuaikan',
keyword: 'Kata kunci',
keywordFirst: 'Kata kunci pertama',
description: 'Dengan menyesuaikan bobot yang ditetapkan, strategi rerank ini menentukan apakah akan memprioritaskan pencocokan semantik atau kata kunci.',
semanticFirst: 'Semantik pertama',
},
batchAction: {
delete: 'Menghapus',
disable: 'Menonaktifkan',
archive: 'Mengarsipkan',
selected: 'Dipilih',
cancel: 'Membatalkan',
enable: 'Mengaktifkan',
},
metadata: {
createMetadata: {
title: 'Metadata Baru',
type: 'Jenis',
back: 'Belakang',
namePlaceholder: 'Tambahkan nama metadata',
name: 'Nama',
},
checkName: {
empty: 'Nama metadata tidak boleh kosong',
invalid: 'Nama metadata hanya dapat berisi huruf kecil, angka, dan garis bawah dan harus dimulai dengan huruf kecil',
tooLong: 'Nama metadata tidak boleh melebihi {{max}} karakter',
},
batchEditMetadata: {
editMetadata: 'Edit Metadata',
applyToAllSelectDocument: 'Terapkan ke semua dokumen yang dipilih',
multipleValue: 'Beberapa Nilai',
applyToAllSelectDocumentTip: 'Secara otomatis membuat semua metadata yang diedit di atas dan baru untuk semua dokumen yang dipilih, jika tidak, mengedit metadata hanya akan berlaku untuk dokumen yang dengannya.',
editDocumentsNum: 'Mengedit dokumen {{num}}',
},
selectMetadata: {
manageAction: 'Urus',
newAction: 'Metadata Baru',
search: 'Metadata pencarian',
},
datasetMetadata: {
disabled: 'Nonaktif',
addMetaData: 'Tambahkan Metadata',
description: 'Anda dapat mengelola semua metadata dalam pengetahuan ini di sini. Modifikasi akan disinkronkan ke setiap dokumen.',
deleteTitle: 'Konfirmasi untuk menghapus',
name: 'Nama',
rename: 'Ubah nama',
builtInDescription: 'Metadata bawaan secara otomatis diekstrak dan dihasilkan. Itu harus diaktifkan sebelum digunakan dan tidak dapat diedit.',
namePlaceholder: 'Nama metadata',
builtIn: 'Bawaan',
values: 'Nilai {{num}}',
deleteContent: 'Apakah Anda yakin ingin menghapus metadata "{{name}}"',
},
documentMetadata: {
metadataToolTip: 'Metadata berfungsi sebagai filter penting yang meningkatkan akurasi dan relevansi pengambilan informasi. Anda dapat memodifikasi dan menambahkan metadata untuk dokumen ini di sini.',
documentInformation: 'Informasi Dokumen',
technicalParameters: 'Parameter teknis',
startLabeling: 'Mulai Pelabelan',
},
addMetadata: 'Tambahkan Metadata',
chooseTime: 'Pilih waktu...',
metadata: 'Metadata',
},
knowledge: 'Pengetahuan',
embeddingModelNotAvailable: 'Model penyematan tidak tersedia.',
docsFailedNotice: 'Dokumen yang diindeks gagal',
externalAPI: 'API Eksternal',
documentCount: 'Docs',
externalAPIPanelTitle: 'API Pengetahuan Eksternal',
externalTag: 'Eksternal',
createNewExternalAPI: 'Membuat API Pengetahuan Eksternal baru',
noExternalKnowledge: 'Belum ada API Pengetahuan Eksternal, klik di sini untuk membuat',
localDocs: 'Dokumen Lokal',
editExternalAPIFormTitle: 'Mengedit API Pengetahuan Eksternal',
createExternalAPI: 'Menambahkan API Pengetahuan Eksternal',
editExternalAPITooltipTitle: 'PENGETAHUAN TERKAIT',
appCount: 'Aplikasi tertaut',
createDataset: 'Ciptakan Pengetahuan',
externalKnowledgeDescriptionPlaceholder: 'Menjelaskan apa yang ada di Basis Pengetahuan ini (opsional)',
externalKnowledgeId: 'ID Pengetahuan Eksternal',
nTo1RetrievalLegacyLink: 'Pelajari lebih lanjut',
nTo1RetrievalLegacyLinkText: 'Pengambilan N-to-1 akan secara resmi tidak digunakan lagi pada bulan September.',
intro2: 'sebagai konteks',
externalKnowledgeDescription: 'Deskripsi Pengetahuan',
deleteDatasetConfirmTitle: 'Hapus Pengetahuan ini?',
datasetDeleteFailed: 'Gagal menghapus Pengetahuan',
allKnowledge: 'Semua Pengetahuan',
externalAPIPanelDescription: 'API pengetahuan eksternal digunakan untuk terhubung ke pangkalan pengetahuan di luar Dify dan mengambil pengetahuan dari basis pengetahuan tersebut.',
externalKnowledgeNamePlaceholder: 'Silakan masukkan nama basis pengetahuan',
externalAPIPanelDocumentation: 'Pelajari cara membuat API Pengetahuan Eksternal',
wordCount: 'K Kata-kata',
externalKnowledgeName: 'Nama Pengetahuan Eksternal',
datasets: 'PENGETAHUAN',
deleteDatasetConfirmContent: 'Menghapus Pengetahuan tidak dapat diubah. Pengguna tidak akan lagi dapat mengakses Pengetahuan Anda, dan semua konfigurasi prompt dan log akan dihapus secara permanen.',
datasetsApi: 'AKSES API',
intro4: 'atau itu',
didYouKnow: 'Tahukah Anda?',
intro6: 'sebagai plug-in indeks ChatGPT mandiri untuk dipublikasikan',
enable: 'Mengaktifkan',
retry: 'Pengulangan',
intro5: 'dapat dibuat',
mixtureHighQualityAndEconomicTip: 'Model Rerank diperlukan untuk campuran basis pengetahuan berkualitas tinggi dan ekonomis.',
datasetDeleted: 'Pengetahuan dihapus',
createDatasetIntro: 'Impor data teks Anda sendiri atau tulis data secara real-time melalui Webhook untuk peningkatan konteks LLM.',
intro1: 'Pengetahuan dapat diintegrasikan ke dalam aplikasi Dify',
rerankSettings: 'Pengaturan Peringkat Ulang',
intro3: ',',
externalKnowledgeIdPlaceholder: 'Silakan masukkan ID Pengetahuan',
retrievalSettings: 'Pengaturan Pengambilan',
connectDataset: 'Menyambungkan ke Basis Pengetahuan Eksternal',
learnHowToWriteGoodKnowledgeDescription: 'Pelajari cara menulis deskripsi pengetahuan yang baik',
allExternalTip: 'Saat hanya menggunakan pengetahuan eksternal, pengguna dapat memilih apakah akan mengaktifkan model Rerank. Jika tidak diaktifkan, potongan yang diambil akan diurutkan berdasarkan skor. Ketika strategi pengambilan dari basis pengetahuan yang berbeda tidak konsisten, itu akan menjadi tidak akurat.',
datasetUsedByApp: 'Pengetahuan tersebut digunakan oleh beberapa aplikasi. Aplikasi tidak akan lagi dapat menggunakan Pengetahuan ini, dan semua konfigurasi prompt serta log akan dihapus secara permanen.',
mixtureInternalAndExternalTip: 'Model Rerank diperlukan untuk campuran pengetahuan internal dan eksternal.',
nTo1RetrievalLegacy: 'Pengambilan N-to-1 akan secara resmi tidak digunakan lagi mulai September. Disarankan untuk menggunakan pengambilan Multi-jalur terbaru untuk mendapatkan hasil yang lebih baik.',
inconsistentEmbeddingModelTip: 'Model Rerank diperlukan jika model Penyematan dari basis pengetahuan yang dipilih tidak konsisten.',
allKnowledgeDescription: 'Pilih untuk menampilkan semua pengetahuan di ruang kerja ini. Hanya Pemilik Ruang Kerja yang dapat mengelola semua pengetahuan.',
defaultRetrievalTip: 'Pengambilan multi-jalur digunakan secara default. Pengetahuan diambil dari beberapa basis pengetahuan dan kemudian diberi peringkat ulang.',
unavailable: 'Tidak tersedia',
updated: 'Diperbarui',
createFromPipeline: 'Membuat dari Knowledge Pipeline',
externalKnowledgeBase: 'Basis Pengetahuan Eksternal',
serviceApi: {
card: {
apiKey: 'Kunci API',
apiReference: 'Referensi API',
title: 'API layanan backend',
endpoint: 'Titik Akhir API Layanan',
},
title: 'API Layanan',
enabled: 'Sedang Beroperasi',
disabled: 'Dinonaktifkan',
},
docAllEnabled_one: 'dokumen {{count}} diaktifkan',
docAllEnabled_other: 'Semua dokumen {{count}} diaktifkan',
partialEnabled_one: 'Total {{count}} dokumen, {{num}} tersedia',
partialEnabled_other: 'Total {{count}} dokumen, {{num}} tersedia',
documentsDisabled: '{{num}} dokumen dinonaktifkan - tidak aktif lebih dari 30 hari',
preprocessDocument: '{{num}} Prasekolah Dokumen',
}
export default translation

View File

@@ -0,0 +1,76 @@
const translation = {
toVerifiedTip: {
end: 'untuk Paket Profesional Dify.',
coupon: 'kupon eksklusif 100%',
front: 'Anda sekarang memenuhi syarat untuk status Terverifikasi Pendidikan. Silakan masukkan informasi pendidikan Anda di bawah ini untuk menyelesaikan proses dan menerima',
},
form: {
schoolName: {
title: 'Nama Sekolah Anda',
placeholder: 'Masukkan nama resmi sekolah Anda yang tidak disingkat',
},
schoolRole: {
option: {
student: 'Pelajar',
teacher: 'Guru',
administrator: 'Administrator Sekolah',
},
title: 'Peran Sekolah Anda',
},
terms: {
desc: {
privacyPolicy: 'Kebijakan Privasi',
and: 'dan',
termsOfService: 'Ketentuan Layanan',
end: '. Dengan mengirimkan:',
front: 'Informasi Anda dan penggunaan status Education Verified tunduk pada',
},
option: {
age: 'Saya mengonfirmasi bahwa saya berusia setidaknya 18 tahun',
inSchool: 'Saya mengonfirmasi bahwa saya terdaftar atau dipekerjakan di lembaga yang disediakan. Dify dapat meminta bukti pendaftaran/pekerjaan. Jika saya salah menggambarkan kelayakan saya, saya setuju untuk membayar biaya apa pun yang awalnya dibebaskan berdasarkan status pendidikan saya.',
},
title: 'Syarat & Perjanjian',
},
},
notice: {
expired: {
summary: {
line2: 'Namun, Anda tidak lagi memenuhi syarat untuk kupon diskon pendidikan baru.',
line1: 'Anda masih dapat mengakses dan menggunakan Dify.',
},
title: 'Status pendidikan Anda telah kedaluwarsa',
},
isAboutToExpire: {
summary: 'Jangan khawatir — ini tidak akan memengaruhi langganan Anda saat ini, tetapi Anda tidak akan mendapatkan diskon pendidikan saat diperpanjang kecuali Anda memverifikasi status Anda lagi.',
title: 'Status pendidikan Anda akan berakhir pada {{date}}',
},
stillInEducation: {
isAboutToExpire: 'Verifikasi ulang sekarang untuk mendapatkan kupon baru untuk tahun akademik mendatang. Ini akan disimpan ke akun Anda dan siap digunakan pada perpanjangan berikutnya.',
title: 'Masih dalam pendidikan?',
expired: 'Verifikasi ulang sekarang untuk mendapatkan kupon baru untuk tahun akademik mendatang. Kami akan menambahkannya ke akun Anda dan Anda dapat menggunakannya untuk peningkatan berikutnya.',
},
alreadyGraduated: {
title: 'Sudah lulus?',
expired: 'Jangan ragu untuk meningkatkan kapan saja untuk mendapatkan akses penuh ke fitur berbayar.',
isAboutToExpire: 'Langganan Anda saat ini akan tetap aktif. Setelah berakhir, Anda akan dipindahkan ke paket Sandbox, atau Anda dapat meningkatkan kapan saja untuk memulihkan akses penuh ke fitur berbayar.',
},
action: {
upgrade: 'Upgrade',
dismiss: 'Mengabaikan',
reVerify: 'Verifikasi ulang',
},
dateFormat: 'MM / DD / YYYY',
},
submit: 'Kirim',
toVerified: 'Dapatkan Pendidikan Terverifikasi',
currentSigned: 'SAAT INI MASUK SEBAGAI',
successTitle: 'Anda telah mendapatkan Dify Education Verified',
rejectTitle: 'Verifikasi Pendidikan Dify Anda telah ditolak',
successContent: 'Kami telah mengeluarkan kupon diskon 100% untuk paket Dify Professional ke akun Anda. Kupon berlaku selama satu tahun, harap gunakan dalam masa berlaku.',
emailLabel: 'Email Anda saat ini',
rejectContent: 'Sayangnya, Anda tidak memenuhi syarat untuk status Education Verified dan oleh karena itu tidak dapat menerima kupon 100% eksklusif untuk Paket Dify Professional jika Anda menggunakan alamat email ini.',
learn: 'Pelajari cara mendapatkan verifikasi pendidikan',
submitError: 'Pengiriman formulir gagal. Silakan coba lagi nanti.',
}
export default translation

View File

@@ -0,0 +1,44 @@
const translation = {
sidebar: {
action: {
unpin: 'Lepaskan sematan',
pin: 'Sematkan',
delete: 'Hapus',
rename: 'Ganti nama',
},
delete: {
content: 'Apakah Anda yakin ingin menghapus aplikasi ini?',
title: 'Hapus aplikasi',
},
workspace: 'Workspace',
discovery: 'Penemuan',
chat: 'Mengobrol',
},
apps: {
allCategories: 'Direkomendasikan',
description: 'Gunakan aplikasi templat ini secara instan atau sesuaikan aplikasi Anda sendiri berdasarkan templat.',
title: 'Jelajahi Aplikasi',
},
appCard: {
customize: 'Menyesuaikan',
addToWorkspace: 'Tambahkan ke Ruang Kerja',
},
appCustomize: {
subTitle: 'Ikon & nama aplikasi',
nameRequired: 'Nama aplikasi diperlukan',
title: 'Buat aplikasi dari {{name}}',
},
category: {
Entertainment: 'Hiburan',
Agent: 'Agen',
Writing: 'Tulisan',
Assistant: 'Asisten',
Programming: 'Pemrograman',
Translate: 'Terjemah',
Workflow: 'Alur Kerja',
HR: 'HR',
},
title: 'Menjelajahi',
}
export default translation

View File

@@ -0,0 +1,8 @@
const translation = {
sidebar: {
expandSidebar: 'Perluas Bilah Sisi',
collapseSidebar: 'Ciutkan Bilah Sisi',
},
}
export default translation

View File

@@ -0,0 +1,126 @@
const translation = {
error: {
emailEmpty: 'Alamat email diperlukan',
emailInValid: 'Silakan masukkan alamat email yang valid',
passwordLengthInValid: 'Kata sandi harus minimal 8 karakter',
nameEmpty: 'Nama diperlukan',
registrationNotAllowed: 'Akun tidak ditemukan. Silakan hubungi admin sistem untuk mendaftar.',
passwordInvalid: 'Kata sandi harus berisi huruf dan angka, dan panjangnya harus lebih besar dari 8',
passwordEmpty: 'Kata sandi diperlukan',
invalidEmailOrPassword: 'Email atau kata sandi tidak valid.',
},
license: {
tip: 'Sebelum memulai Edisi Komunitas Dify, baca GitHub',
link: 'Lisensi sumber terbuka',
},
checkCode: {
useAnotherMethod: 'Gunakan metode lain',
verify: 'Memverifikasi',
didNotReceiveCode: 'Tidak menerima kode?',
invalidCode: 'Kode tidak valid',
checkYourEmail: 'Periksa email Anda',
validTime: 'Ingatlah bahwa kode tersebut berlaku selama 5 menit',
tipsPrefix: 'Kami mengirimkan kode verifikasi ke',
emptyCode: 'Kode diperlukan',
verificationCode: 'Kode verifikasi',
verificationCodePlaceholder: 'Masukkan kode 6 digit',
resend: 'Kirim Ulang',
},
webapp: {
login: 'Login',
noLoginMethod: 'Metode autentikasi tidak dikonfigurasi untuk aplikasi web',
noLoginMethodTip: 'Silakan hubungi admin sistem untuk menambahkan metode autentikasi.',
disabled: 'Autentikasi aplikasi web dinonaktifkan. Silakan hubungi admin sistem untuk mengaktifkannya. Anda dapat mencoba menggunakan aplikasi secara langsung.',
},
pageTitle: 'Hei, mari kita mulai!',
timezone: 'Zona waktu',
continueWithCode: 'Lanjutkan dengan kode',
sendVerificationCode: 'Kirim Kode Verifikasi',
invalidInvitationCode: 'Kode undangan tidak valid',
installBtn: 'Siapkan',
joinTipStart: 'Mengundang Anda untuk bergabung',
or: 'ATAU',
namePlaceholder: 'Nama pengguna Anda',
withSSO: 'Lanjutkan dengan SSO',
passwordPlaceholder: 'Kata sandi Anda',
checkEmailForResetLink: 'Silakan periksa email Anda untuk mendapatkan tautan untuk mengatur ulang kata sandi Anda. Jika tidak muncul dalam beberapa menit, pastikan untuk memeriksa folder spam Anda.',
name: 'Nama pengguna',
password: 'Kata sandi',
acceptPP: 'Saya telah membaca dan menerima kebijakan privasi',
createSample: 'Berdasarkan informasi ini, kami akan membuat contoh aplikasi untuk Anda',
usePassword: 'Gunakan Kata Sandi',
confirmPasswordPlaceholder: 'Konfirmasikan kata sandi baru Anda',
invalid: 'Tautan telah kedaluwarsa',
invitationCodePlaceholder: 'Kode undangan Anda',
emailPlaceholder: 'Email Anda',
tos: 'Ketentuan Layanan',
go: 'Buka Dify',
forgotPassword: 'Lupa Kata Sandi Anda?',
sendUsMail: 'Kirimkan perkenalan Anda melalui email kepada kami, dan kami akan menangani permintaan undangan.',
pp: 'Kebijakan Privasi',
activatedTipEnd: 'tim',
backToSignIn: 'Kembali ke halaman masuk',
passwordChanged: 'Masuk sekarang',
withGitHub: 'Lanjutkan dengan GitHub',
accountAlreadyInited: 'Akun sudah diinisialisasi',
withGoogle: 'Lanjutkan dengan Google',
rightDesc: 'Bangun aplikasi AI yang menarik secara visual, mudah dioperasikan, dan mudah diskalakan.',
invitationCode: 'Kode Undangan',
invalidToken: 'Token tidak valid atau kedaluwarsa',
setAdminAccount: 'Menyiapkan akun admin',
forgotPasswordDesc: 'Silakan masukkan alamat email Anda untuk mengatur ulang kata sandi Anda. Kami akan mengirimi Anda email dengan instruksi tentang cara mengatur ulang kata sandi Anda.',
confirmPassword: 'Konfirmasi Kata Sandi',
changePasswordBtn: 'Tetapkan kata sandi',
resetPassword: 'Atur Ulang Kata Sandi',
explore: 'Jelajahi Dify',
useVerificationCode: 'Gunakan Kode Verifikasi',
resetLinkSent: 'Atur ulang tautan terkirim',
changePasswordTip: 'Silakan masukkan kata sandi baru untuk akun Anda',
tosDesc: 'Dengan mendaftar, Anda menyetujui',
reset: 'Silakan jalankan perintah berikut untuk mengatur ulang kata sandi Anda',
setYourAccount: 'Atur Akun Anda',
interfaceLanguage: 'Bahasa Antarmuka',
noLoginMethod: 'Metode autentikasi tidak dikonfigurasi',
activatedTipStart: 'Anda telah bergabung dengan',
licenseLost: 'Lisensi Hilang',
licenseInactive: 'Lisensi Tidak Aktif',
enterYourName: 'Silakan masukkan nama pengguna Anda',
back: 'Kembali',
activated: 'Masuk sekarang',
goToInit: 'Jika Anda belum menginisialisasi akun, silakan buka halaman inisialisasi',
licenseExpired: 'Lisensi Kedaluwarsa',
joinTipEnd: 'tim di Dify',
dontHave: 'Belum?',
passwordChangedTip: 'Kata sandi Anda telah berhasil diubah',
validate: 'Memvalidasi',
resetPasswordDesc: 'Ketik email yang Anda gunakan untuk mendaftar di Dify dan kami akan mengirimkan email reset kata sandi kepada Anda.',
licenseLostTip: 'Gagal menghubungkan server lisensi Dify. Hubungi administrator Anda untuk terus menggunakan Dify.',
signBtn: 'Masuk',
sendResetLink: 'Kirim tautan reset',
createAndSignIn: 'Buat dan masuk',
licenseExpiredTip: 'Lisensi Dify Enterprise untuk ruang kerja Anda telah kedaluwarsa. Hubungi administrator Anda untuk terus menggunakan Dify.',
email: 'Alamat email',
noLoginMethodTip: 'Silakan hubungi admin sistem untuk menambahkan metode autentikasi.',
adminInitPassword: 'Kata sandi inisialisasi admin',
licenseInactiveTip: 'Lisensi Dify Enterprise untuk ruang kerja Anda tidak aktif. Hubungi administrator Anda untuk terus menggunakan Dify.',
rightTitle: 'Buka potensi penuh LLM',
welcome: '👋 Selamat datang di Dify, silakan login untuk melanjutkan.',
changePassword: 'Ubah kata sandi',
setAdminAccountDesc: 'Akun admin memiliki hak istimewa penuh untuk membuat aplikasi, mengelola penyedia LLM, dll.',
join: 'Gabung',
forget: 'Lupa Kata Sandi Anda?',
backToLogin: 'Kembali ke halaman masuk',
oneMoreStep: 'Satu langkah lagi',
signup: {
signIn: 'Masuk',
signUp: 'Daftar',
createAccount: 'Buat akun Anda',
haveAccount: 'Sudah memiliki akun?',
verifyMail: 'Lanjutkan dengan kode verifikasi',
noAccount: 'Tidak punya akun?',
welcome: '👋 Selamat datang! Silakan isi detail untuk memulai.',
},
pageTitleForE: 'Hei, ayo kita mulai!',
}
export default translation

View File

@@ -0,0 +1,27 @@
const translation = {
tips: {
loggedIn: 'Aplikasi ini ingin mengakses informasi berikut dari akun Dify Cloud Anda.',
notLoggedIn: 'Aplikasi ini ingin mengakses akun Dify Cloud Anda',
needLogin: 'Silakan masuk untuk mengotorisasi',
common: 'Kami menghormati privasi Anda dan hanya akan menggunakan informasi ini untuk meningkatkan pengalaman Anda dengan alat pengembang kami.',
},
scopes: {
avatar: 'Avatar',
name: 'Nama',
email: 'Email',
languagePreference: 'Preferensi Bahasa',
timezone: 'Zona waktu',
},
error: {
invalidParams: 'Parameter tidak valid',
authorizeFailed: 'Otorisasi gagal',
authAppInfoFetchFailed: 'Gagal mengambil info aplikasi untuk otorisasi',
},
continue: 'Lanjut',
unknownApp: 'Aplikasi tidak dikenal',
login: 'Masuk',
connect: 'Hubungkan',
switchAccount: 'Ganti Akun',
}
export default translation

View File

@@ -0,0 +1,40 @@
const translation = {
common: {
publishAsPipeline: {
name: 'Nama & ikon pipa',
namePlaceholder: 'Silakan masukkan nama Knowledge Pipeline ini. (Wajib)',
descriptionPlaceholder: 'Silakan masukkan deskripsi Knowledge Pipeline ini. (Opsional)',
description: 'Deskripsi pengetahuan',
},
processing: 'Pengolahan',
reRun: 'Jalankan ulang',
testRun: 'Uji Coba',
confirmPublish: 'Konfirmasi Publikasi',
preparingDataSource: 'Menyiapkan Sumber Data',
confirmPublishContent: 'Setelah berhasil menerbitkan alur pengetahuan, struktur potongan basis pengetahuan ini tidak dapat diubah. Apakah Anda yakin ingin mempublikasikannya?',
goToAddDocuments: 'Buka untuk menambahkan dokumen',
publishAs: 'Publikasikan sebagai Alur Pengetahuan',
},
inputField: {
manage: 'Urus',
create: 'Membuat bidang input pengguna',
},
publishToast: {
title: 'Pipeline ini belum dipublikasikan',
desc: 'Ketika alur tidak diterbitkan, Anda dapat memodifikasi struktur potongan di simpul pangkalan pengetahuan, dan orkestrasi dan perubahan alur akan secara otomatis disimpan sebagai draf.',
},
result: {
resultPreview: {
loading: 'Pengolahan... Harap tunggu',
viewDetails: 'Lihat detail',
error: 'Terjadi kesalahan selama eksekusi',
footerTip: 'Dalam mode uji coba, pratinjau hingga {{count}} potongan',
},
},
ragToolSuggestions: {
title: 'Saran untuk RAG',
noRecommendationPlugins: 'Tidak ada plugin yang disarankan, temukan lebih banyak di <CustomLink>Marketplace</CustomLink>',
},
}
export default translation

View File

@@ -0,0 +1,26 @@
const translation = {
tags: {
videos: 'Video',
agent: 'Agen',
image: 'Citra',
travel: 'Bepergian',
design: 'Desain',
entertainment: 'Hiburan',
social: 'Sosial',
weather: 'Cuaca',
finance: 'Keuangan',
medical: 'Medis',
productivity: 'Produktivitas',
news: 'Berita',
business: 'Bisnis',
education: 'Pendidikan',
other: 'Lain',
utilities: 'Utilitas',
search: 'Mencari',
rag: 'Kain lap',
},
allTags: 'Semua Tag',
searchTags: 'Tag Pencarian',
}
export default translation

View File

@@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Langganan',
listNum: 'langganan {{num}}',
empty: {
title: 'Tidak ada langganan',
button: 'Langganan baru',
},
createButton: {
oauth: 'Langganan baru dengan OAuth',
apiKey: 'Langganan baru dengan Kunci API',
manual: 'Tempel URL untuk membuat langganan baru',
},
createSuccess: 'Langganan berhasil dibuat',
createFailed: 'Gagal membuat langganan',
maxCount: 'Maks {{num}} langganan',
selectPlaceholder: 'Pilih langganan',
noSubscriptionSelected: 'Belum memilih langganan',
subscriptionRemoved: 'Langganan dihapus',
list: {
title: 'Langganan',
addButton: 'Tambahkan',
tip: 'Terima acara melalui Langganan',
item: {
enabled: 'Diaktifkan',
disabled: 'Dinonaktifkan',
credentialType: {
api_key: 'Kunci API',
oauth2: 'OAuth',
unauthorized: 'Manual',
},
actions: {
delete: 'Hapus',
deleteConfirm: {
title: 'Hapus {{name}}?',
success: 'Langganan {{name}} berhasil dihapus',
error: 'Gagal menghapus langganan {{name}}',
content: 'Setelah dihapus, langganan ini tidak dapat dikembalikan. Harap konfirmasi.',
contentWithApps: 'Langganan saat ini direferensikan oleh {{count}} aplikasi. Menghapusnya akan menyebabkan aplikasi yang dikonfigurasi berhenti menerima acara langganan.',
confirm: 'Konfirmasi Hapus',
cancel: 'Batal',
confirmInputWarning: 'Silakan masukkan nama yang benar untuk konfirmasi.',
confirmInputPlaceholder: 'Masukkan "{{name}}" untuk konfirmasi.',
confirmInputTip: 'Silakan masukkan “{{name}}” untuk mengonfirmasi.',
},
},
status: {
active: 'Aktif',
inactive: 'Tidak aktif',
},
usedByNum: 'Digunakan oleh {{num}} alur kerja',
noUsed: 'Tidak ada alur kerja yang digunakan',
},
},
addType: {
title: 'Tambah langganan',
description: 'Pilih bagaimana Anda ingin membuat langganan pemicu Anda',
options: {
apikey: {
title: 'Buat dengan Kunci API',
description: 'Buat langganan secara otomatis menggunakan kredensial API',
},
oauth: {
title: 'Buat dengan OAuth',
description: 'Otorisasi dengan platform pihak ketiga untuk membuat langganan',
clientSettings: 'Pengaturan Klien OAuth',
clientTitle: 'Klien OAuth',
default: 'Default',
custom: 'Kustom',
},
manual: {
title: 'Pengaturan Manual',
description: 'Tempel URL untuk membuat langganan baru',
tip: 'Konfigurasikan URL di platform pihak ketiga secara manual',
},
},
},
},
modal: {
steps: {
verify: 'Verifikasi',
configuration: 'Konfigurasi',
},
common: {
cancel: 'Batal',
back: 'Kembali',
next: 'Berikutnya',
create: 'Buat',
verify: 'Verifikasi',
authorize: 'Otorisasi',
creating: 'Membuat...',
verifying: 'Memverifikasi...',
authorizing: 'Mengizinkan...',
},
oauthRedirectInfo: 'Karena tidak ditemukan rahasia klien sistem untuk penyedia alat ini, pengaturannya harus dilakukan secara manual, untuk redirect_uri, silakan gunakan',
apiKey: {
title: 'Buat dengan Kunci API',
verify: {
title: 'Verifikasi Kredensial',
description: 'Silakan berikan kredensial API Anda untuk memverifikasi akses',
error: 'Verifikasi kredensial gagal. Silakan periksa kunci API Anda.',
success: 'Kredensial berhasil diverifikasi',
},
configuration: {
title: 'Atur Langganan',
description: 'Atur parameter langganan Anda',
},
},
oauth: {
title: 'Buat dengan OAuth',
authorization: {
title: 'Otorisasi OAuth',
description: 'Izinkan Dify untuk mengakses akun Anda',
redirectUrl: 'URL Pengalihan',
redirectUrlHelp: 'Gunakan URL ini dalam konfigurasi aplikasi OAuth Anda',
authorizeButton: 'Otorisasi dengan {{provider}}',
waitingAuth: 'Menunggu otorisasi...',
authSuccess: 'Otorisasi berhasil',
authFailed: 'Gagal mendapatkan informasi otorisasi OAuth',
waitingJump: 'Diizinkan, menunggu lompatan',
},
configuration: {
title: 'Atur Langganan',
description: 'Atur parameter langganan Anda setelah otorisasi',
success: 'Konfigurasi OAuth berhasil',
failed: 'Konfigurasi OAuth gagal',
},
remove: {
success: 'Penghapusan OAuth berhasil',
failed: 'Gagal menghapus OAuth',
},
save: {
success: 'Konfigurasi OAuth berhasil disimpan',
},
},
manual: {
title: 'Pengaturan Manual',
description: 'Konfigurasikan langganan webhook Anda secara manual',
logs: {
title: 'Catatan Permintaan',
request: 'Permintaan',
loading: 'Menunggu permintaan dari {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nama Langganan',
placeholder: 'Masukkan nama langganan',
required: 'Nama langganan wajib diisi',
},
callbackUrl: {
label: 'URL Panggilan Balik',
description: 'URL ini akan menerima event webhook',
tooltip: 'Sediakan endpoint yang dapat diakses publik yang dapat menerima permintaan callback dari penyedia pemicu.',
placeholder: 'Sedang menghasilkan...',
privateAddressWarning: 'URL ini tampaknya merupakan alamat internal, yang mungkin menyebabkan permintaan webhook gagal. Anda dapat mengubah TRIGGER_URL ke alamat publik.',
},
},
errors: {
createFailed: 'Gagal membuat langganan',
verifyFailed: 'Gagal memverifikasi kredensial',
authFailed: 'Otorisasi gagal',
networkError: 'Kesalahan jaringan, silakan coba lagi',
},
},
events: {
title: 'Acara Tersedia',
description: 'Peristiwa yang dapat diikuti oleh plugin pemicu ini',
empty: 'Tidak ada acara tersedia',
event: 'Acara',
events: 'Acara',
actionNum: '{{num}} {{event}} TERMASUK',
item: {
parameters: 'parameter {{count}}',
noParameters: 'Tidak ada parameter',
},
output: 'Keluaran',
},
node: {
status: {
warning: 'Putuskan sambungan',
},
},
}
export default translation

View File

@@ -0,0 +1,320 @@
const translation = {
metadata: {
title: 'Plugin',
},
category: {
all: 'Semua',
models: 'Model',
extensions: 'Ekstensi',
bundles: 'Bundel',
agents: 'Strategi Agen',
tools: 'Perkakas',
datasources: 'Sumber Data',
triggers: 'Pemicu',
},
categorySingle: {
bundle: 'Bundel',
agent: 'Strategi Agen',
tool: 'Alat',
model: 'Pola',
extension: 'Ekstensi',
datasource: 'Sumber Data',
trigger: 'Pemicu',
},
list: {
source: {
local: 'Instal dari File Paket Lokal',
marketplace: 'Instal dari Marketplace',
github: 'Instal dari GitHub',
},
notFound: 'Tidak ada plugin yang ditemukan',
noInstalled: 'Tidak ada plugin yang diinstal',
},
source: {
github: 'GitHub',
marketplace: 'Pasar',
local: 'File Paket Lokal',
},
detailPanel: {
categoryTip: {
debugging: 'Debugging Plugin',
github: 'Diinstal dari Github',
marketplace: 'Diinstal dari Marketplace',
local: 'Plugin Lokal',
},
operation: {
remove: 'Hapus',
info: 'Plugin Info',
update: 'Pemutakhiran',
detail: 'Rincian',
viewDetail: 'Lihat Detail',
install: 'Pasang',
checkUpdate: 'Periksa Pembaruan',
back: 'Kembali',
},
toolSelector: {
descriptionLabel: 'Deskripsi alat',
title: 'Tambahkan alat',
uninstalledLink: 'Kelola di Plugin',
uninstalledTitle: 'Alat tidak terpasang',
empty: 'Klik tombol \' \' untuk menambahkan alat. Anda dapat menambahkan beberapa alat.',
params: 'KONFIGURASI PENALARAN',
unsupportedMCPTool: 'Saat ini versi plugin strategi agen yang dipilih tidak mendukung alat MCP.',
auto: 'Otomatis',
descriptionPlaceholder: 'Deskripsi singkat tentang tujuan alat, misalnya, mendapatkan suhu untuk lokasi tertentu.',
toolSetting: 'Pengaturan Alat',
settings: 'PENGATURAN PENGGUNA',
unsupportedTitle: 'Tindakan Tidak Didukung',
unsupportedContent2: 'Klik untuk beralih versi.',
paramsTip2: 'Saat \'Otomatis\' dinonaktifkan, nilai default digunakan.',
paramsTip1: 'Mengontrol parameter inferensi LLM.',
toolLabel: 'Alat',
uninstalledContent: 'Plugin ini diinstal dari repositori lokal/GitHub. Silakan gunakan setelah pemasangan.',
unsupportedContent: 'Versi plugin yang diinstal tidak menyediakan tindakan ini.',
placeholder: 'Pilih alat...',
},
deprecation: {
reason: {
businessAdjustments: 'Penyesuaian bisnis',
noMaintainer: 'tidak ada pengelola',
ownershipTransferred: 'kepemilikan dialihkan',
},
noReason: 'Plugin ini tidak digunakan lagi dan tidak akan diperbarui lagi.',
fullMessage: 'Plugin ini telah dihentikan karena {{deprecatedReason}}, dan tidak akan diperbarui lagi. Silakan gunakan <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> sebagai gantinya.',
onlyReason: 'Plugin ini telah dihentikan penggunaannya karena {{deprecatedReason}} dan tidak akan diperbarui lagi.',
},
endpoints: 'Endpoint',
endpointDisableTip: 'Nonaktifkan Titik Akhir',
switchVersion: 'Beralih Versi',
disabled: 'Cacat',
configureApp: 'Konfigurasikan Aplikasi',
serviceOk: 'Layanan OK',
endpointModalDesc: 'Setelah dikonfigurasi, fitur yang disediakan oleh plugin melalui titik akhir API dapat digunakan.',
endpointsDocLink: 'Lihat dokumen',
configureModel: 'Mengonfigurasi model',
endpointDeleteTip: 'Hapus Titik Akhir',
configureTool: 'Konfigurasikan alat',
endpointsTip: 'Plugin ini menyediakan fungsionalitas khusus melalui titik akhir, dan Anda dapat mengonfigurasi beberapa set titik akhir untuk ruang kerja saat ini.',
endpointModalTitle: 'Menyiapkan titik akhir',
endpointsEmpty: 'Klik tombol \' \' untuk menambahkan titik akhir',
actionNum: '{{num}} {{action}} TERMASUK',
strategyNum: '{{num}} {{strategy}} TERMASUK',
endpointDisableContent: 'Apakah Anda ingin menonaktifkan {{name}}?',
endpointDeleteContent: 'Apakah Anda ingin menghapus {{name}}?',
modelNum: '{{num}} MODEL TERMASUK',
},
debugInfo: {
title: 'Debugging',
viewDocs: 'Lihat Dokumen',
},
privilege: {
whoCanDebug: 'Siapa yang dapat men-debug plugin?',
title: 'Preferensi Plugin',
everyone: 'Orang',
noone: 'Tidak ada seorang pun',
admins: 'Admin',
whoCanInstall: 'Siapa yang dapat menginstal dan mengelola plugin?',
},
autoUpdate: {
strategy: {
disabled: {
name: 'Cacat',
description: 'Plugin tidak akan diperbarui secara otomatis',
},
fixOnly: {
name: 'Hanya Perbaiki',
description: 'Perbarui otomatis hanya untuk versi patch (misalnya, 1.0.1 → 1.0.2). Perubahan versi kecil tidak akan memicu pembaruan.',
selectedDescription: 'Perbarui otomatis hanya untuk versi patch',
},
latest: {
selectedDescription: 'Selalu perbarui ke versi terbaru',
name: 'Terbaru',
description: 'Selalu perbarui ke versi terbaru',
},
},
upgradeMode: {
all: 'Perbarui semua',
exclude: 'Kecualikan yang dipilih',
partial: 'Hanya dipilih',
},
upgradeModePlaceholder: {
exclude: 'Plugin yang dipilih tidak akan diperbarui secara otomatis',
partial: 'Hanya plugin yang dipilih yang akan diperbarui secara otomatis. Saat ini tidak ada plugin yang dipilih, jadi tidak ada plugin yang akan diperbarui secara otomatis.',
},
operation: {
select: 'Pilih plugin',
clearAll: 'Hapus semua',
},
pluginDowngradeWarning: {
downgrade: 'Tetap turun',
title: 'Penurunan Plugin',
description: 'Pembaruan otomatis saat ini diaktifkan untuk plugin ini. Menurunkan versi dapat menyebabkan perubahan Anda ditimpa selama pembaruan otomatis berikutnya.',
exclude: 'Mengecualikan dari pembaruan otomatis',
},
noPluginPlaceholder: {
noFound: 'Tidak ada plugin yang ditemukan',
noInstalled: 'Tidak ada plugin yang diinstal',
},
updateTime: 'Waktu pembaruan',
updateSettings: 'Perbarui Pengaturan',
updateTimeTitle: 'Waktu pembaruan',
specifyPluginsToUpdate: 'Tentukan plugin untuk diperbarui',
automaticUpdates: 'Pembaruan otomatis',
excludeUpdate: 'Plugin {{num}} berikut ini tidak akan diperbarui secara otomatis',
partialUPdate: 'Hanya plugin {{num}} berikut yang akan diperbarui secara otomatis',
nextUpdateTime: 'Pembaruan otomatis berikutnya: {{time}}',
changeTimezone: 'Untuk mengubah zona waktu, pergi ke <setTimezone>Pengaturan</setTimezone>',
},
pluginInfoModal: {
repository: 'Repositori',
packageName: 'Paket',
title: 'Info plugin',
release: 'Lepaskan',
},
action: {
deleteContentRight: 'Plugin?',
pluginInfo: 'Info plugin',
checkForUpdates: 'Periksa pembaruan',
deleteContentLeft: 'Apakah Anda ingin menghapus',
delete: 'Hapus plugin',
usedInApps: 'Plugin ini digunakan di {{num}} aplikasi.',
},
installModal: {
labels: {
version: 'Versi',
package: 'Paket',
repository: 'Repositori',
},
cancel: 'Membatalkan',
close: 'Tutup',
installFailedDesc: 'Plugin telah diinstal gagal.',
installing: 'Menginstal...',
uploadFailed: 'Upload gagal',
pluginLoadErrorDesc: 'Plugin ini tidak akan diinstal',
next: 'Lanjut',
installedSuccessfully: 'Instalasi berhasil',
install: 'Pasang',
installFailed: 'Instalasi gagal',
back: 'Kembali',
readyToInstallPackage: 'Tentang menginstal plugin berikut',
installedSuccessfullyDesc: 'Plugin telah berhasil diinstal.',
pluginLoadError: 'Kesalahan pemuatan plugin',
readyToInstall: 'Tentang menginstal plugin berikut',
installWarning: 'Plugin ini tidak diperbolehkan untuk diinstal.',
dropPluginToInstall: 'Jatuhkan paket plugin di sini untuk menginstal',
installComplete: 'Instalasi selesai',
installPlugin: 'Instal Plugin',
uploadingPackage: 'Mengunggah {{packageName}}...',
readyToInstallPackages: 'Akan memasang plugin {{num}} berikut',
fromTrustSource: 'Pastikan Anda hanya menginstal plugin dari <trustSource>sumber yang tepercaya</trustSource>.',
},
installFromGitHub: {
installFailed: 'Instalasi gagal',
uploadFailed: 'Upload gagal',
installedSuccessfully: 'Instalasi berhasil',
selectPackagePlaceholder: 'Silakan pilih paket',
updatePlugin: 'Perbarui plugin dari GitHub',
selectPackage: 'Pilih paket',
installPlugin: 'Instal plugin dari GitHub',
gitHubRepo: 'Repositori GitHub',
installNote: 'Pastikan Anda hanya menginstal plugin dari sumber tepercaya.',
selectVersionPlaceholder: 'Silakan pilih versi',
selectVersion: 'Pilih versi',
},
upgrade: {
upgrading: 'Menginstal...',
upgrade: 'Pasang',
close: 'Tutup',
successfulTitle: 'Instal berhasil',
description: 'Tentang menginstal plugin berikut',
title: 'Instal Plugin',
usedInApps: 'Digunakan di {{num}} aplikasi',
},
error: {
fetchReleasesError: 'Tidak dapat mengambil rilis. Silakan coba lagi nanti.',
noReleasesFound: 'Tidak ada rilis yang ditemukan. Silakan periksa repositori GitHub atau URL input.',
inValidGitHubUrl: 'URL GitHub tidak valid. Silakan masukkan URL yang valid dalam format: https://github.com/owner/repo',
},
marketplace: {
sortOption: {
recentlyUpdated: 'Baru-baru ini Diperbarui',
firstReleased: 'Pertama Dirilis',
newlyReleased: 'Baru Dirilis',
mostPopular: 'Paling Populer',
},
viewMore: 'Lihat lebih banyak',
noPluginFound: 'Tidak ada plugin yang ditemukan',
discover: 'Menemukan',
empower: 'Berdayakan pengembangan AI Anda',
partnerTip: 'Diverifikasi oleh partner Dify',
moreFrom: 'Selengkapnya dari Marketplace',
sortBy: 'Urutkan berdasarkan',
and: 'dan',
difyMarketplace: 'Dify Marketplace',
verifiedTip: 'Diverifikasi oleh Dify',
pluginsResult: 'hasil {{num}}',
},
task: {
clearAll: 'Hapus semua',
installing: 'Memasang plugin {{installingLength}}, 0 selesai.',
installingWithSuccess: 'Memasang plugin {{installingLength}}, {{successLength}} berhasil.',
installingWithError: 'Memasang {{installingLength}} plugin, {{successLength}} berhasil, {{errorLength}} gagal',
installError: 'Gagal menginstal plugin {{errorLength}}, klik untuk melihat',
installedError: 'Gagal menginstal {{errorLength}} plugin',
},
auth: {
customCredentialUnavailable: 'Kredensial kustom saat ini tidak tersedia',
clientInfo: 'Karena tidak ada rahasia klien sistem yang ditemukan untuk penyedia alat ini, pengaturannya secara manual diperlukan, untuk redirect_uri, silakan gunakan',
unavailable: 'Tidak tersedia',
oauthClientSettings: 'Pengaturan Klien OAuth',
useApiAuth: 'Konfigurasi Otorisasi Kunci API',
default: 'Default',
useApi: 'Menggunakan Kunci API',
addApi: 'Menambahkan Kunci API',
useApiAuthDesc: 'Setelah mengonfigurasi kredensial, semua anggota dalam ruang kerja dapat menggunakan alat ini saat mengatur aplikasi.',
useOAuthAuth: 'Gunakan Otorisasi OAuth',
addOAuth: 'Tambahkan OAuth',
oauthClient: 'Klien OAuth',
useOAuth: 'Gunakan OAuth',
authorizations: 'Otorisasi',
setDefault: 'Tetapkan sebagai default',
saveAndAuth: 'Simpan dan Otorisasi',
custom: 'Adat',
credentialUnavailable: 'Kredensial saat ini tidak tersedia. Silakan hubungi admin.',
setupOAuth: 'Siapkan Klien OAuth',
saveOnly: 'Hanya Hemat',
authRemoved: 'Autentikasi dihapus',
authorizationName: 'Nama Otorisasi',
workspaceDefault: 'Ruang Kerja Default',
authorization: 'Otorisasi',
credentialUnavailableInButton: 'Kredensial tidak tersedia',
emptyAuth: 'Silakan konfigurasikan otentikasi',
connectedWorkspace: 'Ruang Kerja yang Terhubung',
},
searchInMarketplace: 'Cari di Marketplace',
findMoreInMarketplace: 'Temukan selengkapnya di Marketplace',
searchPlugins: 'Cari plugin',
from: 'Dari',
search: 'Mencari',
allCategories: 'Semua Kategori',
searchCategories: 'Cari Kategori',
searchTools: 'Alat pencarian...',
deprecated: 'Usang',
fromMarketplace: 'Dari Marketplace',
installFrom: 'INSTAL DARI',
installPlugin: 'Instal plugin',
installAction: 'Pasang',
publishPlugins: 'Menerbitkan plugin',
requestAPlugin: 'Minta plugin',
endpointsEnabled: '{{num}} set endpoint diaktifkan',
install: '{{num}} menginstal',
difyVersionNotCompatible: 'Versi Dify saat ini tidak kompatibel dengan plugin ini, harap perbarui ke versi minimum yang dibutuhkan: {{minimalDifyVersion}}',
readmeInfo: {
title: 'BACA SAYA',
needHelpCheckReadme: 'Butuh bantuan? Periksa README.',
noReadmeAvailable: 'Tidak ada README yang tersedia',
failedToFetch: 'Gagal mengambil README',
},
}
export default translation

View File

@@ -0,0 +1,4 @@
const translation = {
}
export default translation

View File

@@ -0,0 +1,31 @@
const translation = {
resultPanel: {
time: 'WAKTU BERLALU',
tokens: 'TOTAL TOKEN',
status: 'KEADAAN',
},
meta: {
version: 'Versi',
startTime: 'Waktu Mulai',
status: 'Keadaan',
executor: 'Pelaksana',
time: 'Waktu yang telah berlalu',
steps: 'Jalankan Langkah-langkah',
title: 'METADATA',
tokens: 'Total Token',
},
resultEmpty: {
link: 'Panel Detail',
tipRight: 'lihat itu.',
title: 'Eksekusi ini hanya mengeluarkan format JSON,',
tipLeft: 'silakan pergi ke',
},
actionLogs: 'Log Tindakan',
tracing: 'MENELUSURI',
detail: 'DETAIL',
result: 'HASIL',
input: 'MASUKAN',
circularInvocationTip: 'Ada pemanggilan melingkar alat/simpul dalam alur kerja saat ini.',
}
export default translation

View File

@@ -0,0 +1,82 @@
const translation = {
common: {
welcome: '',
appUnavailable: 'Aplikasi tidak tersedia',
appUnknownError: 'Aplikasi tidak tersedia',
},
chat: {
deleteConversation: {
title: 'Menghapus percakapan',
content: 'Apakah Anda yakin ingin menghapus percakapan ini?',
},
resetChat: 'Mengatur ulang percakapan',
prompt: 'Cepat',
expand: 'Memperluas',
pinnedTitle: 'Disematkan',
chatFormTip: 'Pengaturan obrolan tidak dapat dimodifikasi setelah obrolan dimulai.',
privacyPolicyLeft: 'Silakan baca',
startChat: 'Mulai Obrolan',
configStatusDes: 'Sebelum memulai, Anda dapat mengubah pengaturan percakapan',
privatePromptConfigTitle: 'Setelan percakapan',
unpinnedTitle: 'Baru saja',
poweredBy: 'Didukung oleh',
newChatTip: 'Sudah ada di obrolan baru',
publicPromptConfigTitle: 'Prompt Awal',
privacyPolicyMiddle: 'Kebijakan Privasi',
newChat: 'Mulai obrolan baru',
tryToSolve: 'Cobalah untuk menyelesaikannya',
temporarySystemIssue: 'Maaf, masalah sistem sementara.',
viewChatSettings: 'Melihat pengaturan obrolan',
newChatDefaultName: 'Percakapan baru',
configDisabled: 'Pengaturan sesi sebelumnya telah digunakan untuk sesi ini.',
privacyPolicyRight: 'disediakan oleh pengembang aplikasi.',
chatSettingsTitle: 'Penyiapan obrolan baru',
collapse: 'Roboh',
},
generation: {
tabs: {
saved: 'Disimpan',
batch: 'Jalankan Batch',
create: 'Jalankan Sekali',
},
savedNoData: {
description: 'Mulailah membuat konten, dan temukan hasil yang disimpan di sini.',
startCreateContent: 'Mulai membuat konten',
title: 'Anda belum menyimpan hasilnya!',
},
batchFailed: {
outputPlaceholder: 'Tidak ada konten keluaran',
retry: 'Pengulangan',
info: '{{num}} eksekusi gagal',
},
errorMsg: {
atLeastOne: 'Silakan masukkan setidaknya satu baris dalam file yang diunggah.',
empty: 'Silakan masukkan konten dalam file yang diunggah.',
fileStructNotMatch: 'File CSV yang diunggah tidak cocok dengan struct.',
emptyLine: 'Baris {{rowIndex}} kosong',
invalidLine: 'Baris {{rowIndex}}: nilai {{varName}} tidak boleh kosong',
moreThanMaxLengthLine: 'Baris {{rowIndex}}: nilai {{varName}} tidak boleh lebih dari {{maxLength}} karakter',
},
field: 'Kebun',
queryTitle: 'Kueri konten',
execution: 'Jalankan',
executions: '{{num}} kali dijalankan',
copy: 'Menyalin',
title: 'Penyelesaian AI',
downloadTemplate: 'Unduh templat di sini',
completionResult: 'Hasil penyelesaian',
csvStructureTitle: 'File CSV harus sesuai dengan struktur berikut:',
noData: 'AI akan memberi Anda apa yang Anda inginkan di sini.',
csvUploadTitle: 'Seret dan lepas file CSV Anda di sini, atau',
run: 'Menjalankan',
queryPlaceholder: 'Tulis konten kueri Anda...',
resultTitle: 'Penyelesaian AI',
browse: 'ramban',
stopRun: 'Hentikan eksekusi',
},
login: {
backToHome: 'Kembali ke Beranda',
},
}
export default translation

View File

@@ -0,0 +1,44 @@
const translation = {
daysInWeek: {
Wed: 'Rabu',
Thu: 'Kamis',
Sun: 'Minggu',
Tue: 'Selasa',
Mon: 'Senin',
Sat: 'Sabtu',
Fri: 'Jumat',
},
months: {
August: 'Agustus',
October: 'Oktober',
May: 'Mei',
September: 'September',
December: 'Desember',
November: 'November',
April: 'April',
July: 'Juli',
January: 'Januari',
June: 'Juni',
February: 'Februari',
March: 'Maret',
},
operation: {
pickDate: 'Tanggal Pilih',
ok: 'OKE',
now: 'Sekarang',
cancel: 'Membatalkan',
},
title: {
pickTime: 'Waktu Pilih',
},
dateFormats: {
display: 'MMMM D, YYYY',
input: 'YYYY-MM-DD',
outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
output: 'YYYY-MM-DD',
displayWithTime: 'MMMM D, YYYY hh:mm A',
},
defaultPlaceholder: 'Pilih waktu...',
}
export default translation

View File

@@ -0,0 +1,257 @@
const translation = {
type: {
workflow: 'Alur Kerja',
builtIn: 'Perkakas',
custom: 'Adat',
},
contribute: {
viewGuide: 'Lihat panduan',
line1: 'Saya tertarik',
line2: 'menyumbangkan alat untuk Dify.',
},
auth: {
setup: 'Menyiapkan otorisasi untuk digunakan',
authorized: 'Resmi',
setupModalTitleDescription: 'Setelah mengonfigurasi kredensial, semua anggota dalam ruang kerja dapat menggunakan alat ini saat mengatur aplikasi.',
setupModalTitle: 'Menyiapkan Otorisasi',
},
addToolModal: {
custom: {
tip: 'Membuat alat khusus',
title: 'Tidak ada alat khusus yang tersedia',
},
workflow: {
title: 'Tidak ada alat alur kerja yang tersedia',
tip: 'Memublikasikan alur kerja sebagai alat di Studio',
},
mcp: {
title: 'Tidak ada alat MCP yang tersedia',
tip: 'Menambahkan server MCP',
},
agent: {
title: 'Tidak ada strategi agen yang tersedia',
},
category: 'golongan',
type: 'jenis',
added: 'Ditambahkan',
},
createTool: {
exampleOptions: {
blankTemplate: 'Templat Kosong',
json: 'Cuaca(JSON)',
yaml: 'Toko Hewan Peliharaan (YAML)',
},
availableTools: {
title: 'Alat yang Tersedia',
name: 'Nama',
method: 'Metode',
path: 'Jalan',
description: 'Deskripsi',
action: 'Tindakan',
test: 'Ujian',
},
authMethod: {
types: {
apiKeyPlaceholder: 'Nama header HTTP untuk Kunci API',
api_key_header: 'Header',
api_key_query: 'Parameter Kueri',
none: 'Tidak',
queryParamPlaceholder: 'Nama parameter kueri untuk API Key',
apiValuePlaceholder: 'Masukkan Kunci API',
},
type: 'Jenis otorisasi',
title: 'Metode otorisasi',
queryParam: 'Parameter Kueri',
queryParamTooltip: 'Nama parameter kueri kunci API yang akan dilewati, misalnya "kunci" di "https://example.com/test?key=API_KEY".',
keyTooltip: 'Kunci Header Http, Anda dapat membiarkannya dengan "Otorisasi" jika Anda tidak tahu apa itu atau mengaturnya ke nilai khusus',
value: 'Nilai',
key: 'Kunci',
},
authHeaderPrefix: {
types: {
basic: 'Dasar',
bearer: 'Pembawa',
custom: 'Adat',
},
title: 'Jenis Autentikasi',
},
toolInput: {
required: 'Diperlukan',
title: 'Masukan Alat',
method: 'Metode',
description: 'Deskripsi',
methodParameterTip: 'LLM mengisi selama inferensi',
methodSettingTip: 'Pengguna mengisi konfigurasi alat',
name: 'Nama',
methodSetting: 'Pengaturan',
methodParameter: 'Parameter',
descriptionPlaceholder: 'Deskripsi arti parameter',
labelPlaceholder: 'Pilih tag (opsional)',
label: 'Di siang hari',
},
toolNamePlaceHolder: 'Masukkan nama alat',
description: 'Deskripsi',
editAction: 'Mengkonfigurasi',
schema: 'Skema',
title: 'Buat Alat Kustom',
viewSchemaSpec: 'Lihat Spesifikasi OpenAPI-Swagger',
confirmTip: 'Aplikasi yang menggunakan alat ini akan terpengaruh',
examples: 'Contoh',
customDisclaimerPlaceholder: 'Silakan masukkan penafian khusus',
editTitle: 'Edit Alat Kustom',
schemaPlaceHolder: 'Masukkan skema OpenAPI Anda di sini',
nameForToolCallPlaceHolder: 'Digunakan untuk pengenalan mesin, seperti getCurrentWeather, list_pets',
urlError: 'Silakan masukkan URL yang valid',
privacyPolicyPlaceholder: 'Silakan masukkan kebijakan privasi',
privacyPolicy: 'Kebijakan privasi',
nameForToolCall: 'Nama panggilan alat',
importFromUrl: 'Mengimpor dari URL',
deleteToolConfirmContent: 'Menghapus Alat tidak dapat diubah. Pengguna tidak akan lagi dapat mengakses Alat Anda.',
nameForToolCallTip: 'Hanya mendukung angka, huruf, dan garis bawah.',
name: 'Nama',
deleteToolConfirmTitle: 'Hapus Alat ini?',
customDisclaimer: 'Penafian khusus',
importFromUrlPlaceHolder: 'https://...',
descriptionPlaceholder: 'Deskripsi singkat tentang tujuan alat, misalnya, mendapatkan suhu untuk lokasi tertentu.',
confirmTitle: 'Konfirmasi untuk menyimpan?',
},
test: {
testResult: 'Hasil Tes',
testResultPlaceholder: 'Hasil tes akan ditampilkan di sini',
title: 'Ujian',
parametersValue: 'Parameter & Nilai',
value: 'Nilai',
parameters: 'Parameter',
},
thought: {
using: 'Menggunakan',
used: 'Digunakan',
requestTitle: 'Minta',
responseTitle: 'Jawaban',
},
setBuiltInTools: {
string: 'tali',
info: 'Info',
setting: 'Pengaturan',
file: 'arsip',
number: 'angka',
parameters: 'Parameter',
required: 'Diperlukan',
infoAndSetting: 'Info & Pengaturan',
toolDescription: 'Deskripsi alat',
},
noCustomTool: {
title: 'Tidak ada alat khusus!',
createTool: 'Buat Alat',
content: 'Tambahkan dan kelola alat kustom Anda di sini untuk membuat aplikasi AI.',
},
noSearchRes: {
title: 'Maaf, tidak ada hasil!',
content: 'Kami tidak dapat menemukan alat apa pun yang cocok dengan penelusuran Anda.',
reset: 'Atur ulang Pencarian',
},
mcp: {
create: {
cardLink: 'Pelajari selengkapnya tentang integrasi server MCP',
cardTitle: 'Tambahkan Server MCP (HTTP)',
},
modal: {
namePlaceholder: 'Beri nama server MCP Anda',
serverIdentifierWarning: 'Server tidak akan dikenali oleh aplikasi yang ada setelah perubahan ID',
timeout: 'Timeout',
save: 'Simpan',
name: 'Nama & Ikon',
confirm: 'Tambahkan & Otorisasi',
title: 'Tambahkan Server MCP (HTTP)',
serverIdentifier: 'Pengenal Server',
serverIdentifierTip: 'Pengidentifikasi unik untuk server MCP dalam ruang kerja. Hanya huruf kecil, angka, garis bawah, dan tanda hubung. Hingga 24 karakter.',
serverUrlPlaceholder: 'URL ke titik akhir server',
editTitle: 'Edit Server MCP (HTTP)',
serverUrlWarning: 'Memperbarui alamat server dapat mengganggu aplikasi yang bergantung pada server ini',
sseReadTimeout: 'Batas Waktu Baca SSE',
cancel: 'Membatalkan',
serverIdentifierPlaceholder: 'Pengidentifikasi unik, misalnya, my-mcp-server',
serverUrl: 'Server URL',
headers: 'Header',
timeoutPlaceholder: '30',
addHeader: 'Tambahkan Judul',
headerKey: 'Nama Header',
headerValue: 'Nilai Header',
headersTip: 'Header HTTP tambahan untuk dikirim bersama permintaan server MCP',
headerKeyPlaceholder: 'Authorization',
headerValuePlaceholder: 'Bearer 123',
noHeaders: 'Tidak ada header kustom yang dikonfigurasi',
maskedHeadersTip: 'Nilai header disembunyikan untuk keamanan. Perubahan akan memperbarui nilai yang sebenarnya.',
clientSecretPlaceholder: 'Rahasia Klien',
authentication: 'Otentikasi',
useDynamicClientRegistration: 'Gunakan Pendaftaran Klien Dinamis',
configurations: 'Konfigurasi',
clientSecret: 'Rahasia Klien',
clientID: 'ID Klien',
redirectUrlWarning: 'Silakan atur URL pengalihan OAuth Anda ke:',
},
operation: {
edit: 'Mengedit',
remove: 'Buka',
},
server: {
modal: {
parameters: 'Parameter',
parametersTip: 'Tambahkan deskripsi untuk setiap parameter untuk membantu LLM memahami tujuan dan kendala mereka.',
description: 'Deskripsi',
confirm: 'Aktifkan Server MCP',
addTitle: 'Tambahkan deskripsi untuk mengaktifkan server MCP',
parametersPlaceholder: 'Tujuan dan batasan parameter',
editTitle: 'Edit deskripsi',
descriptionPlaceholder: 'Jelaskan apa yang dilakukan alat ini dan bagaimana alat ini harus digunakan oleh LLM',
},
title: 'MCP Server',
url: 'Server URL',
reGen: 'Apakah Anda ingin meregenerasi URL server?',
addDescription: 'Tambahkan deskripsi',
edit: 'Edit deskripsi',
publishTip: 'Aplikasi tidak dipublikasikan. Silakan publikasikan aplikasinya terlebih dahulu.',
},
updateTime: 'Diperbarui',
noConfigured: 'Tidak dikonfigurasi',
authorize: 'Otorisasi',
updating: 'Memperbarui',
delete: 'Hapus Server MCP',
noTools: 'Tidak ada alat yang tersedia',
getTools: 'Dapatkan alat',
authorizingRequired: 'Otorisasi diperlukan',
gettingTools: 'Mendapatkan Alat...',
authorizing: 'Otorisasi...',
toolUpdateConfirmTitle: 'Perbarui Daftar Alat',
updateTools: 'Memperbarui Alat...',
authorizeTip: 'Setelah otorisasi, alat akan ditampilkan di sini.',
onlyTool: '1 alat disertakan',
toolsEmpty: 'Alat tidak dimuat',
toolUpdateConfirmContent: 'Memperbarui daftar alat dapat memengaruhi aplikasi yang ada. Apakah Anda ingin melanjutkan?',
update: 'Pemutakhiran',
identifier: 'Pengenal Server (Klik untuk Menyalin)',
toolItem: {
parameters: 'Parameter',
noDescription: 'Tanpa deskripsi',
},
toolsCount: 'alat {{count}}',
deleteConfirmTitle: 'Apakah Anda ingin menghapus {{mcp}}?',
toolsNum: 'alat {{count}} termasuk',
},
title: 'Perkakas',
createCustomTool: 'Buat Alat Kustom',
customToolTip: 'Pelajari alat kustom Dify lebih lanjut',
author: 'Oleh',
copyToolName: 'Salin Nama',
howToGet: 'Cara mendapatkan',
noTools: 'Tidak ada alat yang ditemukan',
notAuthorized: 'Tidak berwenang',
toolRemoved: 'Alat dihapus',
openInStudio: 'Buka di Studio',
builtInPromptTitle: 'Cepat',
toolNameUsageTip: 'Nama panggilan alat untuk penalaran dan permintaan agen',
allTools: 'Semua alat',
includeToolNum: '{{num}} {{action}} termasuk',
}
export default translation

File diff suppressed because it is too large Load Diff