原来的写法,使用三目表达式,按照当前全局变量的语言类型,返回不同的语言提示,如图:
那么,如果再加一种法语,该咋弄呢?显然再写三目表达式是不合适的(其实原来写三目表达式也是不合适的 -_- || )。所以网上搜索的一些资料,整理了一下记录下来,以便下次使用起来方便。
一、新建资源文件夹
二、新建资源文件
三、配置语言包
各个语言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);
}
}
}