const translation = {
  common: {
    effectVarConfirm: {
      content: 'Variabel ini digunakan di node lain. Apakah Anda masih ingin menghapusnya?',
      title: 'Hapus Variabel',
    },
    parallelTip: {
      click: {
        title: 'Klik',
        desc: 'untuk menambahkan',
      },
      drag: {
        desc: 'untuk terhubung',
        title: 'Tarik',
      },
    },
    undo: 'Urungkan',
    embedIntoSite: 'Sematkan ke Situs',
    editing: 'Mengedit',
    inRunMode: 'Dalam Mode Jalankan',
    publishUpdate: 'Publikasikan Pembaruan',
    fileUploadTip: 'Fitur unggahan gambar telah ditingkatkan menjadi unggah file.',
    currentDraftUnpublished: 'Draf Saat Ini Tidak Diterbitkan',
    inPreview: 'Dalam Pratinjau',
    preview: 'Pratayang',
    needConnectTip: 'Langkah ini tidak terhubung ke apa pun',
    handMode: 'Mode Tangan',
    currentView: 'Tampilan Saat Ini',
    exportImage: 'Ekspor Gambar',
    noVar: 'Tidak ada variabel',
    disconnect: 'Lepaskan',
    importWarningDetails: 'Perbedaan versi DSL dapat memengaruhi fitur tertentu',
    addParallelNode: 'Tambahkan Node Paralel',
    onFailure: 'Pada Kegagalan',
    update: 'Pemutakhiran',
    parallelRun: 'Jalankan Paralel',
    configure: 'Konfigurasikan',
    copy: 'Menyalin',
    redo: 'Ulangi',
    runApp: 'Jalankan Aplikasi',
    noHistory: 'Tidak Ada Sejarah',
    importDSLTip: 'Draf saat ini akan ditimpa.\nEkspor alur kerja sebagai cadangan sebelum mengimpor.',
    loadMore: 'Muat Lebih Banyak',
    previewPlaceholder: 'Masukkan konten di kotak di bawah ini untuk mulai men-debug Chatbot',
    unpublished: 'Tidak diterbitkan',
    viewRunHistory: 'Lihat riwayat eksekusi',
    versionHistory: 'Riwayat versi',
    backupCurrentDraft: 'Cadangan Draf Saat Ini',
    latestPublished: 'Terbaru Diterbitkan',
    exportSVG: 'Ekspor sebagai SVG',
    branch: 'CABANG',
    openInExplore: 'Buka di Jelajahi',
    publish: 'Menerbitkan',
    importSuccess: 'Berhasil Impor',
    jumpToNode: 'Lompat ke simpul ini',
    tagBound: 'Jumlah aplikasi yang menggunakan tag ini',
    model: 'Model',
    workflowAsToolTip: 'Konfigurasi ulang alat diperlukan setelah pembaruan alur kerja.',
    currentDraft: 'Draf Saat Ini',
    parallel: 'SEJAJAR',
    jinjaEditorPlaceholder: 'Ketik \'/\' atau \'{\' untuk menyisipkan variabel',
    exitVersions: 'Keluar dari Versi',
    featuresDocLink: 'Pelajari lebih lanjut',
    pasteHere: 'Tempel di sini',
    importWarning: 'Hati',
    running: 'Menjalankan',
    publishedAt: 'Diterbitkan',
    run: 'Jalankan',
    importDSL: 'Impor DSL',
    featuresDescription: 'Tingkatkan pengalaman pengguna aplikasi web',
    inPreviewMode: 'Dalam Mode Pratinjau',
    duplicate: 'Duplikat',
    learnMore: 'Pelajari lebih lanjut',
    restart: 'Restart',
    setVarValuePlaceholder: 'Atur variabel',
    conversationLog: 'Log Percakapan',
    addTitle: 'Tambahkan judul...',
    searchVar: 'Variabel pencarian',
    published: 'Diterbitkan',
    viewDetailInTracingPanel: 'Lihat detail',
    variableNamePlaceholder: 'Nama variabel',
    workflowAsTool: 'Alur Kerja sebagai Alat',
    enableJinja: 'Aktifkan dukungan template Jinja',
    input: 'Masukan',
    chooseDSL: 'Pilih file DSL',
    exportPNG: 'Ekspor sebagai PNG',
    needAnswerNode: 'Node Jawaban harus ditambahkan',
    syncingData: 'Menyinkronkan data, hanya beberapa detik.',
    addFailureBranch: 'Tambahkan Cabang Gagal',
    exportJPEG: 'Ekspor sebagai JPEG',
    addBlock: 'Tambahkan Node',
    processData: 'Proses Data',
    needEndNode: 'Node Akhir harus ditambahkan',
    manageInTools: 'Kelola di Alat',
    pointerMode: 'Mode Penunjuk',
    accessAPIReference: 'Referensi API Akses',
    ImageUploadLegacyTip: 'Anda sekarang dapat membuat variabel jenis file di formulir awal. Kami tidak akan lagi mendukung fitur unggah gambar di masa mendatang.',
    overwriteAndImport: 'Menimpa dan Mengimpor',
    goBackToEdit: 'Kembali ke editor',
    runHistory: 'Jalankan Riwayat',
    autoSaved: 'Disimpan Secara Otomatis',
    output: 'Hasil',
    batchRunApp: 'Aplikasi Batch Run',
    debugAndPreview: 'Pratayang',
    features: 'Fitur',
    importFailure: 'Impor Gagal',
    insertVarTip: 'Tekan tombol \'/\' untuk memasukkan dengan cepat',
    addDescription: 'Tambahkan deskripsi...',
    notRunning: 'Belum berjalan',
    workflowProcess: 'Proses Alur Kerja',
    showRunHistory: 'Tampilkan Riwayat Eksekusi',
    configureRequired: 'Konfigurasi yang Diperlukan',
    currentWorkflow: 'Alur Kerja Saat Ini',
    viewOnly: 'Lihat Saja',
    restore: 'Mengembalikan',
  },
  env: {
    modal: {
      description: 'Deskripsi',
      valuePlaceholder: 'Nilai ENV',
      descriptionPlaceholder: 'Jelaskan variabel',
      editTitle: 'Edit Variabel Lingkungan',
      namePlaceholder: 'Nama env',
      value: 'Nilai',
      name: 'Nama',
      title: 'Tambahkan Variabel Lingkungan',
      secretTip: 'Digunakan untuk menentukan informasi atau data sensitif, dengan pengaturan DSL yang dikonfigurasi untuk pencegahan kebocoran.',
      type: 'Jenis',
    },
    export: {
      ignore: 'Ekspor DSL',
      checkbox: 'Mengekspor nilai rahasia',
      title: 'Mengekspor variabel lingkungan Rahasia?',
      export: 'Mengekspor DSL dengan nilai rahasia',
    },
    envPanelButton: 'Tambahkan Variabel',
    envPanelTitle: 'Variabel Lingkungan',
    envDescription: 'Variabel lingkungan dapat digunakan untuk menyimpan informasi pribadi dan kredensial. Mereka hanya baca dan dapat dipisahkan dari file DSL selama ekspor.',
  },
  chatVariable: {
    modal: {
      valuePlaceholder: 'Nilai default, biarkan kosong untuk tidak diatur',
      name: 'Nama',
      arrayValue: 'Nilai',
      description: 'Deskripsi',
      editTitle: 'Edit Variabel Percakapan',
      editInForm: 'Edit dalam Formulir',
      type: 'Jenis',
      oneByOne: 'Tambahkan satu per satu',
      editInJSON: 'Edit dalam JSON',
      namePlaceholder: 'Nama variabel',
      objectType: 'Jenis',
      title: 'Tambahkan Variabel Percakapan',
      value: 'Nilai Default',
      descriptionPlaceholder: 'Jelaskan variabel',
      objectValue: 'Nilai Default',
      addArrayValue: 'Nilai Tambah',
      objectKey: 'Kunci',
    },
    panelTitle: 'Variabel Percakapan',
    button: 'Tambahkan Variabel',
    updatedAt: 'Diperbarui pada',
    panelDescription: 'Variabel Percakapan digunakan untuk menyimpan informasi interaktif yang perlu diingat LLM, termasuk riwayat percakapan, file yang diunggah, preferensi pengguna. Mereka dibaca-tulis.',
    docLink: 'Kunjungi dokumen kami untuk mempelajari lebih lanjut.',
    storedContent: 'Konten yang disimpan',
  },
  changeHistory: {
    nodeAdd: 'Node ditambahkan',
    nodePaste: 'Node ditempelkan',
    noteDelete: 'Catatan dihapus',
    hint: 'Petunjuk',
    nodeTitleChange: 'Judul simpul diubah',
    title: 'Riwayat Perubahan',
    nodeDescriptionChange: 'Deskripsi simpul diubah',
    clearHistory: 'Hapus Sejarah',
    placeholder: 'Anda belum mengubah apa pun',
    nodeDragStop: 'Node dipindahkan',
    hintText: 'Tindakan pengeditan Anda dilacak dalam riwayat perubahan, yang disimpan di perangkat Anda selama sesi ini. Riwayat ini akan dihapus saat Anda meninggalkan editor.',
    sessionStart: 'Mulai Sesi',
    noteChange: 'Catatan berubah',
    nodeResize: 'Node diubah ukurannya',
    nodeDelete: 'Node dihapus',
    noteAdd: 'Catatan ditambahkan',
    nodeConnect: 'Node terhubung',
    currentState: 'Keadaan Saat Ini',
    edgeDelete: 'Node terputus',
    nodeChange: 'Node diubah',
  },
  errorMsg: {
    fields: {
      variable: 'Nama Variabel',
      model: 'Model',
      rerankModel: 'Model Peringkat Ulang yang dikonfigurasi',
      visionVariable: 'Variabel Penglihatan',
      variableValue: 'Nilai Variabel',
      code: 'Kode',
    },
    invalidVariable: 'Variabel tidak valid',
    authRequired: 'Otorisasi diperlukan',
    rerankModelRequired: 'Model Rerank yang dikonfigurasi diperlukan',
  },
  singleRun: {
    back: 'Belakang',
    running: 'Menjalankan',
    iteration: 'Iterasi',
    testRun: 'Uji Coba',
    testRunIteration: 'Iterasi Uji Coba',
    startRun: 'Mulai Lari',
    loop: 'Lari',
    preparingDataSource: 'Menyiapkan Sumber Data',
    reRun: 'Jalankan ulang',
  },
  tabs: {
    'utilities': 'Utilitas',
    'workflowTool': 'Alur Kerja',
    'searchBlock': 'Simpul pencarian',
    'agent': 'Strategi Agen',
    'allAdded': 'Semua ditambahkan',
    'searchTool': 'Alat pencarian',
    'customTool': 'Adat',
    'noResult': 'Tidak ada kecocokan yang ditemukan',
    'tools': 'Perkakas',
    'logic': 'Logika',
    'addAll': 'Tambahkan semua',
    'blocks': 'Node',
    'question-understand': 'Pertanyaan Pahami',
    'plugin': 'Plugin',
    'transform': 'Mengubah',
    'allTool': 'Semua',
    'sources': 'Sumber',
    'searchDataSource': 'Cari Sumber Data',
  },
  blocks: {
    'code': 'Kode',
    'http-request': 'Permintaan HTTP',
    'start': 'Mulai',
    'template-transform': 'Templat',
    'llm': 'LLM',
    'variable-assigner': 'Agregator Variabel',
    'loop-end': 'Keluar Loop',
    'iteration': 'Iterasi',
    'question-classifier': 'Pengklasifikasi Pertanyaan',
    'iteration-start': 'Iterasi Mulai',
    'knowledge-retrieval': 'Pengambilan Pengetahuan',
    'loop': 'Perulangan',
    'assigner': 'Penerima Variabel',
    'agent': 'Agen',
    'list-operator': 'Operator Daftar',
    'answer': 'Jawaban',
    'parameter-extractor': 'Ekstraktor Parameter',
    'document-extractor': 'Ekstraktor Dokumen',
    'end': 'Ujung',
    'if-else': 'JIKA/LAIN',
    'loop-start': 'Mulai Loop',
    'variable-aggregator': 'Agregator Variabel',
    'datasource': 'Sumber Data',
    'knowledge-index': 'Basis Pengetahuan',
  },
  blocksAbout: {
    'template-transform': 'Mengonversi data menjadi string menggunakan sintaks templat Jinja',
    'answer': 'Menentukan konten balasan percakapan obrolan',
    'llm': 'Memanggil model bahasa besar untuk menjawab pertanyaan atau memproses bahasa alami',
    'question-classifier': 'Tentukan kondisi klasifikasi pertanyaan pengguna, LLM dapat menentukan bagaimana percakapan berlangsung berdasarkan deskripsi klasifikasi',
    'loop-end': 'Setara dengan "istirahat". Node ini tidak memiliki item konfigurasi. Ketika badan loop mencapai node ini, loop berakhir.',
    'start': 'Menentukan parameter awal untuk meluncurkan alur kerja',
    'iteration': 'Lakukan beberapa langkah pada objek daftar hingga semua hasil dikeluarkan.',
    'code': 'Eksekusi sepotong kode Python atau NodeJS untuk mengimplementasikan logika kustom',
    'http-request': 'Izinkan permintaan server dikirim melalui protokol HTTP',
    'assigner': 'Simpul penetapan variabel digunakan untuk menetapkan nilai ke variabel yang dapat ditulis (seperti variabel percakapan).',
    'if-else': 'Memungkinkan Anda membagi alur kerja menjadi dua cabang berdasarkan kondisi if/else',
    'agent': 'Memanggil model bahasa besar untuk menjawab pertanyaan atau memproses bahasa alami',
    'document-extractor': 'Digunakan untuk mengurai dokumen yang diunggah menjadi konten teks yang mudah dipahami oleh LLM.',
    'knowledge-retrieval': 'Memungkinkan Anda untuk mengkueri konten teks yang terkait dengan pertanyaan pengguna dari Pengetahuan',
    'parameter-extractor': 'Gunakan LLM untuk mengekstrak parameter terstruktur dari bahasa alami untuk pemanggilan alat atau permintaan HTTP.',
    'variable-assigner': 'Agregatkan variabel multi-cabang menjadi satu variabel untuk konfigurasi terpadu simpul hilir.',
    'loop': 'Jalankan perulangan logika hingga kondisi penghentian terpenuhi atau jumlah perulangan maksimum tercapai.',
    'variable-aggregator': 'Agregatkan variabel multi-cabang menjadi satu variabel untuk konfigurasi terpadu simpul hilir.',
    'end': 'Menentukan jenis akhir dan hasil alur kerja',
    'list-operator': 'Digunakan untuk memfilter atau mengurutkan konten array.',
    'datasource': 'Sumber Data Tentang',
    'knowledge-index': 'Basis Pengetahuan Tentang',
  },
  operator: {
    zoomIn: 'Perbesar',
    alignCenter: 'Pusat',
    zoomOut: 'Perkecil',
    zoomToFit: 'Perbesar agar sesuai',
    vertical: 'Vertikal',
    alignTop: 'Puncak',
    alignMiddle: 'Tengah',
    selectionAlignment: 'Perataan Seleksi',
    alignRight: 'Kanan',
    alignNodes: 'Sejajarkan Node',
    horizontal: 'Horisontal',
    distributeHorizontal: 'Spasi Secara Horizontal',
    zoomTo100: 'Perbesar hingga 100%',
    alignLeft: 'Rata Kiri',
    distributeVertical: 'Ruang Secara Vertikal',
    zoomTo50: 'Perbesar hingga 50%',
    alignBottom: 'Rata Bawah',
  },
  variableReference: {
    conversationVars: 'variabel percakapan',
    noVarsForOperation: 'Tidak ada variabel yang tersedia untuk penugasan dengan operasi yang dipilih.',
    assignedVarsDescription: 'Variabel yang ditetapkan harus berupa variabel yang dapat ditulis, seperti',
    noAssignedVars: 'Tidak ada variabel yang ditetapkan yang tersedia',
    noAvailableVars: 'Tidak ada variabel yang tersedia',
  },
  panel: {
    change: 'Ubah',
    checklist: 'Checklist',
    about: 'Sekitar',
    moveToThisNode: 'Pindah ke simpul ini',
    optional: '(opsional)',
    checklistTip: 'Pastikan semua masalah diselesaikan sebelum dipublikasikan',
    organizeBlocks: 'Mengatur simpul',
    selectNextStep: 'Pilih Langkah Berikutnya',
    addNextStep: 'Tambahkan langkah berikutnya dalam alur kerja ini',
    minimize: 'Keluar dari Layar Penuh',
    nextStep: 'Langkah Berikutnya',
    userInputField: 'Bidang Input Pengguna',
    checklistResolved: 'Semua masalah terselesaikan',
    createdBy: 'Dibuat oleh',
    helpLink: 'Tautan Bantuan',
    changeBlock: 'Ubah Node',
    runThisStep: 'Jalankan langkah ini',
    maximize: 'Maksimalkan Kanvas',
  },
  nodes: {
    common: {
      memory: {
        conversationRoleName: 'Nama Peran Percakapan',
        memoryTip: 'Pengaturan memori obrolan',
        windowSize: 'Ukuran Jendela',
        assistant: 'Awalan asisten',
        memory: 'Ingatan',
        user: 'Awalan pengguna',
      },
      memories: {
        builtIn: 'Built-in',
        title: 'Kenangan',
        tip: 'Memori obrolan',
      },
      errorHandle: {
        none: {
          desc: 'Node akan berhenti berjalan jika pengecualian terjadi dan tidak ditangani',
          title: 'Tidak',
        },
        defaultValue: {
          title: 'Nilai Default',
          output: 'Nilai Default Keluaran',
          inLog: 'Pengecualian simpul, keluaran sesuai dengan nilai default.',
          desc: 'Saat terjadi kesalahan, tentukan konten output statis.',
          tip: 'Jika kesalahan, akan mengembalikan nilai di bawah ini.',
        },
        failBranch: {
          customize: 'Buka kanvas untuk menyesuaikan logika cabang gagal.',
          desc: 'Ketika terjadi kesalahan, itu akan mengeksekusi cabang pengecualian',
          inLog: 'Pengecualian node, akan secara otomatis mengeksekusi cabang gagal. Output node akan mengembalikan jenis kesalahan dan pesan kesalahan dan meneruskannya ke hilir.',
          title: 'Cabang Gagal',
          customizeTip: 'Saat cabang gagal diaktifkan, pengecualian yang dilemparkan oleh simpul tidak akan mengakhiri proses. Sebagai gantinya, itu akan secara otomatis mengeksekusi cabang gagal yang telah ditentukan sebelumnya, memungkinkan Anda untuk secara fleksibel memberikan pesan kesalahan, laporan, perbaikan, atau tindakan lewati.',
        },
        partialSucceeded: {},
        title: 'Penanganan Kesalahan',
        tip: 'Strategi penanganan pengecualian, dipicu ketika simpul menemukan pengecualian.',
      },
      retry: {
        retry: 'Pengulangan',
        retryFailed: 'Coba lagi gagal',
        retrying: 'Mencoba lagi...',
        ms: 'Ms',
        maxRetries: 'percobaan ulang maks',
        retryOnFailure: 'Coba lagi saat gagal',
        retryInterval: 'interval coba lagi',
        times: 'kali',
        retrySuccessful: 'Coba lagi berhasil',
      },
      typeSwitch: {
        variable: 'Gunakan variabel',
        input: 'Nilai masukan',
      },
      insertVarTip: 'Sisipkan Variabel',
      outputVars: 'Variabel Keluaran',
      inputVars: 'Variabel Masukan',
    },
    start: {
      outputVars: {
        memories: {
          type: 'Jenis pesan',
          des: 'Riwayat percakapan',
          content: 'Konten pesan',
        },
        files: 'Daftar file',
        query: 'Masukan pengguna',
      },
      builtInVar: 'Variabel bawaan',
      noVarTip: 'Atur input yang dapat digunakan dalam Alur Kerja',
      required: 'Diperlukan',
      inputField: 'Bidang Masukan',
    },
    end: {
      output: {
        variable: 'variabel keluaran',
        type: 'Jenis keluaran',
      },
      type: {
        'plain-text': 'Teks Biasa',
        'structured': 'Terstruktur',
        'none': 'Tidak',
      },
      outputs: 'Output',
    },
    answer: {
      answer: 'Menjawab',
      outputVars: 'Variabel Keluaran',
    },
    llm: {
      roleDescription: {
        user: 'Berikan instruksi, kueri, atau input berbasis teks apa pun ke model',
        system: 'Berikan instruksi tingkat tinggi untuk percakapan',
        assistant: 'Respons model berdasarkan pesan pengguna',
      },
      resolution: {
        low: 'Rendah',
        high: 'Tinggi',
        name: 'Resolusi',
      },
      outputVars: {
        output: 'Hasilkan konten',
        usage: 'Informasi Penggunaan Model',
      },
      singleRun: {
        variable: 'Variabel',
      },
      jsonSchema: {
        warningTips: {
          saveSchema: 'Harap selesaikan pengeditan bidang saat ini sebelum menyimpan skema',
        },
        addField: 'Tambahkan Bidang',
        resetDefaults: 'Reset',
        generatedResult: 'Hasil yang dihasilkan',
        regenerate: 'Regenerasi',
        generationTip: 'Anda dapat menggunakan bahasa alami untuk membuat Skema JSON dengan cepat.',
        showAdvancedOptions: 'Tampilkan opsi lanjutan',
        instruction: 'Ajaran',
        doc: 'Pelajari output terstruktur lebih lanjut',
        descriptionPlaceholder: 'Tambahkan deskripsi',
        generateJsonSchema: 'Hasilkan Skema JSON',
        fieldNamePlaceholder: 'Nama Bidang',
        generate: 'Menghasilkan',
        back: 'Belakang',
        required: 'Diperlukan',
        promptPlaceholder: 'Jelaskan Skema JSON Anda...',
        import: 'Impor dari JSON',
        apply: 'Berlaku',
        generating: 'Menghasilkan Skema JSON...',
        resultTip: 'Berikut adalah hasil yang dihasilkan. Jika Anda tidak puas, Anda dapat kembali dan mengubah prompt Anda.',
        addChildField: 'Tambahkan Bidang Anak',
        stringValidations: 'Validasi String',
        promptTooltip: 'Ubah deskripsi teks menjadi struktur Skema JSON standar.',
        title: 'Skema Output Terstruktur',
      },
      files: 'File',
      model: 'pola',
      variables: 'Variabel',
      prompt: 'cepat',
      addMessage: 'Tambahkan Pesan',
      vision: 'penglihatan',
      sysQueryInUser: 'sys.query dalam pesan pengguna diperlukan',
      contextTooltip: 'Anda dapat mengimpor Pengetahuan sebagai konteks',
      notSetContextInPromptTip: 'Untuk mengaktifkan fitur konteks, silakan isi variabel konteks di PROMPT.',
      context: 'konteks',
      reasoningFormat: {
        tagged: 'Tetap pikirkan tag',
        title: 'Aktifkan pemisahan tag penalaran',
        separated: 'Pisahkan tag pemikiran',
        tooltip: 'Ekstrak konten dari tag pikir dan simpan di field reasoning_content.',
      },
    },
    knowledgeRetrieval: {
      outputVars: {
        icon: 'Ikon tersegmentasi',
        title: 'Judul tersegmentasi',
        metadata: 'Metadata lainnya',
        output: 'Mengambil data tersegmentasi',
        url: 'URL tersegmentasi',
        content: 'Konten tersegmentasi',
      },
      metadata: {
        options: {
          disabled: {
            title: 'Cacat',
            subTitle: 'Tidak mengaktifkan pemfilteran metadata',
          },
          automatic: {
            desc: 'Secara otomatis menghasilkan kondisi pemfilteran metadata berdasarkan Variabel Kueri',
            subTitle: 'Secara otomatis membuat kondisi pemfilteran metadata berdasarkan kueri pengguna',
            title: 'Otomatis',
          },
          manual: {
            title: 'Manual',
            subTitle: 'Menambahkan kondisi pemfilteran metadata secara manual',
          },
        },
        panel: {
          title: 'Kondisi Filter Metadata',
          placeholder: 'Masukkan nilai',
          search: 'Metadata pencarian',
          add: 'Tambahkan Kondisi',
          conditions: 'Kondisi',
          select: 'Pilih variabel...',
          datePlaceholder: 'Pilih waktu...',
        },
        tip: 'Pemfilteran metadata adalah proses menggunakan atribut metadata (seperti tag, kategori, atau izin akses) untuk menyempurnakan dan mengontrol pengambilan informasi yang relevan dalam sistem.',
        title: 'Pemfilteran Metadata',
      },
      knowledge: 'Pengetahuan',
      queryVariable: 'Variabel Kueri',
    },
    http: {
      outputVars: {
        files: 'Daftar File',
        body: 'Konten Tanggapan',
        headers: 'Daftar Header Respons JSON',
        statusCode: 'Kode Status Respons',
      },
      authorization: {
        'header': 'Header',
        'basic': 'Dasar',
        'custom': 'Adat',
        'authorization': 'Otorisasi',
        'bearer': 'Pembawa',
        'no-auth': 'Tidak',
        'api-key': 'Kunci API',
        'authorizationType': 'Jenis Otorisasi',
        'api-key-title': 'Kunci API',
        'auth-type': 'Jenis Autentikasi',
      },
      timeout: {
        title: 'Timeout',
        connectLabel: 'Batas Waktu Koneksi',
        readPlaceholder: 'Masukkan batas waktu baca dalam hitungan detik',
        connectPlaceholder: 'Masukkan batas waktu koneksi dalam hitungan detik',
        readLabel: 'Baca Batas Waktu',
        writeLabel: 'Tulis Batas Waktu',
        writePlaceholder: 'Masukkan batas waktu tulis dalam hitungan detik',
      },
      curl: {
        placeholder: 'Tempel string cURL di sini',
        title: 'Impor dari cURL',
      },
      verifySSL: {
        title: 'Verifikasi Sertifikat SSL',
        warningTooltip: 'Menonaktifkan verifikasi SSL tidak disarankan untuk lingkungan produksi. Ini hanya boleh digunakan dalam pengembangan atau pengujian, karena membuat koneksi rentan terhadap ancaman keamanan seperti serangan man-in-the-middle.',
      },
      notStartWithHttp: 'API harus dimulai dengan http:// atau https://',
      api: 'API',
      key: 'Kunci',
      inputVars: 'Variabel Masukan',
      value: 'Nilai',
      insertVarPlaceholder: 'ketik \'/\' untuk menyisipkan variabel',
      headers: 'Header',
      binaryFileVariable: 'Variabel File Biner',
      body: 'Badan',
      keyValueEdit: 'Kunci-Nilai Edit',
      bulkEdit: 'Edit Massal',
      params: 'Parameter',
      apiPlaceholder: 'Masukkan URL, ketik variabel sisipkan \'/\'',
      type: 'Jenis',
      extractListPlaceholder: 'Masukkan indeks item daftar, ketik variabel sisipkan \'/\'',
    },
    code: {
      searchDependencies: 'Dependensi Pencarian',
      inputVars: 'Variabel Masukan',
      advancedDependencies: 'Dependensi Lanjutan',
      advancedDependenciesTip: 'Tambahkan beberapa dependensi yang dimuat sebelumnya yang membutuhkan lebih banyak waktu untuk digunakan atau tidak bawaan default di sini',
      outputVars: 'Variabel Keluaran',
      syncFunctionSignature: 'Sinkronkan tanda tangan fungsi ke kode',
    },
    templateTransform: {
      outputVars: {
        output: 'Konten yang diubah',
      },
      code: 'Kode',
      inputVars: 'Variabel Masukan',
      codeSupportTip: 'Hanya mendukung Jinja2',
    },
    ifElse: {
      comparisonOperator: {
        'is not': 'tidak',
        'after': 'sesudah',
        'empty': 'kosong',
        'all of': 'Semua',
        'not empty': 'tidak kosong',
        'not null': 'bukan null',
        'null': 'adalah nol',
        'not in': 'tidak di',
        'not contains': 'tidak mengandung',
        'exists': 'Ada',
        'end with': 'akhiri dengan',
        'before': 'sebelum',
        'in': 'di',
        'is': 'sedang',
        'contains': 'Berisi',
        'start with': 'mulai dengan',
        'not exists': 'tidak ada',
      },
      optionName: {
        localUpload: 'Unggahan Lokal',
        image: 'Citra',
        audio: 'Audio',
        video: 'Video',
        doc: 'Doc',
        url: 'URL',
      },
      conditionNotSetup: 'Kondisi TIDAK diatur',
      and: 'dan',
      selectVariable: 'Pilih variabel...',
      or: 'atau',
      else: 'Lain',
      addSubVariable: 'Sub Variabel',
      addCondition: 'Tambahkan Kondisi',
      if: 'Kalau',
      operator: 'Operator',
      enterValue: 'Masukkan nilai',
      select: 'Pilih',
      notSetVariable: 'Silakan atur variabel terlebih dahulu',
      elseDescription: 'Digunakan untuk menentukan logika yang harus dijalankan ketika kondisi if tidak terpenuhi.',
    },
    variableAssigner: {
      type: {
        number: 'Angka',
        array: 'Array',
        object: 'Benda',
        string: 'Tali',
      },
      outputVars: {},
      noVarTip: 'Tambahkan variabel yang akan ditetapkan',
      aggregationGroup: 'Grup Agregasi',
      title: 'Tetapkan variabel',
      setAssignVariable: 'Mengatur variabel penetapan',
      varNotSet: 'Variabel tidak diatur',
      outputType: 'Jenis Keluaran',
      addGroup: 'Tambahkan Grup',
      aggregationGroupTip: 'Mengaktifkan fitur ini memungkinkan agregator variabel untuk menggabungkan beberapa set variabel.',
    },
    assigner: {
      'operations': {
        'title': 'Operasi',
        'clear': 'Jelas',
        'extend': 'Memperpanjang',
        'over-write': 'Menimpa',
        'append': 'Menambahkan',
        'remove-first': 'Hapus Pertama',
        '*=': '*=',
        'set': 'Mengeset',
        'remove-last': 'Hapus Terakhir',
        '-=': '-=',
        '/=': '/=',
        '+=': ' =',
        'overwrite': 'Menimpa',
      },
      'variable': 'Variabel',
      'writeModeTip': 'Mode tambahkan: Hanya tersedia untuk variabel array.',
      'assignedVarsDescription': 'Variabel yang ditetapkan harus berupa variabel yang dapat ditulis, seperti variabel percakapan.',
      'over-write': 'Menimpa',
      'noVarTip': 'Klik tombol " " untuk menambahkan variabel',
      'noAssignedVars': 'Tidak ada variabel yang ditetapkan yang tersedia',
      'selectAssignedVariable': 'Pilih variabel yang ditetapkan...',
      'writeMode': 'Mode Tulis',
      'variables': 'Variabel',
      'varNotSet': 'Variabel TIDAK Diatur',
      'plus': 'Tambah',
      'assignedVariable': 'Variabel yang Ditetapkan',
      'clear': 'Jelas',
      'setParameter': 'Atur parameter...',
      'append': 'Menambahkan',
      'setVariable': 'Atur Variabel',
    },
    tool: {
      outputVars: {
        files: {
          transfer_method: 'Metode transfer. Nilai adalah remote_url atau local_file',
          url: 'URL gambar',
          title: 'File yang dihasilkan alat',
          upload_file_id: 'Unggah id file',
          type: 'Jenis dukungan. Sekarang hanya mendukung gambar',
        },
        json: 'JSON yang dihasilkan alat',
        text: 'Konten yang dihasilkan alat',
      },
      insertPlaceholder2: 'Sisipkan variabel',
      insertPlaceholder1: 'Ketik atau tekan',
      authorize: 'Otorisasi',
      settings: 'Pengaturan',
      inputVars: 'Variabel Masukan',
    },
    questionClassifiers: {
      outputVars: {
        usage: 'Informasi Penggunaan Model',
        className: 'Nama Kelas',
      },
      inputVars: 'Variabel Masukan',
      topicPlaceholder: 'Tulis nama topik Anda',
      addClass: 'Tambahkan Kelas',
      classNamePlaceholder: 'Tulis nama kelas Anda',
      instruction: 'Ajaran',
      advancedSetting: 'Pengaturan Lanjutan',
      model: 'pola',
      topicName: 'Nama Topik',
      instructionTip: 'Masukkan instruksi tambahan untuk membantu pengklasifikasi pertanyaan lebih memahami cara mengkategorikan pertanyaan.',
      instructionPlaceholder: 'Tulis instruksi Anda',
      class: 'Kelas',
    },
    parameterExtractor: {
      outputVars: {
        errorReason: 'Alasan Kesalahan',
        isSuccess: 'Apakah Success.Pada keberhasilan nilainya adalah 1, pada kegagalan nilainya adalah 0.',
        usage: 'Informasi Penggunaan Model',
      },
      addExtractParameterContent: {
        name: 'Nama',
        description: 'Deskripsi',
        typePlaceholder: 'Ekstrak Jenis Parameter',
        descriptionPlaceholder: 'Ekstrak Deskripsi Parameter',
        requiredContent: 'Diperlukan hanya digunakan sebagai referensi untuk inferensi model, dan bukan untuk validasi wajib output parameter.',
        namePlaceholder: 'Ekstrak Nama Parameter',
        type: 'Jenis',
        required: 'Diperlukan',
      },
      inputVar: 'Variabel Masukan',
      instructionTip: 'Masukkan instruksi tambahan untuk membantu ekstraktor parameter memahami cara mengekstrak parameter.',
      instruction: 'Ajaran',
      extractParameters: 'Ekstrak Parameter',
      addExtractParameter: 'Tambahkan Parameter Ekstrak',
      reasoningMode: 'Mode Penalaran',
      reasoningModeTip: 'Anda dapat memilih mode penalaran yang sesuai berdasarkan kemampuan model untuk menanggapi instruksi untuk pemanggilan fungsi atau perintah.',
      importFromTool: 'Impor dari alat',
      extractParametersNotSet: 'Ekstrak Parameter tidak diatur',
      advancedSetting: 'Pengaturan Lanjutan',
    },
    iteration: {
      ErrorMethod: {
        removeAbnormalOutput: 'Hapus Output Abnormal',
        operationTerminated: 'Diakhiri',
        continueOnError: 'Lanjutkan pada Kesalahan',
      },
      output: 'Variabel Keluaran',
      deleteDesc: 'Menghapus simpul iterasi akan menghapus semua simpul turunan',
      parallelModeUpper: 'MODE PARALEL',
      parallelPanelDesc: 'Dalam mode paralel, tugas dalam iterasi mendukung eksekusi paralel.',
      MaxParallelismTitle: 'Paralelisme maksimum',
      currentIteration: 'Iterasi Saat Ini',
      input: 'Masukan',
      errorResponseMethod: 'Metode respons kesalahan',
      comma: ',',
      parallelModeEnableDesc: 'Dalam mode paralel, tugas dalam iterasi mendukung eksekusi paralel. Anda dapat mengonfigurasi ini di panel properti di sebelah kanan.',
      parallelMode: 'Mode Paralel',
      MaxParallelismDesc: 'Paralelisme maksimum digunakan untuk mengontrol jumlah tugas yang dijalankan secara bersamaan dalam satu iterasi.',
      deleteTitle: 'Hapus Node Iterasi?',
      parallelModeEnableTitle: 'Mode Paralel Diaktifkan',
      answerNodeWarningDesc: 'Peringatan mode paralel: Simpul jawaban, penetapan variabel percakapan, dan operasi baca/tulis persisten dalam iterasi dapat menyebabkan pengecualian.',
    },
    loop: {
      ErrorMethod: {
        continueOnError: 'Lanjutkan pada Kesalahan',
        removeAbnormalOutput: 'Hapus Output Abnormal',
        operationTerminated: 'Diakhiri',
      },
      inputMode: 'Mode Masukan',
      deleteDesc: 'Menghapus simpul perulangan akan menghapus semua simpul turunan',
      input: 'Masukan',
      deleteTitle: 'Hapus Simpul Loop?',
      exitConditionTip: 'Simpul loop membutuhkan setidaknya satu kondisi keluar',
      variableName: 'Nama Variabel',
      loopVariables: 'Variabel Loop',
      setLoopVariables: 'Mengatur variabel dalam cakupan loop',
      breakConditionTip: 'Hanya variabel dalam loop dengan kondisi penghentian dan variabel percakapan yang dapat direferensikan.',
      loopNode: 'Loop Node',
      output: 'Variabel Keluaran',
      loopMaxCount: 'Jumlah Loop Maksimum',
      currentLoop: 'Loop Arus',
      breakCondition: 'Kondisi Penghentian Loop',
      errorResponseMethod: 'Metode Respons Kesalahan',
      comma: ',',
      finalLoopVariables: 'Variabel Loop Akhir',
      initialLoopVariables: 'Variabel Loop Awal',
    },
    note: {
      editor: {
        bold: 'Berani',
        enterUrl: 'Masukkan URL...',
        medium: 'Sedang',
        strikethrough: 'Coret',
        openLink: 'Buka',
        unlink: 'Membatalkan tautan',
        showAuthor: 'Tampilkan Penulis',
        large: 'Besar',
        placeholder: 'Tulis catatan Anda...',
        invalidUrl: 'URL tidak valid',
        small: 'Kecil',
        italic: 'Miring',
        link: 'Tautan',
        bulletList: 'Daftar Poin',
      },
      addNote: 'Tambahkan Catatan',
    },
    docExtractor: {
      outputVars: {
        text: 'Teks yang diekstrak',
      },
      learnMore: 'Pelajari lebih lanjut',
      inputVar: 'Variabel Masukan',
    },
    listFilter: {
      outputVars: {
        first_record: 'Catatan pertama',
        result: 'Hasil filter',
        last_record: 'Catatan terakhir',
      },
      filterConditionKey: 'Kunci Kondisi Filter',
      filterConditionComparisonValue: 'Nilai Kondisi Filter',
      filterConditionComparisonOperator: 'Operator Perbandingan Kondisi Filter',
      selectVariableKeyPlaceholder: 'Pilih kunci sub variabel',
      orderBy: 'Pesan oleh',
      desc: 'DESC',
      extractsCondition: 'Ekstrak item N',
      asc: 'ASC',
      limit: 'N Teratas',
      inputVar: 'Variabel Masukan',
      filterCondition: 'Kondisi Filter',
    },
    agent: {
      strategy: {
        tooltip: 'Strategi Agen yang berbeda menentukan bagaimana sistem merencanakan dan menjalankan panggilan alat multi-langkah',
        searchPlaceholder: 'Strategi agen pencarian',
        configureTip: 'Silakan konfigurasikan strategi agen.',
        shortLabel: 'Strategi',
        selectTip: 'Pilih strategi agen',
        configureTipDesc: 'Setelah mengonfigurasi strategi agen, node ini akan secara otomatis memuat konfigurasi yang tersisa. Strategi tersebut akan mempengaruhi mekanisme penalaran alat multi-langkah.',
        label: 'Strategi Agen',
      },
      pluginInstaller: {
        installing: 'Menginstal',
        install: 'Pasang',
      },
      modelNotInMarketplace: {
        title: 'Model tidak dipasang',
        desc: 'Model ini diinstal dari repositori Lokal atau GitHub. Silakan gunakan setelah pemasangan.',
        manageInPlugins: 'Kelola di Plugin',
      },
      modelNotSupport: {
        title: 'Model yang Tidak Didukung',
        descForVersionSwitch: 'Versi plugin yang diinstal tidak menyediakan model ini. Klik untuk beralih versi.',
        desc: 'Versi plugin yang diinstal tidak menyediakan model ini.',
      },
      modelSelectorTooltips: {
        deprecated: 'Model ini tidak digunakan lagi',
      },
      outputVars: {
        files: {
          transfer_method: 'Metode transfer. Nilai adalah remote_url atau local_file',
          type: 'Jenis dukungan. Sekarang hanya mendukung gambar',
          upload_file_id: 'Unggah id file',
          title: 'file yang dihasilkan agen',
          url: 'URL gambar',
        },
        usage: 'Informasi Penggunaan Model',
        text: 'Konten yang dihasilkan agen',
        json: 'JSON yang dihasilkan agen',
      },
      checkList: {
        strategyNotSelected: 'Strategi tidak dipilih',
      },
      installPlugin: {
        title: 'Instal Plugin',
        changelog: 'Log perubahan',
        cancel: 'Membatalkan',
        install: 'Pasang',
        desc: 'Tentang menginstal plugin berikut',
      },
      maxIterations: 'Iterasi Maks',
      configureModel: 'Mengonfigurasi Model',
      model: 'pola',
      strategyNotSet: 'Strategi agen tidak ditetapkan',
      toolbox: 'Toolbox',
      tools: 'Perkakas',
      pluginNotInstalledDesc: 'Plugin ini diinstal dari GitHub. Silakan buka Plugins untuk menginstal ulang',
      learnMore: 'Pelajari lebih lanjut',
      notAuthorized: 'Tidak Berwenang',
      strategyNotFoundDescAndSwitchVersion: 'Versi plugin yang diinstal tidak menyediakan strategi ini. Klik untuk beralih versi.',
      modelNotInstallTooltip: 'Model ini tidak dipasang',
      pluginNotFoundDesc: 'Plugin ini diinstal dari GitHub. Silakan buka Plugins untuk menginstal ulang',
      modelNotSelected: 'Model tidak dipilih',
      unsupportedStrategy: 'Strategi yang tidak didukung',
      pluginNotInstalled: 'Plugin ini tidak diinstal',
      clickToViewParameterSchema: 'Klik untuk melihat skema parameter',
      linkToPlugin: 'Tautan ke Plugin',
      parameterSchema: 'Skema Parameter',
      strategyNotFoundDesc: 'Versi plugin yang diinstal tidak menyediakan strategi ini.',
    },
    dataSource: {
      add: 'Menambahkan sumber data',
      supportedFileFormatsPlaceholder: 'Ekstensi file, e.g. doc',
      supportedFileFormats: 'Format file yang didukung',
    },
    knowledgeBase: {
      chunkStructureTip: {
        learnMore: 'Pelajari lebih lanjut',
        title: 'Silakan pilih struktur potongan',
        message: 'Basis Pengetahuan Dify mendukung tiga struktur pemotongan: Umum, Induk-anak, dan Tanya Jawab. Setiap basis pengetahuan hanya dapat memiliki satu struktur. Output dari simpul sebelumnya harus selaras dengan struktur potongan yang dipilih. Perhatikan bahwa pilihan struktur chunking memengaruhi metode indeks yang tersedia.',
      },
      chooseChunkStructure: 'Pilih struktur potongan',
      aboutRetrieval: 'tentang metode pengambilan.',
      chunkIsRequired: 'Struktur potongan diperlukan',
      changeChunkStructure: 'Ubah Struktur Potongan',
      retrievalSettingIsRequired: 'Pengaturan pengambilan diperlukan',
      indexMethodIsRequired: 'Metode indeks diperlukan',
      chunkStructure: 'Struktur Potongan',
      chunksInput: 'Potongan',
      chunksInputTip: 'Variabel input dari node basis pengetahuan adalah Chunks. Tipe variabel adalah objek dengan Skema JSON tertentu yang harus konsisten dengan struktur chunk yang dipilih.',
    },
  },
  tracing: {},
  versionHistory: {
    filter: {
      empty: 'Tidak ada riwayat versi yang cocok ditemukan',
      onlyYours: 'Hanya milik Anda',
      reset: 'Atur Ulang Filter',
      onlyShowNamedVersions: 'Hanya tampilkan versi bernama',
      all: 'Semua',
    },
    editField: {
      releaseNotes: 'Catatan Rilis',
      title: 'Titel',
    },
    action: {
      copyIdSuccess: 'ID disalin ke clipboard',
      deleteFailure: 'Gagal menghapus versi',
      updateSuccess: 'Versi diperbarui',
      updateFailure: 'Gagal memperbarui versi',
      restoreSuccess: 'Versi dipulihkan',
      deleteSuccess: 'Versi dihapus',
      restoreFailure: 'Gagal memulihkan versi',
    },
    copyId: 'Salin ID',
    latest: 'Terbaru',
    nameThisVersion: 'Beri nama versi ini',
    restorationTip: 'Setelah pemulihan versi, draf saat ini akan ditimpa.',
    releaseNotesPlaceholder: 'Menjelaskan apa yang berubah',
    deletionTip: 'Penghapusan tidak dapat diubah, harap konfirmasi.',
    currentDraft: 'Draf Saat Ini',
    editVersionInfo: 'Mengedit info versi',
    title: 'Versi',
    defaultName: 'Versi Tanpa Judul',
  },
  debug: {
    noData: {
      description: 'Hasil putaran terakhir akan ditampilkan di sini',
      runThisNode: 'Jalankan simpul ini',
    },
    variableInspect: {
      trigger: {
        stop: 'Berhenti lari',
        cached: 'Melihat variabel yang di-cache',
        running: 'Status berjalan caching',
        normal: 'Inspeksi Variabel',
        clear: 'Jelas',
      },
      systemNode: 'Sistem',
      chatNode: 'Percakapan',
      clearAll: 'Setel ulang semua',
      edited: 'Diedit',
      envNode: 'Lingkungan',
      title: 'Inspeksi Variabel',
      clearNode: 'Hapus variabel cache',
      view: 'Lihat log',
      emptyLink: 'Pelajari lebih lanjut',
      reset: 'Atur ulang ke nilai eksekusi terakhir',
      resetConversationVar: 'Mengatur ulang variabel percakapan ke nilai default',
      emptyTip: 'Setelah melangkah melalui simpul di kanvas atau menjalankan simpul langkah demi langkah, Anda dapat melihat nilai variabel simpul saat ini di Inspeksi Variabel',
      export: 'ekspor',
      largeDataNoExport: 'Data besar - hanya pratinjau sebagian',
      exportToolTip: 'Ekspor Variabel sebagai File',
      largeData: 'Data besar, pratinjau baca-saja. Ekspor untuk melihat semua.',
    },
    relations: {
      noDependents: 'Tidak ada tanggungan',
      dependentsDescription: 'Node yang mengandalkan node ini',
      noDependencies: 'Tidak ada dependensi',
      dependencies: 'Dependensi',
      dependenciesDescription: 'Node yang diandalkan oleh node ini',
      dependents: 'Tanggungan',
    },
    settingsTab: 'Pengaturan',
    copyLastRunError: 'Gagal menyalin input eksekusi terakhir',
    copyLastRun: 'Salin Eksekusi Terakhir',
    noMatchingInputsFound: 'Tidak ada input yang cocok yang ditemukan dari eksekusi terakhir',
    lastRunTab: 'Lari Terakhir',
    relationsTab: 'Hubungan',
    lastOutput: 'Keluaran Terakhir',
    noLastRunFound: 'Tidak ada eksekusi sebelumnya ditemukan',
  },
  sidebar: {
    exportWarning: 'Ekspor Versi Tersimpan Saat Ini',
    exportWarningDesc: 'Ini akan mengekspor versi terkini dari alur kerja Anda yang telah disimpan. Jika Anda memiliki perubahan yang belum disimpan di editor, harap simpan terlebih dahulu dengan menggunakan opsi ekspor di kanvas alur kerja.',
  },
}

export default translation
