ASP.NET MVC 3 Razor 多国语言参考解决方案 补充二

简介: 转自http://www.cnblogs.com/think8848/archive/2011/03/19/1988690.html在上两篇(1,2)中提到了如何在应用程序项目中使用资源文件的问题,还没有测试在调用其他ClassLibrary中资源文件的情况,今早起来还按照以往ASP.

转自http://www.cnblogs.com/think8848/archive/2011/03/19/1988690.html

在上两篇(1,2)中提到了如何在应用程序项目中使用资源文件的问题,还没有测试在调用其他ClassLibrary中资源文件的情况,今早起来还按照以往ASP.NET项目中的作法做个测试



使用资源文件:



public class Class1
{
    public string GetTT()
    {
        return Resources.Test.TT;
    }
}


期望能像往常一样,随着浏览器中的语言选项的变换能出现自动切换效果,结果不出意料的失望了,只能显示没有带Culture信息的资源项值。


(3月22日重要更新内容:在web.config的system.web配置节点下加入<globalization culture="auto" uiCulture="auto"/>就可以不使用下列的方法了,唉,学艺不精啊!!!)


通过检查资源文件的Designer.cs文件,发现其内部有一个属性定义:



[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
    get {
        return resourceCulture;
    }
    set {
        resourceCulture = value;
    }
}


于是猜想,如果能设置这个属性值,想必可以让ResourceManager自动选取相应的资源文件吧,但是添加在哪里呢,发现在HttpApplication中有这样一个事件:



public event EventHandler PreRequestHandlerExecute;


于是在Global里面添加了这个事件的事件处理器,并在其方法内部添加如下代码:



protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(Request.UserLanguages[0]);
    Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
}


F5运行,果然达到了预期的效果:随着浏览器语言选项的切换,页面上的语言也能自动切换了。


英文:



中文:


目录
相关文章
|
人工智能 物联网 开发工具
.NET技术:多元语言、丰富库与跨平台能力引领软件开发新纪元。
`【7月更文挑战第4天】.NET技术:多元语言、丰富库与跨平台能力引领软件开发新纪元。从企业应用、云服务到游戏开发,其角色日益凸显。随着微软的持续创新与社区合作,未来.NET将在物联网、AI等领域拓宽应用,开发者应把握趋势,共创未来。`
361 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
752 0
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
283 1
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
370 7
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
182 1
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
354 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
312 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
480 0
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
740 0