31 lines
823 B
TypeScript
Raw Normal View History

import { TranslateLoader } from '@ngx-translate/core';
import { Observable } from 'rxjs';
2019-11-11 18:09:47 +09:00
import { NativeService } from '@ucap-webmessenger/native';
import { take, map } from 'rxjs/operators';
2019-11-13 11:48:39 +09:00
import { Injectable } from '@angular/core';
2019-11-13 11:48:39 +09:00
@Injectable({
providedIn: 'root',
})
2019-11-11 18:09:47 +09:00
export class TranslateLoaderService implements TranslateLoader {
constructor(
2019-11-11 18:09:47 +09:00
private nativeService: NativeService,
private prefix: string = '/assets/i18n/',
private suffix: string = '.json'
) {}
/**
* Gets the translations from the server
*/
public getTranslation(lang: string): Observable<any> {
return this.nativeService
.readFile(`${this.prefix}${lang}.${this.suffix}`)
.pipe(
take(1),
2019-11-07 11:37:33 +09:00
map(buffer => {
return JSON.parse(buffer.toString('utf-8'));
})
);
}
}