Получить имя языка из строки локали, используя .NET?пример: en_us => английский - PullRequest
8 голосов
/ 20 апреля 2011

Как я могу найти язык для данной локали?

Пример: input: en_US output: English

Использование библиотек .NET?Я попробовал класс CultureInfo, но не могу найти что-то полезное.

Спасибо!

Ответы [ 4 ]

14 голосов
/ 20 апреля 2011

Не используйте конструктор CultureInfo.Статический метод GetCultureInfo быстрее использовать, поскольку этот метод кэшируется и возвращает неизменный (только для чтения) объект CultureInfo.

Согласно документации Facebook SDK, касающейся локализации , онМожно с уверенностью предположить, что вы можете заменить подчеркивание на дефис, чтобы позволить .NET понять язык.

Языковые стандарты Facebook соответствуют языку ISO и кодам стран соответственно, объединенные подчеркиванием.

Базовым форматом является '' ll_CC '', где '' ll '' - это двухбуквенный код языка, а '' CC '' - это двухбуквенный код страны.Например, «en_US» представляет американский английский.

В зависимости от того, требуется ли имя на английском языке независимо от языка ОС, используйте

CultureInfo.GetCultureInfo("en-US").EnglishName

Если вам нужноназвание на языке ОС, используйте:

CultureInfo.GetCultureInfo("en-US").DisplayName
9 голосов
/ 20 апреля 2011

Вам необходимо использовать en-US, а не en_US с кодом типа:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
string name = culture.DisplayName;

вывод: английский (США)

2 голосов
/ 20 апреля 2011
System.Globalization.CultureInfo.GetCultureInfo("en-US").EnglishName;
0 голосов
/ 20 апреля 2011

Вы можете использовать следующий код

Dim culture1 As CultureInfo = New CultureInfo("en-US")
Dim t As Thread = Thread.CurrentThread
Dim currentCulture As CultureInfo = t.CurrentCulture
Dim currentUICulture As CultureInfo = t.CurrentUICulture

'*** display cultures in console
Console.WriteLine("Current Culture: " & currentCulture.Name)
Console.WriteLine("Current UI Culture: " & currentUICulture.Name)
...