diff --git a/common/pom.xml b/common/pom.xml
index c92ee2eb..f2d7193f 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -67,20 +67,6 @@
${fst.version}
-
-
-
-
- com.alibaba
- fastjson
- ${fastjson.version}
-
-
com.fasterxml.jackson.core
@@ -95,6 +81,13 @@
jackson-dataformat-xml
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
org.dom4j
diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml
index 44e16c92..062ed5c1 100644
--- a/modules/core/src/main/resources/config/jeesite-core.yml
+++ b/modules/core/src/main/resources/config/jeesite-core.yml
@@ -222,7 +222,7 @@ role:
# 菜单管理
menu:
- # 根据模块状态去更新相连的菜单状态(仅作为微服务时设为false)
+ # 根据模块状态去更新相连的菜单状态
updateStatusByModuleStatus: false
# 国际化管理(专业版)
diff --git a/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/en.js b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/en.js
new file mode 100644
index 00000000..f670411f
--- /dev/null
+++ b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/en.js
@@ -0,0 +1,233 @@
+/**
+ * jqGrid English Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+/*global jQuery, define */
+(function( factory ) {
+ "use strict";
+ if ( typeof define === "function" && define.amd ) {
+ // AMD. Register as an anonymous module.
+ define([
+ "jquery",
+ "../grid.base"
+ ], factory );
+ } else {
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+$.jgrid = $.jgrid || {};
+if(!$.jgrid.hasOwnProperty("regional")) {
+ $.jgrid.regional = [];
+}
+$.jgrid.regional["en"] = {
+ extend : {
+ btnSearch: 'Search',
+ btnHideSearch: 'Hide Search',
+ expandTooMany: 'You need to expand the "{0}" node, because there are too many nodes, and the execution is canceled.',
+ pageTitle: 'Click the number, you can fill in the page number of pages, press enter to take effect!',
+ pageLabelA: 'Page',
+ pageLabelB: ' / ',
+ pageLabelC: 'of {0}',
+ },
+ defaults : {
+ recordtext: "View {0} - {1} of {2}",
+ emptyrecords: "No records to view",
+ loadtext: "Loading...",
+ savetext: "Saving...",
+ pgtext : "Page {0} of {1}",
+ pgfirst : "First Page",
+ pglast : "Last Page",
+ pgnext : "Next Page",
+ pgprev : "Previous Page",
+ pgrecs : "Records per Page",
+ showhide: "Toggle Expand Collapse Grid",
+ // mobile
+ pagerCaption : "Grid::Page Settings",
+ pageText : "Page:",
+ recordPage : "Records per Page",
+ nomorerecs : "No more records...",
+ scrollPullup: "Pull up to load more...",
+ scrollPulldown : "Pull down to refresh...",
+ scrollRefresh : "Release to refresh..."
+ },
+ search : {
+ caption: "Search...",
+ Find: "Find",
+ Reset: "Reset",
+ odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
+ groupOps: [{ op: "AND", text: "all" },{ op: "OR", text: "any" }],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value",
+ addsubgrup : "Add subgroup",
+ addrule : "Add rule",
+ delgroup : "Delete group",
+ delrule : "Delete rule"
+ },
+ edit : {
+ addCaption: "Add Record",
+ editCaption: "Edit Record",
+ bSubmit: "Submit",
+ bCancel: "Cancel",
+ bClose: "Close",
+ saveData: "Data has been changed! Save changes?",
+ bYes : "Yes",
+ bNo : "No",
+ bExit : "Cancel",
+ msg: {
+ required:"Field is required",
+ number:"Please, enter valid number",
+ minValue:"value must be greater than or equal to ",
+ maxValue:"value must be less than or equal to",
+ email: "is not a valid e-mail",
+ integer: "Please, enter valid integer value",
+ date: "Please, enter valid date value",
+ url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+ nodefined : " is not defined!",
+ novalue : " return value is required!",
+ customarray : "Custom function should return array!",
+ customfcheck : "Custom function should be present in case of custom checking!"
+
+ }
+ },
+ view : {
+ caption: "View Record",
+ bClose: "Close"
+ },
+ del : {
+ caption: "Delete",
+ msg: "Delete selected record(s)?",
+ bSubmit: "Delete",
+ bCancel: "Cancel"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "Edit selected row",
+ addtext:"",
+ addtitle: "Add new row",
+ deltext: "",
+ deltitle: "Delete selected row",
+ searchtext: "",
+ searchtitle: "Find records",
+ refreshtext: "",
+ refreshtitle: "Reload Grid",
+ alertcap: "Warning",
+ alerttext: "Please, select row",
+ viewtext: "",
+ viewtitle: "View selected row",
+ savetext: "",
+ savetitle: "Save row",
+ canceltext: "",
+ canceltitle : "Cancel row editing",
+ selectcaption : "Actions..."
+ },
+ col : {
+ caption: "Select columns",
+ bSubmit: "Ok",
+ bCancel: "Cancel"
+ },
+ errors : {
+ errcap : "Error",
+ nourl : "No url is set",
+ norecords: "No records to process",
+ model : "Length of colNames <> colModel!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: ",", defaultValue: '0'},
+ number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
+ currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+ date : {
+ dayNames: [
+ "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+ ],
+ monthNames: [
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+ ],
+ AmPm : ["am","pm","AM","PM"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'n/j/Y',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
+ // and see http://docs.jquery.com/UI/Datepicker/formatDate
+ // and https://github.com/jquery/globalize#dates for alternative formats used frequently
+ // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
+ // information about date, time, numbers and currency formats used in different countries
+ // one should just convert the information in PHP format
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ // short date:
+ // n - Numeric representation of a month, without leading zeros
+ // j - Day of the month without leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // example: 3/1/2012 which means 1 March 2012
+ ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
+ // long date:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
+ // long date with long time:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
+ // month day:
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
+ // short time (without seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
+ // long time (with seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ // month with year
+ // Y - A full numeric representation of a year, 4 digits
+ // F - A full textual representation of a month
+ YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
+ },
+ reformatAfterEdit : false,
+ userLocalTime : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ },
+ colmenu : {
+ sortasc : "Sort Ascending",
+ sortdesc : "Sort Descending",
+ columns : "Columns",
+ filter : "Filter",
+ grouping : "Group By",
+ ungrouping : "Ungroup",
+ searchTitle : "Get items with value that:",
+ freeze : "Freeze",
+ unfreeze : "Unfreeze",
+ reorder : "Move to reorder"
+ }
+};
+}));
diff --git a/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/ja_JP.js b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/ja_JP.js
new file mode 100644
index 00000000..3b3229e4
--- /dev/null
+++ b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/ja_JP.js
@@ -0,0 +1,221 @@
+/**
+ * jqGrid Japanese Translation
+ * OKADA Yoshitada okada.dev@sth.jp
+ * http://trirand.com/blog/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+/*global jQuery, define */
+(function( factory ) {
+ "use strict";
+ if ( typeof define === "function" && define.amd ) {
+ // AMD. Register as an anonymous module.
+ define([
+ "jquery",
+ "../grid.base"
+ ], factory );
+ } else {
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+$.jgrid = $.jgrid || {};
+if(!$.jgrid.hasOwnProperty("regional")) {
+ $.jgrid.regional = [];
+}
+$.jgrid.regional["ja_JP"] = {
+ extend : {
+ btnSearch: '検索',
+ btnHideSearch: '隠匿',
+ expandTooMany: '今回は“{0}”のノードを展開しなければならない。展開ノードが多すぎるため、キャンセルが実行される。',
+ pageTitle: '数字をクリックすると、ページ番号とページ数を入力して、リターンカーを押して有効になります。!',
+ pageLabelA: '現在の',
+ pageLabelB: 'ページは,各ページ',
+ pageLabelC: '枚,全部 で{0} つ',
+ },
+ defaults : {
+ recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
+ emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
+ loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
+ pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE ",
+ savetext: "\u4fdd\u5b58\u4e2d...",
+ pgfirst : "\u6700\u521d\u306e\u30da\u30fc\u30b8\u3078",
+ pglast : "\u6700\u5f8c\u306e\u30da\u30fc\u30b8\u3078",
+ pgnext : "\u6b21\u306e\u30da\u30fc\u30b8",
+ pgprev : "\u524d\u306e\u30da\u30fc\u30b8",
+ pgrecs : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570",
+ showhide: "\u30b0\u30ea\u30c3\u30c9\u306e\u5c55\u958b/\u9589\u3058\u8fbc\u307f",
+ // mobile
+ pagerCaption : "\u30b0\u30ea\u30c3\u30c9::\u30da\u30fc\u30b8\u8a2d\u5b9a",
+ pageText : "\u30da\u30fc\u30b8:",
+ recordPage : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570",
+ nomorerecs : "\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093...",
+ scrollPullup: "\u4e0a\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u8aad\u307f\u8fbc\u307f...",
+ scrollPulldown : "\u4e0b\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u66f4\u65b0...",
+ scrollRefresh : "\u653e\u3057\u3066\u66f4\u65b0..."
+ },
+ search : {
+ caption: "\u691c\u7d22...",
+ Find: "\u691c\u7d22",
+ Reset: "\u30ea\u30bb\u30c3\u30c8",
+ odata: [{ oper:'eq', text:"\u6B21\u306B\u7B49\u3057\u3044"}, { oper:'ne', text:"\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044"},
+ { oper:'lt', text:"\u6B21\u3088\u308A\u5C0F\u3055\u3044"}, { oper:'le', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044"},
+ { oper:'gt', text:"\u6B21\u3088\u308A\u5927\u304D\u3044"}, { oper:'ge', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044"},
+ { oper:'bw', text:"\u6B21\u3067\u59CB\u307E\u308B"}, { oper:'bn', text:"\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044"},
+ { oper:'in', text:"\u6B21\u306B\u542B\u307E\u308C\u308B"}, { oper:'ni', text:"\u6B21\u306B\u542B\u307E\u308C\u306A\u3044"},
+ { oper:'ew', text:"\u6B21\u3067\u7D42\u308F\u308B"}, { oper:'en', text:"\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044"},
+ { oper:'cn', text:"\u6B21\u3092\u542B\u3080"}, { oper:'nc', text:"\u6B21\u3092\u542B\u307E\u306A\u3044"},
+ { oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
+ groupOps: [{
+ op: "AND",
+ text: "\u3059\u3079\u3066\u306E"
+ },
+ {
+ op: "OR",
+ text: "\u3044\u305A\u308C\u304B\u306E"
+ }],
+ operandTitle : "\u30af\u30ea\u30c3\u30af\u3057\u3066\u691c\u7d22\u64cd\u4f5c\u3092\u9078\u629e",
+ resetTitle : "\u691c\u7d22\u5024\u3092\u30ea\u30bb\u30c3\u30c8",
+ addsubgrup : "Add subgroup",
+ addrule : "Add rule",
+ delgroup : "Delete group",
+ delrule : "Delete rule"
+ },
+ edit : {
+ addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
+ editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
+ bSubmit: "\u9001\u4fe1",
+ bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
+ bClose: "\u9589\u3058\u308b",
+ saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
+ bYes: "\u306F\u3044",
+ bNo: "\u3044\u3044\u3048",
+ bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
+ msg: {
+ required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
+ number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
+ integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
+ nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
+ novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
+ customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
+ customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
+ }
+ },
+ view : {
+ caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
+ bClose: "\u9589\u3058\u308B"
+ },
+ del : {
+ caption: "\u524a\u9664",
+ msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
+ bSubmit: "\u524a\u9664",
+ bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
+ },
+ nav : {
+ edittext: " ",
+ edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
+ addtext:" ",
+ addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
+ deltext: " ",
+ deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
+ searchtext: " ",
+ searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
+ refreshtext: "",
+ refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
+ alertcap: "\u8b66\u544a",
+ alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
+ viewtext: "",
+ viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A",
+ savetext: "",
+ savetitle: "\u5217\u3092\u4fdd\u5b58",
+ canceltext: "",
+ canceltitle : "\u5217\u306e\u7de8\u96c6\u3092\u30ad\u30e3\u30f3\u30bb\u30eb",
+ selectcaption : "\u30a2\u30af\u30b7\u30e7\u30f3..."
+ },
+ col : {
+ caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
+ bSubmit: "\u9001\u4fe1",
+ bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
+ },
+ errors : {
+ errcap : "\u30a8\u30e9\u30fc",
+ nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
+ norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
+ model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
+ },
+ formatter : {
+ integer: {
+ thousandsSeparator: ",",
+ defaultValue: '0'
+ },
+ number: {
+ decimalSeparator: ".",
+ thousandsSeparator: ",",
+ decimalPlaces: 2,
+ defaultValue: '0.00'
+ },
+ currency: {
+ decimalSeparator: ".",
+ thousandsSeparator: ",",
+ decimalPlaces: 0,
+ prefix: "",
+ suffix: "",
+ defaultValue: '0'
+ },
+ date : {
+ dayNames: [
+ "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
+ "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
+ ],
+ monthNames: [
+ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
+ "1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
+ ],
+ AmPm : ["am","pm","AM","PM"],
+ S: function (j) { return "\u756a\u76ee"; },
+ srcformat: 'Y-m-d',
+ newformat: 'd/m/Y',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ ShortDate: "n/j/Y",
+ LongDate: "l, F d, Y",
+ FullDateTime: "l, F d, Y g:i:s A",
+ MonthDay: "F d",
+ ShortTime: "g:i A",
+ LongTime: "g:i:s A",
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ YearMonth: "F, Y"
+ },
+ reformatAfterEdit : false,
+ userLocalTime : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ },
+ colmenu : {
+ sortasc : "Sort Ascending",
+ sortdesc : "Sort Descending",
+ columns : "Columns",
+ filter : "Filter",
+ grouping : "Group By",
+ ungrouping : "Ungroup",
+ searchTitle : "Get items with value that:",
+ freeze : "Freeze",
+ unfreeze : "Unfreeze",
+ reorder : "Move to reorder"
+ }
+};
+}));
diff --git a/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_CN.js b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_CN.js
new file mode 100644
index 00000000..099a0d94
--- /dev/null
+++ b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_CN.js
@@ -0,0 +1,232 @@
+/**
+ * jqGrid Chinese Translation
+ * 咖啡兔 yanhonglei@gmail.com
+ * http://www.kafeitu.me
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+/*global jQuery, define */
+(function( factory ) {
+ "use strict";
+ if ( typeof define === "function" && define.amd ) {
+ // AMD. Register as an anonymous module.
+ define([
+ "jquery",
+ "../grid.base"
+ ], factory );
+ } else {
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+$.jgrid = $.jgrid || {};
+if(!$.jgrid.hasOwnProperty("regional")) {
+ $.jgrid.regional = [];
+}
+$.jgrid.regional["zh_CN"] = {
+ extend : {
+ btnSearch: '查询',
+ btnHideSearch: '隐藏',
+ expandTooMany: '本次需要展开“{0}”个节点,因为展开节点过多,执行取消。',
+ pageTitle: '点击数字,可填写页码和每页条数,按回车即可生效!',
+ pageLabelA: '当前',
+ pageLabelB: '页,每页',
+ pageLabelC: '条,共 {0} 条',
+ },
+ defaults : {
+ recordtext: "{0} - {1}\u3000共 {2} 条", // 共字前是全角空格
+ emptyrecords: "无数据显示",
+ loadtext: "正在加载...",
+ savetext: "保存中...",
+ pgtext : " {0} 共 {1} 页",
+ pgfirst : "第一页",
+ pglast : "最后一页",
+ pgnext : "下一页",
+ pgprev : "上一页",
+ pgrecs : "每页记录数",
+ showhide: "切换 展开 折叠 表格",
+ // mobile
+ pagerCaption : "表格::页面设置",
+ pageText : "Page:",
+ recordPage : "每页记录数",
+ nomorerecs : "没有更多记录...",
+ scrollPullup: "加载更多...",
+ scrollPulldown : "刷新...",
+ scrollRefresh : "滚动刷新..."
+ },
+ search : {
+ caption: "搜索...",
+ Find: "查找",
+ Reset: "重置",
+ odata: [{ oper:'eq', text:'等于\u3000\u3000'},{ oper:'ne', text:'不等于\u3000'},{ oper:'lt', text:'小于\u3000\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\u3000\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\u3000\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\u3000\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],
+ groupOps: [ { op: "AND", text: "满足所有条件" }, { op: "OR", text: "满足任一条件" } ],
+ operandTitle : "单击进行搜索。",
+ resetTitle : "重置搜索条件",
+ addsubgrup : "添加条件组",
+ addrule : "添加条件",
+ delgroup : "删除条件组",
+ delrule : "删除条件"
+ },
+ edit : {
+ addCaption: "添加记录",
+ editCaption: "编辑记录",
+ bSubmit: "提交",
+ bCancel: "取消",
+ bClose: "关闭",
+ saveData: "数据已修改,是否保存?",
+ bYes : "是",
+ bNo : "否",
+ bExit : "取消",
+ msg: {
+ required:"此字段必需",
+ number:"请输入有效数字",
+ minValue:"输值必须大于等于 ",
+ maxValue:"输值必须小于等于 ",
+ email: "这不是有效的e-mail地址",
+ integer: "请输入有效整数",
+ date: "请输入有效时间",
+ url: "无效网址。前缀必须为 ('http://' 或 'https://')",
+ nodefined : " 未定义!",
+ novalue : " 需要返回值!",
+ customarray : "自定义函数需要返回数组!",
+ customfcheck : "必须有自定义函数!"
+ }
+ },
+ view : {
+ caption: "查看记录",
+ bClose: "关闭"
+ },
+ del : {
+ caption: "删除",
+ msg: "删除所选记录?",
+ bSubmit: "删除",
+ bCancel: "取消"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "编辑所选记录",
+ addtext:"",
+ addtitle: "添加新记录",
+ deltext: "",
+ deltitle: "删除所选记录",
+ searchtext: "",
+ searchtitle: "查找",
+ refreshtext: "",
+ refreshtitle: "刷新表格",
+ alertcap: "注意",
+ alerttext: "请选择记录",
+ viewtext: "",
+ viewtitle: "查看所选记录",
+ savetext: "",
+ savetitle: "保存记录",
+ canceltext: "",
+ canceltitle : "取消编辑记录",
+ selectcaption : "操作..."
+ },
+ col : {
+ caption: "选择列",
+ bSubmit: "确定",
+ bCancel: "取消"
+ },
+ errors : {
+ errcap : "错误",
+ nourl : "没有设置url",
+ norecords: "没有需要处理的记录",
+ model : "colNames 和 colModel 长度不等!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: ",", defaultValue: '0'},
+ number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
+ currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+ date : {
+ dayNames: [
+ "日", "一", "二", "三", "四", "五", "六",
+ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
+ ],
+ monthNames: [
+ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
+ ],
+ AmPm : ["am","pm","上午","下午"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'Y-m-d',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
+ // and see http://docs.jquery.com/UI/Datepicker/formatDate
+ // and https://github.com/jquery/globalize#dates for alternative formats used frequently
+ // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
+ // information about date, time, numbers and currency formats used in different countries
+ // one should just convert the information in PHP format
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ // short date:
+ // n - Numeric representation of a month, without leading zeros
+ // j - Day of the month without leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // example: 3/1/2012 which means 1 March 2012
+ ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
+ // long date:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
+ // long date with long time:
+ // l - A full textual representation of the day of the week
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ // Y - A full numeric representation of a year, 4 digits
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
+ // month day:
+ // F - A full textual representation of a month
+ // d - Day of the month, 2 digits with leading zeros
+ MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
+ // short time (without seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
+ // long time (with seconds)
+ // g - 12-hour format of an hour without leading zeros
+ // i - Minutes with leading zeros
+ // s - Seconds, with leading zeros
+ // A - Uppercase Ante meridiem and Post meridiem (AM or PM)
+ LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ // month with year
+ // Y - A full numeric representation of a year, 4 digits
+ // F - A full textual representation of a month
+ YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
+ },
+ reformatAfterEdit : false,
+ userLocalTime : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ },
+ colmenu : {
+ sortasc : "升序排序",
+ sortdesc : "降序排序",
+ columns : "列",
+ filter : "筛选",
+ grouping : "分类",
+ ungrouping : "取消分类",
+ searchTitle : "查找:",
+ freeze : "冻结",
+ unfreeze : "取消冻结",
+ reorder : "重新排序"
+ }
+};
+}));
diff --git a/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_TW.js b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_TW.js
new file mode 100644
index 00000000..fd2872b8
--- /dev/null
+++ b/modules/core/src/main/resources/static/jqGrid/5.4/js/i18n/zh_TW.js
@@ -0,0 +1,194 @@
+/**
+ * jqGrid Chinese (Taiwan) Translation for v4.2
+ * linquize
+ * https://github.com/linquize/jqGrid
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+**/
+/*global jQuery, define */
+(function( factory ) {
+ "use strict";
+ if ( typeof define === "function" && define.amd ) {
+ // AMD. Register as an anonymous module.
+ define([
+ "jquery",
+ "../grid.base"
+ ], factory );
+ } else {
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+$.jgrid = $.jgrid || {};
+if(!$.jgrid.hasOwnProperty("regional")) {
+ $.jgrid.regional = [];
+}
+$.jgrid.regional["zh_TW"] = {
+ extend : {
+ btnSearch: '查询',
+ btnHideSearch: '隐藏',
+ expandTooMany: '本次需要展开“{0}”个节点,因为展开节点过多,执行取消。',
+ pageTitle: '点击数字,可填写页码和每页条数,按回车即可生效!',
+ pageLabelA: '当前',
+ pageLabelB: '页,每页',
+ pageLabelC: '条,共 {0} 条',
+ },
+ defaults : {
+ recordtext: "{0} - {1} 共 {2} 條",
+ emptyrecords: "沒有記錄",
+ loadtext: "載入中...",
+ pgtext : " {0} 共 {1} 頁",
+ savetext: "Saving...",
+ pgfirst : "First Page",
+ pglast : "Last Page",
+ pgnext : "Next Page",
+ pgprev : "Previous Page",
+ pgrecs : "Records per Page",
+ showhide: "Toggle Expand Collapse Grid",
+ // mobile
+ pagerCaption : "Grid::Page Settings",
+ pageText : "Page:",
+ recordPage : "Records per Page",
+ nomorerecs : "No more records...",
+ scrollPullup: "Pull up to load more...",
+ scrollPulldown : "Pull down to refresh...",
+ scrollRefresh : "Release to refresh..."
+ },
+ search : {
+ caption: "搜尋...",
+ Find: "搜尋",
+ Reset: "重設",
+ odata: [{ oper:'eq', text:"等於 "},{ oper:'ne', text:"不等於 "},{ oper:'lt', text:"小於 "},{ oper:'le', text:"小於等於 "},{ oper:'gt', text:"大於 "},{ oper:'ge', text:"大於等於 "},{ oper:'bw', text:"開始於 "},{ oper:'bn', text:"不開始於 "},{ oper:'in', text:"在其中 "},{ oper:'ni', text:"不在其中 "},{ oper:'ew', text:"結束於 "},{ oper:'en', text:"不結束於 "},{ oper:'cn', text:"包含 "},{ oper:'nc', text:"不包含 "},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
+ groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ],
+ operandTitle : "Click to select search operation.",
+ resetTitle : "Reset Search Value",
+ addsubgrup : "Add subgroup",
+ addrule : "Add rule",
+ delgroup : "Delete group",
+ delrule : "Delete rule"
+ },
+ edit : {
+ addCaption: "新增記錄",
+ editCaption: "編輯記錄",
+ bSubmit: "提交",
+ bCancel: "取消",
+ bClose: "關閉",
+ saveData: "資料已改變,是否儲存?",
+ bYes : "是",
+ bNo : "否",
+ bExit : "取消",
+ msg: {
+ required:"此欄必要",
+ number:"請輸入有效的數字",
+ minValue:"值必須大於等於 ",
+ maxValue:"值必須小於等於 ",
+ email: "不是有效的e-mail地址",
+ integer: "請輸入有效整数",
+ date: "請輸入有效時間",
+ url: "網址無效。前綴必須為 ('http://' 或 'https://')",
+ nodefined : " 未定義!",
+ novalue : " 需要傳回值!",
+ customarray : "自訂函數應傳回陣列!",
+ customfcheck : "自訂檢查應有自訂函數!"
+
+ }
+ },
+ view : {
+ caption: "查看記錄",
+ bClose: "關閉"
+ },
+ del : {
+ caption: "刪除",
+ msg: "刪除已選記錄?",
+ bSubmit: "刪除",
+ bCancel: "取消"
+ },
+ nav : {
+ edittext: "",
+ edittitle: "編輯已選列",
+ addtext:"",
+ addtitle: "新增列",
+ deltext: "",
+ deltitle: "刪除已選列",
+ searchtext: "",
+ searchtitle: "搜尋記錄",
+ refreshtext: "",
+ refreshtitle: "重新整理表格",
+ alertcap: "警告",
+ alerttext: "請選擇列",
+ viewtext: "",
+ viewtitle: "檢視已選列",
+ savetext: "",
+ savetitle: "Save row",
+ canceltext: "",
+ canceltitle : "Cancel row editing",
+ selectcaption : "Actions..."
+ },
+ col : {
+ caption: "選擇欄",
+ bSubmit: "確定",
+ bCancel: "取消"
+ },
+ errors : {
+ errcap : "錯誤",
+ nourl : "未設定URL",
+ norecords: "無需要處理的記錄",
+ model : "colNames 和 colModel 長度不同!"
+ },
+ formatter : {
+ integer : {thousandsSeparator: " ", defaultValue: '0'},
+ number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+ currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+ date : {
+ dayNames: [
+ "日", "一", "二", "三", "四", "五", "六",
+ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"
+ ],
+ monthNames: [
+ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
+ ],
+ AmPm : ["上午","下午","上午","下午"],
+ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
+ srcformat: 'Y-m-d',
+ newformat: 'm-d-Y',
+ parseRe : /[#%\\\/:_;.,\t\s-]/,
+ masks : {
+ ISO8601Long:"Y-m-d H:i:s",
+ ISO8601Short:"Y-m-d",
+ ShortDate: "Y/j/n",
+ LongDate: "l, F d, Y",
+ FullDateTime: "l, F d, Y g:i:s A",
+ MonthDay: "F d",
+ ShortTime: "g:i A",
+ LongTime: "g:i:s A",
+ SortableDateTime: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTime: "Y-m-d H:i:sO",
+ YearMonth: "F, Y"
+ },
+ reformatAfterEdit : false,
+ userLocalTime : false
+ },
+ baseLinkUrl: '',
+ showAction: '',
+ target: '',
+ checkbox : {disabled:true},
+ idName : 'id'
+ },
+ colmenu : {
+ sortasc : "Sort Ascending",
+ sortdesc : "Sort Descending",
+ columns : "Columns",
+ filter : "Filter",
+ grouping : "Group By",
+ ungrouping : "Ungroup",
+ searchTitle : "Get items with value that:",
+ freeze : "Freeze",
+ unfreeze : "Unfreeze",
+ reorder : "Move to reorder"
+ }
+};
+}));
diff --git a/parent/pom.xml b/parent/pom.xml
index eb4fd36d..3a219889 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -27,8 +27,7 @@
1.8
1.10.7
2.57
-
- 1.2.62
+ 1.2.66
2.10.2
2.1.1
1.12.2