foreach (var item in from e in new string[] { "en-US", "en-GB", "de-DE", "ru-RU", "fr-FR" }
select CultureInfo.GetCultureInfo(e))
{
Console.WriteLine("{0} => {1} (in current culture (russian): {2})", item.Name, item.NativeName, item.DisplayName);
}
Результат:
en-US => English (United States) (in current culture (russian): Английский (США))
en-GB => English (United Kingdom) (in current culture (russian): Английский (Великобритания))
de-DE => Deutsch (Deutschland) (in current culture (russian): Немецкий (Германия))
ru-RU => русский (Россия) (in current culture (russian): Русский (Россия))
fr-FR => français (France) (in current culture (russian): Французский (Франция))
Я думаю, DisplayName
это зависит от текущей культуры пользовательского интерфейса, но NativeName
не зависит. Для моей культуры все другие культуры DisplayNames показаны на русском языке, если я изменю текущую культуру, изменится и DisplayName
. но я не знаю, как получить название культуры A
в культуре B
без изменений Настройки Windows.
Try 'CultureInfo.DisplayName' –
Я думаю, что DisplayNames содержит только установленный системный язык. Невозможно, чтобы все языковые имена отображались во всех возможных переводах, ожидайте сделать это сами. – Remy