UNPKG

ilib

Version:

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

2 lines 1.91 kB
// !data ctryreverse var ilib=require("../index.js"),Utils=require("./Utils.js"),Locale=require("./Locale.js"),LocaleInfo=require("./LocaleInfo.js"),ResBundle=require("./ResBundle.js"),Country=function(options){var locale,sync=!0,loadParams=void 0;options&&(options.locale&&(this.locale="string"==typeof options.locale?new Locale(options.locale):options.locale),void 0!==options.sync&&(sync=!!options.sync),options.loadParams)&&(loadParams=options.loadParams),this.locale=this.locale||new Locale(),new LocaleInfo(this.locale,{sync:sync,loadParams:loadParams,onLoad:ilib.bind(this,function(li){this.locinfo=li,locale=void 0===this.locinfo.getRegionName()?"en-US":this.locale,this.codeToCountry?(this._calculateCountryToCode(),options&&"function"==typeof options.onLoad&&options.onLoad(this)):Utils.loadData({name:"ctryreverse.json",object:"Country",locale:locale,sync:sync,loadParams:loadParams,callback:ilib.bind(this,function(countries){this.codeToCountry=countries,this._calculateCountryToCode(),options&&"function"==typeof options.onLoad&&options.onLoad(this)})})})})};Country.getAvailableCode=function(){var countries=new ResBundle({name:"ctryreverse"}).getResObj();return countries&&Object.keys(countries)},Country.getAvailableCountry=function(){var code,ret=[],countries=new ResBundle({name:"ctryreverse"}).getResObj();for(code in countries)code&&countries[code]&&ret.push(countries[code]);return ret},Country.prototype={_calculateCountryToCode:function(){var code,temp=this.codeToCountry;for(code in this.countryToCode={},temp)code&&temp[code]&&(this.countryToCode[temp[code]]=code)},getCode:function(ctryname){if(this.countryToCode[ctryname])return this.countryToCode[ctryname];throw"Country "+ctryname+" is unknown"},getName:function(code){if(this.codeToCountry[code])return this.codeToCountry[code];throw"Country "+code+" is unknown"},getLocale:function(){return this.locale}},module.exports=Country;