2010-11-17 19 views
26

CultureInfo numaralı telefonu kullanarak işletim sisteminin dili nasıl tanımlanır? Örneğin. Windows'taki dil Fransızca'ya ayarlanmışsa, Fransızca'yı tanımlamalı ve fr kaynak dosyaları verilerini yüklemem gerekir.Geçerlibilgiyi CultureInfo içinde al

+4

.NET kaynak dosyalarını ('.resx' olanlar) kullanıyorsanız, sistem bunu sizin için ele alır. –

+0

Evet, biliyorum ama mandarin kaynak dosyası eklemedim ve bilgisayar varsayılan dil olarak mandarin diline ayarlandı, bu yüzden doğru almak istiyorum. Teşekkürler. – Sharpeye500

+0

Cevabınız bu bir http://stackoverflow.com/questions/329033/what-is-the-difference-between-currentculture-and-currentuiculture-properties-of – Raymund

cevap

44

Böyle bir şey aktüel Cultureınfo verecekti düşünüyorum:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 

aradığınız şey bu mu?

+1

olabilir. ama yazmak daha kısadır. Ne yazık ki ne CurrentCulture değil CurrentUICulture OS dilini döndürür. İlk önce geçerli formatlama ayarı, ikinci kullanıcı tercih edilen Kullanıcı Arayüzü dili döndürür. –

6

Güncel sistem dili kullanılarak alınır: "işletim sistemiyle yüklü kültürünü temsil CultureInfo alır"

CultureInfo.InstalledUICulture 

InstalledUICulture

iplik kullanımı için varsayılan dil olarak ayarlamak için:

System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture; 
9

Bu şimdiye kullanılan budur:

var culture = System.Globalization.CultureInfo.CurrentCulture; 

ve işe yarıyor :)

2

Denedim {CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;} ama benim için çalışmayan UI c ülser benim sayı/para kültürümden farklıydı. Bu yüzden kullanmak öneririz:

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture; 

Bu, (pencereler, mesaj kutuları, vb metinler) UI olduğu kültürü verecektir.

0

2 karakterli ISO 639-1 dil tanımlayıcısını kullanmak için:
System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;