Swift 4.2 ile Çoklu Dil Desteği

Mustafa MEDENİ
NSIstanbul
Published in
3 min readNov 5, 2018

Araştırmalarım sonucunda dil desteği konusunda bir kaç tane daha kaynak bulunduğunu gördüm ancak farklı bir şekilde projelerde kullandığımız textler için plist file kullanarak uyguladığım yöntemi açıklamaya çalışacağım.

Proje Dil Desteği Ekleme

Projede destek vereceğimiz dilleri ilk önce tanımlamamız gerekiyor bunun için ;

“ Project -> Localizations “ Altından istediğimiz dilleri projeye ekleyelim…

String ler için Plist Oluşturma

Projemize kullanmak istediğimiz dilleri tanımladık, sıra geldi dil spesifik stringleri tutabilmek için plist file oluşturup stringleri kaydedeceğiz. Plist file kullanmamızın sebebi data düzenli bir yapıda key-value çiftleri tutabilmemiz.

“File->New->iOS->Resource” altından yeni bir Localizable isimli “Property List“ oluşturuyoruz.

Localizable Plist`ini oluşturduğumuza göre key -value çiftlerimizi oluşturabiliriz. Yan taraftada gördüğümüz gibi string için bir key değeri ve altında, value ve comment olmak üzere iki tane çiftimiz var. Bunlardan value bizim kullanıcıya göstereceğimiz string diğer comment ise opsiyonel benim tercihen tercüman için yazdığım açıklamamız. İsterseniz comment satırını hiç kullanmayabilirsiniz.

Localizable plistini kullanarak bütün key value çiftlerini yani string leri tanımladık peki projeye tanımladığımız diller için stringleri nasıl tanımlayacağız diye aklınıza geliyorsa hemen aşağıda görüyor olacağız.

Localizable dosyamıza dil desteğini eklediğimiz anda yanlarında ait olduğu dillerin yazdığı üç kopyamız oldu bizim yapmamız gereken ise bu dosyaları dillere göre dilediğimizce düzenlemek bu sayede bütün stringlerimiz için dil desteğini vermiş olacağız.

Peki ya kullanımı ?

En basit kısmı burası sanırım aşağıda yer alan class ve string extension ile stringlerinizi “title”.localized şeklinde düzenleyerek kullanabilirsiniz.

Burada class içerisinde yaptığımız işlem oluşturmuş olduğumuz Localizable adlı plist içerisinden key setine göre value yi döndermek, extension ise stringler ile kolayca kullanabilmemizi sağlıyor. Üst tarafta yer alan kodları bir swift file içerisinde projenize implement etmemiz gerekmekte, sonrasında;

işte kullanımı bu kadar. Print çıktısının sonucu cihaz diline göre tanımladığınız stringler olacaktır, eğer string plist file içerisinde yoksa “localize \key ” şeklinde bir çıktı alıyor olacaksınız.

NOT: Localizable.plist dosyasına eklediğimiz yöntem ile isterseniz StoryBoard, Image gibi nesnelere de dil desteği verebilirsiniz.

Nasıl Test Ederiz ?

Dil desteğini uygularken test etmekte çok önemli bir etken ancak cihazda test etmekte o kadar zor bir işlem simulator de bunu yapmak için sol tarafta gördüğümüz gibi Edit Scheme dedikten sonra Application Language seçeneğini istediğimiz test etmek istediğimiz dili seçebiliriz.

Base Proje için github reposunu ziyaret edebilirsiniz. https://github.com/mstfmedeni/LocalizationDemo.git

Umarımki sizlere bir nebze olsun faydalı olabilmişimdir. İyi Kodlamalar 👍🏻

--

--

Mustafa MEDENİ
NSIstanbul

iOS Developer | Gopher and Coffee geek | ios — web📱💻 🤓