MVC多語言應用

2022-01-24 09:39:20 字數 2209 閱讀 8672

最近發現資源檔案是個好東西, 用的好了可以給開發人員節約不少的時間. 例如做乙個多語言的**, 資源檔案就有不小的用處.

這裡以乙個mvc4的專案為例, 簡單說一下過程:

1.資源檔案的處理

首先準備資源檔案, 即語言包. 為website專案新增兩個resx檔案, 如圖:

接著分別為這兩個檔案新增內容(名稱/值),如圖:

資源檔案第三步, 用命令列工具resgen.exe將這兩個resx檔案生成同名的resources檔案, 如zh-cn.resources、en-us.resources, 生成後將這兩個resources檔案放到resource目錄下.

關於resgen.exe工具的詳細用法, 這裡只給出命令列指令碼, 不做介紹, 有興趣的可以去找相關資料.

至此,資源檔案(語言包)就做好啦,下面就是在專案中的使用了。

2.後端**

protected

sender,eventargs e)

thread.currentthread.currentuiculture =ci;

thread.currentthread.currentculture =cultureinfo.createspecificculture(ci.name);}}

在要應用的控制器中新增changelanguage方法, 如下:

///

///切換語言

/// ///

///public jsonpresult changelanguage(string

lang)

catch

(exception ex)

jsonpresult result = new

jsonpresult()

;return

result;

}

切換語言時呼叫changelanguage方法, 傳入對應的語言版本標識就可以了.3.前端應用

<

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>

4.彩蛋

public

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();}}

5.總結資源檔案用下來, 總體感覺還可以, 如果做多語言**的話, **邏輯上幾乎不用考慮語言的事情. 唯一比較繁瑣的就是要分辨名稱對應的位置, 配置起來內容太多也比較煩人. 不過或許這些工作不用程式設計師的我們來做^_^

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...