下面的代码(Alexa技能的本地化拦截器)适用于i18next版本10.5.0,但在最新版本中不起作用。它得到一个功能t不被识别的消息,它似乎没有正确绑定。
我找不到为什么会发生这种情况(我不知道i18next中有什么更新)。任何人都可以对此有所了解吗?
// This request interceptor will bind a translation function 't' to the requestAttributes object
const LocalizationInterceptor = {
process(handlerInput) {
const localizationClient = i18n.use(sprintf).init({
lng: handlerInput.requestEnvelope.request.locale,
fallbackLng: 'en',
overloadTranslationOptionHandler: sprintf.overloadTranslationOptionHandler,
resources: languageStrings,
returnObjects: true
});
const attributes = handlerInput.attributesManager.getRequestAttributes();
attributes.t = function (...args) {
return localizationClient.t(...args);
}
}
}