如何在RegionInfo.DisplayName上强制使用culture / region

时间:2015-02-09 10:59:12

标签: c# regioninfo

我正在显示一个国家/地区作为其他信息的一部分。 该国家/地区作为国家/地区代码从数据库中读取。

这样做是这样的:

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 个答案:

答案 0 :(得分:1)

来自MSDN

  

DisplayName属性显示国家/地区名称    .NET Framework的本地化版本的语言。例如,   DisplayName属性以英语显示国家/地区   英文版的.NET Framework,西班牙文版的西班牙文版   .NET Framework的版本。

因此,如果您安装了丹麦语版本的.NET,它应该可以正常工作。

但是,最好不要依赖它,只需创建自己的丹麦国家名称表。

答案 1 :(得分:1)

因此,在检查了为.NET Framework安装语言包的可能性之后,我们找到了以下解决方案。

我们找到了以下解决方案。

将此行添加到system.web节点下的web.config中。

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

如果您在运行软件的计算机上安装了操作系统语言包,现在将强制使用该语言。

答案 2 :(得分:0)

您可以通过在实现RegionInfo之前写入该行来解决这个问题:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK");