C# Localization (Yerelleştirme - Dil ve Kültür Desteği) Kullanımı



Önceleri bir programı farklı dillerde yazmak çok zordu. Programlar farklı diller için farklı şekillerde ayrı ayrı yazılırlardı. Yani 2 dil desteği veren Türkçe ve İngilizce destekli bir program yazacağınızı düşünün ayni kodları iki kez yazmanız gerekecekti. Localization sadece çeviri olarak düşünülmemesi gerekir. Çünkü farklı dillerde mesela en basitinden nokta ve virgülün anlamı farklı olabilir veya saatin gösterimi, tarihin gösterimi farklı olabilir. Localization bize tüm bu değişiklikleri yapma imkanı vermektedir.

Bir uygulamanın dil desteği ve kültür desteği vermesi için ise, framework içinde yer alan System.Globalization isim alanındaki sınıflardan ve resource files dediğimiz kaynak dosyalarından yararlanılır. Bir başka deyişle, bir uygulamanın yerelleştirilmesi yani dil desteği ve kültürel desteğin sağlaması için, uygulama kodları ile destek birimleri birbirinden ayrı tutulmuştur. Böylece, bir uygulamayı çok sayıda kültür için yerelleştirmek mümkün olmaktadır.

IETF tarafından belirlenmiş RFC 1766 standartlarına göre kültürler doğal (neutral) ve alt (specific) kültür olmak üzere iki parametreyle isimlendirirler. Fransa örneğine bakarsak :

fr - FR : Fransa
fr - BE : Belçika

bu örneklerde RFC 1766 standartlarına göre Fransızca okunaşan iki ülke olan Fransa ve Belçika'nın nasıl isimlendirildiğini görüyoruz. İlk sıradaki fr doğal (neutral) FR ve BE ise alt (specific) kültürleri gösterir.

Kültürel Bilgilerin Listelenmesi:

CultureInfo[] kulturBilgiListesi=CultureInfo.GetCultures(CultureTypes.AllCultures);

AllCultures: Tüm kültürleri listeler.
InstalledWin32Cultures: Windows sistemlerinde kullanılan kültürleri listeler.
NeutralCultures: Sadece dille ilişkilendirilmiş doğal kültürleri listeler.
SpecificCultures: Alt kültürleri listeler.

Peki bu kültürler ile programımızı nasıl yerelleştirecez? Bunun için:

Thread.CurrentThread.CurrentCulture=guncelKultur;

Bu kod satırı ile, çalışan thread için kültür değeri, seçilen kültüre göre ayarlanmıştır. Dolayısıyla bu kod satırını izleyen satırlardaki sayısal değer, tarih ve zaman formatları, seçilen kültüre göre ekrana gelecektir. İşte bu şekilde programımızı basit bir şekilde yerelleştirmiş olduk. Bundan sonraki yazımda resources dosyalarıyla uygulamalarımıza nasıl çoklu dil desteği verebiliriz bunu öğrenip yazmaya çalışacağım. Umarım bu yazı şuan okuyan kişiye yardımcı olmuştur. Hoşçakalın..

Kaynak : Burak Selim Şenyurt : Localization (Yerelleştirme) - 1

1 yorum :

  1. Hocam diyelim ki messajebox içerisinde bir metnimiz var ingilizce olunca Hello Türkçe olunca Merhaba yazsın istiyorum o zaman ne yapacağız?

    YanıtlaSil