gpt4 book ai didi

javascript - i18next 即时更改 resGetPath

转载 作者:行者123 更新时间:2023-11-29 21:47:56 26 4
gpt4 key购买 nike

我有一个使用 i18next 模块处理 i18n 的 Node 应用程序,但我遇到了一个似乎无法在服务器端解决的问题。

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

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

这是为了将其设置为在客户端使用。

稍后在不同的文件中,我试图重置 resGetPath 属性,以便将翻译文件加载到与正常文件不同的位置(一些文件位于默认的 locales/__lng__/__ns__.json 路径,其他的在各自独立的文件夹中)。

我似乎无法在 i18n 对象上找到执行此操作的特定方法,因此我一直在尝试使用回调再次运行 init 方法。

然而,即使我这样做,resGetPath 属性也没有改变,它也不会从新文件中获取翻译字符串。

如果我在 app.js 中的第一个 init 调用中设置了 resGetPath 属性,尽管它按预期工作(尽管它失去了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 = {},然后它会强制重新加载。

关于javascript - i18next 即时更改 resGetPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30455146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com