Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Sürüm Geçmişi
- "next-intl / react-intl tek dosya düzenleri için splitKeys seçeneği eklendi (üst düzey ad alanı anahtarı başına bir sözlük)"v9.0.021.06.2026
- "ICU ve i18next format desteği eklendi"v7.5.013.12.2025
- "İlk JSON Senkronizasyon Eklentisi dokümantasyonu"v6.1.605.10.2025
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinBu dokümantasyonu geliştirmek için bir fikriniz varsa, lütfen GitHub'da bir çekme isteği göndererek katkıda bulunmaktan çekinmeyin.
Dokümantasyon için GitHub bağlantısıBelge Markdown'ını panoya kopyala
JSON Senkronizasyonu (i18n köprüleri) - ICU / i18next desteği ile JSON Senkronizasyonu
Intlayer'ı mevcut i18n yapınıza bir eklenti olarak kullanın. Bu eklenti, JSON mesajlarınızı Intlayer sözlükleriyle senkronize tutar, böylece:
- i18next, next-intl, react-intl, vue-i18n, next-translate, nuxt-i18n, Solid-i18next, svelte-i18n vb. kullanmaya devam edebilirsiniz.
- Uygulamanızı yeniden yapılandırmadan Intlayer (CLI, CI, sağlayıcılar, CMS) ile mesajlarınızı yönetip çevirebilirsiniz.
- Her ekosistemi hedefleyen eğitimler ve SEO içerikleri sunabilir, aynı zamanda Intlayer'ı JSON yönetim katmanı olarak önerebilirsiniz.
Notlar ve mevcut kapsam:
- CMS'ye dışa aktarma, çeviriler ve klasik metinler için çalışır.
- Henüz eklemeler, çoğullar/ICU veya diğer kütüphanelerin gelişmiş çalışma zamanı özellikleri desteklenmemektedir.
- Görsel editör, üçüncü taraf i18n çıktıları için henüz desteklenmemektedir.
Bu eklenti ne zaman kullanılmalı
- Zaten bir i18n kütüphanesi kullanıyor ve mesajları JSON dosyalarında saklıyorsunuz.
- Rendering çalışma zamanınızı değiştirmeden AI destekli doldurma, CI'da test ve içerik operasyonları yapmak istiyorsunuz.
Kurulum
Kodu panoya kopyala
Plugins
Bu paket iki eklenti sağlar:
loadJSON: JSON dosyalarını Intlayer sözlüklerine yükler.- Bu eklenti, bir kaynaktan JSON dosyalarını yüklemek için kullanılır ve Intlayer sözlüklerine yüklenecektir. Tüm kod tabanını tarayabilir ve belirli JSON dosyalarını arayabilir.
Bu eklenti şu durumlarda kullanılabilir:
- JSON'larınızın belirli bir konumda yüklenmesini zorunlu kılan bir i18n kütüphanesi kullanıyorsanız (örn:
next-intl,i18next,react-intl,vue-i18n, vb.), ancak içerik bildirimlerinizi kod tabanınızda istediğiniz yere yerleştirmek istiyorsanız. - Mesajlarınızı uzak bir kaynaktan (örn: bir CMS, bir API, vb.) almak ve mesajlarınızı JSON dosyalarında saklamak istiyorsanız da kullanılabilir.
- JSON'larınızın belirli bir konumda yüklenmesini zorunlu kılan bir i18n kütüphanesi kullanıyorsanız (örn:
Arka planda, bu eklenti tüm kod tabanını tarayacak ve belirli JSON dosyalarını arayacak ve bunları Intlayer sözlüklerine yükleyecektir. Bu eklentinin çıktıyı ve çevirileri JSON dosyalarına geri yazmayacağını unutmayın.
- Bu eklenti, bir kaynaktan JSON dosyalarını yüklemek için kullanılır ve Intlayer sözlüklerine yüklenecektir. Tüm kod tabanını tarayabilir ve belirli JSON dosyalarını arayabilir.
Bu eklenti şu durumlarda kullanılabilir:
syncJSON: JSON dosyalarını Intlayer sözlükleriyle senkronize eder.- Bu eklenti, JSON dosyalarını Intlayer sözlükleriyle senkronize etmek için kullanılır. Verilen konumu tarayabilir ve belirli JSON dosyaları için desene uyan JSON'u yükleyebilir. Bu eklenti, başka bir i18n kütüphanesi kullanırken Intlayer'ın faydalarından yararlanmak istiyorsanız kullanışlıdır.
Her iki eklentiyi de kullanma
Kodu panoya kopyala
syncJSON plugin
Hızlı başlangıç
Eklentiyi intlayer.config.ts dosyanıza ekleyin ve mevcut JSON yapınıza işaret edin.
Kodu panoya kopyala
Alternatif: her yerel için tek dosya (i18next/react-intl yapılandırmalarında yaygın):
Kodu panoya kopyala
Nasıl çalışır
- Okuma: eklenti,
sourceyapıcınızdan JSON dosyalarını keşfeder ve bunları Intlayer sözlükleri olarak yükler. - Yazma: derlemeler ve doldurmalar sonrası, yerelleştirilmiş JSON'u aynı yollara yazar (biçimlendirme sorunlarını önlemek için sonuna yeni satır ekleyerek).
- Otomatik doldurma: eklenti, her sözlük için bir
autoFillyolu belirtir.intlayer fillkomutunu çalıştırmak, JSON dosyalarınızdaki yalnızca eksik çevirileri varsayılan olarak günceller.
API:
Kodu panoya kopyala
format ('intlayer' | 'icu' | 'i18next')
JSON dosyalarını senkronize ederken sözlük içeriği için kullanılacak formatlayıcıyı belirtir. Bu, Intlayer runtime ile uyumlu farklı mesaj formatlama sözdizimlerini kullanmanıza olanak tanır.
undefined: Hiçbir formatlayıcı kullanılmayacak, JSON içeriği olduğu gibi kullanılacak.'intlayer': Varsayılan Intlayer formatlayıcısı (varsayılan).'icu': ICU mesaj formatlamasını kullanır (react-intl, vue-i18n gibi kütüphanelerle uyumlu).'i18next': i18next mesaj formatlamasını kullanır (i18next, next-i18next, Solid-i18next ile uyumlu).
Bir formatlayıcı kullanmanın JSON içeriğinizi girdi ve çıktıda dönüştüreceğini unutmayın. ICU çoğulları gibi karmaşık JSON kuralları için, ayrıştırma girdi ve çıktı arasında 1'e 1 eşleme garanti edemeyebilir. Intlayer runtime kullanmıyorsanız, bir formatlayıcı ayarlamamayı tercih edebilirsiniz.
Örnek:
Kodu panoya kopyala
splitKeys (boolean)
İlk düzey anahtarları ad alanları olan tek bir JSON dosyasının, tüm dosyayı tutan tek bir sözlük yerine, üst düzey anahtar başına bir sözlük haline gelip gelmeyeceğini kontrol eder.
Bu, next-intl ve react-intl gibi kütüphanelerin ad alanı modeline uyar; burada bir messages/{locale}.json dosyası, ilk düzey anahtarlarıyla birden çok ad alanını gruplandırır ve her biri bağımsız olarak ele alınır (örneğin, useTranslations('Hero') Hero sözlüğüne çözümlenir).
undefined(varsayılan): otomatik algılanır —sourcedeseninde{key}segmenti yoksa dosya bölünür (bir dosya her ad alanını tutar), aksi takdirde tek bir sözlük olarak kalır (anahtar başına bir dosya).true: her üst düzey anahtarı her zaman kendi sözlüğüne böler.false: asla bölmez; tüm dosya tek bir sözlük haline gelir.
Tek bir messages/{locale}.json dosyası verildiğinde:
Kodu panoya kopyala
Kodu panoya kopyala
Bu, üç sözlük (Hero, Nav ve About) üretir, böylece useTranslations('Hero') (next-intl) doğru şekilde çözümlenir. Geri yazma işleminde, tüm ad alanları aynı yerel başına dosyada yeniden birleştirilir.
sourceiçinde açık{key}segmentini koruduğunuzda (örneğin,./locales/${locale}/${key}.json), her dosya zaten bir ad alanıdır, bu nedenle bölme varsayılan olarak devre dışıdır.
Multiple JSON sources and priority
Farklı JSON kaynaklarını senkronize etmek için birden fazla syncJSON eklentisi ekleyebilirsiniz. Bu, projenizde birden fazla i18n kütüphanesi veya farklı JSON yapıları olduğunda faydalıdır.
Öncelik sistemi
Birden fazla eklenti aynı sözlük anahtarını hedeflediğinde, priority parametresi hangi eklentinin öncelikli olduğunu belirler:
- Daha yüksek öncelik numaraları, daha düşük olanlara karşı kazanır
.contentdosyalarının varsayılan önceliği0'dır- Eklentilerin varsayılan önceliği
0'dır - Aynı önceliğe sahip eklentiler, yapılandırmada göründükleri sırayla işlenir
Kodu panoya kopyala
Load JSON plugin
Hızlı başlangıç
Mevcut JSON dosyalarını Intlayer sözlükleri olarak almak için eklentiyi intlayer.config.ts dosyanıza ekleyin. Bu eklenti salt okunurdur (diske yazma yapmaz):
Kodu panoya kopyala
Alternatif: yerel başına düzen, yine salt okunur (yalnızca seçilen yerel yüklenir):
Kodu panoya kopyala
Nasıl çalışır
- Keşfet:
sourceyapıcınızdan bir glob oluşturur ve eşleşen JSON dosyalarını toplar. - Al: her JSON dosyasını sağlanan
localeile bir Intlayer sözlüğü olarak yükler. - Salt okunur: çıktı dosyalarını yazmaz veya biçimlendirmez; gidiş-dönüş senkronizasyonuna ihtiyacınız varsa
syncJSONkullanın. - Otomatik doldurmaya hazır:
filldeseni tanımlar, böyleceintlayer content filleksik anahtarları CLI aracılığıyla doldurabilir.
API
Kodu panoya kopyala
format ('intlayer' | 'icu' | 'i18next')
JSON dosyalarını yüklerken sözlük içeriği için kullanılacak formatlayıcıyı belirtir. Bu, çeşitli i18n kütüphaneleriyle uyumlu farklı mesaj formatlama sözdizimlerini kullanmanıza olanak tanır.
'intlayer': Varsayılan Intlayer formatlayıcısı (varsayılan).'icu': ICU mesaj formatlamasını kullanır (react-intl, vue-i18n gibi kütüphanelerle uyumlu).'i18next': i18next mesaj formatlamasını kullanır (i18next, next-i18next, Solid-i18next ile uyumlu).
Örnek:
Kodu panoya kopyala
splitKeys (boolean)
syncJSON ile aynı davranış: tek bir JSON dosyası, ilk düzey anahtarlarıyla birden çok ad alanını gruplandırdığında, her üst düzey anahtar kendi sözlüğü haline gelir.
undefined(varsayılan): otomatik algılanır —sourcedeseninde{key}segmenti yoksa bölünür, aksi takdirde tek bir sözlük olur.true/false: bölmeyi zorlar veya devre dışı bırakır.
Kodu panoya kopyala
Behavior and conventions
sourcemaskeniz bir yerel yer tutucusu içeriyorsa, yalnızca seçilenlocaleiçin dosyalar alınır.- Maskenizde
{key}segmenti yoksa, dosyanın her üst düzey anahtarı varsayılan olarak kendi sözlüğü haline gelir (bkz.splitKeys). Bunun yerine tüm dosyayı tek birindexsözlüğü olarak yüklemek içinsplitKeys: falseolarak ayarlayın. - Anahtarlar,
sourceyapıcınızdaki{key}yer tutucusunun yerine geçirilerek dosya yollarından türetilir. - Eklenti yalnızca keşfedilen dosyaları kullanır ve eksik yerelleri veya anahtarları uydurmaz.
fillyolu,source'unuzdan çıkarılır ve CLI aracılığıyla eksik değerleri güncellemek için kullanılır.
Conflict resolution
Aynı çeviri anahtarı birden fazla JSON kaynağında mevcutsa:
- En yüksek önceliğe sahip eklenti nihai değeri belirler
- Daha düşük öncelikli kaynaklar, eksik anahtarlar için yedek olarak kullanılır
- Bu, eski çevirileri korumanıza ve yeni yapılara kademeli olarak geçiş yapmanıza olanak tanır
CLI
Eşzamanlanmış JSON dosyaları diğer .content dosyaları gibi kabul edilecektir. Bu, tüm intlayer komutlarının eşzamanlanmış JSON dosyaları için de kullanılabilir olduğu anlamına gelir. Şunları içerir:
- Eksik çevirilerin olup olmadığını test etmek için
intlayer content test - Eşzamanlanmış JSON dosyalarını listelemek için
intlayer content list - Eksik çevirileri doldurmak için
intlayer content fill - Eşzamanlanmış JSON dosyalarını göndermek için
intlayer content push - Eşzamanlanmış JSON dosyalarını çekmek için
intlayer content pull
Daha fazla detay için Intlayer CLI sayfasına bakınız.
Sınırlamalar (mevcut)
- Üçüncü taraf kütüphaneler hedeflendiğinde ekleme veya çoğul/ICU desteği yoktur.
- Görsel editör henüz Intlayer dışı çalışma zamanları için mevcut değildir.
- Sadece JSON senkronizasyonu; JSON olmayan katalog formatları desteklenmemektedir.
Neden bu önemli
- Yerleşik i18n çözümlerini önerebilir ve Intlayer'ı bir eklenti olarak konumlandırabiliriz.
- JSON yönetimi için Intlayer öneren eğitimlerle onların SEO/anahtar kelimelerinden faydalanırız.
- Hedef kitlesini “yeni projeler”den “zaten i18n kullanan herhangi bir ekip”e genişletir.
