Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度转换文件(ngx translate)加载两次_Angular_Ngx Translate - Fatal编程技术网

Angular 角度转换文件(ngx translate)加载两次

Angular 角度转换文件(ngx translate)加载两次,angular,ngx-translate,Angular,Ngx Translate,我注意到,在浏览器的开发者工具网络选项卡中,我的Angular应用程序翻译文件被加载了两次 怎么了? 这应该发生吗 如果您使用的语言与使用ng2 translate的TranslateService设置的默认语言相同,则可能发生这种情况 错误: constructor(translate: TranslateService) { const DEFAULT_LANG = 'en'; const userLang = translate.getBrowserLang();

我注意到,在浏览器的开发者工具网络选项卡中,我的Angular应用程序翻译文件被加载了两次

怎么了? 这应该发生吗


如果您使用的语言与使用ng2 translate的
TranslateService设置的默认语言相同,则可能发生这种情况

错误:

  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    translate.setDefaultLang(DEFAULT_LANG);
    translate.use(userLang);
  }
  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    if (userLang !== DEFAULT_LANG) {
      translate.setDefaultLang(DEFAULT_LANG);
    }

    translate.use(userLang);
  }
建议的解决方案:

  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    translate.setDefaultLang(DEFAULT_LANG);
    translate.use(userLang);
  }
  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    if (userLang !== DEFAULT_LANG) {
      translate.setDefaultLang(DEFAULT_LANG);
    }

    translate.use(userLang);
  }
这将在本文中进一步讨论


注意:您可能应该在监视用户语言更改的服务中运行此逻辑。

如果您使用的语言与使用ng2 translate的
TranslateService设置的默认语言相同,则可能会发生这种情况

错误:

  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    translate.setDefaultLang(DEFAULT_LANG);
    translate.use(userLang);
  }
  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    if (userLang !== DEFAULT_LANG) {
      translate.setDefaultLang(DEFAULT_LANG);
    }

    translate.use(userLang);
  }
建议的解决方案:

  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    translate.setDefaultLang(DEFAULT_LANG);
    translate.use(userLang);
  }
  constructor(translate: TranslateService) {
    const DEFAULT_LANG = 'en';
    const userLang = translate.getBrowserLang();

    if (userLang !== DEFAULT_LANG) {
      translate.setDefaultLang(DEFAULT_LANG);
    }

    translate.use(userLang);
  }
这将在本文中进一步讨论

注意:您可能应该在一个服务中运行此逻辑,该服务在用户语言更改时进行监视