UWP uygulamasında kullanıcının/bilgisayarın dilini bulmak

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.

İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı