Как заставить культуру / регион на 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");
Другие вопросы по тегам