我正在使用Node JS Azure函数。我正在尝试使用i18next将函数返回的错误消息国际化。我可以找到express或plain node server的示例。在这些情况下,可以使用中间件模式。
但是对于函数,我需要一种方法来调用i18next.t('key '),可能带有一个我找不到的语言参数。在每次调用i18next.t('key')之前调用i18next.changeLanguage()似乎并不实用。
我的框架代码如下所示
const i18next = require("i18next");
const backend = require("i18next-node-fs-backend");
const options = {
// path where resources get loaded from
loadPath: '../locales/{{lng}}/{{ns}}.json',
// path to post missing resources
addPath: '../locales/{{lng}}/{{ns}}.missing.json',
// jsonIndent to use when storing json files
jsonIndent: 4
};
i18next.use(backend).init(options);
exports.getString = (key, lang) => {
//i18next.changeLanguage(lang,
return i18next.t(key);
}
有没有可能获取翻译而不做changeLanguage每次?
2条答案
按热度按时间v09wglhw1#
正如注解中所指出的,无论何时需要定义或更改语言,都需要调用
i18next.changeLanguage(lang)
函数。您可以在这里查看文档。
代码可能如下所示
lp0sw83n2#
我建议使用getFixedT函数,并且不要使用过时的i18next-node-fs-backend,而是使用i18next-fs-backend。
在此阅读更多信息:https://locize.com/blog/i18n-serverless/