UNPKG

ilib

Version:

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

1 lines 1.05 kB
var ilib=require("./ilib.js");var Utils=require("./Utils.js");var Locale=require("./Locale.js");var LocaleMatcher=function(e){var l=true,a=undefined;this.locale=new Locale;if(e){if(typeof e.locale!=="undefined"){this.locale=typeof e.locale==="string"?new Locale(e.locale):e.locale}if(typeof e.sync!=="undefined"){l=e.sync==true}if(typeof e.loadParams!=="undefined"){a=e.loadParams}}if(!LocaleMatcher.cache){LocaleMatcher.cache={}}if(typeof ilib.data.likelylocales==="undefined"){Utils.loadData({object:LocaleMatcher,locale:"-",name:"likelylocales.json",sync:l,loadParams:a,callback:ilib.bind(this,function(l){if(!l){l={};var a=this.locale.getSpec().replace(/-/g,"_");LocaleMatcher.cache[a]=l}this.info=l;if(e&&typeof e.onLoad==="function"){e.onLoad(this)}})})}else{this.info=ilib.data.likelylocales}};LocaleMatcher.prototype={getLocale:function(){return this.locale},getLikelyLocale:function(){if(typeof this.info[this.locale.getSpec()]==="undefined"){return this.locale}return new Locale(this.info[this.locale.getSpec()])}};module.exports=LocaleMatcher;