Nancyfx本地化

时间:2016-01-18 02:10:30

标签: nancy

我在Nancy测试本地化并且能够使用EMBEDDED资源文件使其工作但问题是我不想要嵌入式资源文件,因为我希望允许通过GUI编辑它们或使用该文件(如果我进入数据库路由或将资源文件设置为"内容")。

根据doucmentation,您应该能够覆盖它以支持使用数据库但我无法使其工作(https://github.com/NancyFx/Nancy/wiki/Localization):

public class ResourceManager : ResourceBasedTextResource
{
    public ResourceManager(IResourceAssemblyProvider resourceAssemblyProvider) : base(resourceAssemblyProvider)
    {

    }

    public new string this[string key, NancyContext context]
    {
        get
        {
            return "HELO!";
        }
    }
}

这只是我在乱搞,但当我做@ Text.Localization时,我希望在Razor视图中。它应该返回" HELO!"对于一切......但它不起作用

1 个答案:

答案 0 :(得分:2)

你的帖子中确实没有问题,所以我不得不猜测一下,并假设你没有得到任何例外,而是你没有看到& #34; HELO&#34!;在你看来

仅仅实施新的ResourceBasedTextResource课程是不够的。这是一个核心组件,因此您必须明确告诉Nancy使用它。您可以通过覆盖InternalConfiguration的{​​{1}}属性并告诉Nancy使用您的实现来实现此目的

您可以在该wiki页面链接的演示的Bootstrapper中看到它https://github.com/NancyFx/Nancy/blob/8970ac9d6c7cf46e6060f0b83117c19fa18085c2/src/Nancy.Demo.Razor.Localization/DemoBootstrapper.cs#L11

此外,如果您不打算使用资源文件,那么您应该考虑从ITextResource接口继承。它是一个简单的界面,所以它应该是直截了当的。

HTH