C 適用於前後端的多語言架構二

2021-08-28 05:43:59 字數 1409 閱讀 9635

之前做了乙個多語言架構一,就是根據業務需要,自己去弄的乙個架構,但是實現方式其實比較生硬,今天在這就是根據微軟的一些好的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 下可以...