UNPKG

air-lib

Version:

This is Air's angular component library

159 lines 12.9 kB
/** * @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"; export class TranslationService { /** * @param {?} translateService * @param {?} http */ constructor(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 {?} */ const userLang = this.defaultLocale(); this.setLanguage(userLang); } /** * @param {?} locale * @return {?} */ setLanguage(locale) { this.translater.addLangs([locale]); this.translater.setDefaultLang(locale); this.translater.use(locale); } /** * @param {?} parts * @return {?} */ loadTranslation(parts) { /** @type {?} */ const userLocalLanguage = localStorage.getItem('language'); /** @type {?} */ let lang; if (userLocalLanguage) { lang = userLocalLanguage; } else { lang = this.translater.currentLang ? this.translater.currentLang : this.defaultLang; } /** @type {?} */ const notLoadedParts = parts.filter((part) => { return this.localizationStorage.indexOf(part) < 0; }); if (notLoadedParts.length > 0) { /** @type {?} */ const partUrl = notLoadedParts.join(','); return new Promise((resolve, reject) => { this.http.httpGet('api/Localizations/' + lang + '?parts=' + partUrl, false) .subscribe((data) => { notLoadedParts.forEach((part) => { if (data[part]) { this.translater.setTranslation(this.translater.currentLang, data[part], true); this.localizationStorage.push(part); } }); resolve(true); }, err => { console.log(err); reject(false); }); }); } else { return true; } } /** * @private * @return {?} */ defaultLocale() { /** @type {?} */ let 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 {?} */ translate(key, interpolateParams) { return this.translater.get(key, interpolateParams); } /** * @param {?} key * @param {?=} interpolateParams * @return {?} */ translateInstant(key, interpolateParams) { return this.translater.instant(key, interpolateParams); } /** * @param {?} key * @return {?} */ translateSync(key) { return this.translater.instant(key); } } TranslationService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; TranslationService.ctorParameters = () => [ { 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" }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fpci1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNN0MsTUFBTTs7Ozs7SUFRSixZQUFZLGdCQUFrQyxFQUFVLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFKakUsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFDdEIsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFDdEIsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFHNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQzs7Y0FDN0IsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7OztJQUVNLFdBQVcsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7OztJQUVNLGVBQWUsQ0FBQyxLQUFlOztjQUM5QixpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQzs7WUFDdEQsSUFBWTtRQUNoQixJQUFJ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QUUsTUFBTTthQUNuQjs7O1lBUFEsZ0JBQWdCO1lBRWhCLFdBQVc7Ozs7O0lBUWxCLHdDQUFvQzs7Ozs7SUFDcEMsaURBQTJDOzs7OztJQUMzQyx5Q0FBOEI7Ozs7O0lBQzlCLHlDQUE4Qjs7Ozs7SUFDOUIseUNBQThCOzs7OztJQUVrQixrQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVyOiBUcmFuc2xhdGVTZXJ2aWNlO1xyXG4gIHByaXZhdGUgbG9jYWxpemF0aW9uU3RvcmFnZTogQXJyYXk8c3RyaW5nPjtcclxuICBwcml2YXRlIGRlZmF1bHRMYW5nID0gJ3J1LVJVJztcclxuICBwcml2YXRlIGVuZ2xpc2hMYW5nID0gJ2VuLVVTJztcclxuICBwcml2YXRlIHVrcmFpbmVMYW5nID0gJ3VrLVVBJztcclxuXHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSkge1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25TdG9yYWdlID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuICAgIHRoaXMudHJhbnNsYXRlciA9IHRyYW5zbGF0ZVNlcnZpY2U7XHJcbiAgICBjb25zdCB1c2VyTGFuZyA9IHRoaXMuZGVmYXVsdExvY2FsZSgpO1xyXG4gICAgdGhpcy5zZXRMYW5ndWFnZSh1c2VyTGFuZyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TGFuZ3VhZ2UobG9jYWxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlci5hZGRMYW5ncyhbbG9jYWxlXSk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZXIuc2V0RGVmYXVsdExhbmcobG9jYWxlKTtcclxuICAgIHRoaXMudHJhbnNsYXRlci51c2UobG9jYWxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkVHJhbnNsYXRpb24ocGFydHM6IHN0cmluZ1tdKTogYW55IHtcclxuICAgIGNvbnN0IHVzZXJMb2NhbExhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XHJcbiAgICBsZXQgbGFuZzogc3RyaW5nO1xyXG4gICAgaWYgKHVzZXJMb2NhbExhbmd1YWdlKSB7XHJcbiAgICAgIGxhbmcgPSB1c2VyTG9jYWxMYW5ndWFnZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxhbmcgPSB0aGlzLnRyYW5zbGF0ZXIuY3VycmVudExhbmcgPyB0aGlzLnRyYW5zbGF0ZXIuY3VycmVudExhbmcgOiB0aGlzLmRlZmF1bHRMYW5nO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgbm90TG9hZGVkUGFydHM6IEFycmF5PHN0cmluZz4gPSBwYXJ0cy5maWx0ZXIoKHBhcnQ6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TdG9yYWdlLmluZGV4T2YocGFydCkgPCAwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG5vdExvYWRlZFBhcnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgcGFydFVybCA9IG5vdExvYWRlZFBhcnRzLmpvaW4oJywnKTtcclxuXHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5odHRwLmh0dHBHZXQoJ2FwaS9Mb2NhbGl6YXRpb25zLycgKyBsYW5nICsgJz9wYXJ0cz0nICsgcGFydFVybCwgZmFsc2UpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbm90TG9hZGVkUGFydHMuZm9yRWFjaCgocGFydDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVtwYXJ0XSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZXIuc2V0VHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGVyLmN1cnJlbnRMYW5nLCBkYXRhW3BhcnRdLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGl6YXRpb25TdG9yYWdlLnB1c2gocGFydCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgICAgICByZWplY3QoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIGRlZmF1bHRMb2NhbGUoKTogc3RyaW5nIHtcclxuICAgIGxldCBicm93c2VyTG9jYWxlID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IG5hdmlnYXRvclsndXNlckxhbmd1YWdlJ107XHJcbiAgICBpZiAoL3J1L2dtaS50ZXN0KGJyb3dzZXJMb2NhbGUpKSB7XHJcbiAgICAgIGJyb3dzZXJMb2NhbGUgPSB0aGlzLmRlZmF1bHRMYW5nO1xyXG4gICAgfSBlbHNlIGlmICgvdWsvZ21pLnRlc3QoYnJvd3NlckxvY2FsZSkpIHtcclxuICAgICAgYnJvd3NlckxvY2FsZSA9IHRoaXMudWtyYWluZUxhbmc7XHJcbiAgICB9IGVsc2UgaWYgKC9lbi9nbWkudGVzdChicm93c2VyTG9jYWxlKSkge1xyXG4gICAgICBicm93c2VyTG9jYWxlID0gdGhpcy5lbmdsaXNoTGFuZztcclxuICAgIH1cclxuICAgIHJldHVybiBicm93c2VyTG9jYWxlO1xyXG4gIH1cclxuICBwdWJsaWMgdHJhbnNsYXRlKGtleTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiwgaW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBPYnNlcnZhYmxlPHN0cmluZyB8IGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlci5nZXQoa2V5LCBpbnRlcnBvbGF0ZVBhcmFtcyk7XHJcbiAgfVxyXG4gIHB1YmxpYyB0cmFuc2xhdGVJbnN0YW50KGtleTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiwgaW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBzdHJpbmcgfCBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlci5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xyXG4gIH1cclxuICBwdWJsaWMgdHJhbnNsYXRlU3luYyhrZXk6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlci5pbnN0YW50KGtleSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==