我的应用程序在WPF和Android(后来的Windows Phone)中以mvvmcross作为框架运行。我使用像Babel(N21)示例这样的JsonLocalisation实现了本地化,它在Android中运行良好。但无论我在WPF中尝试什么,我都会得到这条消息;
斯图尔特在他的视频教程中说,json翻译文件必须作为“内容”包含在内,而不是复制到output folder - 就像;mvx:警告:0,22无法为Danish.SettingsViewModel加载语言文件 - FileNotFoundException:无法找到资源文件MyAppResources / Text / Danish / SettingsViewModel.json 在Cirrious.MvvmCross.Plugins.JsonLocalisation.MvxContentJsonDictionaryTextProvider。 LoadJsonFromResource(String namespaceKey,String typeKey,String resourcePath)at> Cirrious.MvvmCross.Plugins.JsonLocalisation.MvxTextProviderBuilder.LoadResources(String> whichLocalisationFolder)“
但是用“dotPeek”查看已编译的可执行文件并不会显示文件。
我错过了一些明显的东西吗?任何提示都将受到高度赞赏。即使是让JsonLocalisation在WPF工作的人的确认也会很好。
修改
好吧,我在WPF mainWindow中尝试了这段代码。我知道这个调用是在MvxWPFResourceLoader内部使用的。
public MainWindow()
{
....
//This return null without exceptions.
var t = Application.GetResourceStream(new Uri("MyAppResources/Text/Danish/SettingsViewModel.json", UriKind.Relative));
//This throwns an IOException; Cannot locate resource 'thisdoesnotexist/text/danish/settingsviewmodel.json'.
var y = Application.GetResourceStream(new Uri("ThisDoesNotExist/Text/Danish/SettingsViewModel.json", UriKind.Relative));
}
似乎当路径错误时抛出异常。如果它是正确的,它只返回null !!?!我有点困惑,有什么想法吗?
祝你好运
答案 0 :(得分:1)
感谢您的快速回答(以及mvvmcross!)。
您提供的链接是带有WPF样本的Babel解决方案 - 正是我需要的。我错误地使用了没有WPF样本的from N21: - )
无论如何,在查看示例时,我注意到json文件必须包含为“Resource”而不是“Content”。这一切都有所不同 - 欢呼!
祝你好运