正好最近手上在給一個Razor MVC項目實現(xiàn)一個多語言功能,叫Globalization也好,Localization也好,whatever。最終要實現(xiàn)的效果呢,就是一鍵切換全站語言,并且開發(fā)的時候只需要寫一套頁面。

下面進入正題

首先,我們要創(chuàng)建一個CultureConfigurer類,用于管理本地化資源,完成“翻譯”環(huán)節(jié):

這里我用了靜態(tài)類,然后在MVC項目StartUp的時候執(zhí)行Init()方法,其實有點蠢,當然你們也可以先寫一個接口然后用依賴注入成單例。

電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓 View Code

這里需要注意幾點:

  1. enum類Culture用于代表要實現(xiàn)的語言,這里我只是簡單的實現(xiàn)了中文和英文(其他我也不懂),對應的CultureConfigurer類就有中文和英文兩個Dictionary

  2. 使用了Assembly.Load加載了程序集,參數(shù)為你自己的程序集名稱,我這里就隨便寫了一個

  3. 資源文件我選擇了json文件,也是為了方便js中調(diào)用,當然你也可以用xml或者任何你想要用的格式,只需要調(diào)整解析方法,把文件內(nèi)容加載到對應的Dictionary中就可以了

  4. 看到GetValue方法,相信大家都已經(jīng)明白了,其實就是多語言不管是什么語言,都用某個詞做key,然后調(diào)用這

網(wǎng)友評論