From d74e02cdff47cdf7524d305d098db6ffb7f61b47 Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Tue, 21 Dec 2021 14:29:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20csv=E4=B8=8B=E8=BD=BD=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E8=AE=BF=E9=97=AE=E5=88=B0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=20close=20#8652?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/ApiAutomationService.java | 2 + .../metersphere/service/ResourceService.java | 4 + .../main/resources/i18n/messages.properties | 2 + .../resources/i18n/messages_en_US.properties | 1 + .../resources/i18n/messages_zh_CN.properties | 1 + .../resources/i18n/messages_zh_TW.properties | 498 +++++++++--------- 6 files changed, 259 insertions(+), 249 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java index 34e067dda5..3fa56fb398 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java @@ -690,6 +690,8 @@ public class ApiAutomationService { } public byte[] loadFileAsBytes(FileOperationRequest fileOperationRequest) { + if (fileOperationRequest.getId().contains("/") || fileOperationRequest.getName().contains("/")) + MSException.throwException(Translator.get("invalid_parameter")); File file = new File(FileUtils.BODY_FILE_DIR + "/" + fileOperationRequest.getId() + "_" + fileOperationRequest.getName()); try (FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);) { diff --git a/backend/src/main/java/io/metersphere/service/ResourceService.java b/backend/src/main/java/io/metersphere/service/ResourceService.java index ebe96360dd..749dd7c9a6 100644 --- a/backend/src/main/java/io/metersphere/service/ResourceService.java +++ b/backend/src/main/java/io/metersphere/service/ResourceService.java @@ -1,7 +1,9 @@ package io.metersphere.service; +import io.metersphere.commons.exception.MSException; import io.metersphere.commons.utils.FileUtils; import io.metersphere.controller.request.MdUploadRequest; +import io.metersphere.i18n.Translator; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -24,6 +26,8 @@ public class ResourceService { } public ResponseEntity getMdImage(String name) { + if (name.contains("/")) + MSException.throwException(Translator.get("invalid_parameter")); File file = new File(FileUtils.MD_IMAGE_DIR + "/" + name); HttpHeaders headers = new HttpHeaders(); String fileName = ""; diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index 0f0dec8c9b..e646bc44c3 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -69,3 +69,5 @@ id_repeat_in_table= template_already= expect_name_exists= id_not_rightful= +mock_warning= +invalid_parameter= diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index d9ef3221d3..62b948d15e 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -9,6 +9,7 @@ connection_failed=Connection failed delete_fail=Delete fail start_engine_fail=Start fail upload_fail=Upload fail +invalid_parameter=Invalid parameter! #user related user_email_already_exists=User email already exists user_id_is_null=User ID cannot be null diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 9f11a35f49..70c9ec2030 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -8,6 +8,7 @@ error=出错 delete_fail=删除失败 start_engine_fail=启动失败 upload_fail=文件上传失败 +invalid_parameter=非法的参数 #user related user_email_already_exists=用户邮箱已存在 user_id_is_null=用户ID不能为空 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index a233421645..2784ba10a7 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -1,286 +1,286 @@ #commons -error_lang_invalid=語言參數錯誤 -file_cannot_be_null=文件不能為空! -cannot_be_null=不能為空 +error_lang_invalid=语言参数错误 +file_cannot_be_null=文件不能为空! +cannot_be_null=不能为空 number=第 row=行 -error=出錯 -connection_failed=連接失敗 -delete_fail=刪除失敗 -start_engine_fail=啟動失敗 -upload_fail=文件上傳失敗 +error=出错 +delete_fail=删除失败 +start_engine_fail=启动失败 +upload_fail=文件上传失败 +invalid_parameter=非法的参数 #user related -user_email_already_exists=用戶郵箱已存在 -user_id_is_null=用戶ID不能為空 -user_name_is_null=用戶名不能為空 -user_email_is_null=用戶郵箱不能為空 -password_is_null=密碼不能為空 -user_id_already_exists=用戶id已存在 -password_modification_failed=舊密碼輸入錯誤,請重新輸入 -cannot_delete_current_user=無法刪除當前登錄用戶 -user_already_exists=該用戶已存在於當前成員列表中 -cannot_remove_current=無法移除當前登錄用戶 -password_is_incorrect=用戶名或密碼不正確 -user_not_exist=用戶不存在: -user_has_been_disabled=用戶已被禁用 -excessive_attempts=操作頻繁 -user_locked=用戶被鎖定 -user_expires=用戶過期 -not_authorized=未經授權。 -login_fail=登入失敗 -user_apikey_limit=最多能有5個Api key -please_logout_current_user=請先登出當前用戶 +user_email_already_exists=用户邮箱已存在 +user_id_is_null=用户ID不能为空 +user_name_is_null=用户名不能为空 +user_email_is_null=用户邮箱不能为空 +password_is_null=密码不能为空 +user_id_already_exists=用户id已存在 +password_modification_failed=旧密码输入错误,请重新输入 +cannot_delete_current_user=无法删除当前登录用户 +connection_failed=连接失败 +user_already_exists=该用户已存在于当前成员列表中 +cannot_remove_current=无法移除当前登录用户 +login_fail=登录失败 +password_is_incorrect=用户名或密码不正确 +user_not_exist=用户不存在: +user_has_been_disabled=用户已被禁用 +excessive_attempts=操作频繁 +user_locked=用户被锁定 +user_expires=用户过期 +not_authorized=未经授权 +user_apikey_limit=最多能有5个Api key +please_logout_current_user=请先登出当前用户 #load test -edit_load_test_not_found=無法編輯測試,未找到測試: -run_load_test_not_found=無法運行測試,未找到測試: -run_load_test_file_not_found=無法運行測試,無法獲取測試文件元信息,測試ID: -run_load_test_file_content_not_found=無法運行測試,請前往 [系統設置-系統-系統參數設置] 檢查當前站點配置,詳情見 https://metersphere.io/docs/faq/load_test/#url -run_load_test_file_init_error=無法運行測試,請檢查當前站點配置 -load_test_is_running=測試正在運行, 請等待 -load_test_kafka_invalid=Kafka 不可用,請檢查配置 -cannot_edit_load_test_running=不能修改正在運行的測試 -test_not_found=測試不存在: -test_not_running=測試未運行 -load_test_already_exists=測試名稱不能重復 -load_test_name_length=測試名稱長度超過限制 -no_nodes_message=沒有節點信息 -duplicate_node_ip=節點 IP 重復 -duplicate_node_port=節點 Port 重復 -duplicate_node_ip_port=節點 IP、Port 重復 -max_thread_insufficient=並發用戶數超額 -related_case_del_fail_prefix=已關聯到 -related_case_del_fail_suffix=測試用例,請先解除關聯 -jmx_content_valid=JMX 內容無效,請檢查 -container_delete_fail=容器由於網絡原因停止失敗,請重試 -load_test_report_file_not_exist=當前報告沒有JTL文件,請等待或重新執行以便獲取 +edit_load_test_not_found=无法编辑测试,未找到测试: +run_load_test_not_found=无法运行测试,未找到测试: +run_load_test_file_not_found=无法运行测试,无法获取测试文件元信息,测试ID: +run_load_test_file_content_not_found=无法运行测试,无法获取测试文件内容,测试ID: +run_load_test_file_init_error=无法运行测试,请前往 [系统设置-系统-系统参数设置] 检查当前站点配置,详情见 https://metersphere.io/docs/faq/load_test/#url +load_test_is_running=测试正在运行, 请等待 +load_test_kafka_invalid=Kafka 不可用,请检查配置 +cannot_edit_load_test_running=不能修改正在运行的测试 +test_not_found=测试不存在: +test_not_running=测试未运行 +load_test_already_exists=测试名称不能重复 +load_test_name_length=测试名称长度超过限制 +no_nodes_message=没有节点信息 +duplicate_node_ip=节点 IP 重复 +duplicate_node_port=节点 Port 重复 +duplicate_node_ip_port=节点 IP、Port 重复 +max_thread_insufficient=并发用户数超额 +related_case_del_fail_prefix=已关联到 +related_case_del_fail_suffix=测试用例,请先解除关联 +jmx_content_valid=JMX 内容无效,请检查 +container_delete_fail=容器由于网络原因停止失败,请重试 +load_test_report_file_not_exist=当前报告没有JTL文件,请等待或重新执行以便获取 #workspace -workspace_name_is_null=工作空間名不能為空 -workspace_name_already_exists=工作空間名已存在 -workspace_does_not_belong_to_user=當前工作空間不屬於當前用戶 -workspace_not_exists=工作空間不存在 +workspace_name_is_null=工作空间名不能为空 +workspace_name_already_exists=工作空间名已存在 +workspace_does_not_belong_to_user=当前工作空间不属于当前用户 +workspace_not_exists=工作空间不存在 #test resource pool -test_resource_pool_id_is_null=資源池ID不能為空 -test_resource_pool_name_is_null=資源池名稱不能為空 -test_resource_pool_name_already_exists=資源池名稱已存在 -load_test=性能測試 -test_resource_pool_is_use=正在使用此資源池,無法刪除 -only_one_k8s=只能添加一個 K8S -test_resource_pool_not_exists=測試資源池不存在 -test_resource_pool_invalid=當前測試使用的資源池處於禁用狀態 +test_resource_pool_id_is_null=资源池ID不能为空 +test_resource_pool_name_is_null=资源池名称不能为空 +test_resource_pool_name_already_exists=资源池名称已存在 +load_test=性能测试 +test_resource_pool_is_use=正在使用此资源池,无法删除 +only_one_k8s=只能添加一个 K8S +test_resource_pool_not_exists=测试资源池不存在 +test_resource_pool_invalid=当前测试使用的资源池处于禁用状态 #project -project_name_is_null=項目名稱不能為空 -project_name_already_exists=項目名稱已存在 -project_file_already_exists=項目下文件已存在 -project_file_in_use=佔用文件,無法刪除。 +project_name_is_null=项目名称不能为空 +project_name_already_exists=项目名称已存在 +project_file_already_exists=项目下该文件已经存在 +project_file_in_use=占用文件,无法删除。 #organization -organization_name_is_null=組織名不能為空 -organization_name_already_exists=組織名已存在 -organization_does_not_belong_to_user=當前組織不屬於當前用戶 -organization_id_is_null=組織 ID 不能為空 +organization_name_is_null=组织名不能为空 +organization_name_already_exists=组织名已存在 +organization_does_not_belong_to_user=当前组织不属于当前用户 +organization_id_is_null=组织 ID 不能为空 #api -api_load_script_error=讀取腳本失敗 +api_load_script_error=读取脚本失败 illegal_xml_format=不合法的 XML 格式 -api_report_is_null="測試報告是未生成,無法更新" -api_test_environment_already_exists="已存在該名稱的環境配置" -api_test=接口測試 +api_report_is_null="测试报告是未生成,无法更新" +api_test_environment_already_exists="已存在该名称的环境配置" +api_test=接口测试 #test case -test_case_node_level=層 -test_case_node_level_tip=模塊樹最大深度為 -test_case_module_not_null=所屬模塊不能為空 -test_case_create_module_fail=創建模塊失敗 -test_case_import_template_name=測試用例模版 +test_case_node_level=层 +test_case_node_level_tip=模块树最大深度为 +test_case_module_not_null=所属模块不能为空 +test_case_create_module_fail=创建模块失败 +test_case_import_template_name=测试用例模版 test_case_import_template_sheet=模版 -module_not_null=所屬模塊不能為空格 -user_not_exists=該項目下無該用戶 -test_case_already_exists=該項目下已存在該測試用例 -parse_data_error=解析數據出錯 -missing_header_information=缺少頭部信息 -test_case_exist=該項目下已存在用例: -node_deep_limit=節點深度不超過8層! -before_delete_plan=該計劃下存在關聯測試用例,請先取消關聯! -incorrect_format=格式錯誤 -test_case_type_validate=必須為functional、performance、api -test_case_step_model_validate=必須為TEXT、STEP -test_case_priority_validate=必須為P0、P1、P2、P3 -test_case_method_validate=必須為manual、auto -test_case_name=用例名稱 -test_case_type=用例類型 -test_case_maintainer=維護人 -test_case_priority=用例等級 -test_case_method=測試方式 -test_case_prerequisite=前置條件 -test_case_remark=備註 -test_case_step_desc=步驟描述 -test_case_step_result=預期結果 -test_case_module=所屬模塊 +module_not_null=所属模块不能为空格 +user_not_exists=该项目下无该用户 +test_case_already_exists=该项目下已存在该测试用例 +parse_data_error=解析数据出错 +missing_header_information=缺少头部信息 +test_case_exist=该项目下已存在用例: +node_deep_limit=节点深度不超过8层! +before_delete_plan=该计划下存在关联测试用例,请先取消关联! +incorrect_format=格式错误 +test_case_type_validate=必须为functional、performance、api +test_case_step_model_validate=必须为TEXT、STEP +test_case_priority_validate=必须为P0、P1、P2、P3 +test_case_method_validate=必须为manual、auto +test_case_name=用例名称 +test_case_type=用例类型 +test_case_maintainer=维护人 +test_case_priority=用例等级 +test_case_method=测试方式 +test_case_prerequisite=前置条件 +test_case_remark=备注 +test_case_step_desc=步骤描述 +test_case_step_result=预期结果 +test_case_module=所属模块 test_case=功能用例 -user=用戶 -user_import_template_name=用戶導入模板 -user_import_template_sheet=模板 -user_import_format_wrong=格式錯誤 -user_import_id_is_repeat=ID重複 -user_import_email_is_repeat=E-mail重複 -user_import_password_format_wrong=密碼格式錯誤 -user_import_phone_format_wrong=手機號碼格式錯誤 -user_import_email_format_wrong=電子郵箱格式錯誤 -user_import_organization_not_fond=組織未找到 -user_import_workspace_not_fond=工作空間未找到 -org_admin=組織管理員 -org_member=組織成員 -test_manager=測試經理 -tester=測試成員 -read_only_user=只讀用戶 -module=模塊 -num_needed_modify_testcase=修改用例時ID必填 -num_needless_create_testcase=創建用例時無需ID -tag_tip_pattern=標籤之間以分號或者逗號隔開 -preconditions_optional=前置條件選填 -step_tip_separate=每個步驟以換行分隔 -step_tip_order=步驟前需標序號 -step_tip_optional=測試步驟和結果選填 -result_tip_separate=每條結果以換行分隔 -result_tip_order=結果前需標序號 -result_tip_optional=測試步驟和結果選填 -remark_optional=備註選填 -do_not_modify_header_order=請勿修改表頭順序 -module_created_automatically=若無該模塊將自動創建 -options=選項 +user=用户 +user_import_template_name=用户导入模板 +user_import_template_sheet=模版 +user_import_format_wrong=格式错误 +user_import_id_is_repeat=ID重复 +user_import_email_is_repeat=E-mail重复 +user_import_password_format_wrong=密码格式错误 +user_import_phone_format_wrong=手机号码格式错误 +user_import_email_format_wrong=电子邮箱格式错误 +user_import_organization_not_fond=组织未找到 +user_import_workspace_not_fond=工作空间未找到 +org_admin=组织管理员 +org_member=组织成员 +test_manager=测试经理 +tester=测试成员 +read_only_user=只读用户 +module=模块 +num_needed_modify_testcase=修改用例时ID必填 +num_needless_create_testcase=创建用例时无需ID +tag_tip_pattern=标签之间以分号或者逗号隔开 +preconditions_optional=前置条件选填 +step_tip_separate=每个步骤以换行分隔 +step_tip_order=步骤前需标序号 +step_tip_optional=测试步骤和结果选填 +result_tip_separate=每条结果以换行分隔 +result_tip_order=结果前需标序号 +result_tip_optional=测试步骤和结果选填 +remark_optional=备注选填 +do_not_modify_header_order=请勿修改表头顺序 +module_created_automatically=若无该模块将自动创建 +options=选项 options_yes=是 options_no=否 required=必填 -password_format_is_incorrect=有效密碼:8-30位,英文大小寫字母+數字+特殊字符(可選) -please_input_project_member=請填寫該項目的相關人員ID -test_case_report_template_repeat=同壹工作空間下不能存在同名模版 -plan_name_already_exists=測試計劃名稱已存在 -test_case_already_exists_excel=文件中存在多條相同用例 -test_case_module_already_exists=同層級下已存在該模塊名稱 -api_test_name_already_exists=測試名稱已經存在 -functional_method_tip=功能測試不支持自動方式 -custom_num_is_exist=用例自定義ID已存在 -custom_num_is_not_exist=用例自定義ID不存在 +password_format_is_incorrect=有效密码:8-30位,英文大小写字母+数字+特殊字符(可选) +please_input_project_member=请填写该项目下的相关人员ID +test_case_report_template_repeat=同一工作空间下不能存在同名模版 +plan_name_already_exists=测试计划名称已存在 +test_case_already_exists_excel=文件中存在多条相同用例 +test_case_module_already_exists=同层级下已存在该模块名称 +api_test_name_already_exists=测试名称已经存在 +functional_method_tip=功能测试不支持自动方式 +custom_num_is_exist=用例自定义ID已存在 +custom_num_is_not_exist=用例自定义ID不存在 id_required=ID必填 -id_repeat_in_table=表格內ID重複 -step_model_tip=步驟描述填寫 STEP,文本描述請填寫 TEXT (非必填) +id_repeat_in_table=表格内ID重复 +step_model_tip=步骤描述填写 STEP,文本描述请填写 TEXT (非必填) #ldap -ldap_url_is_null=LDAP地址為空 -ldap_dn_is_null=LDAP綁定DN為空 -ldap_ou_is_null=LDAP參數OU為空 -ldap_password_is_null=LDAP密碼為空 -ldap_connect_fail=連接LDAP失敗 -ldap_connect_fail_user=連接LDAP失敗,綁定的DN或密碼錯誤 -ldap_user_filter_is_null=LDAP用戶過濾器為空 -ldap_user_mapping_is_null=LDAP用戶屬性映射為空 -authentication_failed=用戶認證失敗,用戶名或密碼錯誤 -user_not_found_or_not_unique=用戶不存在或者不唯一 -find_more_user=查找到多個用戶 -ldap_authentication_not_enabled=LDAP認證未啟用 -login_fail_email_null=登錄失敗,用戶郵箱為空 -login_fail_ou_error=登錄失敗,請檢查用戶OU -login_fail_filter_error=登錄失敗,請檢查用戶過濾器 -check_ldap_mapping=檢查LDAP屬性映射 -ldap_mapping_value_null=LDAP用戶屬性映射預設為空值 +ldap_url_is_null=LDAP地址为空 +ldap_dn_is_null=LDAP绑定DN为空 +ldap_ou_is_null=LDAP参数OU为空 +ldap_password_is_null=LDAP密码为空 +ldap_connect_fail=连接LDAP失败 +ldap_connect_fail_user=连接LDAP失败,绑定的DN或密码错误 +ldap_user_filter_is_null=LDAP用户过滤器为空 +ldap_user_mapping_is_null=LDAP用户属性映射为空 +authentication_failed=用户认证失败,用户名或密码错误 +user_not_found_or_not_unique=用户不存在或者不唯一 +find_more_user=查找到多个用户 +ldap_authentication_not_enabled=LDAP认证未启用 +login_fail_email_null=登录失败,用户邮箱为空 +login_fail_ou_error=登录失败,请检查用户OU +login_fail_filter_error=登录失败,请检查用户过滤器 +check_ldap_mapping=检查LDAP属性映射 +ldap_mapping_value_null=LDAP用户属性映射字段为空值 #quota -quota_workspace_excess_org_api=工作空間的接口測試數量總和不能超過組織的配額 -quota_workspace_excess_org_performance=工作空間的性能測試數量總和不能超過組織的配額 -quota_workspace_excess_org_max_threads=工作空間的最大並發數不能超過組織的配額 -quota_workspace_excess_org_max_duration=工作空間的壓測時長不能超過組織的配額 -quota_workspace_excess_org_resource_pool=工作空間的資源池不能超過組織的資源池範圍 -quota_api_excess_workspace=接口測試數量超過工作空間限額 -quota_api_excess_organization=接口測試數量超過組織限額 -quota_performance_excess_workspace=性能測試數量超過工作空間限額 -quota_performance_excess_organization=性能測試數量超過組織限額 -quota_max_threads_excess_workspace=最大並發數超過工作空間限額 -quota_max_threads_excess_organization=最大並發數超過組織限額 -quota_duration_excess_workspace=壓測時長超過工作空間限額 -quota_duration_excess_organization=壓測時長超過組織限額 -license_valid_license_error=授權驗證失敗 -license_valid_license_code=授權碼已經存在 -import_xmind_count_error=思維導圖導入用例數量不能超過 800 條 +quota_workspace_excess_org_api=工作空间的接口测试数量总和不能超过组织的配额 +quota_workspace_excess_org_performance=工作空间的性能测试数量总和不能超过组织的配额 +quota_workspace_excess_org_max_threads=工作空间的最大并发数不能超过组织的配额 +quota_workspace_excess_org_max_duration=工作空间的压测时长不能超过组织的配额 +quota_workspace_excess_org_resource_pool=工作空间的资源池不能超过组织的资源池范围 +quota_api_excess_workspace=接口测试数量超过工作空间限额 +quota_api_excess_organization=接口测试数量超过组织限额 +quota_performance_excess_workspace=性能测试数量超过工作空间限额 +quota_performance_excess_organization=性能测试数量超过组织限额 +quota_max_threads_excess_workspace=最大并发数超过工作空间限额 +quota_max_threads_excess_organization=最大并发数超过组织限额 +quota_duration_excess_workspace=压测时长超过工作空间限额 +quota_duration_excess_organization=压测时长超过组织限额 +import_xmind_count_error=思维导图导入用例数量不能超过 800 条 +license_valid_license_error=授权认证失败 import_xmind_not_found=未找到测试用例 -test_review_task_notice=測試評審任務通知 -swagger_url_scheduled_import_notification=swagger_url定時導入通知 -test_track.length_less_than=標題過長,字數必須小於 +test_review_task_notice=测试评审任务通知 +swagger_url_scheduled_import_notification=swagger_url定时导入通知 +test_track.length_less_than=标题过长,字数必须小于 # check owner -check_owner_project=當前用戶沒有操作此項目的權限 -check_owner_test=當前用戶沒有操作此測試的權限 -check_owner_case=當前用戶沒有操作此用例的權限 -check_owner_plan=當前用戶沒有操作此計劃的權限 -check_owner_review=當前用戶沒有操作此評審的權限 -check_owner_comment=當前用戶沒有操作此評論的權限 -check_owner_read_only=當前用戶在此工作空間為只讀用戶 -upload_content_is_null=導入內容為空 -test_plan_notification=測試計畫通知 -task_defect_notification=缺陷任務通知 -task_notification_jenkins=jenkins任務通知 -task_notification=任務通知 -task_notification_=定時任務通知 -api_definition_url_not_repeating=接口請求地址已經存在 -message_task_already_exists=任務接收人已經存在 +check_owner_project=当前用户没有操作此项目的权限 +check_owner_test=当前用户没有操作此测试的权限 +check_owner_case=当前用户没有操作此用例的权限 +check_owner_plan=当前用户没有操作此计划的权限 +check_owner_review=当前用户没有操作此评审的权限 +check_owner_comment=当前用户没有操作此评论的权限 +check_owner_read_only=当前用户在此工作空间为只读用户 +upload_content_is_null=导入内容为空 +test_plan_notification=测试计划通知 +task_defect_notification=缺陷任务通知 +task_notification_=定时任务结果通知 +api_definition_url_not_repeating=接口请求地址已经存在 +task_notification_jenkins=jenkins任务通知 +task_notification=任务通知 +message_task_already_exists=任务接收人已经存在 #automation -automation_name_already_exists=同一個項目下,場景名稱不能重複 -automation_exec_info=沒有測試步驟,無法執行 -delete_check_reference_by=被場景引用 -not_execute=未執行 -execute_not_pass=未通過 -execute_pass=通過 +automation_name_already_exists=同一个项目下,场景名称不能重复 +automation_exec_info=没有测试步骤,无法执行 +delete_check_reference_by=被场景引用 +not_execute=未执行 +execute_not_pass=未通过 +execute_pass=通过 #authsource -authsource_name_already_exists=認證源名稱已經存在 -authsource_name_is_null=認證源名稱不能為空 -authsource_configuration_is_null=認證源配置不能為空 -custom_field_already=工作空間下已存在該字段: -template_already=工作空間下已存在該模板: -expect_name_exists=預期名稱已存在 -ssl_password_error=認證密碼錯誤,請重新輸入密碼 -ssl_file_error=認證文件加載失敗,請檢查認證文件 +authsource_name_already_exists=认证源名称已经存在 +authsource_name_is_null=认证源名称不能为空 +authsource_configuration_is_null=认证源配置不能为空 +custom_field_already=工作空间下已存在该字段: +template_already=工作空间下已存在该模板: +expect_name_exists=预期名称已存在 +ssl_password_error=认证密码错误,请重新输入密码 +ssl_file_error=认证文件加载失败,请检查认证文件 #log -api_definition=接口定義 -api_definition_case=接口定義用例 -api_automation=接口自動化 -api_automation_report=測試報告 -track_test_case=測試用例 -track_test_case_review=用例評審 -track_test_plan=測試計劃 +api_definition=接口定义 +api_definition_case=接口定义用例 +api_automation=接口自动化 +api_automation_report=测试报告 +track_test_case=测试用例 +track_test_case_review=用例评审 +track_test_plan=测试计划 track_bug=缺陷管理 -track_report=報告 -performance_test=性能測試 -performance_test_report=性能測試報告 +track_report=报告 +performance_test=性能测试 +performance_test_report=性能测试报告 system_user=系统-用户 -system_organization=系統-組織 -system_workspace=系统-工作空间 -system_test_resource=系统-測試資源池 -system_parameter_setting=系统-系統參數設置 -system_quota_management=系统-配額管理 -system_authorization_management=系统-授權管理 -organization_member=組織-成員 -organization_workspace=組織-工作空間 -workspace_service_integration=工作空間-服務集成 -workspace_message_settings=工作空間-消息設置 -workspace_member=工作空間-成員 -workspace_template_settings_field=工作空間-模版設置-自定義字段 -workspace_template_settings_case=工作空間-模版設置-用例模版 -workspace_template_settings_issue=工作空間-模版設置-缺陷模版 -project_project_manager=項目-項目管理 -project_project_member=項目-成員 +system_organization=系统-组织 +system_workspace=工作空间 +system_test_resource=系统-测试资源池 +system_parameter_setting=系统-系统参数设置 +system_quota_management=系统-配额管理 +system_authorization_management=系统-授权管理 +organization_member=组织-成员 +organization_workspace=组织-工作空间 +workspace_service_integration=工作空间-服务集成 +workspace_message_settings=工作空间-消息设置 +workspace_member=工作空间-成员 +workspace_template_settings_field=工作空间-模版设置-自定义字段 +workspace_template_settings_case=工作空间-模版设置-用例模版 +workspace_template_settings_issue=工作空间-模版设置-缺陷模版 +project_project_manager=项目-项目管理 +project_project_member=项目-成员 project_project_jar=項目-JAR包管理 -project_environment_setting=項目-環境設置 -project_file_management=項目-文件管理 -personal_information_personal_settings=個人信息-個人設置 -personal_information_apikeys=個人信息-API Keys +project_environment_setting=项目-环境设置 +project_file_management=项目-文件管理 +personal_information_personal_settings=个人信息-个人设置 +personal_information_apikeys=个人信息-API Keys auth_title=系统认证 -group_permission=用戶組與權限 +group_permission=用户组与权限 +test_case_status_prepare=未开始 +test_case_status_running=进行中 +test_case_status_finished=已完成 # track home api_case=接口用例 performance_case=性能用例 -scenario_case=場景用例 -test_case_status_prepare=未開始 -test_case_status_running=進行中 -test_case_status_finished=已完成 -test_case_status_error=失敗 +scenario_case=场景用例 +test_case_status_error=失败 test_case_status_success=成功 -test_case_status_trash=廢棄 +test_case_status_trash=废弃 test_case_status_saved=已保存 -create_user=創建人 -test_case_status=用例狀態 +create_user=创建人 +test_case_status=用例状态 id_not_rightful=ID 不合法 # mock mock_warning=未找到匹配的Mock期望