2010-11-17 13 views
26

Jak rozpoznać język systemu operacyjnego za pomocą CultureInfo? Na przykład. jeśli język w systemie Windows jest ustawiony na francuski, muszę określić francuski i załadować dane plików zasobów fr.Pobierz aktualny język w CultureInfo

+4

Jeśli korzystasz z plików zasobów .NET (pliki .resx), system obsługuje to za Ciebie. –

+0

Tak, wiem, ale nie dodałem pliku zasobów mandarynek i komputer został ustawiony na język mandaryński jako domyślny język, więc szukam prawidłowego. Dzięki. – Sharpeye500

+0

Twoja odpowiedź może być ta http://stackoverflow.com/questions/329033/what-is-the-difference-between-current-ulture-and-currentuiculture-properties-of – Raymund

Odpowiedz

44

Myślę, że coś takiego nie daje bieżący CultureInfo:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 

Czy tego szukasz?

+1

Używałbym CultureInfo.CurrentCulture, która robi to samo, ale jest krótszy do napisania. Niestety ani CurrentCulture, ani CurrentUICulture nie zwraca języka systemu operacyjnego. Pierwsza zwraca bieżące ustawienie formatowania, druga zwraca preferowany język interfejsu użytkownika. –

6

Aktualny język jest pobierane za pomocą systemu „Pobiera CultureInfo reprezentującą kulturę zainstalowany z systemem operacyjnym”

CultureInfo.InstalledUICulture 

InstalledUICulture

Aby ustawić go jako domyślny język do użycia nici:

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

To co kiedyś:

var culture = System.Globalization.CultureInfo.CurrentCulture; 

i to działa :)

2

Próbowałam {CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;} ale to nie działa dla mnie, ponieważ mój interfejs użytkownika Inaczej było w mojej kulturze numer/waluta. Więc proponuję używać:

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture; 

To daje kulturę Twój UI jest (teksty na Windows, skrzynkach, itp).

0

Aby uzyskać identyfikator 2 znaków ISO 639-1 użyj:
System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;