首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态加载RESX文件不起作用

动态加载RESX文件不起作用
EN

Stack Overflow用户
提问于 2012-02-11 07:54:25
回答 2查看 1.7K关注 0票数 1

我有一个网页,必须显示在几种不同的语言根据用户的选择。为此,我对每个asp.net网页都使用了RESX文件。我不想在浏览器中使用自动检测语言,但我想再次根据用户选择来设置语言。为了实现这一点,我做了以下工作:

代码语言:javascript
运行
复制
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es-MX", false);
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("es-MX", false);

代码语言:javascript
运行
复制
Page.Culture = "es-MX";
Page.UICulture = "es-MX";

但是这两种方法都没有达到预期的效果!我在页面的Init方法中初始化区域性,但它将始终显示默认语言。我正在检查这些属性的值,这些属性具有正确的区域性,但仍未使用RESX文件呈现。有什么想法吗?有什么建议吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 02:59:34

如果有人在使用显式本地化时遇到此问题,则必须执行以下操作:

代码语言:javascript
运行
复制
protected override void InitializeCulture()
{
    Page.Culture = "en-US";
    Page.UICulture = "en-US";
}

来自net-tutorials.com网站:

由于Page指令只是指向

类的快捷方式,因此也可以在CodeBehind中完成此操作。但是,我们必须在页面呈现之前的某个时间点执行此操作,以确保它具有所需的效果。这就是InitializeCulture()方法发挥作用的地方,该方法在页面生命周期的早期由ASP.NET调用,您可以重写该方法。

票数 2
EN

Stack Overflow用户

发布于 2012-02-12 05:01:52

试试这个新的resourceReader = System.Resources.ResourceReader System.Resources.ResourceReader("RES_PATH");

现在您可以使用它来加载用户语言,比如es.resx

代码语言:javascript
运行
复制
System.Resources.ResourceReader resourceReader 
    = new System.Resources.ResourceReader(HttpContext.Current.Request.UserLanguages[0] 
    + ".resource");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9236484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档