多國語功能讓你的web系統可以呈現不同的語言, 以提供使用者更大的方便性, 除此之外, 它對於系統也有加分的功能, 在實作上却十分簡單, 可謂CP值超高, 實作的步驟如下:
(1).進入Visual Studio開啟專案。
(2).在方案總管點選專案右鍵 -> 加入 -> 加入 asp.net資料夾 , 然後選取 App_GlobalResources 或是 App_LocalResources 這2個選項。
(3).如果你的系統有使用Areas來區分子系統, 則在上面步驟選取 App_LocalResources, 如果沒有, 則選取 App_GlobalResources
(4).接下來要新增多國語檔案, 你可以把整個系統的多國語對照資料全部記錄在一個檔案, 如果資料太多, 也可以按照個別畫面來儲存。在方案總管中點選上述第2點的目錄右鍵 -> 加入 -> 資源檔
(5).在對話框中輸入檔案名稱, ex: Lang.resx, 這個預設語系檔案, 如果系統執行時找不到你指定的語系資料, 則會使用這個檔案來顯示, 在這裡我們的預設語系為英文。
(6).重複4,5步驟, 但是檔案名稱為 Lang.zh-TW.resx, 這時候建立的為繁體中文的檔案。
(7).同上, 檔案名稱為 Lang.zh-CN.resx, 建立簡體中文檔案。
(8).上面的步驟已經建立英文, 繁體, 簡體的多國語檔案, 為了編輯上的便利性, 所以我們使用 ResXManager, 下載, 安裝之後, 你必須在 Lang.resx的屬性視窗改變 "自訂工具" 為 PublicResXFileCodeGenerator , 然後點選 Visual Studio 的工具 -> ResX Manager 即可以同時編輯上面3種語系統對照資料。
(9).在cshtml畫面使用多國語資料時, 先引入多國語檔案的 namespace, 應該是 @using [專案名稱].[目錄].App_GlobalResources, 你可以點選 Lang.Designer.cs, 它會顯示正確的 namespace
(10).在畫面將顯示文字改以 @Lang.xxx 來取代, xxx即為多國語檔案的欄位Key
(11).最後一個步驟是載入語系, 在Global.asax.cs 的 Application_BeginRequest() 裡面, 你可以根摅使用者cookie裡面的語系設定, 或是資料庫裡面的 profile 來決定要顯示的語系, 然後執行以下程式 :
Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
(12).考慮編輯大量資料的方便性, 你可以先將多國語資料記錄在 excel 檔案, 再一次匯入, 方法為進入 ResX Manager 畫面, 點選工具列上面的 excel icon 裡面的 Export All / Import 功能即可。
發表評論
此篇評論