Files
cms_thermo_active/Step/wwwroot/src/services/localizationService.ts
T
2018-06-13 15:45:19 +02:00

49 lines
1.4 KiB
TypeScript

import Vue from "vue";
import { baseRestService } from "src/_base/baseRestService";
import { store, languageModel, localizationModelActions, AppModel } from "src/store";
import Factory from "src/_base/factoryService";
import { awaiter } from "src/_base";
export class LocalizationService extends baseRestService {
constructor() {
super();
}
async init() {
// preload all avaiable languages
await awaiter (this.getLanguages());
let state = store.state as AppModel;
localizationModelActions.changeCurrentLanguage(store, state.localization.currentLanguage);
}
public async changeCurrentLanguage(language){
localizationModelActions.changeCurrentLanguage(store, language);
await this.getLabels(language);
}
public async setUserLanguage(language) {
return await this.put("/api/user/language", { language: language }, true);
}
public async getLanguages() {
let result = await this.Get<languageModel[]>("/api/language/languages");
if (result) {
localizationModelActions.setLanguages(store, result);
}
}
public async getLabels(language: string): Promise<any> {
let result = await this.Get<{ [id: string]: string }>("/api/language/" + language);
localizationModelActions.setLabels(store, result);
return result;
}
}
export const localizationService = new LocalizationService();
Factory.Register(LocalizationService);