`ng2-translate` - всегда устанавливает с`english` другим языком не установленным

Я использую 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 ответ

Возможно, вам нужно добавить строку, чтобы установить текущий язык на французский:

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 для получения дополнительной информации.

Другие вопросы по тегам