@sphereon/ui-components.core
Version:
SSI UI components Core
61 lines (60 loc) • 2.65 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a;
exports.__esModule = true;
exports.translate = void 0;
var i18n_js_1 = __importDefault(require("i18n-js"));
var lodash_memoize_1 = __importDefault(require("lodash.memoize"));
var types_1 = require("../types");
var Localization = (function () {
function Localization() {
}
var _b;
_b = Localization;
Localization.translationGetters = (_a = {},
_a[types_1.SupportedLanguage.ENGLISH] = function () { return require('./translations/en.json'); },
_a[types_1.SupportedLanguage.DUTCH] = function () { return require('./translations/nl.json'); },
_a);
Localization.translate = (0, lodash_memoize_1["default"])(function (key, config) {
var _a, _c;
if (Object.keys(i18n_js_1["default"].translations).length === 0) {
i18n_js_1["default"].translations = (_a = {},
_a[types_1.SupportedLanguage.ENGLISH] = Localization.translationGetters[types_1.SupportedLanguage.ENGLISH](),
_a);
i18n_js_1["default"].locale = types_1.SupportedLanguage.ENGLISH;
}
else {
i18n_js_1["default"].translations = (_c = {},
_c[i18n_js_1["default"].locale] = __assign(__assign({}, i18n_js_1["default"].translations[i18n_js_1["default"].locale]), Localization.translationGetters[_b.findSupportedLanguage(i18n_js_1["default"].locale) || types_1.SupportedLanguage.ENGLISH]()),
_c);
}
return i18n_js_1["default"].t(key, config);
}, function (key, config) { return (config ? key + JSON.stringify(config) : key); });
Localization.findSupportedLanguage = function (locale) {
for (var _i = 0, _a = Object.values(types_1.SupportedLanguage); _i < _a.length; _i++) {
var language = _a[_i];
if (language === locale) {
return language;
}
}
};
Localization.getLocale = function () {
return i18n_js_1["default"].locale || types_1.SupportedLanguage.ENGLISH;
};
return Localization;
}());
exports.translate = Localization.translate;
exports["default"] = Localization;