我通过传递语言代码(en-UK)来调用i18next
更改语言功能:
var changeLng = function (varLng) {
i18next.changeLanguage('en', (err, t) => {
if (err) return console.log('something went wrong loading', err);
t('applog'); // -> same as i18next.t
});
};
我遇到了以下问题:
VM4081 i18next.js:1912 Uncaught TypeError: Cannot read property 'toResolveHierarchy' of undefined
at setLng (VM4081 i18next.js:1912)
at I18n.changeLanguage (VM4081 i18next.js:1927)
at changeLng (VM4079 langUK.js:23)
at HTMLImageElement.<anonymous> (VM4079 langUK.js:8)
我认为i18next
试图执行该操作时出错:
_this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
但我无法确定正确执行此操作所需的条件。 在此先感谢您的支持, 千斤顶
答案 0 :(得分:0)
您是否正确初始化了i18next
?这段代码适合我:
i18next.init({
lng: 'en',
debug: true,
resources: {
en: {
translation: {
"key": "hello world"
}
}
}
}, function(err, t) {
// initialized and ready to go!
console.log("Ready to go!");
});
var changeLng = function(varLng) {
i18next.changeLanguage('en', (err, t) => {
if (err) return console.log('something went wrong loading', err);
t('applog'); // -> same as i18next.t
});
};
changeLng()
<script src="https://unpkg.com/i18next/i18next.min.js"></script>
答案 1 :(得分:0)
这可能是由于i18next
的错误导入引起的,或者尚未初始化,例如“从'i18next'导入i18n”。
首先运行init函数,然后可以运行changeLanguage。