JSON çevirisi

Anahtarlarınıza dokunmadan JSON yerel dosyalarını çevirin.

Anahtarlar anahtar olarak kalır. İç içe geçme bozulmaz. Yalnızca metin değerleri çevrilir — ve sadece metin değerleri. Diğer tüm özellik türleri gönderildiği gibi geri gelir.

Anahtarlar
her zaman korunur
İç içe
nesneler özyinelemeli işlenir
36
istek başına çıktı dili
100K
aylık ücretsiz token

Standart çeviri araçları JSON'u anlayamaz.

Genel çeviri API'leri JSON'unuzu bir metin duvarı olarak görür. Anahtar isimlerini değerlerle birlikte çevirirler. İç içe geçmiş nesneleri düzleştirirler. Çevrilmemesi gereken metinleri birleştirirler. Geri dönen yapı olarak bozuk JSON, kullanılmadan önce elle düzeltilmelidir. Üretim uygulaması için yerel dosyalarınızı yönetiyorsanız, standart bir çeviri API'sine vermenin kurtardığından daha fazla iş yarattığını bilirsiniz.

Sorun sadece anahtar isimleriyle sınırlı değildir. Standart çeviri API'leri ayrıca değişken yerleştirmelerini bozar. "Hello {name}, you have {count} messages" gibi bir metin, değişken isimleri çevrilmiş olarak döner — "Hola {nombre}, tienes {cuenta} mensajes" — bu da orijinal değişken ismini bekleyen her çalışma zamanını bozar. Saatlerce hata ayıklama gerekir.

Çok dilli yerel dosyaları yöneten ekipler için bu teorik bir endişe değildir. Zaten yaşanmıştır. Soru, her seferinde manuel onarım sürecinin ne kadar sürdüğüdür.

PolyLingo çeviri öncesi JSON'unuzu tarar.

PolyLingo JSON yapısını anlar. Nesnenizi özyinelemeli olarak tarar, çevrilebilir metin içeren metin değerlerini belirler ve yalnızca bu değerleri çeviri modeline gönderir. Anahtar isimleri asla değiştirilmez. Sayılar, booleanlar, null değerler ve metin olmayan türler değişmeden geçer. Çıktı, yapısı tamamen aynı olan geçerli JSON'dur — sadece metin değerleri çevrilmiştir.

Yerleştirme değişkenleri — {name}, {{count}}, %s ve benzeri kalıplar — çeviri sürecinde tanımlanır ve korunur. Çeviri öncesi yer tutucularla değiştirilir, çıktı orijinal biçiminde geri konur. Çeviri modeli bunları çevrilebilir metin olarak görmez.

Diziler doğru şekilde işlenir: her metin öğesi çevrilir, sayısal indeksler ve dizi yapısı değişmez. Hem metin hem metin olmayan (sayılar, nesneler) içeren karışık diziler doğru şekilde taranır, metin olmayan türler değişmeden geçer.

Girdi — düz JSON yerel dosyası (İngilizce)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
Çıktı — Fransızca (anahtarlar aynı)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
Girdi — iç içe JSON yerel dosyası (İngilizce)
{
  "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"
  }
}
Çıktı — İspanyolca (yapı bozulmamış)
{
  "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"
  }
}
API isteği — tek çağrıda 5 dile çeviri
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\"}",
#     ...
#   }
# }

PolyLingo her JSON çevirisi için garanti eder

  • Anahtar isimleri asla değiştirilmez
  • İç içe nesneler ve diziler özyinelemeli olarak işlenir
  • Sayılar, booleanlar, null değerler değişmeden geçer
  • Tek istekte 36 dil
  • Otomatik JSON olarak algılanır — format bayrağı gerekmez
  • Düz ve derin iç içe geçmiş yerel dosyalarla çalışır
  • Yerleştirme değişkenleri ({name}, {{count}}, %s) tam olarak korunur
  • Çıktı geçerli JSON'dur — değişiklik yapmadan ayrıştırılabilir

Çevrilmiş yerel dosyalar için üç adım

1

JSON'unuzu yapıştırın veya API'yi çağırın

Tek seferlik çeviriler için kodsuz çevirmeni kullanın: JSON'unuzu yapıştırın, dilleri seçin, çevrilmiş dosyaları indirin. Otomasyon için POST /v1/translate çağrısı yapın, JSON içeriğiniz ve hedef dil kodlarınızla.

2

Tüm dilleri tek yanıtta alın

API, her hedef dil için tam çevrilmiş yerel dosyayı içeren bir JSON nesnesi döner. Dil başına çağrı yok. Döngü yok. Tüm çıktılar için tek istek.

3

Çıktıları messages dizinine koyun

Her çevrilmiş dosyayı messages/es.json, messages/fr.json, messages/de.json gibi i18n kütüphanenizin beklediği yere yazın. Yapı kaynak dosyanızla tamamen aynı, ek işleme gerek yok.

JSON çevirisinin en çok önemli olduğu yerler

🌐

next-intl veya i18next ile uygulama i18n

messages/*.json veya locales/*.json dosyalarınızı doğrudan çevirin. Anahtarlar bozulmaz, iç içe geçme korunur, yerleştirme değişkenleri değişmeden geçer. Dosyaları messages dizinine koyup dağıtın.

🗄️

CMS içerik dışa aktarımları

Headless CMS platformları genellikle yapılandırılmış içeriği JSON olarak dışa aktarır. PolyLingo metin değerlerini çevirirken alan isimlerini, iç içe içerik türlerini ve tarih, boolean, kimlik gibi metin olmayan değerleri korur.

⚙️

API yanıtları ve yapılandırma dosyaları

Çevrilebilir metin değerleri içeren her JSON yapısı — ürün açıklamaları, bildirim şablonları, API üzerinden sunulan uygulama içi metinler — uygulamanızın bağımlı olduğu yapıyı değiştirmeden çevrilebilir.

JSON çevirisi hakkında sık sorulan sorular

{name} veya {{count}} gibi yerleştirme değişkenleri korunur mu?

Evet. PolyLingo {variable}, {{variable}}, %(variable)s ve %s gibi yaygın yerleştirme kalıplarını çeviri öncesi tanımlar. Bunlar sabit yer tutucularla değiştirilir, çevreleyen metin çevrilir ve orijinal değişken isimleri çıktı içinde geri konur. Çeviri modeli değişken isimlerini çevrilebilir içerik olarak görmez.

Metin olmayan değerler — sayılar, booleanlar, null — ne olur?

Metin olmayan değerler tamamen değişmeden geçer. PolyLingo yalnızca doğal dil metni içeren metin değerlerini çevirir. Sayılar, booleanlar, null değerler ve metin olmayan diziler kaynakta göründüğü gibi korunur.

PolyLingo derin iç içe JSON yapılarıyla başa çıkabilir mi?

Evet. PolyLingo nesneleri herhangi bir iç içe derinlikte özyinelemeli olarak tarar. Çeviri yapı boyunca tüm metin değerlerine uygulanır, ne kadar derin olursa olsun.

Bazı anahtarlar çevrilmemesi gereken içerik (slug veya kod gibi) içeriyorsa ne olur?

PolyLingo varsayılan olarak tüm metin değerlerini çevirir. Çevrilmemesi gereken metin alanlarınız varsa — sluglar, dil kodları, teknik tanımlayıcılar — önerilen yöntem bunları gönderdiğiniz JSON'dan çıkarmak veya yakında gelecek olan açık format parametresi ile atlanacak alanları belirtmektir. Çoğu yerel dosyada tüm metin değerleri çevrilmek içindir.

JSON5 veya JSONC (yorumlu JSON) ile çalışır mı?

Şu anda PolyLingo standart JSON'u işler. JSON5 ve JSONC (yorumlu) gönderilmeden önce yorumlar kaldırılarak standart JSON'a dönüştürülmelidir. Bu, derleme süreçlerinde yaygın bir adımdır ve çok az ek yük getirir.

Tek istekte kaç dil hedefleyebilirim?

Tek istekte desteklenen 36 dile kadar. Yanıt, her dil kodu için bir çevrilmiş JSON nesnesi içerir. Oran limitleri plana göre değişir — ücretsiz katman dakikada 10 istek, Growth ve Scale planları dakikada 200–600 istek izin verir.

Yerel dosyalarınızı saniyeler içinde çevirin.

JSON'unuzu yapıştırın, dillerinizi seçin, her hedef dil için geçerli yerel dosyalar alın.

Ücretsiz çeviriye başlayın

Yerel JSON'unuzu yapıştırın ve çıktıyı görün — ücretsiz, hesap gerekmez.

Anahtarlarınıza dokunmadan JSON yerel dosyalarını çevirin — PolyLingo | PolyLingo