Как заставить культуру / регион на 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)
};
Моя проблема в том, что я действительно хочу, чтобы отображаемое имя было на датском. Имейте в виду, что страна теперь всегда будет в Дании, поэтому использование родного имени не вариант.
заранее большое спасибо
3 ответа
Поэтому после проверки возможности установки языкового пакета для.NET Framework, что по какой-то причине оказалось невозможным для нас, мы нашли следующее решение.
Добавьте эту строку в ваш web.config под узлом system.web.
<globalization enableClientBasedCulture="false" culture="da-DK" uiCulture="da"/>
Если на компьютере с программным обеспечением установлен языковой пакет ОС, теперь он будет переведен на этот язык.
Из MSDN:
Свойство DisplayName отображает название страны / региона на языке локализованной версии.NET Framework. Например, свойство DisplayName отображает страну / регион на английском языке в английской версии.NET Framework и на испанском в испанской версии.NET Framework.
Итак, если вы устанавливаете датскую версию.NET, она должна работать так, как вы хотите.
Однако, может быть, лучше не зависеть от этого и просто создать свою собственную таблицу названий датских стран.
Вы можете решить это, написав эту строку перед созданием RegionInfo:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK");