Aracın karşılaştırdıkları
- Apple formatları:
%@, %1$@, %d, %ld, %lld, %.2f, %u, %i ve %s, konum konum. %% metindir.
- Flutter ICU placeholder'ları:
{name}, plural ve select dallarının içi dahil.
%e veya %x gibi nadir dönüşümler, "20%en" gibi bir metin hata sanılmasın diye bilerek yok sayılır.
En sık yapılan hatalar
- Düşürülen bir belirteç: uygulama çökmez, ama ad veya sayı ekranda görünmez.
- Değişen bir tür:
%lld yerine %@ yazılırsa tam sayı nesne olarak okunur ve uygulama çökebilir.
- Konum belirtmeden değişen sıra: yeniden sıralamak için her argümanı numaralandırın (
%1$@, %2$@); numaralı ve numarasızı karıştırmak tanımsız davranıştır.
- Fransızcada "20 % de remise": yüzde işaretinden önceki boşluk yüzünden
% d bir belirteç olarak okunur. İşareti ikileyin: %%. Türkçede yüzde işareti sayıdan önce gelir ama kural aynıdır: %%%lld.
- Yeniden adlandırılan bir ICU placeholder'ı:
{count} ifadesinin {nombre} olması, Flutter'da tüm locale'lerin API'sini değiştirir.
Bu durumlar iOS format belirteçleri rehberinde ve ICU placeholder'ları rehberinde ayrıntılı olarak anlatılıyor.
Aracın sınırları
Araç anlamı değerlendirmez, yalnızca placeholder'ları karşılaştırır: argümanlar numaralandırılmamışken yer değiştiren iki %@ belirtecini ya da kötü çevrilmiş bir cümleyi algılamaz. ICU kesme işareti kaçışını (Flutter'ın use-escaping seçeneği) yorumlamaz: '{' bir süslü parantez olarak okunur. Bir seferde tek bir metni karşılaştırır; dosyanın tamamı için ARB eksik anahtar kontrol aracını ya da her anahtarı kontrol eden bir düzenleyici kullanın.