How load translation file for each module
launcelot66 opened this issue · 1 comments
launcelot66 commented
I have app.module.ts like this:
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
Routing,
AuthModule,
CatalogsModule,
DashboardModule
],
exports: [],
declarations: [AppComponent, SvgIconComponent, NotFoundComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
AuthModule:
function AuthHttpLoaderFactory(httpClient: HttpClient) {
return new TranslateHttpLoader(httpClient, 'i18n/auth/', '.json');
}
@NgModule({
imports: [
CommonModule,
RouterModule,
HttpClientModule,
FormsModule,
ReactiveFormsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: AuthHttpLoaderFactory,
deps: [HttpClient]
},
missingTranslationHandler: [{provide: MissingTranslationHandler, useClass: TranslateHandler}]
})
],
declarations: [IndexComponent, ...],
bootstrap: [IndexComponent],
providers: [...]
})
export class AuthModule {}
CatalogsModule:
function CatalogsHttpLoaderFactory(httpClient: HttpClient) {
return new TranslateHttpLoader(httpClient, 'i18n/catalogs/', '.json');
}
@NgModule({
imports: [
CommonModule,
RouterModule,
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: CatalogsHttpLoaderFactory,
deps: [HttpClient]
},
missingTranslationHandler: [{provide: MissingTranslationHandler, useClass: TranslateHandler}]
})
],
declarations: [CatalogComponent, ClientComponent]
})
export class CatalogsModule {}
Now if i go to auth page i'm load /i18n/catalogs/ru.json
, but should have been loaded /i18n/auth/ru.json
If i swap places AuthModule & CatalogsModule in app.modules.ts - will be loaded /i18n/auth/ru.json
(as expected).
How to load current module translation file?
launcelot66 commented
answer is here -> github.com ngx-translate core issues 752