Bir UWP projesinde, bilgisayarın hangi dil ile kullanıldığını bulmak ve bu dile göre bir takım değişiklikler yapmak gerekebilir.
Örneğin, ondalık haneleri nokta (.) veya virgül (,) ile ayırmak, tarihi Gün/Ay/Yıl şeklinde yerine Ay/Gün/Yıl şeklinde göstermek, hatta ekrandaki metinlerin Türkçe yerine İngilizce gelmesini sağlamak, gibi.
UWP uygulama geliştirirken kullandığımız Windows SDK içerisinde, bilgisayarın dilini bulabileceğimiz birkaç yol var.
İlk yol, Windows.ApplicationModel.Resources.Core namespace‘inde yeralan ResourceContext sınıfının, GetForCurrentView()
methodu ile elde ettiğimiz nesnenin Languages
özelliğine başvurmak.
Bu özelliğin içerisinde diller dizi şeklinde durduğu için, ilk öğeyi aldığımızda, kullanıcının tercih ettiği dile ulaşmış oluruz
İkinci yol ise, Windows.System.UserProfile namespace‘inde yeralan GlobalizationPreferences sınıfının static olan Languages
özelliğine başvurmak.
Bu özelliğin de içerisinde diller dizi şeklinde durduğu için, ilk öğeyi aldığımızda, kullanıcının tercih ettiği dile ulaşmış oluruz
Hangi yöntemi tercih edersek edelim, elde ettiğimiz dil bilgisi BCP47 formatında olacak (en-US, tr-TR, gibi)
Tarih formatı, Rakam formatı gibi değerlerine ulaşabilmek için System.Globalization namespace‘inde bulunan CultureInfo sınıfına ihtiyacımız var.
Böylece, uygulamamız için gereken tarih formatı, rakam formatı gibi bilgilere ulaşabiliriz.
Ayrıca, .Net‘in ilk yıllarından beri kullandığımız CultureInfo sınıfının CurrentCulture özelliği hala varlığını sürdürmekte.
Bu özellik sayesinde bir adımda, istediğimiz CultureInfo nesnesine kavuşabiliriz.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484