对于默认的不变资源文件(resources.resx
),一切正常 - 我的标签的文本正在使用
HttpContext.GetGlobalResourceObject(resource, key);
当我设置
CultureInfo.CurrentCulture = new CultureInfo("zh-hk");
CultureInfo.CurrentUICulture = new CultureInfo("zh-hk");
正在忽略特定于语言环境的资源文件(resources.zh-hk.resx
),并且正在使用上面的默认不变量。
我已经尝试重命名文件以测试它们是否在正确的位置......这很好。
等式中缺少什么?
答案 0 :(得分:0)
你应该这样设置:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-hk");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-hk");
检查一下:How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization
答案 1 :(得分:0)
原来是我注册语言环境的地方,这需要在PreRequestHandler而不是BeginRequest。
application.PreRequestHandlerExecute += SetLocale;
不
application.BeginRequest += SetLocale;
private void SetLocale(object sender, EventArgs e)
{
LocalizationHelper.SetThreadCurrentCulture();
}
明显!