У меня есть приложение на угловых и я использую ngx-translate для i18n. Я хотел бы иметь перевод, который является общим для всех модулей (ленивый) приложения и конкретный для каждого модуля. Вот что у меня есть:
- app.module.ts ->
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/core/', '.json');
}
@NgModule({
...
imports: [
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
...
exports: [TranslateModule],
- app.component.ts ->
...
constructor(
private translate: TranslateService
) {
translate.setDefaultLang('es');
}
- lazy.loading.module.ts ->
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/login/', '.json');
}
@NgModule({
imports: [
...
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: true
}),
- lazy.loading.component.ts ->
...
constructor(
protected translate: TranslateService,
protected currentLanguageService: CurrentLanguageService
) {
translate.setDefaultLang('es');
}
Сообщения модуля входа переведеныиспользуя конвейерный перевод:
{{ 'login.or' | translate }}
но основные сообщения остаются без перевода.
Что я делаю не так? Заранее спасибо!