0
我創建了一個名爲es-CO-ZF
的自定義文化。這種文化的基礎的es-CO
:ResourceManager如何處理自定義文化的文化回退?
var cultureInfo = new CultureInfo("es");
var regionInfo = new RegionInfo("CO");
var infoBuilder = new CultureAndRegionInfoBuilder(
"es-CO-ZF", CultureAndRegionModifiers.None);
infoBuilder.LoadDataFromCultureInfo(cultureInfo);
infoBuilder.LoadDataFromRegionInfo(regionInfo);
infoBuilder.Register();
以下是CultureInfo對象的控制檯打印:
Name: . . . . . . . . . . . . . es-CO-zf
EnglishName:. . . . . . . . . . Spanish
NativeName: . . . . . . . . . . español
TwoLetterISOLanguageName: . . . es
ThreeLetterISOLanguageName: . . spa
ThreeLetterWindowsLanguageName: ESP
爲了測試區域性後備我創建了以下RESX文件:
App.resx (en-US, default culture)
String1 > English
App.es.resx
String1 > español
App.es-CO.resx
String2 > Colombia
App.es-CO-ZF.resx
String2 > Colombia Custom
並獲得本地化字符串如下:
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-CO-ZF");
var string1 = App.ResourceManager.GetString("String1", culture);
var string2 = App.ResourceManager.GetString("String2", culture);
當使用內置文化es-CO
我得到了以下的結果:使用自定義的文化我希望下面的結果時
String1: español
String2: Colombia
所以:
String1: español
String2: Colombia Custom
但我得到:
String1: English
String2: Colombia Custom
所以我看到的是資源管理器似乎並不知道,或弄清楚,bas自定義文化的語言是西班牙語,即使根據CultureInfo對象和它的語言屬性,基本語言也是西班牙語。
我做錯了什麼?
我該怎麼做才能讓我的自定義文化ResourceManager
回落到es
?