C# Windows Universal/Store应用程序中的类库本地化

C# Windows Universal/Store应用程序中的类库本地化,c#,localization,windows-store-apps,windows-8.1,windows-phone-8.1,C#,Localization,Windows Store Apps,Windows 8.1,Windows Phone 8.1,我有一个包含Windows应用商店应用程序项目和类库项目的解决方案,我想添加本地化支持。 如何将所有资源文件添加到我的类库中,并在我的应用程序和类库中使用它们?好的,我找到了如何做到这一点,并找到了一个示例项目 基本上实现如下: 在类库中创建一个名为“Strings”的文件夹 在Strings文件夹中,为每种语言创建一个(例如:en、fr、pt等) 并在每个文件夹中添加一个Resources.resw,其中包含您的密钥/值 现在在类库中添加一个新类,该类具有以下代码(适用于您的项目): 在C

我有一个包含Windows应用商店应用程序项目和类库项目的解决方案,我想添加本地化支持。

如何将所有资源文件添加到我的类库中,并在我的应用程序和类库中使用它们?

好的,我找到了如何做到这一点,并找到了一个示例项目 基本上实现如下:

  • 在类库中创建一个名为“Strings”的文件夹
  • 在Strings文件夹中,为每种语言创建一个(例如:en、fr、pt等)
  • 并在每个文件夹中添加一个Resources.resw,其中包含您的密钥/值
现在在类库中添加一个新类,该类具有以下代码(适用于您的项目):

在ClassLibrary或MainApp中,只需调用以下命令:

string text = LocalizationTool.MyStringOne;

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

  • 将其添加到.resw文件
  • 将其添加到提供对资源访问的静态类中
  • 将其添加到每个特定于语言的.resw文件(例如:en、fr、pt等)
  • 您可以使用以下方法:

  • 创建“Strings”文件夹,并在类库中为默认语言(例如“en-US”)添加一个文件夹
  • 使用所需的键/值将Resources.resw文件添加到“en-US”文件夹
  • 安装
  • 在VS中为类库启用MAT(VS->Tools->Enable Multilingual App Toolkit)
  • 将所需语言添加到类库(VS->Project->Add Translation languages…)
  • 安装VS扩展
  • 转到Resources.resw文件属性并将自定义工具设置为“ReswFileCodeGenerator”(也可以在自定义工具命名空间中指定命名空间)
  • 要解决受支持的语言检测问题(当前生成的清单包含符合文件夹结构“Strings/en-US”的受支持语言),您需要在应用程序库中添加所有所需语言的文件夹(“fr-fr”、“bg-bg”等),并将Resources.resw文件仅使用一个伪密钥
  • 构建您的解决方案并享受
    使用这种方法,您的所有资源都可以通过ReswFileCodeGenerator生成的静态类使用,并且所有这些资源都可以在XAML中使用x:uid。您不需要关心不同语言之间的密钥同步。MAT还可以为您翻译资源。

    非常感谢您。。你救了我一天。我找了三个多小时才来到这里。:)
    string text = LocalizationTool.MyStringOne;