timepicker 支持中文
2013-11-04 14:08
295 查看
先看效果图:
timepicker是一个jquery ui date的插件,可以支持选择时间和分钟。本文讨论如何支持中文,通过检查代码可以看到:
/*
* Timepicker manager.
* Use the singleton instance of this class, $.timepicker, to interact with the time picker.
* Settings for (groups of) time pickers are maintained in an instance object,
* allowing multiple different settings on the same page.
*/
var Timepicker = function () {
this.regional = []; // Available regional settings, indexed by language code
this.regional[''] = { // Default regional settings
currentText: 'Now',
closeText: 'Done',
amNames: ['AM', 'A'],
pmNames: ['PM', 'P'],
timeFormat: 'HH:mm',
timeSuffix: '',
timeOnlyTitle: 'Choose Time',
timeText: 'Time',
hourText: 'Hour',
minuteText: 'Minute',
secondText: 'Second',
millisecText: 'Millisecond',
microsecText: 'Microsecond',
timezoneText: 'Time Zone',
isRTL: false
};得到以下信息:
1. $.timepicker 是一个singleton方法获取全局的对象
2. 可以设置一些regional的属性
解决思路是:
1. 通过AMD加载控制顺序,先加载jquery ui,然后加载timepicker插件,最后加载一个自己写的js文件timepickerConfig.js
2. 调用timepickerConfig.js提供的init方法完成支持中文的设置
下面是例子:
cpuPage.js控制加载顺序,并负责初始化:
/*global window, document */
require.config({
paths: {
"jquery": "../thirdParty/jquery-ui-1.10.3.custom/js/jquery-1.9.1",
"ajaxUtility": "./ajaxUtility",
"jquery.artDialog": "../../plugin/artDialog4.1.6/jquery.artDialog",
"validate": "../../plugin/jquery-validation-1.9.0/jquery.validate.min",
"select": "./select",
"jquery.bootstrap": "../thirdParty/bootstrap.min",
"raphael": "../thirdParty/raphael-min",
"jpicker": "../thirdParty/jpicker-1.1.6/jpicker-1.1.6.min",
"jquery.ui": "../thirdParty/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min",
"timepicker": "../thirdParty/timepicker/jquery-ui-timepicker-addon"
},
shim: {
"jquery.artDialog": {
deps: ["jquery"],
exports: "artDialog"
},
"jquery.bootstrap": {
deps: ["jquery"]
},
"jpicker": {
deps: ["jquery"]
},
"validate": {
deps: ["jquery"],
exports: "Validate"
},
"jquery.ui": {
deps: ["jquery"]
},
"timepicker": {
deps: ["jquery.ui"]
},
"timepickerConfig": {
deps: ["timepicker"]
}
}
});
define(["jquery",
"ajaxUtility",
"dialog",
"jqueryTool",
"validate",
"select",
"lineChart",
"raphael",
"timepickerConfig",
"cpu",
"jpicker"],
function ($, ajaxUtility, dialog, jqueryTool, validate, select, lineChart, raphael, timepickerConfig, cpu) {
'use strict';
$(document).ready(function () {
var locale = window.locale;
ajaxUtility.init(locale);
dialog.init(locale);
timepickerConfig.init(locale);
cpu.init(ajaxUtility, dialog, jqueryTool, locale, validate, select, lineChart);
});
});
注意timepickerConfig.init这里被调用,timepickerConfig.js文件内容:
define(["jquery", "jquery.ui"], function ($) {
'use strict';
return {
init: function (locale) {
if (locale === "cn") {
var j = {
clearText: '清除',
clearStatus: '清除已选日期',
closeText: '关闭',
closeStatus: '不改变当前选择',
prevText: '<上月',
prevStatus: '显示上月',
prevBigText: '<<',
prevBigStatus: '显示上一年',
nextText: '下月>',
nextStatus: '显示下月',
nextBigText: '>>',
nextBigStatus: '显示下一年',
currentStatus: '显示本月',
monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
monthNamesShort: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
monthStatus: '选择月份',
yearStatus: '选择年份',
weekHeader: '周',
weekStatus: '年内周次',
dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
dayStatus: '设置 DD 为一周起始',
dateStatus: '选择 m月 d日, DD',
dateFormat: 'yy-mm-dd',
firstDay: 1,
initStatus: '请选择日期',
currentText: '现在',
isRTL: false,
timeText: '时间',
hourText: '小时',
minuteText: '分钟'
};
$.timepicker.setDefaults(j);
}
}
};
});
说白了就是准备一个json对象,然后调用setDefaults设置。
timepicker是一个jquery ui date的插件,可以支持选择时间和分钟。本文讨论如何支持中文,通过检查代码可以看到:
/*
* Timepicker manager.
* Use the singleton instance of this class, $.timepicker, to interact with the time picker.
* Settings for (groups of) time pickers are maintained in an instance object,
* allowing multiple different settings on the same page.
*/
var Timepicker = function () {
this.regional = []; // Available regional settings, indexed by language code
this.regional[''] = { // Default regional settings
currentText: 'Now',
closeText: 'Done',
amNames: ['AM', 'A'],
pmNames: ['PM', 'P'],
timeFormat: 'HH:mm',
timeSuffix: '',
timeOnlyTitle: 'Choose Time',
timeText: 'Time',
hourText: 'Hour',
minuteText: 'Minute',
secondText: 'Second',
millisecText: 'Millisecond',
microsecText: 'Microsecond',
timezoneText: 'Time Zone',
isRTL: false
};得到以下信息:
1. $.timepicker 是一个singleton方法获取全局的对象
2. 可以设置一些regional的属性
解决思路是:
1. 通过AMD加载控制顺序,先加载jquery ui,然后加载timepicker插件,最后加载一个自己写的js文件timepickerConfig.js
2. 调用timepickerConfig.js提供的init方法完成支持中文的设置
下面是例子:
cpuPage.js控制加载顺序,并负责初始化:
/*global window, document */
require.config({
paths: {
"jquery": "../thirdParty/jquery-ui-1.10.3.custom/js/jquery-1.9.1",
"ajaxUtility": "./ajaxUtility",
"jquery.artDialog": "../../plugin/artDialog4.1.6/jquery.artDialog",
"validate": "../../plugin/jquery-validation-1.9.0/jquery.validate.min",
"select": "./select",
"jquery.bootstrap": "../thirdParty/bootstrap.min",
"raphael": "../thirdParty/raphael-min",
"jpicker": "../thirdParty/jpicker-1.1.6/jpicker-1.1.6.min",
"jquery.ui": "../thirdParty/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min",
"timepicker": "../thirdParty/timepicker/jquery-ui-timepicker-addon"
},
shim: {
"jquery.artDialog": {
deps: ["jquery"],
exports: "artDialog"
},
"jquery.bootstrap": {
deps: ["jquery"]
},
"jpicker": {
deps: ["jquery"]
},
"validate": {
deps: ["jquery"],
exports: "Validate"
},
"jquery.ui": {
deps: ["jquery"]
},
"timepicker": {
deps: ["jquery.ui"]
},
"timepickerConfig": {
deps: ["timepicker"]
}
}
});
define(["jquery",
"ajaxUtility",
"dialog",
"jqueryTool",
"validate",
"select",
"lineChart",
"raphael",
"timepickerConfig",
"cpu",
"jpicker"],
function ($, ajaxUtility, dialog, jqueryTool, validate, select, lineChart, raphael, timepickerConfig, cpu) {
'use strict';
$(document).ready(function () {
var locale = window.locale;
ajaxUtility.init(locale);
dialog.init(locale);
timepickerConfig.init(locale);
cpu.init(ajaxUtility, dialog, jqueryTool, locale, validate, select, lineChart);
});
});
注意timepickerConfig.init这里被调用,timepickerConfig.js文件内容:
define(["jquery", "jquery.ui"], function ($) {
'use strict';
return {
init: function (locale) {
if (locale === "cn") {
var j = {
clearText: '清除',
clearStatus: '清除已选日期',
closeText: '关闭',
closeStatus: '不改变当前选择',
prevText: '<上月',
prevStatus: '显示上月',
prevBigText: '<<',
prevBigStatus: '显示上一年',
nextText: '下月>',
nextStatus: '显示下月',
nextBigText: '>>',
nextBigStatus: '显示下一年',
currentStatus: '显示本月',
monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
monthNamesShort: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
monthStatus: '选择月份',
yearStatus: '选择年份',
weekHeader: '周',
weekStatus: '年内周次',
dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
dayStatus: '设置 DD 为一周起始',
dateStatus: '选择 m月 d日, DD',
dateFormat: 'yy-mm-dd',
firstDay: 1,
initStatus: '请选择日期',
currentText: '现在',
isRTL: false,
timeText: '时间',
hourText: '小时',
minuteText: '分钟'
};
$.timepicker.setDefaults(j);
}
}
};
});
说白了就是准备一个json对象,然后调用setDefaults设置。
相关文章推荐
- dillo2.2支持中文方法
- TinyDO:可能是WP首个支持中文语音识别的待办事项APP
- 原来siri支持中文
- Win环境下让Sass支持中文注释
- Ubuntu 下让sublime-text3支持中文输入法
- 如何让QT支持中文字符
- 支持中文字母数字、自定义字体php验证码代码
- 使Struts 中的 properties属性的文件支持中文的插件的安装方法
- Fedora下设置vim支持显示中文
- PHP生成PDF完美支持中文,解决TCPDF乱码
- Red Hat Enterprise Linux 6 64-bit 系统下安装中文语言支持方法
- Lua For Windows 环境配置及使sciTE支持中文
- 让boost property_tree支持中文路径
- 使用 Mysql 支持中文 for windows
- flying-saucer + iText + Freemarker实现pdf的导出, 支持中文、css以及图片
- Ubuntu 上安装 Freemind 并支持中文
- MySQL数据库命令行界面不支持中文的解决办法
- 让Pywinauto支持中文菜单
- 利用jquery.qrcode在页面上生成二维码且支持中文