UNPKG

ilib

Version:

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

2 lines 1.81 kB
// !data scripts var ilib=require("../index.js"),Utils=require("./Utils.js"),ScriptInfo=function(script,options){var sync=!0,loadParams=void 0;this.script=script,options&&(void 0!==options.sync&&(sync=!!options.sync),void 0!==options.loadParams)&&(loadParams=options.loadParams),ilib.data.scripts?(this.info=ilib.data.scripts[script],options&&"function"==typeof options.onLoad&&options.onLoad(this)):Utils.loadData({object:"ScriptInfo",nonlocale:!0,name:"scripts.json",sync:sync,loadParams:loadParams,callback:ilib.bind(this,function(info){ilib.data.scripts=info=info||{Latn:{nb:215,nm:"Latin",lid:"Latin",rtl:!1,ime:!1,casing:!0}},this.info=script&&ilib.data.scripts[script],options&&"function"==typeof options.onLoad&&options.onLoad(this)})})};ScriptInfo._getScriptsArray=function(){var ret=[],script=void 0,scripts=ilib.data.scripts;for(script in scripts)script&&scripts[script]&&ret.push(script);return ret},ScriptInfo.getAllScripts=function(sync,loadParams,onLoad){return ilib.data.scripts?"function"==typeof onLoad&&onLoad(ScriptInfo._getScriptsArray()):Utils.loadData({object:"ScriptInfo",locale:"-",name:"scripts.json",sync:sync,loadParams:loadParams,callback:ilib.bind(this,function(info){ilib.data.scripts=info,"function"==typeof onLoad&&onLoad(ScriptInfo._getScriptsArray())})}),ScriptInfo._getScriptsArray()},ScriptInfo.prototype={getCode:function(){return this.info&&this.script},getCodeNumber:function(){return this.info&&this.info.nb||0},getName:function(){return this.info&&this.info.nm},getLongCode:function(){return this.info&&this.info.lid},getScriptDirection:function(){return this.info&&void 0!==this.info.rtl&&this.info.rtl?"rtl":"ltr"},getNeedsIME:function(){return!(!this.info||!this.info.ime)},getCasing:function(){return!(!this.info||!this.info.casing)}},module.exports=ScriptInfo;