我有一个包含 3 个项目的解决方案:
- 包含用于本地化的函数和 LocalizedStrings.resx 文件的可移植类库
- 适用于 Windows 7 的 WPF 应用程序
- 适用于 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/