Windows应用商店中的mvvmcross本地化

时间:2013-06-26 00:44:42

标签: localization windows-store-apps mvvmcross

首先,祝贺mvvmcross的创作者,真的太棒了....

现在....我开始在Windows手机和Windows商店应用程序中使用mvvmcross到目前为止没有问题,使用演示作为指导,我设法几乎所有的东西都运行起来,特别是json和sqlite,但是我我在Windows商店项目中遇到了本地化问题,我没有看到这个案例的演示,只针对windows手机(就像魅力一样)......我认为它应该类似于Windows手机,但我没有让它工作,它运行,但它似乎找不到.json文件..

在Windows应用商店应用中是否存在用于本地化的附加步骤? (资源位置,构建动作......)以及在wpf应用程序中怎么样?

提前致谢

罗伊

1 个答案:

答案 0 :(得分:0)

看起来基于商店的资源加载器存在问题 - 它不喜欢正斜杠。

我刚刚将Babel Windows Store和Wpf示例应用程序上传到https://github.com/slodge/MvvmCross-Tutorials/tree/master/Babel


对于WindowsStore,存在后退和正斜杠的错误。

要解决此问题,在Setup.cs中有一个Hack修正类:

public class HackMvxStoreResourceLoader : MvxStoreResourceLoader
{
    public override void GetResourceStream(string resourcePath, Action<Stream> streamAction)
    {
        // in 3.0.8.2 and earlier we needed to replace the "/" with "\\" :/
        resourcePath = resourcePath.Replace("/", "\\");
        base.GetResourceStream(resourcePath, streamAction);
    }
}

public class Setup : MvxStoreSetup
{
    public Setup(Frame rootFrame) : base(rootFrame)
    {
    }

    protected override IMvxApplication CreateApp()
    {
        Mvx.RegisterType<IMvxResourceLoader, HackMvxStoreResourceLoader>();
        return new Core.App();
    }
}

我还将此添加到https://github.com/slodge/MvvmCross/issues/332 - 应该在将来的版本中修复。


对于Wpf,资源加载器应该可以工作,但是当前发布的nuget包中存在一些问题需要手动补丁:

  • 手动添加ResourceLoader.Wpf插件程序集 - 请参阅lib/HACKEDIN_net45
  • 手动添加两个Bootstrap类 - 请参阅Wpf/Setup.cs中的'hack'引导类

这些缺少的nuget步骤记录在https://github.com/slodge/MvvmCross/issues/267中 - 标记为已修复 - 因此应该在下一个nuget发布包中。