[Common] Fix loading translations (for IE)

This commit is contained in:
Julia Radzhabova 2019-09-17 18:22:45 +03:00
parent fdff13a7f0
commit 7c8828cb13

View file

@ -36,27 +36,36 @@ if (Common === undefined) {
Common.Locale = new(function() {
"use strict";
var l10n = {};
var l10n = null;
var loadcallback,
apply = false;
var _applyLocalization = function() {
var _applyLocalization = function(callback) {
try {
for (var prop in l10n) {
var p = prop.split('.');
if (p && p.length > 2) {
console.log('_applyLocalization');
callback && (loadcallback = callback);
if (l10n) {
console.log('_apply ok');
for (var prop in l10n) {
var p = prop.split('.');
if (p && p.length > 2) {
var obj = window;
for (var i = 0; i < p.length - 1; ++i) {
if (obj[p[i]] === undefined) {
obj[p[i]] = new Object();
var obj = window;
for (var i = 0; i < p.length - 1; ++i) {
if (obj[p[i]] === undefined) {
obj[p[i]] = new Object();
}
obj = obj[p[i]];
}
obj = obj[p[i]];
}
if (obj) {
obj[p[p.length - 1]] = l10n[prop];
if (obj) {
obj[p[p.length - 1]] = l10n[prop];
}
}
}
}
loadcallback && loadcallback();
} else
apply = true;
}
catch (e) {
}
@ -64,7 +73,7 @@ Common.Locale = new(function() {
var _get = function(prop, scope) {
var res = '';
if (scope && scope.name) {
if (l10n && scope && scope.name) {
res = l10n[scope.name + '.' + prop];
}
@ -99,10 +108,13 @@ Common.Locale = new(function() {
throw new Error('loaded');
}
}).then(function(json) {
if ( !!json ) l10n = json;
l10n = json || {};
apply && _applyLocalization();
}).catch(function(e) {
l10n = l10n || {};
apply && _applyLocalization();
if ( e.message == 'loaded' ) {
console.log('loaded');
} else
console.log('fetch error: ' + e);
});
@ -110,7 +122,13 @@ Common.Locale = new(function() {
if ( !window.fetch ) {
/* use fetch polifill if native method isn't supported */
require(['../vendor/fetch/fetch.umd'], _requireLang);
var polyfills = ['../vendor/fetch/fetch.umd'];
if ( !window.Promise ) {
require(['//cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js'],
function () {
require(polyfills, _requireLang);
});
} else require(polyfills, _requireLang);
} else _requireLang();
return {