如何使用ngx-translate翻译服务检测I.E 11中的语言变化

时间:2019-09-03 12:55:26

标签: browser internet-explorer-11 ngx-translate

我正在尝试通过使用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未完成,它将溢出。

预先感谢

应根据语言变化进行翻译

0 个答案:

没有答案