我正在尝试创建一个UWP应用并重用我们存储在开发人员/翻译人员使用的外部数据库中的本地化键/值。我们根据平台/应用需要将这些导出为resx或其他格式 新的重做方式是不行,因为这需要修改现有的密钥名称或在导出时修改它们并将本地化密钥的依赖项添加到XAML元素名称......这听起来很愚蠢。 幸运的是,resx可以在UWP中使用它们在可移植类库中,它可以通过IValueConverter从XAML引用。在Visual Studio上通过调试/模拟器运行时,它可以正常工作。我的问题是,当您创建应用程序包并将其安装到Win10平板电脑时,例如,它不起作用。
示例:
XAML使用的IValueConverter实现最终在PCL中调用以下代码:
// hardcoded CI for testing
var cultureInfo = new cultureInfo("fr");
string value = Resources.ResourceManager.GetString(key, cultureInfo);
在我可以调试的Visual Studio中,它返回键的正确值(与Resources.fr.resx中的值完全匹配) 但是,在创建/安装应用程序包后,value为null 我已经尝试了默认resx(Resources.resx)和特定语言resx的公共/内部/无代码生成的所有组合。没有用。什么是应用程序包装,这使它无法正常工作?这是一个UWP错误还是我做错了什么?