Internationalization i18next语言检测和与hapi集成的问题

Internationalization i18next语言检测和与hapi集成的问题,internationalization,i18next,hapi,Internationalization,I18next,Hapi,我正在尝试为i18next编写一个新的语言检测器插件,以便与hapi集成。现有的hapi-i18next插件非常旧(它使用的是i18next的一个非常旧的版本,1.7.10),所以大部分都是无用的。i18nextapi文档对于如何编写新插件以及语言检测过程是什么都非常模糊。它是否每次运行t()函数时都运行?它应该是异步的吗?最近有没有其他人将hapi与i18next集成在一起?我意识到这是相当普遍的,但我不确定还有什么地方可以使用。到目前为止从未使用过hapi,但似乎hapi自第8版(实际使用的

我正在尝试为i18next编写一个新的语言检测器插件,以便与hapi集成。现有的hapi-i18next插件非常旧(它使用的是i18next的一个非常旧的版本,1.7.10),所以大部分都是无用的。i18nextapi文档对于如何编写新插件以及语言检测过程是什么都非常模糊。它是否每次运行t()函数时都运行?它应该是异步的吗?最近有没有其他人将hapi与i18next集成在一起?我意识到这是相当普遍的,但我不确定还有什么地方可以使用。

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

我不知道那个项目是否还在继续

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

要创建languageDetector插件,它不应该是一件大事。。。通过比较工作原理开始并继续

在i18下一步,将触发语言检测器 …因此在初始化/加载和潜在的语言更改时


我希望这能有所帮助。

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