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


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM