`ng2-translate` - 总是设置`english`其他语言没有设置

时间:2018-04-25 02:11:51

标签: angular angular-translate angular-i18n

我正在使用ng2-translate - 进行翻译。但是当我改变语言时,翻译仍使用en。但我正在寻找fr,我的默认设置根本没有加载。这是我的代码:

export class HomeComponent implements OnInit {

  data:any;

  constructor(private router:Router, private route: ActivatedRoute, private translate:TranslateService ) {

    translate.addLangs(["fr","en"]);
    translate.setDefaultLang("fr");//french not loading!!

    let browserlang = translate.getBrowserLang();
    translate.use(browserlang.match(/fr|en/) ? browserlang:"fr");

    console.log('browserlang', browserlang );

  }

}

我的模板:

<h1>{{ 'home.title' | translate }} </h1>

1 个答案:

答案 0 :(得分:0)

您可能需要添加一行以将当前语言设置为法语:

constructor(private router:Router, private route: ActivatedRoute, private translate:TranslateService ) {

    translate.addLangs(["fr","en"]);
    translate.setDefaultLang("fr");//french not loading!!

    // Actually set the current language to French
    translate.use("fr").subscribe(() => {
        // Code here runs after language is set to French
        let browserlang = translate.getBrowserLang();

        console.log('browserlang', browserlang );
        console.log(`currentLang`, translate.currentLang);
    });

  }

来自ng2-translate文档:

  

setDefaultLang(lang:string):设置用作后备的默认语言
   use(lang:string):Observable:更改当前使用的lang

因此,只有在设置lang不成功时才使用默认的lang。

有关详细信息,请参阅https://github.com/ngx-translate/core