【问题标题】:Problems with i18next language detection and integration with hapii18next 语言检测和与 hapi 集成的问题
【发布时间】:2018-11-06 16:50:38
【问题描述】:

我正在尝试为 i18next 编写一个新的语言检测器插件,以便与 hapi 集成。有一个现有的 hapi-i18next 插件很旧(它使用 i18next 的极旧版本, 1.7.10 ),因此几乎没用。 i18next API 文档对如何编写新插件以及语言检测过程的具体内容非常模糊。每次 t() 函数运行时它都会运行吗?它应该是异步的吗?最近有其他人将 hapi 与 i18next 集成吗?我意识到这是相当笼统的,但我不知道还能去哪里。

【问题讨论】:

    标签: internationalization i18next hapi


    【解决方案1】:

    到目前为止从未使用过 hapi,但自第 8 版以来似乎 hapi 发展了很多(实际使用了什么 here

    我不知道那个项目是否还在维护......

    也许你可以尝试创建一个新的 hapi-i18next 插件...(没那么多code

    要创建一个 languageDetector 插件,这应该不是什么大事...从 here 开始,然后继续比较 express language detection 的工作原理

    在 i18next 中,语言检测器被触发 here ...等等初始化/加载和潜在的语言更改

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我最终做的是编写一个 hapi 服务器扩展而不是一个插件,以及一个在启动时运行的模块,它用初始化的 i18next 对象装饰 hapi 服务器对象。安装扩展以运行onPreHandler,它基本上克隆 i18next 对象,将该实例附加到请求对象,并检测语言(从请求标头或查询参数),然后将克隆的实例设置为该语言。这样,每当路由处理程序使用附加到附加到当前请求的实例的t() 函数时,我们就知道我们将翻译成正确的语言。请注意,这仍然适用于 Hapi 16(我需要尽快移植到 17/18)...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-24
        • 1970-01-01
        • 2022-01-19
        • 2016-11-26
        • 2021-03-22
        • 2013-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多