i18next正在改变resGetPath

我有一个节点应用程序使用i18next模块来处理国际化,但我有一个问题,我似乎无法解决在服务器端。

该应用程序构build在node并使用express框架。

在ap的入口点的主要app.js文件中,我需要i18n模块并运行init方法。

这是为了在客户端使用。

后来在一个不同的文件中,我试图重置resGetPath属性,以便在不同的位置加载一个翻译文件到正常的(一些文件位于默认locales/__lng__/__ns__.jsonpath,其他人在他们的拥有单独的文件夹)。

我似乎无法find一个具体的方法在i18n对象这样做,所以我一直在尝试只是用callback运行init方法。

但是,即使我这样做resGetPath属性不会更改,它不会从新文件中获取翻译string。

如果我在app.js中的第一个init调用中设置了resGetPath属性,尽pipe它按预期工作(虽然然后它在locales/__lng__/__ns__.json失去了正常的翻译)

基本上这是我想要做的:

app.js

 i18n.init({ detectLngQS: 'lang', debug: false, useCookie: false, detectLngFromHeaders: true, fallbackLng: ['en-GB', 'dev'] }); 

after-app.js

 i18n.init({ resGetPath: path.join(__dirname, '../new-path.json') }, function(t) { // Here `t` does not get the strings in the new resGetPath }); 

任何人都可以告诉我如何改变resGetPath ,或者告诉我我做错了什么?

我想到了。

在运行init之前,只需运行i18n.sync.resStore = {} ,然后强制重新加载。