Mobil Programlama

iOS

Yerelleştirme

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Eğer uygulamanızı Türkiye dışındaki pazarlara da sunmak istiyorsanız uygulamanızda yer alan metinleri birden fazla dile çevirmeniz gerekebilir. Bunu kolayca gerçekleştirmek için iOS bize yerelleştirme (localization) denilen bir özellik sunar. Eğer bir uygulama yerelleştirme özelliğine sahipse, telefonun seçili dil seçeneğine göre çalıştır. Örneğin uygulamanız İngilizce ve Türkçe desteğe sahipse Türkçe dil seçeneği seçili telefonlarda Türkçe, İngilizce dil seçeneği seçili telefonlarda ise İngilizce görüntülenecektir. Uygulamanın desteklemediği dil seçeneklerinde ise uygulamada belirtilen öntanımlı dil dosyaları okunur.

Uygulamanızı başka bir dilde çalıştırabilmek için kod içerisinde kullandığınız her türlü uyarı mesajını koddan ayrı bir dosyada saklamanız gerekir. Localizable.strings adı verilen bu dosya uygulamanıza ait bütün metin değerlerini saklar ve uygulamanın çalıştığı cihazın dil seçeneğine göre ilgili dili kullanıcıya sunar.

Bir uygulamaya dil seçeneği eklemeden önce uygulamanızın hangi dilleri desteklediğini uygulama ayarları bölümünden seçmeniz gerekir. Aşağıdaki örnekte İngilizce ve Türkçe dilleri için bu desteği aktif hale getirdik.

 

Desteklenen dillerin seçilmesi

Bu işlemden sonra istediğimiz dosyaları yerelleştirme seçeneğine sahibiz. Öncelikle Localizable.strings dosyasına gelerek aşağıdaki değerleri girelim;

 

"AppName" = "Uygulamam";
"Hello" = "Merhaba";
"OK" = "Tamam";

 

 

"AppName" = "My Application";
"Hello" = "Hello";
"OK" = "OK";

 

Bu değerleri girdikten sonra kod içerisinde örneğin AppName anahtarı ile bir metin çağırdığımızda Türkçe dil seçeneği seçilmiş telefonlarda “Uygulamam” değeri, İngilizce dil seçeneği seçilmiş telefonlarda ise “My Application” değeri görüntülenecektir. Kod içerisinden Localizable.strings dosyasındaki değerlere aşağıdaki şekilde ulaşırız;

 

UIAlertView *alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"AppName", @"Uygulama adi")
    message: NSLocalizedString(@"Hello", @"Merhaba yazacak")
    delegate: nil
    cancelButtonTitle:NSLocalizedString(@"OK", nil)
    otherButtonTitles:nil];
[alert show];
[alert release];

 

NSLocalizedString fonksiyonu yerelleştirilen metin değerlerini Localizable.strings dosyasından çağırmaya yarar. Bu fonksiyonun aldığı ilk değer metne karşılık gelen anahtar değeridir. İkinci değer ise uygulama geliştiricinin yazdığı açıklamalardır ve geliştirici dilerse buraya nil değeri girebilir.

Kod içerisinde yer alan metinlerin dışında Interface Builder dosyaları da yerelleştirilebilir. Bunun faydası bu dosyalarda tutulan metinlerin kod içerisinde oluşturulmaması olacaktır. Bunu yapmak için yerelleştirmek istediğiniz Interface Builder dosyasını tıklayın ve sağ ekrandaki ilk sekmeden Localize düğmesine basın:

Bu işlemi yaptıktan sonra uygulama ayarlarında belirttiğiniz dillerde Interface Builder dosyaları oluşturabileceksiniz. Daha sonra yapmanız gereken her Interface Builder dosyasında metin değerlerini ilgili dile çevirmek olacaktır:

Yerelleştirilmiş dosyalar