.Net MVC5(.Net Framework 4.0+)多语言解决方案
发布日期:2021-05-09 07:36:52 浏览次数:38 分类:原创文章

本文共 1143 字,大约阅读时间需要 3 分钟。

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

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

 

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

一、新建资源文件夹

 

 二、新建资源文件

 

 三、配置语言包

 

 

 

 

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

四、新建过滤器

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

 

 五、多语言测试

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

 

 

 

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

 

 

 

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

 

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

 

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

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

 

 

附,代码在此

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;        }

 

上一篇:Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
下一篇:.Net Core3中微信退款证书本地调试正常读取证书,在服务器IIS中加载不到证书文件

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月29日 14时32分31秒