Swift Localization

Ata Anıl Turgay
blutv
Published in
3 min readSep 14, 2021

Herkese merhaba, bu yazıda iOS projelerinde çoklu dil desteğinin nasıl uygulandığını inceleyeceğiz.

Uygulamalar cihazın ayarlarına göre başlatılır. Projede birden fazla dil destekleniyorsa uygulama başlatılırken cihazın mevcut dilinin uygulama tarafından sunulup sunulmadığına bakılır. Eğer mevcut dil destekleniyorsa ilgili dil dosyası sistem tarafından otomatik olarak seçilir. Eğer cihazın mevcut dili desteklenmiyorsa developer tarafından tanımlanmış olan default dil baz alınarak uygulama başlatılır.

Gelin hiç vakit kaybetmeden incelemeye başlayalım!

Yukarıdaki ekran görüntüsünde görüldüğü üzere Project Navigator alanında projemizin target’ını seçip Info sekmesinde en altta Localitazions alanını görüyoruz. Burada default olarak gelen dil İngilizcedir. Hemen altındaki + butonu ile yeni dil ekliyoruz.(- butonu ile de çıkartmak istediğiniz dili silebilirsiniz.)

Bu projede LaunchScreende localization yapacak bir string alanı olmadığı için seçmemize gerek yok. Siz projenizin ihtiyacına göre seçebilirsiniz.

Oluşturduğumuz projede bulunmasını istediğimiz diller Türkçe ve İngilizce bu yüzden + butonuna basınca açılan listeden Turkish’i seçerek ilerliyoruz.

Daha sonra File → New File → Strings File seçerek ilerliyoruz, bu dosyayı “StringTable” adıyla kaydettim, siz istediğiniz bir ismi verebilirsiniz.

Sol taraftaki Project Navigator alanından StringTable dosyamızı seçiyoruz ve sağ taraftaki Inspector alanında bulunan localize butonuna basıyoruz ve karşımıza bir popup çıkıyor, buna da localize diyerek kapatıyoruz.

Yukarıda görüldüğü üzere StringTable.strings dosyası English ve Turkish olmak üzere ikiye ayrıldı. Artık bu dosyalara dile göre string ekleyebilliriz.

Sıra geldi bu dosyaya ekleyeceğimiz stringleri key ile kullanmaya. Haydi nasıl kullanacağız hemen görelim!

Localization’ı her string için kullanabileceğimizi düşünerek bir string extension yazalım.

Artık her bir string için kullanabileceğimiz bir localized methodumuz var.

Basit bir gösterim olması adına ViewDidLoad içerisine yukarıdaki gibi bir label oluşturup bu label’ın textine “hello_message” key’ini veriyoruz. localized methodu bize telefonun diline göre StringTable.strings dosyasındaki “hello_message” key’ini bulur ve karşılığı olan değerini verir.

Bu yazıda Localization kavramını ele alarak bir uygulamada çoklu dil nasıl desteklenir inceledik.

Projeye ait github linkine buradan ulaşabilirsiniz.

Herkese keyifli araştırmalar ve okumalar…

--

--