MudBlazor多國語言設置

1. 安裝必要的套件
  • Microsoft.Extensions.Localization
  • MudBlazor
2. 在 Program.cs 中註冊本地化服務和資源檔案:
  • builder.Services.AddLocalization(); // 加入多國語言服務,要指定時 (options => options.ResourcesPath = "Language");
  • .......
  • var app = builder.Build();
  • .......
  • // 設定支援的語言
  • var supportedCultures = new[] { "en-US", "zh-TW" };
  • var localizationOptions = new RequestLocalizationOptions()
    • .SetDefaultCulture("zh-TW") // 預設語言
    • .AddSupportedCultures(supportedCultures)
    • .AddSupportedUICultures(supportedCultures);
  • app.UseRequestLocalization(localizationOptions); // 啟用多國語言中介軟體
3. 建立資料夾及資料檔
  • (1) 在專案下建立Resources資料夾(可自行命名),也可以再建立子目錄Locales
  • (2) 在Locales目錄上按右鍵 加入->新增項目 搜尋 資源檔,建立Language.resx
  • (3) 在Language.resx上按右鍵 選取[開啟方式...] -> 在選 [受控資源編輯器(舊版)] -> 在視窗最上面有一下拉框叫存取修飾詞(預設是不產生程式碼)將其改成Public,會有警示按確定即可。
  • (4) 可能會產生一個錯誤,重建專案就會消失
  • (5) 再將Language.resx重新命名為Language.en-US.resx,進入建立第一筆欲轉換標籤如:
    • 中性質(即預設值):Unsort
    • en-US:Unsort
  • (6) 再建立資源檔名為Language.zh-TW.resx (因為同是 Language. 不用再去更改'存取修飾詞'選項),此時就會多一欄位zh-TW可填中文
    • zh-TW:無排序

注意:MudButton標籤的按鈕會有問題(會重置為預設語系中文)

只能用一般按鈕加上MudButton的class

按鈕事件結果:

語系變更結果:無排序

發生了未處理的錯誤。 重新載入 🗙