air-lib
Version:
This is Air's angular component library
184 lines • 13.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { TranslateService } from '@ngx-translate/core';
import { Injectable } from '@angular/core';
import { HttpService } from './http.service';
import * as i0 from "@angular/core";
import * as i1 from "@ngx-translate/core";
import * as i2 from "./http.service";
var TranslationService = /** @class */ (function () {
function TranslationService(translateService, http) {
this.http = http;
this.defaultLang = 'ru-RU';
this.englishLang = 'en-US';
this.ukraineLang = 'uk-UA';
this.localizationStorage = new Array();
this.translater = translateService;
/** @type {?} */
var userLang = this.defaultLocale();
this.setLanguage(userLang);
}
/**
* @param {?} locale
* @return {?}
*/
TranslationService.prototype.setLanguage = /**
* @param {?} locale
* @return {?}
*/
function (locale) {
this.translater.addLangs([locale]);
this.translater.setDefaultLang(locale);
this.translater.use(locale);
};
/**
* @param {?} parts
* @return {?}
*/
TranslationService.prototype.loadTranslation = /**
* @param {?} parts
* @return {?}
*/
function (parts) {
var _this = this;
/** @type {?} */
var userLocalLanguage = localStorage.getItem('language');
/** @type {?} */
var lang;
if (userLocalLanguage) {
lang = userLocalLanguage;
}
else {
lang = this.translater.currentLang ? this.translater.currentLang : this.defaultLang;
}
/** @type {?} */
var notLoadedParts = parts.filter(function (part) {
return _this.localizationStorage.indexOf(part) < 0;
});
if (notLoadedParts.length > 0) {
/** @type {?} */
var partUrl_1 = notLoadedParts.join(',');
return new Promise(function (resolve, reject) {
_this.http.httpGet('api/Localizations/' + lang + '?parts=' + partUrl_1, false)
.subscribe(function (data) {
notLoadedParts.forEach(function (part) {
if (data[part]) {
_this.translater.setTranslation(_this.translater.currentLang, data[part], true);
_this.localizationStorage.push(part);
}
});
resolve(true);
}, function (err) {
console.log(err);
reject(false);
});
});
}
else {
return true;
}
};
/**
* @private
* @return {?}
*/
TranslationService.prototype.defaultLocale = /**
* @private
* @return {?}
*/
function () {
/** @type {?} */
var browserLocale = navigator.language || navigator['userLanguage'];
if (/ru/gmi.test(browserLocale)) {
browserLocale = this.defaultLang;
}
else if (/uk/gmi.test(browserLocale)) {
browserLocale = this.ukraineLang;
}
else if (/en/gmi.test(browserLocale)) {
browserLocale = this.englishLang;
}
return browserLocale;
};
/**
* @param {?} key
* @param {?=} interpolateParams
* @return {?}
*/
TranslationService.prototype.translate = /**
* @param {?} key
* @param {?=} interpolateParams
* @return {?}
*/
function (key, interpolateParams) {
return this.translater.get(key, interpolateParams);
};
/**
* @param {?} key
* @param {?=} interpolateParams
* @return {?}
*/
TranslationService.prototype.translateInstant = /**
* @param {?} key
* @param {?=} interpolateParams
* @return {?}
*/
function (key, interpolateParams) {
return this.translater.instant(key, interpolateParams);
};
/**
* @param {?} key
* @return {?}
*/
TranslationService.prototype.translateSync = /**
* @param {?} key
* @return {?}
*/
function (key) {
return this.translater.instant(key);
};
TranslationService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
TranslationService.ctorParameters = function () { return [
{ type: TranslateService },
{ type: HttpService }
]; };
/** @nocollapse */ TranslationService.ngInjectableDef = i0.defineInjectable({ factory: function TranslationService_Factory() { return new TranslationService(i0.inject(i1.TranslateService), i0.inject(i2.HttpService)); }, token: TranslationService, providedIn: "root" });
return TranslationService;
}());
export { TranslationService };
if (false) {
/** @type {?} */
TranslationService.prototype.translater;
/**
* @type {?}
* @private
*/
TranslationService.prototype.localizationStorage;
/**
* @type {?}
* @private
*/
TranslationService.prototype.defaultLang;
/**
* @type {?}
* @private
*/
TranslationService.prototype.englishLang;
/**
* @type {?}
* @private
*/
TranslationService.prototype.ukraineLang;
/**
* @type {?}
* @private
*/
TranslationService.prototype.http;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fpci1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHN0M7SUFXRSw0QkFBWSxnQkFBa0MsRUFBVSxJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBSmpFLGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBRzVCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7O1lBQzdCLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFTSx3Q0FBVzs7OztJQUFsQixVQUFtQixNQUFjO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7OztJQUVNLDRDQUFlOzs7O0lBQXRCLFVBQXVCLEtBQWU7UUFBdEMsaUJBcUNDOztZQXBDTyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUs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RkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7O2dCQVBRLGdCQUFnQjtnQkFFaEIsV0FBVzs7OzZCQUZwQjtDQXVGQyxBQWxGRCxJQWtGQztTQS9FWSxrQkFBa0I7OztJQUU3Qix3Q0FBb0M7Ozs7O0lBQ3BDLGlEQUEyQzs7Ozs7SUFDM0MseUNBQThCOzs7OztJQUM5Qix5Q0FBOEI7Ozs7O0lBQzlCLHlDQUE4Qjs7Ozs7SUFFa0Isa0NBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlcjogVHJhbnNsYXRlU2VydmljZTtcclxuICBwcml2YXRlIGxvY2FsaXphdGlvblN0b3JhZ2U6IEFycmF5PHN0cmluZz47XHJcbiAgcHJpdmF0ZSBkZWZhdWx0TGFuZyA9ICdydS1SVSc7XHJcbiAgcHJpdmF0ZSBlbmdsaXNoTGFuZyA9ICdlbi1VUyc7XHJcbiAgcHJpdmF0ZSB1a3JhaW5lTGFuZyA9ICd1ay1VQSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UpIHtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uU3RvcmFnZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZXIgPSB0cmFuc2xhdGVTZXJ2aWNlO1xyXG4gICAgY29uc3QgdXNlckxhbmcgPSB0aGlzLmRlZmF1bHRMb2NhbGUoKTtcclxuICAgIHRoaXMuc2V0TGFuZ3VhZ2UodXNlckxhbmcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldExhbmd1YWdlKGxvY2FsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZXIuYWRkTGFuZ3MoW2xvY2FsZV0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVyLnNldERlZmF1bHRMYW5nKGxvY2FsZSk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZXIudXNlKGxvY2FsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9hZFRyYW5zbGF0aW9uKHBhcnRzOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICBjb25zdCB1c2VyTG9jYWxMYW5ndWFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpO1xyXG4gICAgbGV0IGxhbmc6IHN0cmluZztcclxuICAgIGlmICh1c2VyTG9jYWxMYW5ndWFnZSkge1xyXG4gICAgICBsYW5nID0gdXNlckxvY2FsTGFuZ3VhZ2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYW5nID0gdGhpcy50cmFuc2xhdGVyLmN1cnJlbnRMYW5nID8gdGhpcy50cmFuc2xhdGVyLmN1cnJlbnRMYW5nIDogdGhpcy5kZWZhdWx0TGFuZztcclxuICAgIH1cclxuICAgIGNvbnN0IG5vdExvYWRlZFBhcnRzOiBBcnJheTxzdHJpbmc+ID0gcGFydHMuZmlsdGVyKChwYXJ0OiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uU3RvcmFnZS5pbmRleE9mKHBhcnQpIDwgMDtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChub3RMb2FkZWRQYXJ0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHBhcnRVcmwgPSBub3RMb2FkZWRQYXJ0cy5qb2luKCcsJyk7XHJcblxyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaHR0cC5odHRwR2V0KCdhcGkvTG9jYWxpemF0aW9ucy8nICsgbGFuZyArICc/cGFydHM9JyArIHBhcnRVcmwsIGZhbHNlKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIG5vdExvYWRlZFBhcnRzLmZvckVhY2goKHBhcnQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGFbcGFydF0pIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVyLnNldFRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlci5jdXJyZW50TGFuZywgZGF0YVtwYXJ0XSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxpemF0aW9uU3RvcmFnZS5wdXNoKHBhcnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBkZWZhdWx0TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgYnJvd3NlckxvY2FsZSA9IG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3JbJ3VzZXJMYW5ndWFnZSddO1xyXG4gICAgaWYgKC9ydS9nbWkudGVzdChicm93c2VyTG9jYWxlKSkge1xyXG4gICAgICBicm93c2VyTG9jYWxlID0gdGhpcy5kZWZhdWx0TGFuZztcclxuICAgIH0gZWxzZSBpZiAoL3VrL2dtaS50ZXN0KGJyb3dzZXJMb2NhbGUpKSB7XHJcbiAgICAgIGJyb3dzZXJMb2NhbGUgPSB0aGlzLnVrcmFpbmVMYW5nO1xyXG4gICAgfSBlbHNlIGlmICgvZW4vZ21pLnRlc3QoYnJvd3NlckxvY2FsZSkpIHtcclxuICAgICAgYnJvd3NlckxvY2FsZSA9IHRoaXMuZW5nbGlzaExhbmc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnJvd3NlckxvY2FsZTtcclxuICB9XHJcbiAgcHVibGljIHRyYW5zbGF0ZShrZXk6IHN0cmluZyB8IEFycmF5PHN0cmluZz4sIGludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZXIuZ2V0KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xyXG4gIH1cclxuICBwdWJsaWMgdHJhbnNsYXRlSW5zdGFudChrZXk6IHN0cmluZyB8IEFycmF5PHN0cmluZz4sIGludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0KTogc3RyaW5nIHwgYW55IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZXIuaW5zdGFudChrZXksIGludGVycG9sYXRlUGFyYW1zKTtcclxuICB9XHJcbiAgcHVibGljIHRyYW5zbGF0ZVN5bmMoa2V5OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgYW55IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZXIuaW5zdGFudChrZXkpO1xyXG4gIH1cclxufVxyXG4iXX0=