我正在开发一个webapp。我正在使用i18next,除非我在选项上指定“lng”,否则它不会检测语言。 如果我使用“navigator.language || navigator.userLanguage”,Chrome就可以了。它返回类似“en”的内容。但是Firefox例如返回“en-GB”。我不使用区域翻译,i18next不会将“en-GB”重定向到“en”。所以,系统不起作用。
这是我的代码:
$(document).ready(function(){
i18next.use(i18nextXHRBackend);
i18next.init({
'debug': true,
'lng': navigator.language || navigator.userLanguage,
'fallbackLng': 'en',
'load': 'currentOnly',
'backend': {
loadPath: 'locales/{{lng}}/{{ns}}.json'
}
}, function() {
jqueryI18next.init(i18next, $);
$('body').localize();
});
});
答案 0 :(得分:2)
i18next支持区域语言......这就是本地化的内容。
如果您只想支持没有区域设置load: 'languageOnly'
的语言:
$(document).ready(function(){
i18next.use(i18nextXHRBackend);
i18next.init({
'debug': true,
'load': 'languageOnly',
'lng': navigator.language || navigator.userLanguage,
'fallbackLng': 'en',
'load': 'currentOnly',
'backend': {
loadPath: 'locales/{{lng}}/{{ns}}.json'
}
}, function() {
jqueryI18next.init(i18next, $);
$('body').localize();
});
});
这将避免接受en-GB进行查找并仅使用en。如果没有设置,i18next仍会输出相同的结果,但也会尝试加载en-GB翻译。