|
|
|
!(function () {
|
|
|
|
var i18nStore = {};
|
|
|
|
var i18nWidgets = {};
|
|
|
|
_.extend(BI, {
|
|
|
|
i18nProvider: {
|
|
|
|
addWidget: function (widget, i18n) {
|
|
|
|
if (!i18nWidgets[widget.getName()]) {
|
|
|
|
i18nWidgets[widget.getName()] = i18n;
|
|
|
|
i18n.widget = widget;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
removeWidget: function (widget) {
|
|
|
|
if (i18nWidgets[widget.getName()]) {
|
|
|
|
delete i18nWidgets[widget.getName()];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
changeI18n: function (i18n) {
|
|
|
|
if (i18n) {
|
|
|
|
i18nStore = i18n;
|
|
|
|
}
|
|
|
|
BI.each(i18nWidgets, function (widgetName, i18n) {
|
|
|
|
i18n.widget.setText(BI.i18nText.apply(null, i18n.args));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
addI18n: function (i18n) {
|
|
|
|
BI.extend(i18nStore, i18n);
|
|
|
|
},
|
|
|
|
i18nText: function (key) {
|
|
|
|
var localeText = i18nStore[key] || (BI.i18n && BI.i18n[key]) || "";
|
|
|
|
if (!localeText) {
|
|
|
|
localeText = key;
|
|
|
|
}
|
|
|
|
var len = arguments.length;
|
|
|
|
if (len > 1) {
|
|
|
|
if (localeText.indexOf("{R1}") > -1) {
|
|
|
|
for (var i = 1; i < len; i++) {
|
|
|
|
var key = "{R" + i + "}";
|
|
|
|
localeText = BI.replaceAll(localeText, key, arguments[i] + "");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
var count = 1;
|
|
|
|
return BI.replaceAll(localeText, "\\{\\s*\\}", function () {
|
|
|
|
return args[count++] + "";
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
args: arguments,
|
|
|
|
addWidget: function (widget) {
|
|
|
|
BI.i18nProvider.addWidget(widget, this);
|
|
|
|
},
|
|
|
|
valueOf: function () {
|
|
|
|
return localeText;
|
|
|
|
},
|
|
|
|
toString: function () {
|
|
|
|
return localeText;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})();
|