我不知道中立文化是如何映射到特定文化的。它是静态的,如下所示吗?
en = en-US
fr = fr-FR
pt = pt-BR
我检查了一下
http://referencesource.microsoft.com/#mscorlib/system/globalization/cultureinfo.cs,44db57d9e190258e,references
&安培; 来自https://github.com/dotnet/coreclr/blob/master/src/classlibnative/nls/nlsinfo.cpp
的nativeInitCultureData但我无法理解。有人可以帮忙吗?
答案 0 :(得分:4)
我认为这里没有完全映射。
en
和en-US
种文化因其LCID
property按顺序0x0009
和0x0409
而有所不同。 en
是与语言相关但与国家或地区不的神经文化。
但en-US
是一种与两者语言和国家或地区相关联的特定文化。
这就是为什么您可以使用en-US
RegionInfo
var region = new RegionInfo("en-US");
但您无法使用en
var region = new RegionInfo("en");
说;
区域名称
en
不应与中性文化相对应;一个 需要特定的文化名称。
CultureInfo
个对象之间存在层次结构,特定文化的Parent
为中性文化,中性文化的父级为InvariantCulture
。
让我直观地了解这个层次结构如何适用于en
中立文化:
答案 1 :(得分:2)
几乎,文化之间存在父关系。你可以通过以下方式看到这个:
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 Parent:de
具体:el-GR家长:el
具体:en-US Parent:en
具体:fi-FI家长:fi
具体:fr-FR父母:fr
具体:he-IL家长:他
您可以在此代码段中看到zh-TW
的父级是zh-CHT
。但这最终会降到zh
(通过zh-Hant
)。跟随特定文化的父母,最终会让你成为一个中立的文化。