2015-02-09 4 views
0

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

Это делается так:

Location location = new Location() 
{         
    Company = reader.GetString("Company"), 
    Address1 = reader.GetString("Address"), 
    Address2 = reader.GetString("Address2", string.Empty), 
    ZipCity = reader.GetString("ZipCity"), 
    Country = new RegionInfo(reader.GetString("Country", string.Empty)).DisplayName, 
    CountryCode = new RegionInfo(reader.GetString("Country", string.Empty)).TwoLetterISORegionName, 
    Att = reader.GetString("Att", string.Empty), 
    Phone = reader.GetString("Phone", string.Empty) 
}; 

Моя проблема заключается в том, что я бы очень хотел, чтобы заставить отображаемое имя, чтобы быть в датском. Имейте в виду, что страна будет всегда иметь значение denmark, поэтому использование собственного имени не является вариантом.

Большое спасибо заранее

+0

'Страна = новый RegionInfo (...) NativeName;'.? –

+0

https://www.microsoft.com/ru/da-DK/download/details.aspx?id=30667 –

ответ

1

Итак, после проверки возможности установки языкового пакета для .NET Framework, который по какой-то причине нам не удалось, мы нашли следующее решение.

Добавьте эту строку в свой web.config под узлом system.web.

<globalization enableClientBasedCulture="false" culture="da-DK" uiCulture="da"/> 

Если на компьютере, на котором запущено ваше программное обеспечение, установлен языковой пакет ОС, он будет принудительно переведен на этот язык.

+0

Спасибо @ Николас, трюк web.config помог мне. Но я не понимаю, почему я должен использовать это в web.config, и почему эти строки не работают: Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo ("fr") Threading.Thread.CurrentThread .CurrentUICulture = New Globalization.CultureInfo ("fr") – foxontherock

1

От MSDN:

Свойство DisplayName отображает название страны/региона в языке локализованной версии .NET Framework. Например, свойство DisplayName отображает страну/регион на английском языке на английской версии .NET Framework и на испанском языке на испанском языке версии .NET Framework.

Итак, если вы устанавливаете датскую версию .NET, она должна работать так, как вы хотите.

Однако, возможно, лучше не зависеть от этого и просто создать свою собственную таблицу имен датских стран.

+0

Я надеялся, что вам не придется это решать, поскольку это означает, что вы должны вручную указывать названия стран, коды стран и т. Д. –

0

Вы можете решить, что, написав эту строку перед instanciating RegionInfo:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK"); 
Смежные вопросы