webui-aria2/js/libs/dojox/date/islamic/locale.js
2012-05-01 19:52:07 +08:00

375 lines
6.9 KiB
JavaScript

//>>built
define("dojox/date/islamic/locale",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/date","dojo/i18n","dojo/regexp","dojo/string","./Date","dojo/i18n!dojo/cldr/nls/islamic"],function(_1,_2,_3,dd,_4,_5,_6,_7){
_1.getObject("date.islamic.locale",true,dojox);
_1.experimental("dojox.date.islamic.locale");
_1.requireLocalization("dojo.cldr","islamic");
function _8(_9,_a,_b,_c,_d){
return _d.replace(/([a-z])\1*/ig,function(_e){
var s,_f;
var c=_e.charAt(0);
var l=_e.length;
var _10=["abbr","wide","narrow"];
switch(c){
case "G":
s=_a["eraAbbr"][0];
break;
case "y":
s=String(_9.getFullYear());
break;
case "M":
var m=_9.getMonth();
if(l<3){
s=m+1;
_f=true;
}else{
var _11=["months","format",_10[l-3]].join("-");
s=_a[_11][m];
}
break;
case "d":
s=_9.getDate(true);
_f=true;
break;
case "E":
var d=_9.getDay();
if(l<3){
s=d+1;
_f=true;
}else{
var _12=["days","format",_10[l-3]].join("-");
s=_a[_12][d];
}
break;
case "a":
var _13=(_9.getHours()<12)?"am":"pm";
s=_a["dayPeriods-format-wide-"+_13];
break;
case "h":
case "H":
case "K":
case "k":
var h=_9.getHours();
switch(c){
case "h":
s=(h%12)||12;
break;
case "H":
s=h;
break;
case "K":
s=(h%12);
break;
case "k":
s=h||24;
break;
}
_f=true;
break;
case "m":
s=_9.getMinutes();
_f=true;
break;
case "s":
s=_9.getSeconds();
_f=true;
break;
case "S":
s=Math.round(_9.getMilliseconds()*Math.pow(10,l-3));
_f=true;
break;
case "z":
s=dd.getTimezoneName(_9.toGregorian());
if(s){
break;
}
l=4;
case "Z":
var _14=_9.toGregorian().getTimezoneOffset();
var tz=[(_14<=0?"+":"-"),_6.pad(Math.floor(Math.abs(_14)/60),2),_6.pad(Math.abs(_14)%60,2)];
if(l==4){
tz.splice(0,0,"GMT");
tz.splice(3,0,":");
}
s=tz.join("");
break;
default:
throw new Error("dojox.date.islamic.locale.formatPattern: invalid pattern char: "+_d);
}
if(_f){
s=_6.pad(s,l);
}
return s;
});
};
dojox.date.islamic.locale.format=function(_15,_16){
_16=_16||{};
var _17=_4.normalizeLocale(_16.locale);
var _18=_16.formatLength||"short";
var _19=dojox.date.islamic.locale._getIslamicBundle(_17);
var str=[];
var _1a=_1.hitch(this,_8,_15,_19,_17,_16.fullYear);
if(_16.selector=="year"){
var _1b=_15.getFullYear();
return _1b;
}
if(_16.selector!="time"){
var _1c=_16.datePattern||_19["dateFormat-"+_18];
if(_1c){
str.push(_1d(_1c,_1a));
}
}
if(_16.selector!="date"){
var _1e=_16.timePattern||_19["timeFormat-"+_18];
if(_1e){
str.push(_1d(_1e,_1a));
}
}
var _1f=str.join(" ");
return _1f;
};
dojox.date.islamic.locale.regexp=function(_20){
return dojox.date.islamic.locale._parseInfo(_20).regexp;
};
dojox.date.islamic.locale._parseInfo=function(_21){
_21=_21||{};
var _22=_4.normalizeLocale(_21.locale);
var _23=dojox.date.islamic.locale._getIslamicBundle(_22);
var _24=_21.formatLength||"short";
var _25=_21.datePattern||_23["dateFormat-"+_24];
var _26=_21.timePattern||_23["timeFormat-"+_24];
var _27;
if(_21.selector=="date"){
_27=_25;
}else{
if(_21.selector=="time"){
_27=_26;
}else{
_27=(typeof (_26)=="undefined")?_25:_25+" "+_26;
}
}
var _28=[];
var re=_1d(_27,_1.hitch(this,_29,_28,_23,_21));
return {regexp:re,tokens:_28,bundle:_23};
};
dojox.date.islamic.locale.parse=function(_2a,_2b){
_2a=_2a.replace(/[\u200E\u200F\u202A\u202E]/g,"");
if(!_2b){
_2b={};
}
var _2c=dojox.date.islamic.locale._parseInfo(_2b);
var _2d=_2c.tokens,_2e=_2c.bundle;
var _2f=_2c.regexp.replace(/[\u200E\u200F\u202A\u202E]/g,"");
var re=new RegExp("^"+_2f+"$");
var _30=re.exec(_2a);
var _31=_4.normalizeLocale(_2b.locale);
if(!_30){
return null;
}
var _32,_33;
var _34=[1389,0,1,0,0,0,0];
var _35="";
var _36=0;
var _37=["abbr","wide","narrow"];
var _38=_1.every(_30,function(v,i){
if(!i){
return true;
}
var _39=_2d[i-1];
var l=_39.length;
switch(_39.charAt(0)){
case "y":
_34[0]=Number(v);
break;
case "M":
if(l>2){
var _3a=_2e["months-format-"+_37[l-3]].concat();
if(!_2b.strict){
v=v.replace(".","").toLowerCase();
_3a=_1.map(_3a,function(s){
return s?s.replace(".","").toLowerCase():s;
});
}
v=_1.indexOf(_3a,v);
if(v==-1){
return false;
}
_36=l;
}else{
v--;
}
_34[1]=Number(v);
break;
case "D":
_34[1]=0;
case "d":
_34[2]=Number(v);
break;
case "a":
var am=_2b.am||_2e["dayPeriods-format-wide-am"],pm=_2b.pm||_2e["dayPeriods-format-wide-pm"];
if(!_2b.strict){
var _3b=/\./g;
v=v.replace(_3b,"").toLowerCase();
am=am.replace(_3b,"").toLowerCase();
pm=pm.replace(_3b,"").toLowerCase();
}
if(_2b.strict&&v!=am&&v!=pm){
return false;
}
_35=(v==pm)?"p":(v==am)?"a":"";
break;
case "K":
if(v==24){
v=0;
}
case "h":
case "H":
case "k":
_34[3]=Number(v);
break;
case "m":
_34[4]=Number(v);
break;
case "s":
_34[5]=Number(v);
break;
case "S":
_34[6]=Number(v);
}
return true;
});
var _3c=+_34[3];
if(_35==="p"&&_3c<12){
_34[3]=_3c+12;
}else{
if(_35==="a"&&_3c==12){
_34[3]=0;
}
}
var _3d=new _7(_34[0],_34[1],_34[2],_34[3],_34[4],_34[5],_34[6]);
return _3d;
};
function _1d(_3e,_3f,_40,_41){
var _42=function(x){
return x;
};
_3f=_3f||_42;
_40=_40||_42;
_41=_41||_42;
var _43=_3e.match(/(''|[^'])+/g);
var _44=_3e.charAt(0)=="'";
_1.forEach(_43,function(_45,i){
if(!_45){
_43[i]="";
}else{
_43[i]=(_44?_40:_3f)(_45);
_44=!_44;
}
});
return _41(_43.join(""));
};
function _29(_46,_47,_48,_49){
_49=_5.escapeString(_49);
var _4a=_4.normalizeLocale(_48.locale);
return _49.replace(/([a-z])\1*/ig,function(_4b){
var s;
var c=_4b.charAt(0);
var l=_4b.length;
var p2="",p3="";
if(_48.strict){
if(l>1){
p2="0"+"{"+(l-1)+"}";
}
if(l>2){
p3="0"+"{"+(l-2)+"}";
}
}else{
p2="0?";
p3="0{0,2}";
}
switch(c){
case "y":
s="\\d+";
break;
case "M":
s=(l>2)?"\\S+ ?\\S+":p2+"[1-9]|1[0-2]";
break;
case "d":
s="[12]\\d|"+p2+"[1-9]|3[01]";
break;
case "E":
s="\\S+";
break;
case "h":
s=p2+"[1-9]|1[0-2]";
break;
case "k":
s=p2+"\\d|1[01]";
break;
case "H":
s=p2+"\\d|1\\d|2[0-3]";
break;
case "K":
s=p2+"[1-9]|1\\d|2[0-4]";
break;
case "m":
case "s":
s=p2+"\\d|[0-5]\\d";
break;
case "S":
s="\\d{"+l+"}";
break;
case "a":
var am=_48.am||_47["dayPeriods-format-wide-am"],pm=_48.pm||_47["dayPeriods-format-wide-pm"];
if(_48.strict){
s=am+"|"+pm;
}else{
s=am+"|"+pm;
if(am!=am.toLowerCase()){
s+="|"+am.toLowerCase();
}
if(pm!=pm.toLowerCase()){
s+="|"+pm.toLowerCase();
}
}
break;
default:
s=".*";
}
if(_46){
_46.push(_4b);
}
return "("+s+")";
}).replace(/[\xa0 ]/g,"[\\s\\xa0]");
};
var _4c=[];
dojox.date.islamic.locale.addCustomFormats=function(_4d,_4e){
_4c.push({pkg:_4d,name:_4e});
};
dojox.date.islamic.locale._getIslamicBundle=function(_4f){
var _50={};
_1.forEach(_4c,function(_51){
var _52=_4.getLocalization(_51.pkg,_51.name,_4f);
_50=_1.mixin(_50,_52);
},this);
return _50;
};
dojox.date.islamic.locale.addCustomFormats("dojo.cldr","islamic");
dojox.date.islamic.locale.getNames=function(_53,_54,_55,_56,_57){
var _58;
var _59=dojox.date.islamic.locale._getIslamicBundle(_56);
var _5a=[_53,_55,_54];
if(_55=="standAlone"){
var key=_5a.join("-");
_58=_59[key];
if(_58[0]==1){
_58=undefined;
}
}
_5a[1]="format";
return (_58||_59[_5a.join("-")]).concat();
};
dojox.date.islamic.locale.weekDays=dojox.date.islamic.locale.getNames("days","wide","format");
dojox.date.islamic.locale.months=dojox.date.islamic.locale.getNames("months","wide","format");
return dojox.date.islamic.locale;
});