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.
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.
{
"nav_home": "Home",
"nav_pricing": "Pricing",
"hero_title": "Grow your audience globally",
"hero_cta": "Get started for free",
"footer_rights": "All rights reserved."
}{
"nav_home": "Accueil",
"nav_pricing": "Tarifs",
"hero_title": "Développez votre audience mondiale",
"hero_cta": "Commencer gratuitement",
"footer_rights": "Tous droits réservés."
}{
"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"
}
}{
"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"
}
}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
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.
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.
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.
Panduan terkait
Terjemahkan file locale Anda dalam hitungan detik.
Tempel JSON Anda, pilih bahasa Anda, dapatkan kembali file locale valid untuk setiap bahasa target.
Mulai terjemahkan gratisTempel JSON locale Anda dan lihat outputnya — gratis, tanpa perlu akun.