我们有时候在操作easyui的时候本来是加载了easyui-lang-zh_CN.js中文文件包,但是还是出现了英文。使得我们不得埋怨这框架咋这么不好用,其实我们仔细看看这个中文包就会发现里面很多都是重新修改了定义语言的参数。假如我们用jquery初始化加载方法$(function(){//这里是我们自定义的操作方法});这个方法里面的东西执行后发现更本没加载我们的中文下面是我写的datetimebox日期控件js代码:
class="brush:javascript;gutter:true;"> $(function () { function adddaytimes() { $("#ExpireTime").datetimebox("setValue", seprateDateString($("#ReleaseTime").datetimebox("getValue"))); } $("#ReleaseTime").datetimebox({ onChange: adddaytimes }); });
即使我在页面中导入这个中文包: <script src="../easyui/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
在表单加载的时候同样会出现英文,纠结了很久最后不得不想起查看这个中文包到底怎么定义的。
我们先打开看看这个中文包文件,到底有什么内容:
if ($.fn.pagination){ $.fn.pagination.defaults.beforePageText = '第'; $.fn.pagination.defaults.afterPageText = '共{pages}页'; $.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录'; } if ($.fn.datagrid){ $.fn.datagrid.defaults.loadMsg = '正在处理,请稍待。。。'; } if ($.fn.treegrid && $.fn.datagrid){ $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; } if ($.messager){ $.messager.defaults.ok = '确定'; $.messager.defaults.cancel = '取消'; } if ($.fn.validatebox){ $.fn.validatebox.defaults.missingMessage = '该输入项为必输项'; $.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址'; $.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址'; $.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间'; $.fn.validatebox.defaults.rules.remote.message = '请修正该字段'; $.fn.validatebox.defaults.rules.mphone.message = '请输入11位手机号.'; $.fn.validatebox.defaults.rules.phone.message = '号码格式010-12345678 '; } if ($.fn.numberbox){ $.fn.numberbox.defaults.missingMessage = '该输入项为必输项'; } if ($.fn.combobox){ $.fn.combobox.defaults.missingMessage = '该输入项为必输项'; } if ($.fn.combotree){ $.fn.combotree.defaults.missingMessage = '该输入项为必输项'; } if ($.fn.combogrid){ $.fn.combogrid.defaults.missingMessage = '该输入项为必输项'; } if ($.fn.calendar){ $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; } if ($.fn.datebox){ $.fn.datebox.defaults.currentText = '今天'; $.fn.datebox.defaults.closeText = '关闭'; $.fn.datebox.defaults.okText = '确定'; $.fn.datebox.defaults.missingMessage = '该输入项为必输项'; $.fn.datebox.defaults.formatter = function(date){ var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); }; $.fn.datebox.defaults.parser = function(s){ if (!s) return new Date(); var ss = s.split('-'); var y = parseInt(ss[0],10); var m = parseInt(ss[1],10); var d = parseInt(ss[2],10); if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ return new Date(y,m-1,d); } else { return new Date(); } }; } if ($.fn.datetimebox && $.fn.datebox){ $.extend($.fn.datetimebox.defaults,{ currentText: $.fn.datebox.defaults.currentText, closeText: $.fn.datebox.defaults.closeText, okText: $.fn.datebox.defaults.okText, missingMessage: $.fn.datebox.defaults.missingMessage }); }
上面可以看出这个js文件里面并没有什么东西,很简单的,就是一些自定义参数并设置为中文。接下来就简单了,我们可以把引用到的控件语言设置函数放到初始化方法中即可。
$(function () { if ($.fn.calendar) { $.fn.calendar.defaults.weeks = ['日', '一', '二', '三', '四', '五', '六']; $.fn.calendar.defaults.months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']; } if ($.fn.datebox) { $.fn.datebox.defaults.currentText = '今天'; $.fn.datebox.defaults.closeText = '关闭'; $.fn.datebox.defaults.okText = '确定'; $.fn.datebox.defaults.missingMessage = '该输入项为必输项'; $.fn.datebox.defaults.formatter = function (date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d); }; $.fn.datebox.defaults.parser = function (s) { if (!s) return new Date(); var ss = s.split('-'); var y = parseInt(ss[0], 10); var m = parseInt(ss[1], 10); var d = parseInt(ss[2], 10); if (!isNaN(y) && !isNaN(m) && !isNaN(d)) { return new Date(y, m - 1, d); } else { return new Date(); } }; } if ($.fn.datetimebox && $.fn.datebox) { $.extend($.fn.datetimebox.defaults, { currentText: $.fn.datebox.defaults.currentText, closeText: $.fn.datebox.defaults.closeText, okText: $.fn.datebox.defaults.okText, missingMessage: $.fn.datebox.defaults.missingMessage }); } function adddaytimes() { $("#ExpireTime").datetimebox("setValue", seprateDateString($("#ReleaseTime").datetimebox("getValue"))); } $("#ReleaseTime").datetimebox({ onChange: adddaytimes }); });
点击表单查看,由原来的英文变成了中文。希望遇到这样问题的同学,可以帮助到你。还有更好的方法大家可以分享分享。