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

标签 c# localization windows-store-apps windows-8.1 windows-phone-8.1

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

最佳答案

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

  1. 将其添加到.resw 文件
  2. 将其添加到提供对资源的访问的静态类
  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 File Code Generator VS 扩展
  7. 转到 Resources.resw 文件属性并将自定义工具设置为“ReswFileCodeGenerator”(您也可以在自定义工具命名空间中指定命名空间)
  8. 要解决支持的语言检测问题(当前生成的 list 包含根据文件夹结构“Strings/en-US”支持的语言),您需要在应用程序库中为所有必需的语言添加文件夹(“fr-FR”、“bg-BG”等),并用一个假 key 放入 Resources.resw 文件。
  9. 构建您的解决方案并尽情享受吧!

通过这种方法,您的所有资源都可以通过 ReswFileCodeGenerator 生成的静态类获得,并且所有资源都与 XAML 中的 x:uid 一起使用。您无需关心不同语言之间的 key 同步。 MAT 还可以为您翻译您的资源。

关于c# - Windows Universal/Store App 中的类库本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26180245/

相关文章:

c# - 为什么这个循环无限工作

ASP.NET 本地化 : Do changes in resx files results in sessions being killed?

asp.net - 在 mvc 4 中进行多语言(本地化)的最佳方式(性能)是什么?

c# - 如何设置文本框标题的样式?

c# - xbox kinect 的 C# 库是否适用于 windows kinect SDK?

c# - 如何计算 WPF 中客户区的偏移量?

linux - GTK 中的阿拉伯语本地化

javascript - Windows 运行时 Javascript 应用程序 - 启动 Javascript 文件

windows-store-apps - 如何在 Windows 应用商店应用程序中显示圆形图像

c# - 是否可以使抽象方法的参数列表具有可覆盖的长度和类型?