Web 应用程序中的强类型资源本地化失败
我们创建了两个资源文件 GlobalResources.resx(英语)和 GlobalResources.de.resx(德语)。
这可行(文本根据网络浏览器设置翻译成语言):
string s = HttpContext.GetGlobalResourceObject("GlobalResources",
"YouHaveSuccessfullyLoggedOut");
这不行(文本始终是英语):
string s = Resources.GlobalResources.YouHaveSuccessfullyLoggedOut;
为什么?
We've created two Resource files GlobalResources.resx (English) and GlobalResources.de.resx (German).
This works (text is translated to language based on web browser setting):
string s = HttpContext.GetGlobalResourceObject("GlobalResources",
"YouHaveSuccessfullyLoggedOut");
This does not (text is always English):
string s = Resources.GlobalResources.YouHaveSuccessfullyLoggedOut;
Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
现在它又可以工作了。
我们认为这可能是因为应用程序正在运行(在调试中),或者当我们将字符串重构为资源时(使用 http://resourcerefactor2010.codeplex.com/)。这与 VS 决定生成 .designer 文件的时间有关(我们甚至看到它为一个 .resx 文件创建了两个 .designer 文件) - 这整个区域在 VS2010 中很脆弱,需要小心对待!
It's now working again.
We think it may have happened because the application was running (in Debug), or the .resx file was open (in an VS Editor window) when we re-factored the string into a resource (using http://resourcerefactor2010.codeplex.com/). It's to do with when VS decides to generate the .designer files (we've even seen it create two .designer files for one .resx file) - this whole area is flaky in VS2010 and needs be treated gently!