Flutter ARB dosyaları için eksik anahtar kontrol aracı

.arb dosyalarınızı bırakın: araç her dili şablonla karşılaştırır ve eksik anahtarları, fazla anahtarları, boş değerleri ve artık uyuşmayan placeholder'ları listeler. Araç ücretsizdir, kayıt istemez ve dosyalarınız tarayıcınızdan çıkmaz.

ARB dosyalarınızı karşılaştırın

Ya da iki dosyanın içeriğini yapıştırın

Tarayıcınızda karşılaştırılır: hiçbir dosya yüklenmez.

Her dosyayı elle düzenlemeden düzeltin

LocalePilot, tüm yerelleştirme klasörünüzü açan bir masaüstü uygulamasıdır: eksik anahtarları bulur, placeholder'ları kontrol eder, isterseniz yerel yapay zekâ ile çevirir, ardından yedek alarak dışa aktarır. macOS sürümü son aşamada; çıkıştan haberdar olmak için e-posta adresinizi bırakın.

Kontrol aracı neye bakar

  • Eksik anahtarlar: şablonda var ama bir dilde yok. Uygulama yine derlenir, ama kullanıcılarınız kendi dilleri yerine şablon dilindeki metni görür.
  • Fazla anahtarlar: bir çeviride var ama artık şablonda yok; çoğunlukla kaldırılmış bir özellikten kalanlar.
  • Boş değerler: anahtar var ama çevirisi boş; basit bir anahtar kontrolü bunu gözden kaçırır.
  • Placeholder uyumsuzlukları: {name} placeholder'ının {nom} olması ya da tamamen düşmesi. ICU plural ve select içindeki placeholder'lar da okunur.

@ ile başlayan anahtarlar (meta veriler ve @@locale) yok sayılır. Referans dosya, l10n.yaml içindeki template-arb-file ile belirlenen dosyadır (genellikle app_en.arb). Araç bu dosyayı kendisi bulmaya çalışır, isterseniz başka bir dosya seçebilirsiniz.

Bir Flutter uygulamasında eksik anahtarları bulmak

  1. arb-dir klasörünüzdeki dosyaları toplayın (varsayılan olarak lib/l10n).
  2. Şablon dahil hepsini tek seferde bırakın.
  3. Sorunlarını görmek için her dili açın, ardından eksik anahtarları ARB formatında kopyalayın: kopyalanan anahtarlar şablon metnini içerir ve çeviriye hazırdır.

Her build'de otomatik kontrol için flutter gen-l10n komutunun untranslated-messages-file seçeneği ve küçük bir CI betiği ARB dosyalarında eksik anahtarları bulma rehberinde anlatılıyor. ICU placeholder hataları çoğullar ve placeholder'lar rehberinde açıklanıyor.

Kontrol aracının sınırları

Araç anahtarları ve placeholder adlarını karşılaştırır: tam ICU sözdizimini doğrulamaz (bu flutter gen-l10n'in işidir), çeviri kalitesini değerlendirmez ve dosyalarınızı asla değiştirmez. Projenin tamamını içe aktarmak, çevirmek ve yedek alarak dışa aktarmak için LocalePilot gibi bir yerelleştirme editörü gerekir.

Sık sorulan sorular

ARB dosyalarım bir sunucuya yükleniyor mu?

Hayır. Karşılaştırma tarayıcınızda yapılır; ne dosyalarınız ne de anahtarlarınız bir yere gönderilir. Bunu geliştirici araçlarınızın Network sekmesinden doğrulayabilirsiniz.

Eksik anahtarları bulmak için referans hangi dosya?

Şablon dosyası, yani l10n.yaml içindeki template-arb-file ayarının gösterdiği dosya (çoğunlukla app_en.arb). Araç onu @@locale alanından veya dosya adından seçer; başka bir dosya da seçebilirsiniz.

Araç dosyalarımı değiştirir mi?

Hayır, yalnızca okur. Tek yaptığı, eksik anahtarları çevirebilmeniz için şablon metniyle birlikte ARB formatında kopyalamanızı sağlamaktır.

Flutter eksik çevirileri nasıl bildirir?

l10n.yaml içindeki untranslated-messages-file seçeneğiyle flutter gen-l10n, her dilde eksik olan şablon anahtarlarını bir JSON dosyasına yazar. İlgili rehber bu seçeneği ve CI için bir karşılaştırma betiğini anlatır.

ICU plural ve select destekleniyor mu?

Placeholder'lar için evet: plural veya select dallarının içindekiler de şablonla karşılaştırılır. Araç ICU sözdiziminin kendisini doğrulamaz.

LocalePilot'tan farkı ne?

Bu araç yapıştırdığınız ya da bıraktığınız dosyaları kaydetmeden kontrol eder. LocalePilot ise macOS sürümü son aşamada olan bir masaüstü uygulamasıdır: projenin tamamını açar, gözden geçirmenizi sağlar, yerel veya bulut yapay zekâ ile çevirir ve yedek alarak dışa aktarır.

Çıkıştan haberdar olun

LocalePilot son aşamada. Çıktığında haber almak için e-posta adresinizi bırakın.

  • macOS 12 veya üstü · Ollama ya da LM Studio isteğe bağlı
  • Uygulama arayüzü İngilizce, Fransızca, İspanyolca, İtalyanca ve Portekizce.