Terjemahan JSON

Terjemahkan file locale JSON tanpa mengubah kunci Anda.

Kunci tetap kunci. Penanaman tetap utuh. Hanya nilai string yang diterjemahkan — dan hanya nilai string. Semua tipe properti lain dikembalikan persis seperti dikirim.

Kunci
selalu dipertahankan
Bertingkat
objek ditangani secara rekursif
36
bahasa output per permintaan
100K
token gratis / bulan

Alat terjemahan standar tidak memahami JSON.

API terjemahan umum melihat JSON Anda sebagai dinding teks. Mereka menerjemahkan nama kunci bersama dengan nilai. Mereka meratakan objek yang ditanam. Mereka menggabungkan string yang seharusnya tidak digabungkan. Yang kembali adalah JSON yang rusak secara struktural yang memerlukan koreksi manual sebelum dapat digunakan. Jika Anda memelihara file locale untuk aplikasi produksi, Anda tahu bahwa memasukkan file tersebut ke API terjemahan standar justru menciptakan lebih banyak pekerjaan daripada yang dihemat.

Masalahnya lebih dalam dari sekadar nama kunci. API terjemahan standar juga merusak variabel interpolasi. String seperti "Hello {name}, you have {count} messages" kembali dengan nama variabel diterjemahkan — "Hola {nombre}, tienes {cuenta} mensajes" — yang merusak setiap runtime yang mengharapkan nama variabel asli. Berjam-jam debugging pun terjadi.

Bagi tim yang memelihara file locale dalam banyak bahasa untuk aplikasi produksi, ini bukan masalah teoretis. Ini sudah pernah terjadi. Pertanyaannya adalah berapa lama proses perbaikan manual setiap kali terjadi.

PolyLingo menelusuri JSON Anda sebelum menerjemahkan.

PolyLingo memahami struktur JSON. Ia menelusuri objek Anda secara rekursif, mengidentifikasi nilai string yang berisi teks yang dapat diterjemahkan, dan hanya mengirim nilai tersebut ke model terjemahan. Nama kunci tidak pernah diubah. Angka, boolean, nilai null, dan tipe non-string diteruskan tanpa perubahan. Output adalah JSON valid dengan struktur identik — hanya dengan nilai string yang diterjemahkan.

Variabel interpolasi — {name}, {{count}}, %s, dan pola serupa — diidentifikasi dan dipertahankan sepanjang proses terjemahan. Mereka diganti dengan placeholder sebelum terjemahan, dan dikembalikan dalam bentuk asli di output. Model terjemahan tidak pernah melihatnya sebagai teks yang dapat diterjemahkan.

Array ditangani dengan benar: setiap elemen string diterjemahkan, sementara indeks numerik dan struktur array tidak berubah. Array campuran yang berisi string dan non-string (angka, objek) ditelusuri dengan benar dan tipe non-string diteruskan tanpa perubahan.

Input — locale JSON datar (Inggris)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
Output — Prancis (kunci identik)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
Input — locale JSON bertingkat (Inggris)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
Output — Spanyol (struktur utuh)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
Permintaan API — terjemahkan ke 5 bahasa dalam satu panggilan
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

Apa yang dijamin PolyLingo untuk setiap terjemahan JSON

  • Nama kunci tidak pernah diubah
  • Objek dan array bertingkat ditangani secara rekursif
  • Angka, boolean, nilai null diteruskan tanpa perubahan
  • Semua 36 bahasa dalam satu permintaan
  • Terdeteksi otomatis sebagai JSON — tanpa perlu flag format
  • Bekerja dengan file locale datar dan bertingkat dalam
  • Variabel interpolasi ({name}, {{count}}, %s) dipertahankan persis
  • Output adalah JSON valid — dapat diurai tanpa modifikasi

Tiga langkah menuju file locale yang diterjemahkan

1

Tempel JSON Anda atau panggil API

Gunakan penerjemah tanpa kode untuk terjemahan sekali pakai: tempel JSON Anda, pilih bahasa, unduh file terjemahan. Untuk otomatisasi, panggil POST /v1/translate dengan konten JSON dan kode bahasa target Anda.

2

Terima semua bahasa dalam satu respons

API mengembalikan objek JSON dengan satu entri per bahasa target, masing-masing berisi file locale yang diterjemahkan sepenuhnya dengan struktur identik. Tidak ada panggilan per bahasa. Tidak ada pengulangan. Satu permintaan untuk semua output.

3

Letakkan output ke direktori pesan Anda

Tulis setiap file terjemahan ke messages/es.json, messages/fr.json, messages/de.json — atau di mana pun perpustakaan i18n Anda mengharapkannya. Struktur identik dengan file sumber Anda, jadi tidak perlu pemrosesan lebih lanjut.

Di mana terjemahan JSON paling penting

🌐

i18n aplikasi dengan next-intl atau i18next

Terjemahkan file messages/*.json atau locales/*.json Anda langsung. Kunci tetap utuh, penanaman dipertahankan, dan variabel interpolasi tetap tidak berubah. Letakkan file ke direktori pesan dan deploy.

🗄️

Ekspor konten CMS

Platform CMS headless sering mengekspor konten terstruktur sebagai JSON. PolyLingo menerjemahkan nilai string sambil mempertahankan nama bidang, tipe konten bertingkat, dan nilai non-string seperti tanggal, boolean, dan ID.

⚙️

Respons API dan file konfigurasi

Struktur JSON apa pun dengan nilai string yang dapat diterjemahkan — deskripsi produk, template notifikasi, teks dalam aplikasi yang disajikan via API — dapat diterjemahkan tanpa mengubah struktur yang diandalkan aplikasi Anda.

Pertanyaan yang sering diajukan tentang terjemahan JSON

Apakah variabel interpolasi seperti {name} atau {{count}} dipertahankan?

Ya. PolyLingo mengidentifikasi pola interpolasi umum termasuk {variable}, {{variable}}, %(variable)s, dan %s sebelum terjemahan. Ini diganti dengan placeholder stabil, teks di sekitarnya diterjemahkan, dan nama variabel asli dikembalikan di output. Model terjemahan tidak pernah melihat nama variabel sebagai konten yang dapat diterjemahkan.

Apa yang terjadi pada nilai non-string — angka, boolean, null?

Nilai non-string diteruskan sepenuhnya tanpa perubahan. PolyLingo hanya menerjemahkan nilai string yang berisi teks bahasa alami. Angka, boolean, nilai null, dan array non-string dipertahankan persis seperti di sumber.

Bisakah PolyLingo menangani struktur JSON bertingkat dalam?

Ya. PolyLingo menelusuri objek dengan kedalaman penanaman apa pun secara rekursif. Terjemahan berlaku untuk semua nilai string di seluruh struktur, tidak peduli seberapa dalam mereka ditanam.

Bagaimana jika beberapa kunci berisi konten yang tidak dapat diterjemahkan seperti slug atau kode?

PolyLingo menerjemahkan semua nilai string secara default. Jika Anda memiliki bidang string yang tidak boleh diterjemahkan — slug, kode bahasa, pengenal teknis — pendekatan yang disarankan adalah mengecualikannya dari JSON yang Anda kirim, atau menggunakan parameter format eksplisit dan menentukan bidang yang harus dilewati (segera hadir). Untuk sebagian besar file locale, semua nilai string memang dimaksudkan untuk diterjemahkan.

Apakah ini bekerja dengan JSON5 atau JSONC (JSON dengan komentar)?

Saat ini PolyLingo memproses JSON standar. JSON5 dan JSONC (dengan komentar) harus diproses terlebih dahulu untuk menghapus komentar dan mengonversi ke JSON standar sebelum dikirim. Ini adalah langkah umum dalam pipeline build dan menambah beban minimal.

Berapa banyak bahasa yang bisa saya targetkan dalam satu permintaan?

Hingga semua 36 bahasa yang didukung dalam satu permintaan. Respons berisi satu objek JSON terjemahan per kode bahasa. Batas laju bervariasi menurut paket — tier gratis mengizinkan 10 permintaan per menit, sementara paket Growth dan Scale mengizinkan 200–600 permintaan per menit.

Terjemahkan file locale Anda dalam hitungan detik.

Tempel JSON Anda, pilih bahasa Anda, dapatkan kembali file locale valid untuk setiap bahasa target.

Mulai terjemahkan gratis

Tempel JSON locale Anda dan lihat outputnya — gratis, tanpa perlu akun.

Terjemahkan file locale JSON tanpa mengubah kunci Anda — PolyLingo | PolyLingo