Skip to content

Commit

Permalink
Use lazy loading import for i18n files
Browse files Browse the repository at this point in the history
  • Loading branch information
jweisman committed Feb 5, 2020
1 parent ef72e4f commit 3e2af89
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
4 changes: 2 additions & 2 deletions angular-lib/src/angular/modules.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MaterialModule } from './modules/material.module';
import { getTranslateModule } from './modules/translate.module';
import { getTranslateModule, LazyTranslateLoader } from './modules/translate.module';

export { MaterialModule, getTranslateModule };
export { MaterialModule, getTranslateModule, LazyTranslateLoader };
15 changes: 8 additions & 7 deletions angular-lib/src/angular/modules/translate.module.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClient } from '@angular/common/http';
import { Observable, from, of } from 'rxjs';
import { catchError } from 'rxjs/operators'

export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
export class LazyTranslateLoader implements TranslateLoader {
getTranslation(lang: string): Observable<any> {
return from(import(`../../../../.ng/src/assets/i18n/${lang}.json`)).pipe(catchError(err=>of({})));
}
}

export function getTranslateModule() {
return TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
useClass: (LazyTranslateLoader)
}
});
}

0 comments on commit 3e2af89

Please sign in to comment.