locale.js 6.86 KB
//>>built
define("../_base/lang ../_base/array ../date ../cldr/supplemental ../i18n ../regexp ../string ../i18n!../cldr/nls/gregorian module".split(" "),function(p,l,t,w,u,z,v,D,x){function A(a,d,c,f){return f.replace(/([a-z])\1*/ig,function(g){var b,h,e=g.charAt(0);g=g.length;var m=["abbr","wide","narrow"];switch(e){case "G":b=d[4>g?"eraAbbr":"eraNames"][0>a.getFullYear()?0:1];break;case "y":b=a.getFullYear();switch(g){case 1:break;case 2:if(!c.fullYear){b=String(b);b=b.substr(b.length-2);break}default:h=
!0}break;case "Q":case "q":b=Math.ceil((a.getMonth()+1)/3);h=!0;break;case "M":case "L":b=a.getMonth();3>g?(b+=1,h=!0):(e=["months","L"==e?"standAlone":"format",m[g-3]].join("-"),b=d[e][b]);break;case "w":b=k._getWeekOfYear(a,0);h=!0;break;case "d":b=a.getDate();h=!0;break;case "D":b=k._getDayOfYear(a);h=!0;break;case "e":case "c":if(b=a.getDay(),2>g){b=(b-w.getFirstDayOfWeek(c.locale)+8)%7;break}case "E":b=a.getDay();3>g?(b+=1,h=!0):(e=["days","c"==e?"standAlone":"format",m[g-3]].join("-"),b=d[e][b]);
break;case "a":e=12>a.getHours()?"am":"pm";b=c[e]||d["dayPeriods-format-wide-"+e];break;case "h":case "H":case "K":case "k":h=a.getHours();switch(e){case "h":b=h%12||12;break;case "H":b=h;break;case "K":b=h%12;break;case "k":b=h||24}h=!0;break;case "m":b=a.getMinutes();h=!0;break;case "s":b=a.getSeconds();h=!0;break;case "S":b=Math.round(a.getMilliseconds()*Math.pow(10,g-3));h=!0;break;case "v":case "z":if(b=k._getZone(a,!0,c))break;g=4;case "Z":e=k._getZone(a,!1,c);e=[0>=e?"+":"-",v.pad(Math.floor(Math.abs(e)/
60),2),v.pad(Math.abs(e)%60,2)];4==g&&(e.splice(0,0,"GMT"),e.splice(3,0,":"));b=e.join("");break;default:throw Error("dojo.date.locale.format: invalid pattern char: "+f);}h&&(b=v.pad(b,g));return b})}function q(a,d,c,f){var g=function(b){return b};d=d||g;c=c||g;f=f||g;var b=a.match(/(''|[^'])+/g),h="'"==a.charAt(0);l.forEach(b,function(a,g){a?(b[g]=(h?c:d)(a.replace(/''/g,"'")),h=!h):b[g]=""});return f(b.join(""))}function B(a,d,c,f){f=z.escapeString(f);c.strict||(f=f.replace(" a"," ?a"));return f.replace(/([a-z])\1*/ig,
function(g){var b;b=g.charAt(0);var h=g.length,e="",f="";c.strict?(1<h&&(e="0{"+(h-1)+"}"),2<h&&(f="0{"+(h-2)+"}")):(e="0?",f="0{0,2}");switch(b){case "y":b="\\d{2,4}";break;case "M":case "L":2<h?(b=d["months-"+("L"==b?"standAlone":"format")+"-"+C[h-3]].slice(0).join("|"),c.strict||(b=b.replace(/\./g,""),b="(?:"+b+")\\.?")):b="1[0-2]|"+e+"[1-9]";break;case "D":b="[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|"+e+"[1-9][0-9]|"+f+"[1-9]";break;case "d":b="3[01]|[12]\\d|"+e+"[1-9]";break;case "w":b="[1-4][0-9]|5[0-3]|"+
e+"[1-9]";break;case "E":case "e":case "c":b=".+?";break;case "h":b="1[0-2]|"+e+"[1-9]";break;case "k":b="1[01]|"+e+"\\d";break;case "H":b="1\\d|2[0-3]|"+e+"\\d";break;case "K":b="1\\d|2[0-4]|"+e+"[1-9]";break;case "m":case "s":b="[0-5]\\d";break;case "S":b="\\d{"+h+"}";break;case "a":h=c.am||d["dayPeriods-format-wide-am"];e=c.pm||d["dayPeriods-format-wide-pm"];b=h+"|"+e;c.strict||(h!=h.toLowerCase()&&(b+="|"+h.toLowerCase()),e!=e.toLowerCase()&&(b+="|"+e.toLowerCase()),-1!=b.indexOf(".")&&(b+="|"+
b.replace(/\./g,"")));b=b.replace(/\./g,"\\.");break;default:b=".*"}a&&a.push(g);return"("+b+")"}).replace(/[\xa0 ]/g,"[\\s\\xa0]")}var k={};p.setObject(x.id.replace(/\//g,"."),k);k._getZone=function(a,d,c){return d?t.getTimezoneName(a):a.getTimezoneOffset()};k.format=function(a,d){d=d||{};var c=u.normalizeLocale(d.locale),f=d.formatLength||"short",c=k._getGregorianBundle(c),g=[];a=p.hitch(this,A,a,c,d);if("year"==d.selector)return q(c["dateFormatItem-yyyy"]||"yyyy",a);var b;"date"!=d.selector&&(b=
d.timePattern||c["timeFormat-"+f])&&g.push(q(b,a));"time"!=d.selector&&(b=d.datePattern||c["dateFormat-"+f])&&g.push(q(b,a));return 1==g.length?g[0]:c["dateTimeFormat-"+f].replace(/\'/g,"").replace(/\{(\d+)\}/g,function(b,a){return g[a]})};k.regexp=function(a){return k._parseInfo(a).regexp};k._parseInfo=function(a){a=a||{};var d=u.normalizeLocale(a.locale),d=k._getGregorianBundle(d),c=a.formatLength||"short",f=a.datePattern||d["dateFormat-"+c],g=a.timePattern||d["timeFormat-"+c],c="date"==a.selector?
f:"time"==a.selector?g:d["dateTimeFormat-"+c].replace(/\{(\d+)\}/g,function(b,a){return[g,f][a]}),b=[];return{regexp:q(c,p.hitch(this,B,b,d,a)),tokens:b,bundle:d}};k.parse=function(a,d){var c=/[\u200E\u200F\u202A\u202E]/g,f=k._parseInfo(d),g=f.tokens,b=f.bundle;a=(new RegExp("^"+f.regexp.replace(c,"")+"$",f.strict?"":"i")).exec(a&&a.replace(c,""));if(!a)return null;var h=["abbr","wide","narrow"],e=[1970,0,1,0,0,0,0],m="";a=l.every(a,function(a,c){if(!c)return!0;var f=g[c-1];c=f.length;f=f.charAt(0);
switch(f){case "y":if(2!=c&&d.strict)e[0]=a;else if(100>a)a=Number(a),f=""+(new Date).getFullYear(),c=100*f.substring(0,2),f=Math.min(Number(f.substring(2,4))+20,99),e[0]=a<f?c+a:c-100+a;else{if(d.strict)return!1;e[0]=a}break;case "M":case "L":if(2<c){if(c=b["months-"+("L"==f?"standAlone":"format")+"-"+h[c-3]].concat(),d.strict||(a=a.replace(".","").toLowerCase(),c=l.map(c,function(a){return a.replace(".","").toLowerCase()})),a=l.indexOf(c,a),-1==a)return!1}else a--;e[1]=a;break;case "E":case "e":case "c":c=
b["days-"+("c"==f?"standAlone":"format")+"-"+h[c-3]].concat();d.strict||(a=a.toLowerCase(),c=l.map(c,function(a){return a.toLowerCase()}));a=l.indexOf(c,a);if(-1==a)return!1;break;case "D":e[1]=0;case "d":e[2]=a;break;case "a":c=d.am||b["dayPeriods-format-wide-am"];f=d.pm||b["dayPeriods-format-wide-pm"];if(!d.strict){var k=/\./g;a=a.replace(k,"").toLowerCase();c=c.replace(k,"").toLowerCase();f=f.replace(k,"").toLowerCase()}if(d.strict&&a!=c&&a!=f)return!1;m=a==f?"p":a==c?"a":"";break;case "K":24==
a&&(a=0);case "h":case "H":case "k":if(23<a)return!1;e[3]=a;break;case "m":e[4]=a;break;case "s":e[5]=a;break;case "S":e[6]=a}return!0});c=+e[3];"p"===m&&12>c?e[3]=c+12:"a"===m&&12==c&&(e[3]=0);c=new Date(e[0],e[1],e[2],e[3],e[4],e[5],e[6]);d.strict&&c.setFullYear(e[0]);var n=g.join(""),f=-1!=n.indexOf("d"),n=-1!=n.indexOf("M");if(!a||n&&c.getMonth()>e[1]||f&&c.getDate()>e[2])return null;if(n&&c.getMonth()<e[1]||f&&c.getDate()<e[2])c=t.add(c,"hour",1);return c};var C=["abbr","wide","narrow"],y=[],
r={};k.addCustomFormats=function(a,d){y.push({pkg:a,name:d});r={}};k._getGregorianBundle=function(a){if(r[a])return r[a];var d={};l.forEach(y,function(c){c=u.getLocalization(c.pkg,c.name,a);d=p.mixin(d,c)},this);return r[a]=d};k.addCustomFormats(x.id.replace(/\/date\/locale$/,".cldr"),"gregorian");k.getNames=function(a,d,c,f){var g;f=k._getGregorianBundle(f);a=[a,c,d];"standAlone"==c&&(c=a.join("-"),g=f[c],1==g[0]&&(g=void 0));a[1]="format";return(g||f[a.join("-")]).concat()};k.isWeekend=function(a,
d){d=w.getWeekend(d);a=(a||new Date).getDay();d.end<d.start&&(d.end+=7,a<d.start&&(a+=7));return a>=d.start&&a<=d.end};k._getDayOfYear=function(a){return t.difference(new Date(a.getFullYear(),0,1,a.getHours()),a)+1};k._getWeekOfYear=function(a,d){1==arguments.length&&(d=0);var c=(new Date(a.getFullYear(),0,1)).getDay(),f=(c-d+7)%7,f=Math.floor((k._getDayOfYear(a)+f-1)/7);c==d&&f++;return f};return k});