前两天项目的测试给我报了个Bug,说我的datepicker不对,上面的字是英文的……我就想怎么以前我没有发现呢。后来才想起来以前貌似在公司做的都是国外的项目,人家要汉化做什么,汗……….
上个图:
![]()
Jquery Datapicker本身是有一些汉化标签的,可以通过定义$.dpText变量来汉化’上一年’,’下一年’等标签,但是内部的星期几之类的却是不行。于是我在里面加了几个变量来控制:
在62行(var day = Date.dayNames[weekday];)下面添加了个变量:
var weekday_name = s.showHeader == $.dpConst.SHOW_HEADER_SHORT ? ($.dpText.WEEK_DAY_NAME != 0)?$.dpText.WEEK_DAY_NAME_SHORT[day]:day.substr(0, 1) : ($.dpText.WEEK_DAY_NAME != 0)?$.dpText.WEEK_DAY_NAME[day]:day; //Added bY Sharmy, add customerlized weekday.
再将下面的
headRow.append(
jQuery(dc(’th’)).attr({’scope’:'col’, ‘abbr’:day, ‘title’:day, ‘class’:(weekday == 0 || weekday == 6 ? ‘weekend’ : ‘weekday’)})
.html(s.showHeader == $.dpConst.SHOW_HEADER_SHORT ? day.substr(0, 1) : day)
变成:
headRow.append(
jQuery(dc(’th’)).attr({’scope’:'col’, ‘abbr’:day, ‘title’:day, ‘class’:(weekday == 0 || weekday == 6 ? ‘weekend’ : ‘weekday’)})
.html(weekday_name)//Modified bY Sharmy, add customerlized weekday.
1135行下面添加:
WEEK_DAY_NAME : 0,//Added by Sharmy, customerlized the weekday show
WEEK_DAY_NAME_SHORT : 0 //Added by Sharmy, customerlized the short weekday show
最后在调用的前面添加自定义的显示标签:
/**Customerlize the week day show**/
dayNamesShort = {’Sunday’:'日’,'Monday’:'一’,'Tuesday’:'二’,'Wednesday’:'三’,'Thursday’:'四’,'Friday’:'五’,'Saturday’:'六’};
dayNames = {’Sunday’:'星期日’,'Monday’:'星期一’,'Tuesday’:'星期二’,'Wednesday’:'星期三’,'Thursday’:'星期四’,'Friday’:'星期五’,'Saturday’:'星期六’}
$.dpText = {TEXT_PREV_YEAR:’上一年’,TEXT_PREV_MONTH:’上月’,TEXT_NEXT_YEAR:’下一年’,TEXT_NEXT_MONTH:’下月’,TEXT_CLOSE:’关闭’,TEXT_CHOOSE_DATE:’选择日期’,HEADER_FORMAT:’yyyy年mm月’,WEEK_DAY_NAME:dayNames,WEEK_DAY_NAME_SHORT:dayNamesShort}
/**Customerlize the week day show over**/
另外修正一个IE6的CSS问题。默认的用于打开日期选择面板的a(a.dp-choose-date)标签里用了:text-indent: -2000px;text-indent这个东西在ie6下会有点问题:
![]()
我的山寨办法是在css文件里的a.dp-choose-date中间加上 ‘_font-size:0px;’
这里是我更改后的js和css文件:datepicker_chinese.7z

最新评论