Мой app.component
выглядит так:
export class AppComponent {
public constructor(public translate: TranslateService) {
const userLang = navigator.language.split('-')[0];
const acceptedUserLang = /(de|en)/gi.test(userLang) ? userLang : 'en';
this.translate.setDefaultLang('en');
this.translate.use(acceptedUserLang);
}
}
Мой app.routing
имеет следующее определение:
const appRoutes: Routes = [
{path: 'signUpSuccess/:language', component: SignUpSuccessComponent},
];
И мой signUpSuccess.component
:
export class SignUpSuccessComponent {
public constructor(translate: TranslateService, route: ActivatedRoute) {
translate.use(route.snapshot.params['language']);
}
}
Когда я загружаю страницу с помощью /signUpSuccess/de
, app.component
устанавливает язык на en
, ng2-translate
начинает получать en.json
с сервера, затем signUpSuccess.component
устанавливает язык на de
, ng2-translate
начинает получать de.json
с сервера. Если по какой-либо причине сейчас de.json
выиграет гонку и прибудет к клиенту первым, то язык переключится на en
, когда en.json
прибудет к клиенту. Как я могу этого избежать?