MVC2.0本地化(另类解决方案)&“.NET研究”lt;下>

简介:   本文是对MVC2.0本地化(另类解决方案)上这篇文章内介绍的MVC2.0本地化功能进行加强、细化的结尾篇。如果存在不足的地方,希望您指出。  如何对上篇文章进行加强以及细化呢?主要从以下三点开始。

  本文是对MVC2.0本地化(另类解决方案)上这篇文章内介绍的MVC2.0本地化功能进行加强、细化的结尾篇。如果存在不足的地方,希望您指出。

  如何对上篇文章进行加强以及细化呢?主要从以下三点开始。

  1、根据用户浏览器自动语言判断,同时也可由用户自定义站点语言。

  2、多语言加入,类似resource文件,可以有多个语言资源库。

  3、全局本地化,可以本地化非页面内容,比如为台异步到前台的json数据本地化等。

  主要步骤如下:

  一、根据用户浏览器自动语言判断,同时也可由用户自定义站点语言

  这个实现思路为:首选判断存储在客户端的用户“主动”设定的cookie。如果该值为空,则根据用户浏览器自动识别语言。如果不为空则根据用户设定好的cookie值获取站点语言。那如何根据客户浏览器识别语言,我们要在web.config的system.web节点添加globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/设置。

  根据此设置服务器端就就可以使用System.Threading.Thread.CurrentThread.CurrentCulture识别用户浏览器的语言。贴出global中部分代码以供参考:

 protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            HttpCookie lang = Request.Cookies["Lang"];
            if (lang != null)
            {
          if (Response.ContentType == "text/html" || Response.ContentType == "application/json")             
                       Response.Filter = new LocalizationHandler(Response.Filter, lang.Value);
              return;
            }
            string langFromBrowser = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
            string strLang = string.Empty;
            if (string.Compare("zh-CN", langFromBrowser, true) == 0)
            {
                strLang = "SimplifiedChinese";
            }
  上海企业网站设计与制作          else if (string.Compare("zh-Hant", langFromBrowser, true) == 0)
            {
                strLang = "TraditionalChinese";
            }
            else if (langFromBrowser.Contains("en"))
            {
                strLang = "English";
            }
            else
            {
                strLang = "English";
            }
            if (Response.ContentType == "text/html" || Response.ContentType == "application/json")
                Response.Filter = new LocalizationHandler(Response.Filter, strLang);
    }

  通过以上代码块,服务端就可以聪上海闵行企业网站设计与制作明的识别:到底是根据客户端的cookie还是根据用户浏览器语言设定来显示站点语言。上海闵行企业网站制作/p>

  二、多语言加入,类似resource文件,可以有多个语言资源库。

  这个扩展就非常简单了,在上篇文章中只有一个XML文件对应于该XML的.net4.0缓存。如果是多语言包,我们只要建立多个XML文件。以及每个XML文件相对应的缓存机制即可。截图如下:

  Resources文件下的语言包分为为:英文、简体中文、繁体中文。xml格式请阅 MVC2.0本地化(另类解决方案)上。

  如何获取xml内的翻译文本,上篇文章中写的很清晰了。唯一要注意的是为每上海徐汇企业网站设计与制作个xml文件(语言包)建立独立的缓存机制即可。

  三、全局本地化,可以本地化非页面内容,比如为台异步到前台的json数据本地化等

  首先看本文实现步骤的第一点中贴出代码第6行,if (Response.ContentType == "text/html" || Response.ContentType == "application/json") 这里控制了json格式的本地化。说白了以后后台的异步到前台的JSON格式的本地化资源,我们也可以写在XML文件中,只要通过Response.Filter 机制就可以本地化,而无需增加额外的本地化代码。

  具体实现截图如下:

  MVC2.0 JsonResult:

  jQuery调用:

  最终会将“=language is applied”根据不同的国家的用户分别显示成三种语言:

  简体:语言已设定。

  繁体:語言已經設定。

  英文:Language is applied.

  四、程序运行截图

  五、小结

  经过上文的介绍,基本上已完成了本地化另类解决方案。该方案也存在其缺点。但是优点是,可以动态的改变本地化内容。而不需要重新修改源代码,只要修改相应的xml文件内容即可。

  希望本篇文章可以给您带来帮助,如有不足之处欢迎指出,谢谢!

  相关文章:MVC2.0本地化(另类解决方案)<上>

目录
相关文章
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
202 3
|
3月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
156 1
|
4月前
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
111 1
|
5月前
|
API C#
.NET电子邮件高效处理解决方案
.NET电子邮件高效处理解决方案
|
5月前
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
|
7月前
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
189 0
|
6月前
|
监控 Linux C#
【干货分享】.NET人脸识别解决方案
【干货分享】.NET人脸识别解决方案
112 0
|
8月前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
5月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
72 0
|
8月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
233 0