diff options
Diffstat (limited to 'lib/dojo/cldr')
-rw-r--r-- | lib/dojo/cldr/monetary.js | 40 | ||||
-rw-r--r-- | lib/dojo/cldr/supplemental.js | 100 |
2 files changed, 95 insertions, 45 deletions
diff --git a/lib/dojo/cldr/monetary.js b/lib/dojo/cldr/monetary.js index b5b4c0a22..0380055c4 100644 --- a/lib/dojo/cldr/monetary.js +++ b/lib/dojo/cldr/monetary.js @@ -5,19 +5,33 @@ */ -if(!dojo._hasResource["dojo.cldr.monetary"]){ -dojo._hasResource["dojo.cldr.monetary"]=true; +if(!dojo._hasResource["dojo.cldr.monetary"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cldr.monetary"] = true; dojo.provide("dojo.cldr.monetary"); -dojo.cldr.monetary.getData=function(_1){ -var _2={ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0,COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0,IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3,LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0,MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0,SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0}; -var _3={CHF:5}; -var _4=_2[_1],_5=_3[_1]; -if(typeof _4=="undefined"){ -_4=2; -} -if(typeof _5=="undefined"){ -_5=0; -} -return {places:_4,round:_5}; + +dojo.cldr.monetary.getData = function(/*String*/code){ +// summary: A mapping of currency code to currency-specific formatting information. Returns a unique object with properties: places, round. +// code: an [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code + +// from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/currencyData/fractions + + var placesData = { + ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0, + COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0, + IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3, + LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0, + MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0, + SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0, + XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0 + }; + + var roundingData = {CHF:5}; + + var places = placesData[code], round = roundingData[code]; + if(typeof places == "undefined"){ places = 2; } + if(typeof round == "undefined"){ round = 0; } + + return {places: places, round: round}; // Object }; + } diff --git a/lib/dojo/cldr/supplemental.js b/lib/dojo/cldr/supplemental.js index 011af7e63..f887e3a99 100644 --- a/lib/dojo/cldr/supplemental.js +++ b/lib/dojo/cldr/supplemental.js @@ -5,41 +5,77 @@ */ -if(!dojo._hasResource["dojo.cldr.supplemental"]){ -dojo._hasResource["dojo.cldr.supplemental"]=true; +if(!dojo._hasResource["dojo.cldr.supplemental"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cldr.supplemental"] = true; dojo.provide("dojo.cldr.supplemental"); + dojo.require("dojo.i18n"); -dojo.cldr.supplemental.getFirstDayOfWeek=function(_1){ -var _2={mv:5,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6,ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0,il:0,"in":0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,sy:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,zw:0}; -var _3=dojo.cldr.supplemental._region(_1); -var _4=_2[_3]; -return (_4===undefined)?1:_4; -}; -dojo.cldr.supplemental._region=function(_5){ -_5=dojo.i18n.normalizeLocale(_5); -var _6=_5.split("-"); -var _7=_6[1]; -if(!_7){ -_7={de:"de",en:"us",es:"es",fi:"fi",fr:"fr",he:"il",hu:"hu",it:"it",ja:"jp",ko:"kr",nl:"nl",pt:"br",sv:"se",zh:"cn"}[_6[0]]; -}else{ -if(_7.length==4){ -_7=_6[2]; -} -} -return _7; + +dojo.cldr.supplemental.getFirstDayOfWeek = function(/*String?*/locale){ +// summary: Returns a zero-based index for first day of the week +// description: +// Returns a zero-based index for first day of the week, as used by the local (Gregorian) calendar. +// e.g. Sunday (returns 0), or Monday (returns 1) + + // from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/weekData/firstDay + var firstDay = {/*default is 1=Monday*/ + mv:5, + af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6, + ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6, + ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0, + il:0,'in':0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0, + mt:0,nz:0,ph:0,pk:0,sg:0,sy:0,th:0,tt:0,tw:0,um:0,us:0,uz:0, + vi:0,zw:0 +// variant. do not use? gb:0, + }; + + var country = dojo.cldr.supplemental._region(locale); + var dow = firstDay[country]; + return (dow === undefined) ? 1 : dow; /*Number*/ }; -dojo.cldr.supplemental.getWeekend=function(_8){ -var _9={"in":0,af:4,dz:4,ir:4,om:4,sa:4,ye:4,ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5}; -var _a={af:5,dz:5,ir:5,om:5,sa:5,ye:5,ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6}; -var _b=dojo.cldr.supplemental._region(_8); -var _c=_9[_b]; -var _d=_a[_b]; -if(_c===undefined){ -_c=6; -} -if(_d===undefined){ -_d=0; + +dojo.cldr.supplemental._region = function(/*String?*/locale){ + locale = dojo.i18n.normalizeLocale(locale); + var tags = locale.split('-'); + var region = tags[1]; + if(!region){ + // IE often gives language only (#2269) + // Arbitrary mappings of language-only locales to a country: + region = {de:"de", en:"us", es:"es", fi:"fi", fr:"fr", he:"il", hu:"hu", it:"it", + ja:"jp", ko:"kr", nl:"nl", pt:"br", sv:"se", zh:"cn"}[tags[0]]; + }else if(region.length == 4){ + // The ISO 3166 country code is usually in the second position, unless a + // 4-letter script is given. See http://www.ietf.org/rfc/rfc4646.txt + region = tags[2]; + } + return region; } -return {start:_c,end:_d}; + +dojo.cldr.supplemental.getWeekend = function(/*String?*/locale){ +// summary: Returns a hash containing the start and end days of the weekend +// description: +// Returns a hash containing the start and end days of the weekend according to local custom using locale, +// or by default in the user's locale. +// e.g. {start:6, end:0} + + // from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/weekData/weekend{Start,End} + var weekendStart = {/*default is 6=Saturday*/ + 'in':0, + af:4,dz:4,ir:4,om:4,sa:4,ye:4, + ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5 + }; + + var weekendEnd = {/*default is 0=Sunday*/ + af:5,dz:5,ir:5,om:5,sa:5,ye:5, + ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6 + }; + + var country = dojo.cldr.supplemental._region(locale); + var start = weekendStart[country]; + var end = weekendEnd[country]; + if(start === undefined){start=6;} + if(end === undefined){end=0;} + return {start:start, end:end}; /*Object {start,end}*/ }; + } |