(function(w) {
if (!Object.assign) {
objectsAssignPolyfill();
}
var oAuthAppId = "storefront-label-editor"
var langCodesToAdaptForRosetta = {
ar: "ar_SA",
es: "es_ES",
es_419: "es_MX",
hy: "hy_AM",
pt: "pt_PT",
sv: "sv_SE",
zh: "zh_CN"
};
Ecwid.OnAPILoaded.add(function() {
var publicConfig = Ecwid.getAppPublicConfig(oAuthAppId);
if (!publicConfig) {
return;
}
var translates = JSON.parse(decodeURIComponent(publicConfig));
var langs = Object.keys(translates);
if (langs.length === 0) {
return;
}
var currentLang = Ecwid.getStorefrontLang() || langs[0] || 'en';
newEcwidMessages = escapeHtml(translates[getRosettaLangCode(currentLang)]);
if (w.ecwidMessages) {
w.ecwidMessages = Object.assign(w.ecwidMessages, newEcwidMessages);
} else {
w.ecwidMessages = Object.assign({}, newEcwidMessages);
}
});
function escapeHtml(messages) {
var enabledHtmlTags = '["
","
","
","","","", "","",""]';
if (enabledHtmlTags != '') {
var enabledHtmlTagsList = JSON.parse(enabledHtmlTags);
} else {
var enabledHtmlTagsList = [];
}
for (var key in messages) {
messages[key] = messages[key].replace("<", "<");
enabledHtmlTagsList.forEach(element =>
messages[key] = messages[key].replace(element.replace("<", "<"), element)
);
}
return messages;
}
function objectsAssignPolyfill() {
Object.defineProperty(Object, 'assign', {
enumerable: false,
configurable: true,
writable: true,
value: function (target) {
'use strict';
if (target === undefined || target === null) {
throw new TypeError('Cannot convert first argument to object');
}
var to = Object(target);
for (var i = 1; i < arguments.length; i++) {
var nextSource = arguments[i];
if (nextSource === undefined || nextSource === null) {
continue;
}
nextSource = Object(nextSource);
var keysArray = Object.keys(nextSource);
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
var nextKey = keysArray[nextIndex];
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (desc !== undefined && desc.enumerable) {
to[nextKey] = nextSource[nextKey];
}
}
}
return to;
}
});
}
function getRosettaLangCode(langCode) {
if (!!langCodesToAdaptForRosetta[langCode]) {
return langCodesToAdaptForRosetta[langCode];
}
return langCode;
}
})(window)