.Net MVC5(.Net Framework 4.0+)多語言解決方案

一葉、知秋發表於2020-08-17

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

 

相關文章