WinUI3 多語系 示範

在專案資料夾下找到 Package.appxmanifest 檔案,會有 Resources 標籤:
    
<Resources>
  <Resource Language="x-generate"/>
</Resources>
    

將 Resources 標籤依照語系替換為下面內容,這裡示範的是會有英文(en-US)和正體中文(zh-TW)
    
<Resources>
  <Resource Language="en-US"/>
  <Resource Language="zh-TW"/>
</Resources>
    

在專案下建立 Strings 資料夾,再依照語系建立語系名稱的資料夾,裡面再建立 Resources.resw 檔案

使用滑鼠右鍵點擊「語系名稱的資料夾」,點選「加入」>「新增項目」



選擇「資源檔 (.resw)」

我們建立名稱為「Test1.Text」的資源,值為「測試1」
這裡一定要加上「.Text」,因為指向文字區塊的屬性

在頁面上就可以使用 x:Uid="Test1" 綁定,會將「Test1.Text」的內容填入
    
<TextBlock x:Uid="Test1"/>
    

會依照作業系統自動選擇語系,載入時也可以使用下面這行來改變多語系:
    
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "zh-tw";
    



參考資料:
Microsoft.Learn - Localize strings in your UI and app package manifest
Microsoft.Learn - Localize your WinUI 3 app

留言