UNPKG

ilib

Version:

iLib is a cross-engine library of internationalization (i18n) classes written in pure JS

1 lines 1.26 kB
var ilib=require("../index.js"),Utils=require("./Utils.js"),Locale=require("./Locale.js"),IString=require("./IString.js"),StringMapper=function(options){var sync=!0,loadParams=void 0;this.locale=new Locale(),this.mapData={},this.mapFunction=void 0,options&&(void 0!==options.locale&&(this.locale="string"==typeof options.locale?new Locale(options.locale):options.locale),void 0!==options.name&&(this.name=options.name),"function"==typeof options.mapFunction&&(this.mapFunction=options.mapFunction),void 0!==options.sync&&(sync=!0===options.sync),void 0!==options.loadParams)&&(loadParams=options.loadParams),Utils.loadData({object:"StringMapper",locale:this.locale,name:this.name+".json",sync:sync,loadParams:loadParams,callback:ilib.bind(this,function(map){this.mapData=map||{},options&&"function"==typeof options.onLoad&&options.onLoad(this)})})};StringMapper.prototype={getLocale:function(){return this.locale},getName:function(){return this.name},map:function(string){if(!string)return string;for(var c,ret="",it=("string"==typeof string?new IString(string):string.toString()).charIterator();it.hasNext();)c=it.next(),this.mapData&&this.mapData[c]?ret+=this.mapData[c]:this.mapFunction?ret+=this.mapFunction(c):ret+=c;return ret}},module.exports=StringMapper;