我在@ ngx-translate的项目中使用angular-cli。该应用程序具有延迟加载的模块和一个带有组件的共享模块(不是延迟加载)。 语言文件按模块分开。问题是当我在延迟加载的组件中使用共享组件时, 共享组件从延迟加载的模块(feature.xx.json)的转换文件中获取字符串,而不是从app模块(core.xx.json)获取。所以我应该在每个功能模块的翻译文件中声明共享组件的字符串。
我想,共享模块总是使用app模块(core.xx.json)的翻译文件或者自己的翻译文件。
app.module.ts
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/core.','.json');
}
...
imports [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: false
}),
...
]
shared.module.ts
imports: [
TranslateModule,
...]
功能模块
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/feature.', '.json');
}
...
imports: [
...
SharedModule,
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: true
})]