Nancyfx本地化

Nancyfx localization

我正在 Nancy 测试本地化并能够使用嵌入式资源文件让它工作,但问题是我不想要嵌入式资源文件,因为我希望允许它们通过 GUI 或使用文件(如果我走数据库路线或将资源文件设置为"content")。

根据文档,您应该能够覆盖它以支持使用数据库,但我无法让它工作 (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 视图中。它应该 return "HELO!" 一切...但是它不起作用

你的 post 中确实没有问题,所以我将不得不猜测一下并假设你没有得到任何异常,而是你没有看到 "HELO!" 在你看来

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

您可以在从该维基页面 https://github.com/NancyFx/Nancy/blob/8970ac9d6c7cf46e6060f0b83117c19fa18085c2/src/Nancy.Demo.Razor.Localization/DemoBootstrapper.cs#L11

链接的演示的 DemoBootstrapper 中看到它

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

HTH