UNPKG

language-manager-ts

Version:

A language manager for web application with typescript

92 lines (91 loc) 3.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LanguageManager = void 0; var dewlinq_1 = __importDefault(require("dewlinq")); var Language_1 = require("./Language"); dewlinq_1.default(); var neutral = new Language_1.Neutral(); var _defaultLanguage = neutral.language(); var _currentLanguage = neutral.language(); var LanguageManager = /** @class */ (function () { function LanguageManager(storageType) { this._languages = [neutral]; this._storage = storageType; if (this._storage.getItem("language_manager") === null) this.setLanguageOnStore(_defaultLanguage); else _currentLanguage = this.getLanguageFromStore(); } LanguageManager.prototype.addLanguages = function () { var _a; var lang = []; for (var _i = 0; _i < arguments.length; _i++) { lang[_i] = arguments[_i]; } (_a = this._languages).push.apply(_a, lang); return this; }; Object.defineProperty(LanguageManager.prototype, "languages", { get: function () { return this.languages; }, enumerable: false, configurable: true }); LanguageManager.prototype.getLanguageFromStore = function () { var lang = this._storage.getItem("language_manager"); for (var _i = 0, _a = this._languages.select(function (x) { return x.language(); }); _i < _a.length; _i++) { var iterator = _a[_i]; if (iterator.toString() === lang) return iterator; } return _defaultLanguage; }; LanguageManager.prototype.setLanguageOnStore = function (lang) { this._storage.setItem(lang.toString(), "language_manager"); }; /** * Set the current language * @param lang current language */ LanguageManager.prototype.setCurrentLanguage = function (lang) { _currentLanguage = lang; this.setLanguageOnStore(lang); return this; }; /** * Return the current language dictionary value or the same string * @param str key */ LanguageManager.prototype.getString = function (str) { if (_currentLanguage === _defaultLanguage) return str || ''; else { var temp = str || ''; var lang = this._languages.first(function (x) { return x.language() === _currentLanguage; }); if (lang !== null) return lang.get(temp); return temp; } }; /** * Return the current language dictionary value or the same string * @param str key */ LanguageManager.prototype._ = function (str) { if (_currentLanguage === _defaultLanguage) return str || ''; else { var temp = str || ''; var lang = this._languages.first(function (x) { return x.language() === _currentLanguage; }); if (lang !== null) return lang.get(temp); return temp; } }; return LanguageManager; }()); exports.LanguageManager = LanguageManager;