Cultureinfo: как получить только код языка - PullRequest
2 голосов
/ 16 апреля 2011

Я занимаюсь разработкой приложения для Windows Phone.

Как я могу получить код языка из CultureInfo.CurrentCulture?

Я использую CultureInfo.CurrentCulture.Name и получаю 'en-НАС'.Мне нужен только EN.

Ответы [ 2 ]

4 голосов
/ 16 апреля 2011

Вы пытались использовать свойство TwoLetterISOLanguageName?

1 голос
/ 18 апреля 2011

Я не уверен, что именно вы пытаетесь достичь.Если все, что вам нужно, это удалить регион, сохранив различие скрипта (например, если вы заинтересованы в zh-Hans, а не просто в zh), вам нужно использовать свойство Parent ().Хотя это может вернуть устаревшее (zh-CHS), поэтому вы можете использовать свойство IetfLanguageTag , чтобы решить, что:

CultureInfo.CurrentCulture.Parent.IetfLanguageTag

en-US -> en
zh-CN -> zh-Hans
zh-TW -> zh-Hant

Иногда он по-прежнему не дает ожидаемого ответа, поскольку он поддерживает только поддерживаемые языковые теги (но это ничем не отличается от свойства TwoLetterISOLanguageName):

az-Cyrl-AZ -> az
az-Latn-AZ -> az

И похоже,некоторые цепочки были опущены:

sr-Cyrl-BA -> (Invariant)

Вы можете проверить наличие инварианта, а затем вернуть свойство TwoLetterISOLanguageName, чтобы обойти это.

...