UNPKG

ilib

Version:

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

1 lines 1.95 kB
var ilib=require("./ilib.js");var Locale=require("./Locale.js");var IString=require("./IString.js");var CaseMapper=function(e){this.up=true;this.locale=new Locale;if(e){if(typeof e.locale!=="undefined"){this.locale=typeof e.locale==="string"?new Locale(e.locale):e.locale}this.up=!e.direction||e.direction==="toupper"}this.mapData=this.up?{"ß":"SS","ΐ":"Ι","ά":"Α","έ":"Ε","ή":"Η","ί":"Ι","ΰ":"Υ","ϊ":"Ι","ϋ":"Υ","ό":"Ο","ύ":"Υ","ώ":"Ω","Ӏ":"Ӏ","ӏ":"Ӏ"}:{"Ӏ":"Ӏ"};switch(this.locale.getLanguage()){case"az":case"tr":case"crh":case"kk":case"krc":case"tt":var a="iı";var t="İI";this._setUpMap(a,t);break;case"fr":if(this.up&&this.locale.getRegion()!=="CA"){this._setUpMap("àáâãäçèéêëìíîïñòóôöùúûü","AAAAACEEEEIIIINOOOOUUUU")}break}if(ilib._getBrowser()==="ie"){if(this.up){this.mapData["ς"]="Σ"}this._setUpMap("ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⳁⳉⳋ","ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⳀⳈⳊ");this._setUpMap("ⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥ","ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ")}};CaseMapper.prototype={_charMapper:function(e){if(!e){return e}var a=typeof e==="string"?new IString(e):e.toString();var t="";var i=a.charIterator();var r;while(i.hasNext()){r=i.next();if(!this.up&&r==="Σ"){if(i.hasNext()){r=i.next();var s=r.charCodeAt(0);t+=s<904&&s!==902||s>974?"ς":"σ";t+=r.toLowerCase()}else{t+="ς"}}else{if(this.mapData[r]){t+=this.mapData[r]}else{t+=this.up?r.toUpperCase():r.toLowerCase()}}}return t},_setUpMap:function(e,a){var t,i;if(this.up){t=e;i=a}else{t=a;i=e}for(var r=0;r<a.length;r++){this.mapData[t[r]]=i[r]}},getLocale:function(){return this.locale},map:function(e){return this._charMapper(e)}};module.exports=CaseMapper;