【发布时间】:2010-10-19 14:05:08
【问题描述】:
我有一个 Web 应用程序,它将使用几种不同的文化,其中一种是 es-US(西班牙美国)。但是,Windows XP 对文化 es-US 没有任何支持。为了解决这个问题,我发现应该能够使用 CultureAndRegionInfoBuilder。所以我查看了 CultureAndRegionInfoBuilder 并做了以下事情:
在一台 Windows 7 机器上,我将文化 es-US 保存到一个 XML 文件中,如下所示:
private static void SaveCultureToFile() {
try {
CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = null;
Console.WriteLine("Saving es-US to xml disc...\n");
cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder("es-US", CultureAndRegionModifiers.Replacement);
// Populate the new CultureAndRegionInfoBuilder object with culture information.
CultureInfo ci = new CultureInfo("es-US");
cultureAndRegionInfoBuilder.LoadDataFromCultureInfo(ci);
cultureAndRegionInfoBuilder.Save("es-US.xml");
}
然后我有一个读取xml的函数,并将文化注册到系统中,如下:
private static void RegisterCultureFromDisk() {
try {
CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = null;
Console.WriteLine("Loading es-US from xml...\n");
cultureAndRegionInfoBuilder = CultureAndRegionInfoBuilder.CreateFromLdml("es-US.xml");
Console.WriteLine("Culture is registred to the system...\n");
cultureAndRegionInfoBuilder.Register();
Console.WriteLine("The following culture has been registred to the system: \n");
}
所以我在 Windows 7 机器上使用 SaveCultureToFile 方法运行程序,从而将文化保存到 xml 文件中。然后我将文件复制到 Windows XP 机器,并运行相同的程序,但使用 RegisterCultureFromDisk() 方法。但是程序在 CultureAndRegionInfoBuilder.CreateFromLdml("es-US.xml") 方法中失败了:
“文化名称‘es-us’不是 支持”
嗯,这正是我尝试从 xml 加载文化并将其注册到系统中的原因。
有谁知道我做错了什么,或者我如何在 Windows XP 机器上创建 es-us 文化?
谢谢!
【问题讨论】: