1. 程式人生 > 其它 >UWP基礎教程 - App多語言支援

UWP基礎教程 - App多語言支援

UWP實現本地化非常簡單,所謂本地化表現最為直觀的就是UI上文字和佈局方式了,針對文字,提供不同的語言資原始檔即可,而針對佈局方式,比如在 阿拉伯地區 閱讀順序是從右到左,需要稍稍適配一下。

本文主要講解的是UWP APP如何進行多語言支援

  1. 多語言的檔案 Resources.resw 必須放在以語言程式碼為資料夾名稱的目錄下,預設情況下系統才能識別;
  2. 多語言資料夾放在任何目錄都可以,只需要注意的就是資料夾的名稱必須是語言程式碼,具體的語言程式碼可以點此檢視
  3. 編譯打包時,系統會根據找到的多語言資料夾,在AppManifest檔案的 Resources 節點下面,生成對應的 Resource 子元素 ,但前提是該節點下面必須有如下元素<Resource Language="x-generate"/>
  4. 針對需要佈局RTL的語言,如希伯來語,只需要新增例如語言程式碼為 “he” 的資原始檔即可,系統會自動對標題欄等地方進行RTL佈局,但也僅限於標題欄,頁面內部的RTL,還需要手動設定 FlowDirection 為 RightToLeft;
  5. 如果在執行時,你的 app 不支援當前電腦系統選擇的語言,則預設會使用 Default Language 中設定的語言,該設定選項在你 app 專案的 .csproj 檔案中;

如果你想在App中動態切換語言,你可以設定

ApplicationLanguages.PrimaryLanguageOverride

為指定的語言,關於語言列表我列了常用的出來,具體如下所示

zh-cn、zh、zh-Hans、zh-hans-cn、zh-sg、zh-hans-sg
zh-hk、zh-Hant、zh-mo、zh-tw、zh-hant-hk、zh-hant-mo、zh-hant-tw
de、de-at、de-ch、de-de、de-lu、de-li
en-us、en、en-au、en-ca、en-gb、en-ie、en-in、en-nz、en-sg、en-za、en-bz、en-hk、en-id、en-jm、en-kz、en-mt、en-my、en-ph、en-pk、en-tt、en-vn、en-zw、en-053、en-021、en-029、en-011、en-018、en-014
es、es-cl、es-co、es-es、es-mx、es-ar、es-bo、es-cr、es-do、es-ec、es-gt、es-hn、es-ni、es-pa、es-pe、es-pr、es-py、es-sv、es-us、es-uy、es-ve、es-019、es-419
fr、fr-be、fr-ca、fr-ch、fr-fr、fr-lu、fr-015、fr-cd、fr-ci、fr-cm、fr-ht、fr-ma、fr-mc、fr-ml、fr-re、frc-latn、frp-latn、fr-155、fr-029、fr-021、fr-011
hi、hi-in
it、it-it、it-ch
ja、ja-jp
pt、pt-pt、pt-br
ru、ru-ru

使用這種方法實現的切換App語言,必須重啟 才能生效,可參考 UWP基礎教程 - 重啟應用 自動完成此動作。