未选取 ASP.NET 区域设置特定资源文件

发布于 2024-12-08 18:59:08 字数 434 浏览 0 评论 0原文

对于默认的不变资源文件(resources.resx),一切正常 - 我的标签文本是使用

HttpContext.GetGlobalResourceObject(resource, key);

当我设置

CultureInfo.CurrentCulture = new CultureInfo("zh-hk");
CultureInfo.CurrentUICulture = new CultureInfo("zh-hk");

区域设置特定资源文件(resources.zh-hk.resx< /code>) 被忽略,并使用上面的默认不变式。

我尝试重命名这些文件以测试它们是否位于正确的位置..这很好。

等式中缺少什么?

Everything works ok for the default invariant resource file (resources.resx) - my label's text is being picked up using

HttpContext.GetGlobalResourceObject(resource, key);

When I set

CultureInfo.CurrentCulture = new CultureInfo("zh-hk");
CultureInfo.CurrentUICulture = new CultureInfo("zh-hk");

The locale specific resource file (resources.zh-hk.resx) is being ignored and the default invariant one above is being used.

I've tried renaming the files to test they are in the right location..and that's fine.

What's missing from the equation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮年 2024-12-15 18:59:08

你应该这样设置:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-hk");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-hk");

检查一下这个:如何:设置文化ASP.NET 网页全球化的 UI 文化

you should be setting it like this:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-hk");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-hk");

check this one out: How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

审判长 2024-12-15 18:59:08

原来是我注册区域设置的地方,这需要在 PreRequestHandler 中而不是 BeginRequest 中。

application.PreRequestHandlerExecute += SetLocale;

不明显

application.BeginRequest += SetLocale;

private void SetLocale(object sender, EventArgs e)
{
   LocalizationHelper.SetThreadCurrentCulture();
}

Turned out to be where I was registering the locale, this needs to be in the PreRequestHandler not the BeginRequest one.

application.PreRequestHandlerExecute += SetLocale;

not

application.BeginRequest += SetLocale;

private void SetLocale(object sender, EventArgs e)
{
   LocalizationHelper.SetThreadCurrentCulture();
}

Obvious!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文