فهرست منبع

对数据集以及图表添加的名称的重复校验和长度校验

zlSun 11 ماه پیش
والد
کامیت
fb65c7793e

+ 1 - 1
application.properties

@@ -76,7 +76,7 @@ datasource.driverClassName=com.mysql.cj.jdbc.Driver
 datasource.url=jdbc:mysql://localhost:3306/newdg?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
 datasource.username=root
 #datasource.password=123456
-datasource.password=rootroot
+datasource.password=123456
 
 #datasource.driverClassName=com.mysql.cj.jdbc.Driver
 #datasource.url=jdbc:mysql://localhost:3306/newdg?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

+ 20 - 1
datagear-web/src/main/java/org/datagear/web/controller/ChartController.java

@@ -46,10 +46,12 @@ import org.datagear.management.service.HtmlChartWidgetEntityService.ChartWidgetS
 import org.datagear.persistence.PagingData;
 import org.datagear.util.IDUtil;
 import org.datagear.util.IOUtil;
+import org.datagear.web.controller.service.ChartService;
 import org.datagear.web.util.OperationMessage;
 import org.datagear.web.util.WebUtils;
 import org.datagear.web.vo.APIDDataFilterPagingQuery;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -75,6 +77,8 @@ public class ChartController extends AbstractChartPluginAwareController implemen
 		AuthorizationResourceMetas.registerForShare(HtmlChartWidgetEntity.AUTHORIZATION_RESOURCE_TYPE, "chart");
 	}
 
+	@Autowired
+	private ChartService chartService;
 	@Autowired
 	private HtmlChartWidgetEntityService htmlChartWidgetEntityService;
 
@@ -285,6 +289,7 @@ public class ChartController extends AbstractChartPluginAwareController implemen
 
 		HtmlChartPlugin paramPlugin = entity.getHtmlChartPlugin();
 
+		//新增
 		if (isEmpty(entity.getId()))
 		{
 			entity.setId(IDUtil.randomIdOnTime20());
@@ -292,13 +297,27 @@ public class ChartController extends AbstractChartPluginAwareController implemen
 			inflateHtmlChartWidgetEntity(entity, request);
 
 			checkSaveEntity(entity);
-
+			if(entity.getName().length()>40){
+				return buildOperationMessageFailResponseEntity(null, HttpStatus.BAD_REQUEST,"nameIsTooLong");
+			}
+			if(this.chartService.isExit(entity)){
+				return buildOperationMessageFailResponseEntity(null, HttpStatus.BAD_REQUEST, "nameIsExist");
+			}
 			this.htmlChartWidgetEntityService.add(user, entity);
 		}
+		//修改
 		else
 		{
 			inflateHtmlChartWidgetEntity(entity, request);
 			checkSaveEntity(entity);
+			if(entity.getName().length()>40){
+				return buildOperationMessageFailResponseEntity(null, HttpStatus.BAD_REQUEST,"nameIsTooLong");
+			}
+			if(!htmlChartWidgetEntityService.getById(entity.getId()).getName().equals(entity.getName())){
+				if(this.chartService.isExit(entity)){
+					return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+				}
+			}
 			this.htmlChartWidgetEntityService.update(user, entity);
 		}
 

+ 101 - 14
datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java

@@ -60,6 +60,7 @@ import org.datagear.util.IDUtil;
 import org.datagear.util.IOUtil;
 import org.datagear.util.StringUtil;
 import org.datagear.web.controller.AbstractDataAnalysisController.AnalysisUser;
+import org.datagear.web.controller.service.DataSetService;
 import org.datagear.web.util.OperationMessage;
 import org.datagear.web.util.WebUtils;
 import org.datagear.web.vo.APIDDataFilterPagingQuery;
@@ -88,6 +89,8 @@ public class DataSetController extends AbstractSchemaConnController
 		AuthorizationResourceMetas.registerForShare(SqlDataSetEntity.AUTHORIZATION_RESOURCE_TYPE, "dataSet");
 	}
 
+	@Autowired
+	private DataSetService dataSetService;
 	@Autowired
 	private DataSetEntityService dataSetEntityService;
 
@@ -187,7 +190,12 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -223,7 +231,12 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -261,7 +274,12 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, "");
 
@@ -300,7 +318,12 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, "");
 
@@ -338,7 +361,12 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -377,7 +405,12 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, "");
 
@@ -415,7 +448,12 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(this.dataSetService.isExit(dataSet)){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+		}
 		this.dataSetEntityService.add(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -533,7 +571,14 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -552,7 +597,14 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -573,7 +625,14 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, originalFileName);
 
@@ -595,7 +654,14 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, originalFileName);
 
@@ -615,7 +681,14 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);
@@ -636,7 +709,14 @@ public class DataSetController extends AbstractSchemaConnController
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
 		trimDirectoryFileDataSetEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 		copyToDirectoryFileDataSetEntityDirectoryIf(dataSet, originalFileName);
 
@@ -656,7 +736,14 @@ public class DataSetController extends AbstractSchemaConnController
 			return responseEntity;
 
 		trimAnalysisProjectAwareEntityForSave(dataSet);
-
+		if(dataSet.getName().length()>40){
+			return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsTooLong");
+		}
+		if(!dataSetEntityService.getDataSet(dataSet.getId()).getName().equals(dataSet.getName())){
+			if(this.dataSetService.isExit(dataSet)){
+				return buildOperationMessageFailResponseEntity(null,HttpStatus.BAD_REQUEST,"nameIsExist");
+			}
+		}
 		this.dataSetEntityService.update(user, dataSet);
 
 		return buildOperationMessageSaveSuccessResponseEntity(request, dataSet);

+ 16 - 0
datagear-web/src/main/java/org/datagear/web/controller/service/ChartService.java

@@ -0,0 +1,16 @@
+package org.datagear.web.controller.service;
+
+import org.datagear.management.domain.HtmlChartWidgetEntity;
+import org.datagear.web.mapper.ChartMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChartService {
+    @Autowired
+    private ChartMapper chartMapper;
+
+    public boolean isExit(HtmlChartWidgetEntity chart){
+        return chartMapper.countChartByName(chart.getName()) > 0;
+    }
+}

+ 16 - 0
datagear-web/src/main/java/org/datagear/web/controller/service/DataSetService.java

@@ -0,0 +1,16 @@
+package org.datagear.web.controller.service;
+
+import org.datagear.analysis.DataSet;
+import org.datagear.web.mapper.DataSetMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DataSetService{
+    @Autowired
+    private DataSetMapper dataSetMapper;
+
+    public boolean isExit(DataSet dataSet){
+        return dataSetMapper.countDataSetByName(dataSet.getName()) > 0;
+    }
+}

+ 7 - 0
datagear-web/src/main/java/org/datagear/web/mapper/ChartMapper.java

@@ -0,0 +1,7 @@
+package org.datagear.web.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+public interface ChartMapper {
+    int countChartByName(@Param("name") String name);
+}

+ 7 - 0
datagear-web/src/main/java/org/datagear/web/mapper/ChartMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="org.datagear.web.mapper.ChartMapper" >
+    <select id="countChartByName" resultType="int">
+        select count(*) from datagear_html_chart_widget where HCW_NAME=#{name}
+    </select>
+</mapper>

+ 7 - 0
datagear-web/src/main/java/org/datagear/web/mapper/DataSetMapper.java

@@ -0,0 +1,7 @@
+package org.datagear.web.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+public interface DataSetMapper {
+    int countDataSetByName(@Param("name") String name);
+}

+ 7 - 0
datagear-web/src/main/java/org/datagear/web/mapper/DataSetMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="org.datagear.web.mapper.DataSetMapper" >
+  <select id="countDataSetByName" resultType="int">
+    select count(*) from datagear_data_set where DS_NAME=#{name}
+  </select>
+</mapper>

+ 0 - 1
datagear-web/src/main/java/org/datagear/web/mapper/HtmlChartCompareMapper.java

@@ -1,6 +1,5 @@
 package org.datagear.web.mapper;
 
-import org.apache.ibatis.annotations.Mapper;
 import org.datagear.management.domain.HtmlChartCompare;
 
 import java.util.List;

+ 1197 - 1193
datagear-web/src/main/resources/org/datagear/web/i18n/message.properties

@@ -1,1295 +1,1299 @@
 #--UTF-8 file--
 #common
 app.name=DataGear
-app.fullName=DataGear数据可视化分析平台
-app.pageTitle=DataGear - 数据可视化分析平台
+app.fullName=DataGear\u6570\u636E\u53EF\u89C6\u5316\u5206\u6790\u5E73\u53F0
+app.pageTitle=DataGear - \u6570\u636E\u53EF\u89C6\u5316\u5206\u6790\u5E73\u53F0
 app.copyright=Copyright 2018 datagear.tech
 app.license=LGPL-3.0
-manage=管理
-query=查询
-add=添加
-addInNewWindow=添加(新窗口)
-edit=编辑
-editInNewWindow=编辑(新窗口)
-copy=复制
-copyInNewWindow=复制(新窗口)
-delete=删除
-view=查看
-save=保存
-submit=提交
-reset=重置
-cancel=取消
-cancelAll=全部取消
-confirm=确定
-select=选择
-refresh=刷新
-reload=重载
-upload=上传
-seniorQuery=高级查询
-jumpto=跳转
-saveSuccess=保存成功
-saveSuccess.withCount=保存成功,保存了[{0}]条记录
-saveSuccess.noChange=保存忽略,未做任何修改
-saveFail.zeroCount=保存失败,记录未找到
-save.continueIgnoreDuplicationTemplate=是否要继续保存全部[#{actual}]条记录?(期望[#{expected}]条,实际[#{actual}]条)
-deleteSuccess=删除成功
-deleteSuccess.withCount=删除成功,删除了[{0}]条记录
-deleteFail.zeroCount=删除失败,记录未找到
-delete.continueIgnoreDuplicationTemplate=是否要继续删除全部[#{actual}]条记录?(期望[#{expected}]条,实际[#{actual}]条)
-uploadSuccess=上传成功
-pleaseSelectOnlyOneRow=请仅选择一条记录
-pleaseSelectAtLeastOneRow=请至少选择一条记录
-titleSeparator=
-restoration=复位
-close=关闭
-clear=清除
-yes=
-no=
-moreOperation=更多操作
-operationConfirm=操作确认
-haveAdd=已添加
-loading=加载中...
-backToMainPage=返回首页
-restart=重新开始
-advancedSetting=高级设置
-import=导入
-export=导出
-find=查找
-preview=预览
-colon=
-comma=
-bracketLeft=
-bracketRight=
-help=帮助
-editGrid=编辑表格
-restore=恢复
-restoreAll=恢复全部
-execute=执行
-rowNumber=行号
-download=下载
-downloadAll=下载全部
-return=返回
+manage=\u7BA1\u7406
+query=\u67E5\u8BE2
+add=\u6DFB\u52A0
+addInNewWindow=\u6DFB\u52A0\uFF08\u65B0\u7A97\u53E3\uFF09
+edit=\u7F16\u8F91
+editInNewWindow=\u7F16\u8F91\uFF08\u65B0\u7A97\u53E3\uFF09
+copy=\u590D\u5236
+copyInNewWindow=\u590D\u5236\uFF08\u65B0\u7A97\u53E3\uFF09
+delete=\u5220\u9664
+view=\u67E5\u770B
+save=\u4FDD\u5B58
+submit=\u63D0\u4EA4
+reset=\u91CD\u7F6E
+cancel=\u53D6\u6D88
+cancelAll=\u5168\u90E8\u53D6\u6D88
+confirm=\u786E\u5B9A
+select=\u9009\u62E9
+refresh=\u5237\u65B0
+reload=\u91CD\u8F7D
+upload=\u4E0A\u4F20
+seniorQuery=\u9AD8\u7EA7\u67E5\u8BE2
+jumpto=\u8DF3\u8F6C
+saveSuccess=\u4FDD\u5B58\u6210\u529F
+saveSuccess.withCount=\u4FDD\u5B58\u6210\u529F\uFF0C\u4FDD\u5B58\u4E86[{0}]\u6761\u8BB0\u5F55
+saveSuccess.noChange=\u4FDD\u5B58\u5FFD\u7565\uFF0C\u672A\u505A\u4EFB\u4F55\u4FEE\u6539
+saveFail.zeroCount=\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BB0\u5F55\u672A\u627E\u5230
+save.continueIgnoreDuplicationTemplate=\u662F\u5426\u8981\u7EE7\u7EED\u4FDD\u5B58\u5168\u90E8[#{actual}]\u6761\u8BB0\u5F55\uFF1F\uFF08\u671F\u671B[#{expected}]\u6761\uFF0C\u5B9E\u9645[#{actual}]\u6761\uFF09
+deleteSuccess=\u5220\u9664\u6210\u529F
+deleteSuccess.withCount=\u5220\u9664\u6210\u529F\uFF0C\u5220\u9664\u4E86[{0}]\u6761\u8BB0\u5F55
+deleteFail.zeroCount=\u5220\u9664\u5931\u8D25\uFF0C\u8BB0\u5F55\u672A\u627E\u5230
+delete.continueIgnoreDuplicationTemplate=\u662F\u5426\u8981\u7EE7\u7EED\u5220\u9664\u5168\u90E8[#{actual}]\u6761\u8BB0\u5F55\uFF1F\uFF08\u671F\u671B[#{expected}]\u6761\uFF0C\u5B9E\u9645[#{actual}]\u6761\uFF09
+uploadSuccess=\u4E0A\u4F20\u6210\u529F
+pleaseSelectOnlyOneRow=\u8BF7\u4EC5\u9009\u62E9\u4E00\u6761\u8BB0\u5F55
+pleaseSelectAtLeastOneRow=\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u6761\u8BB0\u5F55
+titleSeparator=\uFF1A
+restoration=\u590D\u4F4D
+close=\u5173\u95ED
+clear=\u6E05\u9664
+yes=\u662F
+no=\u5426
+moreOperation=\u66F4\u591A\u64CD\u4F5C
+operationConfirm=\u64CD\u4F5C\u786E\u8BA4
+haveAdd=\u5DF2\u6DFB\u52A0
+loading=\u52A0\u8F7D\u4E2D...
+backToMainPage=\u8FD4\u56DE\u9996\u9875
+restart=\u91CD\u65B0\u5F00\u59CB
+advancedSetting=\u9AD8\u7EA7\u8BBE\u7F6E
+import=\u5BFC\u5165
+export=\u5BFC\u51FA
+find=\u67E5\u627E
+preview=\u9884\u89C8
+colon=\uFF1A
+comma=\uFF0C
+bracketLeft=\uFF08
+bracketRight=\uFF09
+help=\u5E2E\u52A9
+editGrid=\u7F16\u8F91\u8868\u683C
+restore=\u6062\u590D
+restoreAll=\u6062\u590D\u5168\u90E8
+execute=\u6267\u884C
+rowNumber=\u884C\u53F7
+download=\u4E0B\u8F7D
+downloadAll=\u4E0B\u8F7D\u5168\u90E8
+return=\u8FD4\u56DE
 id=ID
-confirmDelete=确定删除选中条目吗?
-anonymousUser=匿名用户
-authorize=授权
-prevPage=上一页
-nextPage=下一页
-loadMore=加载更多
-insert=插入
-copySuccess=复制成功!
-copyToClipboardSuccess=已复制到剪切板!
-share=分享
-expandOrCollapse=展开/收回
-name=名称
-copyShowURL=复制展示链接
-serialNumber=序号
-total=总计
-none=
-moveUp=上移
-moveDown=下移
-setting=设置
-enable=启用
-disable=禁用
-test=测试
-alias=别名
-parameter=参数
-show=显示
-hide=隐藏
+confirmDelete=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u6761\u76EE\u5417\uFF1F
+anonymousUser=\u533F\u540D\u7528\u6237
+authorize=\u6388\u6743
+prevPage=\u4E0A\u4E00\u9875
+nextPage=\u4E0B\u4E00\u9875
+loadMore=\u52A0\u8F7D\u66F4\u591A
+insert=\u63D2\u5165
+copySuccess=\u590D\u5236\u6210\u529F\uFF01
+copyToClipboardSuccess=\u5DF2\u590D\u5236\u5230\u526A\u5207\u677F\uFF01
+share=\u5206\u4EAB
+expandOrCollapse=\u5C55\u5F00/\u6536\u56DE
+name=\u540D\u79F0
+copyShowURL=\u590D\u5236\u5C55\u793A\u94FE\u63A5
+serialNumber=\u5E8F\u53F7
+total=\u603B\u8BA1
+none=\u65E0
+moveUp=\u4E0A\u79FB
+moveDown=\u4E0B\u79FB
+setting=\u8BBE\u7F6E
+enable=\u542F\u7528
+disable=\u7981\u7528
+test=\u6D4B\u8BD5
+alias=\u522B\u540D
+parameter=\u53C2\u6570
+show=\u663E\u793A
+hide=\u9690\u85CF
 
-pagination.label=#{page}/#{pages},每页#{pageSize}条,共#{total}条
+pagination.label=#{page}/#{pages},\u6BCF\u9875#{pageSize}\u6761,\u5171#{total}\u6761
 
-dataFilter.mine=我的
-dataFilter.other=分享的
-dataFilter.all=全部
+dataFilter.mine=\u6211\u7684
+dataFilter.other=\u5206\u4EAB\u7684
+dataFilter.all=\u5168\u90E8
 
-dataTables.noData=没有数据
-dataTables.zeroRecords=没有结果
+dataTables.noData=\u6CA1\u6709\u6570\u636E
+dataTables.zeroRecords=\u6CA1\u6709\u7ED3\u679C
 
-wizard.previous=上一步
-wizard.next=下一步
-wizard.finish=完成
+wizard.previous=\u4E0A\u4E00\u6B65
+wizard.next=\u4E0B\u4E00\u6B65
+wizard.finish=\u5B8C\u6210
 
-batchSet.batchSetSwitchTitle=批量执行设置
-batchSet.batchCount=执行次数
-batchSet.batchHandleErrorMode=出错时
-batchSet.batchHandleErrorMode.ignore=忽略
-batchSet.batchHandleErrorMode.abort=终止
-batchSet.batchHandleErrorMode.rollback=撤销
+batchSet.batchSetSwitchTitle=\u6279\u91CF\u6267\u884C\u8BBE\u7F6E
+batchSet.batchCount=\u6267\u884C\u6B21\u6570
+batchSet.batchHandleErrorMode=\u51FA\u9519\u65F6
+batchSet.batchHandleErrorMode.ignore=\u5FFD\u7565
+batchSet.batchHandleErrorMode.abort=\u7EC8\u6B62
+batchSet.batchHandleErrorMode.rollback=\u64A4\u9500
 
-duration.H.M={0}小时{1}分
-duration.M.S={0}分{1}秒
-duration.S.MS={0}.{1}
-duration.MS={0}毫秒
+duration.H.M={0}\u5C0F\u65F6{1}\u5206
+duration.M.S={0}\u5206{1}\u79D2
+duration.S.MS={0}.{1}\u79D2
+duration.MS={0}\u6BEB\u79D2
 
 #validation
-validation.required=此项必填
-validation.integer=此项仅可填写整数值
-validation.min=此项应大于或等于{0}
-validation.email=邮箱格式有误
+validation.required=\u6B64\u9879\u5FC5\u586B
+validation.integer=\u6B64\u9879\u4EC5\u53EF\u586B\u5199\u6574\u6570\u503C
+validation.min=\u6B64\u9879\u5E94\u5927\u4E8E\u6216\u7B49\u4E8E{0}
+validation.email=\u90AE\u7BB1\u683C\u5F0F\u6709\u8BEF
 
 #error
-error.errorOccure=出错了!
-error.httpError=访问出错
-error.httpError.400=请求无效
-error.httpError.403=禁止访问
-error.httpError.404=网页未找到
-error.httpError.500=服务出错
-error.Throwable=服务出错
-error.MethodArgumentNotValidException=输入非法
-error.MissingServletRequestParameterException=输入非法
-error.BindException=输入有误,请检查
-error.ConversionException=输入有误,请检查
-error.HttpMessageNotReadableException=输入有误,请检查
-error.DataIntegrityViolationException=操作失败,违反数据库约束(数据被引用、超过存储长度等)
-error.IllegalInputException=输入有误,请检查
-error.IllegalArgumentException=输入有误,请检查
-error.RecordNotFoundException=记录未找到,或许已被删除
-error.SchemaNotFoundException=未找到此数据源
-error.FileNotFoundException=未找到文件[{0}]
-error.DuplicateRecordException=操作失败,有重复记录(期望[{0}]条,实际[{1}]条)
-error.UserSQLException=SQL语句执行出错:{0}
-error.SqlParamValueVariableExpressionException=表达式格式有误:<div class='content-value-sub'>{0}</div>
-error.SqlParamValueSqlExpressionException=执行SQL语句出错:<div class='content-value-sub'>{0}</div>
-error.SqlParamValueMapperException=[{0}]项输入有误,请检查
-error.UnsupportedDialectException=数据源访问出错,系统不支持访问此数据源
-error.NonUniqueResultException=操作失败,无法唯一确定记录
-error.NoColumnDefinedException=操作失败,表[{0}]没有定义任何列
-error.PersistenceException=数据操作出错
-error.DBMetaResolverException=表结构解析出错
-error.TableNotFoundException=未找到数据表[{0}]
-error.ConnectionSourceException=数据源连接出错
-error.DriverEntityManagerException=管理驱动程序出错:{0}
-error.PathDriverFactoryException=加载驱动程序出错:{0}
-error.DriverNotFoundException=驱动程序加载出错,驱动程序库中找不到[{0}]驱动类
-error.DriverClassFormatErrorException=驱动程序加载出错,运行环境不支持此版本的驱动程序库
-error.URLNotAcceptedException=选定的驱动程序不能连接此数据源
-error.UnsupportedGetConnectionException=数据源连接出错,找不到适用的数据源驱动程序,请联系管理员添加
-error.EstablishConnectionException=数据源连接出错,请检查数据源设置是否有误
-error.PermissionDeniedException=没有操作权限
-error.SaveSchemaUrlPermissionDeniedException=没有权限创建此URL的数据源
-error.SqlDataSetUnsupportedSqlTypeException=SQL数据集查询结果中存在不支持的数据类型:{0},请将其从查询列中移除
-error.TemplateResolverException=参数化语句格式有误:{0}
-error.UnsupportedResultDataException=不支持的数据集结果数据类型:{0}
-error.UnsupportedJsonResultDataException=不支持的JSON数据类型,需为JSON对象、JSON对象数组
-error.DataSetSourceParseException=数据源解析出错:{0}
-error.SqlDataSetSqlExecutionException=SQL语句执行出错:{0}
-error.SqlDataSetConnectionException=数据源连接出错:{0}
-error.RequestContentNotNameValueObjArrayJsonException=请求体类型为名/值参数,请求体JSON格式应为:[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]
-error.HeaderContentNotNameValueObjArrayJsonException=请求头JSON格式应为:[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]
-error.DataSetException=数据集操作出错:{0}
-error.DeleteBuiltinRoleDeniedException=内置角色不允许删除
-error.java.io.FileNotFoundException=未找到文件
+error.errorOccure=\u51FA\u9519\u4E86\uFF01
+error.httpError=\u8BBF\u95EE\u51FA\u9519
+error.httpError.400=\u8BF7\u6C42\u65E0\u6548
+error.httpError.403=\u7981\u6B62\u8BBF\u95EE
+error.httpError.404=\u7F51\u9875\u672A\u627E\u5230
+error.httpError.500=\u670D\u52A1\u51FA\u9519
+error.Throwable=\u670D\u52A1\u51FA\u9519
+error.MethodArgumentNotValidException=\u8F93\u5165\u975E\u6CD5
+error.MissingServletRequestParameterException=\u8F93\u5165\u975E\u6CD5
+error.BindException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.ConversionException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.HttpMessageNotReadableException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.DataIntegrityViolationException=\u64CD\u4F5C\u5931\u8D25\uFF0C\u8FDD\u53CD\u6570\u636E\u5E93\u7EA6\u675F\uFF08\u6570\u636E\u88AB\u5F15\u7528\u3001\u8D85\u8FC7\u5B58\u50A8\u957F\u5EA6\u7B49\uFF09
+error.IllegalInputException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.IllegalArgumentException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.RecordNotFoundException=\u8BB0\u5F55\u672A\u627E\u5230\uFF0C\u6216\u8BB8\u5DF2\u88AB\u5220\u9664
+error.SchemaNotFoundException=\u672A\u627E\u5230\u6B64\u6570\u636E\u6E90
+error.FileNotFoundException=\u672A\u627E\u5230\u6587\u4EF6[{0}]
+error.DuplicateRecordException=\u64CD\u4F5C\u5931\u8D25\uFF0C\u6709\u91CD\u590D\u8BB0\u5F55\uFF08\u671F\u671B[{0}]\u6761\uFF0C\u5B9E\u9645[{1}]\u6761\uFF09
+error.UserSQLException=SQL\u8BED\u53E5\u6267\u884C\u51FA\u9519\uFF1A{0}
+error.SqlParamValueVariableExpressionException=\u8868\u8FBE\u5F0F\u683C\u5F0F\u6709\u8BEF\uFF1A<div class='content-value-sub'>{0}</div>
+error.SqlParamValueSqlExpressionException=\u6267\u884CSQL\u8BED\u53E5\u51FA\u9519\uFF1A<div class='content-value-sub'>{0}</div>
+error.SqlParamValueMapperException=[{0}]\u9879\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5
+error.UnsupportedDialectException=\u6570\u636E\u6E90\u8BBF\u95EE\u51FA\u9519\uFF0C\u7CFB\u7EDF\u4E0D\u652F\u6301\u8BBF\u95EE\u6B64\u6570\u636E\u6E90
+error.NonUniqueResultException=\u64CD\u4F5C\u5931\u8D25\uFF0C\u65E0\u6CD5\u552F\u4E00\u786E\u5B9A\u8BB0\u5F55
+error.NoColumnDefinedException=\u64CD\u4F5C\u5931\u8D25\uFF0C\u8868[{0}]\u6CA1\u6709\u5B9A\u4E49\u4EFB\u4F55\u5217
+error.PersistenceException=\u6570\u636E\u64CD\u4F5C\u51FA\u9519
+error.DBMetaResolverException=\u8868\u7ED3\u6784\u89E3\u6790\u51FA\u9519
+error.TableNotFoundException=\u672A\u627E\u5230\u6570\u636E\u8868[{0}]
+error.ConnectionSourceException=\u6570\u636E\u6E90\u8FDE\u63A5\u51FA\u9519
+error.DriverEntityManagerException=\u7BA1\u7406\u9A71\u52A8\u7A0B\u5E8F\u51FA\u9519\uFF1A{0}
+error.PathDriverFactoryException=\u52A0\u8F7D\u9A71\u52A8\u7A0B\u5E8F\u51FA\u9519\uFF1A{0}
+error.DriverNotFoundException=\u9A71\u52A8\u7A0B\u5E8F\u52A0\u8F7D\u51FA\u9519\uFF0C\u9A71\u52A8\u7A0B\u5E8F\u5E93\u4E2D\u627E\u4E0D\u5230[{0}]\u9A71\u52A8\u7C7B
+error.DriverClassFormatErrorException=\u9A71\u52A8\u7A0B\u5E8F\u52A0\u8F7D\u51FA\u9519\uFF0C\u8FD0\u884C\u73AF\u5883\u4E0D\u652F\u6301\u6B64\u7248\u672C\u7684\u9A71\u52A8\u7A0B\u5E8F\u5E93
+error.URLNotAcceptedException=\u9009\u5B9A\u7684\u9A71\u52A8\u7A0B\u5E8F\u4E0D\u80FD\u8FDE\u63A5\u6B64\u6570\u636E\u6E90
+error.UnsupportedGetConnectionException=\u6570\u636E\u6E90\u8FDE\u63A5\u51FA\u9519\uFF0C\u627E\u4E0D\u5230\u9002\u7528\u7684\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0
+error.EstablishConnectionException=\u6570\u636E\u6E90\u8FDE\u63A5\u51FA\u9519\uFF0C\u8BF7\u68C0\u67E5\u6570\u636E\u6E90\u8BBE\u7F6E\u662F\u5426\u6709\u8BEF
+error.PermissionDeniedException=\u6CA1\u6709\u64CD\u4F5C\u6743\u9650
+error.SaveSchemaUrlPermissionDeniedException=\u6CA1\u6709\u6743\u9650\u521B\u5EFA\u6B64URL\u7684\u6570\u636E\u6E90
+error.SqlDataSetUnsupportedSqlTypeException=SQL\u6570\u636E\u96C6\u67E5\u8BE2\u7ED3\u679C\u4E2D\u5B58\u5728\u4E0D\u652F\u6301\u7684\u6570\u636E\u7C7B\u578B\uFF1A{0}\uFF0C\u8BF7\u5C06\u5176\u4ECE\u67E5\u8BE2\u5217\u4E2D\u79FB\u9664
+error.TemplateResolverException=\u53C2\u6570\u5316\u8BED\u53E5\u683C\u5F0F\u6709\u8BEF\uFF1A{0}
+error.UnsupportedResultDataException=\u4E0D\u652F\u6301\u7684\u6570\u636E\u96C6\u7ED3\u679C\u6570\u636E\u7C7B\u578B\uFF1A{0}
+error.UnsupportedJsonResultDataException=\u4E0D\u652F\u6301\u7684JSON\u6570\u636E\u7C7B\u578B\uFF0C\u9700\u4E3AJSON\u5BF9\u8C61\u3001JSON\u5BF9\u8C61\u6570\u7EC4
+error.DataSetSourceParseException=\u6570\u636E\u6E90\u89E3\u6790\u51FA\u9519\uFF1A{0}
+error.SqlDataSetSqlExecutionException=SQL\u8BED\u53E5\u6267\u884C\u51FA\u9519\uFF1A{0}
+error.SqlDataSetConnectionException=\u6570\u636E\u6E90\u8FDE\u63A5\u51FA\u9519\uFF1A{0}
+error.RequestContentNotNameValueObjArrayJsonException=\u8BF7\u6C42\u4F53\u7C7B\u578B\u4E3A\u540D/\u503C\u53C2\u6570\uFF0C\u8BF7\u6C42\u4F53JSON\u683C\u5F0F\u5E94\u4E3A\uFF1A[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]
+error.HeaderContentNotNameValueObjArrayJsonException=\u8BF7\u6C42\u5934JSON\u683C\u5F0F\u5E94\u4E3A\uFF1A[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]
+error.DataSetException=\u6570\u636E\u96C6\u64CD\u4F5C\u51FA\u9519\uFF1A{0}
+error.DeleteBuiltinRoleDeniedException=\u5185\u7F6E\u89D2\u8272\u4E0D\u5141\u8BB8\u5220\u9664
+error.java.io.FileNotFoundException=\u672A\u627E\u5230\u6587\u4EF6
 
 #data
-data.queryWithShortcut=查询(CTRL+ENTER)
-data.clearWithShortcut=清除(CTRL+SHIFT+BACKSPACE)
-data.conditionPanelWithShortcut=高级查询(CTRL+SHIFT+&#8595)
-data.likeTitle=包含(CTRL+SHIFT+!)
-data.notLikeTitle=不包含(CTRL+SHIFT+!)
-data.keywordTitle=输入查询关键字
-data.conditionTitle=输入查询条件SQL
-data.batchOperationSuccess=批量执行成功,总数:[{0}],成功数:[{1}],失败数:[{2}]
-data.batchOperationFinish.ignore=批量执行完成(忽略),总数:[{0}],成功数:[{1}],失败数:[{2}]
-data.batchOperationFinish.abort=批量执行完成(终止),总数:[{0}],成功数:[{1}],未执行:[{2}]
-data.batchOperationFinish.rollback=批量执行完成(撤销),总数:[{0}],成功数:[0],撤销数:[{1}]
-data.batchOperationFail=批量执行失败,总数:[{0}],成功数:[{1}],失败数:[{2}]
-data.batchUnitResult.successHtml=<div class=" message-detail-item ">[成功]&nbsp;编号:<span class='index'>{0}</span></div>
-data.batchUnitResult.failHtml=<div class=" message-detail-item ">[失败]&nbsp;编号:<span class='index'>{0}</span>,错误消息:<span class='fail-message'>{1}</span></div>
-data.confirmDelete=确定删除选中的[{0}]条记录吗?
-data.confirmRestoreEditCell=确定恢复[{0}]处表格编辑项吗?
-data.confirmSaveEditCellClient=确定存储[{0}]处表格编辑项吗?
-data.confirmSaveEditCellServerSide=确定保存[{0}]处表格编辑项吗?
-data.savessSuccess=保存成功,更新数:[{1}],添加数:[{3}],删除数:[{5}]
+data.queryWithShortcut=\u67E5\u8BE2\uFF08CTRL+ENTER\uFF09
+data.clearWithShortcut=\u6E05\u9664\uFF08CTRL+SHIFT+BACKSPACE\uFF09
+data.conditionPanelWithShortcut=\u9AD8\u7EA7\u67E5\u8BE2\uFF08CTRL+SHIFT+&#8595\uFF09
+data.likeTitle=\u5305\u542B\uFF08CTRL+SHIFT+!\uFF09
+data.notLikeTitle=\u4E0D\u5305\u542B\uFF08CTRL+SHIFT+!\uFF09
+data.keywordTitle=\u8F93\u5165\u67E5\u8BE2\u5173\u952E\u5B57
+data.conditionTitle=\u8F93\u5165\u67E5\u8BE2\u6761\u4EF6SQL
+data.batchOperationSuccess=\u6279\u91CF\u6267\u884C\u6210\u529F\uFF0C\u603B\u6570\uFF1A[{0}]\uFF0C\u6210\u529F\u6570\uFF1A[{1}]\uFF0C\u5931\u8D25\u6570\uFF1A[{2}]
+data.batchOperationFinish.ignore=\u6279\u91CF\u6267\u884C\u5B8C\u6210\uFF08\u5FFD\u7565\uFF09\uFF0C\u603B\u6570\uFF1A[{0}]\uFF0C\u6210\u529F\u6570\uFF1A[{1}]\uFF0C\u5931\u8D25\u6570\uFF1A[{2}]
+data.batchOperationFinish.abort=\u6279\u91CF\u6267\u884C\u5B8C\u6210\uFF08\u7EC8\u6B62\uFF09\uFF0C\u603B\u6570\uFF1A[{0}]\uFF0C\u6210\u529F\u6570\uFF1A[{1}]\uFF0C\u672A\u6267\u884C\uFF1A[{2}]
+data.batchOperationFinish.rollback=\u6279\u91CF\u6267\u884C\u5B8C\u6210\uFF08\u64A4\u9500\uFF09\uFF0C\u603B\u6570\uFF1A[{0}]\uFF0C\u6210\u529F\u6570\uFF1A[0]\uFF0C\u64A4\u9500\u6570\uFF1A[{1}]
+data.batchOperationFail=\u6279\u91CF\u6267\u884C\u5931\u8D25\uFF0C\u603B\u6570\uFF1A[{0}]\uFF0C\u6210\u529F\u6570\uFF1A[{1}]\uFF0C\u5931\u8D25\u6570\uFF1A[{2}]
+data.batchUnitResult.successHtml=<div class=" message-detail-item ">[\u6210\u529F]&nbsp;\u7F16\u53F7\uFF1A<span class='index'>{0}</span></div>
+data.batchUnitResult.failHtml=<div class=" message-detail-item ">[\u5931\u8D25]&nbsp;\u7F16\u53F7\uFF1A<span class='index'>{0}</span>\uFF0C\u9519\u8BEF\u6D88\u606F\uFF1A<span class='fail-message'>{1}</span></div>
+data.confirmDelete=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684[{0}]\u6761\u8BB0\u5F55\u5417\uFF1F
+data.confirmRestoreEditCell=\u786E\u5B9A\u6062\u590D[{0}]\u5904\u8868\u683C\u7F16\u8F91\u9879\u5417\uFF1F
+data.confirmSaveEditCellClient=\u786E\u5B9A\u5B58\u50A8[{0}]\u5904\u8868\u683C\u7F16\u8F91\u9879\u5417\uFF1F
+data.confirmSaveEditCellServerSide=\u786E\u5B9A\u4FDD\u5B58[{0}]\u5904\u8868\u683C\u7F16\u8F91\u9879\u5417\uFF1F
+data.savessSuccess=\u4FDD\u5B58\u6210\u529F\uFF0C\u66F4\u65B0\u6570\uFF1A[{1}]\uFF0C\u6DFB\u52A0\u6570\uFF1A[{3}]\uFF0C\u5220\u9664\u6570\uFF1A[{5}]
 
 #driverEntity
-driverEntity.addDriverEntity=添加数据源驱动程序
-driverEntity.importDriverEntity=导入数据源驱动程序
-driverEntity.editDriverEntity=编辑数据源驱动程序
-driverEntity.viewDriverEntity=查看数据源驱动程序
-driverEntity.manageDriverEntity=管理数据源驱动程序
-driverEntity.selectDriverEntity=选择数据源驱动程序
+driverEntity.addDriverEntity=\u6DFB\u52A0\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+driverEntity.importDriverEntity=\u5BFC\u5165\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+driverEntity.editDriverEntity=\u7F16\u8F91\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+driverEntity.viewDriverEntity=\u67E5\u770B\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+driverEntity.manageDriverEntity=\u7BA1\u7406\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+driverEntity.selectDriverEntity=\u9009\u62E9\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
 driverEntity.id=ID
-driverEntity.driverClassName=驱动程序类名
-driverEntity.driverClassName.desc=JDBC驱动程序类名,比如,MySQL数据库的JDBC驱动类名是:com.mysql.cj.jdbc.Driver
-driverEntity.displayName=标题
-driverEntity.displayDesc=描述
-driverEntity.driverFiles=驱动程序库
-driverEntity.driverFiles.desc=JDBC驱动程序库文件,通常是*.jar文件
-driverEntity.driverFiles.notice=注意:驱动程序库的所有依赖库也必须在此一并上传!
-driverEntity.confirmDeleteDriverFile=确定删除选中的驱动程序文件吗?
-driverEntity.confirmDelete=确定删除选中的数据源驱动程序吗?这可能导致相关数据源无法使用
-driverEntity.import.selectFile=选择导入文件
-driverEntity.import.review=导入预览
-driverEntity.import.IllegalImportDriverEntityFileFormatException=导入文件格式错误
-driverEntity.import.importDriverEntityRequired=导入驱动程序不能为空
-driverEntity.import.success=导入成功
-driverEntity.deleteDriverFileFail=删除失败,文件正在使用
+driverEntity.driverClassName=\u9A71\u52A8\u7A0B\u5E8F\u7C7B\u540D
+driverEntity.driverClassName.desc=JDBC\u9A71\u52A8\u7A0B\u5E8F\u7C7B\u540D\uFF0C\u6BD4\u5982\uFF0CMySQL\u6570\u636E\u5E93\u7684JDBC\u9A71\u52A8\u7C7B\u540D\u662F\uFF1Acom.mysql.cj.jdbc.Driver
+driverEntity.displayName=\u6807\u9898
+driverEntity.displayDesc=\u63CF\u8FF0
+driverEntity.driverFiles=\u9A71\u52A8\u7A0B\u5E8F\u5E93
+driverEntity.driverFiles.desc=JDBC\u9A71\u52A8\u7A0B\u5E8F\u5E93\u6587\u4EF6\uFF0C\u901A\u5E38\u662F*.jar\u6587\u4EF6
+driverEntity.driverFiles.notice=\u6CE8\u610F\uFF1A\u9A71\u52A8\u7A0B\u5E8F\u5E93\u7684\u6240\u6709\u4F9D\u8D56\u5E93\u4E5F\u5FC5\u987B\u5728\u6B64\u4E00\u5E76\u4E0A\u4F20\uFF01
+driverEntity.confirmDeleteDriverFile=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u9A71\u52A8\u7A0B\u5E8F\u6587\u4EF6\u5417\uFF1F
+driverEntity.confirmDelete=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F\u5417\uFF1F\u8FD9\u53EF\u80FD\u5BFC\u81F4\u76F8\u5173\u6570\u636E\u6E90\u65E0\u6CD5\u4F7F\u7528
+driverEntity.import.selectFile=\u9009\u62E9\u5BFC\u5165\u6587\u4EF6
+driverEntity.import.review=\u5BFC\u5165\u9884\u89C8
+driverEntity.import.IllegalImportDriverEntityFileFormatException=\u5BFC\u5165\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF
+driverEntity.import.importDriverEntityRequired=\u5BFC\u5165\u9A71\u52A8\u7A0B\u5E8F\u4E0D\u80FD\u4E3A\u7A7A
+driverEntity.import.success=\u5BFC\u5165\u6210\u529F
+driverEntity.deleteDriverFileFail=\u5220\u9664\u5931\u8D25\uFF0C\u6587\u4EF6\u6B63\u5728\u4F7F\u7528
 
 #login
-login.login=登录
-login.username=用户名
-login.password=密码
-login.forgetPsd=忘记密码
-login.fogetPassword=忘记密码
-login.rememberMe=记住登录
-login.userNameOrPasswordError=用户名或者密码错误
+login.login=\u767B\u5F55
+login.username=\u7528\u6237\u540D
+login.password=\u5BC6\u7801
+login.forgetPsd=\u5FD8\u8BB0\u5BC6\u7801
+login.fogetPassword=\u5FD8\u8BB0\u5BC6\u7801
+login.rememberMe=\u8BB0\u4F4F\u767B\u5F55
+login.userNameOrPasswordError=\u7528\u6237\u540D\u6216\u8005\u5BC6\u7801\u9519\u8BEF
 
 #main
-main.mainPage=主页
-main.login=登录
-main.logout=退出
-main.register=注册
-main.dataSource=数据源
-main.dataAnalysis=数据分析
-main.dataAnalysis.dataSet=数据集
-main.dataAnalysis.chart=图表
-main.dataAnalysis.dashboard=看板
-main.addSchema=添加数据源
-main.moreTable=更多…({0}/{1})
-main.loadingTable=加载中……
-main.sortUp=上移
-main.sortDown=下移
-main.searchSchema=查找数据源
-main.searchTable=查找表和视图
-main.schemaCreateUser=创建用户
-main.addDriverEntity=添加驱动程序
-main.manageDriverEntity=数据源驱动程序
-main.manageUser=用户
-main.addUser=添加用户
-main.manageRole=角色
-main.manageSchemaGuard=数据源防护
-main.manageChartPlugin=图表插件
-main.uploadChartPlugin=上传图表插件
-main.manageDataSetResDirectory=数据集资源目录
-main.manageDashboardGlobalRes=看板全局资源
-main.personalSet=个人设置
-main.changeTheme=切换肤色
-main.changeTheme.light=浅色
-main.changeTheme.dark=暗色
-main.changeTheme.green=绿色
-main.changeLocale=切换语言
-main.changeLocale.zh=中文
+main.mainPage=\u4E3B\u9875
+main.login=\u767B\u5F55
+main.logout=\u9000\u51FA
+main.register=\u6CE8\u518C
+main.dataSource=\u6570\u636E\u6E90
+main.dataAnalysis=\u6570\u636E\u5206\u6790
+main.dataAnalysis.dataSet=\u6570\u636E\u96C6
+main.dataAnalysis.chart=\u56FE\u8868
+main.dataAnalysis.dashboard=\u770B\u677F
+main.addSchema=\u6DFB\u52A0\u6570\u636E\u6E90
+main.moreTable=\u66F4\u591A\u2026\uFF08{0}/{1}\uFF09
+main.loadingTable=\u52A0\u8F7D\u4E2D\u2026\u2026
+main.sortUp=\u4E0A\u79FB
+main.sortDown=\u4E0B\u79FB
+main.searchSchema=\u67E5\u627E\u6570\u636E\u6E90
+main.searchTable=\u67E5\u627E\u8868\u548C\u89C6\u56FE
+main.schemaCreateUser=\u521B\u5EFA\u7528\u6237
+main.addDriverEntity=\u6DFB\u52A0\u9A71\u52A8\u7A0B\u5E8F
+main.manageDriverEntity=\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+main.manageUser=\u7528\u6237
+main.addUser=\u6DFB\u52A0\u7528\u6237
+main.manageRole=\u89D2\u8272
+main.manageSchemaGuard=\u6570\u636E\u6E90\u9632\u62A4
+main.manageChartPlugin=\u56FE\u8868\u63D2\u4EF6
+main.uploadChartPlugin=\u4E0A\u4F20\u56FE\u8868\u63D2\u4EF6
+main.manageDataSetResDirectory=\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+main.manageDashboardGlobalRes=\u770B\u677F\u5168\u5C40\u8D44\u6E90
+main.personalSet=\u4E2A\u4EBA\u8BBE\u7F6E
+main.changeTheme=\u5207\u6362\u80A4\u8272
+main.changeTheme.light=\u6D45\u8272
+main.changeTheme.dark=\u6697\u8272
+main.changeTheme.green=\u7EFF\u8272
+main.changeLocale=\u5207\u6362\u8BED\u8A00
+main.changeLocale.zh=\u4E2D\u6587
 main.changeLocale.en=English
-main.changeLocaleConfirm=切换语言会重新载入页面,确定切换吗?
-main.about=关于
-main.documentation=文档
-main.changelog=版本日志
-main.downloadLatestVersion=下载最新版本
-main.closeLeft=关闭左侧
-main.closeRight=关闭右侧
-main.closeOther=关闭其他
-main.closeAll=关闭全部
-main.openInNewWindow=打开新窗口
-main.schemaOperationMenuRefreshComment=刷新选中数据源或者表
-main.schemaOperationMenuReloadComment=刷新数据源列表
-main.anonymousDataTip=匿名用户创建的数据在清除Cookie后将丢失,登录后可持久保存
-main.confirmDeleteSchema=确定删除选中的数据源吗?
-main.tableType.table=
-main.tableType.view=视图
-main.sqlpad=SQL工作台
-main.dataimport=导入数据
-main.dataexport=导出数据
-main.analysisProject.currentValue=当前数据分析项目
-main.analysisProject.currentValue.none=
-main.analysisProject.currentValue.clear=清空当前数据分析项目
-main.analysisProject.add=添加数据分析项目并设为当前项目
-main.analysisProject.manage=管理数据分析项目
+main.changeLocaleConfirm=\u5207\u6362\u8BED\u8A00\u4F1A\u91CD\u65B0\u8F7D\u5165\u9875\u9762\uFF0C\u786E\u5B9A\u5207\u6362\u5417\uFF1F
+main.about=\u5173\u4E8E
+main.documentation=\u6587\u6863
+main.changelog=\u7248\u672C\u65E5\u5FD7
+main.downloadLatestVersion=\u4E0B\u8F7D\u6700\u65B0\u7248\u672C
+main.closeLeft=\u5173\u95ED\u5DE6\u4FA7
+main.closeRight=\u5173\u95ED\u53F3\u4FA7
+main.closeOther=\u5173\u95ED\u5176\u4ED6
+main.closeAll=\u5173\u95ED\u5168\u90E8
+main.openInNewWindow=\u6253\u5F00\u65B0\u7A97\u53E3
+main.schemaOperationMenuRefreshComment=\u5237\u65B0\u9009\u4E2D\u6570\u636E\u6E90\u6216\u8005\u8868
+main.schemaOperationMenuReloadComment=\u5237\u65B0\u6570\u636E\u6E90\u5217\u8868
+main.anonymousDataTip=\u533F\u540D\u7528\u6237\u521B\u5EFA\u7684\u6570\u636E\u5728\u6E05\u9664Cookie\u540E\u5C06\u4E22\u5931\uFF0C\u767B\u5F55\u540E\u53EF\u6301\u4E45\u4FDD\u5B58
+main.confirmDeleteSchema=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\u6E90\u5417\uFF1F
+main.tableType.table=\u8868
+main.tableType.view=\u89C6\u56FE
+main.sqlpad=SQL\u5DE5\u4F5C\u53F0
+main.dataimport=\u5BFC\u5165\u6570\u636E
+main.dataexport=\u5BFC\u51FA\u6570\u636E
+main.analysisProject.currentValue=\u5F53\u524D\u6570\u636E\u5206\u6790\u9879\u76EE
+main.analysisProject.currentValue.none=\u65E0
+main.analysisProject.currentValue.clear=\u6E05\u7A7A\u5F53\u524D\u6570\u636E\u5206\u6790\u9879\u76EE
+main.analysisProject.add=\u6DFB\u52A0\u6570\u636E\u5206\u6790\u9879\u76EE\u5E76\u8BBE\u4E3A\u5F53\u524D\u9879\u76EE
+main.analysisProject.manage=\u7BA1\u7406\u6570\u636E\u5206\u6790\u9879\u76EE
 
 #register
-register.register=注册
-register.name=用户名
-register.password=密码
-register.confirmPassword=确认密码
-register.realName=昵称
-register.email=邮箱
-register.registerSuccess=注册成功
-register.registerSuccessContent=注册成功,稍后将自动跳转至<a href="{0}" class="link">登录</a>页面。
-register.validation.confirmPasswordError=与[密码]项不一致
-register.userNameExists=用户名[{0}]已存在,注册失败
-register.registerDisabled=注册功能已禁用
+register.register=\u6CE8\u518C
+register.name=\u7528\u6237\u540D
+register.password=\u5BC6\u7801
+register.confirmPassword=\u786E\u8BA4\u5BC6\u7801
+register.realName=\u6635\u79F0
+register.email=\u90AE\u7BB1
+register.registerSuccess=\u6CE8\u518C\u6210\u529F
+register.registerSuccessContent=\u6CE8\u518C\u6210\u529F\uFF0C\u7A0D\u540E\u5C06\u81EA\u52A8\u8DF3\u8F6C\u81F3<a href="{0}" class="link">\u767B\u5F55</a>\u9875\u9762\u3002
+register.validation.confirmPasswordError=\u4E0E[\u5BC6\u7801]\u9879\u4E0D\u4E00\u81F4
+register.userNameExists=\u7528\u6237\u540D[{0}]\u5DF2\u5B58\u5728\uFF0C\u6CE8\u518C\u5931\u8D25
+register.registerDisabled=\u6CE8\u518C\u529F\u80FD\u5DF2\u7981\u7528
 
 #resetPassword
-resetPassword.resetPassword=重设密码
-resetPassword.backToLoginPage=返回登录
-resetPassword.step.fillInUserInfo=1、填写用户信息
-resetPassword.step.checkUser=2、验证身份
-resetPassword.step.setNewPassword=3、设置新密码
-resetPassword.step.finish=4、完成
-resetPassword.step.finish.content=重设密码完成,稍后将跳转至<a href="{0}">登录</a>页面。
-resetPassword.username=用户名
-resetPassword.checkFile=校验文件
-resetPassword.pleaseCreateCheckFile=请在服务端<span class="ui-state-default">{0}</span>目录下新建空白文件:<span class="ui-state-default">{1}</span>,<br>然后点击[下一步]
-resetPassword.password=新密码
-resetPassword.confirmPassword=确认新密码
-resetPassword.next=下一步
-resetPassword.validation.confirmPasswordError=与[密码]项不一致
-resetPassword.resetPasswordStepNotInSession=操作超时,请重新开始
-resetPassword.userNotExists=用户[{0}]不存在
-resetPassword.checkFileNotExists=校验文件不存在
-resetPassword.confirmPasswordError=确认密码输入有误
+resetPassword.resetPassword=\u91CD\u8BBE\u5BC6\u7801
+resetPassword.backToLoginPage=\u8FD4\u56DE\u767B\u5F55
+resetPassword.step.fillInUserInfo=1\u3001\u586B\u5199\u7528\u6237\u4FE1\u606F
+resetPassword.step.checkUser=2\u3001\u9A8C\u8BC1\u8EAB\u4EFD
+resetPassword.step.setNewPassword=3\u3001\u8BBE\u7F6E\u65B0\u5BC6\u7801
+resetPassword.step.finish=4\u3001\u5B8C\u6210
+resetPassword.step.finish.content=\u91CD\u8BBE\u5BC6\u7801\u5B8C\u6210\uFF0C\u7A0D\u540E\u5C06\u8DF3\u8F6C\u81F3<a href="{0}">\u767B\u5F55</a>\u9875\u9762\u3002
+resetPassword.username=\u7528\u6237\u540D
+resetPassword.checkFile=\u6821\u9A8C\u6587\u4EF6
+resetPassword.pleaseCreateCheckFile=\u8BF7\u5728\u670D\u52A1\u7AEF<span class="ui-state-default">{0}</span>\u76EE\u5F55\u4E0B\u65B0\u5EFA\u7A7A\u767D\u6587\u4EF6\uFF1A<span class="ui-state-default">{1}</span>\uFF0C<br>\u7136\u540E\u70B9\u51FB[\u4E0B\u4E00\u6B65]
+resetPassword.password=\u65B0\u5BC6\u7801
+resetPassword.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
+resetPassword.next=\u4E0B\u4E00\u6B65
+resetPassword.validation.confirmPasswordError=\u4E0E[\u5BC6\u7801]\u9879\u4E0D\u4E00\u81F4
+resetPassword.resetPasswordStepNotInSession=\u64CD\u4F5C\u8D85\u65F6\uFF0C\u8BF7\u91CD\u65B0\u5F00\u59CB
+resetPassword.userNotExists=\u7528\u6237[{0}]\u4E0D\u5B58\u5728
+resetPassword.checkFileNotExists=\u6821\u9A8C\u6587\u4EF6\u4E0D\u5B58\u5728
+resetPassword.confirmPasswordError=\u786E\u8BA4\u5BC6\u7801\u8F93\u5165\u6709\u8BEF
 
 #schema
-schema.manageSchema=管理数据源
-schema.addSchema=添加数据源
-schema.editSchema=编辑数据源
-schema.viewSchema=查看数据源
-schema.selectSchema=选择数据源
-schema.title=数据源标题
-schema.url=数据源URL
-schema.user=数据源用户
-schema.password=数据源密码
-schema.driverEntity=数据源驱动程序
-schema.driverEntity.desc=此项通常无需设置,系统会自动选择已安装的最合适的驱动程序
-schema.createUser=创建用户
-schema.createTime=创建时间
-schema.testConnection=测试连接
-schema.testConnectionTip=测试中...
-schema.testConnection.ok=连接成功!
-schema.urlHelp=数据源的JDBC连接URL,点击可打开设置帮助页面
-schema.schemaBuildUrl=设置数据源URL
-schema.schemaBuildUrl.common=常用
-schema.schemaBuildUrl.all=全部
-schema.url.dbType=数据源类型
-schema.url.host=主机名/IP
-schema.url.port=端口
-schema.url.name=数据源名称
-schema.loadUrlBuilderScriptError=加载数据源URL构建器代码出错
-schema.auth.resouceTypeLabel=数据源
-schema.auth.permission.read.desc=仅可浏览数据,执行SELECT SQL语句
-schema.auth.permission.edit.desc=可浏览、编辑数据,执行SELECT、UPDATE SQL语句
-schema.auth.permission.delete.desc=可浏览、编辑、删除数据,执行所有SQL语句
-schema.auth.permission.none.desc=不可访问
+schema.manageSchema=\u7BA1\u7406\u6570\u636E\u6E90
+schema.addSchema=\u6DFB\u52A0\u6570\u636E\u6E90
+schema.editSchema=\u7F16\u8F91\u6570\u636E\u6E90
+schema.viewSchema=\u67E5\u770B\u6570\u636E\u6E90
+schema.selectSchema=\u9009\u62E9\u6570\u636E\u6E90
+schema.title=\u6570\u636E\u6E90\u6807\u9898
+schema.url=\u6570\u636E\u6E90URL
+schema.user=\u6570\u636E\u6E90\u7528\u6237
+schema.password=\u6570\u636E\u6E90\u5BC6\u7801
+schema.driverEntity=\u6570\u636E\u6E90\u9A71\u52A8\u7A0B\u5E8F
+schema.driverEntity.desc=\u6B64\u9879\u901A\u5E38\u65E0\u9700\u8BBE\u7F6E\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u9009\u62E9\u5DF2\u5B89\u88C5\u7684\u6700\u5408\u9002\u7684\u9A71\u52A8\u7A0B\u5E8F
+schema.createUser=\u521B\u5EFA\u7528\u6237
+schema.createTime=\u521B\u5EFA\u65F6\u95F4
+schema.testConnection=\u6D4B\u8BD5\u8FDE\u63A5
+schema.testConnectionTip=\u6D4B\u8BD5\u4E2D...
+schema.testConnection.ok=\u8FDE\u63A5\u6210\u529F\uFF01
+schema.urlHelp=\u6570\u636E\u6E90\u7684JDBC\u8FDE\u63A5URL\uFF0C\u70B9\u51FB\u53EF\u6253\u5F00\u8BBE\u7F6E\u5E2E\u52A9\u9875\u9762
+schema.schemaBuildUrl=\u8BBE\u7F6E\u6570\u636E\u6E90URL
+schema.schemaBuildUrl.common=\u5E38\u7528
+schema.schemaBuildUrl.all=\u5168\u90E8
+schema.url.dbType=\u6570\u636E\u6E90\u7C7B\u578B
+schema.url.host=\u4E3B\u673A\u540D/IP
+schema.url.port=\u7AEF\u53E3
+schema.url.name=\u6570\u636E\u6E90\u540D\u79F0
+schema.loadUrlBuilderScriptError=\u52A0\u8F7D\u6570\u636E\u6E90URL\u6784\u5EFA\u5668\u4EE3\u7801\u51FA\u9519
+schema.auth.resouceTypeLabel=\u6570\u636E\u6E90
+schema.auth.permission.read.desc=\u4EC5\u53EF\u6D4F\u89C8\u6570\u636E\uFF0C\u6267\u884CSELECT SQL\u8BED\u53E5
+schema.auth.permission.edit.desc=\u53EF\u6D4F\u89C8\u3001\u7F16\u8F91\u6570\u636E\uFF0C\u6267\u884CSELECT\u3001UPDATE SQL\u8BED\u53E5
+schema.auth.permission.delete.desc=\u53EF\u6D4F\u89C8\u3001\u7F16\u8F91\u3001\u5220\u9664\u6570\u636E\uFF0C\u6267\u884C\u6240\u6709SQL\u8BED\u53E5
+schema.auth.permission.none.desc=\u4E0D\u53EF\u8BBF\u95EE
 
 #schemaUrlBuilder
-schemaUrlBuilder.schemaUrlBuilder=数据源URL构建器
-schemaUrlBuilder.scriptCode=构建器代码
-schemaUrlBuilder.scriptCodeNote.0=构建器代码格式如下:
-schemaUrlBuilder.scriptCodeNote.required=必填
-schemaUrlBuilder.scriptCodeNote.optional=选填
-schemaUrlBuilder.scriptCodeNote.dbType=数据源类型
-schemaUrlBuilder.scriptCodeNote.template=URL模板
-schemaUrlBuilder.scriptCodeNote.defaultValue=默认值
-schemaUrlBuilder.scriptCodeNote.dbDesc=数据源描述
-schemaUrlBuilder.scriptCodeNote.order=展示排序值
-schemaUrlBuilder.scriptCodeNote.1=多个构建器代码之间以英文“,”隔开
+schemaUrlBuilder.schemaUrlBuilder=\u6570\u636E\u6E90URL\u6784\u5EFA\u5668
+schemaUrlBuilder.scriptCode=\u6784\u5EFA\u5668\u4EE3\u7801
+schemaUrlBuilder.scriptCodeNote.0=\u6784\u5EFA\u5668\u4EE3\u7801\u683C\u5F0F\u5982\u4E0B\uFF1A
+schemaUrlBuilder.scriptCodeNote.required=\u5FC5\u586B
+schemaUrlBuilder.scriptCodeNote.optional=\u9009\u586B
+schemaUrlBuilder.scriptCodeNote.dbType=\u6570\u636E\u6E90\u7C7B\u578B
+schemaUrlBuilder.scriptCodeNote.template=URL\u6A21\u677F
+schemaUrlBuilder.scriptCodeNote.defaultValue=\u9ED8\u8BA4\u503C
+schemaUrlBuilder.scriptCodeNote.dbDesc=\u6570\u636E\u6E90\u63CF\u8FF0
+schemaUrlBuilder.scriptCodeNote.order=\u5C55\u793A\u6392\u5E8F\u503C
+schemaUrlBuilder.scriptCodeNote.1=\u591A\u4E2A\u6784\u5EFA\u5668\u4EE3\u7801\u4E4B\u95F4\u4EE5\u82F1\u6587\u201C,\u201D\u9694\u5F00
 
 #user
-user.addUser=添加用户
-user.editUser=编辑用户
-user.viewUser=查看用户
-user.manageUser=管理用户
-user.selectUser=选择用户
-user.personalSet=个人设置
-user.deleteUser=删除用户
+user.addUser=\u6DFB\u52A0\u7528\u6237
+user.editUser=\u7F16\u8F91\u7528\u6237
+user.viewUser=\u67E5\u770B\u7528\u6237
+user.manageUser=\u7BA1\u7406\u7528\u6237
+user.selectUser=\u9009\u62E9\u7528\u6237
+user.personalSet=\u4E2A\u4EBA\u8BBE\u7F6E
+user.deleteUser=\u5220\u9664\u7528\u6237
 user.id=ID
-user.name=用户名
-user.password=密码
-user.realName=昵称
-user.email=邮箱
-user.admin=管理员
-user.createTime=创建日期
-user.roles=角色
-user.confirmPassword=确认密码
-user.validation.confirmPasswordError=与[密码]项不一致
-user.validation.migrateToUserIdIllegal=不能选择待删除的用户
-user.confirmDelete=确定删除选中的用户吗?用户创建的数据源也会被删除
-user.deleteAdminUserDenied=管理员账号不允许删除
-user.userNameExists=用户[{0}]已存在
-user.migrateDataToUser=数据迁移至
-user.migrateDataToUser.desc=将待删除用户的所有数据迁移至此用户
+user.name=\u7528\u6237\u540D
+user.password=\u5BC6\u7801
+user.realName=\u6635\u79F0
+user.email=\u90AE\u7BB1
+user.admin=\u7BA1\u7406\u5458
+user.createTime=\u521B\u5EFA\u65E5\u671F
+user.roles=\u89D2\u8272
+user.confirmPassword=\u786E\u8BA4\u5BC6\u7801
+user.validation.confirmPasswordError=\u4E0E[\u5BC6\u7801]\u9879\u4E0D\u4E00\u81F4
+user.validation.migrateToUserIdIllegal=\u4E0D\u80FD\u9009\u62E9\u5F85\u5220\u9664\u7684\u7528\u6237
+user.confirmDelete=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u7528\u6237\u5417\uFF1F\u7528\u6237\u521B\u5EFA\u7684\u6570\u636E\u6E90\u4E5F\u4F1A\u88AB\u5220\u9664
+user.deleteAdminUserDenied=\u7BA1\u7406\u5458\u8D26\u53F7\u4E0D\u5141\u8BB8\u5220\u9664
+user.userNameExists=\u7528\u6237[{0}]\u5DF2\u5B58\u5728
+user.migrateDataToUser=\u6570\u636E\u8FC1\u79FB\u81F3
+user.migrateDataToUser.desc=\u5C06\u5F85\u5220\u9664\u7528\u6237\u7684\u6240\u6709\u6570\u636E\u8FC1\u79FB\u81F3\u6B64\u7528\u6237
 
 #about
-about.about=关于
-about.app.name=名称
-about.app.version=版本
-about.app.website=网站
-about.license=许可
+about.about=\u5173\u4E8E
+about.app.name=\u540D\u79F0
+about.app.version=\u7248\u672C
+about.app.website=\u7F51\u7AD9
+about.license=\u8BB8\u53EF
 
 #changelog
-changelog.changelog=版本更新日志
-changelog.version=版本
-changelog.viewAll=查看全部
+changelog.changelog=\u7248\u672C\u66F4\u65B0\u65E5\u5FD7
+changelog.version=\u7248\u672C
+changelog.viewAll=\u67E5\u770B\u5168\u90E8
 
 #sqlpad
-sqlpad.sqlpad=SQL工作台
-sqlpad.executeWithShortcut=执行(Ctrl+Enter)
-sqlpad.commit=提交
-sqlpad.rollback=回滚
-sqlpad.pauseExecutionWithShortcut=暂停(Ctrl+Enter)
-sqlpad.resumeExecutionWithShortcut=继续(Ctrl+Enter)
-sqlpad.stopExecution=停止
-sqlpad.clearEditSql=清除SQL
-sqlpad.insertFile=插入文件
-sqlpad.sqlDelimiter=SQL语句分隔符
-sqlpad.insertSqlDelimiterDefine=插入SQL语句分隔符声明
-sqlpad.insertSqlDelimiter=插入SQL语句分隔符
-sqlpad.viewSqlHistory=查看SQL历史
-sqlpad.insertSqlHistoryToEditor=将SQL语句插入到SQL编辑器
-sqlpad.copySqlHistoryToClipbord=将SQL语句复制到剪切板
-sqlpad.setting=设置
-sqlpad.sqlExceptionHandleMode=执行出错时
-sqlpad.sqlExceptionHandleMode.abort=终止
-sqlpad.sqlExceptionHandleMode.rollback=回滚
-sqlpad.sqlExceptionHandleMode.ignore=忽略
-sqlpad.sqlCommitMode=提交方式
-sqlpad.sqlCommitMode.auto=自动
-sqlpad.sqlCommitMode.manual=手动
-sqlpad.overTimeThreashold=超时设置
-sqlpad.overTimeThreashold.unit=分钟
-sqlpad.overTimeThreashold.desc=暂停、等待提交/回滚的超时时间
-sqlpad.overTimeThreashold.validation=仅可填写[1-60]
-sqlpad.resultsetFetchSize=查询结果页大小
-sqlpad.resultsetFetchSize.desc=查询结果每次加载的记录数
-sqlpad.resultsetFetchSize.validation=仅可填写[1-1000]
-sqlpad.message=消息
-sqlpad.executionStart=开始执行(SQL总计{0}条)
-sqlpad.executeionFinish=完成执行
-sqlpad.clearSqlResultMessage=清除执行日志
-sqlpad.loadMoreData=加载更多数据
-sqlpad.refreshSqlResult=刷新查询结果
-sqlpad.exportSqlResult=导出查询结果
-sqlpad.viewSqlStatement=查看SQL语句
-sqlpad.lockSqlResultTab=锁定此选项卡
-sqlpad.executionSqlselectionRange=起始行:{0}({1}),结束行:{2}({3})
-sqlpad.keepResult=保留执行日志
-sqlpad.executionConnectionException=数据源连接失败
-sqlpad.executionSQLException=执行语句出错:{0}
-sqlpad.executionSQLPermissionDenied=没有执行权限
-sqlpad.executionErrorOccure=执行出错
-sqlpad.SqlCommand.COMMIT.ok=已提交
-sqlpad.SqlCommand.ROLLBACK.ok=已回滚
-sqlpad.SqlCommand.PAUSE.ok=已暂停({0}分钟后超时)
-sqlpad.SqlCommand.RESUME.ok=已继续
-sqlpad.SqlCommand.STOP.ok=已停止并回滚
-sqlpad.waitingForCommitOrRollback=等待提交或者回滚({0}分钟后超时)
-sqlpad.pauseOverTime=暂停超时
-sqlpad.waitOverTime=等待超时
-sqlpad.sqlExecutionStat.quoteLeft=
-sqlpad.sqlExecutionStat.quoteRight=
-sqlpad.sqlExecutionStat.infoNoDuration=SQL总计{0}条,成功{1}条,失败{2}条,未执行{3}条
-sqlpad.sqlExecutionStat.infoSqlDurationSuffix=,SQL用时{0}
-sqlpad.sqlExecutionStat.infoTaskDurationSuffix=,任务用时{0}
-sqlpad.affectDataRowCount=影响了 {0} 行数据
-sqlpad.selectResultWithIndex=查询结果-{0}
-sqlpad.viewResult=查看结果
-sqlpad.selectResultExpired=查询结果已过期
-sqlpad.noMoreData=没有更多数据了
+sqlpad.sqlpad=SQL\u5DE5\u4F5C\u53F0
+sqlpad.executeWithShortcut=\u6267\u884C\uFF08Ctrl+Enter\uFF09
+sqlpad.commit=\u63D0\u4EA4
+sqlpad.rollback=\u56DE\u6EDA
+sqlpad.pauseExecutionWithShortcut=\u6682\u505C\uFF08Ctrl+Enter\uFF09
+sqlpad.resumeExecutionWithShortcut=\u7EE7\u7EED\uFF08Ctrl+Enter\uFF09
+sqlpad.stopExecution=\u505C\u6B62
+sqlpad.clearEditSql=\u6E05\u9664SQL
+sqlpad.insertFile=\u63D2\u5165\u6587\u4EF6
+sqlpad.sqlDelimiter=SQL\u8BED\u53E5\u5206\u9694\u7B26
+sqlpad.insertSqlDelimiterDefine=\u63D2\u5165SQL\u8BED\u53E5\u5206\u9694\u7B26\u58F0\u660E
+sqlpad.insertSqlDelimiter=\u63D2\u5165SQL\u8BED\u53E5\u5206\u9694\u7B26
+sqlpad.viewSqlHistory=\u67E5\u770BSQL\u5386\u53F2
+sqlpad.insertSqlHistoryToEditor=\u5C06SQL\u8BED\u53E5\u63D2\u5165\u5230SQL\u7F16\u8F91\u5668
+sqlpad.copySqlHistoryToClipbord=\u5C06SQL\u8BED\u53E5\u590D\u5236\u5230\u526A\u5207\u677F
+sqlpad.setting=\u8BBE\u7F6E
+sqlpad.sqlExceptionHandleMode=\u6267\u884C\u51FA\u9519\u65F6
+sqlpad.sqlExceptionHandleMode.abort=\u7EC8\u6B62
+sqlpad.sqlExceptionHandleMode.rollback=\u56DE\u6EDA
+sqlpad.sqlExceptionHandleMode.ignore=\u5FFD\u7565
+sqlpad.sqlCommitMode=\u63D0\u4EA4\u65B9\u5F0F
+sqlpad.sqlCommitMode.auto=\u81EA\u52A8
+sqlpad.sqlCommitMode.manual=\u624B\u52A8
+sqlpad.overTimeThreashold=\u8D85\u65F6\u8BBE\u7F6E
+sqlpad.overTimeThreashold.unit=\u5206\u949F
+sqlpad.overTimeThreashold.desc=\u6682\u505C\u3001\u7B49\u5F85\u63D0\u4EA4/\u56DE\u6EDA\u7684\u8D85\u65F6\u65F6\u95F4
+sqlpad.overTimeThreashold.validation=\u4EC5\u53EF\u586B\u5199[1-60]
+sqlpad.resultsetFetchSize=\u67E5\u8BE2\u7ED3\u679C\u9875\u5927\u5C0F
+sqlpad.resultsetFetchSize.desc=\u67E5\u8BE2\u7ED3\u679C\u6BCF\u6B21\u52A0\u8F7D\u7684\u8BB0\u5F55\u6570
+sqlpad.resultsetFetchSize.validation=\u4EC5\u53EF\u586B\u5199[1-1000]
+sqlpad.message=\u6D88\u606F
+sqlpad.executionStart=\u5F00\u59CB\u6267\u884C\uFF08SQL\u603B\u8BA1{0}\u6761\uFF09
+sqlpad.executeionFinish=\u5B8C\u6210\u6267\u884C
+sqlpad.clearSqlResultMessage=\u6E05\u9664\u6267\u884C\u65E5\u5FD7
+sqlpad.loadMoreData=\u52A0\u8F7D\u66F4\u591A\u6570\u636E
+sqlpad.refreshSqlResult=\u5237\u65B0\u67E5\u8BE2\u7ED3\u679C
+sqlpad.exportSqlResult=\u5BFC\u51FA\u67E5\u8BE2\u7ED3\u679C
+sqlpad.viewSqlStatement=\u67E5\u770BSQL\u8BED\u53E5
+sqlpad.lockSqlResultTab=\u9501\u5B9A\u6B64\u9009\u9879\u5361
+sqlpad.executionSqlselectionRange=\u8D77\u59CB\u884C\uFF1A{0}\uFF08{1}\uFF09\uFF0C\u7ED3\u675F\u884C\uFF1A{2}\uFF08{3}\uFF09
+sqlpad.keepResult=\u4FDD\u7559\u6267\u884C\u65E5\u5FD7
+sqlpad.executionConnectionException=\u6570\u636E\u6E90\u8FDE\u63A5\u5931\u8D25
+sqlpad.executionSQLException=\u6267\u884C\u8BED\u53E5\u51FA\u9519\uFF1A{0}
+sqlpad.executionSQLPermissionDenied=\u6CA1\u6709\u6267\u884C\u6743\u9650
+sqlpad.executionErrorOccure=\u6267\u884C\u51FA\u9519
+sqlpad.SqlCommand.COMMIT.ok=\u5DF2\u63D0\u4EA4
+sqlpad.SqlCommand.ROLLBACK.ok=\u5DF2\u56DE\u6EDA
+sqlpad.SqlCommand.PAUSE.ok=\u5DF2\u6682\u505C\uFF08{0}\u5206\u949F\u540E\u8D85\u65F6\uFF09
+sqlpad.SqlCommand.RESUME.ok=\u5DF2\u7EE7\u7EED
+sqlpad.SqlCommand.STOP.ok=\u5DF2\u505C\u6B62\u5E76\u56DE\u6EDA
+sqlpad.waitingForCommitOrRollback=\u7B49\u5F85\u63D0\u4EA4\u6216\u8005\u56DE\u6EDA\uFF08{0}\u5206\u949F\u540E\u8D85\u65F6\uFF09
+sqlpad.pauseOverTime=\u6682\u505C\u8D85\u65F6
+sqlpad.waitOverTime=\u7B49\u5F85\u8D85\u65F6
+sqlpad.sqlExecutionStat.quoteLeft=\uFF08
+sqlpad.sqlExecutionStat.quoteRight=\uFF09
+sqlpad.sqlExecutionStat.infoNoDuration=SQL\u603B\u8BA1{0}\u6761\uFF0C\u6210\u529F{1}\u6761\uFF0C\u5931\u8D25{2}\u6761\uFF0C\u672A\u6267\u884C{3}\u6761
+sqlpad.sqlExecutionStat.infoSqlDurationSuffix=\uFF0CSQL\u7528\u65F6{0}
+sqlpad.sqlExecutionStat.infoTaskDurationSuffix=\uFF0C\u4EFB\u52A1\u7528\u65F6{0}
+sqlpad.affectDataRowCount=\u5F71\u54CD\u4E86 {0} \u884C\u6570\u636E
+sqlpad.selectResultWithIndex=\u67E5\u8BE2\u7ED3\u679C-{0}
+sqlpad.viewResult=\u67E5\u770B\u7ED3\u679C
+sqlpad.selectResultExpired=\u67E5\u8BE2\u7ED3\u679C\u5DF2\u8FC7\u671F
+sqlpad.noMoreData=\u6CA1\u6709\u66F4\u591A\u6570\u636E\u4E86
 
 #dataexchange
-dataExchange.dataFormat.dateFormat=日期格式
-dataExchange.dataFormat.timeFormat=时间格式
-dataExchange.dataFormat.timestampFormat=时间戳格式
-dataExchange.dataFormat.numberFormat=数值格式
-dataExchange.dataFormat.binaryFormat=二进制格式
+dataExchange.dataFormat.dateFormat=\u65E5\u671F\u683C\u5F0F
+dataExchange.dataFormat.timeFormat=\u65F6\u95F4\u683C\u5F0F
+dataExchange.dataFormat.timestampFormat=\u65F6\u95F4\u6233\u683C\u5F0F
+dataExchange.dataFormat.numberFormat=\u6570\u503C\u683C\u5F0F
+dataExchange.dataFormat.binaryFormat=\u4E8C\u8FDB\u5236\u683C\u5F0F
 dataExchange.dataFormat.binaryFormat.HEX=Hex
 dataExchange.dataFormat.binaryFormat.Base64=Base64
 dataExchange.dataFormat.binaryFormat.NULL=NULL
-dataExchange.exceptionResolve=出错时
-dataExchange.exceptionResolve.ABORT=提交并终止
-dataExchange.exceptionResolve.IGNORE=忽略并继续
-dataExchange.exceptionResolve.ROLLBACK=回滚并终止
-dataExchange.exchangeProgressPercentWithDuration={0}%({1})
-dataExchange.exchangeStatus.Unstart=未开始
-dataExchange.exchangeStatus.Exception=导入出错:{0}
-dataExchange.exchangeStatus.SubSubmitSuccess=等待执行
-dataExchange.exchangeStatus.SubSubmitFail=提交失败
-dataExchange.exchangeStatus.SubCancelSuccess=已取消
-dataExchange.exchangeStatus.SubExceptionWithCount=异常({0}/{1},{2})
-dataExchange.exchangeStatus.SubExceptionWithCount.ABORT=终止({0}/{1},{2})
-dataExchange.exchangeStatus.SubExceptionWithCount.IGNORE=忽略({0}/{1},{2})
-dataExchange.exchangeStatus.SubExceptionWithCount.ROLLBACK=回滚({0}/{1},{2})
-dataExchange.exchangeStatus.SubExchangingWithCount=进行中({0}/{1})
-dataExchange.exchangeStatus.SubSuccessWithCount=完成({0}/{1},{2})
-dataExchange.viewLog=查看详细日志
-dataExchange.cancelDeniedWithReason=只有未执行的才可以取消
-dataExchange.error.ColumnNotFoundException=表“{0}”中没有“{1}”列
-dataExchange.error.TableMismatchException=表“{0}”中没有任何匹配的列
-dataExchange.error.TableNotFoundException=表“{0}”不存在
-dataExchange.error.ExecuteDataImportSqlException=执行SQL出错:{0}
-dataExchange.error.IllegalImportSourceValueException=“{0}”值不合法
-dataExchange.error.SetImportColumnValueException=“{0}”值不合法
-dataExchange.error.IndexDataExchangeException=执行出错
-dataExchange.error.UnsupportedExchangeException=不支持此类数据交换
-dataExchange.error.CircularDependencyException=[{0}]号条目存在循环依赖
-dataExchange.error.DataExchangeException=数据交换出错:{0}
-dataExchange.error.IllegalJsonDataFormatException=JSON文件格式有误:{0}
+dataExchange.exceptionResolve=\u51FA\u9519\u65F6
+dataExchange.exceptionResolve.ABORT=\u63D0\u4EA4\u5E76\u7EC8\u6B62
+dataExchange.exceptionResolve.IGNORE=\u5FFD\u7565\u5E76\u7EE7\u7EED
+dataExchange.exceptionResolve.ROLLBACK=\u56DE\u6EDA\u5E76\u7EC8\u6B62
+dataExchange.exchangeProgressPercentWithDuration={0}%\uFF08{1}\uFF09
+dataExchange.exchangeStatus.Unstart=\u672A\u5F00\u59CB
+dataExchange.exchangeStatus.Exception=\u5BFC\u5165\u51FA\u9519\uFF1A{0}
+dataExchange.exchangeStatus.SubSubmitSuccess=\u7B49\u5F85\u6267\u884C
+dataExchange.exchangeStatus.SubSubmitFail=\u63D0\u4EA4\u5931\u8D25
+dataExchange.exchangeStatus.SubCancelSuccess=\u5DF2\u53D6\u6D88
+dataExchange.exchangeStatus.SubExceptionWithCount=\u5F02\u5E38\uFF08{0}/{1}\uFF0C{2}\uFF09
+dataExchange.exchangeStatus.SubExceptionWithCount.ABORT=\u7EC8\u6B62\uFF08{0}/{1}\uFF0C{2}\uFF09
+dataExchange.exchangeStatus.SubExceptionWithCount.IGNORE=\u5FFD\u7565\uFF08{0}/{1}\uFF0C{2}\uFF09
+dataExchange.exchangeStatus.SubExceptionWithCount.ROLLBACK=\u56DE\u6EDA\uFF08{0}/{1}\uFF0C{2}\uFF09
+dataExchange.exchangeStatus.SubExchangingWithCount=\u8FDB\u884C\u4E2D\uFF08{0}/{1}\uFF09
+dataExchange.exchangeStatus.SubSuccessWithCount=\u5B8C\u6210\uFF08{0}/{1}\uFF0C{2}\uFF09
+dataExchange.viewLog=\u67E5\u770B\u8BE6\u7EC6\u65E5\u5FD7
+dataExchange.cancelDeniedWithReason=\u53EA\u6709\u672A\u6267\u884C\u7684\u624D\u53EF\u4EE5\u53D6\u6D88
+dataExchange.error.ColumnNotFoundException=\u8868\u201C{0}\u201D\u4E2D\u6CA1\u6709\u201C{1}\u201D\u5217
+dataExchange.error.TableMismatchException=\u8868\u201C{0}\u201D\u4E2D\u6CA1\u6709\u4EFB\u4F55\u5339\u914D\u7684\u5217
+dataExchange.error.TableNotFoundException=\u8868\u201C{0}\u201D\u4E0D\u5B58\u5728
+dataExchange.error.ExecuteDataImportSqlException=\u6267\u884CSQL\u51FA\u9519\uFF1A{0}
+dataExchange.error.IllegalImportSourceValueException=\u201C{0}\u201D\u503C\u4E0D\u5408\u6CD5
+dataExchange.error.SetImportColumnValueException=\u201C{0}\u201D\u503C\u4E0D\u5408\u6CD5
+dataExchange.error.IndexDataExchangeException=\u6267\u884C\u51FA\u9519
+dataExchange.error.UnsupportedExchangeException=\u4E0D\u652F\u6301\u6B64\u7C7B\u6570\u636E\u4EA4\u6362
+dataExchange.error.CircularDependencyException=[{0}]\u53F7\u6761\u76EE\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56
+dataExchange.error.DataExchangeException=\u6570\u636E\u4EA4\u6362\u51FA\u9519\uFF1A{0}
+dataExchange.error.IllegalJsonDataFormatException=JSON\u6587\u4EF6\u683C\u5F0F\u6709\u8BEF\uFF1A{0}
 
-dataImport.dataImport=导入数据
-dataImport.selectDataType=请选择导入数据类型
+dataImport.dataImport=\u5BFC\u5165\u6570\u636E
+dataImport.selectDataType=\u8BF7\u9009\u62E9\u5BFC\u5165\u6570\u636E\u7C7B\u578B
 dataImport.dataType.csv=CSV
-dataImport.dataType.csv.desc=从逗号分隔值文件导入数据
+dataImport.dataType.csv.desc=\u4ECE\u9017\u53F7\u5206\u9694\u503C\u6587\u4EF6\u5BFC\u5165\u6570\u636E
 dataImport.dataType.sql=SQL
-dataImport.dataType.sql.desc=从SQL语句文件导入数据
+dataImport.dataType.sql.desc=\u4ECESQL\u8BED\u53E5\u6587\u4EF6\u5BFC\u5165\u6570\u636E
 dataImport.dataType.json=JSON
-dataImport.dataType.json.desc=从JSON文件导入数据
+dataImport.dataType.json.desc=\u4ECEJSON\u6587\u4EF6\u5BFC\u5165\u6570\u636E
 dataImport.dataType.excel=Excel
-dataImport.dataType.excel.desc=从Excel文件导入数据
-dataImport.dataType.db=数据源
-dataImport.dataType.db.desc=从其他数据源中导入数据
-dataImport.importCsvData=导入CSV数据
-dataImport.importSqlData=导入SQL数据
-dataImport.importJsonData=导入JSON数据
-dataImport.importExcelData=导入Excel数据
-dataImport.setDataFormat=设置
-dataImport.ignoreInexistentColumn=忽略不存在的列
-dataImport.nullForIllegalColumnValue=列值非法时设置为NULL
-dataImport.uploadAndImportData=导入
-dataImport.uploadCsvDataFile=添加CSV数据文件
-dataImport.uploadCsvDataFile.desc=*.csv*.zip
-dataImport.uploadSqlDataFile=添加SQL数据文件
-dataImport.uploadSqlDataFile.desc=*.sql*.zip
-dataImport.uploadJsonDataFile=添加JSON数据文件
-dataImport.uploadJsonDataFile.desc=*.json、*.txt、*.zip
-dataImport.uploadExcelDataFile=添加Excel数据文件
-dataImport.uploadExcelDataFile.desc=*.xlsx、*.xls、*.zip
-dataImport.importFileEncoding=文件编码
-dataImport.importZipFileNameEncoding=压缩包编码
-dataImport.importZipFileNameEncoding.desc=当上传文件是ZIP压缩包时,指定其内部文件名编码,通常是UTF-8、GBK
-dataImport.importFileName=文件名称
-dataImport.importFileSize=文件大小
-dataImport.importTableName=导入表名称
-dataImport.importProgress=导入进度
-dataImport.importStatusWithSuccessFail=导入进度(成功数/失败数)
-dataImport.startImport=开始导入
-dataImport.finishImport=完成导入
-dataImport.number=编号
-dataImport.dependentNumber=前置编号
-dataImport.dependentNumber.none=
-dataImport.dependentNumber.auto=自动
-dataImport.excel.importTableInput.placeholder=工作表名
-dataImport.importFileFormat=导入文件格式
+dataImport.dataType.excel.desc=\u4ECEExcel\u6587\u4EF6\u5BFC\u5165\u6570\u636E
+dataImport.dataType.db=\u6570\u636E\u6E90
+dataImport.dataType.db.desc=\u4ECE\u5176\u4ED6\u6570\u636E\u6E90\u4E2D\u5BFC\u5165\u6570\u636E
+dataImport.importCsvData=\u5BFC\u5165CSV\u6570\u636E
+dataImport.importSqlData=\u5BFC\u5165SQL\u6570\u636E
+dataImport.importJsonData=\u5BFC\u5165JSON\u6570\u636E
+dataImport.importExcelData=\u5BFC\u5165Excel\u6570\u636E
+dataImport.setDataFormat=\u8BBE\u7F6E
+dataImport.ignoreInexistentColumn=\u5FFD\u7565\u4E0D\u5B58\u5728\u7684\u5217
+dataImport.nullForIllegalColumnValue=\u5217\u503C\u975E\u6CD5\u65F6\u8BBE\u7F6E\u4E3ANULL
+dataImport.uploadAndImportData=\u5BFC\u5165
+dataImport.uploadCsvDataFile=\u6DFB\u52A0CSV\u6570\u636E\u6587\u4EF6
+dataImport.uploadCsvDataFile.desc=*.csv\u3001*.zip
+dataImport.uploadSqlDataFile=\u6DFB\u52A0SQL\u6570\u636E\u6587\u4EF6
+dataImport.uploadSqlDataFile.desc=*.sql\u3001*.zip
+dataImport.uploadJsonDataFile=\u6DFB\u52A0JSON\u6570\u636E\u6587\u4EF6
+dataImport.uploadJsonDataFile.desc=*.json\u3001*.txt\u3001*.zip
+dataImport.uploadExcelDataFile=\u6DFB\u52A0Excel\u6570\u636E\u6587\u4EF6
+dataImport.uploadExcelDataFile.desc=*.xlsx\u3001*.xls\u3001*.zip
+dataImport.importFileEncoding=\u6587\u4EF6\u7F16\u7801
+dataImport.importZipFileNameEncoding=\u538B\u7F29\u5305\u7F16\u7801
+dataImport.importZipFileNameEncoding.desc=\u5F53\u4E0A\u4F20\u6587\u4EF6\u662FZIP\u538B\u7F29\u5305\u65F6\uFF0C\u6307\u5B9A\u5176\u5185\u90E8\u6587\u4EF6\u540D\u7F16\u7801\uFF0C\u901A\u5E38\u662FUTF-8\u3001GBK
+dataImport.importFileName=\u6587\u4EF6\u540D\u79F0
+dataImport.importFileSize=\u6587\u4EF6\u5927\u5C0F
+dataImport.importTableName=\u5BFC\u5165\u8868\u540D\u79F0
+dataImport.importProgress=\u5BFC\u5165\u8FDB\u5EA6
+dataImport.importStatusWithSuccessFail=\u5BFC\u5165\u8FDB\u5EA6\uFF08\u6210\u529F\u6570/\u5931\u8D25\u6570\uFF09
+dataImport.startImport=\u5F00\u59CB\u5BFC\u5165
+dataImport.finishImport=\u5B8C\u6210\u5BFC\u5165
+dataImport.number=\u7F16\u53F7
+dataImport.dependentNumber=\u524D\u7F6E\u7F16\u53F7
+dataImport.dependentNumber.none=\u65E0
+dataImport.dependentNumber.auto=\u81EA\u52A8
+dataImport.excel.importTableInput.placeholder=\u5DE5\u4F5C\u8868\u540D
+dataImport.importFileFormat=\u5BFC\u5165\u6587\u4EF6\u683C\u5F0F
 
-dataExport.dataExport=导出数据
-dataExport.selectDataType=请选择导出数据类型
+dataExport.dataExport=\u5BFC\u51FA\u6570\u636E
+dataExport.selectDataType=\u8BF7\u9009\u62E9\u5BFC\u51FA\u6570\u636E\u7C7B\u578B
 dataExport.dataType.csv=CSV
-dataExport.dataType.csv.desc=导出为逗号分隔值数据
+dataExport.dataType.csv.desc=\u5BFC\u51FA\u4E3A\u9017\u53F7\u5206\u9694\u503C\u6570\u636E
 dataExport.dataType.sql=SQL
-dataExport.dataType.sql.desc=导出为SQL Insert语句
+dataExport.dataType.sql.desc=\u5BFC\u51FA\u4E3ASQL Insert\u8BED\u53E5
 dataExport.dataType.json=JSON
-dataExport.dataType.json.desc=导出为JSON格式的数据
+dataExport.dataType.json.desc=\u5BFC\u51FA\u4E3AJSON\u683C\u5F0F\u7684\u6570\u636E
 dataExport.dataType.excel=Excel
-dataExport.dataType.excel.desc=导出为Excel格式的数据
-dataExport.exportCsvData=导出CSV数据
-dataExport.exportSqlData=导出SQL数据
-dataExport.exportJsonData=导出JSON数据
-dataExport.exportExcelData=导出Excel数据
-dataExport.setDataFormat=设置
-dataExport.nullForIllegalColumnValue=列值非法时设置为NULL
-dataExport.selectAndExportData=导出
-dataExport.exportProgress=导出进度
-dataExport.exportFileEncoding=导出文件编码
-dataExport.tableNameOrQueryStatement=表名/查询语句
-dataExport.exportFileName=导出文件名
-dataExport.exportStatusWithSuccessFail=导出进度(成功数/失败数)
-dataExport.addAllTable=添加全部表
-dataExport.startExport=开始导出
-dataExport.finishExport=完成导出
-dataExport.sqlExportTableName=SQL表名
-dataExport.exportCreationSql=导出建表语句
-dataExport.jsonExportTableName=JSON表对象名
-dataExport.exportFileFormat=导出文件格式
-dataExchange.JsonDataFormat.TABLE_OBJECT=表对象
-dataExchange.JsonDataFormat.TABLE_OBJECT.desc=文件格式为:{&quot;table_name&quot; : [{...}, {...}]}
-dataExchange.JsonDataFormat.ROW_ARRAY=行数组
-dataExchange.JsonDataFormat.ROW_ARRAY.desc=文件格式为:[{...}, {...}]
+dataExport.dataType.excel.desc=\u5BFC\u51FA\u4E3AExcel\u683C\u5F0F\u7684\u6570\u636E
+dataExport.exportCsvData=\u5BFC\u51FACSV\u6570\u636E
+dataExport.exportSqlData=\u5BFC\u51FASQL\u6570\u636E
+dataExport.exportJsonData=\u5BFC\u51FAJSON\u6570\u636E
+dataExport.exportExcelData=\u5BFC\u51FAExcel\u6570\u636E
+dataExport.setDataFormat=\u8BBE\u7F6E
+dataExport.nullForIllegalColumnValue=\u5217\u503C\u975E\u6CD5\u65F6\u8BBE\u7F6E\u4E3ANULL
+dataExport.selectAndExportData=\u5BFC\u51FA
+dataExport.exportProgress=\u5BFC\u51FA\u8FDB\u5EA6
+dataExport.exportFileEncoding=\u5BFC\u51FA\u6587\u4EF6\u7F16\u7801
+dataExport.tableNameOrQueryStatement=\u8868\u540D/\u67E5\u8BE2\u8BED\u53E5
+dataExport.exportFileName=\u5BFC\u51FA\u6587\u4EF6\u540D
+dataExport.exportStatusWithSuccessFail=\u5BFC\u51FA\u8FDB\u5EA6\uFF08\u6210\u529F\u6570/\u5931\u8D25\u6570\uFF09
+dataExport.addAllTable=\u6DFB\u52A0\u5168\u90E8\u8868
+dataExport.startExport=\u5F00\u59CB\u5BFC\u51FA
+dataExport.finishExport=\u5B8C\u6210\u5BFC\u51FA
+dataExport.sqlExportTableName=SQL\u8868\u540D
+dataExport.exportCreationSql=\u5BFC\u51FA\u5EFA\u8868\u8BED\u53E5
+dataExport.jsonExportTableName=JSON\u8868\u5BF9\u8C61\u540D
+dataExport.exportFileFormat=\u5BFC\u51FA\u6587\u4EF6\u683C\u5F0F
+dataExchange.JsonDataFormat.TABLE_OBJECT=\u8868\u5BF9\u8C61
+dataExchange.JsonDataFormat.TABLE_OBJECT.desc=\u6587\u4EF6\u683C\u5F0F\u4E3A\uFF1A{&quot;table_name&quot; : [{...}, {...}]}
+dataExchange.JsonDataFormat.ROW_ARRAY=\u884C\u6570\u7EC4
+dataExchange.JsonDataFormat.ROW_ARRAY.desc=\u6587\u4EF6\u683C\u5F0F\u4E3A\uFF1A[{...}, {...}]
 
 #role
-role.addRole=添加角色
-role.editRole=编辑角色
-role.viewRole=查看角色
-role.manageRole=管理角色
-role.selectRole=选择角色
-role.roleEditAuthorization=角色 - 设置权限
+role.addRole=\u6DFB\u52A0\u89D2\u8272
+role.editRole=\u7F16\u8F91\u89D2\u8272
+role.viewRole=\u67E5\u770B\u89D2\u8272
+role.manageRole=\u7BA1\u7406\u89D2\u8272
+role.selectRole=\u9009\u62E9\u89D2\u8272
+role.roleEditAuthorization=\u89D2\u8272 - \u8BBE\u7F6E\u6743\u9650
 role.id=ID
-role.name=名称
-role.description=描述
-role.enabled=是否启用
-role.confirmDelete=确定删除选中的角色吗?
+role.name=\u540D\u79F0
+role.description=\u63CF\u8FF0
+role.enabled=\u662F\u5426\u542F\u7528
+role.confirmDelete=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u89D2\u8272\u5417\uFF1F
 
 #authorization
-authorization.addAuthorization=添加授权
-authorization.editAuthorization=编辑授权
-authorization.viewAuthorization=查看授权
-authorization.manageAuthorization=管理授权
-authorization.resource=授权资源
-authorization.resourceType=授权方式
-authorization.principal=授权主体
-authorization.principalType=授权主体类型
-authorization.permission=权限
-authorization.permission.NONE=
+authorization.addAuthorization=\u6DFB\u52A0\u6388\u6743
+authorization.editAuthorization=\u7F16\u8F91\u6388\u6743
+authorization.viewAuthorization=\u67E5\u770B\u6388\u6743
+authorization.manageAuthorization=\u7BA1\u7406\u6388\u6743
+authorization.resource=\u6388\u6743\u8D44\u6E90
+authorization.resourceType=\u6388\u6743\u65B9\u5F0F
+authorization.principal=\u6388\u6743\u4E3B\u4F53
+authorization.principalType=\u6388\u6743\u4E3B\u4F53\u7C7B\u578B
+authorization.permission=\u6743\u9650
+authorization.permission.NONE=\u65E0
 authorization.permission.NONE.desc=
-authorization.permission.READ=只读
+authorization.permission.READ=\u53EA\u8BFB
 authorization.permission.READ.desc=
-authorization.permission.EDIT=可编辑
+authorization.permission.EDIT=\u53EF\u7F16\u8F91
 authorization.permission.EDIT.desc=
-authorization.permission.DELETE=可删除
+authorization.permission.DELETE=\u53EF\u5220\u9664
 authorization.permission.DELETE.desc=
-authorization.principalType.ROLE=指定角色
-authorization.principalType.USER=指定用户
-authorization.principalType.ANONYMOUS=全部匿名用户
-authorization.principalType.ALL=全部用户
-authorization.enabled=是否启用
-authorization.default.resouceTypeLabel=资源
+authorization.principalType.ROLE=\u6307\u5B9A\u89D2\u8272
+authorization.principalType.USER=\u6307\u5B9A\u7528\u6237
+authorization.principalType.ANONYMOUS=\u5168\u90E8\u533F\u540D\u7528\u6237
+authorization.principalType.ALL=\u5168\u90E8\u7528\u6237
+authorization.enabled=\u662F\u5426\u542F\u7528
+authorization.default.resouceTypeLabel=\u8D44\u6E90
 authorization.default.permission.desc=
-authorization.default.share.addAuthorization=添加分享
-authorization.default.share.editAuthorization=编辑分享
-authorization.default.share.viewAuthorization=查看分享
-authorization.default.share.manageAuthorization=分享
-authorization.default.share.principal=分享目标
-authorization.default.share.principalType=目标类型
+authorization.default.share.addAuthorization=\u6DFB\u52A0\u5206\u4EAB
+authorization.default.share.editAuthorization=\u7F16\u8F91\u5206\u4EAB
+authorization.default.share.viewAuthorization=\u67E5\u770B\u5206\u4EAB
+authorization.default.share.manageAuthorization=\u5206\u4EAB
+authorization.default.share.principal=\u5206\u4EAB\u76EE\u6807
+authorization.default.share.principalType=\u76EE\u6807\u7C7B\u578B
 
 #Data Set
-dataSet.manageDataSet=管理数据集
-dataSet.addDataSet=添加数据集
-dataSet.editDataSet=编辑数据集
-dataSet.viewDataSet=查看数据集
-dataSet.selectDataSet=选择数据集
-dataSet.name=名称
-dataSet.mutableModel=可变模型
-dataSet.mutableModel.desc=可变模型数据集的数据结构是不固定的,返回数据不受【属性】列表限制,预览时也不会自动生成【属性】(仍可手动添加),通常用于需要灵活读取数据的自定义图表
-dataSet.dataSetType=类型
+dataSet.manageDataSet=\u7BA1\u7406\u6570\u636E\u96C6
+dataSet.addDataSet=\u6DFB\u52A0\u6570\u636E\u96C6
+dataSet.editDataSet=\u7F16\u8F91\u6570\u636E\u96C6
+dataSet.viewDataSet=\u67E5\u770B\u6570\u636E\u96C6
+dataSet.selectDataSet=\u9009\u62E9\u6570\u636E\u96C6
+dataSet.name=\u540D\u79F0
+dataSet.mutableModel=\u53EF\u53D8\u6A21\u578B
+dataSet.mutableModel.desc=\u53EF\u53D8\u6A21\u578B\u6570\u636E\u96C6\u7684\u6570\u636E\u7ED3\u6784\u662F\u4E0D\u56FA\u5B9A\u7684\uFF0C\u8FD4\u56DE\u6570\u636E\u4E0D\u53D7\u3010\u5C5E\u6027\u3011\u5217\u8868\u9650\u5236\uFF0C\u9884\u89C8\u65F6\u4E5F\u4E0D\u4F1A\u81EA\u52A8\u751F\u6210\u3010\u5C5E\u6027\u3011\uFF08\u4ECD\u53EF\u624B\u52A8\u6DFB\u52A0\uFF09\uFF0C\u901A\u5E38\u7528\u4E8E\u9700\u8981\u7075\u6D3B\u8BFB\u53D6\u6570\u636E\u7684\u81EA\u5B9A\u4E49\u56FE\u8868
+dataSet.dataSetType=\u7C7B\u578B
 dataSet.dataSetType.SQL=SQL
 dataSet.dataSetType.Excel=Excel
 dataSet.dataSetType.CsvValue=CSV
-dataSet.dataSetType.CsvFile=CSV文件
+dataSet.dataSetType.CsvFile=CSV\u6587\u4EF6
 dataSet.dataSetType.JsonValue=JSON
-dataSet.dataSetType.JsonFile=JSON文件
-dataSet.dataSetType.Http=HTTP接口
-dataSet.dataFormat.dateFormat=日期
-dataSet.dataFormat.timeFormat=时间
-dataSet.dataFormat.timestampFormat=日期时间
-dataSet.dataFormat.numberFormat=数值
-dataSet.setDataSourceFormat=设置数据源格式
-dataSet.setDataSourceFormat.desc=设置从数据源中解析日期、数值类属性值时使用的格式
-dataSet.dataSource=数据源
-dataSet.sql=SQL查询语句
-dataSet.sql.desc=SQL查询语句,支持参数化语法
-dataSet.json=JSON文本
-dataSet.json.desc=JSON对象、JSON对象数组,支持参数化语法
-dataSet.jsonFile=JSON文件
-dataSet.jsonFileEncoding=JSON文件编码
-dataSet.jsonFile.dataJsonPath=JSON数据路径
-dataSet.jsonFile.dataJsonPath.desc=设置读取文件中指定JSON路径的数据而非整个文件,示例:orders、[0].products、data.stores[0].books
-dataSet.excelFile=Excel文件
-dataSet.csv=CSV文本
-dataSet.csv.desc=逗号分隔值(,)文本,支持参数化语法
-dataSet.csvFile=CSV文件
-dataSet.csvFileEncoding=CSV文件编码
-dataSet.excel.sheetIndex=数据Sheet号
-dataSet.excel.sheetIndex.desc=数据所在的Sheet号,第一个为1,依次类推
-dataSet.excel.nameRow=标题行号
-dataSet.excel.nameRow.desc=标题行的行号,将被解析为数据集属性名而非数据
-dataSet.excel.nameRow.none=
-dataSet.excel.nameRow.assign=指定
-dataSet.excel.dataRowExp=数据行范围
-dataSet.excel.dataRowExp.desc=数据行范围(除标题行外),例如:&quot;2, 3-5, 8-&quot;表示第2行、3至5行、大于等于8行,不填表示不限
-dataSet.excel.dataColumnExp=数据列范围
-dataSet.excel.dataColumnExp.desc=数据列范围,例如:&quot;A, B-D, E-&quot;表示第A列、B至D列、大于等于E列,不填表示不限
-dataSet.excel.forceXls=强制为xls格式
-dataSet.csv.nameRow=标题行号
-dataSet.csv.nameRow.desc=标题行的行号,将被解析为数据集属性名而非数据
-dataSet.csv.nameRow.none=
-dataSet.csv.nameRow.assign=指定
-dataSet.http.uri=请求地址
-dataSet.http.uri.desc=HTTP请求地址,示例:http://abc.com/api/data、https://abc.com/api/data,请求地址支持参数化语法
-dataSet.http.headerContent=请求头JSON
-dataSet.http.requestMethod=请求方法
+dataSet.dataSetType.JsonFile=JSON\u6587\u4EF6
+dataSet.dataSetType.Http=HTTP\u63A5\u53E3
+dataSet.dataFormat.dateFormat=\u65E5\u671F
+dataSet.dataFormat.timeFormat=\u65F6\u95F4
+dataSet.dataFormat.timestampFormat=\u65E5\u671F\u65F6\u95F4
+dataSet.dataFormat.numberFormat=\u6570\u503C
+dataSet.setDataSourceFormat=\u8BBE\u7F6E\u6570\u636E\u6E90\u683C\u5F0F
+dataSet.setDataSourceFormat.desc=\u8BBE\u7F6E\u4ECE\u6570\u636E\u6E90\u4E2D\u89E3\u6790\u65E5\u671F\u3001\u6570\u503C\u7C7B\u5C5E\u6027\u503C\u65F6\u4F7F\u7528\u7684\u683C\u5F0F
+dataSet.dataSource=\u6570\u636E\u6E90
+dataSet.sql=SQL\u67E5\u8BE2\u8BED\u53E5
+dataSet.sql.desc=SQL\u67E5\u8BE2\u8BED\u53E5\uFF0C\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.json=JSON\u6587\u672C
+dataSet.json.desc=JSON\u5BF9\u8C61\u3001JSON\u5BF9\u8C61\u6570\u7EC4\uFF0C\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.jsonFile=JSON\u6587\u4EF6
+dataSet.jsonFileEncoding=JSON\u6587\u4EF6\u7F16\u7801
+dataSet.jsonFile.dataJsonPath=JSON\u6570\u636E\u8DEF\u5F84
+dataSet.jsonFile.dataJsonPath.desc=\u8BBE\u7F6E\u8BFB\u53D6\u6587\u4EF6\u4E2D\u6307\u5B9AJSON\u8DEF\u5F84\u7684\u6570\u636E\u800C\u975E\u6574\u4E2A\u6587\u4EF6\uFF0C\u793A\u4F8B\uFF1Aorders\u3001[0].products\u3001data.stores[0].books
+dataSet.excelFile=Excel\u6587\u4EF6
+dataSet.csv=CSV\u6587\u672C
+dataSet.csv.desc=\u9017\u53F7\u5206\u9694\u503C\uFF08,\uFF09\u6587\u672C\uFF0C\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.csvFile=CSV\u6587\u4EF6
+dataSet.csvFileEncoding=CSV\u6587\u4EF6\u7F16\u7801
+dataSet.excel.sheetIndex=\u6570\u636ESheet\u53F7
+dataSet.excel.sheetIndex.desc=\u6570\u636E\u6240\u5728\u7684Sheet\u53F7\uFF0C\u7B2C\u4E00\u4E2A\u4E3A1\uFF0C\u4F9D\u6B21\u7C7B\u63A8
+dataSet.excel.nameRow=\u6807\u9898\u884C\u53F7
+dataSet.excel.nameRow.desc=\u6807\u9898\u884C\u7684\u884C\u53F7\uFF0C\u5C06\u88AB\u89E3\u6790\u4E3A\u6570\u636E\u96C6\u5C5E\u6027\u540D\u800C\u975E\u6570\u636E
+dataSet.excel.nameRow.none=\u65E0
+dataSet.excel.nameRow.assign=\u6307\u5B9A
+dataSet.excel.dataRowExp=\u6570\u636E\u884C\u8303\u56F4
+dataSet.excel.dataRowExp.desc=\u6570\u636E\u884C\u8303\u56F4\uFF08\u9664\u6807\u9898\u884C\u5916\uFF09\uFF0C\u4F8B\u5982\uFF1A&quot;2, 3-5, 8-&quot;\u8868\u793A\u7B2C2\u884C\u30013\u81F35\u884C\u3001\u5927\u4E8E\u7B49\u4E8E8\u884C\uFF0C\u4E0D\u586B\u8868\u793A\u4E0D\u9650
+dataSet.excel.dataColumnExp=\u6570\u636E\u5217\u8303\u56F4
+dataSet.excel.dataColumnExp.desc=\u6570\u636E\u5217\u8303\u56F4\uFF0C\u4F8B\u5982\uFF1A&quot;A, B-D, E-&quot;\u8868\u793A\u7B2CA\u5217\u3001B\u81F3D\u5217\u3001\u5927\u4E8E\u7B49\u4E8EE\u5217\uFF0C\u4E0D\u586B\u8868\u793A\u4E0D\u9650
+dataSet.excel.forceXls=\u5F3A\u5236\u4E3Axls\u683C\u5F0F
+dataSet.csv.nameRow=\u6807\u9898\u884C\u53F7
+dataSet.csv.nameRow.desc=\u6807\u9898\u884C\u7684\u884C\u53F7\uFF0C\u5C06\u88AB\u89E3\u6790\u4E3A\u6570\u636E\u96C6\u5C5E\u6027\u540D\u800C\u975E\u6570\u636E
+dataSet.csv.nameRow.none=\u65E0
+dataSet.csv.nameRow.assign=\u6307\u5B9A
+dataSet.http.uri=\u8BF7\u6C42\u5730\u5740
+dataSet.http.uri.desc=HTTP\u8BF7\u6C42\u5730\u5740\uFF0C\u793A\u4F8B\uFF1Ahttp://abc.com/api/data\u3001https://abc.com/api/data\uFF0C\u8BF7\u6C42\u5730\u5740\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.http.headerContent=\u8BF7\u6C42\u5934JSON
+dataSet.http.requestMethod=\u8BF7\u6C42\u65B9\u6CD5
 dataSet.http.requestMethod.GET=GET
 dataSet.http.requestMethod.POST=POST
 dataSet.http.requestMethod.PUT=PUT
 dataSet.http.requestMethod.PATCH=PATCH
 dataSet.http.requestMethod.DELETE=DELETE
-dataSet.http.requestContentType=请求体类型
-dataSet.http.requestContentType.desc=【名/值参数】的请求体类型为:application/x-www-form-urlencoded,【JSON载荷】的请求体类型为:application/json
-dataSet.http.requestContentType.FORM_URLENCODED=名/值参数
-dataSet.http.requestContentType.JSON=JSON载荷
-dataSet.http.requestContentCharset=请求体编码
-dataSet.http.requestContent=请求体JSON
-dataSet.http.responseContentType=响应体类型
+dataSet.http.requestContentType=\u8BF7\u6C42\u4F53\u7C7B\u578B
+dataSet.http.requestContentType.desc=\u3010\u540D/\u503C\u53C2\u6570\u3011\u7684\u8BF7\u6C42\u4F53\u7C7B\u578B\u4E3A\uFF1Aapplication/x-www-form-urlencoded\uFF0C\u3010JSON\u8F7D\u8377\u3011\u7684\u8BF7\u6C42\u4F53\u7C7B\u578B\u4E3A\uFF1Aapplication/json
+dataSet.http.requestContentType.FORM_URLENCODED=\u540D/\u503C\u53C2\u6570
+dataSet.http.requestContentType.JSON=JSON\u8F7D\u8377
+dataSet.http.requestContentCharset=\u8BF7\u6C42\u4F53\u7F16\u7801
+dataSet.http.requestContent=\u8BF7\u6C42\u4F53JSON
+dataSet.http.responseContentType=\u54CD\u5E94\u4F53\u7C7B\u578B
 dataSet.http.responseContentType.JSON=JSON
-dataSet.http.responseDataJsonPath=响应JSON数据路径
-dataSet.http.responseDataJsonPath.desc=设置读取响应中指定JSON路径的数据而非整个响应,示例:orders、[0].products、data.stores[0].books
-dataSet.http.request=请求
-dataSet.http.request.desc=定义请求体和请求头,对于请求体JSON,当请求体类型为【名/值参数】时,格式应为:[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ],其中name表示参数名,value表示参数值;当请求体类型为【JSON载荷】时,无特殊格式要求。请求头JSON格式应为:[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ],其中name表示请求头名,value表示请求头值。请求体JSON和请求头JSON都支持参数化语法
-dataSet.createUser=创建用户
-dataSet.createTime=创建时间
-dataSet.param=参数
-dataSet.param.desc=定义数据集的输入参数,引用了此数据集的图表在展示时,用户可填写这些参数值,并将被传递给数据集的参数化语句
-dataSet.property=属性
-dataSet.property.desc=定义数据集的数据结构
-dataSet.setParamValue=设置参数值
-dataSet.refreshSqlResult=刷新查询结果
-dataSet.previewButtonTip=预览结果数据(编辑区:Ctrl+Enter)
-dataSet.showResolvedSource=显示参数化语句解析结果
-dataSet.previewResultDataMaxCount=预览返回结果数据的最大条目数
-dataSet.DataCategory.DIMENSION=维度
-dataSet.DataCategory.SCALAR=量度
-dataSet.validation.previewRequired=请先执行预览确保数据正确
-dataSet.validation.excel.dataRowExp.regex=格式错误,示例:2, 3-5, 8-
-dataSet.validation.excel.dataColumnExp.regex=格式错误,示例:A, B-D, E-
-dataSet.auth.resouceTypeLabel=数据集
-dataSet.DataSetParam.name=名称
-dataSet.DataSetParam.type=类型
-dataSet.DataSetParam.required=必填
-dataSet.DataSetParam.desc=描述
-dataSet.DataSetParam.DataType.STRING=字符串
-dataSet.DataSetParam.DataType.BOOLEAN=布尔值
-dataSet.DataSetParam.DataType.NUMBER=数值
-dataSet.DataSetParam.inputType=输入框类型
-dataSet.DataSetParam.inputPayload=输入框配置
-dataSet.DataSetParam.InputType.TEXT=文本框
-dataSet.DataSetParam.InputType.SELECT=下拉框
-dataSet.DataSetParam.InputType.DATE=日期
-dataSet.DataSetParam.InputType.TIME=时间
-dataSet.DataSetParam.InputType.DATETIME=日期时间
-dataSet.DataSetParam.InputType.RADIO=单选框
-dataSet.DataSetParam.InputType.CHECKBOX=复选框
-dataSet.DataSetParam.InputType.TEXTAREA=文本域
-dataSet.noDataSetParamDefined=没有定义参数
-dataSet.DataSetProperty.name=名称
-dataSet.DataSetProperty.type=类型
-dataSet.DataSetProperty.label=展示名称
-dataSet.DataSetProperty.label.desc=数据展示在图表中的系列名称
-dataSet.DataSetProperty.defaultValue=默认值
-dataSet.DataSetProperty.defaultValue.desc=当数据中没有此属性值时,将使用这个默认值
-dataSet.DataSetProperty.DataType.STRING=字符串
-dataSet.DataSetProperty.DataType.NUMBER=数值
-dataSet.DataSetProperty.DataType.BOOLEAN=布尔值
-dataSet.DataSetProperty.DataType.INTEGER=整数
-dataSet.DataSetProperty.DataType.DECIMAL=小数
-dataSet.DataSetProperty.DataType.DATE=日期
-dataSet.DataSetProperty.DataType.TIME=时间
-dataSet.DataSetProperty.DataType.TIMESTAMP=时间戳
-dataSet.DataSetProperty.DataType.UNKNOWN=未知
-dataSet.noDataSetPropertyDefined=没有定义属性
-dataSet.FILE_SOURCE_TYPE_UPLOAD=上传文件
-dataSet.FILE_SOURCE_TYPE_SERVER=服务器端文件
-dataSet.serverDirectory=服务器端目录
-dataSet.serverDirectory.desc=仅可选择管理员授权的目录
-dataSet.fileInDirectory=目录内文件名
-dataSet.dataSetResFileName.desc=支持参数化语法
-dataSet.error.duplicateParamName=数据集参数名不允许重复
-dataSet.error.duplicatePropertyName=数据集属性名不允许重复
+dataSet.http.responseDataJsonPath=\u54CD\u5E94JSON\u6570\u636E\u8DEF\u5F84
+dataSet.http.responseDataJsonPath.desc=\u8BBE\u7F6E\u8BFB\u53D6\u54CD\u5E94\u4E2D\u6307\u5B9AJSON\u8DEF\u5F84\u7684\u6570\u636E\u800C\u975E\u6574\u4E2A\u54CD\u5E94\uFF0C\u793A\u4F8B\uFF1Aorders\u3001[0].products\u3001data.stores[0].books
+dataSet.http.request=\u8BF7\u6C42
+dataSet.http.request.desc=\u5B9A\u4E49\u8BF7\u6C42\u4F53\u548C\u8BF7\u6C42\u5934\uFF0C\u5BF9\u4E8E\u8BF7\u6C42\u4F53JSON\uFF0C\u5F53\u8BF7\u6C42\u4F53\u7C7B\u578B\u4E3A\u3010\u540D/\u503C\u53C2\u6570\u3011\u65F6\uFF0C\u683C\u5F0F\u5E94\u4E3A\uFF1A[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]\uFF0C\u5176\u4E2Dname\u8868\u793A\u53C2\u6570\u540D\uFF0Cvalue\u8868\u793A\u53C2\u6570\u503C\uFF1B\u5F53\u8BF7\u6C42\u4F53\u7C7B\u578B\u4E3A\u3010JSON\u8F7D\u8377\u3011\u65F6\uFF0C\u65E0\u7279\u6B8A\u683C\u5F0F\u8981\u6C42\u3002\u8BF7\u6C42\u5934JSON\u683C\u5F0F\u5E94\u4E3A\uFF1A[ { name: &quot;...&quot;, value: &quot;...&quot; }, ... ]\uFF0C\u5176\u4E2Dname\u8868\u793A\u8BF7\u6C42\u5934\u540D\uFF0Cvalue\u8868\u793A\u8BF7\u6C42\u5934\u503C\u3002\u8BF7\u6C42\u4F53JSON\u548C\u8BF7\u6C42\u5934JSON\u90FD\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.createUser=\u521B\u5EFA\u7528\u6237
+dataSet.createTime=\u521B\u5EFA\u65F6\u95F4
+dataSet.param=\u53C2\u6570
+dataSet.param.desc=\u5B9A\u4E49\u6570\u636E\u96C6\u7684\u8F93\u5165\u53C2\u6570\uFF0C\u5F15\u7528\u4E86\u6B64\u6570\u636E\u96C6\u7684\u56FE\u8868\u5728\u5C55\u793A\u65F6\uFF0C\u7528\u6237\u53EF\u586B\u5199\u8FD9\u4E9B\u53C2\u6570\u503C\uFF0C\u5E76\u5C06\u88AB\u4F20\u9012\u7ED9\u6570\u636E\u96C6\u7684\u53C2\u6570\u5316\u8BED\u53E5
+dataSet.property=\u5C5E\u6027
+dataSet.property.desc=\u5B9A\u4E49\u6570\u636E\u96C6\u7684\u6570\u636E\u7ED3\u6784
+dataSet.setParamValue=\u8BBE\u7F6E\u53C2\u6570\u503C
+dataSet.refreshSqlResult=\u5237\u65B0\u67E5\u8BE2\u7ED3\u679C
+dataSet.previewButtonTip=\u9884\u89C8\u7ED3\u679C\u6570\u636E\uFF08\u7F16\u8F91\u533A\uFF1ACtrl+Enter\uFF09
+dataSet.showResolvedSource=\u663E\u793A\u53C2\u6570\u5316\u8BED\u53E5\u89E3\u6790\u7ED3\u679C
+dataSet.previewResultDataMaxCount=\u9884\u89C8\u8FD4\u56DE\u7ED3\u679C\u6570\u636E\u7684\u6700\u5927\u6761\u76EE\u6570
+dataSet.DataCategory.DIMENSION=\u7EF4\u5EA6
+dataSet.DataCategory.SCALAR=\u91CF\u5EA6
+dataSet.validation.previewRequired=\u8BF7\u5148\u6267\u884C\u9884\u89C8\u786E\u4FDD\u6570\u636E\u6B63\u786E
+dataSet.validation.excel.dataRowExp.regex=\u683C\u5F0F\u9519\u8BEF\uFF0C\u793A\u4F8B\uFF1A2, 3-5, 8-
+dataSet.validation.excel.dataColumnExp.regex=\u683C\u5F0F\u9519\u8BEF\uFF0C\u793A\u4F8B\uFF1AA, B-D, E-
+dataSet.auth.resouceTypeLabel=\u6570\u636E\u96C6
+dataSet.DataSetParam.name=\u540D\u79F0
+dataSet.DataSetParam.type=\u7C7B\u578B
+dataSet.DataSetParam.required=\u5FC5\u586B
+dataSet.DataSetParam.desc=\u63CF\u8FF0
+dataSet.DataSetParam.DataType.STRING=\u5B57\u7B26\u4E32
+dataSet.DataSetParam.DataType.BOOLEAN=\u5E03\u5C14\u503C
+dataSet.DataSetParam.DataType.NUMBER=\u6570\u503C
+dataSet.DataSetParam.inputType=\u8F93\u5165\u6846\u7C7B\u578B
+dataSet.DataSetParam.inputPayload=\u8F93\u5165\u6846\u914D\u7F6E
+dataSet.DataSetParam.InputType.TEXT=\u6587\u672C\u6846
+dataSet.DataSetParam.InputType.SELECT=\u4E0B\u62C9\u6846
+dataSet.DataSetParam.InputType.DATE=\u65E5\u671F
+dataSet.DataSetParam.InputType.TIME=\u65F6\u95F4
+dataSet.DataSetParam.InputType.DATETIME=\u65E5\u671F\u65F6\u95F4
+dataSet.DataSetParam.InputType.RADIO=\u5355\u9009\u6846
+dataSet.DataSetParam.InputType.CHECKBOX=\u590D\u9009\u6846
+dataSet.DataSetParam.InputType.TEXTAREA=\u6587\u672C\u57DF
+dataSet.noDataSetParamDefined=\u6CA1\u6709\u5B9A\u4E49\u53C2\u6570
+dataSet.DataSetProperty.name=\u540D\u79F0
+dataSet.DataSetProperty.type=\u7C7B\u578B
+dataSet.DataSetProperty.label=\u5C55\u793A\u540D\u79F0
+dataSet.DataSetProperty.label.desc=\u6570\u636E\u5C55\u793A\u5728\u56FE\u8868\u4E2D\u7684\u7CFB\u5217\u540D\u79F0
+dataSet.DataSetProperty.defaultValue=\u9ED8\u8BA4\u503C
+dataSet.DataSetProperty.defaultValue.desc=\u5F53\u6570\u636E\u4E2D\u6CA1\u6709\u6B64\u5C5E\u6027\u503C\u65F6\uFF0C\u5C06\u4F7F\u7528\u8FD9\u4E2A\u9ED8\u8BA4\u503C
+dataSet.DataSetProperty.DataType.STRING=\u5B57\u7B26\u4E32
+dataSet.DataSetProperty.DataType.NUMBER=\u6570\u503C
+dataSet.DataSetProperty.DataType.BOOLEAN=\u5E03\u5C14\u503C
+dataSet.DataSetProperty.DataType.INTEGER=\u6574\u6570
+dataSet.DataSetProperty.DataType.DECIMAL=\u5C0F\u6570
+dataSet.DataSetProperty.DataType.DATE=\u65E5\u671F
+dataSet.DataSetProperty.DataType.TIME=\u65F6\u95F4
+dataSet.DataSetProperty.DataType.TIMESTAMP=\u65F6\u95F4\u6233
+dataSet.DataSetProperty.DataType.UNKNOWN=\u672A\u77E5
+dataSet.noDataSetPropertyDefined=\u6CA1\u6709\u5B9A\u4E49\u5C5E\u6027
+dataSet.FILE_SOURCE_TYPE_UPLOAD=\u4E0A\u4F20\u6587\u4EF6
+dataSet.FILE_SOURCE_TYPE_SERVER=\u670D\u52A1\u5668\u7AEF\u6587\u4EF6
+dataSet.serverDirectory=\u670D\u52A1\u5668\u7AEF\u76EE\u5F55
+dataSet.serverDirectory.desc=\u4EC5\u53EF\u9009\u62E9\u7BA1\u7406\u5458\u6388\u6743\u7684\u76EE\u5F55
+dataSet.fileInDirectory=\u76EE\u5F55\u5185\u6587\u4EF6\u540D
+dataSet.dataSetResFileName.desc=\u652F\u6301\u53C2\u6570\u5316\u8BED\u6CD5
+dataSet.error.duplicateParamName=\u6570\u636E\u96C6\u53C2\u6570\u540D\u4E0D\u5141\u8BB8\u91CD\u590D
+dataSet.error.duplicatePropertyName=\u6570\u636E\u96C6\u5C5E\u6027\u540D\u4E0D\u5141\u8BB8\u91CD\u590D
 
 #Chart
-chart.manageChart=管理图表
-chart.addChart=添加图表
-chart.editChart=编辑图表
-chart.viewChart=查看图表
-chart.selectChart=选择图表
-chart.name=名称
-chart.htmlChartPlugin=图表类型
-chart.chartDataSets=数据集
-chart.chartDataSets.desc=设置图表使用的一个或多个数据集,图表将使用它们的数据绘制内容,一个数据集通常对应图表的一个系列
-chart.updateInterval=更新间隔
-chart.updateInterval.desc=设置图表展示时,页面多久自动刷新一次图表数据
-chart.createUser=创建用户
-chart.createTime=创建时间
-chart.addDataSign=添加数据标记
-chart.selectDataSign=选择数据标记
-chart.validation.chartDataSetSign=数据集[{needSignDataSetName}]必须设置数据标记:{needDataSignLabel}
+chart.manageChart=\u7BA1\u7406\u56FE\u8868
+chart.addChart=\u6DFB\u52A0\u56FE\u8868
+chart.editChart=\u7F16\u8F91\u56FE\u8868
+chart.viewChart=\u67E5\u770B\u56FE\u8868
+chart.selectChart=\u9009\u62E9\u56FE\u8868
+chart.name=\u540D\u79F0
+chart.htmlChartPlugin=\u56FE\u8868\u7C7B\u578B
+chart.chartDataSets=\u6570\u636E\u96C6
+chart.chartDataSets.desc=\u8BBE\u7F6E\u56FE\u8868\u4F7F\u7528\u7684\u4E00\u4E2A\u6216\u591A\u4E2A\u6570\u636E\u96C6\uFF0C\u56FE\u8868\u5C06\u4F7F\u7528\u5B83\u4EEC\u7684\u6570\u636E\u7ED8\u5236\u5185\u5BB9\uFF0C\u4E00\u4E2A\u6570\u636E\u96C6\u901A\u5E38\u5BF9\u5E94\u56FE\u8868\u7684\u4E00\u4E2A\u7CFB\u5217
+chart.updateInterval=\u66F4\u65B0\u95F4\u9694
+chart.updateInterval.desc=\u8BBE\u7F6E\u56FE\u8868\u5C55\u793A\u65F6\uFF0C\u9875\u9762\u591A\u4E45\u81EA\u52A8\u5237\u65B0\u4E00\u6B21\u56FE\u8868\u6570\u636E
+chart.createUser=\u521B\u5EFA\u7528\u6237
+chart.createTime=\u521B\u5EFA\u65F6\u95F4
+chart.addDataSign=\u6DFB\u52A0\u6570\u636E\u6807\u8BB0
+chart.selectDataSign=\u9009\u62E9\u6570\u636E\u6807\u8BB0
+chart.validation.chartDataSetSign=\u6570\u636E\u96C6[{needSignDataSetName}]\u5FC5\u987B\u8BBE\u7F6E\u6570\u636E\u6807\u8BB0\uFF1A{needDataSignLabel}
 chart.show.htmlTitleSuffix=\u0020- {0}
-chart.saveAndShow=保存并展示
-chart.show=展示
-chart.updateInterval.none=不更新
-chart.updateInterval.realtime=实时
-chart.updateInterval.interval=间隔
-chart.updateIntervalUnit=毫秒
-chart.updateIntervalWithUnit={0}毫秒
-chart.auth.resouceTypeLabel=图表
-chart.chartDataSet.alias.desc=图表展示时的数据集别名
-chart.chartDataSet.attachment=附件
-chart.chartDataSet.dataSign=标记
-chart.chartDataSet.dataSign.desc=数据集属性的图表数据标记
-chart.chartDataSet.attachment.desc=数据集不用作渲染图表,不需设置数据标记,仅作为图表的附件,通常用于扩展图表功能
-chart.chartDataSet.propertyAlias.desc=图表展示时的数据集属性别名,通常是图例、系列名称
-chart.chartDataSet.propertyOrder=排序
-chart.chartDataSet.propertyOrder.desc=图表展示时数据集属性所表示数据系列的排序数值,越小越靠前,且前置于相同默认排序值的属性
-chart.chartDataSet.paramValue=图表数据集参数
-chart.chartDataSet.paramValue.desc=图表展示时的默认数据集参数值
-chart.chartDataSet.clearParamValueTip=清除数据集参数值,可在图表展示时设置
-chart.resultDataFormat=数据格式
-chart.resultDataFormat.desc=图表展示时,日期类数据的展示格式
-chart.resultDataFormatEnable=是否启用
-chart.resultDataFormatEnable.desc=如果禁用,将清除已设置的格式,恢复为采用系统默认格式
-chart.resultDataFormat.TYPE_NUMBER=数值
-chart.resultDataFormat.TYPE_STRING=字符串
-chart.resultDataFormat.dateType=日期类型
-chart.resultDataFormat.dateFormat=日期格式
-chart.resultDataFormat.dateFormat.desc=当日期类型为[字符串]时的日期格式
-chart.resultDataFormat.timeType=时间类型
-chart.resultDataFormat.timeFormat=时间格式
-chart.resultDataFormat.timeFormat.desc=当时间类型为[字符串]时的时间格式
-chart.resultDataFormat.timestampType=日期时间类型
-chart.resultDataFormat.timestampFormat=日期时间格式
-chart.resultDataFormat.timestampFormat.desc=当日期时间类型为[字符串]时的日期时间格式
+chart.saveAndShow=\u4FDD\u5B58\u5E76\u5C55\u793A
+chart.show=\u5C55\u793A
+chart.updateInterval.none=\u4E0D\u66F4\u65B0
+chart.updateInterval.realtime=\u5B9E\u65F6
+chart.updateInterval.interval=\u95F4\u9694
+chart.updateIntervalUnit=\u6BEB\u79D2
+chart.updateIntervalWithUnit={0}\u6BEB\u79D2
+chart.auth.resouceTypeLabel=\u56FE\u8868
+chart.chartDataSet.alias.desc=\u56FE\u8868\u5C55\u793A\u65F6\u7684\u6570\u636E\u96C6\u522B\u540D
+chart.chartDataSet.attachment=\u9644\u4EF6
+chart.chartDataSet.dataSign=\u6807\u8BB0
+chart.chartDataSet.dataSign.desc=\u6570\u636E\u96C6\u5C5E\u6027\u7684\u56FE\u8868\u6570\u636E\u6807\u8BB0
+chart.chartDataSet.attachment.desc=\u6570\u636E\u96C6\u4E0D\u7528\u4F5C\u6E32\u67D3\u56FE\u8868\uFF0C\u4E0D\u9700\u8BBE\u7F6E\u6570\u636E\u6807\u8BB0\uFF0C\u4EC5\u4F5C\u4E3A\u56FE\u8868\u7684\u9644\u4EF6\uFF0C\u901A\u5E38\u7528\u4E8E\u6269\u5C55\u56FE\u8868\u529F\u80FD
+chart.chartDataSet.propertyAlias.desc=\u56FE\u8868\u5C55\u793A\u65F6\u7684\u6570\u636E\u96C6\u5C5E\u6027\u522B\u540D\uFF0C\u901A\u5E38\u662F\u56FE\u4F8B\u3001\u7CFB\u5217\u540D\u79F0
+chart.chartDataSet.propertyOrder=\u6392\u5E8F
+chart.chartDataSet.propertyOrder.desc=\u56FE\u8868\u5C55\u793A\u65F6\u6570\u636E\u96C6\u5C5E\u6027\u6240\u8868\u793A\u6570\u636E\u7CFB\u5217\u7684\u6392\u5E8F\u6570\u503C\uFF0C\u8D8A\u5C0F\u8D8A\u9760\u524D\uFF0C\u4E14\u524D\u7F6E\u4E8E\u76F8\u540C\u9ED8\u8BA4\u6392\u5E8F\u503C\u7684\u5C5E\u6027
+chart.chartDataSet.paramValue=\u56FE\u8868\u6570\u636E\u96C6\u53C2\u6570
+chart.chartDataSet.paramValue.desc=\u56FE\u8868\u5C55\u793A\u65F6\u7684\u9ED8\u8BA4\u6570\u636E\u96C6\u53C2\u6570\u503C
+chart.chartDataSet.clearParamValueTip=\u6E05\u9664\u6570\u636E\u96C6\u53C2\u6570\u503C\uFF0C\u53EF\u5728\u56FE\u8868\u5C55\u793A\u65F6\u8BBE\u7F6E
+chart.resultDataFormat=\u6570\u636E\u683C\u5F0F
+chart.resultDataFormat.desc=\u56FE\u8868\u5C55\u793A\u65F6\uFF0C\u65E5\u671F\u7C7B\u6570\u636E\u7684\u5C55\u793A\u683C\u5F0F
+chart.resultDataFormatEnable=\u662F\u5426\u542F\u7528
+chart.resultDataFormatEnable.desc=\u5982\u679C\u7981\u7528\uFF0C\u5C06\u6E05\u9664\u5DF2\u8BBE\u7F6E\u7684\u683C\u5F0F\uFF0C\u6062\u590D\u4E3A\u91C7\u7528\u7CFB\u7EDF\u9ED8\u8BA4\u683C\u5F0F
+chart.resultDataFormat.TYPE_NUMBER=\u6570\u503C
+chart.resultDataFormat.TYPE_STRING=\u5B57\u7B26\u4E32
+chart.resultDataFormat.dateType=\u65E5\u671F\u7C7B\u578B
+chart.resultDataFormat.dateFormat=\u65E5\u671F\u683C\u5F0F
+chart.resultDataFormat.dateFormat.desc=\u5F53\u65E5\u671F\u7C7B\u578B\u4E3A[\u5B57\u7B26\u4E32]\u65F6\u7684\u65E5\u671F\u683C\u5F0F
+chart.resultDataFormat.timeType=\u65F6\u95F4\u7C7B\u578B
+chart.resultDataFormat.timeFormat=\u65F6\u95F4\u683C\u5F0F
+chart.resultDataFormat.timeFormat.desc=\u5F53\u65F6\u95F4\u7C7B\u578B\u4E3A[\u5B57\u7B26\u4E32]\u65F6\u7684\u65F6\u95F4\u683C\u5F0F
+chart.resultDataFormat.timestampType=\u65E5\u671F\u65F6\u95F4\u7C7B\u578B
+chart.resultDataFormat.timestampFormat=\u65E5\u671F\u65F6\u95F4\u683C\u5F0F
+chart.resultDataFormat.timestampFormat.desc=\u5F53\u65E5\u671F\u65F6\u95F4\u7C7B\u578B\u4E3A[\u5B57\u7B26\u4E32]\u65F6\u7684\u65E5\u671F\u65F6\u95F4\u683C\u5F0F
 
 #Dashboard
-dashboard.manageDashboard=管理看板
-dashboard.addDashboard=添加看板
-dashboard.editDashboard=编辑看板
-dashboard.viewDashboard=查看看板
-dashboard.selectDashboard=选择看板
-dashboard.importDashboard=导入看板
-dashboard.shareSet=分享设置
-dashboard.name=看板名称
-dashboard.template=模板内容
-dashboard.templateEncoding=HTML模板编码
-dashboard.templateName=模板文件名
-dashboard.createUser=创建用户
-dashboard.createTime=创建时间
-dashboard.show=展示
-dashboard.showAuth=看板访问验证
-dashboard.showAuth.dashboardNameQuoteLeft=
-dashboard.showAuth.dashboardNameQuoteRight=
-dashboard.showAuth.password=访问密码
-dashboard.showAuth.authed=已验证,稍后将自动跳转至<a href="{0}" class="link">看板</a>页面。
-dashboard.showAuth.incorrectPassword=访问密码错误
-dashboard.showAuth.incorrectPasswordWithRemain=访问密码错误,还可尝试{0}次
-dashboard.showAuth.authDenied=访问已锁定,密码错误超出限定次数,请稍后再试
-dashboard.import.selectFile=选择文件
-dashboard.import.desc=文件格式应为:*.html、*.htm,或者是包含*.html、*.htm、*.css、*.js及其他资源文件的ZIP压缩包
-dashboard.import.zipFileNameEncoding=压缩包编码
-dashboard.import.zipFileNameEncoding.desc=当上传文件是ZIP压缩包时,指定其内部文件名编码
-dashboard.import.templateName.desc=导入文件中作为看板模板的文件名,应是*.html、*.htm文件,多个模板以英文逗号(,)分隔
-dashboard.import.validation.importDashboardFileRequired=请选择看板文件
-dashboard.import.templateFileNotExists=导入看板文件中没有找到[{0}]模板文件
-dashboard.import.notice=注意:
-dashboard.import.notice.1=1. 如果导入文件为压缩包,格式应为:*.zip;
-dashboard.import.notice.2=2. 导入看板模板HTML文件内请勿引入内置导入库(参考官网文档【内置看板资源】章节);
-dashboard.import.notice.3=3. 如果上传报错且压缩包内文件名有中文,请修改[压缩包编码](比如GBK)后再上传;
-dashboard.typeChartIdHere=在此输入图表ID
-dashboard.saveAndShow=保存并展示
-dashboard.insertChart=插入图表
-dashboard.chartList=图表列表
+dashboard.manageDashboard=\u7BA1\u7406\u770B\u677F
+dashboard.addDashboard=\u6DFB\u52A0\u770B\u677F
+dashboard.editDashboard=\u7F16\u8F91\u770B\u677F
+dashboard.viewDashboard=\u67E5\u770B\u770B\u677F
+dashboard.selectDashboard=\u9009\u62E9\u770B\u677F
+dashboard.importDashboard=\u5BFC\u5165\u770B\u677F
+dashboard.shareSet=\u5206\u4EAB\u8BBE\u7F6E
+dashboard.name=\u770B\u677F\u540D\u79F0
+dashboard.template=\u6A21\u677F\u5185\u5BB9
+dashboard.templateEncoding=HTML\u6A21\u677F\u7F16\u7801
+dashboard.templateName=\u6A21\u677F\u6587\u4EF6\u540D
+dashboard.createUser=\u521B\u5EFA\u7528\u6237
+dashboard.createTime=\u521B\u5EFA\u65F6\u95F4
+dashboard.show=\u5C55\u793A
+dashboard.showAuth=\u770B\u677F\u8BBF\u95EE\u9A8C\u8BC1
+dashboard.showAuth.dashboardNameQuoteLeft=\u3010
+dashboard.showAuth.dashboardNameQuoteRight=\u3011
+dashboard.showAuth.password=\u8BBF\u95EE\u5BC6\u7801
+dashboard.showAuth.authed=\u5DF2\u9A8C\u8BC1\uFF0C\u7A0D\u540E\u5C06\u81EA\u52A8\u8DF3\u8F6C\u81F3<a href="{0}" class="link">\u770B\u677F</a>\u9875\u9762\u3002
+dashboard.showAuth.incorrectPassword=\u8BBF\u95EE\u5BC6\u7801\u9519\u8BEF
+dashboard.showAuth.incorrectPasswordWithRemain=\u8BBF\u95EE\u5BC6\u7801\u9519\u8BEF\uFF0C\u8FD8\u53EF\u5C1D\u8BD5{0}\u6B21
+dashboard.showAuth.authDenied=\u8BBF\u95EE\u5DF2\u9501\u5B9A\uFF0C\u5BC6\u7801\u9519\u8BEF\u8D85\u51FA\u9650\u5B9A\u6B21\u6570\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5
+dashboard.import.selectFile=\u9009\u62E9\u6587\u4EF6
+dashboard.import.desc=\u6587\u4EF6\u683C\u5F0F\u5E94\u4E3A\uFF1A*.html\u3001*.htm\uFF0C\u6216\u8005\u662F\u5305\u542B*.html\u3001*.htm\u3001*.css\u3001*.js\u53CA\u5176\u4ED6\u8D44\u6E90\u6587\u4EF6\u7684ZIP\u538B\u7F29\u5305
+dashboard.import.zipFileNameEncoding=\u538B\u7F29\u5305\u7F16\u7801
+dashboard.import.zipFileNameEncoding.desc=\u5F53\u4E0A\u4F20\u6587\u4EF6\u662FZIP\u538B\u7F29\u5305\u65F6\uFF0C\u6307\u5B9A\u5176\u5185\u90E8\u6587\u4EF6\u540D\u7F16\u7801
+dashboard.import.templateName.desc=\u5BFC\u5165\u6587\u4EF6\u4E2D\u4F5C\u4E3A\u770B\u677F\u6A21\u677F\u7684\u6587\u4EF6\u540D\uFF0C\u5E94\u662F*.html\u3001*.htm\u6587\u4EF6\uFF0C\u591A\u4E2A\u6A21\u677F\u4EE5\u82F1\u6587\u9017\u53F7(,)\u5206\u9694
+dashboard.import.validation.importDashboardFileRequired=\u8BF7\u9009\u62E9\u770B\u677F\u6587\u4EF6
+dashboard.import.templateFileNotExists=\u5BFC\u5165\u770B\u677F\u6587\u4EF6\u4E2D\u6CA1\u6709\u627E\u5230[{0}]\u6A21\u677F\u6587\u4EF6
+dashboard.import.notice=\u6CE8\u610F\uFF1A
+dashboard.import.notice.1=1. \u5982\u679C\u5BFC\u5165\u6587\u4EF6\u4E3A\u538B\u7F29\u5305\uFF0C\u683C\u5F0F\u5E94\u4E3A\uFF1A*.zip\uFF1B
+dashboard.import.notice.2=2. \u5BFC\u5165\u770B\u677F\u6A21\u677FHTML\u6587\u4EF6\u5185\u8BF7\u52FF\u5F15\u5165\u5185\u7F6E\u5BFC\u5165\u5E93\uFF08\u53C2\u8003\u5B98\u7F51\u6587\u6863\u3010\u5185\u7F6E\u770B\u677F\u8D44\u6E90\u3011\u7AE0\u8282\uFF09\uFF1B
+dashboard.import.notice.3=3. \u5982\u679C\u4E0A\u4F20\u62A5\u9519\u4E14\u538B\u7F29\u5305\u5185\u6587\u4EF6\u540D\u6709\u4E2D\u6587\uFF0C\u8BF7\u4FEE\u6539[\u538B\u7F29\u5305\u7F16\u7801]\uFF08\u6BD4\u5982GBK\uFF09\u540E\u518D\u4E0A\u4F20\uFF1B
+dashboard.typeChartIdHere=\u5728\u6B64\u8F93\u5165\u56FE\u8868ID
+dashboard.saveAndShow=\u4FDD\u5B58\u5E76\u5C55\u793A
+dashboard.insertChart=\u63D2\u5165\u56FE\u8868
+dashboard.chartList=\u56FE\u8868\u5217\u8868
 dashboard.show.htmlTitleSuffix=\u0020- {0}
 dashboard.show.htmlTitleSuffixForEmpty={0} - {1}
-dashboard.dashboardResource=看板资源
-dashboard.confirmDeleteSelectedResource=确认删除选中的看板资源吗?
-dashboard.pleaseSaveDashboardFirst=请先保存看板
-dashboard.illegalSaveAddResourceName=非法资源名!
-dashboard.copyResourceNameToClipboard=复制资源名到剪切板
-dashboard.localResource=本地资源
-dashboard.globalResource=全局资源
-dashboard.addResource=新建资源
-dashboard.addResource.desc=新建HTML、CSS、JS等文本类资源
-dashboard.addResource.name=资源名称
-dashboard.addResource.name.desc=例如:index.html、style.css、script.js、res/style.css
-dashboard.editResource=编辑资源
-dashboard.editResource.desc=编辑HTML、CSS、JS等文本类资源
-dashboard.uploadResource=上传资源
-dashboard.uploadResource.select=选择文件
-dashboard.uploadResource.savePath=存储路径
-dashboard.uploadResource.savePath.desc=例如:bg.png、images/bg.png
-dashboard.deleteResource=删除资源
-dashboard.viewResource=浏览资源
-dashboard.refreshResource=刷新资源列表
-dashboard.resourceAsTemplate=将普通资源设置为看板模板
-dashboard.asFirstTemplate=将看板模板设置为主页模板
-dashboard.templateAsNormalResource=将看板模板设置为普通资源
-dashboard.dashboardTemplateResource=看板模板资源
-dashboard.editResUnsupport=不支持编辑此资源(仅支持*.html、*.htm、*.css、*.js等文本类资源)
-dashboard.resAsTemplateUnsupport=仅*.html、*.htm资源可设置为看板模板
-dashboard.atLeastOneTemplateRequired=看板需要至少一个模板资源(*.html、*.htm)
-dashboard.templateEditor.autoComplete.dg-chart-widget=图表部件
-dashboard.templateEditor.autoComplete.dg-chart-map=图表地图
-dashboard.templateEditor.autoComplete.dg-chart-options=图表设置项
-dashboard.templateEditor.autoComplete.dg-chart-renderer=图表渲染器
-dashboard.templateEditor.autoComplete.dg-chart-theme=图表主题
-dashboard.templateEditor.autoComplete.dg-chart-map-urls=图表地图URL
-dashboard.templateEditor.autoComplete.dg-echarts-theme=echarts主题
-dashboard.templateEditor.autoComplete.dg-dashboard-listener=看板监听器
-dashboard.templateEditor.autoComplete.dg-dashboard-var=看板变量
-dashboard.templateEditor.autoComplete.dg-chart-disable-setting=禁用交互设置
-dashboard.templateEditor.autoComplete.dg-chart-listener=图表监听器
-dashboard.templateEditor.autoComplete.dg-chart-on-=图表事件处理
-dashboard.templateEditor.autoComplete.dg-chart-link=图表联动
-dashboard.templateEditor.autoComplete.dg-chart-auto-resize=图表自动调整大小
-dashboard.templateEditor.autoComplete.dg-dashboard-form=看板表单
-dashboard.templateEditor.autoComplete.dg-chart-update-group=图表更新分组
-dashboard.auth.resouceTypeLabel=看板
-dashboard.switchToCodeEditor=源码模式
-dashboard.switchToVisualEditor=可视模式
-dashboard.opt.quickOpt=快捷执行
-dashboard.opt.select.next=下一个元素
-dashboard.opt.select.prev=上一个元素
-dashboard.opt.select.firstChild=子元素
-dashboard.opt.select.parent=父元素
-dashboard.opt.select.deselect=取消选择
-dashboard.opt.insert.after=外部后置插入
-dashboard.opt.insert.before=外部前置插入
-dashboard.opt.insert.append=内部后置插入
-dashboard.opt.insert.prepend=内部前置插入
-dashboard.opt.insert.bindOrReplaceChart=绑定/替换图表
-dashboard.opt.insertType.div=div块元素
-dashboard.opt.insertType.image=图片
-dashboard.opt.insertType.hyperlink=超链接
-dashboard.opt.insertType.video=视频
-dashboard.opt.insertType.chart=图表
-dashboard.opt.insertType.gridLayout=网格布局
-dashboard.opt.insertType.label=文本标签
-dashboard.opt.edit.style=样式
-dashboard.opt.edit.content=文本内容
-dashboard.opt.edit.eleAttr=元素属性
-dashboard.opt.edit.eleAttr.eleRequired=请选择要编辑的文本标签、图片、超链接、视频元素
-dashboard.opt.edit.globalStyle=全局样式
-dashboard.opt.edit.chartTheme=图表主题
-dashboard.opt.edit.globalChartTheme=全局图表主题
-dashboard.opt.edit.chartOptions=图表选项
-dashboard.opt.edit.globalChartOptions=全局图表选项
-dashboard.opt.delete.element=删除元素
-dashboard.opt.delete.element.confirm=确定删除元素吗?
-dashboard.opt.delete.unbindChart=解绑图表
-dashboard.opt.delete.unbindChart.confirm=确定解绑图表吗?
-dashboard.opt.more=更多
-dashboard.opt.dashboardSize=看板尺寸
-dashboard.opt.eleBoundary=元素边线
-dashboard.opt.tip.insertInsideChartOnChartEleDenied=图表元素内不允许再插入图表元素
-dashboard.opt.tip.selectElementForSetChart=请选择要绑定/替换的图表元素
-dashboard.opt.tip.canOnlyEditTextElement=仅可编辑纯文本元素
-dashboard.opt.tip.selectedElementRequired=请选择要操作的元素
-dashboard.opt.tip.selectedNotChartElement=选定元素不是图表元素
-dashboard.opt.tip.noSelectableNextElement=没有可选择的下一个元素
-dashboard.opt.tip.noSelectablePrevElement=没有可选择的上一个元素
-dashboard.opt.tip.noSelectableChildElement=没有可选择的子元素
-dashboard.opt.tip.noSelectableParentElement=没有可选择的父元素
-dashboard.opt.tip.imgEleRequired=不是图片元素
-dashboard.opt.tip.hyperlinkEleRequired=不是超链接元素
-dashboard.opt.tip.videoEleRequired=不是视频元素
-dashboard.opt.tip.labelEleRequired=不是文本标签元素
-dashboard.veditor.content=文本内容
-dashboard.veditor.content.content=文本内容
-dashboard.veditor.style=样式
-dashboard.veditor.globalStyle=全局样式
-dashboard.veditor.styleCategory.color=颜色
-dashboard.veditor.styleCategory.size=尺寸
-dashboard.veditor.styleCategory.font=字体
-dashboard.veditor.styleSubType.bgImage=背景图片
-dashboard.veditor.styleSubType.border=边框
-dashboard.veditor.styleSubType.display=显示
-dashboard.veditor.styleSubType.position=定位
-dashboard.veditor.styleSubType.flexContainer=弹性容器
-dashboard.veditor.styleSubType.flexContainer.desc=当显示方式是弹性、行内弹性时的元素布局设置
-dashboard.veditor.styleSubType.flexItem=弹性条目
-dashboard.veditor.styleSubType.flexItem.desc=当父元素的显示方式是弹性、行内弹性时的元素布局设置
-dashboard.veditor.styleSubType.gridContainer=网格容器
-dashboard.veditor.styleSubType.gridContainer.desc=当显示方式是网格、行内网格时的元素布局设置
-dashboard.veditor.styleSubType.gridItem=网格条目
-dashboard.veditor.styleSubType.gridItem.desc=当父元素的显示方式是网格、行内网格时的元素布局设置
-dashboard.veditor.style.color=前景色
-dashboard.veditor.style.color.desc=示例:red、green、#FF0000
-dashboard.veditor.style.bgColor=背景色
-dashboard.veditor.style.bgColor.desc=示例:red、green、#FF0000
-dashboard.veditor.style.bgImage=图片URL
-dashboard.veditor.style.bgImage.desc=示例:image/bg.png
-dashboard.veditor.style.bgPosition=背景位置
-dashboard.veditor.style.bgPosition.center=居中
-dashboard.veditor.style.bgPosition.leftTop=左上
-dashboard.veditor.style.bgPosition.rightTop=右上
-dashboard.veditor.style.bgPosition.leftBottom=左下
-dashboard.veditor.style.bgPosition.rightBottom=右下
-dashboard.veditor.style.bgSize=背景尺寸
-dashboard.veditor.style.bgSize.fill=填满
-dashboard.veditor.style.bgSize.fill-x=横向填满
-dashboard.veditor.style.bgSize.fill-y=竖向填满
-dashboard.veditor.style.bgSize.oirgin=不变
-dashboard.veditor.style.bgRepeat=背景重复
-dashboard.veditor.style.bgRepeat.no-repeat=不重复
-dashboard.veditor.style.bgRepeat.repeat=重复
-dashboard.veditor.style.bgRepeat.repeat-x=横向重复
-dashboard.veditor.style.bgRepeat.repeat-y=竖向重复
-dashboard.veditor.style.borderWidth=边框宽度
-dashboard.veditor.style.borderWidth.desc=示例:1px、1px 2px、1px 2px 3px 4px
+dashboard.dashboardResource=\u770B\u677F\u8D44\u6E90
+dashboard.confirmDeleteSelectedResource=\u786E\u8BA4\u5220\u9664\u9009\u4E2D\u7684\u770B\u677F\u8D44\u6E90\u5417\uFF1F
+dashboard.pleaseSaveDashboardFirst=\u8BF7\u5148\u4FDD\u5B58\u770B\u677F
+dashboard.illegalSaveAddResourceName=\u975E\u6CD5\u8D44\u6E90\u540D\uFF01
+dashboard.copyResourceNameToClipboard=\u590D\u5236\u8D44\u6E90\u540D\u5230\u526A\u5207\u677F
+dashboard.localResource=\u672C\u5730\u8D44\u6E90
+dashboard.globalResource=\u5168\u5C40\u8D44\u6E90
+dashboard.addResource=\u65B0\u5EFA\u8D44\u6E90
+dashboard.addResource.desc=\u65B0\u5EFAHTML\u3001CSS\u3001JS\u7B49\u6587\u672C\u7C7B\u8D44\u6E90
+dashboard.addResource.name=\u8D44\u6E90\u540D\u79F0
+dashboard.addResource.name.desc=\u4F8B\u5982\uFF1Aindex.html\u3001style.css\u3001script.js\u3001res/style.css
+dashboard.editResource=\u7F16\u8F91\u8D44\u6E90
+dashboard.editResource.desc=\u7F16\u8F91HTML\u3001CSS\u3001JS\u7B49\u6587\u672C\u7C7B\u8D44\u6E90
+dashboard.uploadResource=\u4E0A\u4F20\u8D44\u6E90
+dashboard.uploadResource.select=\u9009\u62E9\u6587\u4EF6
+dashboard.uploadResource.savePath=\u5B58\u50A8\u8DEF\u5F84
+dashboard.uploadResource.savePath.desc=\u4F8B\u5982\uFF1Abg.png\u3001images/bg.png
+dashboard.deleteResource=\u5220\u9664\u8D44\u6E90
+dashboard.viewResource=\u6D4F\u89C8\u8D44\u6E90
+dashboard.refreshResource=\u5237\u65B0\u8D44\u6E90\u5217\u8868
+dashboard.resourceAsTemplate=\u5C06\u666E\u901A\u8D44\u6E90\u8BBE\u7F6E\u4E3A\u770B\u677F\u6A21\u677F
+dashboard.asFirstTemplate=\u5C06\u770B\u677F\u6A21\u677F\u8BBE\u7F6E\u4E3A\u4E3B\u9875\u6A21\u677F
+dashboard.templateAsNormalResource=\u5C06\u770B\u677F\u6A21\u677F\u8BBE\u7F6E\u4E3A\u666E\u901A\u8D44\u6E90
+dashboard.dashboardTemplateResource=\u770B\u677F\u6A21\u677F\u8D44\u6E90
+dashboard.editResUnsupport=\u4E0D\u652F\u6301\u7F16\u8F91\u6B64\u8D44\u6E90\uFF08\u4EC5\u652F\u6301*.html\u3001*.htm\u3001*.css\u3001*.js\u7B49\u6587\u672C\u7C7B\u8D44\u6E90\uFF09
+dashboard.resAsTemplateUnsupport=\u4EC5*.html\u3001*.htm\u8D44\u6E90\u53EF\u8BBE\u7F6E\u4E3A\u770B\u677F\u6A21\u677F
+dashboard.atLeastOneTemplateRequired=\u770B\u677F\u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u6A21\u677F\u8D44\u6E90\uFF08*.html\u3001*.htm\uFF09
+dashboard.templateEditor.autoComplete.dg-chart-widget=\u56FE\u8868\u90E8\u4EF6
+dashboard.templateEditor.autoComplete.dg-chart-map=\u56FE\u8868\u5730\u56FE
+dashboard.templateEditor.autoComplete.dg-chart-options=\u56FE\u8868\u8BBE\u7F6E\u9879
+dashboard.templateEditor.autoComplete.dg-chart-renderer=\u56FE\u8868\u6E32\u67D3\u5668
+dashboard.templateEditor.autoComplete.dg-chart-theme=\u56FE\u8868\u4E3B\u9898
+dashboard.templateEditor.autoComplete.dg-chart-map-urls=\u56FE\u8868\u5730\u56FEURL
+dashboard.templateEditor.autoComplete.dg-echarts-theme=echarts\u4E3B\u9898
+dashboard.templateEditor.autoComplete.dg-dashboard-listener=\u770B\u677F\u76D1\u542C\u5668
+dashboard.templateEditor.autoComplete.dg-dashboard-var=\u770B\u677F\u53D8\u91CF
+dashboard.templateEditor.autoComplete.dg-chart-disable-setting=\u7981\u7528\u4EA4\u4E92\u8BBE\u7F6E
+dashboard.templateEditor.autoComplete.dg-chart-listener=\u56FE\u8868\u76D1\u542C\u5668
+dashboard.templateEditor.autoComplete.dg-chart-on-=\u56FE\u8868\u4E8B\u4EF6\u5904\u7406
+dashboard.templateEditor.autoComplete.dg-chart-link=\u56FE\u8868\u8054\u52A8
+dashboard.templateEditor.autoComplete.dg-chart-auto-resize=\u56FE\u8868\u81EA\u52A8\u8C03\u6574\u5927\u5C0F
+dashboard.templateEditor.autoComplete.dg-dashboard-form=\u770B\u677F\u8868\u5355
+dashboard.templateEditor.autoComplete.dg-chart-update-group=\u56FE\u8868\u66F4\u65B0\u5206\u7EC4
+dashboard.auth.resouceTypeLabel=\u770B\u677F
+dashboard.switchToCodeEditor=\u6E90\u7801\u6A21\u5F0F
+dashboard.switchToVisualEditor=\u53EF\u89C6\u6A21\u5F0F
+dashboard.opt.quickOpt=\u5FEB\u6377\u6267\u884C
+dashboard.opt.select.next=\u4E0B\u4E00\u4E2A\u5143\u7D20
+dashboard.opt.select.prev=\u4E0A\u4E00\u4E2A\u5143\u7D20
+dashboard.opt.select.firstChild=\u5B50\u5143\u7D20
+dashboard.opt.select.parent=\u7236\u5143\u7D20
+dashboard.opt.select.deselect=\u53D6\u6D88\u9009\u62E9
+dashboard.opt.insert.after=\u5916\u90E8\u540E\u7F6E\u63D2\u5165
+dashboard.opt.insert.before=\u5916\u90E8\u524D\u7F6E\u63D2\u5165
+dashboard.opt.insert.append=\u5185\u90E8\u540E\u7F6E\u63D2\u5165
+dashboard.opt.insert.prepend=\u5185\u90E8\u524D\u7F6E\u63D2\u5165
+dashboard.opt.insert.bindOrReplaceChart=\u7ED1\u5B9A/\u66FF\u6362\u56FE\u8868
+dashboard.opt.insertType.div=div\u5757\u5143\u7D20
+dashboard.opt.insertType.image=\u56FE\u7247
+dashboard.opt.insertType.hyperlink=\u8D85\u94FE\u63A5
+dashboard.opt.insertType.video=\u89C6\u9891
+dashboard.opt.insertType.chart=\u56FE\u8868
+dashboard.opt.insertType.gridLayout=\u7F51\u683C\u5E03\u5C40
+dashboard.opt.insertType.label=\u6587\u672C\u6807\u7B7E
+dashboard.opt.edit.style=\u6837\u5F0F
+dashboard.opt.edit.content=\u6587\u672C\u5185\u5BB9
+dashboard.opt.edit.eleAttr=\u5143\u7D20\u5C5E\u6027
+dashboard.opt.edit.eleAttr.eleRequired=\u8BF7\u9009\u62E9\u8981\u7F16\u8F91\u7684\u6587\u672C\u6807\u7B7E\u3001\u56FE\u7247\u3001\u8D85\u94FE\u63A5\u3001\u89C6\u9891\u5143\u7D20
+dashboard.opt.edit.globalStyle=\u5168\u5C40\u6837\u5F0F
+dashboard.opt.edit.chartTheme=\u56FE\u8868\u4E3B\u9898
+dashboard.opt.edit.globalChartTheme=\u5168\u5C40\u56FE\u8868\u4E3B\u9898
+dashboard.opt.edit.chartOptions=\u56FE\u8868\u9009\u9879
+dashboard.opt.edit.globalChartOptions=\u5168\u5C40\u56FE\u8868\u9009\u9879
+dashboard.opt.delete.element=\u5220\u9664\u5143\u7D20
+dashboard.opt.delete.element.confirm=\u786E\u5B9A\u5220\u9664\u5143\u7D20\u5417\uFF1F
+dashboard.opt.delete.unbindChart=\u89E3\u7ED1\u56FE\u8868
+dashboard.opt.delete.unbindChart.confirm=\u786E\u5B9A\u89E3\u7ED1\u56FE\u8868\u5417\uFF1F
+dashboard.opt.more=\u66F4\u591A
+dashboard.opt.dashboardSize=\u770B\u677F\u5C3A\u5BF8
+dashboard.opt.eleBoundary=\u5143\u7D20\u8FB9\u7EBF
+dashboard.opt.tip.insertInsideChartOnChartEleDenied=\u56FE\u8868\u5143\u7D20\u5185\u4E0D\u5141\u8BB8\u518D\u63D2\u5165\u56FE\u8868\u5143\u7D20
+dashboard.opt.tip.selectElementForSetChart=\u8BF7\u9009\u62E9\u8981\u7ED1\u5B9A/\u66FF\u6362\u7684\u56FE\u8868\u5143\u7D20
+dashboard.opt.tip.canOnlyEditTextElement=\u4EC5\u53EF\u7F16\u8F91\u7EAF\u6587\u672C\u5143\u7D20
+dashboard.opt.tip.selectedElementRequired=\u8BF7\u9009\u62E9\u8981\u64CD\u4F5C\u7684\u5143\u7D20
+dashboard.opt.tip.selectedNotChartElement=\u9009\u5B9A\u5143\u7D20\u4E0D\u662F\u56FE\u8868\u5143\u7D20
+dashboard.opt.tip.noSelectableNextElement=\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u4E0B\u4E00\u4E2A\u5143\u7D20
+dashboard.opt.tip.noSelectablePrevElement=\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u4E0A\u4E00\u4E2A\u5143\u7D20
+dashboard.opt.tip.noSelectableChildElement=\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u5B50\u5143\u7D20
+dashboard.opt.tip.noSelectableParentElement=\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u7236\u5143\u7D20
+dashboard.opt.tip.imgEleRequired=\u4E0D\u662F\u56FE\u7247\u5143\u7D20
+dashboard.opt.tip.hyperlinkEleRequired=\u4E0D\u662F\u8D85\u94FE\u63A5\u5143\u7D20
+dashboard.opt.tip.videoEleRequired=\u4E0D\u662F\u89C6\u9891\u5143\u7D20
+dashboard.opt.tip.labelEleRequired=\u4E0D\u662F\u6587\u672C\u6807\u7B7E\u5143\u7D20
+dashboard.veditor.content=\u6587\u672C\u5185\u5BB9
+dashboard.veditor.content.content=\u6587\u672C\u5185\u5BB9
+dashboard.veditor.style=\u6837\u5F0F
+dashboard.veditor.globalStyle=\u5168\u5C40\u6837\u5F0F
+dashboard.veditor.styleCategory.color=\u989C\u8272
+dashboard.veditor.styleCategory.size=\u5C3A\u5BF8
+dashboard.veditor.styleCategory.font=\u5B57\u4F53
+dashboard.veditor.styleSubType.bgImage=\u80CC\u666F\u56FE\u7247
+dashboard.veditor.styleSubType.border=\u8FB9\u6846
+dashboard.veditor.styleSubType.display=\u663E\u793A
+dashboard.veditor.styleSubType.position=\u5B9A\u4F4D
+dashboard.veditor.styleSubType.flexContainer=\u5F39\u6027\u5BB9\u5668
+dashboard.veditor.styleSubType.flexContainer.desc=\u5F53\u663E\u793A\u65B9\u5F0F\u662F\u5F39\u6027\u3001\u884C\u5185\u5F39\u6027\u65F6\u7684\u5143\u7D20\u5E03\u5C40\u8BBE\u7F6E
+dashboard.veditor.styleSubType.flexItem=\u5F39\u6027\u6761\u76EE
+dashboard.veditor.styleSubType.flexItem.desc=\u5F53\u7236\u5143\u7D20\u7684\u663E\u793A\u65B9\u5F0F\u662F\u5F39\u6027\u3001\u884C\u5185\u5F39\u6027\u65F6\u7684\u5143\u7D20\u5E03\u5C40\u8BBE\u7F6E
+dashboard.veditor.styleSubType.gridContainer=\u7F51\u683C\u5BB9\u5668
+dashboard.veditor.styleSubType.gridContainer.desc=\u5F53\u663E\u793A\u65B9\u5F0F\u662F\u7F51\u683C\u3001\u884C\u5185\u7F51\u683C\u65F6\u7684\u5143\u7D20\u5E03\u5C40\u8BBE\u7F6E
+dashboard.veditor.styleSubType.gridItem=\u7F51\u683C\u6761\u76EE
+dashboard.veditor.styleSubType.gridItem.desc=\u5F53\u7236\u5143\u7D20\u7684\u663E\u793A\u65B9\u5F0F\u662F\u7F51\u683C\u3001\u884C\u5185\u7F51\u683C\u65F6\u7684\u5143\u7D20\u5E03\u5C40\u8BBE\u7F6E
+dashboard.veditor.style.color=\u524D\u666F\u8272
+dashboard.veditor.style.color.desc=\u793A\u4F8B\uFF1Ared\u3001green\u3001#FF0000
+dashboard.veditor.style.bgColor=\u80CC\u666F\u8272
+dashboard.veditor.style.bgColor.desc=\u793A\u4F8B\uFF1Ared\u3001green\u3001#FF0000
+dashboard.veditor.style.bgImage=\u56FE\u7247URL
+dashboard.veditor.style.bgImage.desc=\u793A\u4F8B\uFF1Aimage/bg.png
+dashboard.veditor.style.bgPosition=\u80CC\u666F\u4F4D\u7F6E
+dashboard.veditor.style.bgPosition.center=\u5C45\u4E2D
+dashboard.veditor.style.bgPosition.leftTop=\u5DE6\u4E0A
+dashboard.veditor.style.bgPosition.rightTop=\u53F3\u4E0A
+dashboard.veditor.style.bgPosition.leftBottom=\u5DE6\u4E0B
+dashboard.veditor.style.bgPosition.rightBottom=\u53F3\u4E0B
+dashboard.veditor.style.bgSize=\u80CC\u666F\u5C3A\u5BF8
+dashboard.veditor.style.bgSize.fill=\u586B\u6EE1
+dashboard.veditor.style.bgSize.fill-x=\u6A2A\u5411\u586B\u6EE1
+dashboard.veditor.style.bgSize.fill-y=\u7AD6\u5411\u586B\u6EE1
+dashboard.veditor.style.bgSize.oirgin=\u4E0D\u53D8
+dashboard.veditor.style.bgRepeat=\u80CC\u666F\u91CD\u590D
+dashboard.veditor.style.bgRepeat.no-repeat=\u4E0D\u91CD\u590D
+dashboard.veditor.style.bgRepeat.repeat=\u91CD\u590D
+dashboard.veditor.style.bgRepeat.repeat-x=\u6A2A\u5411\u91CD\u590D
+dashboard.veditor.style.bgRepeat.repeat-y=\u7AD6\u5411\u91CD\u590D
+dashboard.veditor.style.borderWidth=\u8FB9\u6846\u5BBD\u5EA6
+dashboard.veditor.style.borderWidth.desc=\u793A\u4F8B\uFF1A1px\u30011px 2px\u30011px 2px 3px 4px
 dashboard.veditor.style.borderWidth.1px=1px
 dashboard.veditor.style.borderWidth.3px=3px
 dashboard.veditor.style.borderWidth.5px=5px
-dashboard.veditor.style.borderColor=边框颜色
-dashboard.veditor.style.borderColor.desc=示例:red、green、#FF0000、red green、red green blue yellow
-dashboard.veditor.style.borderStyle=边框样式
-dashboard.veditor.style.borderStyle.dotted=点状
-dashboard.veditor.style.borderStyle.dashed=虚线
-dashboard.veditor.style.borderStyle.solid=实线
-dashboard.veditor.style.borderRadius=边框圆角
-dashboard.veditor.style.borderRadius.desc=示例:5px、5px 10px、5px 6px 7px 8px
+dashboard.veditor.style.borderColor=\u8FB9\u6846\u989C\u8272
+dashboard.veditor.style.borderColor.desc=\u793A\u4F8B\uFF1Ared\u3001green\u3001#FF0000\u3001red green\u3001red green blue yellow
+dashboard.veditor.style.borderStyle=\u8FB9\u6846\u6837\u5F0F
+dashboard.veditor.style.borderStyle.dotted=\u70B9\u72B6
+dashboard.veditor.style.borderStyle.dashed=\u865A\u7EBF
+dashboard.veditor.style.borderStyle.solid=\u5B9E\u7EBF
+dashboard.veditor.style.borderRadius=\u8FB9\u6846\u5706\u89D2
+dashboard.veditor.style.borderRadius.desc=\u793A\u4F8B\uFF1A5px\u30015px 10px\u30015px 6px 7px 8px
 dashboard.veditor.style.borderRadius.3px=3px
 dashboard.veditor.style.borderRadius.5px=5px
 dashboard.veditor.style.borderRadius.10px=10px
 dashboard.veditor.style.borderRadius.30px=30px
 dashboard.veditor.style.borderRadius.50px=50px
-dashboard.veditor.style.boxShadow=边框阴影
-dashboard.veditor.style.boxShadow.desc=取消选中后才有效果,示例:0px 0px 6px 4px #666
-dashboard.veditor.style.boxShadow.around=四周
-dashboard.veditor.style.boxShadow.lt=左上
-dashboard.veditor.style.boxShadow.rt=右上
-dashboard.veditor.style.boxShadow.rb=右下
-dashboard.veditor.style.boxShadow.lb=左下
-dashboard.veditor.style.display=显示方式
-dashboard.veditor.style.display.block=行块
-dashboard.veditor.style.display.inline=行内
-dashboard.veditor.style.display.inline-block=行内块
-dashboard.veditor.style.display.flex=弹性
-dashboard.veditor.style.display.inline-flex=行内弹性
-dashboard.veditor.style.display.grid=网格
-dashboard.veditor.style.display.inline-grid=行内网格
-dashboard.veditor.style.width=宽度
-dashboard.veditor.style.width.desc=示例:300px、50%、10em、auto
-dashboard.veditor.style.height=高度
-dashboard.veditor.style.height.desc=示例:300px、50%、10em、auto
-dashboard.veditor.style.padding=内边距
-dashboard.veditor.style.padding.desc=示例:10px 10px、1em 1em、10px 20px 30px 40px
-dashboard.veditor.style.margin=外边距
-dashboard.veditor.style.margin.desc=示例:10px 10px、1em 1em、10px 20px 30px 40px
-dashboard.veditor.style.boxSizing=盒尺寸方式
-dashboard.veditor.style.boxSizing.desc=边框尺寸:边框、内边距计入元素尺寸;内容尺寸:边框、内边距不计入元素尺寸
-dashboard.veditor.style.boxSizing.border-box=边框尺寸
-dashboard.veditor.style.boxSizing.content-box=内容尺寸
-dashboard.veditor.style.position=定位方式
-dashboard.veditor.style.position.static=静态
-dashboard.veditor.style.position.absolute=绝对
-dashboard.veditor.style.position.relative=相对
-dashboard.veditor.style.position.fixed=固定
-dashboard.veditor.style.left=左坐标
-dashboard.veditor.style.left.desc=非静态定位元素时有效,示例:10px、10%、3em
-dashboard.veditor.style.top=上坐标
-dashboard.veditor.style.top.desc=非静态定位元素时有效,示例:10px、10%、3em
-dashboard.veditor.style.right=右坐标
-dashboard.veditor.style.right.desc=非静态定位元素时有效,示例:10px、10%、3em
-dashboard.veditor.style.bottom=底坐标
-dashboard.veditor.style.bottom.desc=非静态定位元素时有效,示例:10px、10%、3em
-dashboard.veditor.style.zindex=层叠顺序
-dashboard.veditor.style.zindex.desc=非静态定位元素时有效,数值高的置于顶层,示例:1、2、99、-1、-99
-dashboard.veditor.style.flexDirection=主轴方向
-dashboard.veditor.style.flexDirection.row=横向
-dashboard.veditor.style.flexDirection.row-reverse=反横向
-dashboard.veditor.style.flexDirection.column=竖向
-dashboard.veditor.style.flexDirection.column-reverse=反竖向
-dashboard.veditor.style.flexWrap=换行方式
-dashboard.veditor.style.flexWrap.nowrap=不换行
-dashboard.veditor.style.flexWrap.wrap=换行
-dashboard.veditor.style.flexWrap.wrap-reverse=反向换行
-dashboard.veditor.style.justifyContentFlex=主轴对齐
-dashboard.veditor.style.alignItemsFlex=交叉轴对齐
-dashboard.veditor.style.alignContentFlex=内容对齐
-dashboard.veditor.style.order=排序值
-dashboard.veditor.style.order.desc=越小越靠前,示例:0、1、2、99、-1、-99
-dashboard.veditor.style.flexGrow=放大比例
-dashboard.veditor.style.flexGrow.desc=越大占用空间越大,示例:0、1、2、3
-dashboard.veditor.style.flexShrink=缩小比例
-dashboard.veditor.style.flexShrink.desc=当空间不足时,越大占用空间越小,示例:0、1、2、3
-dashboard.veditor.style.flexBasis=占用空间
-dashboard.veditor.style.flexBasis.desc=固定占用主轴的空间,示例:100px、30%
-dashboard.veditor.style.alignSelfFlex=对齐方式
-dashboard.veditor.style.flexAligns.flex-start=起点
-dashboard.veditor.style.flexAligns.flex-end=终点
-dashboard.veditor.style.flexAligns.center=居中
-dashboard.veditor.style.flexAligns.space-between=贴边间隔
-dashboard.veditor.style.flexAligns.space-around=居中间隔
-dashboard.veditor.style.flexAligns.baseline=基线
-dashboard.veditor.style.flexAligns.stretch=填满
-dashboard.veditor.style.flexAligns.auto=自动
-dashboard.veditor.style.gridTemplateColumns=列划分
-dashboard.veditor.style.gridTemplateColumns.desc=示例:100px 200px 300px、100px 20% auto、1fr 1fr 2fr、repeat(3, 33.33%)
-dashboard.veditor.style.gridTemplateColumns.1c=一列
-dashboard.veditor.style.gridTemplateColumns.2c=两列
-dashboard.veditor.style.gridTemplateColumns.3c=三列
-dashboard.veditor.style.gridTemplateColumns.4c=四列
-dashboard.veditor.style.gridTemplateColumns.5c=五列
-dashboard.veditor.style.gridTemplateRows=行划分
-dashboard.veditor.style.gridTemplateRows.desc=示例:100px 200px 300px、100px 20% auto、1fr 1fr 2fr、repeat(3, 33.33%)
-dashboard.veditor.style.gridTemplateRows.1r=一行
-dashboard.veditor.style.gridTemplateRows.2r=两行
-dashboard.veditor.style.gridTemplateRows.3r=三行
-dashboard.veditor.style.gridTemplateRows.4r=四行
-dashboard.veditor.style.gridTemplateRows.5r=五行
-dashboard.veditor.style.gridColumnGap=列间隔
-dashboard.veditor.style.gridColumnGap.desc=示例:10px、1em
-dashboard.veditor.style.gridRowGap=行间隔
-dashboard.veditor.style.gridRowGap.desc=示例:10px、1em
-dashboard.veditor.style.gridTemplateAreas=区域划分
-dashboard.veditor.style.gridTemplateAreas.desc=示例:'a b c' 'd e f' 'g h i'
-dashboard.veditor.style.gridAutoFlow=排列方式
-dashboard.veditor.style.gridAutoFlow.row=横向
-dashboard.veditor.style.gridAutoFlow.column=竖向
-dashboard.veditor.style.gridAutoFlow.rowDense=横向密集
-dashboard.veditor.style.gridAutoFlow.columnDense=竖向密集
-dashboard.veditor.style.justifyItems=条目横向对齐
-dashboard.veditor.style.alignItemsGrid=条目竖向对齐
-dashboard.veditor.style.justifyContentGrid=内容横向对齐
-dashboard.veditor.style.alignContentGrid=内容竖向对齐
-dashboard.veditor.style.gridAutoColumns=外溢列划分
-dashboard.veditor.style.gridAutoRows=外溢行划分
-dashboard.veditor.style.gridColumnStart=列跨度起始
-dashboard.veditor.style.gridColumnStart.desc=横向跨度起始网格线,示例:1、2
-dashboard.veditor.style.gridColumnEnd=列跨度结束
-dashboard.veditor.style.gridColumnEnd.desc=横向跨度结束网格线,示例:3、4
-dashboard.veditor.style.gridRowStart=行跨度起始
-dashboard.veditor.style.gridRowStart.desc=竖向跨度起始网格线,示例:1、2
-dashboard.veditor.style.gridRowEnd=行跨度结束
-dashboard.veditor.style.gridRowEnd.desc=竖向跨度结束网格线,示例:3、4
-dashboard.veditor.style.gridArea=放置区域
-dashboard.veditor.style.gridArea.desc=放置到区域划分,示例:a、b
-dashboard.veditor.style.justifySelf=横向对齐
-dashboard.veditor.style.alignSelfGrid=竖向对齐
-dashboard.veditor.style.gridAligns.start=起始
-dashboard.veditor.style.gridAligns.end=结束
-dashboard.veditor.style.gridAligns.center=居中
-dashboard.veditor.style.gridAligns.stretch=填满
-dashboard.veditor.style.gridAligns.space-around=居中间隔
-dashboard.veditor.style.gridAligns.space-between=贴边间隔
-dashboard.veditor.style.gridAligns.space-evenly=均等间隔
-dashboard.veditor.style.fontFamily=字体名称
-dashboard.veditor.style.fontSize=字体尺寸
-dashboard.veditor.style.fontSize.desc=示例:10px、1.5em、1.5rem
-dashboard.veditor.style.fontWeight=字体粗细
-dashboard.veditor.style.fontWeight.normal=正常
-dashboard.veditor.style.fontWeight.bold=加粗
-dashboard.veditor.style.textAlign=对齐方式
-dashboard.veditor.style.textAlign.left=居左
-dashboard.veditor.style.textAlign.center=居中
-dashboard.veditor.style.textAlign.right=居右
-dashboard.veditor.style.className=样式类
-dashboard.veditor.style.syncChartTheme=同步图表主题
-dashboard.veditor.style.syncChartTheme.desc=将样式中的前景色、背景色应用至元素内包含的所有图表主题
-dashboard.veditor.chartTheme=图表主题
-dashboard.veditor.globalChartTheme=全局图表主题
-dashboard.veditor.chartTheme.color=前景色
-dashboard.veditor.chartTheme.bgColor=背景色
-dashboard.veditor.chartTheme.actualBgColor=实际背景色
-dashboard.veditor.chartTheme.titleColor=标题颜色
-dashboard.veditor.chartTheme.legendColor=图例颜色
-dashboard.veditor.chartTheme.graphColors=图形颜色
-dashboard.veditor.chartTheme.graphRangeColors=值域图形颜色
-dashboard.veditor.dashboardSize=看板尺寸
-dashboard.veditor.dashboardSize.width=宽度
-dashboard.veditor.dashboardSize.height=高度
-dashboard.veditor.dashboardSize.scale=缩放比例
-dashboard.veditor.dashboardSize.scale.auto=自动
-dashboard.veditor.chartOptions=图表选项
-dashboard.veditor.globalChartOptions=全局图表选项
-dashboard.veditor.chartOptions.options=选项
-dashboard.veditor.gridLayout=网格布局
-dashboard.veditor.gridLayout.rows=行数
-dashboard.veditor.gridLayout.rows.1r=一行
-dashboard.veditor.gridLayout.rows.2r=两行
-dashboard.veditor.gridLayout.rows.3r=三行
-dashboard.veditor.gridLayout.rows.4r=四行
-dashboard.veditor.gridLayout.rows.5r=五行
-dashboard.veditor.gridLayout.columns=列数
-dashboard.veditor.gridLayout.columns.1c=一列
-dashboard.veditor.gridLayout.columns.2c=两列
-dashboard.veditor.gridLayout.columns.3c=三列
-dashboard.veditor.gridLayout.columns.4c=四列
-dashboard.veditor.gridLayout.columns.5c=五列
-dashboard.veditor.gridLayout.fillParent=填满页面
-dashboard.veditor.gridLayout.fillParent.desc=网格布局填满整个页面,同时自适应任意屏幕尺寸
-dashboard.veditor.image=图片
-dashboard.veditor.image.src=图片URL
-dashboard.veditor.image.src.desc=示例:image/bg.png
-dashboard.veditor.image.width=宽度
-dashboard.veditor.image.width.desc=示例:300px、50%、10em、auto
-dashboard.veditor.image.height=高度
-dashboard.veditor.image.height.desc=示例:300px、50%、10em、auto
-dashboard.veditor.hyperlink=超链接
-dashboard.veditor.hyperlink.href=目标URL
-dashboard.veditor.hyperlink.href.desc=示例:detail.html、download/docs.zip
-dashboard.veditor.hyperlink.content=文本内容
-dashboard.veditor.hyperlink.target=打开方式
-dashboard.veditor.hyperlink.target._blank=新窗口
-dashboard.veditor.hyperlink.target._self=本窗口
-dashboard.veditor.video=视频
-dashboard.veditor.video.src=视频URL
-dashboard.veditor.video.src.desc=示例:video/video.ogg
-dashboard.veditor.video.width=宽度
-dashboard.veditor.video.width.desc=示例:300px、50%、10em
-dashboard.veditor.video.height=高度
-dashboard.veditor.video.height.desc=示例:300px、50%、10em
-dashboard.veditor.label=文本标签
-dashboard.veditor.label.content=内容
+dashboard.veditor.style.boxShadow=\u8FB9\u6846\u9634\u5F71
+dashboard.veditor.style.boxShadow.desc=\u53D6\u6D88\u9009\u4E2D\u540E\u624D\u6709\u6548\u679C\uFF0C\u793A\u4F8B\uFF1A0px 0px 6px 4px #666
+dashboard.veditor.style.boxShadow.around=\u56DB\u5468
+dashboard.veditor.style.boxShadow.lt=\u5DE6\u4E0A
+dashboard.veditor.style.boxShadow.rt=\u53F3\u4E0A
+dashboard.veditor.style.boxShadow.rb=\u53F3\u4E0B
+dashboard.veditor.style.boxShadow.lb=\u5DE6\u4E0B
+dashboard.veditor.style.display=\u663E\u793A\u65B9\u5F0F
+dashboard.veditor.style.display.block=\u884C\u5757
+dashboard.veditor.style.display.inline=\u884C\u5185
+dashboard.veditor.style.display.inline-block=\u884C\u5185\u5757
+dashboard.veditor.style.display.flex=\u5F39\u6027
+dashboard.veditor.style.display.inline-flex=\u884C\u5185\u5F39\u6027
+dashboard.veditor.style.display.grid=\u7F51\u683C
+dashboard.veditor.style.display.inline-grid=\u884C\u5185\u7F51\u683C
+dashboard.veditor.style.width=\u5BBD\u5EA6
+dashboard.veditor.style.width.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em\u3001auto
+dashboard.veditor.style.height=\u9AD8\u5EA6
+dashboard.veditor.style.height.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em\u3001auto
+dashboard.veditor.style.padding=\u5185\u8FB9\u8DDD
+dashboard.veditor.style.padding.desc=\u793A\u4F8B\uFF1A10px 10px\u30011em 1em\u300110px 20px 30px 40px
+dashboard.veditor.style.margin=\u5916\u8FB9\u8DDD
+dashboard.veditor.style.margin.desc=\u793A\u4F8B\uFF1A10px 10px\u30011em 1em\u300110px 20px 30px 40px
+dashboard.veditor.style.boxSizing=\u76D2\u5C3A\u5BF8\u65B9\u5F0F
+dashboard.veditor.style.boxSizing.desc=\u8FB9\u6846\u5C3A\u5BF8\uFF1A\u8FB9\u6846\u3001\u5185\u8FB9\u8DDD\u8BA1\u5165\u5143\u7D20\u5C3A\u5BF8\uFF1B\u5185\u5BB9\u5C3A\u5BF8\uFF1A\u8FB9\u6846\u3001\u5185\u8FB9\u8DDD\u4E0D\u8BA1\u5165\u5143\u7D20\u5C3A\u5BF8
+dashboard.veditor.style.boxSizing.border-box=\u8FB9\u6846\u5C3A\u5BF8
+dashboard.veditor.style.boxSizing.content-box=\u5185\u5BB9\u5C3A\u5BF8
+dashboard.veditor.style.position=\u5B9A\u4F4D\u65B9\u5F0F
+dashboard.veditor.style.position.static=\u9759\u6001
+dashboard.veditor.style.position.absolute=\u7EDD\u5BF9
+dashboard.veditor.style.position.relative=\u76F8\u5BF9
+dashboard.veditor.style.position.fixed=\u56FA\u5B9A
+dashboard.veditor.style.left=\u5DE6\u5750\u6807
+dashboard.veditor.style.left.desc=\u975E\u9759\u6001\u5B9A\u4F4D\u5143\u7D20\u65F6\u6709\u6548\uFF0C\u793A\u4F8B\uFF1A10px\u300110%\u30013em
+dashboard.veditor.style.top=\u4E0A\u5750\u6807
+dashboard.veditor.style.top.desc=\u975E\u9759\u6001\u5B9A\u4F4D\u5143\u7D20\u65F6\u6709\u6548\uFF0C\u793A\u4F8B\uFF1A10px\u300110%\u30013em
+dashboard.veditor.style.right=\u53F3\u5750\u6807
+dashboard.veditor.style.right.desc=\u975E\u9759\u6001\u5B9A\u4F4D\u5143\u7D20\u65F6\u6709\u6548\uFF0C\u793A\u4F8B\uFF1A10px\u300110%\u30013em
+dashboard.veditor.style.bottom=\u5E95\u5750\u6807
+dashboard.veditor.style.bottom.desc=\u975E\u9759\u6001\u5B9A\u4F4D\u5143\u7D20\u65F6\u6709\u6548\uFF0C\u793A\u4F8B\uFF1A10px\u300110%\u30013em
+dashboard.veditor.style.zindex=\u5C42\u53E0\u987A\u5E8F
+dashboard.veditor.style.zindex.desc=\u975E\u9759\u6001\u5B9A\u4F4D\u5143\u7D20\u65F6\u6709\u6548\uFF0C\u6570\u503C\u9AD8\u7684\u7F6E\u4E8E\u9876\u5C42\uFF0C\u793A\u4F8B\uFF1A1\u30012\u300199\u3001-1\u3001-99
+dashboard.veditor.style.flexDirection=\u4E3B\u8F74\u65B9\u5411
+dashboard.veditor.style.flexDirection.row=\u6A2A\u5411
+dashboard.veditor.style.flexDirection.row-reverse=\u53CD\u6A2A\u5411
+dashboard.veditor.style.flexDirection.column=\u7AD6\u5411
+dashboard.veditor.style.flexDirection.column-reverse=\u53CD\u7AD6\u5411
+dashboard.veditor.style.flexWrap=\u6362\u884C\u65B9\u5F0F
+dashboard.veditor.style.flexWrap.nowrap=\u4E0D\u6362\u884C
+dashboard.veditor.style.flexWrap.wrap=\u6362\u884C
+dashboard.veditor.style.flexWrap.wrap-reverse=\u53CD\u5411\u6362\u884C
+dashboard.veditor.style.justifyContentFlex=\u4E3B\u8F74\u5BF9\u9F50
+dashboard.veditor.style.alignItemsFlex=\u4EA4\u53C9\u8F74\u5BF9\u9F50
+dashboard.veditor.style.alignContentFlex=\u5185\u5BB9\u5BF9\u9F50
+dashboard.veditor.style.order=\u6392\u5E8F\u503C
+dashboard.veditor.style.order.desc=\u8D8A\u5C0F\u8D8A\u9760\u524D\uFF0C\u793A\u4F8B\uFF1A0\u30011\u30012\u300199\u3001-1\u3001-99
+dashboard.veditor.style.flexGrow=\u653E\u5927\u6BD4\u4F8B
+dashboard.veditor.style.flexGrow.desc=\u8D8A\u5927\u5360\u7528\u7A7A\u95F4\u8D8A\u5927\uFF0C\u793A\u4F8B\uFF1A0\u30011\u30012\u30013
+dashboard.veditor.style.flexShrink=\u7F29\u5C0F\u6BD4\u4F8B
+dashboard.veditor.style.flexShrink.desc=\u5F53\u7A7A\u95F4\u4E0D\u8DB3\u65F6\uFF0C\u8D8A\u5927\u5360\u7528\u7A7A\u95F4\u8D8A\u5C0F\uFF0C\u793A\u4F8B\uFF1A0\u30011\u30012\u30013
+dashboard.veditor.style.flexBasis=\u5360\u7528\u7A7A\u95F4
+dashboard.veditor.style.flexBasis.desc=\u56FA\u5B9A\u5360\u7528\u4E3B\u8F74\u7684\u7A7A\u95F4\uFF0C\u793A\u4F8B\uFF1A100px\u300130%
+dashboard.veditor.style.alignSelfFlex=\u5BF9\u9F50\u65B9\u5F0F
+dashboard.veditor.style.flexAligns.flex-start=\u8D77\u70B9
+dashboard.veditor.style.flexAligns.flex-end=\u7EC8\u70B9
+dashboard.veditor.style.flexAligns.center=\u5C45\u4E2D
+dashboard.veditor.style.flexAligns.space-between=\u8D34\u8FB9\u95F4\u9694
+dashboard.veditor.style.flexAligns.space-around=\u5C45\u4E2D\u95F4\u9694
+dashboard.veditor.style.flexAligns.baseline=\u57FA\u7EBF
+dashboard.veditor.style.flexAligns.stretch=\u586B\u6EE1
+dashboard.veditor.style.flexAligns.auto=\u81EA\u52A8
+dashboard.veditor.style.gridTemplateColumns=\u5217\u5212\u5206
+dashboard.veditor.style.gridTemplateColumns.desc=\u793A\u4F8B\uFF1A100px 200px 300px\u3001100px 20% auto\u30011fr 1fr 2fr\u3001repeat(3, 33.33%)
+dashboard.veditor.style.gridTemplateColumns.1c=\u4E00\u5217
+dashboard.veditor.style.gridTemplateColumns.2c=\u4E24\u5217
+dashboard.veditor.style.gridTemplateColumns.3c=\u4E09\u5217
+dashboard.veditor.style.gridTemplateColumns.4c=\u56DB\u5217
+dashboard.veditor.style.gridTemplateColumns.5c=\u4E94\u5217
+dashboard.veditor.style.gridTemplateRows=\u884C\u5212\u5206
+dashboard.veditor.style.gridTemplateRows.desc=\u793A\u4F8B\uFF1A100px 200px 300px\u3001100px 20% auto\u30011fr 1fr 2fr\u3001repeat(3, 33.33%)
+dashboard.veditor.style.gridTemplateRows.1r=\u4E00\u884C
+dashboard.veditor.style.gridTemplateRows.2r=\u4E24\u884C
+dashboard.veditor.style.gridTemplateRows.3r=\u4E09\u884C
+dashboard.veditor.style.gridTemplateRows.4r=\u56DB\u884C
+dashboard.veditor.style.gridTemplateRows.5r=\u4E94\u884C
+dashboard.veditor.style.gridColumnGap=\u5217\u95F4\u9694
+dashboard.veditor.style.gridColumnGap.desc=\u793A\u4F8B\uFF1A10px\u30011em
+dashboard.veditor.style.gridRowGap=\u884C\u95F4\u9694
+dashboard.veditor.style.gridRowGap.desc=\u793A\u4F8B\uFF1A10px\u30011em
+dashboard.veditor.style.gridTemplateAreas=\u533A\u57DF\u5212\u5206
+dashboard.veditor.style.gridTemplateAreas.desc=\u793A\u4F8B\uFF1A'a b c' 'd e f' 'g h i'
+dashboard.veditor.style.gridAutoFlow=\u6392\u5217\u65B9\u5F0F
+dashboard.veditor.style.gridAutoFlow.row=\u6A2A\u5411
+dashboard.veditor.style.gridAutoFlow.column=\u7AD6\u5411
+dashboard.veditor.style.gridAutoFlow.rowDense=\u6A2A\u5411\u5BC6\u96C6
+dashboard.veditor.style.gridAutoFlow.columnDense=\u7AD6\u5411\u5BC6\u96C6
+dashboard.veditor.style.justifyItems=\u6761\u76EE\u6A2A\u5411\u5BF9\u9F50
+dashboard.veditor.style.alignItemsGrid=\u6761\u76EE\u7AD6\u5411\u5BF9\u9F50
+dashboard.veditor.style.justifyContentGrid=\u5185\u5BB9\u6A2A\u5411\u5BF9\u9F50
+dashboard.veditor.style.alignContentGrid=\u5185\u5BB9\u7AD6\u5411\u5BF9\u9F50
+dashboard.veditor.style.gridAutoColumns=\u5916\u6EA2\u5217\u5212\u5206
+dashboard.veditor.style.gridAutoRows=\u5916\u6EA2\u884C\u5212\u5206
+dashboard.veditor.style.gridColumnStart=\u5217\u8DE8\u5EA6\u8D77\u59CB
+dashboard.veditor.style.gridColumnStart.desc=\u6A2A\u5411\u8DE8\u5EA6\u8D77\u59CB\u7F51\u683C\u7EBF\uFF0C\u793A\u4F8B\uFF1A1\u30012
+dashboard.veditor.style.gridColumnEnd=\u5217\u8DE8\u5EA6\u7ED3\u675F
+dashboard.veditor.style.gridColumnEnd.desc=\u6A2A\u5411\u8DE8\u5EA6\u7ED3\u675F\u7F51\u683C\u7EBF\uFF0C\u793A\u4F8B\uFF1A3\u30014
+dashboard.veditor.style.gridRowStart=\u884C\u8DE8\u5EA6\u8D77\u59CB
+dashboard.veditor.style.gridRowStart.desc=\u7AD6\u5411\u8DE8\u5EA6\u8D77\u59CB\u7F51\u683C\u7EBF\uFF0C\u793A\u4F8B\uFF1A1\u30012
+dashboard.veditor.style.gridRowEnd=\u884C\u8DE8\u5EA6\u7ED3\u675F
+dashboard.veditor.style.gridRowEnd.desc=\u7AD6\u5411\u8DE8\u5EA6\u7ED3\u675F\u7F51\u683C\u7EBF\uFF0C\u793A\u4F8B\uFF1A3\u30014
+dashboard.veditor.style.gridArea=\u653E\u7F6E\u533A\u57DF
+dashboard.veditor.style.gridArea.desc=\u653E\u7F6E\u5230\u533A\u57DF\u5212\u5206\uFF0C\u793A\u4F8B\uFF1Aa\u3001b
+dashboard.veditor.style.justifySelf=\u6A2A\u5411\u5BF9\u9F50
+dashboard.veditor.style.alignSelfGrid=\u7AD6\u5411\u5BF9\u9F50
+dashboard.veditor.style.gridAligns.start=\u8D77\u59CB
+dashboard.veditor.style.gridAligns.end=\u7ED3\u675F
+dashboard.veditor.style.gridAligns.center=\u5C45\u4E2D
+dashboard.veditor.style.gridAligns.stretch=\u586B\u6EE1
+dashboard.veditor.style.gridAligns.space-around=\u5C45\u4E2D\u95F4\u9694
+dashboard.veditor.style.gridAligns.space-between=\u8D34\u8FB9\u95F4\u9694
+dashboard.veditor.style.gridAligns.space-evenly=\u5747\u7B49\u95F4\u9694
+dashboard.veditor.style.fontFamily=\u5B57\u4F53\u540D\u79F0
+dashboard.veditor.style.fontSize=\u5B57\u4F53\u5C3A\u5BF8
+dashboard.veditor.style.fontSize.desc=\u793A\u4F8B\uFF1A10px\u30011.5em\u30011.5rem
+dashboard.veditor.style.fontWeight=\u5B57\u4F53\u7C97\u7EC6
+dashboard.veditor.style.fontWeight.normal=\u6B63\u5E38
+dashboard.veditor.style.fontWeight.bold=\u52A0\u7C97
+dashboard.veditor.style.textAlign=\u5BF9\u9F50\u65B9\u5F0F
+dashboard.veditor.style.textAlign.left=\u5C45\u5DE6
+dashboard.veditor.style.textAlign.center=\u5C45\u4E2D
+dashboard.veditor.style.textAlign.right=\u5C45\u53F3
+dashboard.veditor.style.className=\u6837\u5F0F\u7C7B
+dashboard.veditor.style.syncChartTheme=\u540C\u6B65\u56FE\u8868\u4E3B\u9898
+dashboard.veditor.style.syncChartTheme.desc=\u5C06\u6837\u5F0F\u4E2D\u7684\u524D\u666F\u8272\u3001\u80CC\u666F\u8272\u5E94\u7528\u81F3\u5143\u7D20\u5185\u5305\u542B\u7684\u6240\u6709\u56FE\u8868\u4E3B\u9898
+dashboard.veditor.chartTheme=\u56FE\u8868\u4E3B\u9898
+dashboard.veditor.globalChartTheme=\u5168\u5C40\u56FE\u8868\u4E3B\u9898
+dashboard.veditor.chartTheme.color=\u524D\u666F\u8272
+dashboard.veditor.chartTheme.bgColor=\u80CC\u666F\u8272
+dashboard.veditor.chartTheme.actualBgColor=\u5B9E\u9645\u80CC\u666F\u8272
+dashboard.veditor.chartTheme.titleColor=\u6807\u9898\u989C\u8272
+dashboard.veditor.chartTheme.legendColor=\u56FE\u4F8B\u989C\u8272
+dashboard.veditor.chartTheme.graphColors=\u56FE\u5F62\u989C\u8272
+dashboard.veditor.chartTheme.graphRangeColors=\u503C\u57DF\u56FE\u5F62\u989C\u8272
+dashboard.veditor.dashboardSize=\u770B\u677F\u5C3A\u5BF8
+dashboard.veditor.dashboardSize.width=\u5BBD\u5EA6
+dashboard.veditor.dashboardSize.height=\u9AD8\u5EA6
+dashboard.veditor.dashboardSize.scale=\u7F29\u653E\u6BD4\u4F8B
+dashboard.veditor.dashboardSize.scale.auto=\u81EA\u52A8
+dashboard.veditor.chartOptions=\u56FE\u8868\u9009\u9879
+dashboard.veditor.globalChartOptions=\u5168\u5C40\u56FE\u8868\u9009\u9879
+dashboard.veditor.chartOptions.options=\u9009\u9879
+dashboard.veditor.gridLayout=\u7F51\u683C\u5E03\u5C40
+dashboard.veditor.gridLayout.rows=\u884C\u6570
+dashboard.veditor.gridLayout.rows.1r=\u4E00\u884C
+dashboard.veditor.gridLayout.rows.2r=\u4E24\u884C
+dashboard.veditor.gridLayout.rows.3r=\u4E09\u884C
+dashboard.veditor.gridLayout.rows.4r=\u56DB\u884C
+dashboard.veditor.gridLayout.rows.5r=\u4E94\u884C
+dashboard.veditor.gridLayout.columns=\u5217\u6570
+dashboard.veditor.gridLayout.columns.1c=\u4E00\u5217
+dashboard.veditor.gridLayout.columns.2c=\u4E24\u5217
+dashboard.veditor.gridLayout.columns.3c=\u4E09\u5217
+dashboard.veditor.gridLayout.columns.4c=\u56DB\u5217
+dashboard.veditor.gridLayout.columns.5c=\u4E94\u5217
+dashboard.veditor.gridLayout.fillParent=\u586B\u6EE1\u9875\u9762
+dashboard.veditor.gridLayout.fillParent.desc=\u7F51\u683C\u5E03\u5C40\u586B\u6EE1\u6574\u4E2A\u9875\u9762\uFF0C\u540C\u65F6\u81EA\u9002\u5E94\u4EFB\u610F\u5C4F\u5E55\u5C3A\u5BF8
+dashboard.veditor.image=\u56FE\u7247
+dashboard.veditor.image.src=\u56FE\u7247URL
+dashboard.veditor.image.src.desc=\u793A\u4F8B\uFF1Aimage/bg.png
+dashboard.veditor.image.width=\u5BBD\u5EA6
+dashboard.veditor.image.width.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em\u3001auto
+dashboard.veditor.image.height=\u9AD8\u5EA6
+dashboard.veditor.image.height.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em\u3001auto
+dashboard.veditor.hyperlink=\u8D85\u94FE\u63A5
+dashboard.veditor.hyperlink.href=\u76EE\u6807URL
+dashboard.veditor.hyperlink.href.desc=\u793A\u4F8B\uFF1Adetail.html\u3001download/docs.zip
+dashboard.veditor.hyperlink.content=\u6587\u672C\u5185\u5BB9
+dashboard.veditor.hyperlink.target=\u6253\u5F00\u65B9\u5F0F
+dashboard.veditor.hyperlink.target._blank=\u65B0\u7A97\u53E3
+dashboard.veditor.hyperlink.target._self=\u672C\u7A97\u53E3
+dashboard.veditor.video=\u89C6\u9891
+dashboard.veditor.video.src=\u89C6\u9891URL
+dashboard.veditor.video.src.desc=\u793A\u4F8B\uFF1Avideo/video.ogg
+dashboard.veditor.video.width=\u5BBD\u5EA6
+dashboard.veditor.video.width.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em
+dashboard.veditor.video.height=\u9AD8\u5EA6
+dashboard.veditor.video.height.desc=\u793A\u4F8B\uFF1A300px\u300150%\u300110em
+dashboard.veditor.label=\u6587\u672C\u6807\u7B7E
+dashboard.veditor.label.content=\u5185\u5BB9
 
 #Chart plugin
-chartPlugin.manageChartPlugin=管理图表插件
-chartPlugin.uploadChartPlugin=上传图表插件
-chartPlugin.selectChartPlugin=选择图表类型
-chartPlugin.name=名称
-chartPlugin.desc=描述
-chartPlugin.icon=图标
-chartPlugin.version=版本
-chartPlugin.upload.selectFile=选择文件
-chartPlugin.upload.desc=文件格式应为:*.zip
-chartPlugin.upload.review=上传预览
-chartPlugin.upload.validation.uploadChartPluginFileRequired=请选择合法的插件文件
-chartPlugin.upload.finish=上传完成,成功载入 {0} 个图表插件
-chartPlugin.uncategorized=其它
+chartPlugin.manageChartPlugin=\u7BA1\u7406\u56FE\u8868\u63D2\u4EF6
+chartPlugin.uploadChartPlugin=\u4E0A\u4F20\u56FE\u8868\u63D2\u4EF6
+chartPlugin.selectChartPlugin=\u9009\u62E9\u56FE\u8868\u7C7B\u578B
+chartPlugin.name=\u540D\u79F0
+chartPlugin.desc=\u63CF\u8FF0
+chartPlugin.icon=\u56FE\u6807
+chartPlugin.version=\u7248\u672C
+chartPlugin.upload.selectFile=\u9009\u62E9\u6587\u4EF6
+chartPlugin.upload.desc=\u6587\u4EF6\u683C\u5F0F\u5E94\u4E3A\uFF1A*.zip
+chartPlugin.upload.review=\u4E0A\u4F20\u9884\u89C8
+chartPlugin.upload.validation.uploadChartPluginFileRequired=\u8BF7\u9009\u62E9\u5408\u6CD5\u7684\u63D2\u4EF6\u6587\u4EF6
+chartPlugin.upload.finish=\u4E0A\u4F20\u5B8C\u6210\uFF0C\u6210\u529F\u8F7D\u5165 {0} \u4E2A\u56FE\u8868\u63D2\u4EF6
+chartPlugin.uncategorized=\u5176\u5B83
 
-#数据分析项目
-analysisProject.manageAnalysisProject=管理数据分析项目
-analysisProject.addAnalysisProject=添加数据分析项目
-analysisProject.editAnalysisProject=编辑数据分析项目
-analysisProject.viewAnalysisProject=查看数据分析项目
-analysisProject.selectAnalysisProject=选择数据分析项目
-analysisProject.ownerAnalysisProject=所属项目
-analysisProject.auth.resouceTypeLabel=数据分析项目
-analysisProject.name=名称
-analysisProject.desc=描述
-analysisProject.createUser=创建用户
-analysisProject.createTime=创建时间
+#\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.manageAnalysisProject=\u7BA1\u7406\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.addAnalysisProject=\u6DFB\u52A0\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.editAnalysisProject=\u7F16\u8F91\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.viewAnalysisProject=\u67E5\u770B\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.selectAnalysisProject=\u9009\u62E9\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.ownerAnalysisProject=\u6240\u5C5E\u9879\u76EE
+analysisProject.auth.resouceTypeLabel=\u6570\u636E\u5206\u6790\u9879\u76EE
+analysisProject.name=\u540D\u79F0
+analysisProject.desc=\u63CF\u8FF0
+analysisProject.createUser=\u521B\u5EFA\u7528\u6237
+analysisProject.createTime=\u521B\u5EFA\u65F6\u95F4
 
-#数据集资源目录
-dataSetResDirectory.manageDataSetResDirectory=管理数据集资源目录
-dataSetResDirectory.addDataSetResDirectory=添加数据集资源目录
-dataSetResDirectory.editDataSetResDirectory=编辑数据集资源目录
-dataSetResDirectory.viewDataSetResDirectory=查看数据集资源目录
-dataSetResDirectory.selectDataSetResDirectory=选择数据集资源目录
-dataSetResDirectory.auth.resouceTypeLabel=数据集资源目录
-dataSetResDirectory.directory=目录
-dataSetResDirectory.directory.desc=目录应是在服务器端已存在的,例如:/home/resource
-dataSetResDirectory.desc=描述
-dataSetResDirectory.createUser=创建用户
-dataSetResDirectory.createTime=创建时间
-dataSetResDirectory.DataSetResDirectoryNotFoundException=目录[{0}]不存在
+#\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.manageDataSetResDirectory=\u7BA1\u7406\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.addDataSetResDirectory=\u6DFB\u52A0\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.editDataSetResDirectory=\u7F16\u8F91\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.viewDataSetResDirectory=\u67E5\u770B\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.selectDataSetResDirectory=\u9009\u62E9\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.auth.resouceTypeLabel=\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
+dataSetResDirectory.directory=\u76EE\u5F55
+dataSetResDirectory.directory.desc=\u76EE\u5F55\u5E94\u662F\u5728\u670D\u52A1\u5668\u7AEF\u5DF2\u5B58\u5728\u7684\uFF0C\u4F8B\u5982\uFF1A/home/resource
+dataSetResDirectory.desc=\u63CF\u8FF0
+dataSetResDirectory.createUser=\u521B\u5EFA\u7528\u6237
+dataSetResDirectory.createTime=\u521B\u5EFA\u65F6\u95F4
+dataSetResDirectory.DataSetResDirectoryNotFoundException=\u76EE\u5F55[{0}]\u4E0D\u5B58\u5728
 
-#看板全局资源
-dashboardGlobalRes.manageDashboardGlobalRes=管理看板全局资源
-dashboardGlobalRes.addDashboardGlobalRes=添加看板全局资源
-dashboardGlobalRes.uploadDashboardGlobalRes=上传看板全局资源
-dashboardGlobalRes.editDashboardGlobalRes=编辑看板全局资源
-dashboardGlobalRes.path=路径
-dashboardGlobalRes.selectFile=选择文件
-dashboardGlobalRes.savePath=存储路径
-dashboardGlobalRes.savePath.desc=文件存储路径,例如:global.js、css/style.css
-dashboardGlobalRes.autoUnzip=自动解压
-dashboardGlobalRes.autoUnzip.desc=如果文件是*.zip文件,则将其解压,如果未设置存储路径,将解压至资源根路径
-dashboardGlobalRes.resourceContent=资源内容
-dashboardGlobalRes.editResourceUnsupport=仅支持编辑文本类文件,比如:*.js、*.css、*.txt
-dashboardGlobalRes.upload.zipFileNameEncoding=压缩包编码
-dashboardGlobalRes.upload.zipFileNameEncoding.desc=当上传文件是ZIP压缩包时,指定其内部文件名编码
-dashboardGlobalRes.upload.notice=如果解压报错且压缩包内文件名有中文,请修改[压缩包编码](比如GBK)后再保存;
+#\u770B\u677F\u5168\u5C40\u8D44\u6E90
+dashboardGlobalRes.manageDashboardGlobalRes=\u7BA1\u7406\u770B\u677F\u5168\u5C40\u8D44\u6E90
+dashboardGlobalRes.addDashboardGlobalRes=\u6DFB\u52A0\u770B\u677F\u5168\u5C40\u8D44\u6E90
+dashboardGlobalRes.uploadDashboardGlobalRes=\u4E0A\u4F20\u770B\u677F\u5168\u5C40\u8D44\u6E90
+dashboardGlobalRes.editDashboardGlobalRes=\u7F16\u8F91\u770B\u677F\u5168\u5C40\u8D44\u6E90
+dashboardGlobalRes.path=\u8DEF\u5F84
+dashboardGlobalRes.selectFile=\u9009\u62E9\u6587\u4EF6
+dashboardGlobalRes.savePath=\u5B58\u50A8\u8DEF\u5F84
+dashboardGlobalRes.savePath.desc=\u6587\u4EF6\u5B58\u50A8\u8DEF\u5F84\uFF0C\u4F8B\u5982\uFF1Aglobal.js\u3001css/style.css
+dashboardGlobalRes.autoUnzip=\u81EA\u52A8\u89E3\u538B
+dashboardGlobalRes.autoUnzip.desc=\u5982\u679C\u6587\u4EF6\u662F*.zip\u6587\u4EF6\uFF0C\u5219\u5C06\u5176\u89E3\u538B\uFF0C\u5982\u679C\u672A\u8BBE\u7F6E\u5B58\u50A8\u8DEF\u5F84\uFF0C\u5C06\u89E3\u538B\u81F3\u8D44\u6E90\u6839\u8DEF\u5F84
+dashboardGlobalRes.resourceContent=\u8D44\u6E90\u5185\u5BB9
+dashboardGlobalRes.editResourceUnsupport=\u4EC5\u652F\u6301\u7F16\u8F91\u6587\u672C\u7C7B\u6587\u4EF6\uFF0C\u6BD4\u5982\uFF1A*.js\u3001*.css\u3001*.txt
+dashboardGlobalRes.upload.zipFileNameEncoding=\u538B\u7F29\u5305\u7F16\u7801
+dashboardGlobalRes.upload.zipFileNameEncoding.desc=\u5F53\u4E0A\u4F20\u6587\u4EF6\u662FZIP\u538B\u7F29\u5305\u65F6\uFF0C\u6307\u5B9A\u5176\u5185\u90E8\u6587\u4EF6\u540D\u7F16\u7801
+dashboardGlobalRes.upload.notice=\u5982\u679C\u89E3\u538B\u62A5\u9519\u4E14\u538B\u7F29\u5305\u5185\u6587\u4EF6\u540D\u6709\u4E2D\u6587\uFF0C\u8BF7\u4FEE\u6539[\u538B\u7F29\u5305\u7F16\u7801]\uFF08\u6BD4\u5982GBK\uFF09\u540E\u518D\u4FDD\u5B58\uFF1B
 
-#数据源防护
-schemaGuard.manageSchemaGuard=管理数据源防护
-schemaGuard.addSchemaGuard=添加数据源防护
-schemaGuard.editSchemaGuard=编辑数据源防护
-schemaGuard.viewSchemaGuard=查看数据源防护
-schemaGuard.selectSchemaGuard=选择数据源防护
-schemaGuard.pattern=URL模式
-schemaGuard.pattern.desc=数据源URL匹配模式,例如:* 表示所有URL;*192.168.1.1* 表示所有包含192.168.1.1的URL;jdbc:mysql://127.0.0.1* 表示所有以jdbc:mysql://127.0.0.1开头的URL
-schemaGuard.permitted=准许
-schemaGuard.permitted.desc=是否准许创建匹配上述URL模式的数据源
-schemaGuard.priority=优先级
-schemaGuard.priority.desc=是否准许创建给定URL的数据源由与之匹配的最高优先级(或者最新创建的)的数据源防护决定
-schemaGuard.enabled=是否启用
-schemaGuard.createTime=创建时间
-schemaGuard.testSchemaUrl=测试URL
-schemaGuard.schemaUrl=数据源URL
-schemaGuard.testSchemaUrl.permitted= 允许创建
-schemaGuard.testSchemaUrl.denied= 禁止创建
+#\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.manageSchemaGuard=\u7BA1\u7406\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.addSchemaGuard=\u6DFB\u52A0\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.editSchemaGuard=\u7F16\u8F91\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.viewSchemaGuard=\u67E5\u770B\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.selectSchemaGuard=\u9009\u62E9\u6570\u636E\u6E90\u9632\u62A4
+schemaGuard.pattern=URL\u6A21\u5F0F
+schemaGuard.pattern.desc=\u6570\u636E\u6E90URL\u5339\u914D\u6A21\u5F0F\uFF0C\u4F8B\u5982\uFF1A* \u8868\u793A\u6240\u6709URL\uFF1B*192.168.1.1* \u8868\u793A\u6240\u6709\u5305\u542B192.168.1.1\u7684URL\uFF1Bjdbc:mysql://127.0.0.1* \u8868\u793A\u6240\u6709\u4EE5jdbc:mysql://127.0.0.1\u5F00\u5934\u7684URL
+schemaGuard.permitted=\u51C6\u8BB8
+schemaGuard.permitted.desc=\u662F\u5426\u51C6\u8BB8\u521B\u5EFA\u5339\u914D\u4E0A\u8FF0URL\u6A21\u5F0F\u7684\u6570\u636E\u6E90
+schemaGuard.priority=\u4F18\u5148\u7EA7
+schemaGuard.priority.desc=\u662F\u5426\u51C6\u8BB8\u521B\u5EFA\u7ED9\u5B9AURL\u7684\u6570\u636E\u6E90\u7531\u4E0E\u4E4B\u5339\u914D\u7684\u6700\u9AD8\u4F18\u5148\u7EA7\uFF08\u6216\u8005\u6700\u65B0\u521B\u5EFA\u7684\uFF09\u7684\u6570\u636E\u6E90\u9632\u62A4\u51B3\u5B9A
+schemaGuard.enabled=\u662F\u5426\u542F\u7528
+schemaGuard.createTime=\u521B\u5EFA\u65F6\u95F4
+schemaGuard.testSchemaUrl=\u6D4B\u8BD5URL
+schemaGuard.schemaUrl=\u6570\u636E\u6E90URL
+schemaGuard.testSchemaUrl.permitted= \u5141\u8BB8\u521B\u5EFA
+schemaGuard.testSchemaUrl.denied= \u7981\u6B62\u521B\u5EFA
 
-#看板分享设置
-dashboardShareSet.dashboardShareSet=看板分享设置
-dashboardShareSet.enablePassword=启用访问密码
-dashboardShareSet.anonymousPassword=仅匿名用户
-dashboardShareSet.anonymousPassword.desc=如果看板分享给了匿名用户,仅匿名用户访问时需要输入访问密码,已登录用户不需要
-dashboardShareSet.password=访问密码
-dashboardShareSet.confirmPassword=确认访问密码
-dashboardShareSet.validation.confirmPasswordIncorrect=与[访问密码]不一致
+#\u770B\u677F\u5206\u4EAB\u8BBE\u7F6E
+dashboardShareSet.dashboardShareSet=\u770B\u677F\u5206\u4EAB\u8BBE\u7F6E
+dashboardShareSet.enablePassword=\u542F\u7528\u8BBF\u95EE\u5BC6\u7801
+dashboardShareSet.anonymousPassword=\u4EC5\u533F\u540D\u7528\u6237
+dashboardShareSet.anonymousPassword.desc=\u5982\u679C\u770B\u677F\u5206\u4EAB\u7ED9\u4E86\u533F\u540D\u7528\u6237\uFF0C\u4EC5\u533F\u540D\u7528\u6237\u8BBF\u95EE\u65F6\u9700\u8981\u8F93\u5165\u8BBF\u95EE\u5BC6\u7801\uFF0C\u5DF2\u767B\u5F55\u7528\u6237\u4E0D\u9700\u8981
+dashboardShareSet.password=\u8BBF\u95EE\u5BC6\u7801
+dashboardShareSet.confirmPassword=\u786E\u8BA4\u8BBF\u95EE\u5BC6\u7801
+dashboardShareSet.validation.confirmPasswordIncorrect=\u4E0E[\u8BBF\u95EE\u5BC6\u7801]\u4E0D\u4E00\u81F4
+
+#\u91CD\u547D\u540D\u8BBE\u7F6E
+nameIsExist=\u540D\u79F0\u5DF2\u5B58\u5728
+nameIsTooLong=\u540D\u79F0\u8FC7\u957F\uFF0C\u8BF7\u9650\u5236\u572840\u4E2A\u5B57\u7B26\u5185

+ 11 - 7
datagear-web/src/main/resources/org/datagear/web/i18n/message_en.properties

@@ -269,7 +269,7 @@ main.changeTheme.light=Light
 main.changeTheme.dark=Dark
 main.changeTheme.green=Green
 main.changeLocale=Language
-main.changeLocale.zh=中文
+main.changeLocale.zh=\u4E2D\u6587
 main.changeLocale.en=English
 main.changeLocaleConfirm=Change language will cause reload, continue?
 main.about=About
@@ -489,7 +489,7 @@ dataExchange.exceptionResolve=Exception resolver
 dataExchange.exceptionResolve.ABORT=Commit and abort
 dataExchange.exceptionResolve.IGNORE=Ignore and continue
 dataExchange.exceptionResolve.ROLLBACK=Rollback and abort
-dataExchange.exchangeProgressPercentWithDuration={0}%({1})
+dataExchange.exchangeProgressPercentWithDuration={0}%\uFF08{1}\uFF09
 dataExchange.exchangeStatus.Unstart=Unstart
 dataExchange.exchangeStatus.Exception=Import error : {0}
 dataExchange.exchangeStatus.SubSubmitSuccess=Wait execution
@@ -1222,7 +1222,7 @@ chartPlugin.upload.validation.uploadChartPluginFileRequired=Please select valid
 chartPlugin.upload.finish=Upload finish, loaded {0} chart plugins
 chartPlugin.uncategorized=Others
 
-#数据分析项目
+#\u6570\u636E\u5206\u6790\u9879\u76EE
 analysisProject.manageAnalysisProject=Manage analysis project
 analysisProject.addAnalysisProject=Add analysis project
 analysisProject.editAnalysisProject=Edit analysis project
@@ -1235,7 +1235,7 @@ analysisProject.desc=Description
 analysisProject.createUser=Creator
 analysisProject.createTime=Create time
 
-#数据集资源目录
+#\u6570\u636E\u96C6\u8D44\u6E90\u76EE\u5F55
 dataSetResDirectory.manageDataSetResDirectory=Manage data set resource directory
 dataSetResDirectory.addDataSetResDirectory=Add data set resource directory
 dataSetResDirectory.editDataSetResDirectory=Edit data set resource directory
@@ -1249,7 +1249,7 @@ dataSetResDirectory.createUser=Creator
 dataSetResDirectory.createTime=Create time
 dataSetResDirectory.DataSetResDirectoryNotFoundException=Directory [{0}] inexistence
 
-#看板全局资源
+#\u770B\u677F\u5168\u5C40\u8D44\u6E90
 dashboardGlobalRes.manageDashboardGlobalRes=Manage dashboard global resource
 dashboardGlobalRes.addDashboardGlobalRes=Add dashboard global resource
 dashboardGlobalRes.uploadDashboardGlobalRes=Upload dashboard global resource
@@ -1266,7 +1266,7 @@ dashboardGlobalRes.upload.zipFileNameEncoding=File charset
 dashboardGlobalRes.upload.zipFileNameEncoding.desc=Set the file name charset in ZIP file
 dashboardGlobalRes.upload.notice=If save error, try change [File charset] then save
 
-#数据源防护
+#\u6570\u636E\u6E90\u9632\u62A4
 schemaGuard.manageSchemaGuard=Manage data source guard
 schemaGuard.addSchemaGuard=Add data source guard
 schemaGuard.editSchemaGuard=Edit data source guard
@@ -1285,7 +1285,7 @@ schemaGuard.schemaUrl=Data source URL
 schemaGuard.testSchemaUrl.permitted= Creation is permitted
 schemaGuard.testSchemaUrl.denied= Creation is denied
 
-#看板分享设置
+#\u770B\u677F\u5206\u4EAB\u8BBE\u7F6E
 dashboardShareSet.dashboardShareSet=Share set
 dashboardShareSet.enablePassword=Enable access password
 dashboardShareSet.anonymousPassword=Anonymous password
@@ -1293,3 +1293,7 @@ dashboardShareSet.anonymousPassword.desc=Only anonymous need password
 dashboardShareSet.password=Access password
 dashboardShareSet.confirmPassword=Confirm password
 dashboardShareSet.validation.confirmPasswordIncorrect=Confirm password incorrect
+
+#\u91CD\u547D\u540D\u8BBE\u7F6E
+nameIsExist=\u540D\u79F0\u5DF2\u5B58\u5728
+nameIsTooLong=\u540D\u79F0\u8FC7\u957F\uFF0C\u8BF7\u9650\u5236\u572840\u4E2A\u5B57\u7B26\u5185

+ 0 - 1
datagear-web/src/main/resources/org/datagear/web/templates/dataSet/generated.ftl

@@ -39,7 +39,6 @@
                         axios('getIp/getIp')
                             .then((res) => {
                                 this.ip=res.data.ip
-                                console.log(this.ip)
                             })
                     }
                 },