我正在尝试通过使用ngx-translate来实现应用程序的国际化,并且能够使用ngx-translate转换服务来翻译标签和所有内容,并且在chrome中可以正常工作,它可以检测到语言并回退到特定的json。
但是,关于I.E 11,它没有做任何事情,也不接受任何语言,并且默认情况下,它仅给出en。我从Internet选项>语言>设置语言首选项>中文(移至顶部)更改了语言,然后刷新。
这是我正在执行的代码。
这是我的代码:
translateService.addLangs(['en_gb', 'zh', 'en']);
translateService.setDefaultLang('en');
let browserLang = translateService.currentLang;
// even i have used this.translateService.getBrowserlang() also but dint worked for I.E
browserLang = navigator.language;
if (browserLang.indexOf('-') !== -1) {
browserLang = browserLang.split('-')[0];
}
console.log('Languagecheck', browserLang);
translateService.use(browserLang.match(/en|zh|en_gb/) ? browserLang : 'en');
在某处我也尝试过
let m;
let n;
const isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
if ( isIEOrEdge ) {
$.ajax({
url: 'http://ajaxhttpheaders.appspot.com',
dataType: 'jsonp',
success(headers) {
let language = headers['Accept-Language'];
m = language.split(',');
n = m[0].toString();
if (m[0].indexOf('-')) {
m[0] = m[0].split('-');
n = m[0][0].toString();
}
console.log(typeof(n));
}
});
setTimeout(() => {
this.useLanguage(n);
}, 3000);
} else {
let browserLang = navigator.language;
if (browserLang.indexOf('-') !== -1) {
browserLang = browserLang.split('-')[0];
}
this.useLanguage(browserLang);
}
}
useLanguage(language: string) {
console.log('Language called:', language);
// this.data.addNewTabWithCanvas(language);
this.translateService.use(language);
}
但是没有运气。请帮帮我,因为如果I.E未完成,它将溢出。
预先感谢
应根据语言变化进行翻译