[Common] Fix loading translations (for IE)
This commit is contained in:
parent
fdff13a7f0
commit
7c8828cb13
|
@ -36,27 +36,36 @@ if (Common === undefined) {
|
||||||
|
|
||||||
Common.Locale = new(function() {
|
Common.Locale = new(function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
var l10n = {};
|
var l10n = null;
|
||||||
|
var loadcallback,
|
||||||
|
apply = false;
|
||||||
|
|
||||||
var _applyLocalization = function() {
|
var _applyLocalization = function(callback) {
|
||||||
try {
|
try {
|
||||||
for (var prop in l10n) {
|
console.log('_applyLocalization');
|
||||||
var p = prop.split('.');
|
callback && (loadcallback = callback);
|
||||||
if (p && p.length > 2) {
|
if (l10n) {
|
||||||
|
console.log('_apply ok');
|
||||||
|
for (var prop in l10n) {
|
||||||
|
var p = prop.split('.');
|
||||||
|
if (p && p.length > 2) {
|
||||||
|
|
||||||
var obj = window;
|
var obj = window;
|
||||||
for (var i = 0; i < p.length - 1; ++i) {
|
for (var i = 0; i < p.length - 1; ++i) {
|
||||||
if (obj[p[i]] === undefined) {
|
if (obj[p[i]] === undefined) {
|
||||||
obj[p[i]] = new Object();
|
obj[p[i]] = new Object();
|
||||||
|
}
|
||||||
|
obj = obj[p[i]];
|
||||||
}
|
}
|
||||||
obj = obj[p[i]];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj) {
|
if (obj) {
|
||||||
obj[p[p.length - 1]] = l10n[prop];
|
obj[p[p.length - 1]] = l10n[prop];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
loadcallback && loadcallback();
|
||||||
|
} else
|
||||||
|
apply = true;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
}
|
}
|
||||||
|
@ -64,7 +73,7 @@ Common.Locale = new(function() {
|
||||||
|
|
||||||
var _get = function(prop, scope) {
|
var _get = function(prop, scope) {
|
||||||
var res = '';
|
var res = '';
|
||||||
if (scope && scope.name) {
|
if (l10n && scope && scope.name) {
|
||||||
res = l10n[scope.name + '.' + prop];
|
res = l10n[scope.name + '.' + prop];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,10 +108,13 @@ Common.Locale = new(function() {
|
||||||
throw new Error('loaded');
|
throw new Error('loaded');
|
||||||
}
|
}
|
||||||
}).then(function(json) {
|
}).then(function(json) {
|
||||||
if ( !!json ) l10n = json;
|
l10n = json || {};
|
||||||
|
apply && _applyLocalization();
|
||||||
}).catch(function(e) {
|
}).catch(function(e) {
|
||||||
|
l10n = l10n || {};
|
||||||
|
apply && _applyLocalization();
|
||||||
if ( e.message == 'loaded' ) {
|
if ( e.message == 'loaded' ) {
|
||||||
|
console.log('loaded');
|
||||||
} else
|
} else
|
||||||
console.log('fetch error: ' + e);
|
console.log('fetch error: ' + e);
|
||||||
});
|
});
|
||||||
|
@ -110,7 +122,13 @@ Common.Locale = new(function() {
|
||||||
|
|
||||||
if ( !window.fetch ) {
|
if ( !window.fetch ) {
|
||||||
/* use fetch polifill if native method isn't supported */
|
/* 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();
|
} else _requireLang();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
Loading…
Reference in a new issue