UNPKG

tfabrica

Version:

library for TFabrica - TechSol

135 lines 6.6 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var tfabrica_translations_1 = require("./tfabrica.translations"); // import our opaque tokenimport { Http, Headers, Response, RequestOptions } from "@angular/http"; require("rxjs/Rx"); var rxjs_1 = require("rxjs"); var http_1 = require("@angular/http"); var tfabrica_shared_service_1 = require("../main/tfabrica.shared.service"); var TfabricaTranslateService = (function () { // inject our translations function TfabricaTranslateService(_translations, http, _shared) { var _this = this; this._translations = _translations; this.http = http; this._shared = _shared; console.log("TfabricaTranslateService Contructor"); var actThis = this; this.supportedLanguages = JSON.parse(localStorage.getItem('supportedLanguages')); this.InitTranslateData(); this.subscription = _shared.changeTranslationsLanguage$.subscribe(function (newlanguage) { console.log("TfabricaTranslateService called from sharedService"); console.log("new language: " + newlanguage); _this.use(newlanguage); }); if (this._shared.currentLang != "") { this.use(this._shared.currentLang); } } Object.defineProperty(TfabricaTranslateService.prototype, "currentLang", { get: function () { return this._currentLang; }, enumerable: true, configurable: true }); TfabricaTranslateService.prototype.InitTranslateData = function () { var _this = this; var actThis = this; try { this.getSupportedLanguages().subscribe(function (result) { console.log(result); actThis.supportedLanguages = result; actThis.setDictionaryFromApi(); localStorage.setItem('supportedLanguages', JSON.stringify(actThis.supportedLanguages)); actThis._shared.translationsIsReady(actThis.supportedLanguages); if (_this._shared.currentLang != "") { _this.use(_this._shared.currentLang); } }, function (err) { // Log errors if any console.log(err); }); } catch (Err) { } }; TfabricaTranslateService.prototype.use = function (lang) { // set current language this._currentLang = lang; }; TfabricaTranslateService.prototype.translate = function (key) { // private perform translation var translation = key; if (this._translations[this.currentLang] && this._translations[this.currentLang][key]) { return this._translations[this.currentLang][key]; } return translation; }; TfabricaTranslateService.prototype.instant = function (key) { // call translation return this.translate(key); }; TfabricaTranslateService.prototype.setLangDictionary = function (lang) { var _this = this; var headers = new http_1.Headers({ 'Content-Type': 'application/json' }); // ... Set content type to JSON var options = new http_1.RequestOptions({ headers: headers }); // Create a request option var urlTranslation = this._shared.appSettings.gettranslationsApiUrl() + lang; //console.log(urlTranslation); return this.http.get(urlTranslation, options) .map(function (res) { //console.log(res); _this._translations[lang] = res.json(); }) // ...and calling .json() on the response to return data .catch(function (error) { return rxjs_1.Observable.throw(error.json().error || 'Server error'); }); //...errors if any }; TfabricaTranslateService.prototype.setDictionaryFromApi = function () { var actThis = this; this.supportedLanguages.forEach(function (entry) { actThis.setLangDictionary(entry.value).subscribe(function (result) { //console.log(result); }, function (err) { // Log errors if any console.log(err); }); }); }; TfabricaTranslateService.prototype.getSupportedLanguages = function () { try { var headers = new http_1.Headers({ 'Content-Type': 'application/json' }); // ... Set content type to JSON var options = new http_1.RequestOptions({ headers: headers }); // Create a request option var urlTranslation = this._shared.appSettings.supportedLanguagesApiUrl; urlTranslation = this._shared.appSettings.getsupportedLanguagesApiUrl(); return this.http.get(urlTranslation, options) .map(function (res) { return res.json(); }) // ...and calling .json() on the response to return data .catch(function (error) { return rxjs_1.Observable.throw(error.json().error || 'Server error'); }); //...errors if any } catch (Err) { } }; return TfabricaTranslateService; }()); TfabricaTranslateService = __decorate([ core_1.Injectable(), __param(0, core_1.Inject(tfabrica_translations_1.TRANSLATIONS)), __metadata("design:paramtypes", [Object, http_1.Http, tfabrica_shared_service_1.TfabricaSharedService]) ], TfabricaTranslateService); exports.TfabricaTranslateService = TfabricaTranslateService; //# sourceMappingURL=tfabrica.translate.service.js.map