跳到主要內容

發表文章

目前顯示的是 3月, 2021的文章

Asp.Net Core Web 多國語系(一)

微軟內建的多國語系目前分為三種 : 第一種是寫在Controller中的(通常用在商業邏輯判斷之錯誤顯示) 第二種是寫在View中的(通常用於畫面功能顯示以及UI顯示用) 第三種是寫在Data Model的Attribute中, 然後自動顯示在View中(通常用於與資料庫相關之資訊顯示, 如欄位名稱, 資料輸入之格式錯誤訊息) 我先來嘗試寫第一種 - Controller : 首先我先建立一個 Asp.Net Core 的 MVC 專案 NetCore ( 程式碼下載 , 如果想從無到有自己動手一步一步做, 可以參考微軟官網範例 MvcMovie , 我的專案就是從這小改來的, 只是將資料庫從LocalDB小改成InMemoryDB而已) 第二步打開Startup.cs, 並在下圖位置新增程式碼 services.AddLocalization(options => options.ResourcesPath = "Resources"); 第三步新增Resources資料夾, 並新增兩個資源檔案 "Controllers.MoviesController.resx" 和 "Controllers.MoviesController.en-US.resx" 如下圖 : Controllers.MoviesController.resx檔案的內容如下(檔案名稱沒包含語系表示是預設語系): Controllers.MoviesController.en-US.resx檔案的內容如下(en-US表示英語系): 以上表示系統是英語語系,  "Hello" 會轉換成 "Hello(en-US,Movies)" 來顯示, 正常應該是轉換成  "Hello" 就好, 我多顯示其他文字只是用來知道這個 "Hello" 是由哪個語系檔案轉換來的而已 非英語系的 "Hello" 則會轉換成 "Hello(Default,Movies)" 來顯示, 表示是從預設檔案而來 以上第二以及第三兩個步驟是多國語系的共通步驟, 過來才是 Controller 的部分 第四步驟則是打開 MoviesControlle