C#安哥拉文化名称

本文关键字:文化名 安哥拉 | 更新日期: 2023-09-27 17:58:38

我想了解安哥拉文化,以便使用这样的东西:

var cultureInfo = System.Globalization.CultureInfo.GetCultureInfo("pt-PT");
var price = String.Format(cultureInfo, "{0:C}", price);

当用户来自安哥拉时,用宽扎来格式化价格,但我不知道,也找不到安哥拉用什么代替"pt-PT",有人知道吗?

C#安哥拉文化名称

根据我所做的一些研究,Windows安装最初似乎不支持安哥拉文化设置。注意这一点很重要,因为.NET本身并没有提供区域性设置-它从操作系统上安装的区域性中获取设置。

因此,以下是一些你可以选择的方法:

  • 如果操作系统的语言包可用,请安装相应的区域性。这将使您的应用程序只能在该计算机上运行。其他计算机或web服务器托管环境(如果您碰巧创建了网站)也必须安装相同的语言包。我认为这种方法有些不可接受,因为它依赖于外部先决条件,并且涉及到运行应用程序的每一方的一些非琐碎工作。因此,我想看看的另一种方法

  • 在应用程序中创建自定义区域性。自v4.0以来,.NET框架允许您基于现有的区域性构建自定义区域性。这将给您带来以下好处:

    • 完全控制文化如何表示信息
    • 区域性由您的应用程序创建。它不需要你或你的用户付出额外的努力,它可以在任何地方工作

简而言之,如果你想在.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()方法可能引发异常。这也意味着要避免使用自定义区域性的现有区域性名称。


您可以查看这些关于如何创建自定义文化的资源:

  • MSDN页面上的自定义区域性
  • 另一篇关于风俗文化的文章
  • CodeProject关于用原始文化过度填充波斯历问题的文章
  • 一篇关于恰当命名风俗文化的文章