.Net MVC5(.Net Framework 4.0+)多语言解决方案

摘要:
最近,该项目需要多语言。它最初是两种语言,但现在需要添加另一种语言才能变成三种语言。所以原来的方法肯定不适用,我们只能升级解决方案。到目前为止,多语言配置已完成!

最近项目需要做多语言,原先是2种语言(中文/英文),现在又要加一种语言,成了3种。那么原来的方式肯定不适用了,只能升级解决方案。

原来的写法,使用三目表达式,按照当前全局变量的语言类型,返回不同的语言提示,如图:

.Net MVC5(.Net Framework 4.0+)多语言解决方案第1张

 那么,如果再加一种法语,该咋弄呢?显然再写三目表达式是不合适的(其实原来写三目表达式也是不合适的 -_- || )。所以网上搜索的一些资料,整理了一下记录下来,以便下次使用起来方便。

一、新建资源文件夹

.Net MVC5(.Net Framework 4.0+)多语言解决方案第2张

 二、新建资源文件

.Net MVC5(.Net Framework 4.0+)多语言解决方案第3张

 三、配置语言包

 .Net MVC5(.Net Framework 4.0+)多语言解决方案第4张

 .Net MVC5(.Net Framework 4.0+)多语言解决方案第5张

 各个语言key一致,后边的值写不同语言对应的内容就可以了。

四、新建过滤器

我们需要一个过滤器,进入controller的时候,系统自动将语言包切换为与当前系统语言一致的的语言包。如图:

.Net MVC5(.Net Framework 4.0+)多语言解决方案第6张

 五、多语言测试

随意测试一个Controller,加上刚刚的过滤器,里边新加一个方法,进行测试,如图:

.Net MVC5(.Net Framework 4.0+)多语言解决方案第7张

 .Net MVC5(.Net Framework 4.0+)多语言解决方案第8张

 这是新建的测试方法,那么接下来请求一下看看效果

.Net MVC5(.Net Framework 4.0+)多语言解决方案第9张

 .Net MVC5(.Net Framework 4.0+)多语言解决方案第10张

 请求语言测试方法,返回了英文提示。

.Net MVC5(.Net Framework 4.0+)多语言解决方案第11张

 用户界面切换为中文后,重新请求

.Net MVC5(.Net Framework 4.0+)多语言解决方案第12张

 如图,返回了对应的中文!

至此,多语言配置大功告成!

附,代码在此

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Mvc;

namespace MT.Common.Filter
{
    public class LocalizationAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {

            if (!string.IsNullOrEmpty(MTConfig.UserLang))
            {
                Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(MTConfig.UserLang);
            }

            base.OnActionExecuting(filterContext);
        }
    }
}
 public string LangTest()
        {
            return Gloable.SaveSuccess;
        }

免责声明:文章转载自《.Net MVC5(.Net Framework 4.0+)多语言解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ASP.NET Core 如何使用Mvc相关技术建立Controller、Tag Helper (下)IO多路复用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

本地化

本章概要: 1:本地化解释 2:多语言支持 3:疑问的提出“非窗体,如控件的多语言支持” 1:本地化解释      本地化对我个人来说,更多的用处是开发多语言版本。更多的本地化内容,参考http://msdn.microsoft.com/zh-cn/library/h6270d0z.aspx。 2:多语言支持      多语言支持有很多种方法来做到,很主流...

正确处理下载文件时HTTP头的编码问题(Content-Disposition)

正确处理下载文件时HTTP头的编码问题(Content-Disposition) 最近在做项目时遇到了一个 case :需要实现一个强制下载功能(即强制弹出下载对话框,阻止浏览器尝试解析显示某些文件格式),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符)。 前一个需求很容易实现:使用 HTTP Header 的 Content-Di...

ASP.NET网站实现多语言版本 【转】

一、项目概述      1、目的            利用资源文件解决网站多语言版本的问题,在制作网站的时候,经常会遇到多种语言的版本,早期在asp的系统当中,很多网站开发师都会用传统的方法来开发,就是将同一套程序复制两份,功能是实现了,但往往后期的维护带来很大的麻烦,而在asp.net的时代,做这样的事情,原来是那么的简单.      2、概念    ...

C#实现多语言

1、要在项目稳定以后,再做多语言本地化。 2、做语言主要注意一下几点 2.1控件(包括窗体)的多语言支持,可以在vs2008的命令提示中输入winres。采用可视化的操作界面进行设置 窗体需要设置LocalLizable = true 并选择Language 2.2变量多语言: (1)代码中一定不要使用硬编码。 (2)使用此编码方式:string msg...

一步一步实现网站的多语言版本

    网站在开发的过程中需要实现多语言版本,我们暂且认为有英语和汉语两个版本。网站结构包括,UI过程,rest服务,以及相应的js,各个部分我们都要实现多语言,不要求一键切换,但是在部署过程中要能实现多与语言配置。 首先我们出场的是资源文件,C#的项目实现本地化和区域化,我们要用到资源文件。 添加资源文件夹 添加资源文件项 这里文件的命名最好能规范,...

QT中文乱码与国际化支持

转自:http://blog.csdn.net/alicehyxx/article/details/4960571 QT国际化支持 Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性。Qt本身提供的linguist工具,用来实现翻译过程十分方便。MFC中利用资源DLL切换资源,或使用多个RC文件进行不同语言版本编译等方法都十...