Windows Universal/Store App中的类库本地化

Sch*_*Box 3 c# localization windows-store-apps windows-8.1 windows-phone-8.1

我有一个Windows Store应用程序项目和类库项目的解决方案,我想添加本地化支持.
如何将所有资源文件添加到我的类库并在我的应用程序和类库中使用它们?

Ale*_*aev 7

为了避免在添加新资源字符串时编写大量样板代码和容易出错的代码,例如:

  1. 将其添加到.resw文件
  2. 将其添加到提供资源访问权限的Static类中
  3. 将其添加到每个特定语言的.resw文件中(例如:en,fr,pt等)

您可以使用以下方法:

  1. 创建"Strings"文件夹,在类库中只添加一个默认语言文件夹(例如"en-US")
  2. 将Resources.resw文件添加到具有所需键/值的"en-US"文件夹中
  3. 安装Multilingual App Toolkit
  4. 在VS中为类库启用MAT(VS->工具 - >启用多语言应用工具包)
  5. 将所需语言添加到类库(VS->项目 - >添加翻译语言...)
  6. 安装ResW文件代码生成器 VS扩展
  7. 转到Resources.resw文件属性并将自定义工具设置为"ReswFileCodeGenerator"(您还可以在自定义工具命名空间中指定命名空间)
  8. 要解决支持的语言检测问题(当前生成的清单包含根据文件夹结构"Strings/en-US"支持的语言),您需要在App库中添加所有必需语言的文件夹("fr-FR","bg-BG" "等,并将Resources.resw文件只包含一个假密钥.
  9. 构建您的解决方案并享受!

使用这种方法,所有资源都可以通过ReswFileCodeGenerator生成的静态类获得,并且所有资源都可以在XAML中使用x:uid.您不需要关心不同语言之间的密钥同步.MAT也可以为您翻译资源.