UNPKG

generator-beez

Version:
1 lines 2.26 kB
!function(){define("beez.i18n",["require","exports","module","beez.core","beez.utils","handlebars"],function(e){var s=e("beez.core");e("beez.utils");var n=s.getLogger("beez.i18n"),t=s.vendor._;if(s.i18n)return n.warn("beez.i18n is already loaded."),s.i18n;var i={setup:function(){return n.warn("Setup has already been. beez.i18n"),this},initialize:function(e){this.lang={base:"en",use:void 0},this.message={},this.parseReg=new RegExp(/\{#{1}[(0-9a-zA-Z)]*\}/),this.lang.use=s.utils.browser.getLanguage(),e=e||{},e.lang=e.lang||{},e.lang.base&&(this.lang.base=e.lang.base),e.lang.use&&(this.lang.use=e.lang.use),this.lang.use||(this.lang.use=this.lang.base),e.message&&(this.message=e.message)},getCurrentLang:function(){return this.lang.use||this.lang.base},parse:function(e,s){var n=e.split(this.parseReg);if(1===n.length&&""===n[0])return e;var i="";return t.each(n,function(e,n){i+=e+(s[n]||"")}),i},__:function(e){return this.getMessage(e)},getMessage:function(e){var s=this.getCurrentLang();if(this.message[s]||(s=this.lang.base),!this.message[s])return"";var n=this.message[s][e]||"";!n&&this.message[this.lang.base]&&(n=this.message[this.lang.base][e]||"");var t=Array.prototype.slice.call(arguments,1);return this.parse(n,t)},add:function(e){return s.utils.copyr(this.message,e)},addMessage:function(e,n){return this.message[e]=this.message[e]||{},s.utils.copyr(this.message[e],n)},remove:function(e,s){var n=this.message[e];n&&n[s]?this.message[e][s]=null:n?this.message[e]=null:this.message={}},dispose:function(){delete this.lang,delete this.message,delete this.parseReg}},a=s.extend("beez.i18n",function(){return this.initialize.apply(this,arguments)},i);a.extend=s.extendThis,s.I18n=a,s.i18n={setup:function(e,t){return s.i18n.initialize?(n.warn("Setup has already been. beez.i18n"),s.i18n):(delete s.i18n.setup,delete s.i18n,t||(t=a),s.i18n=new t(e),s.i18n)}};var r=e("handlebars");return r.registerHelper("__",function(){if(s.i18n){var e=Array.prototype.slice.call(arguments,0,arguments.length-1);return new r.SafeString(s.i18n.getMessage.apply(s.i18n,e))}return""}),r.registerHelper("__e",function(){if(s.i18n){var e=Array.prototype.slice.call(arguments,0,arguments.length-1);return s.i18n.getMessage.apply(s.i18n,e)}return""}),s.I18n})}(this);