i18next正在改变resGetPath
我有一个节点应用程序使用i18next模块来处理国际化,但我有一个问题,我似乎无法解决在服务器端。
该应用程序构build在node
并使用express
框架。
在ap的入口点的主要app.js
文件中,我需要i18n
模块并运行init
方法。
这是为了在客户端使用。
后来在一个不同的文件中,我试图重置resGetPath
属性,以便在不同的位置加载一个翻译文件到正常的(一些文件位于默认locales/__lng__/__ns__.json
path,其他人在他们的拥有单独的文件夹)。
我似乎无法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 = {}
,然后强制重新加载。