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基础教程 - 重启应用 自动完成此动作。