最近發現資源檔案是個好東西, 用的好了可以給開發人員節約不少的時間. 例如做乙個多語言的**, 資源檔案就有不小的用處.
這裡以乙個mvc4的專案為例, 簡單說一下過程:
1.資源檔案的處理
首先準備資源檔案, 即語言包. 為website專案新增兩個resx檔案, 如圖:
接著分別為這兩個檔案新增內容(名稱/值),如圖:
資源檔案第三步, 用命令列工具resgen.exe將這兩個resx檔案生成同名的resources檔案, 如zh-cn.resources、en-us.resources, 生成後將這兩個resources檔案放到resource目錄下.
關於resgen.exe工具的詳細用法, 這裡只給出命令列指令碼, 不做介紹, 有興趣的可以去找相關資料.
至此,資源檔案(語言包)就做好啦,下面就是在專案中的使用了。
2.後端**
protected在要應用的控制器中新增changelanguage方法, 如下:sender,eventargs e)
thread.currentthread.currentuiculture =ci;
thread.currentthread.currentculture =cultureinfo.createspecificculture(ci.name);}}
///切換語言時呼叫changelanguage方法, 傳入對應的語言版本標識就可以了.3.前端應用///切換語言
/// ///
///public jsonpresult changelanguage(string
lang)
catch
(exception ex)
jsonpresult result = new
jsonpresult()
;return
result;
}
<4.彩蛋div
id="head-text"
>
<
h1 class
="general-font"
>@html.lang("首頁標題文字1")<
span
class
="japan blue f80 settings-text"
>@html.lang("首頁標題文字1特殊部分")
span
>
h1>
<
h3>@html.lang("首頁標題文字2")
h3>
div>
public5.總結資源檔案用下來, 總體感覺還可以, 如果做多語言**的話, **邏輯上幾乎不用考慮語言的事情. 唯一比較繁瑣的就是要分辨名稱對應的位置, 配置起來內容太多也比較煩人. 不過或許這些工作不用程式設計師的我們來做^_^static
class
localizationhelper
public
static
string getlang(string
key)
\.resources
", filepath, language);
resourcereader reader = new
resourcereader(resxpath);
var entry = reader.cast().firstordefault(x => x.key.tostring() ==key);
reader.close();
return entry.value == null ? ""
: entry.value.tostring();}}
MVC4多語言IHttpModule實現
最近專案需要多語言環境了.mymodule類的具體實現 using system using system.collections.generic using system.globalization using system.linq using system.threading using sy...
軟體多語言
locale是指特定於某個國家或地區的一組設定,包括字符集,數字 貨幣 時間和日期的格式等。在windows中,每個locale可以用乙個32位數字表示,記作lcid。在winnt.h中可以看到lcid的組成。它的高16位表示字元的排序方法,一般為0。在它的低16位中,低10位是primary la...
多語言切換
專案中應用到了多語言切換,鞏固一下。貼上 大家一起學習。廢話不多說直接上 1 新增多語言 在res values 下預設有個strings,需要多種語言就來建立幾個strings,values右鍵 new 乙個 values res file file name 就是strings director...