ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 1.66 kB
JavaScript
var ilib=require("./ilib.js");var Utils=require("./Utils.js");var ScriptInfo=function(i,t){var n=true,r=undefined;this.script=i;if(t){if(typeof t.sync!=="undefined"){n=t.sync==true}if(typeof t.loadParams!=="undefined"){r=t.loadParams}}if(!ScriptInfo.cache){ScriptInfo.cache={}}if(!ilib.data.scripts){Utils.loadData({object:ScriptInfo,locale:"-",name:"scripts.json",sync:n,loadParams:r,callback:ilib.bind(this,function(n){if(!n){n={Latn:{nb:215,nm:"Latin",lid:"Latin",rtl:false,ime:false,casing:true}};var r=this.locale.getSpec().replace(/-/g,"_");ScriptInfo.cache[r]=n}ilib.data.scripts=n;this.info=i&&ilib.data.scripts[i];if(t&&typeof t.onLoad==="function"){t.onLoad(this)}})})}else{this.info=ilib.data.scripts[i]}};ScriptInfo._getScriptsArray=function(){var i=[],t=undefined,n=ilib.data.scripts;for(t in n){if(t&&n[t]){i.push(t)}}return i};ScriptInfo.getAllScripts=function(i,t,n){if(!ilib.data.scripts){Utils.loadData({object:ScriptInfo,locale:"-",name:"scripts.json",sync:i,loadParams:t,callback:ilib.bind(this,function(i){ilib.data.scripts=i;if(typeof n==="function"){n(ScriptInfo._getScriptsArray())}})})}return 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&&typeof this.info.rtl!=="undefined"&&this.info.rtl?"rtl":"ltr"},getNeedsIME:function(){return this.info&&this.info.ime?true:false},getCasing:function(){return this.info&&this.info.casing?true:false}};module.exports=ScriptInfo;