JsonLocalisation和WPF无法找到我的翻译文件

时间:2014-09-25 07:49:16

标签: json wpf localization xamarin.android mvvmcross

我的应用程序在WPF和Android(后来的Windows Phone)中以mvvmcross作为框架运行。我使用像Babel(N21)示例这样的JsonLocalisation实现了本地化,它在Android中运行良好。但无论我在WPF中尝试什么,我都会得到这条消息;

  

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)“

斯图尔特在他的视频教程中说,json翻译文件必须作为“内容”包含在内,而不是复制到output folder - 就像;

Build action

但是用“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 !!?!我有点困惑,有什么想法吗?

祝你好运

1 个答案:

答案 0 :(得分:1)

感谢您的快速回答(以及mvvmcross!)。

您提供的链接是带有WPF样本的Babel解决方案 - 正是我需要的。我错误地使用了没有WPF样本的from N21: - )

无论如何,在查看示例时,我注意到json文件必须包含为“Resource”而不是“Content”。这一切都有所不同 - 欢呼!

enter image description here

祝你好运