C#对安哥拉的文化名称是什么?

3
我想了解安哥拉文化,以便使用类似以下的东西:
var cultureInfo = System.Globalization.CultureInfo.GetCultureInfo("pt-PT");
var price = String.Format(cultureInfo, "{0:C}", price);

当用户来自安哥拉时,需要以宽扎货币格式显示价格,但我不知道该使用什么代替 "pt-PT" 来适配安哥拉,请问有人有什么想法吗?


1
可能是因为C#不直接支持安哥拉文化(ao-AO或pt-AO,不确定)。您使用的.NET版本是什么?如果您使用4.0或更高版本,可以基于现有文化创建自己的文化。 - Ivaylo Slavov
1
如果我没记错的话,CultureInfo 支持你的 Windows 版本所支持的任何语言。如果存在安哥拉语之类的语言包,你可能需要安装它。 - Kris Vandermotten
@KrisVandermotten,您说得完全正确。对于OP来说,问题在于他是否个人安装了该软件,但如果他正在制作一个Web应用程序,那么重要的是服务器上是否存在该文化。如果存在,他就无法在家中测试它在服务器上的行为如何。 - Ivaylo Slavov
3
仅仅是一条附言:你不应该按照用户的文化背景来格式化价格,因为$ != € != kwanza。如果一个价格是10美元,那么显示10美元,而不是10 kwanza。如果你确实需要显示kwanza,你可能需要进行转换。 - Kris Vandermotten
1
字符串ao目前没有分配给任何两个字母的ISO语言代码,因此它不会是"ao-AO"。请注意,不存在名为“安哥拉语”的语言。但是你关于"pt-AO"是正确的;正如我刚才所写的,它在我的系统上可以工作。 - Jeppe Stig Nielsen
显示剩余4条评论
1个回答

4
根据我的一些研究,似乎Windows安装不支持安哥拉文化设置。这是很重要的,因为.NET本身没有文化设置 - 它从操作系统上安装的文化中获取设置。
那么下面有几种方法可以选择:
- 如果可用,将合适的文化设置作为语言包安装到操作系统中。这将使您的应用程序仅在该计算机上运行。其他计算机或者 Web 服务器托管环境(如果您要制作网站)也必须安装相同的语言包。我认为这种方法有些不可接受,因为它依赖于外部先决条件,并涉及每个运行您的应用程序的方需进行一些非常规工作。因此,我会看一下另一种方法。 - 在应用程序中创建自定义文化。自.NET框架4.0以来,允许基于现有文化构建自定义文化。这将给您带来以下好处: - 对该文化如何表示信息拥有完全控制权。 - 该文化由应用程序创建。不需要额外的努力,用户可以在任何地方使用。
简而言之,如果要在.NET中创建自定义文化,则需要运行类似于以下代码片段的代码一次
CultureInfo baseCulture = new CultureInfo("pt-PT");
RegionInfo regionInfo = new RegionInfo(baseCulture.Name);

CultureAndRegionInfoBuilder builder =
    new CultureAndRegionInfoBuilder("pt-AO",CultureAndRegionModifiers.None);

// load in the data from the existing culture and region
builder.LoadDataFromCultureInfo(baseCulture);
builder.LoadDataFromRegionInfo(regionInfo);

// make custom changes to the culture
builder.CurrencyEnglishName = ...;
builder.CurrencyNativeName = ...;
builder.ISOCurrencySymbol = ...;

builder.Register();

我假设安哥拉文化与pt-PT文化非常接近,因此我将其用作基础。您可以根据自己的需要进行更改。您还需要使用适合您文化的正确值替换我的代码中的...值。我不知道它们是什么,所以我留给您处理。
另一个需要注意的事情是,上述代码每个应用程序只需要执行一次很重要。否则,如果已经注册了具有该名称的文化,则builder.Register()方法可能会抛出异常。这也意味着避免为自定义文化使用现有的文化名称。
您可以查看以下资源来了解如何创建自定义文化:

昨天翻译过了,但仍然是正确的答案。 - FabioG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接