Вы можете реализовать TranslateLoader
, чтобы перейти к тому, что вы хотите.
Например, этот способ удаляет пустые строки из файлов (конечно, вы можете адаптировать его в зависимости от ваших потребностей): my-translate-loader.ts
export class MyTranslateLoader implements TranslateLoader {
constructor(
private http: HttpClient,
private prefix: string = '/assets/i18n/',
private suffix: string = '.json') {
}
public getTranslation(lang: string): any {
return this.http.get(`${this.prefix}${lang}${this.suffix}`)
.pipe(map(result => this.process(result)));
}
private process(object: object) {
return Object.keys(object)
.filter(key => object.hasOwnProperty(key) && object[key] !== '')
.reduce((result, key) => (result[key] = typeof object[key] === 'object' ? this.process(object[key]) : object[key], result), {});
}
}
А затем в файле app.module.ts
измените следующее:
// required for AOT compilation
export function HttpLoaderFactory(http: HttpClient) {
return new MyTranslateLoader(http);
^^^^^^^^^^^^^^^^^
}
Предполагая, что вы уже настроилиМодуль импортирует так:
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
...
]