从 i18next 解构 t 方法会破坏它

Destructuring the t method out of i18next breaks it

我想使用 i18next 翻译我的 node.js 申请。 在文档和示例中,翻译是这样进行的(假设 i18next 已经正确初始化):

const i18next = require("i18next")
console.log(i18next.t("key"))

我有大量的文本要在不同的地方翻译,所以我希望能够通过像这样解构 t 方法来节省时间:

const { t } = require("i18next")
console.log(t("key"))

但我收到以下错误:TypeError: Cannot read property 'translator' of undefined。看起来该方法正在使用 i18next 对象的其他属性,导致其解构破坏它。

有什么解决方法吗?

我还没有验证这一点,但你应该可以做这样的事情

const i18next = require("i18next")
const t = i18next.t.bind(i18next);
console.log(t("key"))

不过我会建议一些比 t 更好的命名...