iOS Localization(Yerelleştirme) Parametreler

Swift Localization

Merhaba arkadaşlar,  "iOS Localization(Yerelleştirme)" yazımdan sonra genel olarak "parametreli durumlarda yerelleştirme nasıl yapılıyor?" sorusunu aldım. Aşağıda küçük bir örnek ile bu soruyu cevaplıyorum.

Haydi başlayalım!


let text = "Atakan"
let message = NSLocalizedString("message_text", comment:"") 

let resultMessage = String.localizedStringWithFormat(message, text, "KURT", 1988)

print(resultMessage)  //  Atakan, bu benim adım ve soyadım KURT. 1988 doğumluyum.

Localizable.string
"message_text" = " %1@, bu benim adım ve soyadım %2@. %3d doğumluyum. "

text sabitimize atadığımız değeri ve Localizable.string dosyamızdaki yerel dildeki parametreli cümlemizi String.localizedStringWithFormat ile formatlayarak cümleye parametreleri yerleştirmiş oluyoruz.

Burada dikkat edilmesi gereken durum sıradır. Çünkü Formatlamaya yazdığımız her parametre soldan başlayan sıra değeri alır ve bu değer 1 ile başlar. Format kısmındaki 0. değer message değeri olup cümlenin kendisidir. Sağındaki ilk parametre string türünde değer olup %1 değeri olarak kabul edilir ve türünü belirten @ ekini alır.

%1@ ve %2@: String verileri formattaki sırasına göre değerlendirir.
%3d: Sayısal (int) değerleri formattaki sırasına göre değerlendirir.

Daha fazla belirteç için, Apple Dökümanlar

Formatlamada bulunmayan bir değeri Localizable cümlemize eklemeye çalıştığımızda,
fazladan konulan %5@ için, (null) ve fazladan konulan %4d için, 0 değerleri yerleşecektir. Bu konuda en önemli nokta formatta yapılan sıralama ile Localizable.string'te değerleri çağırma sıramızdaki türleri aynı belirtmektir.

Diğer önemli noktada;
"message_text" = " %1@, bu benim adım. %3d doğumluyum. "

Burada soyadının formattan değeri çağrılmayıp sıra atlanarak devam edilmesinde de hata alacaksınızdır. Yani %1, %2, %3... olarak sıralı çağırmak gerekmektedir.

Soru ve önerilerinizi yorum kısmına yazabilirsiniz.


Hiç yorum yok:

Yorum Gönder

Yorumunuz için teşekkür ederim.