c# - 在 UWP 中使用 PCL resx 字符串

标签 c# localization win-universal-app portable-class-library

我有一个包含 3 个项目的解决方案:

  1. 包含用于本地化的函数和 LocalizedStrings.resx 文件的可移植类库
  2. 适用于 Windows 7 的 WPF 应用程序
  3. 适用于 Windows 10 的通用应用

在我的 WPF 应用程序中,我使用以下代码来访问 resx 文件中的字符串:

private ResourceManager localizedStrings;

public MainWindow()
{
    localizedStrings = new ResourceManager(typeof(LocalizedStrings));

    InitializeComponent();

    tbTest.Text = localizedStrings.GetString("headerToolData");

现在我想在我的 UWP 应用中使用相同的代码,但它不起作用。我总是在包 list 中获取设置为“默认语言”的语言值。

如何正确访问 UWP 应用中 pcl 中包含的 resx 文件中定义的字符串?

最佳答案

您在 UWP 应用程序中仅获得默认语言的原因是该应用程序不知道它应该支持其他语言。

UWP 知道这一点的方式是通过约定。在 UWP 中,您通常会有一个名为 Strings 的文件夹以及所有受支持区域性的子文件夹,其中包含 resw 文件。

我猜您的 UWP 应用程序中没有此结构。要测试是否属于这种情况,请尝试创建此结构并在包含至少一种资源的文件夹中添加至少一个文件。

如果这不起作用,您可能需要查看这两个链接 Shared localization for WP8 and W Share localization files between WP8 and Win8

它们是为 Win8 编写的,但对于 UWP 应该同样工作。

简而言之,他们建议创建一个类来公开本地化资源。

关于c# - 在 UWP 中使用 PCL resx 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515336/

相关文章:

c# - 具有引用程序集的多目标 .NET 3.5 和 .NET 4.0

objective-c - 如何定义一个函数宏来检查多个本地化字符串文件之间的键?

c# - 通过 UWP startupTask 扩展检测启动

javascript - WinJS Flyout 不断关闭 - 无法单击控件

c# - 创建自定义文本编辑控件

c# - C# 中的目录监听器

c# - 使用 Entity Framework 的具有多对多关系的 Linq 查询

c# - Dispose 后保持 MemoryMappedFile 事件

ios:本地化表情符号名称(kCFStringTransformToUnicodeName)

asp.net-mvc-4 - 本地化比较属性