import { TranslateLoader } from '@ngx-translate/core'; import { Observable } from 'rxjs'; import { NativeService } from '@ucap-webmessenger/native'; import { take, map } from 'rxjs/operators'; export class TranslateLoaderService implements TranslateLoader { constructor( private nativeService: NativeService, private prefix: string = '/assets/i18n/', private suffix: string = '.json' ) {} /** * Gets the translations from the server */ public getTranslation(lang: string): Observable { return this.nativeService .readFile(`${this.prefix}${lang}.${this.suffix}`) .pipe( take(1), map(buf => { return JSON.parse(buf.toString()); }) ); } }