language-manager-ts
Version:
A language manager for web application with typescript
92 lines (91 loc) • 3.34 kB
JavaScript
"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;