diff --git a/common/src/main/resources/static/layer/3.1/layer.js b/common/src/main/resources/static/layer/3.1/layer.js index 4afb4994..61a04305 100644 --- a/common/src/main/resources/static/layer/3.1/layer.js +++ b/common/src/main/resources/static/layer/3.1/layer.js @@ -1,41 +1,12 @@ /** - @Name:layer v3.0.3 Web弹层组件 @Author:贤心 @Site:http://layer.layui.com @License:MIT - */ - ;!function(window, undefined){ "use strict"; -var i18n = { - btnOk: '确定', - btnCancel: '取消', - title: '信息', - promptTipA: '最多输入', - promptTipB: '个字符', - noPicture: '没有图片', - photoError: '当前图片地址异常
是否继续查看下一张?', - photoNextPage: '下一张', - photoClose: '不看了' -}; - -if (window.lang == 'en'){ - i18n = { - btnOk: 'Ok', - btnCancel: 'Cancle', - title: 'Information', - promptTipA: 'Enter ', - promptTipB: 'character at most.', - noPicture: 'No picture', - photoError: 'Current image address error.
Next slide?', - photoNextPage: 'The next', - photoClose: 'Close' - }; -} - var isLayui = window.layui && layui.define, $, win, ready = { getPath: function(){ var js = document.scripts, script = js[js.length - 1], jsPath = script.src; @@ -44,7 +15,7 @@ var isLayui = window.layui && layui.define, $, win, ready = { }(), config: {}, end: {}, minIndex: 0, minLeft: [], - btn: [i18n.btnOk, i18n.btnCancel], + //btn: [layer.i18n.btnOk, layer.i18n.btnCancel], // ThinkGem //五种原始层模式 type: ['dialog', 'page', 'iframe', 'loading', 'tips'] @@ -53,6 +24,17 @@ var isLayui = window.layui && layui.define, $, win, ready = { //默认内置方法。 var layer = { v: '3.0.3', + i18n: { // ThinkGem 国际化支持 + btnOk: '确定', + btnCancel: '取消', + title: '信息', + promptTipA: '最多输入', + promptTipB: '个字符', + noPicture: '没有图片', + photoError: '当前图片地址异常
是否继续查看下一张?', + photoNextPage: '下一张', + photoClose: '不看了' + }, ie: function(){ //ie版本 var agent = navigator.userAgent.toLowerCase(); return (!!window.ActiveXObject || "ActiveXObject" in window) ? ( @@ -133,7 +115,8 @@ var layer = { } return layer.open($.extend({ content: content, - btn: ready.btn, + //btn: ready.btn, + btn: [layer.i18n.btnOk, layer.i18n.btnCancel], yes: yes, btn2: cancel }, type ? {} : options)); @@ -210,7 +193,7 @@ Class.pt.config = { shade: 0.3, fixed: true, move: doms[1], - title: i18n.title, +// title: layer.i18n.title, // ThinkGem 替换 config.title 为 layer.i18n.title,支持国际化 offset: 'auto', area: 'auto', closeBtn: 1, @@ -229,10 +212,10 @@ Class.pt.config = { //容器 Class.pt.vessel = function(conType, callback){ var that = this, times = that.index, config = that.config; - var zIndex = config.zIndex + times, titype = typeof config.title === 'object'; + var zIndex = config.zIndex + times, titype = typeof layer.i18n.title === 'object'; var ismax = config.maxmin && (config.type === 1 || config.type === 2); - var titleHTML = (config.title ? '
' - + (titype ? config.title[0] : config.title) + var titleHTML = (layer.i18n.title ? '
' + + (titype ? layer.i18n.title[0] : layer.i18n.title) + '
' : ''); config.zIndex = zIndex; @@ -249,7 +232,7 @@ Class.pt.vessel = function(conType, callback){ + '
' + ''+ function(){ var closebtn = ismax ? '' : ''; - config.closeBtn && (closebtn += ''); + config.closeBtn && (closebtn += ''); return closebtn; }() + '' + (config.btn ? function(){ @@ -292,7 +275,8 @@ Class.pt.creat = function(){ switch(config.type){ case 0: - config.btn = ('btn' in config) ? config.btn : ready.btn[0]; + //config.btn = ('btn' in config) ? config.btn : ready.btn[0]; ThinkGem + config.btn = ('btn' in config) ? config.btn : layer.i18n.btnOk;// ThinkGem layer.closeAll('dialog'); break; case 2: @@ -309,7 +293,7 @@ Class.pt.creat = function(){ + doms[4] + '' + times +'">'; break; case 3: - delete config.title; + delete layer.i18n.title; delete config.closeBtn; config.icon === -1 && (config.icon === 0); layer.closeAll('loading'); @@ -318,7 +302,7 @@ Class.pt.creat = function(){ conType || (config.content = [config.content, 'body']); config.follow = config.content[1]; config.content = config.content[0] + ''; - delete config.title; + delete layer.i18n.title; config.tips = typeof config.tips === 'object' ? config.tips : [config.tips, true]; config.tipsMore || layer.closeAll('tips'); break; @@ -1020,7 +1004,7 @@ layer.prompt = function(options, yes){ return layer.open($.extend({ type: 1 - ,btn: [i18n.btnOk,i18n.btnCancel] + ,btn: [layer.i18n.btnOk,layer.i18n.btnCancel] ,content: content ,skin: 'layui-layer-prompt' + skin('prompt') ,maxWidth: win.width() @@ -1035,7 +1019,7 @@ layer.prompt = function(options, yes){ if(value === ''){ prompt.focus(); } else if(value.length > (options.maxlength||500)) { - layer.tips(i18n.promptTipA + (options.maxlength || 500) + i18n.promptTipB, prompt, {tips: 1}); + layer.tips(layer.i18n.promptTipA + (options.maxlength || 500) + layer.i18n.promptTipB, prompt, {tips: 1}); } else { yes && yes(value, index, prompt); } @@ -1287,9 +1271,9 @@ layer.photos = function(options, loop, key){ }, options)); }, function(){ layer.close(dict.loadi); - layer.msg(i18n.photoError, { + layer.msg(layer.i18n.photoError, { time: 30000, - btn: [i18n.photoNextPage, i18n.photoClose], + btn: [layer.i18n.photoNextPage, layer.i18n.photoClose], yes: function(){ data.length > 1 && dict.imgnext(true,true); } diff --git a/common/src/main/resources/static/select2/4.0/i18n/ja_JP.js b/common/src/main/resources/static/select2/4.0/i18n/ja_JP.js new file mode 100644 index 00000000..34782622 --- /dev/null +++ b/common/src/main/resources/static/select2/4.0/i18n/ja_JP.js @@ -0,0 +1,24 @@ +(function() { + if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) + var e = jQuery.fn.select2.amd; + return e.define("select2/i18n/zh_CN", [], function() { + return { errorLoading : function() { + return "結果に載せることはできない。" + }, inputTooLong : function(e) { + var t = e.input.length - e.maximum, n = "" + t + "文字を削除してください"; + return n + }, inputTooShort : function(e) { + var t = e.minimum - e.input.length, n = "少なくとも" + t + "文字を入力してください"; + return n + }, loadingMore : function() { + return "より多くの……" + }, maximumSelected : function(e) { + var t = "選択するしかない" + e.maximum + "項目別"; + return t + }, noResults : function() { + return "一致する項目を見つけることができなかった" + }, searching : function() { + return "検索しています……" + } } + }), { define : e.define, require : e.require } +})(); \ No newline at end of file diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx index 3d43987e..bdc67539 100644 Binary files a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx and b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx differ diff --git a/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.1.5.sql b/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.1.5.sql index 69da9d5a..9f17255f 100644 --- a/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.1.5.sql +++ b/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.1.5.sql @@ -1,10 +1,10 @@ -- 新增文件管理模块 -INSERT INTO js_sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) +INSERT INTO ${_prefix}sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) VALUES ('filemanager', '文件管理', '公共文件柜、个人文件柜、文件分享', 'com.jeesite.modules.filemanager.web.FilemanagerController', '4.1.4', NULL, '0', 'system', getdate(), 'system', getdate(), NULL); -- 员工附属机构关系表 -CREATE TABLE [js_sys_employee_office] +CREATE TABLE [${_prefix}sys_employee_office] ( [id] varchar(64) NOT NULL UNIQUE, [emp_code] varchar(64) NOT NULL, @@ -12,3 +12,7 @@ CREATE TABLE [js_sys_employee_office] [post_code] varchar(64), PRIMARY KEY ([emp_code], [office_code]) ); + +-- 新增日语(日本语)语言包 +INSERT INTO ${_prefix}sys_dict_data(dict_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, dict_label, dict_value, dict_type, is_sys, description, css_style, css_class, status, create_by, create_date, update_by, update_date, remarks, corp_code, corp_name, extend_s1, extend_s2, extend_s3, extend_s4, extend_s5, extend_s6, extend_s7, extend_s8, extend_i1, extend_i2, extend_i3, extend_i4, extend_f1, extend_f2, extend_f3, extend_f4, extend_d1, extend_d2, extend_d3, extend_d4) +VALUES ('1126375062364020736', '0', '0,', 60, '0000000060,', '1', 0, '日本語', '日本語', 'ja_JP', 'sys_lang_type', '1', '', '', '', '0', 'system', getdate(), 'system', getdate(), '', '0', 'JeeSite', '', '', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.1.5.sql b/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.1.5.sql index f04e066e..9470458c 100644 --- a/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.1.5.sql +++ b/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.1.5.sql @@ -1,10 +1,10 @@ -- 新增文件管理模块 -INSERT INTO js_sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) +INSERT INTO ${_prefix}sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) VALUES ('filemanager', '文件管理', '公共文件柜、个人文件柜、文件分享', 'com.jeesite.modules.filemanager.web.FilemanagerController', '4.1.4', NULL, '0', 'system', now(), 'system', now(), NULL); -- 员工附属机构关系表 -CREATE TABLE js_sys_employee_office +CREATE TABLE ${_prefix}sys_employee_office ( id varchar(64) NOT NULL COMMENT '编号', emp_code varchar(64) NOT NULL COMMENT '员工编码', @@ -13,3 +13,7 @@ CREATE TABLE js_sys_employee_office PRIMARY KEY (emp_code, office_code), UNIQUE (id) ) COMMENT = '员工附属机构关系表'; + +-- 新增日语(日本语)语言包 +INSERT INTO ${_prefix}sys_dict_data(dict_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, dict_label, dict_value, dict_type, is_sys, description, css_style, css_class, status, create_by, create_date, update_by, update_date, remarks, corp_code, corp_name, extend_s1, extend_s2, extend_s3, extend_s4, extend_s5, extend_s6, extend_s7, extend_s8, extend_i1, extend_i2, extend_i3, extend_i4, extend_f1, extend_f2, extend_f3, extend_f4, extend_d1, extend_d2, extend_d3, extend_d4) +VALUES ('1126375062364020736', '0', '0,', 60, '0000000060,', '1', 0, '日本語', '日本語', 'ja_JP', 'sys_lang_type', '1', '', '', '', '0', 'system', now(), 'system', now(), '', '0', 'JeeSite', '', '', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.1.5.sql b/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.1.5.sql index d299a830..1dde2a66 100644 --- a/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.1.5.sql +++ b/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.1.5.sql @@ -1,10 +1,10 @@ -- 新增文件管理模块 -INSERT INTO js_sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) +INSERT INTO ${_prefix}sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) VALUES ('filemanager', '文件管理', '公共文件柜、个人文件柜、文件分享', 'com.jeesite.modules.filemanager.web.FilemanagerController', '4.1.4', NULL, '0', 'system', sysdate, 'system', sysdate, NULL); -- 员工附属机构关系表 -CREATE TABLE js_sys_employee_office +CREATE TABLE ${_prefix}sys_employee_office ( id varchar2(64) NOT NULL UNIQUE, emp_code varchar2(64) NOT NULL, @@ -12,9 +12,12 @@ CREATE TABLE js_sys_employee_office post_code varchar2(64), PRIMARY KEY (emp_code, office_code) ); -COMMENT ON TABLE js_sys_employee_office IS '员工附属机构关系表'; -COMMENT ON COLUMN js_sys_employee_office.id IS '编号'; -COMMENT ON COLUMN js_sys_employee_office.emp_code IS '员工编码'; -COMMENT ON COLUMN js_sys_employee_office.office_code IS '机构编码'; -COMMENT ON COLUMN js_sys_employee_office.post_code IS '岗位编码'; +COMMENT ON TABLE ${_prefix}sys_employee_office IS '员工附属机构关系表'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.id IS '编号'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.emp_code IS '员工编码'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.office_code IS '机构编码'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.post_code IS '岗位编码'; +-- 新增日语(日本语)语言包 +INSERT INTO ${_prefix}sys_dict_data(dict_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, dict_label, dict_value, dict_type, is_sys, description, css_style, css_class, status, create_by, create_date, update_by, update_date, remarks, corp_code, corp_name, extend_s1, extend_s2, extend_s3, extend_s4, extend_s5, extend_s6, extend_s7, extend_s8, extend_i1, extend_i2, extend_i3, extend_i4, extend_f1, extend_f2, extend_f3, extend_f4, extend_d1, extend_d2, extend_d3, extend_d4) +VALUES ('1126375062364020736', '0', '0,', 60, '0000000060,', '1', 0, '日本語', '日本語', 'ja_JP', 'sys_lang_type', '1', '', '', '', '0', 'system', sysdate, 'system', sysdate, '', '0', 'JeeSite', '', '', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.1.5.sql b/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.1.5.sql index 7fc9a256..36c927cf 100644 --- a/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.1.5.sql +++ b/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.1.5.sql @@ -1,10 +1,10 @@ -- 新增文件管理模块 -INSERT INTO js_sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) +INSERT INTO ${_prefix}sys_module(module_code, module_name, description, main_class_name, current_version, upgrade_info, status, create_by, create_date, update_by, update_date, remarks) VALUES ('filemanager', '文件管理', '公共文件柜、个人文件柜、文件分享', 'com.jeesite.modules.filemanager.web.FilemanagerController', '4.1.4', NULL, '0', 'system', now(), 'system', now(), NULL); -- 员工附属机构关系表 -CREATE TABLE js_sys_employee_office +CREATE TABLE ${_prefix}sys_employee_office ( id varchar(64) NOT NULL UNIQUE, emp_code varchar(64) NOT NULL, @@ -12,9 +12,12 @@ CREATE TABLE js_sys_employee_office post_code varchar(64), PRIMARY KEY (emp_code, office_code) ) WITHOUT OIDS; -COMMENT ON TABLE js_sys_employee_office IS '员工附属机构关系表'; -COMMENT ON COLUMN js_sys_employee_office.id IS '编号'; -COMMENT ON COLUMN js_sys_employee_office.emp_code IS '员工编码'; -COMMENT ON COLUMN js_sys_employee_office.office_code IS '机构编码'; -COMMENT ON COLUMN js_sys_employee_office.post_code IS '岗位编码'; +COMMENT ON TABLE ${_prefix}sys_employee_office IS '员工附属机构关系表'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.id IS '编号'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.emp_code IS '员工编码'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.office_code IS '机构编码'; +COMMENT ON COLUMN ${_prefix}sys_employee_office.post_code IS '岗位编码'; +-- 新增日语(日本语)语言包 +INSERT INTO ${_prefix}sys_dict_data(dict_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, dict_label, dict_value, dict_type, is_sys, description, css_style, css_class, status, create_by, create_date, update_by, update_date, remarks, corp_code, corp_name, extend_s1, extend_s2, extend_s3, extend_s4, extend_s5, extend_s6, extend_s7, extend_s8, extend_i1, extend_i2, extend_i3, extend_i4, extend_f1, extend_f2, extend_f3, extend_f4, extend_d1, extend_d2, extend_d3, extend_d4) +VALUES ('1126375062364020736', '0', '0,', 60, '0000000060,', '1', 0, '日本語', '日本語', 'ja_JP', 'sys_lang_type', '1', '', '', '', '0', 'system', now(), 'system', now(), '', '0', 'JeeSite', '', '', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/modules/core/src/main/resources/db/upgrade/core/versions b/modules/core/src/main/resources/db/upgrade/core/versions index a33d2623..095e8c03 100644 --- a/modules/core/src/main/resources/db/upgrade/core/versions +++ b/modules/core/src/main/resources/db/upgrade/core/versions @@ -10,4 +10,5 @@ 4.1.1 4.1.2 4.1.3 -4.1.4 \ No newline at end of file +4.1.4 +4.1.5 \ No newline at end of file diff --git a/modules/core/src/main/resources/i18n/core/common/i18n_en.properties b/modules/core/src/main/resources/i18n/core/common/i18n_en.properties index df92d158..884e8765 100644 --- a/modules/core/src/main/resources/i18n/core/common/i18n_en.properties +++ b/modules/core/src/main/resources/i18n/core/common/i18n_en.properties @@ -15,6 +15,7 @@ sys.login.accountDisabled=This Account has disabled. sys.login.accountFreezed=This Account has freezed. sys.login.accountAudited=This Account has audited. sys.login.accountInvalid=This Account has invalid. +sys.login.tickOutMessage=The account has been removed by the administrator. Please login again. sys.login.multiAddrMessage=The account has been logged in elsewhere. Please login again. sys.login.failedNumLock=Login failed, try too many times, the account has been locked, please {0} in minutes after retry. diff --git a/modules/core/src/main/resources/i18n/core/common/i18n_ja_JP.properties b/modules/core/src/main/resources/i18n/core/common/i18n_ja_JP.properties new file mode 100644 index 00000000..c6d00a9c --- /dev/null +++ b/modules/core/src/main/resources/i18n/core/common/i18n_ja_JP.properties @@ -0,0 +1,74 @@ + +# =========== 登录登出相关 =========== + +sys.login.notLongIn=ログインしていないか、またはログインがタイムアウトしました。もう一度ログインしてください +sys.login.success=ログイン成功! +sys.login.getInfo=情報取得成功! +sys.login.failure=ログインID或いはパスワードに誤りがあります。もう一度にゅうしてください。 +sys.login.error=申し訳ございません。ただいまシステムへアクセスできません。しばらくお待ちしてから再度お試してください! +sys.logout.success=ログアウト成功! + +# =========== 账号登录相关 =========== + +sys.login.accountIsBlank=ログインIDを入力してください。 +sys.login.validCodeError=確認コードに誤りがあります。 +sys.login.accountDisabled=このアカウントは無効されています。 +sys.login.accountFreezed=このアカウントは凍結されています。 +sys.login.accountAudited=このアカウントは審査中です。 +sys.login.accountInvalid=このアカウントは存在しません。 +sys.login.tickOutMessage=アカウントは管理者によってオンラインから削除されました。もう一度ログインしてください。 +sys.login.multiAddrMessage=アカウントは他の場所でログインしています。もう一度ログインしてください。 +sys.login.failedNumLock=ログインに失敗しました。試行回数が多すぎます。アカウントがロックされています。{0}分後にもう一度お試しください。 + +# =========== 用户管理相关 =========== + +sys.user.loginCodeExists=ログインアカウントは既に存在します +sys.user.userCodeNotExists=ログインコードが存在しません +sys.user.userNameNotBlank=ユーザー名を入力してください +sys.user.infoSaveSuccess=ユーザー情報保存成功 + +# =========== 用户密码安全策略 =========== + +sys.user.oldPasswordError=旧パスワードが間違っています。再入力してください +sys.user.confirmPasswrodError=新パスワードは新パスワード確認とは異なります。再入力してください +sys.user.passwordModifySuccess=パスワード変更に成功 +sys.user.passwordModifyNotRepeat=新パスワードを以前の{0}回以内の設定記録と同じにすることはできません。 +sys.user.passwordModifySecurityLevel=設定したパスワードが弱いパスワードであるため、パスワードの更新に失敗しました。 +sys.user.initPasswordModifyTip=パスワードはまだ初期パスワードです、パスワードを変更してください +sys.user.passwordModifyTip=パスワードは{0}日間変更されていません。パスワードを変更してください。 +sys.user.passwordError=ログインパスワードが正しくありません。再入力してください +sys.user.pwdQuestionModifySuccess=合言葉変更成功 +sys.user.pwdQuestionAnswerError=合言葉違います + +# =========== 错误页面相关 =========== + +sys.error.400.title=リクエストパラメーターに誤りがあります +sys.error.400.message=リクエストパラメーターに誤りがあります。このパラメーターの解析ができません。 +sys.error.403.title=権限がありません +sys.error.403.message=該当操作の権限がありません! +sys.error.403.message.p1=申し訳ございません。このページのアクセス権限がありません。適当ではない場合システム管理者へ連絡してください。 +sys.error.404.title=ページが存在しません +sys.error.404.message=アクセスしたページは存在しません! +sys.error.404.message.p1=このエラーは次のような理由で発生する可能性があります: +sys.error.404.message.p2=アドレスURLが正しく入力されておらず、リンクの有効期限が切れています。 +sys.error.404.message.p3=アクセスしているアドレスURLは: +sys.error.404.message.p4=質問がある場合は、管理者に連絡してください。. +sys.error.500.title=システム内部エラー +sys.error.500.message=アクセスしたページは問題が発生しました! +sys.error.500.message.p1=申し訳ございません。アクセスしたページは問題が発生しました,システム管理者へ連絡してください。 +sys.error.returnButton=前のページに戻る + +# =========== 文件上传相关 =========== + +sys.file.uploadFileIsEmpty=サーバーに該当ファイルはありません。 +sys.file.uploadValidNotBlank=ファイル検証番号とファイル名を入力してください。 +sys.file.uploadValidImage=画像のみアップロードできます({0}) +sys.file.uploadValidVideo=動画のみアップロードできます({0}) +sys.file.uploadValidFile=文書のみをアップロードできます({0}) +sys.file.uploadValidAll=フォーマットが正しくありません({0}) +sys.file.uploadValidSize=サイズは{0}を超過できません +sys.file.uploadValidContent=ファイルコンテンツフォーマットは許可されていません。 +sys.file.uploadSuccessSeconds=セカンドアップロード成功,時間{0} +sys.file.uploadSuccess=アップロード成功,時間{0} +sys.file.downloadFileNotExist=ファイルが存在しません! +sys.file.chunkUploading=アップロード中 {0}/{1} diff --git a/modules/core/src/main/resources/i18n/core/common_view/i18n_en.properties b/modules/core/src/main/resources/i18n/core/common_view/i18n_en.properties index cc9e60c2..7b968981 100644 --- a/modules/core/src/main/resources/i18n/core/common_view/i18n_en.properties +++ b/modules/core/src/main/resources/i18n/core/common_view/i18n_en.properties @@ -1,8 +1,6 @@ # =========== common =========== -英语=English - 保\ 存=Save 关\ 闭=Close 确定=Ok diff --git a/modules/core/src/main/resources/i18n/core/common_view/i18n_ja_JP.properties b/modules/core/src/main/resources/i18n/core/common_view/i18n_ja_JP.properties new file mode 100644 index 00000000..fb62bcf0 --- /dev/null +++ b/modules/core/src/main/resources/i18n/core/common_view/i18n_ja_JP.properties @@ -0,0 +1,81 @@ + +# =========== common =========== + +保\ 存=保存 +关\ 闭=閉じる +确定=はい +清除=クリア +关闭=閉じる +查询=検索 +重置=リセット +新增=作成 +增行=行作成 +刷新=リフレッシュ +查看=詳細 +展开=展開 +展开一级=一階層展開 +折叠=収束 +折叠全部=全部収束 +操作=操作 +更多操作=他の操作 + +基本信息=基本情報 +详细信息=詳細情報 +扩展字段=拡張項目 + +# =========== imageclip =========== + +图片裁剪=画像編集 +选择图片=画像選択 +放大=拡大 +缩小=縮小 +向左移动=左へ移動 +向右移动=右へ移動 +向上移动=上へ移動 +向下移动=下へ移動 +逆时针旋转=左回り +顺时针旋转=右回り +水平反转=水平反転 +左右反转=左右反転 + +# =========== treeselect =========== + +选项选择=オプション選択 +显示搜索=フィルター表示 +隐藏搜索=フィルター非表示 +关键字=キーワード +搜索=検索 +展开=開く +折叠=隠す +不能选择根节点=ルート要素の選択ができません +不能选择父节点=親要素の選択ができません +请重新选择=もう一度選択してください + +# =========== fileupload =========== + +文件=ファイル +文档=ドキュメント +图片=画像 +音频或视频=音声 or 動画 +请上传=アップロード +开始上传=アップロード +或将照片拖到这里,最多可选\ {0}\ 张=画像をここにドラッグしてください、最大 \ {0} \ 枚可能 +或将文件拖到这里,最多可选\ {0}\ 个=ファイルをここにドラッグしてください、最大 \ {0} \ 個可能 + +# =========== iconselect =========== + +图标选择=アイコン選択 +提示:双击选择图标。=ツールチープ: ダブルクリックでアイオンの選択ができます. + +# =========== ueditor =========== + +目录标题=ディレクトリタイトル +暂无大纲标题=アウトラインのタイトルはまだありません + +# =========== validcode =========== + +验证码=検証コード +请填写验证码=検証コードを入力してください +验证码不正确.=検証コードが正しくありません +看不清,点击图片刷新=はっきり見えない場合、画像更新をクリックしてリフレッシュできます. + diff --git a/modules/core/src/main/resources/i18n/core/sys/i18n_ja_JP.properties b/modules/core/src/main/resources/i18n/core/sys/i18n_ja_JP.properties new file mode 100644 index 00000000..a55ea1c5 --- /dev/null +++ b/modules/core/src/main/resources/i18n/core/sys/i18n_ja_JP.properties @@ -0,0 +1,254 @@ +# =========== 通用字典 =========== + +是=はい +否=いいえ +男=男 +女=女 +正常=正常 +删除=削除 +停用=無効 +冻结=凍結 +待审=診察 +驳回=却下 +草稿=草稿 + +# =========== 通用字段 =========== + +状态=状態 +备注信息=備考 +创建者=作成者 +创建时间=作成日時 +更新者=更新者 +更新时间=更新日時 +排序号=ソート + +# =========== 功能标题 =========== + +系统管理=システム管理 +组织管理=組織管理 +用户管理=ユーザー管理 +机构管理=機構管理 +公司管理=会社管理 +岗位管理=職位管理 + +用户选择=ユーザー選択 +机构选择=事務所選択 +公司选择=会社選択 +区域选择=区域選択 +日期选择=日付選択 +日期时间=日時 + +# =========== 登录页 =========== + +登录=ログイン + +请填写登录账号.=ログインIDを入力してください. +登录账号=ログインアカウント + +登录密码,鼠标按下显示密码=押下するとパスワードを表示します. +请填写登录密码.=パスワードを入力してください. +登录密码=パスワード + +公共场所慎用,下次不需要再填写帐号=次回からログインIDの入力が不要にします. +记住账号=ログインID記憶 +公共场所慎用,下次不需要再填写帐号和密码=次回からパスワードの入力が不要にします. +自动登录=パスワード記憶 + +登录验证成功,正在进入...=ログイン中、少々お待ちください... +正在验证登录,请稍候...=登録を行っています... +立即登录=ログイン + +注册账号=アカウント作成 +忘记密码=パスワードを忘れた + +# =========== 主框架页 =========== + +仪表盘=計器盤 +全屏=最大化 +切换主题=テーマ切替 + +个人中心=マイページ +修改密码=パスワード変更 +退出登录=ログアウト +系统切换=システム切替 +当前租户=当面テナント +租户切换=テナント切り替え +在线人员=オンラインスタッフ + +在线=オンライン +注销=ログアウト + +# =========== 消息提醒 =========== + +消息=メッセージ +你有=見読 +条消息=件メッセージ +查看全部消息=全部見る +查看消息=開く +系统消息=システムメッセージ +您有\ {0}\ 条新消息,由于消息太多,这里为您合并,请点击查看按钮看详情。=見読メッセージ {0} 件, 省略で表示しているため, クリックで一覧を見る. + +# =========== 个人中心 =========== + +修改密保=セキュリティ変更 +个人信息=個人情報 + +修改头像=アバター変更 + +个性签名=署名 +上次登录=前回ログイン +时间=時間 +首次登录=初めてログイン + +旧密码=旧パスワード +新密码=新パスワード +确认新密码=新パスワード確認 + +您还未设置过密保问题,您可以根据登录密码设置新的密保问题及答案。=セキュリティ合言葉が設定されていません。ログイン後新しいセキュリティ合言葉を設定してください。. +旧的密保问题及答案=古いセキュリティ合言葉 +旧密保问题=古いセキュリティ合言葉の質問 +旧密保问题答案=古いセキュリティ合言葉の答え +新的密保问题及答案=新しいセキュリティ合言葉 +新密保问题=新しいセキュリティ合言葉の質問 +新密保问题答案=新しいセキュリティ合言葉の答え + +# =========== 用户管理 =========== + +组织机构=機構 +新增用户=ユーザー作成 +编辑用户=ユーザー編集 +导出=導入 +导入=を導く + +停用用户=ユーザー無効 +确认要停用该用户吗?=このユーザーを無効にしてもよろしいですか? +启用用户=ユーザー有効 +确认要启用该用户吗?=このユーザーを有効にしてもよろしいですか? +删除用户=ユーザー削除 +确认要删除该用户吗?=このユーザーを削除してもよろしいですか? +用户分配角色=ユーザーロール設定 +分配角色=ロール設定 +用户分配数据权限=ユーザーデータ権限設定 +数据权限=データ権限 +用户密码重置=パスワードリセット +确认要将该用户密码重置到初始状态吗?=ユーザーのログインパスワードをリセットします。よろしいですか? +重置密码=パスワードリセット + +保存用户失败,登录账号''{0}''已存在=ユーザーの保存に失敗しました。ログインアカウント '' {0} ''は既に存在します +保存用户''{0}''成功=ユーザー ''{0}'' 保存成功 +停用用户失败,不允许停用当前用户=ユーザー無効に更新する処理失敗。このユーザーは無効にすることできません +停用用户''{0}''成功=ユーザー ''{0}'' 無効設定成功 +启用用户''{0}''成功=ユーザー ''{0}'' 有効設定成功 +重置用户''{0}''密码成功=ユーザー ''{0}'' のパスワードを初期化成功しました +删除用户失败,不允许删除当前用户=ユーザー削除失敗. このユーザーを削除することができません +删除用户''{0}''成功=ユーザー ''{0}'' 削除成功 +用户分配数据权限成功=ユーザーデータ権限設定成功 + +账号=アカウント +昵称=ニックネーム +邮箱=メール +手机=携帯 +电话=電話 +姓名=氏名 +机构=機構 +公司=会社 +岗位=職位 + +归属机构=所属機構 +归属公司=所属会社 +登录账号=アカウント +登录账号已存在=ログインアカウントがすでに存在します +用户昵称=ニックネーム +电子邮箱=メール +手机号码=携帯電話 +办公电话=会社電話 +权重(排序)=レベル(ソート) +权重越大排名越靠前,请填写数字。=重要度が大きいほど前に表示します。数字を入力してください. + +员工编号=社員コード +员工姓名=氏名 +所在岗位=所属職位 +英文名=英語氏名 + +附属机构=付属機構 +附属岗位=付属職位 + +角色名称=ロール名称 +角色编码=ロールコード + +# =========== 機構管理 =========== + +新增机构=機構追加 +编辑机构=機構編集 + +停用机构=機構無効にする +确认要停用该机构吗?=機構無効にします、よろしいですか? +启用机构=機構有効にする +确认要启用该机构吗?=機構有効にします、よろしいですか? +删除机构=機構削除 +确认要删除该机构及所有子机构吗?=機構及び子機構を削除します、よろしいですか? +新增下级机构=子機構追加 + +保存机构''{0}''成功=機構 ''{0}'' 保存成功 +该机构包含未停用的子机构!=有効な子機構が含まれています! +停用机构''{0}''成功=機構 ''{0}'' 無効にする処理成功 +启用机构''{0}''成功=機構 ''{0}'' 有効にする処理成功 +删除机构''{0}''成功=機構 ''{0}'' 削除成功 + +上级机构=親機構 +机构名称=機構名称 +机构代码=機構コード +机构全称=機構フルネーム +机构类型=機構タイプ +负责人=責任者 +联系地址=住所 +邮政编码=郵便番号 + +# =========== 公司管理 =========== + +新增公司=会社追加 +编辑公司=会社編集 + +停用公司=会社無効にする +确认要停用该公司吗?=会社無効にします、よろしいですか? +启用公司=会社有効にする +确认要启用该公司吗?=会社有効にします、よろしいですか? +删除公司=会社削除 +确认要删除该公司及所有子公司吗?=会社及び子会社を削除します、よろしいですか? +新增下级公司=子会社追加 + +保存公司''{0}''成功=会社 ''{0}'' 保存成功 +该公司包含未停用的子公司!=有効な会社が含まれています! +停用公司''{0}''成功=会社 ''{0}'' 無効設定成功 +启用公司''{0}''成功=会社 ''{0}'' 有効設定成功 +删除公司''{0}''成功=会社 ''{0}'' 削除成功 + +上级公司=親会社 +公司名称=会社名称 +公司编码=会社コード +公司全称=会社フルネーム +归属区域=エリア +包含机构=機構 + +# =========== 岗位管理 =========== + +新增岗位=職位追加 +编辑岗位=職位編集 + +停用岗位=職位無効にする +确认要停用该岗位吗?=職位無効にします、よろしいですか? +启用岗位=職位有効にする +确认要启用该岗位吗?=職位有効にします、よろしいですか? +删除岗位=職位削除 +确认要删除该岗位吗?=職位を削除します、よろしいですか? + +保存岗位失败,岗位名称''{0}''已存在=職位保存失敗。職位名称 ''{0}'' 既に存在します +保存岗位''{0}''成功=職位 ''{0}'' 保存成功 +停用岗位''{0}''成功=職位 ''{0}'' 無効設定成功 +启用岗位''{0}''成功=職位 ''{0}'' 有効設定成功 +删除岗位''{0}''成功=職位 ''{0}'' 削除成功 + +岗位名称=職位名称 +岗位名称已存在=職位名称が既に存在します +岗位编码=職位コード +岗位分类=職位分類 diff --git a/modules/core/src/main/resources/static/common/i18n/jeesite_en.js b/modules/core/src/main/resources/static/common/i18n/jeesite_en.js index 14aa08e4..9ba1962b 100644 --- a/modules/core/src/main/resources/static/common/i18n/jeesite_en.js +++ b/modules/core/src/main/resources/static/common/i18n/jeesite_en.js @@ -6,13 +6,26 @@ * @version 2017-12-24 */ (function($) { -window.js = window.js || {}; -js.i18n = $.extend({}, js.i18n, { - 'tabpanel.newTabPage':'New Page', - 'loading.message':'Loading ...', - 'loading.submitMessage':'Submission ...', - 'showMessage.error':'failure,error', - 'showMessage.success':'success,completion', - 'showMessage.warning':'no' -}); + window.js = window.js || {}; + js.i18n = $.extend({}, js.i18n, { + 'tabpanel.newTabPage':'New Page', + 'loading.message':'Loading ...', + 'loading.submitMessage':'Submission ...', + 'showMessage.error':'failure,error', + 'showMessage.success':'success,completion', + 'showMessage.warning':'no' + }); + // ============ layer ============ + window.layer = window.layer || {}; + layer.i18n = $.extend({}, layer.i18n, { + btnOk: 'Ok', + btnCancel: 'Cancle', + title: 'Information', + promptTipA: 'Enter ', + promptTipB: 'character at most.', + noPicture: 'No picture', + photoError: 'Current image address error.
Next slide?', + photoNextPage: 'The next', + photoClose: 'Close' + }); })(jQuery); diff --git a/modules/core/src/main/resources/static/common/i18n/jeesite_ja_JP.js b/modules/core/src/main/resources/static/common/i18n/jeesite_ja_JP.js new file mode 100644 index 00000000..cdc8f3cf --- /dev/null +++ b/modules/core/src/main/resources/static/common/i18n/jeesite_ja_JP.js @@ -0,0 +1,31 @@ +/*! + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * + * 国际化文件 + * @author ThinkGem + * @version 2017-12-24 + */ +(function($) { + window.js = window.js || {}; + js.i18n = $.extend({}, js.i18n, { + 'tabpanel.newTabPage':'新タブ', + 'loading.message':'ローディング...お待ちください...', + 'loading.submitMessage':'送信中...お待ちください...', + 'showMessage.error':'失敗,エラー,未完了', + 'showMessage.success':'成功,完了', + 'showMessage.warning':'不可,不許可,必須,既に存在,不要,不正確' + }); + // ============ layer ============ + window.layer = window.layer || {}; + layer.i18n = $.extend({}, layer.i18n, { + btnOk: '確定', + btnCancel: 'キャンセル', + title: 'メッセージ', + promptTipA: '最大入力', + promptTipB: '個文字', + noPicture: '画像が存在しません', + photoError: 'この画像が表示できません
次の画像へ遷移しますか?', + photoNextPage: '次へ', + photoClose: '閉じる' + }); +})(jQuery); diff --git a/modules/core/src/main/resources/static/common/i18n/jeesite_zh_CN.js b/modules/core/src/main/resources/static/common/i18n/jeesite_zh_CN.js index 7146c6f4..bb3b9ca4 100644 --- a/modules/core/src/main/resources/static/common/i18n/jeesite_zh_CN.js +++ b/modules/core/src/main/resources/static/common/i18n/jeesite_zh_CN.js @@ -6,13 +6,13 @@ * @version 2017-12-24 */ (function($) { -window.js = window.js || {}; -js.i18n = $.extend({}, js.i18n, { - 'tabpanel.newTabPage':'新页签', - 'loading.message':'正在加载,请稍后...', - 'loading.submitMessage':'正在提交,请稍后...', - 'showMessage.error':'失败,错误,未完成', - 'showMessage.success':'成功,完成', - 'showMessage.warning':'不能,不允许,必须,已存在,不需要,不正确' -}); + window.js = window.js || {}; + js.i18n = $.extend({}, js.i18n, { + 'tabpanel.newTabPage':'新页签', + 'loading.message':'正在加载,请稍后...', + 'loading.submitMessage':'正在提交,请稍后...', + 'showMessage.error':'失败,错误,未完成', + 'showMessage.success':'成功,完成', + 'showMessage.warning':'不能,不允许,必须,已存在,不需要,不正确' + }); })(jQuery); diff --git a/modules/core/src/main/resources/static/jqGrid/4.7/js/i18n/ja_JP.js b/modules/core/src/main/resources/static/jqGrid/4.7/js/i18n/ja_JP.js new file mode 100644 index 00000000..15165f55 --- /dev/null +++ b/modules/core/src/main/resources/static/jqGrid/4.7/js/i18n/ja_JP.js @@ -0,0 +1,137 @@ +;(function($){ +/** + * 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 +**/ +$.jgrid = $.jgrid || {}; +$.extend($.jgrid,{ + extend : { + btnSearch: '検索', + btnHideSearch: '隠匿', + expandTooMany: '今回は“{0}”のノードを展開しなければならない。展開ノードが多すぎるため、キャンセルが実行される。', + pageTitle: '数字をクリックすると、ページ番号とページ数を入力して、リターンカーを押して有効になります。!', + pageLabelA: '現在の', + pageLabelB: 'ページは,各ページ', + pageLabelC: '枚,全部 で{0} つ', + }, + defaults : { + recordtext: "View {0} - {1} of {2}", + emptyrecords: "No records to view", + loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...", + pgtext : "Page {0} of {1}" + }, + search : { + caption: "\u691c\u7d22...", + Find: "\u691c\u7d22", + Reset: "\u30ea\u30bb\u30c3\u30c8", + odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], + groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], + matchText: " match", + rulesText: " rules" + }, + 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: "Data has been changed! Save changes?", + bYes : "Yes", + bNo : "No", + bExit : "Cancel", + 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: "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: "\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: "View selected row" + }, + 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: 2, prefix: "", suffix:"", defaultValue: '0.00'}, + 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: "\u756a\u76ee", + srcformat: 'Y-m-d', + newformat: 'd/m/Y', + 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 + }, + baseLinkUrl: '', + showAction: '', + target: '', + checkbox : {disabled:true}, + idName : 'id' + } +}); +})(jQuery); diff --git a/modules/core/src/main/resources/static/jquery-plugins/jquery.strength_i18n.js b/modules/core/src/main/resources/static/jquery-plugins/jquery.strength_i18n.js new file mode 100644 index 00000000..9ae61aeb --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-plugins/jquery.strength_i18n.js @@ -0,0 +1,26 @@ +(function($) { + + $.fn.strength = $.fn.strength || {}; + if (window.lang == 'en'){ + $.extend(true, $.fn.strength.defaults, { + strengthTipText: 'Password no less than 8 bits in length, and included, upper case letters, lower case letters, Numbers and symbols.', + strengthButtonText: 'Click to display the password.', + strengthButtonTextToggle: 'Click the hidden password.', + veryweakText: 'Password is too weak!', + weakText: 'Password is weak!', + mediumText: 'Password is safer!', + strongText: 'Password is very strong and safe!' + }); + } else if (window.lang == 'ja_JP'){ + $.extend(true, $.fn.strength.defaults, { + strengthTipText: 'パスワードは长さが8ビット以内で、その中には、上のケース、下のケース、数字、記号があります。', + strengthButtonText: 'クリックしてパスワードを表示します。', + strengthButtonTextToggle: '隠れパスワードをクリックします。', + veryweakText: 'パスワードが弱すぎる!', + weakText: '体の弱いパスワードは', + mediumText: 'パスワードは!平和な', + strongText: 'パスワードは丈夫で安全です!' + }); + } + +})(jQuery); diff --git a/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.en.js b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.en.js new file mode 100644 index 00000000..8ca50aff --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.en.js @@ -0,0 +1,30 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + factory(require('jquery')); + } else { + factory(jQuery); + } +}(function (jQuery) { + // English (Template) + jQuery.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "ago", + suffixFromNow: "from now", + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "about an hour", + hours: "about %d hours", + day: "a day", + days: "%d days", + month: "about a month", + months: "%d months", + year: "about a year", + years: "%d years", + wordSeparator: " ", + numbers: [] + }; +})); diff --git a/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.ja_JP.js b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.ja_JP.js new file mode 100644 index 00000000..ddb7b029 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.ja_JP.js @@ -0,0 +1,29 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + factory(require('jquery')); + } else { + factory(jQuery); + } +}(function (jQuery) { + // Japanese + jQuery.timeago.settings.strings = { + prefixAgo: "", + prefixFromNow: "今から", + suffixAgo: "前", + suffixFromNow: "後", + seconds: "1 分未満", + minute: "約 1 分", + minutes: "%d 分", + hour: "約 1 時間", + hours: "約 %d 時間", + day: "約 1 日", + days: "約 %d 日", + month: "約 1 ヶ月", + months: "約 %d ヶ月", + year: "約 1 年", + years: "約 %d 年", + wordSeparator: "" + }; +})); \ No newline at end of file diff --git a/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_CN.js b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_CN.js new file mode 100644 index 00000000..c21a2874 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_CN.js @@ -0,0 +1,31 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + factory(require('jquery')); + } else { + factory(jQuery); + } +}(function (jQuery) { + // Simplified Chinese + jQuery.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "之前", + suffixFromNow: "之后", + seconds: "不到1分钟", + minute: "大约1分钟", + minutes: "%d分钟", + hour: "大约1小时", + hours: "大约%d小时", + day: "1天", + days: "%d天", + month: "大约1个月", + months: "%d月", + year: "大约1年", + years: "%d年", + numbers: [], + wordSeparator: "" + }; +})); + diff --git a/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_TW.js b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_TW.js new file mode 100644 index 00000000..15f56269 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-timeago/i18n/jquery.timeago.zh_TW.js @@ -0,0 +1,30 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + factory(require('jquery')); + } else { + factory(jQuery); + } +}(function (jQuery) { + // Traditional Chinese, zh-tw + jQuery.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "之前", + suffixFromNow: "之後", + seconds: "不到1分鐘", + minute: "大約1分鐘", + minutes: "%d分鐘", + hour: "大約1小時", + hours: "%d小時", + day: "大約1天", + days: "%d天", + month: "大約1個月", + months: "%d個月", + year: "大約1年", + years: "%d年", + numbers: [], + wordSeparator: "" + }; +})); diff --git a/modules/core/src/main/resources/static/jquery-timeago/jquery.timeago.js b/modules/core/src/main/resources/static/jquery-timeago/jquery.timeago.js new file mode 100644 index 00000000..5fcfa1bb --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-timeago/jquery.timeago.js @@ -0,0 +1,232 @@ +/** + * Timeago is a jQuery plugin that makes it easy to support automatically + * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). + * + * @name timeago + * @version 1.6.3 + * @requires jQuery v1.2.3+ + * @author Ryan McGeary + * @license MIT License - http://www.opensource.org/licenses/mit-license.php + * + * For usage and examples, visit: + * http://timeago.yarp.com/ + * + * Copyright (c) 2008-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + factory(require('jquery')); + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + $.timeago = function(timestamp) { + if (timestamp instanceof Date) { + return inWords(timestamp); + } else if (typeof timestamp === "string") { + return inWords($.timeago.parse(timestamp)); + } else if (typeof timestamp === "number") { + return inWords(new Date(timestamp)); + } else { + return inWords($.timeago.datetime(timestamp)); + } + }; + var $t = $.timeago; + + $.extend($.timeago, { + settings: { + refreshMillis: 60000, + allowPast: true, + allowFuture: false, + localeTitle: false, + cutoff: 0, + autoDispose: true, + strings: { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "ago", + suffixFromNow: "from now", + inPast: 'any moment now', + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "about an hour", + hours: "about %d hours", + day: "a day", + days: "%d days", + month: "about a month", + months: "%d months", + year: "about a year", + years: "%d years", + wordSeparator: " ", + numbers: [] + } + }, + + inWords: function(distanceMillis) { + if (!this.settings.allowPast && ! this.settings.allowFuture) { + throw 'timeago allowPast and allowFuture settings can not both be set to false.'; + } + + var $l = this.settings.strings; + var prefix = $l.prefixAgo; + var suffix = $l.suffixAgo; + if (this.settings.allowFuture) { + if (distanceMillis < 0) { + prefix = $l.prefixFromNow; + suffix = $l.suffixFromNow; + } + } + + if (!this.settings.allowPast && distanceMillis >= 0) { + return this.settings.strings.inPast; + } + + var seconds = Math.abs(distanceMillis) / 1000; + var minutes = seconds / 60; + var hours = minutes / 60; + var days = hours / 24; + var years = days / 365; + + function substitute(stringOrFunction, number) { + var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction; + var value = ($l.numbers && $l.numbers[number]) || number; + return string.replace(/%d/i, value); + } + + var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || + seconds < 90 && substitute($l.minute, 1) || + minutes < 45 && substitute($l.minutes, Math.round(minutes)) || + minutes < 90 && substitute($l.hour, 1) || + hours < 24 && substitute($l.hours, Math.round(hours)) || + hours < 42 && substitute($l.day, 1) || + days < 30 && substitute($l.days, Math.round(days)) || + days < 45 && substitute($l.month, 1) || + days < 365 && substitute($l.months, Math.round(days / 30)) || + years < 1.5 && substitute($l.year, 1) || + substitute($l.years, Math.round(years)); + + var separator = $l.wordSeparator || ""; + if ($l.wordSeparator === undefined) { separator = " "; } + return $.trim([prefix, words, suffix].join(separator)); + }, + + parse: function(iso8601) { + var s = $.trim(iso8601); + s = s.replace(/\.\d+/,""); // remove milliseconds + s = s.replace(/-/,"/").replace(/-/,"/"); + s = s.replace(/T/," ").replace(/Z/," UTC"); + s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400 + s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900 + return new Date(s); + }, + datetime: function(elem) { + var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); + return $t.parse(iso8601); + }, + isTime: function(elem) { + // jQuery's `is()` doesn't play well with HTML5 in IE + return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time"); + } + }); + + // functions that can be called via $(el).timeago('action') + // init is default when no action is given + // functions are called with context of a single element + var functions = { + init: function() { + functions.dispose.call(this); + var refresh_el = $.proxy(refresh, this); + refresh_el(); + var $s = $t.settings; + if ($s.refreshMillis > 0) { + this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis); + } + }, + update: function(timestamp) { + var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp); + $(this).data('timeago', { datetime: date }); + if ($t.settings.localeTitle) { + $(this).attr("title", date.toLocaleString()); + } + refresh.apply(this); + }, + updateFromDOM: function() { + $(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) }); + refresh.apply(this); + }, + dispose: function () { + if (this._timeagoInterval) { + window.clearInterval(this._timeagoInterval); + this._timeagoInterval = null; + } + } + }; + + $.fn.timeago = function(action, options) { + var fn = action ? functions[action] : functions.init; + if (!fn) { + throw new Error("Unknown function name '"+ action +"' for timeago"); + } + // each over objects here and call the requested function + this.each(function() { + fn.call(this, options); + }); + return this; + }; + + function refresh() { + var $s = $t.settings; + + //check if it's still visible + if ($s.autoDispose && !$.contains(document.documentElement,this)) { + //stop if it has been removed + $(this).timeago("dispose"); + return this; + } + + var data = prepareData(this); + + if (!isNaN(data.datetime)) { + if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) { + $(this).text(inWords(data.datetime)); + } else { + if ($(this).attr('title').length > 0) { + $(this).text($(this).attr('title')); + } + } + } + return this; + } + + function prepareData(element) { + element = $(element); + if (!element.data("timeago")) { + element.data("timeago", { datetime: $t.datetime(element) }); + var text = $.trim(element.text()); + if ($t.settings.localeTitle) { + element.attr("title", element.data('timeago').datetime.toLocaleString()); + } else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) { + element.attr("title", text); + } + } + return element.data("timeago"); + } + + function inWords(date) { + return $t.inWords(distance(date)); + } + + function distance(date) { + return (new Date().getTime() - date.getTime()); + } + + // fix for IE6 suckage + document.createElement("abbr"); + document.createElement("time"); +})); \ No newline at end of file diff --git a/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_en.js b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_en.js new file mode 100644 index 00000000..df9d11e8 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_en.js @@ -0,0 +1,33 @@ +(function ($) { + $.extend($.validator.messages, { + required: "This field is required.", + remote: "Please fix this field.", + email: "Please enter a valid email address.", + url: "Please enter a valid URL.", + date: "Please enter a valid date.", + dateISO: "Please enter a valid date (ISO).", + number: "Please enter a valid number.", + digits: "Please enter only digits.", + equalTo: "Please enter the same value again.", + maxlength: $.validator.format( "Please enter no more than {0} characters." ), + minlength: $.validator.format( "Please enter at least {0} characters." ), + rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ), + range: $.validator.format( "Please enter a value between {0} and {1}." ), + max: $.validator.format( "Please enter a value less than or equal to {0}." ), + min: $.validator.format( "Please enter a value greater than or equal to {0}." ), + errorMessage: "The information you filled in is wrong.", + userName: "Chinese characters, English letters, Numbers and underscores.", + realName: "Can only be 2-30 Chinese characters", + abc: "Please enter alphanumeric or underline", + noEqualTo: "Please enter different values again", + mobile: "Please fill in your mobile number correctly, only 13,14,15,16,17,18,19", + simplePhone: "Please fill in your phone number correctly, and the fixed number is the area code (3-4 digits),", + phone: "Please fill in your phone number correctly, the number (3-4 digits), and the phone number is 13,14,15,16,17,18,19.", + zipCode: "Please fill in your zipCode correctly", + integer: "Please enter an integer", + ipv4: "Please enter a valid IP v4 address", + ipv6: "Please enter a valid IP v6 address", + qq: "Please fill in your qq number correctly", + idcard: "Please enter the correct id number (15-18)" + }); +}(jQuery)); diff --git a/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_ja_JP.js b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_ja_JP.js new file mode 100644 index 00000000..7fc0c1f3 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_ja_JP.js @@ -0,0 +1,33 @@ +(function ($) { + $.extend( $.validator.messages, { + required: "このフィールドは必須です。", + remote: "このフィールドを修正してください。", + email: "有効なEメールアドレスを入力してください。", + url: "有効なURLを入力してください。", + date: "有効な日付を入力してください。", + dateISO: "有効な日付(ISO)を入力してください。", + number: "有効な数字を入力してください。", + digits: "数字のみを入力してください。", + equalTo: "同じ値をもう一度入力してください。", + maxlength: $.validator.format( "{0} 文字以内で入力してください。" ), + minlength: $.validator.format( "{0} 文字以上で入力してください。" ), + rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ), + range: $.validator.format( "{0} から {1} までの値を入力してください。" ), + max: $.validator.format( "{0} 以下の値を入力してください。" ), + min: $.validator.format( "{0} 以上の値を入力してください。" ), + errorMessage: "ご記入頂いた情報に誤りがございましたので、提示に基づき修正をお願いします。", + userName: "ご記入頂いた情報に誤りがございましたので、提示に基づき修正をお願いします。登录アカウントは中文字、英字、数字、下線のみです", + realName: "名前は2 ~ 30字程度", + abc: "数字または下線を入力してください", + noEqualTo: "再度異なる値を入力して下さい", + mobile: "お电话番号を正确にお书きください。ただ13、14、15、16、17、18、19番です", + simplePhone: "お电话番号を正しくお书きください。固定番号(3-4位)番号(7-9位)", + phone: "お电话番号を正确にお书きください。固定番号(3-4位)番号(7-9位)、携帯电话は13、14、15、16、17、18、19番です", + zipCode: "郵便番号を正しく入力してください", + integer: "整数を入力してください", + ipv4: "有効なIP v4アドレスを入力してください", + ipv6: "有効なIP v6アドレスを入力してください", + qq: "あなたのQQ番号を正しく入力してください", + idcard: "正しい住民登録番号(15 ~ 18位)を入力してください。" + }); +}(jQuery)); diff --git a/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_CN.js b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_CN.js new file mode 100644 index 00000000..c80bef5a --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_CN.js @@ -0,0 +1,33 @@ +(function ($) { + $.extend($.validator.messages, { + required: "必填信息", + remote: "请修正该信息", + email: "请输入正确格式的电子邮件", + url: "请输入合法的网址", + date: "请输入合法的日期", + dateISO: "请输入合法的日期 (YYYY-MM-DD).", + number: "请输入合法的数值", + digits: "请输入一个正整数", + equalTo: "请再次输入相同的值", + maxlength: $.validator.format("最多可以输入 {0} 个字符"), + minlength: $.validator.format("最少要输入 {0} 个字符"), + rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"), + range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"), + max: $.validator.format("请输入不大于 {0} 的数值"), + min: $.validator.format("请输入不小于 {0} 的数值"), + errorMessage: "您填写的信息有误,请根据提示修正。", + userName: "登录账号只能包括中文字、英文字母、数字和下划线", + realName: "姓名只能为2-30个汉字", + abc: "请输入字母数字或下划线", + noEqualTo: "请再次输入不同的值", + mobile: "请正确填写您的手机号码,只能是13,14,15,16,17,18,19号段", + simplePhone: "请正确填写您的电话号码,固话为区号(3-4位)号码(7-9位)", + phone: "请正确填写您的电话号码,固话为区号(3-4位)号码(7-9位),手机为13,14,15,16,17,18,19号段", + zipCode: "请正确填写您的邮政编码", + integer: "请输入一个整数", + ipv4: "请输入一个有效的 IP v4 地址", + ipv6: "请输入一个有效的 IP v6 地址", + qq: "请正确填写您的QQ号码", + idcard: "请输入正确的身份证号码(15-18位)" + }); +}(jQuery)); diff --git a/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_TW.js b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_TW.js new file mode 100644 index 00000000..14d08836 --- /dev/null +++ b/modules/core/src/main/resources/static/jquery-validation/1.16/localization/messages_zh_TW.js @@ -0,0 +1,33 @@ +(function ($) { + $.extend( $.validator.messages, { + required: "必須填寫", + remote: "請修正此欄位", + email: "請輸入有效的電子郵件", + url: "請輸入有效的網址", + date: "請輸入有效的日期", + dateISO: "請輸入有效的日期 (YYYY-MM-DD)", + number: "請輸入正確的數值", + digits: "只可輸入數字", + equalTo: "請重複輸入一次", + maxlength: $.validator.format( "最多 {0} 個字" ), + minlength: $.validator.format( "最少 {0} 個字" ), + rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ), + range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ), + max: $.validator.format( "請輸入不大於 {0} 的數值" ), + min: $.validator.format( "請輸入不小於 {0} 的數值" ), + errorMessage: "您填寫的信息有誤,請根據提示修正。", + userName: "登錄賬號只能包括中文字、英文字母、數字和下劃線", + realName: "姓名只能爲2-30個漢字", + abc: "請輸入字母數字或下劃線", + noEqualTo: "請再次輸入不同的值", + mobile: "請正確填寫您的手機號碼,只能是13,14,15,16,17,18,19號段", + simplePhone: "請正確填寫您的電話號碼,固話爲區號(3-4位)號碼(7-9位)", + phone: "請正確填寫您的電話號碼,固話爲區號(3-4位)號碼(7-9位),手機爲13,14,15,16,17,18,19號段", + zipCode: "請正確填寫您的郵政編碼", + integer: "請輸入一個整數", + ipv4: "請輸入一個有效的 IP v4 地址", + ipv6: "請輸入一個有效的 IP v6 地址", + qq: "請正確填寫您的QQ號碼", + idcard: "請輸入正確的身份證號碼(15-18位)" + }); +}(jQuery)); diff --git a/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/copy.png b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/copy.png new file mode 100644 index 00000000..b2536aac Binary files /dev/null and b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/copy.png differ diff --git a/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/localimage.png b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/localimage.png new file mode 100644 index 00000000..7303c364 Binary files /dev/null and b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/localimage.png differ diff --git a/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/music.png b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/music.png new file mode 100644 index 00000000..354edebc Binary files /dev/null and b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/music.png differ diff --git a/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/upload.png b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/upload.png new file mode 100644 index 00000000..08d4d926 Binary files /dev/null and b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/images/upload.png differ diff --git a/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/ja_JP.js b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/ja_JP.js new file mode 100644 index 00000000..9c715751 --- /dev/null +++ b/modules/core/src/main/resources/static/ueditor/1.4/lang/ja_JP/ja_JP.js @@ -0,0 +1,669 @@ +/** + * Created with JetBrains PhpStorm. + * User: taoqili + * Date: 12-6-12 + * Time: 下午5:02 + * To change this template use File | Settings | File Templates. + */ +UE.I18N['ja_JP'] = { + 'labelMap':{ + 'anchor':'锚点', 'undo':'撤销', 'redo':'重做', 'bold':'加粗', 'indent':'首行缩进', 'snapscreen':'截图', + 'italic':'斜体', 'underline':'下划线', 'strikethrough':'删除线', 'subscript':'下标','fontborder':'字符边框', + 'superscript':'上标', 'formatmatch':'格式刷', 'source':'源代码', 'blockquote':'引用', + 'pasteplain':'纯文本粘贴模式', 'selectall':'全选', 'print':'打印', 'preview':'预览', + 'horizontal':'分隔线', 'removeformat':'清除格式', 'time':'时间', 'date':'日期', + 'unlink':'取消链接', 'insertrow':'前插入行', 'insertcol':'前插入列', 'mergeright':'右合并单元格', 'mergedown':'下合并单元格', + 'deleterow':'删除行', 'deletecol':'删除列', 'splittorows':'拆分成行', + 'splittocols':'拆分成列', 'splittocells':'完全拆分单元格','deletecaption':'删除表格标题','inserttitle':'插入标题', + 'mergecells':'合并多个单元格', 'deletetable':'删除表格', 'cleardoc':'清空文档','insertparagraphbeforetable':"表格前插入行",'insertcode':'代码语言', + 'fontfamily':'字体', 'fontsize':'字号', 'paragraph':'段落格式', 'simpleupload':'单图上传', 'insertimage':'多图上传','edittable':'表格属性','edittd':'单元格属性', 'link':'超链接', + 'emotion':'表情', 'spechars':'特殊字符', 'searchreplace':'查询替换', 'map':'Baidu地图', 'gmap':'Google地图', + 'insertvideo':'视频', 'help':'帮助', 'justifyleft':'居左对齐', 'justifyright':'居右对齐', 'justifycenter':'居中对齐', + 'justifyjustify':'两端对齐', 'forecolor':'字体颜色', 'backcolor':'背景色', 'insertorderedlist':'有序列表', + 'insertunorderedlist':'无序列表', 'fullscreen':'全屏', 'directionalityltr':'从左向右输入', 'directionalityrtl':'从右向左输入', + 'rowspacingtop':'段前距', 'rowspacingbottom':'段后距', 'pagebreak':'分页', 'insertframe':'插入Iframe', 'imagenone':'默认', + 'imageleft':'左浮动', 'imageright':'右浮动', 'attachment':'附件', 'imagecenter':'居中', 'wordimage':'图片转存', + 'lineheight':'行间距','edittip' :'编辑提示','customstyle':'扩展样式', 'autotypeset':'自动排版', + 'webapp':'百度应用','touppercase':'字母大写', 'tolowercase':'字母小写','background':'背景','template':'模板','scrawl':'涂鸦', + 'music':'音乐','inserttable':'插入表格','drafts': '从草稿箱加载', 'charts': '图表' + }, + 'insertorderedlist':{ + 'num':'1,2,3...', + 'num1':'1),2),3)...', + 'num2':'(1),(2),(3)...', + 'cn':'一,二,三....', + 'cn1':'一),二),三)....', + 'cn2':'(一),(二),(三)....', + 'decimal':'1,2,3...', + 'lower-alpha':'a,b,c...', + 'lower-roman':'i,ii,iii...', + 'upper-alpha':'A,B,C...', + 'upper-roman':'I,II,III...' + }, + 'insertunorderedlist':{ + 'circle':'○ 大圆圈', + 'disc':'● 小黑点', + 'square':'■ 小方块 ', + 'dash' :'— 破折号', + 'dot':' 。 小圆圈' + }, + 'paragraph':{'p':'段落', 'h1':'标题 1', 'h2':'标题 2', 'h3':'标题 3', 'h4':'标题 4', 'h5':'标题 5', 'h6':'标题 6'}, + 'fontfamily':{ + 'songti':'宋体', + 'kaiti':'楷体', + 'heiti':'黑体', + 'lishu':'隶书', + 'yahei':'微软雅黑', + 'andaleMono':'andale mono', + 'arial': 'arial', + 'arialBlack':'arial black', + 'comicSansMs':'comic sans ms', + 'impact':'impact', + 'timesNewRoman':'times new roman' + }, + 'customstyle':{ + 'tc':'标题居中', + 'tl':'标题居左', + 'im':'强调', + 'hi':'明显强调' + }, + 'autoupload': { + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading':"正在上传...", + 'loadError':"上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'simpleupload':{ + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading':"正在上传...", + 'loadError':"上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'elementPathTip':"元素路径", + 'wordCountTip':"字数统计", + 'wordCountMsg':'当前已输入{#count}个字符, 您还可以输入{#leave}个字符。 ', + 'wordOverFlowMsg':'字数超出最大允许值,服务器可能拒绝保存!', + 'ok':"确认", + 'cancel':"取消", + 'closeDialog':"关闭对话框", + 'tableDrag':"表格拖动必须引入uiUtils.js文件!", + 'autofloatMsg':"工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", + 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', + 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', + 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', + 'snapScreen_plugin':{ + 'browserMsg':"仅支持IE浏览器!", + 'callBackErrorMsg':"服务器返回数据有误,请检查配置项之后重试。", + 'uploadErrorMsg':"截图上传失败,请检查服务器端环境! " + }, + 'insertcode':{ + 'as3':'ActionScript 3', + 'bash':'Bash/Shell', + 'cpp':'C/C++', + 'css':'CSS', + 'cf':'ColdFusion', + 'c#':'C#', + 'delphi':'Delphi', + 'diff':'Diff', + 'erlang':'Erlang', + 'groovy':'Groovy', + 'html':'HTML', + 'java':'Java', + 'jfx':'JavaFX', + 'js':'JavaScript', + 'pl':'Perl', + 'php':'PHP', + 'plain':'Plain Text', + 'ps':'PowerShell', + 'python':'Python', + 'ruby':'Ruby', + 'scala':'Scala', + 'sql':'SQL', + 'vb':'Visual Basic', + 'xml':'XML' + }, + 'confirmClear':"确定清空当前文档么?", + 'contextMenu':{ + 'delete':"删除", + 'selectall':"全选", + 'deletecode':"删除代码", + 'cleardoc':"清空文档", + 'confirmclear':"确定清空当前文档么?", + 'unlink':"删除超链接", + 'paragraph':"段落格式", + 'edittable':"表格属性", + 'aligntd':"单元格对齐方式", + 'aligntable':'表格对齐方式', + 'tableleft':'左浮动', + 'tablecenter':'居中显示', + 'tableright':'右浮动', + 'edittd':"单元格属性", + 'setbordervisible':'设置表格边线可见', + 'justifyleft':'左对齐', + 'justifyright':'右对齐', + 'justifycenter':'居中对齐', + 'justifyjustify':'两端对齐', + 'table':"表格", + 'inserttable':'插入表格', + 'deletetable':"删除表格", + 'insertparagraphbefore':"前插入段落", + 'insertparagraphafter':'后插入段落', + 'deleterow':"删除当前行", + 'deletecol':"删除当前列", + 'insertrow':"前插入行", + 'insertcol':"左插入列", + 'insertrownext':'后插入行', + 'insertcolnext':'右插入列', + 'insertcaption':'插入表格名称', + 'deletecaption':'删除表格名称', + 'inserttitle':'插入表格标题行', + 'deletetitle':'删除表格标题行', + 'inserttitlecol':'插入表格标题列', + 'deletetitlecol':'删除表格标题列', + 'averageDiseRow':'平均分布各行', + 'averageDisCol':'平均分布各列', + 'mergeright':"向右合并", + 'mergeleft':"向左合并", + 'mergedown':"向下合并", + 'mergecells':"合并单元格", + 'splittocells':"完全拆分单元格", + 'splittocols':"拆分成列", + 'splittorows':"拆分成行", + 'tablesort':'表格排序', + 'enablesort':'设置表格可排序', + 'disablesort':'取消表格可排序', + 'reversecurrent':'逆序当前', + 'orderbyasc':'按ASCII字符升序', + 'reversebyasc':'按ASCII字符降序', + 'orderbynum':'按数值大小升序', + 'reversebynum':'按数值大小降序', + 'borderbk':'边框底纹', + 'setcolor':'表格隔行变色', + 'unsetcolor':'取消表格隔行变色', + 'setbackground':'选区背景隔行', + 'unsetbackground':'取消选区背景', + 'redandblue':'红蓝相间', + 'threecolorgradient':'三色渐变', + 'copy':"复制(Ctrl + c)", + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'paste':"粘贴(Ctrl + v)", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" + }, + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", + 'anthorMsg':"链接", + 'clearColor':'清空颜色', + 'standardColor':'标准颜色', + 'themeColor':'主题颜色', + 'property':'属性', + 'default':'默认', + 'modify':'修改', + 'justifyleft':'左对齐', + 'justifyright':'右对齐', + 'justifycenter':'居中', + 'justify':'默认', + 'clear':'清除', + 'anchorMsg':'锚点', + 'delete':'删除', + 'clickToUpload':"点击上传", + 'unset':'尚未设置语言文件', + 't_row':'行', + 't_col':'列', + 'more':'更多', + 'pasteOpt':'粘贴选项', + 'pasteSourceFormat':"保留源格式", + 'tagFormat':'只保留标签', + 'pasteTextFormat':'只保留文本', + 'autoTypeSet':{ + 'mergeLine':"合并空行", + 'delLine':"清除空行", + 'removeFormat':"清除格式", + 'indent':"首行缩进", + 'alignment':"对齐方式", + 'imageFloat':"图片浮动", + 'removeFontsize':"清除字号", + 'removeFontFamily':"清除字体", + 'removeHtml':"清除冗余HTML代码", + 'pasteFilter':"粘贴过滤", + 'run':"执行", + 'symbol':'符号转换', + 'bdc2sb':'全角转半角', + 'tobdc':'半角转全角' + }, + + 'background':{ + 'static':{ + 'lang_background_normal':'背景设置', + 'lang_background_local':'在线图片', + 'lang_background_set':'选项', + 'lang_background_none':'无背景色', + 'lang_background_colored':'有背景色', + 'lang_background_color':'颜色设置', + 'lang_background_netimg':'网络图片', + 'lang_background_align':'对齐方式', + 'lang_background_position':'精确定位', + 'repeatType':{'options':["居中", "横向重复", "纵向重复", "平铺","自定义"]} + + }, + 'noUploadImage':"当前未上传过任何图片!", + 'toggleSelect':"单击可切换选中状态\n原图尺寸: " + }, + //===============dialog i18N======================= + 'insertimage':{ + 'static':{ + 'lang_tab_remote':"插入图片", //节点 + 'lang_tab_upload':"本地上传", + 'lang_tab_online':"在线管理", + 'lang_tab_search':"图片搜索", + 'lang_input_url':"地 址:", + 'lang_input_size':"大 小:", + 'lang_input_width':"宽度", + 'lang_input_height':"高度", + 'lang_input_border':"边 框:", + 'lang_input_vhspace':"边 距:", + 'lang_input_title':"描 述:", + 'lang_input_align':'图片浮动方式:', + 'lang_imgLoading':" 图片加载中……", + 'lang_start_upload':"开始上传", + 'lock':{'title':"锁定宽高比例"}, //属性 + 'searchType':{'title':"图片类型", 'options':["新闻", "壁纸", "表情", "头像"]}, //select的option + 'searchTxt':{'value':"请输入搜索关键词"}, + 'searchBtn':{'value':"百度一下"}, + 'searchReset':{'value':"清空搜索"}, + 'noneAlign':{'title':'无浮动'}, + 'leftAlign':{'title':'左浮动'}, + 'rightAlign':{'title':'右浮动'}, + 'centerAlign':{'title':'居中独占一行'} + }, + 'uploadSelectFile':'点击选择图片', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'uploadNoPreview':'不能预览', + 'updateStatusReady': '选中_张图片,共_KB。', + 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', + 'updateStatusFinish': '共_张(_KB),_张上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错', + 'remoteLockError':"宽高不正确,不能所定比例", + 'numError':"请输入正确的长度或者宽度值!例如:123,400", + 'imageUrlError':"不允许的图片格式或者图片域!", + 'imageLoadError':"图片加载失败!请检查链接地址或网络状态!", + 'searchRemind':"请输入搜索关键词", + 'searchLoading':"图片加载中,请稍后……", + 'searchRetry':" :( ,抱歉,没有找到图片!请重试一次!" + }, + 'attachment':{ + 'static':{ + 'lang_tab_upload': '上传附件', + 'lang_tab_online': '在线附件', + 'lang_start_upload':"开始上传", + 'lang_drop_remind':"可以将文件拖到这里,单次最多可选100个文件" + }, + 'uploadSelectFile':'点击选择文件', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', + 'updateStatusFinish': '共_个(_KB),_个上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错' + }, + 'insertvideo':{ + 'static':{ + 'lang_tab_insertV':"插入视频", + 'lang_tab_searchV':"搜索视频", + 'lang_tab_uploadV':"上传视频", + 'lang_video_url':"视频网址", + 'lang_video_size':"视频尺寸", + 'lang_videoW':"宽度", + 'lang_videoH':"高度", + 'lang_alignment':"对齐方式", + 'videoSearchTxt':{'value':"请输入搜索关键字!"}, + 'videoType':{'options':["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn':{'value':"百度一下"}, + 'videoSearchReset':{'value':"清空结果"}, + + 'lang_input_fileStatus':' 当前未上传文件', + 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, + + 'lang_upload_size':"视频尺寸", + 'lang_upload_width':"宽度", + 'lang_upload_height':"高度", + 'lang_upload_alignment':"对齐方式", + 'lang_format_advice':"建议使用mp4格式." + + }, + 'numError':"请输入正确的数值,如123,400", + 'floatLeft':"左浮动", + 'floatRight':"右浮动", + '"default"':"默认", + 'block':"独占一行", + 'urlError':"输入的视频地址有误,请检查后再试!", + 'loading':"  视频加载中,请等待……", + 'clickToSelect':"点击选中", + 'goToSource':'访问源视频', + 'noVideo':"    抱歉,找不到对应的视频,请重试!", + + 'browseFiles':'浏览文件', + 'uploadSuccess':'上传成功!', + 'delSuccessFile':'从成功队列中移除', + 'delFailSaveFile':'移除保存失败文件', + 'statusPrompt':' 个文件已上传! ', + 'flashVersionError':'当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError':'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady':'等待上传……', + 'delUploadQueue':'从上传队列中移除', + 'limitPrompt1':'单次不能选择超过', + 'limitPrompt2':'个文件!请重新选择!', + 'delFailFile':'移除失败文件', + 'fileSizeLimit':'文件大小超出限制!', + 'emptyFile':'空文件无法上传!', + 'fileTypeError':'文件类型不允许!', + 'unknownError':'未知错误!', + 'fileUploading':'上传中,请等待……', + 'cancelUpload':'取消上传', + 'netError':'网络错误', + 'failUpload':'上传失败!', + 'serverIOError':'服务器IO错误!', + 'noAuthority':'无权限!', + 'fileNumLimit':'上传个数限制', + 'failCheck':'验证失败,本次上传被跳过!', + 'fileCanceling':'取消中,请等待……', + 'stopUploading':'上传已停止……', + + 'uploadSelectFile':'点击选择文件', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错' + }, + 'webapp':{ + 'tip1':"本功能由百度APP提供,如看到此页面,请各位站长首先申请百度APPKey!", + 'tip2':"申请完成之后请至ueditor.config.js中配置获得的appkey! ", + 'applyFor':"点此申请", + 'anthorApi':"百度API" + }, + 'template':{ + 'static':{ + 'lang_template_bkcolor':'背景颜色', + 'lang_template_clear' : '保留原有内容', + 'lang_template_select' : '选择模板' + }, + 'blank':"空白文档", + 'blog':"博客文章", + 'resume':"个人简历", + 'richText':"图文混排", + 'sciPapers':"科技论文" + + + }, + 'scrawl':{ + 'static':{ + 'lang_input_previousStep':"上一步", + 'lang_input_nextsStep':"下一步", + 'lang_input_clear':'清空', + 'lang_input_addPic':'添加背景', + 'lang_input_ScalePic':'缩放背景', + 'lang_input_removePic':'删除背景', + 'J_imgTxt':{title:'添加背景图片'} + }, + 'noScarwl':"尚未作画,白纸一张~", + 'scrawlUpLoading':"涂鸦上传中,别急哦~", + 'continueBtn':"继续", + 'imageError':"糟糕,图片读取失败了!", + 'backgroundUploading':'背景图片上传中,别急哦~' + }, + 'music':{ + 'static':{ + 'lang_input_tips':"输入歌手/歌曲/专辑,搜索您感兴趣的音乐!", + 'J_searchBtn':{value:'搜索歌曲'} + }, + 'emptyTxt':'未搜索到相关音乐结果,请换一个关键词试试。', + 'chapter':'歌曲', + 'singer':'歌手', + 'special':'专辑', + 'listenTest':'试听' + }, + 'anchor':{ + 'static':{ + 'lang_input_anchorName':'锚点名字:' + } + }, + 'charts':{ + 'static':{ + 'lang_data_source':'数据源:', + 'lang_chart_format': '图表格式:', + 'lang_data_align': '数据对齐方式', + 'lang_chart_align_same': '数据源与图表X轴Y轴一致', + 'lang_chart_align_reverse': '数据源与图表X轴Y轴相反', + 'lang_chart_title': '图表标题', + 'lang_chart_main_title': '主标题:', + 'lang_chart_sub_title': '子标题:', + 'lang_chart_x_title': 'X轴标题:', + 'lang_chart_y_title': 'Y轴标题:', + 'lang_chart_tip': '提示文字', + 'lang_cahrt_tip_prefix': '提示文字前缀:', + 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', + 'lang_chart_data_unit': '数据单位', + 'lang_chart_data_unit_title': '单位:', + 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', + 'lang_chart_type': '图表类型:', + 'lang_prev_btn': '上一个', + 'lang_next_btn': '下一个' + } + }, + 'emotion':{ + 'static':{ + 'lang_input_choice':'精选', + 'lang_input_Tuzki':'兔斯基', + 'lang_input_BOBO':'BOBO', + 'lang_input_lvdouwa':'绿豆蛙', + 'lang_input_babyCat':'baby猫', + 'lang_input_bubble':'泡泡', + 'lang_input_youa':'有啊' + } + }, + 'gmap':{ + 'static':{ + 'lang_input_address':'地址', + 'lang_input_search':'搜索', + 'address':{value:"北京"} + }, + searchError:'无法定位到该地址!' + }, + 'help':{ + 'static':{ + 'lang_input_about':'关于UEditor', + 'lang_input_shortcuts':'快捷键', + 'lang_input_introduction':'UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。开源基于BSD协议,允许自由使用和修改代码。', + 'lang_Txt_shortcuts':'快捷键', + 'lang_Txt_func':'功能', + 'lang_Txt_bold':'给选中字设置为加粗', + 'lang_Txt_copy':'复制选中内容', + 'lang_Txt_cut':'剪切选中内容', + 'lang_Txt_Paste':'粘贴', + 'lang_Txt_undo':'重新执行上次操作', + 'lang_Txt_redo':'撤销上一次操作', + 'lang_Txt_italic':'给选中字设置为斜体', + 'lang_Txt_underline':'给选中字加下划线', + 'lang_Txt_selectAll':'全部选中', + 'lang_Txt_visualEnter':'软回车', + 'lang_Txt_fullscreen':'全屏' + } + }, + 'insertframe':{ + 'static':{ + 'lang_input_address':'地址:', + 'lang_input_width':'宽度:', + 'lang_input_height':'高度:', + 'lang_input_isScroll':'允许滚动条:', + 'lang_input_frameborder':'显示框架边框:', + 'lang_input_alignMode':'对齐方式:', + 'align':{title:"对齐方式", options:["默认", "左对齐", "右对齐", "居中"]} + }, + 'enterAddress':'请输入地址!' + }, + 'link':{ + 'static':{ + 'lang_input_text':'文本内容:', + 'lang_input_url':'链接地址:', + 'lang_input_title':'标题:', + 'lang_input_target':'是否在新窗口打开:' + }, + 'validLink':'只支持选中一个链接时生效', + 'httpPrompt':'您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' + }, + 'map':{ + 'static':{ + lang_city:"城市", + lang_address:"地址", + city:{value:"北京"}, + lang_search:"搜索", + lang_dynamicmap:"插入动态地图" + }, + cityMsg:"请选择城市", + errorMsg:"抱歉,找不到该位置!" + }, + 'searchreplace':{ + 'static':{ + lang_tab_search:"查找", + lang_tab_replace:"替换", + lang_search1:"查找", + lang_search2:"查找", + lang_replace:"替换", + lang_searchReg:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_searchReg1:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_case_sensitive1:"区分大小写", + lang_case_sensitive2:"区分大小写", + nextFindBtn:{value:"下一个"}, + preFindBtn:{value:"上一个"}, + nextReplaceBtn:{value:"下一个"}, + preReplaceBtn:{value:"上一个"}, + repalceBtn:{value:"替换"}, + repalceAllBtn:{value:"全部替换"} + }, + getEnd:"已经搜索到文章末尾!", + getStart:"已经搜索到文章头部", + countMsg:"总共替换了{#count}处!" + }, + 'snapscreen':{ + 'static':{ + lang_showMsg:"截图功能需要首先安装UEditor截图插件! ", + lang_download:"点此下载", + lang_step1:"第一步,下载UEditor截图插件并运行安装。", + lang_step2:"第二步,插件安装完成后即可使用,如不生效,请重启浏览器后再试!" + } + }, + 'spechars':{ + 'static':{}, + tsfh:"特殊字符", + lmsz:"罗马字符", + szfh:"数学字符", + rwfh:"日文字符", + xlzm:"希腊字母", + ewzm:"俄文字符", + pyzm:"拼音字母", + yyyb:"英语音标", + zyzf:"其他" + }, + 'edittable':{ + 'static':{ + 'lang_tableStyle':'表格样式', + 'lang_insertCaption':'添加表格名称行', + 'lang_insertTitle':'添加表格标题行', + 'lang_insertTitleCol':'添加表格标题列', + 'lang_orderbycontent':"使表格内容可排序", + 'lang_tableSize':'自动调整表格尺寸', + 'lang_autoSizeContent':'按表格文字自适应', + 'lang_autoSizePage':'按页面宽度自适应', + 'lang_example':'示例', + 'lang_borderStyle':'表格边框', + 'lang_color':'颜色:' + }, + captionName:'表格名称', + titleName:'标题', + cellsName:'内容', + errorMsg:'有合并单元格,不可排序' + }, + 'edittip':{ + 'static':{ + lang_delRow:'删除整行', + lang_delCol:'删除整列' + } + }, + 'edittd':{ + 'static':{ + lang_tdBkColor:'背景颜色:' + } + }, + 'formula':{ + 'static':{ + } + }, + 'wordimage':{ + 'static':{ + lang_resave:"转存步骤", + uploadBtn:{src:"upload.png",alt:"上传"}, + clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, + lang_step:"1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" + }, + 'fileType':"图片", + 'flashError':"FLASH初始化失败,请检查FLASH插件是否正确安装!", + 'netError':"网络连接错误,请重试!", + 'copySuccess':"图片地址已经复制!", + 'flashI18n':{} //留空默认中文 + }, + 'autosave': { + 'saving':'保存中...', + 'success':'本地保存成功' + } +}; diff --git a/modules/core/src/main/resources/static/wdScrollTab/js/TabPanel_i18n.js b/modules/core/src/main/resources/static/wdScrollTab/js/TabPanel_i18n.js new file mode 100644 index 00000000..1f10c34d --- /dev/null +++ b/modules/core/src/main/resources/static/wdScrollTab/js/TabPanel_i18n.js @@ -0,0 +1,22 @@ +(function($) { + + window.TabPanel = window.TabPanel || {}; + if (window.lang == 'en'){ + TabPanel.i18n = $.extend({}, TabPanel.i18n, { + closeTab: 'Close', + refreshTab: 'Refresh', + closeOther: 'Close Other', + closeLeft: 'Close Left', + closeRight: 'Close Right' + }); + } else if (window.lang == 'ja_JP'){ + TabPanel.i18n = $.extend({}, TabPanel.i18n, { + closeTab: '閉じる', + refreshTab: '更新', + closeOther: '他を閉じる', + closeLeft: '左側を閉じる', + closeRight: '右側を閉じる' + }); + } + +})(jQuery); diff --git a/modules/core/src/main/resources/static/webuploader/0.1/i18n/en.js b/modules/core/src/main/resources/static/webuploader/0.1/i18n/en.js new file mode 100644 index 00000000..333e97ce --- /dev/null +++ b/modules/core/src/main/resources/static/webuploader/0.1/i18n/en.js @@ -0,0 +1,60 @@ +(function($) { +$.fn.webuploader.defaults.i18n = { + + '安装失败!': 'Installation failed!', + '安装已成功,请刷新!': 'Installation successful, please refresh!', + '文件上传组件不支持您的浏览器,请使用高版本浏览器!': 'Does not support your browser, please use the high version browser!', + + '点击选择文件': 'Select files', + '点击选择图片': 'Select images', + '点击选择视频': 'Select videos', + '继续添加': 'Add files', + + '暂停上传': 'Pause upload', + '继续上传': 'Continue upload', + '开始上传': 'Start upload', + '上传成功': 'Upload success', + + '张图片': ' images', + '个文件': ' files', + + '上传失败': ' Failure', + '重新上传': ' Retry ', + '或': ' or ', + '忽略': ' Ignore ', + + '总共': 'Total ', + '已上传': 'Uploaded ', + '失败{0}个': ' {0} failure', + + '您只能上传{0}个文件': 'You can only upload {0} files.', + '正在验证文件,请稍等。': 'File is being validated.', + + '删除': 'Delete', + '向右旋转': 'Rotate right', + '向左旋转': 'Rotate left', + + '文件类型不对': 'File type error', + '文件大小超出': 'File size exceeded', + '文件传输中断': 'File transfer interrupt', + 'HTTP请求错误': 'HTTP request error', + '文件格式不允许': 'File format not allowed', + '不要选择重复文件': 'Do not select duplicate files', + '上传失败,请重试': 'Upload failed, please try again', + '服务器返回出错': 'The server returned an error', + + '预览生成中': 'Preview create', + '不能预览': 'Cannot preview', + + '确定删除该图片吗?': 'Are you sure to delete the image?', + '确定删除该文件吗?': 'Are you sure to delete this file?', + + '等待上传': 'Waiting for the upload', + '正在上传': 'Are uploading', + + '取消': 'Cancel', + '下载': 'Download', + '预览': 'Preview', + '查看': 'To view' +}; +})(jQuery); diff --git a/modules/core/src/main/resources/static/webuploader/0.1/i18n/ja_JP.js b/modules/core/src/main/resources/static/webuploader/0.1/i18n/ja_JP.js new file mode 100644 index 00000000..a340eced --- /dev/null +++ b/modules/core/src/main/resources/static/webuploader/0.1/i18n/ja_JP.js @@ -0,0 +1,60 @@ +(function($) { +$.fn.webuploader.defaults.i18n = { + + '安装失败!': 'インストールに失敗!', + '安装已成功,请刷新!': 'インストールは成功しました。!', + '文件上传组件不支持您的浏览器,请使用高版本浏览器!': 'ファイルアップロードコンポーネントがあなたのブラウザをサポートしません。!', + + '点击选择文件': '選択ファイルをクリックする。', + '点击选择图片': '選択画像をクリックする。', + '点击选择视频': '選択動画をクリックする。', + '继续添加': '追加し続ける', + + '暂停上传': 'アップロードを一時停止する。', + '继续上传': 'アップロードを継続する', + '开始上传': 'アップロードを始める', + '上传成功': 'アップロードが成功する', + + '张图片': ' 枚画像', + '个文件': ' 一つの書類', + + '上传失败': ' アップロードの失敗', + '重新上传': ' アップロードを再開する ', + '或': ' または ', + '忽略': ' 無視する ', + + '总共': '計 ', + '已上传': 'アップロードした ', + '失败{0}个': ' {0} つ失敗する', + + '您只能上传{0}个文件': 'ファイルは{0}つしかアップロードできません', + '正在验证文件,请稍等。': '書類を検証中ですので、少々お待ちください。', + + '删除': '削除', + '向右旋转': '右にまがる', + '向左旋转': '左に回る', + + '文件类型不对': '書類のタイプが違う', + '文件大小超出': '書類のサイズがはみ出る', + '文件传输中断': 'ファイル転送を中断する。', + 'HTTP请求错误': 'HTTPリクエストエラー', + '文件格式不允许': 'ファイルフォーマットは許可されない', + '不要选择重复文件': '重複ファイルは選択しないでください', + '上传失败,请重试': 'アップロードに失敗したので、試してみてください', + '服务器返回出错': 'サーバーがエラーに戻る', + + '预览生成中': 'プレビュー生成中', + '不能预览': 'プレビューができない。', + + '确定删除该图片吗?': 'この写真を削除することは確定しましたか?', + '确定删除该文件吗?': 'このファイルを削除することは確定しましたか?', + + '等待上传': 'アップロードを待つ', + '正在上传': 'アップロード中', + + '取消': 'キャンセル', + '下载': 'ダウンロード', + '预览': 'プレビュー', + '查看': 'チェック' +}; +})(jQuery); diff --git a/modules/core/src/main/resources/static/webuploader/0.1/i18n/zh_CN.js b/modules/core/src/main/resources/static/webuploader/0.1/i18n/zh_CN.js new file mode 100644 index 00000000..e69de29b diff --git a/modules/core/src/main/resources/views/include/jslibs.html b/modules/core/src/main/resources/views/include/jslibs.html index d415311b..00665888 100644 --- a/modules/core/src/main/resources/views/include/jslibs.html +++ b/modules/core/src/main/resources/views/include/jslibs.html @@ -10,6 +10,7 @@ <% if (@ListUtils.inString('tabPage', libs!)){ %> + <% } %> <% if (@ListUtils.inString('dataGrid', libs!)){ %> @@ -32,6 +33,7 @@ <% if (@ListUtils.inString('fileupload', libs!)){ %> + <% } %> <% if (@ListUtils.inString('ueditor', libs!)){ %>