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
