55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
define("dojox/mobile/i18n", [
|
|
"dojo/_base/lang",
|
|
"dojo/i18n",
|
|
"dijit/_WidgetBase"
|
|
], function(lang, di18n, WidgetBase){
|
|
|
|
// module:
|
|
// dojox/mobile/i18n
|
|
|
|
var i18n = {
|
|
// summary:
|
|
// An internationalization utility for applications based on dojox/mobile.
|
|
};
|
|
lang.setObject("dojox.mobile.i18n", i18n);
|
|
|
|
i18n.load = function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){
|
|
// summary:
|
|
// Loads an nls resource bundle and returns an array of localized
|
|
// resources.
|
|
return i18n.registerBundle(di18n.getLocalization(packageName, bundleName, locale));
|
|
};
|
|
|
|
i18n.registerBundle = function(/*Array*/bundle){
|
|
// summary:
|
|
// Accumulates the given localized resources in an array and returns
|
|
// it.
|
|
if(!i18n.bundle){ i18n.bundle = []; }
|
|
return lang.mixin(i18n.bundle, bundle);
|
|
};
|
|
|
|
i18n.I18NProperties = {
|
|
// summary:
|
|
// These properties can be specified for any widget once the dojox/mobile/i18n module is loaded.
|
|
|
|
// mblNoConv: Boolean
|
|
// Disables localization by dojox/mobile/i18n for the widget on which the property is set.
|
|
mblNoConv: false
|
|
};
|
|
|
|
// Since any widget can have properties localized by dojox/mobile/i18n, mix I18NProperties
|
|
// into the base widget class. (This is a hack, but it's effective.)
|
|
// This is for the benefit of the parser. Remove for 2.0. Also, hide from doc viewer.
|
|
lang.extend(WidgetBase, /*===== {} || =====*/ i18n.I18NProperties);
|
|
|
|
// Mixin the _cv method which is called by property setters.
|
|
lang.extend(WidgetBase, {
|
|
_cv: function(s){
|
|
if(this.mblNoConv || !i18n.bundle){ return s; }
|
|
return i18n.bundle[lang.trim(s)] || s;
|
|
}
|
|
});
|
|
|
|
return i18n;
|
|
});
|