fix: csv下载接口可以访问到系统目录

close #8652
This commit is contained in:
chenjianxing 2021-12-21 14:29:44 +08:00 committed by jianxing
parent cf2ae41dd2
commit d74e02cdff
6 changed files with 259 additions and 249 deletions

View File

@ -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);) {

View File

@ -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<FileSystemResource> 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 = "";

View File

@ -69,3 +69,5 @@ id_repeat_in_table=
template_already=
expect_name_exists=
id_not_rightful=
mock_warning=
invalid_parameter=

View File

@ -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

View File

@ -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不能为空

View File

@ -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期望