2015-06-03 3 views
1

Я хочу отобразить список языков в выпадающем списке.Какая собственность страны зависимости зависит от текущего объекта информации культуры

Пользователь должен увидеть страны на своем родном языке.

Как немецкий я хочу «Deutschland» для «де-DE» и «Frankreich» за «FR-FR» как английский парень, которого я хочу «Германия» для «де-DE» и "French" for "fr-FR"

Я попытался использовать свойство .EnglishName, NativeName и DisplayName в объекте информации о культуре, но свойства thoese выглядят неверно.

+0

Try 'CultureInfo.DisplayName' –

+0

Я думаю, что DisplayNames содержит только установленный системный язык. Невозможно, чтобы все языковые имена отображались во всех возможных переводах, ожидайте сделать это сами. – Remy

ответ

0
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.

Смежные вопросы