我們有時候在操作easyui的時候本來是加載了easyui-lang-zh_CN.js中文文件包,但是還是出現了英文。使得我們不得埋怨這框架咋這么不好用,其實我們仔細看看這個中文包就會發現里面很多都是重新修改了定義語言的參數。假如我們用jquery初始化加載方法$(function(){//這里是我們自定義的操作方法});這個方法里面的東西執行后發現更本沒加載我們的中文下面是我寫的datetimebox日期控件js代碼:
$(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 }); });
點擊表單查看,由原來的英文變成了中文。希望遇到這樣問題的同學,可以幫助到你。還有更好的方法大家可以分享分享。