tfabrica
Version:
library for TFabrica - TechSol
135 lines • 6.6 kB
JavaScript
;
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