正好最近手上在給一個Razor MVC項目實現(xiàn)一個多語言功能,叫Globalization也好,Localization也好,whatever。最終要實現(xiàn)的效果呢,就是一鍵切換全站語言,并且開發(fā)的時候只需要寫一套頁面。
下面進入正題
首先,我們要創(chuàng)建一個CultureConfigurer類,用于管理本地化資源,完成“翻譯”環(huán)節(jié):
這里我用了靜態(tài)類,然后在MVC項目StartUp的時候執(zhí)行Init()方法,其實有點蠢,當然你們也可以先寫一個接口然后用依賴注入成單例。
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)用這