最近專案需要做多語言,原先是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; }