如何在CultureInfo.CreateSpecificCulture方法中将中性文化映射到特定文化?

5
2个回答

8

我认为这里没有一个确切的映射。

enen-US 文化基于它们的 LCID property 不同,其顺序为 0x00090x0409en 是一个神经文化,与语言相关,但与国家或地区相关。

但是,en-US 是一个特定的文化,既与语言有关,也与国家或地区有关。

这就是为什么你可以使用 en-US 创建一个 RegionInfo 的原因。

var region = new RegionInfo("en-US");

但是你不能用 en 创建

var region = new RegionInfo("en");

其中写道:

区域名称en不应对应于中性文化;需要指定特定的文化名称。

CultureInfo对象之间存在层次关系,特定文化的Parent是一个中性文化,中性文化的InvariantCulture是其父级。

让我为您展示一下这种层次结构在en中性文化中是如何工作的:

enter image description here


4
几乎所有文化之间都存在某种亲缘关系,这一点可以通过以下方式看出来:
var specificCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures);
foreach (var culture in specificCultures)
{
     var text = "Specific: " + culture.Name + " Parent: " + culture.Parent.Name;
     Console.WriteLine(text);
}

给出的输出(摘录):

具体而言:ar-SA 父级:ar
具体而言:bg-BG 父级:bg
具体而言:ca-ES 父级:ca
具体而言:zh-TW 父级:zh-CHT
具体而言:cs-CZ 父级:cs
具体而言:da-DK 父级:da
具体而言:de-DE 父级:de
具体而言:el-GR 父级:el
具体而言:en-US 父级:en
具体而言:fi-FI 父级:fi
具体而言:fr-FR 父级:fr
具体而言:he-IL 父级:he

从这个片段可以看出,zh-TW 的父级是 zh-CHT。但最终会到达 zh(通过 zh-Hant)。跟随特定文化的父级最终会到达中性文化。


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