使用带有基于resx的本地化字符串的可移植类库的UWP应用程序

时间:2016-06-22 21:08:36

标签: xml uwp ivalueconverter

我正在尝试创建一个UWP应用并重用我们存储在开发人员/翻译人员使用的外部数据库中的本地化键/值。我们根据平台/应用需要将这些导出为resx或其他格式 新的重做方式是不行,因为这需要修改现有的密钥名称或在导出时修改它们并将本地化密钥的依赖项添加到XAML元素名称......这听起来很愚蠢。 幸运的是,resx可以在UWP中使用它们在可移植类库中,它可以通过IValueConverter从XAML引用。在Visual Studio上通过调试/模拟器运行时,它可以正常工作。我的问题是,当您创建应用程序包并将其安装到Win10平板电脑时,例如,它不起作用。

示例:

XAML使用的IValueConverter实现最终在PCL中调用以下代码 //用于测试的硬编码CI var cultureInfo = new cultureInfo(" fr");

string value = Resources.ResourceManager.GetString(key,cultureInfo);

在我可以调试的Visual Studio中,它返回键的正确值(与Resources.fr.resx中的值完全匹配) 但是,在创建/安装应用程序包后,value为null 我已经尝试了默认resx(Resources.resx)和特定语言resx的公共/内部/无代码生成的所有组合。没有用。什么是应用程序包装,这使它无法正常工作?这是一个UWP错误还是我做错了什么?

1 个答案:

答案 0 :(得分:-1)

要使其正常工作,您必须在本地计算机上安装语言。

请参阅:Put UI strings into resources

  1. 在您的设备上启用设置
  2. 选择时间&语言即可。
  3. 选择地区&语言(或在手机或手机上 仿真器,的语言)。请注意当时显示的语言 你运行应用程序是列出的顶级语言,英语,德语, 还是法国人如果您的顶级语言不是这三个应用程序之一 回到应用程序支持的列表中的下一个。
  4. 如果您的计算机上没有这三种语言,请添加 点击添加语言并将其添加到列表中,将其遗漏。
  5. 要使用其他语言测试应用,请在中选择语言 列出并单击设为默认值(或在手机或手机模拟器上,点按 并按住列表中的语言,然后点按上移直到它 在顶部)。然后运行应用程序。
  6. 您必须将“生成应用包”设置更改为“从不”而不是默认的“始终

    enter image description here