我使用this blog by Alex Adamyan上的代碼創建了本地化MVC網站。ResourceManager在使用自定義文化時未選擇正確的資源集
如果我使用現有的文化,這很有效。但是,我正在嘗試本地化Tagalog(tl或tl-PH)。 Windows沒有這種文化建立在,所以我已創建了一個(我曾經嘗試都TL與TL-PH),按照下面的代碼:
public static void CreateCustomCultures()
{
var cultureBuilder = new CultureAndRegionInfoBuilder(
"tl", CultureAndRegionModifiers.Neutral);
cultureBuilder.LoadDataFromCultureInfo(new CultureInfo("en-US"));
cultureBuilder.LoadDataFromRegionInfo(new RegionInfo("US"));
cultureBuilder.IsMetric = true;
cultureBuilder.CultureEnglishName = "Tagalog";
cultureBuilder.CultureNativeName = "Tagalog";
cultureBuilder.RegionEnglishName = "Tagalog";
cultureBuilder.RegionNativeName = "Tagalog";
cultureBuilder.TwoLetterISOLanguageName = "tl";
cultureBuilder.ThreeLetterISORegionName = "PH";
cultureBuilder.Register();
var cultureBuilder2 = new CultureAndRegionInfoBuilder(
"tl-PH", CultureAndRegionModifiers.None);
cultureBuilder2.LoadDataFromCultureInfo(new CultureInfo("en-US"));
cultureBuilder2.LoadDataFromRegionInfo(new RegionInfo("US"));
cultureBuilder2.IsMetric = true;
cultureBuilder2.CultureEnglishName = "Tagalog";
cultureBuilder2.CultureNativeName = "Tagalog";
cultureBuilder2.RegionEnglishName = "Tagalog";
cultureBuilder2.RegionNativeName = "Tagalog";
cultureBuilder2.TwoLetterISOLanguageName = "tl";
cultureBuilder2.ThreeLetterISORegionName = "PH";
cultureBuilder2.Register();
}
我也有設在我的測試網站四個資源文件〜/Views/Home/Resources:
- Home.aspx.resx;
- Home.aspx.tl.resx
- Home.aspx.tl-PH.resx
- Home.aspx.de.resx
當我建,我得到以下三個適當命名的目錄,我的bin目錄,每個目錄都有一個適當命名的dll。
因此,當我去我的網站主頁http://localhost:1907我得到默認(英文)的語言字符串。
當我去德國(德)主頁http://localhost:1907/de我得到德國版本的網站。
當我轉到tagalog版本http://localhost:1907/tl或http://localhost:1907/tl-PH時,我得到英文版本而不是他加祿語版本。
我已經放置在資源獲取斷點代碼和已證實,當前線程的區域性和UI區域性設置是否正確,以菲律賓語文化和他加祿語是傳遞給resourceManager.GetString(鍵,文化)文化。
有什麼想法?我沒有正確創建自己的文化嗎?
cultureBuilder2.LoadDataFromCultureInfo(new CultureInfo(「en-US」)); cultureBuilder2.LoadDataFromRegionInfo(new RegionInfo(「US」)); zh-CN? – 2010-09-21 09:36:34
@Avatar:它只是加載美國英語文化的設置(如十進制和分組分隔符和/或格式)。它不應該加載適當的資源... – 2010-11-05 20:31:33
我很確定你已經正確地創建了你的自定義文化。我唯一擔心的是你的三字母ISO 3166國家代碼,顯然只有兩個字母。然而,它不應該。 – 2010-11-05 20:34:21