之前做了乙個多語言架構一,就是根據業務需要,自己去弄的乙個架構,但是實現方式其實比較生硬,今天在這就是根據微軟的一些好的api從新把之前的框架優化一下。
優化修改內容如下:
1、資源檔案的新增(資源檔案的名稱新增乙個語言類別的副檔名)
language的資源檔案,儲存中文字元,language.en-us儲存英文,這裡的".en-us"就是副檔名,如果在需要新增其它的語言資源檔案可以以相同格式新增。這一點很重要
2、新增乙個特性,用於檢測使用者的語言設定,來設定資源檔案的語言型別
public class localizationattribute : actionfilterattribute
thread.currentthread.currentuiculture = cultureinfo.createspecificculture(clstr);}}
這裡先判斷客戶端語言,然後在判斷使用者是否有設定語言快取,如果有把快取新增到使用者客戶端,同時設定當前執行緒的語言特徵
3、後台資料的使用
[localization]
public class homecontroller : controller
//string time = watch.elapsedmilliseconds.tostring();
return view();}}
這裡直接使用使用language資源檔案,因為這裡的home控制器新增了特性,在執行home控制器下面的方法都會先執行localization特性,而在此特性中設定了對當前執行緒的語言資源特性進行了設定。而在語言資源型別中,獲取屬性資料,都是使用resourcemanager來獲取,而resourcemanager會通過判斷當前執行緒特性來從對應的資源檔案中找到資料
public static string test1
}
所以在這裡,如果我們想要resours.language.test1顯示未中文,只需要把currentuiculture設定為「zh-cn」,為英文則是「en-us」
4、前端顯示方式不變
@
語言切換:
中文英文
@multi_l_two.resours.language.test1
在這裡和之前不同的是,我直接在前台執行了後台**,這個是razor帶給我們的便利。
最後在推薦一下資源檔案管理工具"resx manager",直接在微軟官方工具可以找到,可以在工具頁面新增不同語言的文字,不需要頁面切來切去,而且提供外部翻譯,很方便很實用
多語言架構demo
八皇后c語言解析(適用於新手
問題描述 西洋棋棋手馬克斯於1848年提出 在8 8的西洋棋放八個皇后,使其不能相互攻擊,即任意兩個皇后不能處於同一行,同一列,或者同一斜線上。不知道為啥的朋友可以去了解以下西洋棋的基本規則 高斯認為有76種解法,計算機出來後解出92種解法。終於在數學上可以超過一下天才兒童高斯了o o 主要演算法 ...
c 的erp多語言實現思路框架
抽象出語言幫助類,作為中介軟體,實現類思路如下 public static class multilanguagesupport 靜態多語言支援類 private static string keyculture,alternativeculture private static dictionar...
適用於 C 控制台小遊戲的雙緩衝方法
摘要 在 windows 中使用 c 語言製作控制台小遊戲可用的控制台雙緩衝技術,此技術可以防止畫面重新整理時螢幕閃爍的現象,使畫面過渡較為流暢。參考樣例檔案見 在使用 c 語言製作控制台小遊戲時,為了在畫面更新的時候重新整理顯示內容,乙個容易想到的方法是在每一幀重新整理畫面,windows 下可以...