This commit is contained in:
shiziyuan9527 2020-07-13 10:31:52 +08:00
commit 98eeb7bc2e
17 changed files with 1644 additions and 1015 deletions

View File

@ -1,5 +1,5 @@
package io.metersphere.commons.constants; package io.metersphere.commons.constants;
public enum APITestStatus { public enum APITestStatus {
Saved, Starting, Running, Completed, Error Saved, Starting, Running, Reporting, Completed, Error
} }

View File

@ -57,16 +57,11 @@ public class PersonRepoImpl implements PersonRepo {
LdapTemplate ldapTemplate = getConnection(); LdapTemplate ldapTemplate = getConnection();
String filter = getUserFilter(); String filter = getUserFilter();
String[] arr = getUserOu(); String ou = getUserOu();
List<Person> result = null; List<Person> result = null;
for (String ou : arr) {
try { try {
result = ldapTemplate.search(query().base(ou.trim()).filter(filter, username), getContextMapper()); result = ldapTemplate.search(query().base(ou).filter(filter, username), getContextMapper());
if (result.size() == 1) {
return result.get(0);
}
} catch (NameNotFoundException e) { } catch (NameNotFoundException e) {
MSException.throwException(Translator.get("login_fail_ou_error")); MSException.throwException(Translator.get("login_fail_ou_error"));
} catch (InvalidNameException e) { } catch (InvalidNameException e) {
@ -74,7 +69,6 @@ public class PersonRepoImpl implements PersonRepo {
} catch (InvalidSearchFilterException e) { } catch (InvalidSearchFilterException e) {
MSException.throwException(Translator.get("login_fail_filter_error")); MSException.throwException(Translator.get("login_fail_filter_error"));
} }
}
if (result.size() != 1) { if (result.size() != 1) {
MSException.throwException(Translator.get("user_not_found_or_not_unique")); MSException.throwException(Translator.get("user_not_found_or_not_unique"));
@ -93,16 +87,14 @@ public class PersonRepoImpl implements PersonRepo {
return filter; return filter;
} }
private String[] getUserOu() { private String getUserOu() {
String ou = service.getValue(ParamConstants.LDAP.OU.getValue()); String ou = service.getValue(ParamConstants.LDAP.OU.getValue());
if (StringUtils.isBlank(ou)) { if (StringUtils.isBlank(ou)) {
MSException.throwException(Translator.get("ldap_ou_is_null")); MSException.throwException(Translator.get("ldap_ou_is_null"));
} }
String[] arr = ou.split("\\|"); return ou;
return arr;
} }
protected ContextMapper getContextMapper() { protected ContextMapper getContextMapper() {

View File

@ -4,7 +4,7 @@
<el-card class="table-card" v-loading="result.loading"> <el-card class="table-card" v-loading="result.loading">
<template v-slot:header> <template v-slot:header>
<ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="search" <ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="search"
:title="$t('api_report.title')" :title="$t('api_report.title')" :advanced="advanced"
:show-create="false"/> :show-create="false"/>
</template> </template>
<el-table :data="tableData" class="table-content" @sort-change="sort" <el-table :data="tableData" class="table-content" @sort-change="sort"
@ -14,13 +14,13 @@
<el-table-column prop="testName" :label="$t('api_report.test_name')" width="200" show-overflow-tooltip/> <el-table-column prop="testName" :label="$t('api_report.test_name')" width="200" show-overflow-tooltip/>
<el-table-column prop="projectName" :label="$t('load_test.project_name')" width="150" show-overflow-tooltip/> <el-table-column prop="projectName" :label="$t('load_test.project_name')" width="150" show-overflow-tooltip/>
<el-table-column prop="userName" :label="$t('api_test.creator')" width="150" show-overflow-tooltip/> <el-table-column prop="userName" :label="$t('api_test.creator')" width="150" show-overflow-tooltip/>
<el-table-column width="250" :label="$t('commons.create_time')" sortable <el-table-column prop="createTime" width="250" :label="$t('commons.create_time')" sortable>
prop="createTime">
<template v-slot:default="scope"> <template v-slot:default="scope">
<span>{{ scope.row.createTime | timestampFormatDate }}</span> <span>{{ scope.row.createTime | timestampFormatDate }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="triggerMode" width="150" :label="'触发方式'" column-key="triggerMode" :filters="triggerFilters"> <el-table-column prop="triggerMode" width="150" :label="$t('commons.trigger_mode.name')"
column-key="triggerMode" :filters="triggerFilters">
<template v-slot:default="scope"> <template v-slot:default="scope">
<report-trigger-mode-item :trigger-mode="scope.row.triggerMode"/> <report-trigger-mode-item :trigger-mode="scope.row.triggerMode"/>
</template> </template>
@ -34,8 +34,10 @@
</el-table-column> </el-table-column>
<el-table-column width="150" :label="$t('commons.operating')"> <el-table-column width="150" :label="$t('commons.operating')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<ms-table-operator-button :tip="$t('api_report.detail')" icon="el-icon-s-data" @exec="handleView(scope.row)" type="primary"/> <ms-table-operator-button :tip="$t('api_report.detail')" icon="el-icon-s-data"
<ms-table-operator-button :is-tester-permission="true" :tip="$t('api_report.delete')" icon="el-icon-delete" @exec="handleDelete(scope.row)" type="danger"/> @exec="handleView(scope.row)" type="primary"/>
<ms-table-operator-button :is-tester-permission="true" :tip="$t('api_report.delete')"
icon="el-icon-delete" @exec="handleDelete(scope.row)" type="danger"/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -55,16 +57,21 @@
import {_filter, _sort} from "../../../../common/js/utils"; import {_filter, _sort} from "../../../../common/js/utils";
import MsTableOperatorButton from "../../common/components/MsTableOperatorButton"; import MsTableOperatorButton from "../../common/components/MsTableOperatorButton";
import ReportTriggerModeItem from "../../common/tableItem/ReportTriggerModeItem"; import ReportTriggerModeItem from "../../common/tableItem/ReportTriggerModeItem";
import {REPORT_CONFIGS} from "../../common/components/search/search-components";
export default { export default {
components: { components: {
ReportTriggerModeItem, ReportTriggerModeItem,
MsTableOperatorButton, MsTableOperatorButton,
MsApiReportStatus, MsMainContainer, MsContainer, MsTableHeader, MsTablePagination}, MsApiReportStatus, MsMainContainer, MsContainer, MsTableHeader, MsTablePagination
},
data() { data() {
return { return {
result: {}, result: {},
condition: {}, condition: {},
advanced: {
components: REPORT_CONFIGS
},
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
currentPage: 1, currentPage: 1,
@ -80,9 +87,9 @@
{text: 'Error', value: 'Error'} {text: 'Error', value: 'Error'}
], ],
triggerFilters: [ triggerFilters: [
{text: '手动', value: 'MANUAL'}, {text: this.$t('commons.trigger_mode.manual'), value: 'MANUAL'},
{text: '定时任务', value: 'SCHEDULE'}, {text: this.$t('commons.trigger_mode.schedule'), value: 'SCHEDULE'},
{text: 'API', value: 'API'} {text: this.$t('commons.trigger_mode.api'), value: 'API'}
], ],
} }
}, },
@ -92,7 +99,8 @@
}, },
methods: { methods: {
search() { search(advanced) {
console.log(advanced)
if (this.testId !== 'all') { if (this.testId !== 'all') {
this.condition.testId = this.testId; this.condition.testId = this.testId;
} }

View File

@ -4,7 +4,7 @@
<el-card class="table-card" v-loading="result.loading"> <el-card class="table-card" v-loading="result.loading">
<template v-slot:header> <template v-slot:header>
<ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="search" <ms-table-header :is-tester-permission="true" :condition.sync="condition" @search="search"
:title="$t('commons.test')" :title="$t('commons.test')" :advanced="advanced"
@create="create" :createTip="$t('load_test.create')"/> @create="create" :createTip="$t('load_test.create')"/>
</template> </template>
<el-table :data="tableData" class="table-content" @sort-change="sort" @row-click="handleView" <el-table :data="tableData" class="table-content" @sort-change="sort" @row-click="handleView"
@ -54,6 +54,7 @@
import MsApiTestStatus from "./ApiTestStatus"; import MsApiTestStatus from "./ApiTestStatus";
import MsTableOperators from "../../common/components/MsTableOperators"; import MsTableOperators from "../../common/components/MsTableOperators";
import {_filter, _sort} from "../../../../common/js/utils"; import {_filter, _sort} from "../../../../common/js/utils";
import {TEST_CONFIGS} from "../../common/components/search/search-components";
export default { export default {
components: { components: {
@ -64,6 +65,9 @@
return { return {
result: {}, result: {},
condition: {}, condition: {},
advanced: {
components: TEST_CONFIGS
},
projectId: null, projectId: null,
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
@ -102,9 +106,8 @@
create() { create() {
this.$router.push('/api/test/create'); this.$router.push('/api/test/create');
}, },
search() { search(advanced) {
console.log(advanced)
if (this.projectId !== 'all') { if (this.projectId !== 'all') {
this.condition.projectId = this.projectId; this.condition.projectId = this.projectId;
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<el-row :gutter="10" type="flex" justify="space-between" align="middle"> <el-row :gutter="10" type="flex" justify="space-between" align="middle">
<el-col v-if="extractType == 'Regex'" :span="5"> <el-col v-if="extractType === 'Regex'" :span="5">
<el-select :disabled="isReadOnly" class="extract-item" v-model="common.useHeaders" :placeholder="$t('api_test.request.assertions.select_subject')" size="small"> <el-select :disabled="isReadOnly" class="extract-item" v-model="common.useHeaders" :placeholder="$t('api_test.request.assertions.select_subject')" size="small">
<el-option v-for="item in useHeadersOption" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in useHeadersOption" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>

View File

@ -8,11 +8,13 @@
</el-row> </el-row>
<el-row type="flex" justify="space-between" align="middle"> <el-row type="flex" justify="space-between" align="middle">
<span class="operate-button"> <span class="operate-button">
<ms-table-button :is-tester-permission="isTesterPermission" v-if="showCreate" icon="el-icon-circle-plus-outline" :content="createTip" @click="create"/> <ms-table-button :is-tester-permission="isTesterPermission" v-if="showCreate" icon="el-icon-circle-plus-outline"
:content="createTip" @click="create"/>
<slot name="button"></slot> <slot name="button"></slot>
</span> </span>
<span> <span>
<ms-table-search-bar :condition.sync="condition" @change="search"/> <ms-table-search-bar :condition.sync="condition" @change="search" class="search-bar"/>
<ms-table-adv-search-bar :condition="advanced" @search="search" v-if="advanced"/>
</span> </span>
</el-row> </el-row>
</div> </div>
@ -22,10 +24,11 @@
<script> <script>
import MsTableSearchBar from './MsTableSearchBar'; import MsTableSearchBar from './MsTableSearchBar';
import MsTableButton from './MsTableButton'; import MsTableButton from './MsTableButton';
import MsTableAdvSearchBar from "./search/MsTableAdvSearchBar";
export default { export default {
name: "MsTableHeader", name: "MsTableHeader",
components: {MsTableSearchBar, MsTableButton}, components: {MsTableAdvSearchBar, MsTableSearchBar, MsTableButton},
props: { props: {
title: { title: {
type: String, type: String,
@ -40,6 +43,7 @@
condition: { condition: {
type: Object type: Object
}, },
advanced: Object,
createTip: { createTip: {
type: String, type: String,
default() { default() {
@ -52,9 +56,9 @@
} }
}, },
methods: { methods: {
search() { search(value) {
this.$emit('update:condition', this.condition); this.$emit('update:condition', this.condition);
this.$emit('search'); this.$emit('search', value);
}, },
create() { create() {
this.$emit('create'); this.$emit('create');
@ -79,4 +83,8 @@
margin-bottom: -5px; margin-bottom: -5px;
} }
.search-bar {
width: 200px
}
</style> </style>

View File

@ -0,0 +1,109 @@
<template>
<span class="adv-search-bar">
<el-link type="primary" @click="open">{{$t('commons.adv_search.title')}}</el-link>
<el-dialog :title="$t('commons.adv_search.combine')" :visible.sync="visible" width="70%">
<div>
<div class="search-label">{{$t('commons.adv_search.combine')}}: </div>
<el-select v-model="logic" :placeholder="$t('commons.please_select')" size="small" class="search-combine">
<el-option v-for="o in options" :key="o.value" :label="o.label" :value="o.value"/>
</el-select>
<div class="search-items">
<component class="search-item" v-for="(component, index) in condition.components" :key="index"
:is="component.name" :component="component"/>
</div>
</div>
<template v-slot:footer>
<div class="dialog-footer">
<el-button @click="visible = false">{{$t('commons.cancel')}}</el-button>
<el-button type="primary" @click="search">{{$t('commons.adv_search.search')}}</el-button>
</div>
</template>
</el-dialog>
</span>
</template>
<script>
import components from "./search-components";
export default {
components: {...components},
name: "MsTableAdvSearchBar",
props: {
condition: Object,
},
data() {
return {
visible: false,
options: [{
label: this.$t("commons.adv_search.and"),
value: "and"
}, {
label: this.$t("commons.adv_search.or"),
value: "or"
}],
logic: this.condition.logic || "and"
}
},
methods: {
search() {
let condition = {
logic: this.logic
}
this.condition.components.forEach(component => {
if (Array.isArray(component.value)) {
if (component.value.length > 0) {
condition[component.key] = {
operator: component.operator,
value: component.value
}
}
} else {
if (component.value !== undefined && component.value !== null) {
condition[component.key] = {
operator: component.operator,
value: component.value
}
}
}
});
this.$emit('search', condition);
},
open() {
this.visible = true;
}
}
}
</script>
<style scoped>
.adv-search-bar {
margin-left: 5px;
}
.dialog-footer {
text-align: center;
}
.search-label {
display: inline-block;
width: 80px;
box-sizing: border-box;
padding-left: 5px;
}
.search-combine {
width: 160px;
}
.search-items {
width: 100%;
}
.search-item {
display: inline-block;
width: 50%;
max-width: 50%;
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,72 @@
<template>
<div>
<div class="search-label">{{component.label}}:</div>
<el-select class="search-operator" v-model="operator" :placeholder="$t('commons.please_select')" size="small"
@change="change" @input="input">
<el-option v-for="o in operators" :key="o.value" :label="o.label" :value="o.value"/>
</el-select>
<div class="search-content" v-if="showContent(operator)">
<slot v-bind:component="component"></slot>
</div>
</div>
</template>
<script>
export default {
name: "MsTableSearchComponent",
props: ['component'],
data() {
return {
operators: this.component.operators || [],
operator: (() => {
if (this.component.operator === undefined && this.component.operators.length > 0) {
this.$emit('input', this.component.operators[0].value);
return this.component.operators[0].value;
} else {
this.component.operator
}
})()
}
},
methods: {
change(value) {
this.$emit('change', value);
},
input(value) {
this.$emit('input', value);
}
},
computed: {
showContent() {
return operator => {
if (this.component.showContent) {
return this.component.showContent(operator);
}
return true;
}
}
}
}
</script>
<style scoped>
.search-label {
display: inline-block;
width: 80px;
box-sizing: border-box;
padding-left: 5px;
}
.search-operator {
display: inline-block;
width: 160px;
}
.search-content {
display: inline-block;
margin: 0 5px 0 10px;
width: calc(100% - 255px);
}
</style>

View File

@ -0,0 +1,50 @@
<template>
<ms-table-search-component v-model="component.operator" :component="component">
<template v-slot="scope">
<el-date-picker
v-model="scope.component.value" v-bind="scope.component.props"
:placeholder="$t('commons.date.select_date')" size="small"
:type="type" :key="type" value-format="timestamp"
:range-separator="$t('commons.date.range_separator')"
:start-placeholder="$t('commons.date.start_date')"
:end-placeholder="$t('commons.date.end_date')">
</el-date-picker>
</template>
</ms-table-search-component>
</template>
<script>
import MsTableSearchComponent from "./MsTableSearchComponet";
import {OPERATORS} from "./search-components"
export default {
name: "MsTableSearchDatePicker",
components: {MsTableSearchComponent},
props: ['component'],
data() {
return {
type: "daterange"
}
},
methods: {
change(value) {
if (value === OPERATORS.BETWEEN.value) {
if (!Array.isArray(this.component.value)) {
this.component.value = [];
}
this.type = "daterange";
} else {
if (Array.isArray(this.component.value)) {
this.component.value = "";
}
this.type = "date";
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,49 @@
<template>
<ms-table-search-component v-model="component.operator" :component="component" @change="change">
<template v-slot="scope">
<el-date-picker v-model="scope.component.value" v-bind="scope.component.props"
:placeholder="$t('commons.date.select_date_time')" size="small"
:type="type" :key="type" value-format="timestamp"
:range-separator="$t('commons.date.range_separator')"
:start-placeholder="$t('commons.date.start_date_time')"
:end-placeholder="$t('commons.date.end_date_time')">
</el-date-picker>
</template>
</ms-table-search-component>
</template>
<script>
import MsTableSearchComponent from "./MsTableSearchComponet";
import {OPERATORS} from "./search-components"
export default {
name: "MsTableSearchDateTimePicker",
components: {MsTableSearchComponent},
props: ['component'],
data() {
return {
type: "datetimerange"
}
},
methods: {
change(value) {
if (value === OPERATORS.BETWEEN.value) {
if (!Array.isArray(this.component.value)) {
this.component.value = [];
}
this.type = "datetimerange";
} else {
if (Array.isArray(this.component.value)) {
this.component.value = "";
}
this.type = "datetime";
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,31 @@
<template>
<ms-table-search-component v-model="component.operator" :component="component">
<template v-slot="scope">
<el-input v-model="scope.component.value" v-bind="props"
:placeholder="$t('commons.input_content')" size="small"/>
</template>
</ms-table-search-component>
</template>
<script>
import MsTableSearchComponent from "./MsTableSearchComponet";
export default {
name: "MsTableSearchInput",
components: {MsTableSearchComponent},
props: ['component'],
data() {
return {
props: {
maxlength: "60",
showWordLimit: true,
...this.component.props
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,53 @@
<template>
<ms-table-search-component v-model="component.operator" :component="component">
<template v-slot="scope">
<el-select v-model="scope.component.value" :placeholder="$t('commons.please_select')" size="small" filterable
v-bind="scope.component.props" class="search-select">
<el-option v-for="op in options" :key="op.value" :label="label(op)" :value="op.value"></el-option>
</el-select>
</template>
</ms-table-search-component>
</template>
<script>
import MsTableSearchComponent from "./MsTableSearchComponet";
export default {
name: "MsTableSearchSelect",
components: {MsTableSearchComponent},
props: ['component'],
data() {
return {
options: !(this.component.options instanceof Array) ? [] : this.component.options || []
}
},
created() {
if (!(this.component.options instanceof Array) && this.component.options.url) {
this.$get(this.component.options.url, response => {
if (response.data) {
response.data.forEach(item => {
this.options.push({label: item[this.component.options.labelKey], value: item[this.component.options.valueKey]})
})
}
})
}
},
computed: {
label() {
return op => {
if (this.component.options.showLabel) {
return this.component.options.showLabel(op);
}
return op.label;
}
}
}
}
</script>
<style scoped>
.search-select {
display: inline-block;
width: 100%;
}
</style>

View File

@ -0,0 +1,143 @@
import MsTableSearchInput from "./MsTableSearchInput";
import MsTableSearchDateTimePicker from "./MsTableSearchDateTimePicker";
import MsTableSearchDatePicker from "./MsTableSearchDatePicker";
import MsTableSearchSelect from "./MsTableSearchSelect";
import i18n from "../../../../../i18n/i18n";
export default {
MsTableSearchInput, MsTableSearchDatePicker, MsTableSearchDateTimePicker, MsTableSearchSelect
}
export const OPERATORS = {
LIKE: {
label: i18n.t("commons.adv_search.operators.like"),
value: "like"
},
NOT_LIKE: {
label: i18n.t("commons.adv_search.operators.not_like"),
value: "not like"
},
IN: {
label: i18n.t("commons.adv_search.operators.in"),
value: "in"
},
NOT_IN: {
label: i18n.t("commons.adv_search.operators.not_in"),
value: "not in"
},
GT: {
label: i18n.t("commons.adv_search.operators.gt"),
value: ">"
},
GE: {
label: i18n.t("commons.adv_search.operators.ge"),
value: ">="
},
LT: {
label: i18n.t("commons.adv_search.operators.lt"),
value: "<"
},
LE: {
label: i18n.t("commons.adv_search.operators.le"),
value: "<="
},
EQ: {
label: i18n.t("commons.adv_search.operators.equals"),
value: "=="
},
BETWEEN: {
label: i18n.t("commons.adv_search.operators.between"),
value: "between"
},
CURRENT_USER: {
label: i18n.t("commons.adv_search.operators.current_user"),
value: "current user"
},
}
export const NAME = {
key: "name",
name: 'MsTableSearchInput',
label: i18n.t('commons.name'),
operators: [OPERATORS.LIKE, OPERATORS.NOT_LIKE],
}
export const UPDATE_TIME = {
key: "updateTime",
name: 'MsTableSearchDateTimePicker',
label: i18n.t('commons.update_time'),
operators: [OPERATORS.BETWEEN, OPERATORS.GT, OPERATORS.GE, OPERATORS.LT, OPERATORS.LE, OPERATORS.EQ],
}
export const PROJECT_NAME = {
key: "projectName",
name: 'MsTableSearchInput',
label: i18n.t('commons.adv_search.project'),
operators: [OPERATORS.LIKE, OPERATORS.NOT_LIKE],
}
export const TEST_NAME = {
key: "testName",
name: 'MsTableSearchInput',
label: i18n.t('commons.adv_search.test'),
operators: [OPERATORS.LIKE, OPERATORS.NOT_LIKE],
}
export const CREATE_TIME = {
key: "createTime",
name: 'MsTableSearchDateTimePicker',
label: i18n.t('commons.create_time'),
operators: [OPERATORS.BETWEEN, OPERATORS.GT, OPERATORS.GE, OPERATORS.LT, OPERATORS.LE, OPERATORS.EQ],
}
export const STATUS = {
key: "status",
name: 'MsTableSearchSelect',
label: i18n.t('commons.status'),
operators: [OPERATORS.IN, OPERATORS.NOT_IN],
options: [
{label: "Saved", value: "Saved"}, {label: "Starting", value: "Starting"},
{label: "Running", value: "Running"}, {label: "Reporting", value: "Reporting"},
{label: "Completed", value: "Completed"}, {label: "Error", value: "Error"}
],
props: {
multiple: true
}
}
export const CREATOR = {
key: "creator",
name: 'MsTableSearchSelect',
label: i18n.t('api_test.creator'),
operators: [OPERATORS.IN, OPERATORS.NOT_IN, OPERATORS.CURRENT_USER],
options: {
url: "/user/list",
labelKey: "name",
valueKey: "id",
showLabel: option => {
return option.label + "(" + option.value + ")";
}
},
props: {
multiple: true
},
showContent: operator => {
return operator !== OPERATORS.CURRENT_USER.value;
}
}
export const TRIGGER_MODE = {
key: "triggerMode",
name: 'MsTableSearchSelect',
label: i18n.t('commons.trigger_mode.name'),
operators: [OPERATORS.IN, OPERATORS.NOT_IN],
options: [
{label: i18n.t("commons.trigger_mode.manual"), value: "MANUAL"},
{label: i18n.t("commons.trigger_mode.schedule"), value: "SCHEDULE"},
{label: i18n.t("commons.trigger_mode.api"), value: "API"}
],
props: {
multiple: true
}
}
export const TEST_CONFIGS = [NAME, UPDATE_TIME, PROJECT_NAME, CREATE_TIME, STATUS, CREATOR]
export const REPORT_CONFIGS = [NAME, TEST_NAME, PROJECT_NAME, CREATE_TIME, STATUS, CREATOR, TRIGGER_MODE]

View File

@ -1,8 +1,8 @@
<template> <template>
<span> <span>
<span v-if="triggerMode == 'MANUAL'">手动</span> <span v-if="triggerMode === 'MANUAL'">{{$t('commons.trigger_mode.manual')}}</span>
<span v-if="triggerMode == 'SCHEDULE'">定时任务</span> <span v-if="triggerMode === 'SCHEDULE'">{{$t('commons.trigger_mode.schedule')}}</span>
<span v-if="triggerMode == 'API'">API</span> <span v-if="triggerMode === 'API'">{{$t('commons.trigger_mode.api')}}</span>
</span> </span>
</template> </template>

View File

@ -1,285 +1,322 @@
export default { export default {
commons: { commons: {
'delete_cancelled': 'Delete cancelled', delete_cancelled: 'Delete cancelled',
'workspace': 'Workspace', workspace: 'Workspace',
'organization': 'Organization', organization: 'Organization',
'setting': 'Setting', setting: 'Setting',
'project': 'Project', project: 'Project',
'about_us': 'About Us', about_us: 'About Us',
current_project: 'Current Project', current_project: 'Current Project',
'name': 'Name', name: 'Name',
'description': 'Description', description: 'Description',
'clear': 'Clear', clear: 'Clear',
'save': 'Save', save: 'Save',
'save_success': 'Saved successfully', save_success: 'Saved successfully',
'delete_success': 'Deleted successfully', delete_success: 'Deleted successfully',
'modify_success': 'Modify Success', modify_success: 'Modify Success',
'copy_success': 'Copy Success', copy_success: 'Copy Success',
'delete_cancel': 'Deleted Cancel', delete_cancel: 'Deleted Cancel',
'confirm': 'Confirm', confirm: 'Confirm',
'cancel': 'Cancel', cancel: 'Cancel',
'prompt': 'Prompt', prompt: 'Prompt',
'operating': 'Operating', operating: 'Operating',
'input_limit': 'Within {0} and {1} characters', input_limit: 'Within {0} and {1} characters',
'login': 'Sign In', login: 'Sign In',
'welcome': 'Welcome back, please enter username and password to log in to MeterSphere', welcome: 'Welcome back, please enter username and password to log in to MeterSphere',
'username': 'Username', username: 'Username',
'password': 'Password', password: 'Password',
'input_username': 'Please enter username', input_username: 'Please enter username',
'input_password': 'Please enter password', input_password: 'Please enter password',
'test': 'Test', test: 'Test',
'create_time': 'Created Time', create_time: 'Created Time',
'update_time': 'Updated Time', update_time: 'Updated Time',
'add': 'Add', add: 'Add',
'member': 'Member', member: 'Member',
'email': 'Email', email: 'Email',
'phone': 'Phone', phone: 'Phone',
'role': 'Role', role: 'Role',
'personal_info': 'Personal Info', personal_info: 'Personal Info',
'status': 'Status', status: 'Status',
'show_all': 'Show All', show_all: 'Show All',
'show': 'Show', show: 'Show',
'report': 'Report', report: 'Report',
'user': 'User', user: 'User',
'system': 'System', system: 'System',
'personal_setting': 'Personal Setting', personal_setting: 'Personal Setting',
'test_resource_pool': 'Resource Pool', test_resource_pool: 'Resource Pool',
'system_setting': 'Settings', system_setting: 'Settings',
'api': 'API', api: 'API',
'performance': 'Performance', performance: 'Performance',
'functional': 'Functional test', functional: 'Functional test',
'input_content': 'Please enter content', input_content: 'Please enter content',
'create': 'Create', create: 'Create',
'edit': 'Edit', edit: 'Edit',
'copy': 'Copy', copy: 'Copy',
'refresh': 'Refresh', refresh: 'Refresh',
'remark': 'Remark', remark: 'Remark',
'delete': 'Delete', delete: 'Delete',
'not_filled': 'Not filled', not_filled: 'Not filled',
'please_select': 'Please select', please_select: 'Please select',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'personal_information': 'Personal Information', personal_information: 'Personal Information',
'exit_system': 'Exit System', exit_system: 'Exit System',
'verification': 'Verification', verification: 'Verification',
'system_parameter_setting': 'System Parameter Setting', system_parameter_setting: 'System Parameter Setting',
'connection_successful': 'Connection successful', connection_successful: 'Connection successful',
'connection_failed': 'Connection failed', connection_failed: 'Connection failed',
'save_failed': 'Saved failed', save_failed: 'Saved failed',
'host_cannot_be_empty': 'Host cannot be empty', host_cannot_be_empty: 'Host cannot be empty',
'port_cannot_be_empty': 'Port cannot be empty', port_cannot_be_empty: 'Port cannot be empty',
'account_cannot_be_empty': 'Account cannot be empty', account_cannot_be_empty: 'Account cannot be empty',
'title': 'Title', title: 'Title',
'custom': 'Custom', custom: 'Custom',
'select_date': 'Select date', select_date: 'Select date',
'calendar_heatmap': 'Calendar Heatmap', calendar_heatmap: 'Calendar Heatmap',
'months_1': 'Jan', months_1: 'Jan',
'months_2': 'Feb', months_2: 'Feb',
'months_3': 'Mar', months_3: 'Mar',
'months_4': 'Apr', months_4: 'Apr',
'months_5': 'May', months_5: 'May',
'months_6': 'Jun', months_6: 'Jun',
'months_7': 'Jul', months_7: 'Jul',
'months_8': 'Aug', months_8: 'Aug',
'months_9': 'Sep', months_9: 'Sep',
'months_10': 'Oct', months_10: 'Oct',
'months_11': 'Nov', months_11: 'Nov',
'months_12': 'Dec', months_12: 'Dec',
'weeks_0': 'Sun', weeks_0: 'Sun',
'weeks_1': 'Mon', weeks_1: 'Mon',
'weeks_2': 'Tues', weeks_2: 'Tues',
'weeks_3': 'Wed', weeks_3: 'Wed',
'weeks_4': 'Thur', weeks_4: 'Thur',
'weeks_5': 'Fri', weeks_5: 'Fri',
'weeks_6': 'Sat', weeks_6: 'Sat',
'test_unit': 'tests', test_unit: 'tests',
'remove': 'Remove', remove: 'Remove',
'remove_cancel': 'Remove Cancel', remove_cancel: 'Remove Cancel',
'remove_success': 'Remove Success', remove_success: 'Remove Success',
'tips': 'The authentication information has expired, please login again', tips: 'The authentication information has expired, please login again',
'not_performed_yet': 'Not performed yet', not_performed_yet: 'Not performed yet',
'incorrect_input': 'Incorrect input', incorrect_input: 'Incorrect input',
'delete_confirm': 'Please enter the following to confirm deletion:', delete_confirm: 'Please enter the following to confirm deletion:',
'login_username': 'ID or email', login_username: 'ID or email',
'input_login_username': 'Please input the user ID or email', input_login_username: 'Please input the user ID or email',
'input_name': 'Please enter name', input_name: 'Please enter name',
'formatErr': 'Format Error' formatErr: 'Format Error',
date: {
select_date:'Select date',
start_date:'Start date',
end_date:'End date',
select_date_time:'Select date and time',
start_date_time:'Start date and time',
end_date_time:'End date time',
range_separator: "To",
},
trigger_mode: {
name: "Trigger Mode",
manual: "Manual trigger",
schedule: "Scheduled Task",
api: "API call"
},
adv_search: {
title:'Advanced Search',
combine:'Combined query',
test: "Affiliated Test",
project: "Affiliated Project",
search: "Query",
and:'All',
or:'any one',
operators: {
like: "Contains",
not_like: "Not included",
in: "Belong to",
not_in: "Not belonging",
gt: "Greater than",
ge: "Greater than or equal to",
lt: "Less than",
le: "Less than or equal to",
equals: "Equal",
between: "Between",
current_user: "current user"
}
}
}, },
workspace: { workspace: {
'create': 'Create Workspace', create: 'Create Workspace',
'update': 'Update Workspace', update: 'Update Workspace',
'delete': 'Delete Workspace', delete: 'Delete Workspace',
'delete_confirm': 'Deleting the workspace will delete all resources (such as related projects, test cases, etc.) under the workspace. Are you sure you want to delete?', delete_confirm: 'Deleting the workspace will delete all resources (such as related projects, test cases, etc.) under the workspace. Are you sure you want to delete?',
'add': 'Add Workspace', add: 'Add Workspace',
'input_name': 'Please enter a workspace name', input_name: 'Please enter a workspace name',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'organization_name': 'Organization Name', organization_name: 'Organization Name',
'please_choose_organization': 'Please Choose Organization', please_choose_organization: 'Please Choose Organization',
'please_select_a_workspace_first': 'Please select a workspace first!', please_select_a_workspace_first: 'Please select a workspace first!',
'none': 'None Workspace', none: 'None Workspace',
'select': 'Select Workspace', select: 'Select Workspace',
'special_characters_are_not_supported': 'Incorrect format (special characters are not supported and cannot end with \'-\')', special_characters_are_not_supported: 'Incorrect format (special characters are not supported and cannot end with \'-\')',
}, },
organization: { organization: {
'create': 'Create Organization', create: 'Create Organization',
'modify': 'Modify', modify: 'Modify',
'delete': 'Delete Organization', delete: 'Delete Organization',
'delete_confirm': 'Deleting this organization will delete all resources (such as related workspaces, projects, test cases, etc.) under this organization. Are you sure you want to delete?', delete_confirm: 'Deleting this organization will delete all resources (such as related workspaces, projects, test cases, etc.) under this organization. Are you sure you want to delete?',
'input_name': 'Please enter a organization name', input_name: 'Please enter a organization name',
'select_organization': 'Please select organization', select_organization: 'Please select organization',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'special_characters_are_not_supported': 'Incorrect format (special characters are not supported and cannot end with \'-\')', special_characters_are_not_supported: 'Incorrect format (special characters are not supported and cannot end with \'-\')',
'none': 'None Organization', none: 'None Organization',
'select': 'Select Organization', select: 'Select Organization',
}, },
project: { project: {
'name': 'Project name', name: 'Project name',
'recent': 'Recent Projects', recent: 'Recent Projects',
'create': 'Create Project', create: 'Create Project',
'edit': 'Edit Project', edit: 'Edit Project',
'delete': 'Delete project', delete: 'Delete project',
'delete_confirm': 'Deleting this project will delete all test resources under this project. Are you sure you want to delete?', delete_confirm: 'Deleting this project will delete all test resources under this project. Are you sure you want to delete?',
'delete_tip': 'Deleting this project will delete all test resources under this project. Are you sure you want to delete?', delete_tip: 'Deleting this project will delete all test resources under this project. Are you sure you want to delete?',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'input_name': 'Please enter a workspace name', input_name: 'Please enter a workspace name',
'owning_workspace': 'Owning Workspace', owning_workspace: 'Owning Workspace',
'please_choose_workspace': 'Please select Workspace', please_choose_workspace: 'Please select Workspace',
'special_characters_are_not_supported': 'Incorrect format (special characters are not supported and cannot end with \'-\')', special_characters_are_not_supported: 'Incorrect format (special characters are not supported and cannot end with \'-\')',
}, },
member: { member: {
'create': 'Create', create: 'Create',
'modify': 'Modify', modify: 'Modify',
'delete_confirm': 'Are you sure you want to delete this Member?', delete_confirm: 'Are you sure you want to delete this Member?',
'please_choose_member': 'Please Choose Member', please_choose_member: 'Please Choose Member',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'modify_personal_info': 'Modify Personal Information', modify_personal_info: 'Modify Personal Information',
'edit_password': 'Edit Password', edit_password: 'Edit Password',
'edit_information': 'Edit Information', edit_information: 'Edit Information',
'input_name': 'Please enter a user name', input_name: 'Please enter a user name',
'input_email': 'Please enter a email', input_email: 'Please enter a email',
'special_characters_are_not_supported': 'Special characters are not supported', special_characters_are_not_supported: 'Special characters are not supported',
'mobile_number_format_is_incorrect': 'Mobile number format is incorrect', mobile_number_format_is_incorrect: 'Mobile number format is incorrect',
'email_format_is_incorrect': 'Email format is incorrect', email_format_is_incorrect: 'Email format is incorrect',
'password_format_is_incorrect': 'Valid password: 8-16 digits, English upper and lower case letters + numbers + special characters (optional)', password_format_is_incorrect: 'Valid password: 8-16 digits, English upper and lower case letters + numbers + special characters (optional)',
'old_password': 'Old Password', old_password: 'Old Password',
'new_password': 'New Password', new_password: 'New Password',
'remove_member': 'Are you sure you want to remove this member', remove_member: 'Are you sure you want to remove this member',
'input_id_or_email': 'Please enter user ID, or user Email', input_id_or_email: 'Please enter user ID, or user Email',
'no_such_user': 'Without this user information, please enter the correct user ID or user Email!', no_such_user: 'Without this user information, please enter the correct user ID or user Email!',
}, },
user: { user: {
'create': 'Create', create: 'Create',
'modify': 'Modify', modify: 'Modify',
'input_name': 'Please enter a user name', input_name: 'Please enter a user name',
'input_id': 'Please enter a ID', input_id: 'Please enter a ID',
'input_email': 'Please enter a email', input_email: 'Please enter a email',
'input_password': 'Please enter a password', input_password: 'Please enter a password',
'input_phone': 'Please enter phone number', input_phone: 'Please enter phone number',
'special_characters_are_not_supported': 'Special characters are not supported', special_characters_are_not_supported: 'Special characters are not supported',
'mobile_number_format_is_incorrect': 'Mobile number format is incorrect', mobile_number_format_is_incorrect: 'Mobile number format is incorrect',
'email_format_is_incorrect': 'Email format is incorrect', email_format_is_incorrect: 'Email format is incorrect',
'delete_confirm': 'Are you sure you want to delete this User?', delete_confirm: 'Are you sure you want to delete this User?',
'apikey_delete_confirm': 'Are you sure you want to delete this API Key?', apikey_delete_confirm: 'Are you sure you want to delete this API Key?',
'input_id_placeholder': 'Please enter ID (only supports numbers and English letters)' input_id_placeholder: 'Please enter ID (only supports numbers and English letters)'
}, },
role: { role: {
'please_choose_role': 'Please Choose Role', please_choose_role: 'Please Choose Role',
'admin': 'Admin', admin: 'Admin',
'org_admin': 'Org_Admin', org_admin: 'Org_Admin',
'test_manager': 'Test Manager', test_manager: 'Test Manager',
'test_user': 'Test User', test_user: 'Test User',
'test_viewer': 'Test Viewer', test_viewer: 'Test Viewer',
'add': 'Add Role', add: 'Add Role',
}, },
report: { report: {
'recent': 'Recent Report', recent: 'Recent Report',
'search_by_name': 'Search by Name', search_by_name: 'Search by Name',
'test_name': 'Test', test_name: 'Test',
'test_overview': 'Test Overview', test_overview: 'Test Overview',
'test_request_statistics': 'Test Request Statistics', test_request_statistics: 'Test Request Statistics',
'test_error_log': 'Test Error Log', test_error_log: 'Test Error Log',
'test_log_details': 'Test Log Details', test_log_details: 'Test Log Details',
'test_details': 'Test Details', test_details: 'Test Details',
'test_duration': 'Test Duration{0} minutes {1} seconds', test_duration: 'Test Duration{0} minutes {1} seconds',
'test_start_time': 'Test Start Time', test_start_time: 'Test Start Time',
'test_end_time': 'Test End Time', test_end_time: 'Test End Time',
'test_stop_now': 'Test Stop Now', test_stop_now: 'Test Stop Now',
'test_stop_now_confirm': 'Are you sure you want to stop the current test immediately?', test_stop_now_confirm: 'Are you sure you want to stop the current test immediately?',
'test_rerun_confirm': 'Are you sure you want to rerun the current test immediately?', test_rerun_confirm: 'Are you sure you want to rerun the current test immediately?',
'test_stop_success': 'Test stop successfully', test_stop_success: 'Test stop successfully',
'test_execute_again': 'Test Execute Again', test_execute_again: 'Test Execute Again',
'export': 'Export', export: 'Export',
'compare': 'Compare', compare: 'Compare',
'generation_error': 'Report generation error, cannot be viewed!', generation_error: 'Report generation error, cannot be viewed!',
'being_generated': 'Report is being generated...', being_generated: 'Report is being generated...',
'delete_confirm': 'Confirm delete: ', delete_confirm: 'Confirm delete: ',
'start_status': 'The test is starting, please check the report later!', start_status: 'The test is starting, please check the report later!',
'run_status': 'The test is running, please check the report later', run_status: 'The test is running, please check the report later',
'user_name': 'Creator', user_name: 'Creator',
'project_name': 'Project Name' project_name: 'Project Name'
}, },
load_test: { load_test: {
'operating': 'Operating', operating: 'Operating',
'pressure_prediction_chart': 'Pressure Prediction Chart', pressure_prediction_chart: 'Pressure Prediction Chart',
'recent': 'Recent Tests', recent: 'Recent Tests',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'project_name': 'Project', project_name: 'Project',
'delete_confirm': 'Are you sure want to delete test: ', delete_confirm: 'Are you sure want to delete test: ',
'input_name': 'Please enter name', input_name: 'Please enter name',
'select_project': 'Please select project', select_project: 'Please select project',
'save_and_run': 'Save and execute', save_and_run: 'Save and execute',
'basic_config': 'Scene Configuration', basic_config: 'Scene Configuration',
'pressure_config': 'Pressure configuration', pressure_config: 'Pressure configuration',
'advanced_config': 'Advanced Configuration', advanced_config: 'Advanced Configuration',
'runtime_config': 'Runtime Configuration', runtime_config: 'Runtime Configuration',
'is_running': 'Test is running! ', is_running: 'Test is running! ',
'test_name_is_null': 'Test name cannot be empty! ', test_name_is_null: 'Test name cannot be empty! ',
'project_is_null': 'Project cannot be empty! ', project_is_null: 'Project cannot be empty! ',
'jmx_is_null': 'Must contain a JMX file, and can only contain a JMX file!', jmx_is_null: 'Must contain a JMX file, and can only contain a JMX file!',
'file_name': 'File name', file_name: 'File name',
'file_size': 'File size', file_size: 'File size',
'file_type': 'File Type', file_type: 'File Type',
'file_status': 'File Status', file_status: 'File Status',
'last_modify_time': 'Modify time', last_modify_time: 'Modify time',
'upload_tips': 'Drag files here, or <em> click to upload </em>', upload_tips: 'Drag files here, or <em> click to upload </em>',
'upload_type': 'Only JMX/CSV files can be uploaded', upload_type: 'Only JMX/CSV files can be uploaded',
'related_file_not_found': "No related test file found!", related_file_not_found: "No related test file found!",
'delete_file_confirm': 'Confirm delete file:', delete_file_confirm: 'Confirm delete file:',
'file_size_limit': "The number of files exceeds the limit", file_size_limit: "The number of files exceeds the limit",
'delete_file': "The file already exists, please delete the file with the same name first!", delete_file: "The file already exists, please delete the file with the same name first!",
'thread_num': 'Concurrent users:', thread_num: 'Concurrent users:',
'input_thread_num': 'Please enter the number of threads', input_thread_num: 'Please enter the number of threads',
'duration': 'Duration time (minutes):', duration: 'Duration time (minutes):',
'input_duration': 'Please enter a duration', input_duration: 'Please enter a duration',
'rps_limit': 'RPS Limit:', rps_limit: 'RPS Limit:',
'input_rps_limit': 'Please enter a limit', input_rps_limit: 'Please enter a limit',
'ramp_up_time_within': 'In', ramp_up_time_within: 'In',
'ramp_up_time_minutes': 'minutes, separate', ramp_up_time_minutes: 'minutes, separate',
'ramp_up_time_times': 'add concurrent users', ramp_up_time_times: 'add concurrent users',
'advanced_config_error': 'Advanced configuration verification failed', advanced_config_error: 'Advanced configuration verification failed',
'domain_bind': 'Domain bind', domain_bind: 'Domain bind',
'domain': 'Domain', domain: 'Domain',
'enable': 'Enable', enable: 'Enable',
'ip': 'IP', ip: 'IP',
'params': 'Parameters', params: 'Parameters',
'param_name': 'Name', param_name: 'Name',
'param_value': 'Value', param_value: 'Value',
'domain_is_duplicate': 'Domain is duplicated', domain_is_duplicate: 'Domain is duplicated',
'param_is_duplicate': 'Parameter name is duplicate', param_is_duplicate: 'Parameter name is duplicate',
'domain_ip_is_empty': 'Domain and IP cannot be empty', domain_ip_is_empty: 'Domain and IP cannot be empty',
'param_name_value_is_empty': 'Parameters cannot be empty', param_name_value_is_empty: 'Parameters cannot be empty',
'connect_timeout': 'Timeout to establish a connection', connect_timeout: 'Timeout to establish a connection',
'custom_http_code': 'Custom HTTP response success status code', custom_http_code: 'Custom HTTP response success status code',
'separated_by_commas': 'Separated by commas', separated_by_commas: 'Separated by commas',
'create': 'Create Test', create: 'Create Test',
'select_resource_pool': 'Please Select Resource Pool', select_resource_pool: 'Please Select Resource Pool',
'resource_pool_is_null': 'Resource Pool is empty', resource_pool_is_null: 'Resource Pool is empty',
'download_log_file': 'Download', download_log_file: 'Download',
'user_name': 'Creator', user_name: 'Creator',
'special_characters_are_not_supported': 'Test name does not support special characters', special_characters_are_not_supported: 'Test name does not support special characters',
'pressure_config_params_is_empty': 'Pressure configuration parameters cannot be empty!' pressure_config_params_is_empty: 'Pressure configuration parameters cannot be empty!'
}, },
api_test: { api_test: {
creator: "Creator", creator: "Creator",
@ -562,66 +599,66 @@ export default {
} }
}, },
test_resource_pool: { test_resource_pool: {
'type': 'type', type: 'type',
'enable_disable': 'Enable / disable', enable_disable: 'Enable / disable',
'search_by_name': 'Search by name', search_by_name: 'Search by name',
'create_resource_pool': 'Create resource pool', create_resource_pool: 'Create resource pool',
'update_resource_pool': 'Create resource pool', update_resource_pool: 'Create resource pool',
'select_pool_type': 'Select resource type', select_pool_type: 'Select resource type',
'max_threads': 'Maximum concurrent number', max_threads: 'Maximum concurrent number',
'input_pool_name': 'Please enter the resource pool name', input_pool_name: 'Please enter the resource pool name',
'pool_name_valid': 'Resource pool name does not support special characters', pool_name_valid: 'Resource pool name does not support special characters',
'cannot_remove_all_node': 'Cannot delete all independent nodes', cannot_remove_all_node: 'Cannot delete all independent nodes',
'cannot_empty': 'Resource pool cannot be empty', cannot_empty: 'Resource pool cannot be empty',
'fill_the_data': 'Please complete the data', fill_the_data: 'Please complete the data',
'delete_prompt': 'This operation will permanently delete the resource pool, continue?', delete_prompt: 'This operation will permanently delete the resource pool, continue?',
'status_change_success': 'Successfully changed the status!', status_change_success: 'Successfully changed the status!',
'status_change_failed': 'Failed to change the status, resource pool is invalid!', status_change_failed: 'Failed to change the status, resource pool is invalid!',
'check_in': 'Check in', check_in: 'Check in',
}, },
system_parameter_setting: { system_parameter_setting: {
'mailbox_service_settings': 'Mailbox Settings', mailbox_service_settings: 'Mailbox Settings',
'ldap_setting': 'LDAP Setting', ldap_setting: 'LDAP Setting',
'test_connection': 'Test connection', test_connection: 'Test connection',
'SMTP_host': 'SMTP host', SMTP_host: 'SMTP host',
'SMTP_port': 'SMTP port', SMTP_port: 'SMTP port',
'SMTP_account': 'SMTP account', SMTP_account: 'SMTP account',
'SMTP_password': 'SMTP password', SMTP_password: 'SMTP password',
'SSL': 'Turn on SSL (if the SMTP port is 465, you usually need to enable SSL)', SSL: 'Turn on SSL (if the SMTP port is 465, you usually need to enable SSL)',
'TLS': 'Turn on TLS (if the SMTP port is 587, you usually need to enable TLS)', TLS: 'Turn on TLS (if the SMTP port is 587, you usually need to enable TLS)',
'SMTP': 'Anonymous SMTP or not', SMTP: 'Anonymous SMTP or not',
}, },
i18n: { i18n: {
'home': 'Home' home: 'Home'
}, },
ldap: { ldap: {
'url': 'LDAP URL', url: 'LDAP URL',
'dn': 'Bind DN', dn: 'Bind DN',
'password': 'Password', password: 'Password',
'ou': 'User OU', ou: 'User OU',
'filter': 'User Filter', filter: 'User Filter',
'mapping': 'LDAP Mapping', mapping: 'LDAP Mapping',
'open': 'Enable LDAP Authentication', open: 'Enable LDAP Authentication',
'input_url': 'Please enter LDAP url', input_url: 'Please enter LDAP url',
'input_dn': 'Please enter DN', input_dn: 'Please enter DN',
'input_password': 'Please enter the password', input_password: 'Please enter the password',
'input_ou': 'Please enter user OU', input_ou: 'Please enter user OU',
'input_filter': 'Please enter a user filter', input_filter: 'Please enter a user filter',
'input_mapping': 'Please enter LDAP attribute mapping', input_mapping: 'Please enter LDAP attribute mapping',
'input_username': 'please enter user name', input_username: 'please enter user name',
'input_url_placeholder': 'Please enter the LDAP address (eg ldap://localhost:389)', input_url_placeholder: 'Please enter the LDAP address (eg ldap://localhost:389)',
'input_ou_placeholder': 'Enter user OU (use | to separate each OU)', input_ou_placeholder: 'Enter user OU (use | to separate each OU)',
'input_filter_placeholder': 'Input filter [Possible options are cn or uid or sAMAccountName={0}, eg: (uid={0})]', input_filter_placeholder: 'Input filter [Possible options are cn or uid or sAMAccountName={0}, eg: (uid={0})]',
'test_connect': 'Test Connection', test_connect: 'Test Connection',
'test_login': 'Test Login', test_login: 'Test Login',
'edit': 'Edit', edit: 'Edit',
'login_success': 'login success', login_success: 'login success',
'url_cannot_be_empty': 'LDAP address cannot be empty', url_cannot_be_empty: 'LDAP address cannot be empty',
'dn_cannot_be_empty': 'LDAP DN cannot be empty', dn_cannot_be_empty: 'LDAP DN cannot be empty',
'ou_cannot_be_empty': 'LDAP OU cannot be empty', ou_cannot_be_empty: 'LDAP OU cannot be empty',
'filter_cannot_be_empty': 'LDAP user filter cannot be empty', filter_cannot_be_empty: 'LDAP user filter cannot be empty',
'password_cannot_be_empty': 'LDAP password cannot be empty', password_cannot_be_empty: 'LDAP password cannot be empty',
}, },
schedule: { schedule: {
not_set: "Not Set", not_set: "Not Set",

View File

@ -1,284 +1,321 @@
export default { export default {
commons: { commons: {
'delete_cancelled': '已取消删除', delete_cancelled: '已取消删除',
'workspace': '工作空间', workspace: '工作空间',
'organization': '组织', organization: '组织',
'setting': '设置', setting: '设置',
'project': '项目', project: '项目',
'about_us': '关于', about_us: '关于',
current_project: '当前项目', current_project: '当前项目',
'name': '名称', name: '名称',
'description': '描述', description: '描述',
'clear': '清空', clear: '清空',
'save': '保存', save: '保存',
'save_success': '保存成功', save_success: '保存成功',
'delete_success': '删除成功', delete_success: '删除成功',
'copy_success': '复制成功', copy_success: '复制成功',
'modify_success': '修改成功', modify_success: '修改成功',
'delete_cancel': '已取消删除', delete_cancel: '已取消删除',
'confirm': '确定', confirm: '确定',
'cancel': '取消', cancel: '取消',
'prompt': '提示', prompt: '提示',
'operating': '操作', operating: '操作',
'input_limit': '长度在 {0} 到 {1} 个字符', input_limit: '长度在 {0} 到 {1} 个字符',
'login': '登录', login: '登录',
'welcome': '欢迎回来请输入用户名和密码登录MeterSphere', welcome: '欢迎回来请输入用户名和密码登录MeterSphere',
'username': '姓名', username: '姓名',
'password': '密码', password: '密码',
'input_username': '请输入用户姓名', input_username: '请输入用户姓名',
'input_password': '请输入密码', input_password: '请输入密码',
'test': '测试', test: '测试',
'create_time': '创建时间', create_time: '创建时间',
'update_time': '更新时间', update_time: '更新时间',
'add': '添加', add: '添加',
'member': '成员', member: '成员',
'email': '邮箱', email: '邮箱',
'phone': '电话', phone: '电话',
'role': '角色', role: '角色',
'personal_info': '个人信息', personal_info: '个人信息',
'status': '状态', status: '状态',
'show_all': '显示全部', show_all: '显示全部',
'show': '显示', show: '显示',
'report': '报告', report: '报告',
'user': '用户', user: '用户',
'system': '系统', system: '系统',
'personal_setting': '个人设置', personal_setting: '个人设置',
'test_resource_pool': '测试资源池', test_resource_pool: '测试资源池',
'system_setting': '系统设置', system_setting: '系统设置',
'api': '接口测试', api: '接口测试',
'performance': '性能测试', performance: '性能测试',
'functional': '功能测试', functional: '功能测试',
'input_content': '请输入内容', input_content: '请输入内容',
'create': '新建', create: '新建',
'edit': '编辑', edit: '编辑',
'copy': '复制', copy: '复制',
'refresh': '刷新', refresh: '刷新',
'remark': '备注', remark: '备注',
'delete': '删除', delete: '删除',
'not_filled': '未填写', not_filled: '未填写',
'please_select': '请选择', please_select: '请选择',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'personal_information': '个人信息', personal_information: '个人信息',
'exit_system': '退出系统', exit_system: '退出系统',
'verification': '验证', verification: '验证',
'title': '标题', title: '标题',
'custom': '自定义', custom: '自定义',
'select_date': '选择日期', select_date: '选择日期',
'calendar_heatmap': '测试日历', calendar_heatmap: '测试日历',
'months_1': '一月', months_1: '一月',
'months_2': '二月', months_2: '二月',
'months_3': '三月', months_3: '三月',
'months_4': '四月', months_4: '四月',
'months_5': '五月', months_5: '五月',
'months_6': '六月', months_6: '六月',
'months_7': '七月', months_7: '七月',
'months_8': '八月', months_8: '八月',
'months_9': '九月', months_9: '九月',
'months_10': '十月', months_10: '十月',
'months_11': '十一月', months_11: '十一月',
'months_12': '十二月', months_12: '十二月',
'weeks_0': '周日', weeks_0: '周日',
'weeks_1': '周一', weeks_1: '周一',
'weeks_2': '周二', weeks_2: '周二',
'weeks_3': '周三', weeks_3: '周三',
'weeks_4': '周四', weeks_4: '周四',
'weeks_5': '周五', weeks_5: '周五',
'weeks_6': '周六', weeks_6: '周六',
'test_unit': '测试', test_unit: '测试',
'system_parameter_setting': '系统参数设置', system_parameter_setting: '系统参数设置',
'connection_successful': '连接成功', connection_successful: '连接成功',
'connection_failed': '连接失败', connection_failed: '连接失败',
'save_failed': '保存失败', save_failed: '保存失败',
'host_cannot_be_empty': '主机不能为空', host_cannot_be_empty: '主机不能为空',
'port_cannot_be_empty': '端口号不能为空', port_cannot_be_empty: '端口号不能为空',
'account_cannot_be_empty': '帐户不能为空', account_cannot_be_empty: '帐户不能为空',
'remove': '移除', remove: '移除',
'remove_cancel': '移除取消', remove_cancel: '移除取消',
'remove_success': '移除成功', remove_success: '移除成功',
'tips': '认证信息已过期,请重新登录', tips: '认证信息已过期,请重新登录',
'not_performed_yet': '尚未执行', not_performed_yet: '尚未执行',
'incorrect_input': '输入内容不正确', incorrect_input: '输入内容不正确',
'delete_confirm': '请输入以下内容,确认删除:', delete_confirm: '请输入以下内容,确认删除:',
'login_username': 'ID 或 邮箱', login_username: 'ID 或 邮箱',
'input_login_username': '请输入用户 ID 或 邮箱', input_login_username: '请输入用户 ID 或 邮箱',
'input_name': '请输入名称', input_name: '请输入名称',
'formatErr': '格式错误' formatErr: '格式错误',
date: {
select_date: '选择日期',
start_date: '开始日期',
end_date: '结束日期',
select_date_time: '选择日期时间',
start_date_time: '开始日期时间',
end_date_time: '结束日期时间',
range_separator: "至",
},
trigger_mode: {
name: "触发方式",
manual: "手动触发",
schedule: "定时任务",
api: "API调用"
},
adv_search: {
title: '高级搜索',
combine: '组合查询',
test: "所属测试",
project: "所属项目",
search: "查询",
and: '所有',
or: '任意一个',
operators: {
like: "包含",
not_like: "不包含",
in: "属于",
not_in: "不属于",
gt: "大于",
ge: "大于等于",
lt: "小于",
le: "小于等于",
equals: "等于",
between: "之间",
current_user: "是当前登录用户"
}
}
}, },
workspace: { workspace: {
'create': '创建工作空间', create: '创建工作空间',
'update': '修改工作空间', update: '修改工作空间',
'delete': '删除工作空间', delete: '删除工作空间',
'delete_confirm': '删除该工作空间会关联删除该工作空间下的所有资源(如:相关项目,测试用例等),确定要删除吗?', delete_confirm: '删除该工作空间会关联删除该工作空间下的所有资源(如:相关项目,测试用例等),确定要删除吗?',
'add': '添加工作空间', add: '添加工作空间',
'input_name': '请输入工作空间名称', input_name: '请输入工作空间名称',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'organization_name': '所属组织', organization_name: '所属组织',
'please_choose_organization': '请选择组织', please_choose_organization: '请选择组织',
'please_select_a_workspace_first': '请先选择工作空间!', please_select_a_workspace_first: '请先选择工作空间!',
'none': '无工作空间', none: '无工作空间',
'select': '选择工作空间', select: '选择工作空间',
'special_characters_are_not_supported': '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)', special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)',
'delete_warning': '删除该工作空间将同步删除该工作空间下所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?', delete_warning: '删除该工作空间将同步删除该工作空间下所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?',
}, },
organization: { organization: {
'create': '创建组织', create: '创建组织',
'modify': '修改组织', modify: '修改组织',
'delete': '删除组织', delete: '删除组织',
'delete_confirm': '删除该组织会关联删除该组织下的所有资源(如:相关工作空间,项目,测试用例等),确定要删除吗?', delete_confirm: '删除该组织会关联删除该组织下的所有资源(如:相关工作空间,项目,测试用例等),确定要删除吗?',
'input_name': '请输入组织名称', input_name: '请输入组织名称',
'select_organization': '请选择组织', select_organization: '请选择组织',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'special_characters_are_not_supported': '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)', special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)',
'none': '无组织', none: '无组织',
'select': '选择组织', select: '选择组织',
'delete_warning': '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?', delete_warning: '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?',
}, },
project: { project: {
'recent': '最近的项目', recent: '最近的项目',
'create': '创建项目', create: '创建项目',
'edit': '编辑项目', edit: '编辑项目',
'delete': '删除项目', delete: '删除项目',
'delete_confirm': '确定要删除这个项目吗?', delete_confirm: '确定要删除这个项目吗?',
'delete_tip': '删除该项目,会删除该项目下所有测试资源,确定要删除吗?', delete_tip: '删除该项目,会删除该项目下所有测试资源,确定要删除吗?',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'input_name': '请输入项目名称', input_name: '请输入项目名称',
'owning_workspace': '所属工作空间', owning_workspace: '所属工作空间',
'please_choose_workspace': '请选择工作空间', please_choose_workspace: '请选择工作空间',
'special_characters_are_not_supported': '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)', special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)',
}, },
member: { member: {
'create': '添加成员', create: '添加成员',
'modify': '修改成员', modify: '修改成员',
'delete_confirm': '这个用户确定要删除吗?', delete_confirm: '这个用户确定要删除吗?',
'please_choose_member': '请选择成员', please_choose_member: '请选择成员',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'modify_personal_info': '修改个人信息', modify_personal_info: '修改个人信息',
'edit_password': '修改密码', edit_password: '修改密码',
'edit_information': '编辑信息', edit_information: '编辑信息',
'input_name': '请输入名称', input_name: '请输入名称',
'input_email': '请输入邮箱', input_email: '请输入邮箱',
'special_characters_are_not_supported': '不支持特殊字符', special_characters_are_not_supported: '不支持特殊字符',
'mobile_number_format_is_incorrect': '手机号码格式不正确', mobile_number_format_is_incorrect: '手机号码格式不正确',
'email_format_is_incorrect': '邮箱格式不正确', email_format_is_incorrect: '邮箱格式不正确',
'password_format_is_incorrect': '有效密码8-16位英文大小写字母+数字+特殊字符(可选)', password_format_is_incorrect: '有效密码8-16位英文大小写字母+数字+特殊字符(可选)',
'old_password': '旧密码', old_password: '旧密码',
'new_password': '新密码', new_password: '新密码',
'remove_member': '确定要移除该成员吗', remove_member: '确定要移除该成员吗',
'input_id_or_email': '请输入用户 ID, 或者 用户邮箱', input_id_or_email: '请输入用户 ID, 或者 用户邮箱',
'no_such_user': '无此用户信息, 请输入正确的用户 ID 或者 用户邮箱!', no_such_user: '无此用户信息, 请输入正确的用户 ID 或者 用户邮箱!',
}, },
user: { user: {
'create': '创建用户', create: '创建用户',
'modify': '修改用户', modify: '修改用户',
'input_name': '请输入用户姓名', input_name: '请输入用户姓名',
'input_id': '请输入ID', input_id: '请输入ID',
'input_email': '请输入邮箱', input_email: '请输入邮箱',
'input_password': '请输入密码', input_password: '请输入密码',
'input_phone': '请输入电话号码', input_phone: '请输入电话号码',
'special_characters_are_not_supported': '不支持特殊字符', special_characters_are_not_supported: '不支持特殊字符',
'mobile_number_format_is_incorrect': '手机号码格式不正确', mobile_number_format_is_incorrect: '手机号码格式不正确',
'email_format_is_incorrect': '邮箱格式不正确', email_format_is_incorrect: '邮箱格式不正确',
'delete_confirm': '这个用户确定要删除吗?', delete_confirm: '这个用户确定要删除吗?',
'apikey_delete_confirm': '这个 API Key 确定要删除吗?', apikey_delete_confirm: '这个 API Key 确定要删除吗?',
'input_id_placeholder': '请输入ID (只支持数字、英文字母)' input_id_placeholder: '请输入ID (只支持数字、英文字母)'
}, },
role: { role: {
'please_choose_role': '请选择角色', please_choose_role: '请选择角色',
'admin': '系统管理员', admin: '系统管理员',
'org_admin': '组织管理员', org_admin: '组织管理员',
'test_manager': '测试经理', test_manager: '测试经理',
'test_user': '测试人员', test_user: '测试人员',
'test_viewer': 'Viewer', test_viewer: 'Viewer',
'add': '添加角色', add: '添加角色',
}, },
report: { report: {
'recent': '最近的报告', recent: '最近的报告',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'test_name': '所属测试', test_name: '所属测试',
'test_overview': '测试概览', test_overview: '测试概览',
'test_request_statistics': '请求统计', test_request_statistics: '请求统计',
'test_error_log': '错误记录', test_error_log: '错误记录',
'test_log_details': '日志详情', test_log_details: '日志详情',
'test_details': '测试详情', test_details: '测试详情',
'test_duration': '持续时间:{0} 分钟 {1} 秒', test_duration: '持续时间:{0} 分钟 {1} 秒',
'test_start_time': '开始时间', test_start_time: '开始时间',
'test_end_time': '结束时间', test_end_time: '结束时间',
'test_stop_now': '立即停止', test_stop_now: '立即停止',
'test_stop_now_confirm': '确定要立即停止当前测试吗?', test_stop_now_confirm: '确定要立即停止当前测试吗?',
'test_rerun_confirm': '确定要再次执行当前测试吗?', test_rerun_confirm: '确定要再次执行当前测试吗?',
'test_stop_success': '停止成功', test_stop_success: '停止成功',
'test_execute_again': '再次执行', test_execute_again: '再次执行',
'export': '导出', export: '导出',
'compare': '比较', compare: '比较',
'generation_error': '报告生成错误,无法查看!', generation_error: '报告生成错误,无法查看!',
'being_generated': '报告正在生成中...', being_generated: '报告正在生成中...',
'delete_confirm': '确认删除报告: ', delete_confirm: '确认删除报告: ',
'start_status': '测试处于开始状态,请稍后查看报告!', start_status: '测试处于开始状态,请稍后查看报告!',
'run_status': '测试处于运行状态,请稍后查看报告!', run_status: '测试处于运行状态,请稍后查看报告!',
'user_name': '创建人', user_name: '创建人',
'project_name': '所属项目', project_name: '所属项目',
}, },
load_test: { load_test: {
'operating': '操作', operating: '操作',
'recent': '最近的测试', recent: '最近的测试',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'project_name': '所属项目', project_name: '所属项目',
'delete_confirm': '确认删除测试: ', delete_confirm: '确认删除测试: ',
'input_name': '请输入名称', input_name: '请输入名称',
'select_project': '请选择项目', select_project: '请选择项目',
'save_and_run': '保存并执行', save_and_run: '保存并执行',
'basic_config': '场景配置', basic_config: '场景配置',
'pressure_config': '压力配置', pressure_config: '压力配置',
'advanced_config': '高级配置', advanced_config: '高级配置',
'runtime_config': '运行配置', runtime_config: '运行配置',
'is_running': '正在运行!', is_running: '正在运行!',
'test_name_is_null': '测试名称不能为空!', test_name_is_null: '测试名称不能为空!',
'project_is_null': '项目不能为空!', project_is_null: '项目不能为空!',
'jmx_is_null': '必需包含一个JMX文件且只能包含一个JMX文件', jmx_is_null: '必需包含一个JMX文件且只能包含一个JMX文件',
'file_name': '文件名', file_name: '文件名',
'file_size': '文件大小', file_size: '文件大小',
'file_type': '文件类型', file_type: '文件类型',
'file_status': '文件状态', file_status: '文件状态',
'last_modify_time': '修改时间', last_modify_time: '修改时间',
'upload_tips': '将文件拖到此处,或<em>点击上传</em>', upload_tips: '将文件拖到此处,或<em>点击上传</em>',
'upload_type': '只能上传JMX/CSV文件', upload_type: '只能上传JMX/CSV文件',
'related_file_not_found': "未找到关联的测试文件!", related_file_not_found: "未找到关联的测试文件!",
'delete_file_confirm': '确认删除文件: ', delete_file_confirm: '确认删除文件: ',
'file_size_limit': "文件个数超出限制!", file_size_limit: "文件个数超出限制!",
'delete_file': "文件已存在,请先删除同名文件!", delete_file: "文件已存在,请先删除同名文件!",
'thread_num': '并发用户数:', thread_num: '并发用户数:',
'input_thread_num': '请输入线程数', input_thread_num: '请输入线程数',
'duration': '压测时长(分钟):', duration: '压测时长(分钟):',
'input_duration': '请输入时长', input_duration: '请输入时长',
'rps_limit': 'RPS上限', rps_limit: 'RPS上限',
'input_rps_limit': '请输入限制', input_rps_limit: '请输入限制',
'ramp_up_time_within': '在', ramp_up_time_within: '在',
'ramp_up_time_minutes': '分钟内,分', ramp_up_time_minutes: '分钟内,分',
'ramp_up_time_times': '次增加并发用户', ramp_up_time_times: '次增加并发用户',
'advanced_config_error': '高级配置校验失败', advanced_config_error: '高级配置校验失败',
'domain_bind': '域名绑定', domain_bind: '域名绑定',
'domain': '域名', domain: '域名',
'enable': '是否启用', enable: '是否启用',
'ip': 'IP地址', ip: 'IP地址',
'params': '自定义属性', params: '自定义属性',
'param_name': '属性名', param_name: '属性名',
'param_value': '属性值', param_value: '属性值',
'domain_is_duplicate': '域名不能重复', domain_is_duplicate: '域名不能重复',
'param_is_duplicate': '参数名不能重复', param_is_duplicate: '参数名不能重复',
'domain_ip_is_empty': '域名和IP不能为空', domain_ip_is_empty: '域名和IP不能为空',
'param_name_value_is_empty': '参数名和参数值不能为空', param_name_value_is_empty: '参数名和参数值不能为空',
'connect_timeout': '建立连接超时时间', connect_timeout: '建立连接超时时间',
'custom_http_code': '自定义 HTTP 响应成功状态码', custom_http_code: '自定义 HTTP 响应成功状态码',
'separated_by_commas': '按逗号分隔', separated_by_commas: '按逗号分隔',
'create': '创建测试', create: '创建测试',
'select_resource_pool': '请选择资源池', select_resource_pool: '请选择资源池',
'resource_pool_is_null': '资源池为空', resource_pool_is_null: '资源池为空',
'download_log_file': '下载完整日志文件', download_log_file: '下载完整日志文件',
'pressure_prediction_chart': '压力预估图', pressure_prediction_chart: '压力预估图',
'user_name': '创建人', user_name: '创建人',
'special_characters_are_not_supported': '测试名称不支持特殊字符', special_characters_are_not_supported: '测试名称不支持特殊字符',
'pressure_config_params_is_empty': '压力配置参数不能为空!' pressure_config_params_is_empty: '压力配置参数不能为空!'
}, },
api_test: { api_test: {
creator: "创建人", creator: "创建人",
@ -560,65 +597,65 @@ export default {
} }
}, },
test_resource_pool: { test_resource_pool: {
'type': '类型', type: '类型',
'enable_disable': '启用/禁用', enable_disable: '启用/禁用',
'search_by_name': '根据名称搜索', search_by_name: '根据名称搜索',
'create_resource_pool': '创建资源池', create_resource_pool: '创建资源池',
'update_resource_pool': '修改资源池', update_resource_pool: '修改资源池',
'select_pool_type': '选择资源类型', select_pool_type: '选择资源类型',
'max_threads': '最大并发数', max_threads: '最大并发数',
'input_pool_name': '请输入资源池名称', input_pool_name: '请输入资源池名称',
'pool_name_valid': '资源池名称不支持特殊字符', pool_name_valid: '资源池名称不支持特殊字符',
'cannot_remove_all_node': '不能删除所有独立节点', cannot_remove_all_node: '不能删除所有独立节点',
'cannot_empty': '资源池不能为空', cannot_empty: '资源池不能为空',
'fill_the_data': '请完善数据', fill_the_data: '请完善数据',
'delete_prompt': '此操作将永久删除该资源池, 是否继续?', delete_prompt: '此操作将永久删除该资源池, 是否继续?',
'status_change_success': '状态修改成功!', status_change_success: '状态修改成功!',
'status_change_failed': '状态修改失败, 校验不通过!', status_change_failed: '状态修改失败, 校验不通过!',
'check_in': '校验中', check_in: '校验中',
}, },
system_parameter_setting: { system_parameter_setting: {
'mailbox_service_settings': '邮件设置', mailbox_service_settings: '邮件设置',
'ldap_setting': 'LDAP设置', ldap_setting: 'LDAP设置',
'test_connection': '测试连接', test_connection: '测试连接',
'SMTP_host': 'SMTP主机', SMTP_host: 'SMTP主机',
'SMTP_port': 'SMTP端口', SMTP_port: 'SMTP端口',
'SMTP_account': 'SMTP账户', SMTP_account: 'SMTP账户',
'SMTP_password': 'SMTP密码', SMTP_password: 'SMTP密码',
'SSL': '开启SSL(如果SMTP端口是465通常需要启用SSL)', SSL: '开启SSL(如果SMTP端口是465通常需要启用SSL)',
'TLS': '开启TLS(如果SMTP端口是587通常需要启用TLS)', TLS: '开启TLS(如果SMTP端口是587通常需要启用TLS)',
'SMTP': '是否匿名 SMTP', SMTP: '是否匿名 SMTP',
}, },
i18n: { i18n: {
'home': '首页' home: '首页'
}, },
ldap: { ldap: {
'url': 'LDAP地址', url: 'LDAP地址',
'dn': '绑定DN', dn: '绑定DN',
'password': '密码', password: '密码',
'ou': '用户OU', ou: '用户OU',
'filter': '用户过滤器', filter: '用户过滤器',
'mapping': 'LDAP属性映射', mapping: 'LDAP属性映射',
'open': '启用LDAP认证', open: '启用LDAP认证',
'input_url': '请输入LDAP地址', input_url: '请输入LDAP地址',
'input_dn': '请输入DN', input_dn: '请输入DN',
'input_password': '请输入密码', input_password: '请输入密码',
'input_ou': '请输入用户OU', input_ou: '请输入用户OU',
'input_filter': '请输入用户过滤器', input_filter: '请输入用户过滤器',
'input_mapping': '请输入LDAP属性映射', input_mapping: '请输入LDAP属性映射',
'input_username': '请输入用户名', input_username: '请输入用户名',
'input_url_placeholder': '请输入LDAP地址 (如 ldap://localhost:389)', input_url_placeholder: '请输入LDAP地址 (如 ldap://localhost:389)',
'input_ou_placeholder': '输入用户OU (使用|分隔各OU)', input_ou_placeholder: '输入用户OU (使用|分隔各OU)',
'input_filter_placeholder': '输入过滤器 [可能的选项是cn或uid或sAMAccountName={0}, 如:(uid={0})]', input_filter_placeholder: '输入过滤器 [可能的选项是cn或uid或sAMAccountName={0}, 如:(uid={0})]',
'test_connect': '测试连接', test_connect: '测试连接',
'test_login': '测试登录', test_login: '测试登录',
'edit': '编辑', edit: '编辑',
'login_success': '登录成功', login_success: '登录成功',
'url_cannot_be_empty': 'LDAP 地址不能为空', url_cannot_be_empty: 'LDAP 地址不能为空',
'dn_cannot_be_empty': 'LDAP DN不能为空', dn_cannot_be_empty: 'LDAP DN不能为空',
'ou_cannot_be_empty': 'LDAP OU不能为空', ou_cannot_be_empty: 'LDAP OU不能为空',
'filter_cannot_be_empty': 'LDAP 用户过滤器不能为空', filter_cannot_be_empty: 'LDAP 用户过滤器不能为空',
'password_cannot_be_empty': 'LDAP 密码不能为空', password_cannot_be_empty: 'LDAP 密码不能为空',
}, },
schedule: { schedule: {
not_set: "未设置", not_set: "未设置",

View File

@ -1,283 +1,320 @@
export default { export default {
commons: { commons: {
'delete_cancelled': '已取消删除', delete_cancelled: '已取消删除',
'workspace': '工作空間', workspace: '工作空間',
'organization': '組織', organization: '組織',
'setting': '設置', setting: '設置',
'project': '項目', project: '項目',
'about_us': '關於', about_us: '關於',
current_project: '當前項目', current_project: '當前項目',
'name': '名稱', name: '名稱',
'description': '描述', description: '描述',
'clear': '清空', clear: '清空',
'save': '保存', save: '保存',
'save_success': '保存成功', save_success: '保存成功',
'delete_success': '刪除成功', delete_success: '刪除成功',
'copy_success': '複製成功', copy_success: '複製成功',
'modify_success': '修改成功', modify_success: '修改成功',
'delete_cancel': '已取消刪除', delete_cancel: '已取消刪除',
'confirm': '確定', confirm: '確定',
'cancel': '取消', cancel: '取消',
'prompt': '提示', prompt: '提示',
'operating': '操作', operating: '操作',
'input_limit': '長度在 {0} 到 {1} 個字符', input_limit: '長度在 {0} 到 {1} 個字符',
'login': '登錄', login: '登錄',
'welcome': '歡迎回來,請輸入用戶名和密碼登錄MeterSphere', welcome: '歡迎回來,請輸入用戶名和密碼登錄MeterSphere',
'username': '用戶名', username: '用戶名',
'password': '密碼', password: '密碼',
'input_username': '請輸入用戶名', input_username: '請輸入用戶名',
'input_password': '請輸入密碼', input_password: '請輸入密碼',
'test': '測試', test: '測試',
'create_time': '創建時間', create_time: '創建時間',
'update_time': '更新時間', update_time: '更新時間',
'add': '添加', add: '添加',
'member': '成員', member: '成員',
'email': '郵箱', email: '郵箱',
'phone': '電話', phone: '電話',
'role': '角色', role: '角色',
'personal_info': '個人信息', personal_info: '個人信息',
'status': '狀態', status: '狀態',
'show_all': '顯示全部', show_all: '顯示全部',
'show': '顯示', show: '顯示',
'report': '報告', report: '報告',
'user': '用戶', user: '用戶',
'system': '系統', system: '系統',
'personal_setting': '個人設置', personal_setting: '個人設置',
'test_resource_pool': '測試資源池', test_resource_pool: '測試資源池',
'system_setting': '系統設置', system_setting: '系統設置',
'api': '接口測試', api: '接口測試',
'performance': '性能測試', performance: '性能測試',
'functional': '功能測試', functional: '功能測試',
'input_content': '請輸入內容', input_content: '請輸入內容',
'create': '新建', create: '新建',
'edit': '編輯', edit: '編輯',
'copy': '複製', copy: '複製',
'refresh': '刷新', refresh: '刷新',
'remark': '備註', remark: '備註',
'delete': '刪除', delete: '刪除',
'not_filled': '未填寫', not_filled: '未填寫',
'please_select': '請選擇', please_select: '請選擇',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'personal_information': '個人信息', personal_information: '個人信息',
'exit_system': '退出系統', exit_system: '退出系統',
'verification': '驗證', verification: '驗證',
'title': '標題', title: '標題',
'custom': '自定義', custom: '自定義',
'select_date': '選擇日期', select_date: '選擇日期',
'calendar_heatmap': '測試日曆', calendar_heatmap: '測試日曆',
'months_1': '一月', months_1: '一月',
'months_2': '二月', months_2: '二月',
'months_3': '三月', months_3: '三月',
'months_4': '四月', months_4: '四月',
'months_5': '五月', months_5: '五月',
'months_6': '六月', months_6: '六月',
'months_7': '七月', months_7: '七月',
'months_8': '八月', months_8: '八月',
'months_9': '九月', months_9: '九月',
'months_10': '十月', months_10: '十月',
'months_11': '十一月', months_11: '十一月',
'months_12': '十二月', months_12: '十二月',
'weeks_0': '周日', weeks_0: '周日',
'weeks_1': '周一', weeks_1: '周一',
'weeks_2': '周二', weeks_2: '周二',
'weeks_3': '周三', weeks_3: '周三',
'weeks_4': '周四', weeks_4: '周四',
'weeks_5': '周五', weeks_5: '周五',
'weeks_6': '周六', weeks_6: '周六',
'test_unit': '測試', test_unit: '測試',
'system_parameter_setting': '系統參數設置', system_parameter_setting: '系統參數設置',
'connection_successful': '連接成功', connection_successful: '連接成功',
'connection_failed': '連接失敗', connection_failed: '連接失敗',
'save_failed': '保存失敗', save_failed: '保存失敗',
'host_cannot_be_empty': '主機不能為空', host_cannot_be_empty: '主機不能為空',
'port_cannot_be_empty': '埠號不能為空', port_cannot_be_empty: '埠號不能為空',
'account_cannot_be_empty': '帳戶不能為空', account_cannot_be_empty: '帳戶不能為空',
'remove': '移除', remove: '移除',
'remove_cancel': '移除取消', remove_cancel: '移除取消',
'remove_success': '移除成功', remove_success: '移除成功',
'tips': '认認證資訊已過期,請重新登入', tips: '认認證資訊已過期,請重新登入',
'not_performed_yet': '尚未執行', not_performed_yet: '尚未執行',
'incorrect_input': '輸入內容不正確', incorrect_input: '輸入內容不正確',
'delete_confirm': '請輸入以下內容,確認刪除:', delete_confirm: '請輸入以下內容,確認刪除:',
'input_name': '請輸入名稱', input_name: '請輸入名稱',
'formatErr': '格式錯誤' formatErr: '格式錯誤',
date: {
select_date: '選擇日期',
start_date: '開始日期',
end_date: '結束日期',
select_date_time: '選擇日期時間',
start_date_time: '開始日期時間',
end_date_time: '結束日期時間',
range_separator: "至",
},
trigger_mode: {
name: "觸發方式",
manual: "手動觸發",
schedule: "定時任務",
api: "API調用"
},
adv_search: {
title: '高級搜索',
combine: '組合查詢',
test: "所屬測試",
project: "所屬項目",
search: "查詢",
and: '所有',
or: '任意一個',
operators: {
like: "包含",
not_like: "不包含",
in: "屬於",
not_in: "不屬於",
gt: "大於",
ge: "大於等於",
lt: "小於",
le: "小於等於",
equals: "等於",
between: "之間",
current_user: "是當前登錄用戶"
}
}
}, },
workspace: { workspace: {
'create': '創建工作空間', create: '創建工作空間',
'update': '修改工作空間', update: '修改工作空間',
'delete': '刪除工作空間', delete: '刪除工作空間',
'delete_confirm': '删除該工作空間會關聯删除該工作空間下的所有資源(如:相關項目,測試用例等),確定要删除嗎?', delete_confirm: '删除該工作空間會關聯删除該工作空間下的所有資源(如:相關項目,測試用例等),確定要删除嗎?',
'add': '添加工作空間', add: '添加工作空間',
'input_name': '請輸入工作空間名稱', input_name: '請輸入工作空間名稱',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'organization_name': '所屬組織', organization_name: '所屬組織',
'please_choose_organization': '請選擇組織', please_choose_organization: '請選擇組織',
'please_select_a_workspace_first': '請先選擇工作空間! ', please_select_a_workspace_first: '請先選擇工作空間! ',
'none': '無工作空間', none: '無工作空間',
'select': '選擇工作空間', select: '選擇工作空間',
'special_characters_are_not_supported': '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)', special_characters_are_not_supported: '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)',
'delete_warning': '删除该工作空间将同步删除该工作空间下所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?', delete_warning: '删除该工作空间将同步删除该工作空间下所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?',
}, },
organization: { organization: {
'create': '創建組織', create: '創建組織',
'modify': '修改組織', modify: '修改組織',
'delete': '刪除組織', delete: '刪除組織',
'delete_confirm': '删除該組織會關聯删除該組織下的所有資源(如:相關工作空間,項目,測試用例等),確定要删除嗎?', delete_confirm: '删除該組織會關聯删除該組織下的所有資源(如:相關工作空間,項目,測試用例等),確定要删除嗎?',
'input_name': '請輸入組織名稱', input_name: '請輸入組織名稱',
'select_organization': '請選擇組織', select_organization: '請選擇組織',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'special_characters_are_not_supported': 'Incorrect format (special characters are not supported and cannot end with \'-\')', special_characters_are_not_supported: 'Incorrect format (special characters are not supported and cannot end with \'-\')',
'none': '無組織', none: '無組織',
'select': '選擇組織', select: '選擇組織',
'delete_warning': '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?', delete_warning: '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?',
}, },
project: { project: {
'recent': '最近的項目', recent: '最近的項目',
'create': '創建項目', create: '創建項目',
'edit': '編輯項目', edit: '編輯項目',
'delete': '刪除項目', delete: '刪除項目',
'delete_confirm': '確定要刪除這個項目嗎?', delete_confirm: '確定要刪除這個項目嗎?',
'delete_tip': '删除該項目,會删除該項目下所有測試資源,確定要删除嗎?', delete_tip: '删除該項目,會删除該項目下所有測試資源,確定要删除嗎?',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'input_name': '請輸入項目名稱', input_name: '請輸入項目名稱',
'owning_workspace': '所屬工作空間', owning_workspace: '所屬工作空間',
'please_choose_workspace': '請選擇工作空間', please_choose_workspace: '請選擇工作空間',
'special_characters_are_not_supported': '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)', special_characters_are_not_supported: '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)',
}, },
member: { member: {
'create': '添加成員', create: '添加成員',
'modify': '修改成員', modify: '修改成員',
'delete_confirm': '這個用戶確定要刪除嗎?', delete_confirm: '這個用戶確定要刪除嗎?',
'please_choose_member': '請選擇成員', please_choose_member: '請選擇成員',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'modify_personal_info': '修改個人信息', modify_personal_info: '修改個人信息',
'edit_password': '修改密碼', edit_password: '修改密碼',
'edit_information': '編輯信息', edit_information: '編輯信息',
'input_name': '請輸入名稱', input_name: '請輸入名稱',
'input_email': '請輸入郵箱', input_email: '請輸入郵箱',
'special_characters_are_not_supported': '不支持特殊字符', special_characters_are_not_supported: '不支持特殊字符',
'mobile_number_format_is_incorrect': '手機號碼格式不正確', mobile_number_format_is_incorrect: '手機號碼格式不正確',
'email_format_is_incorrect': '郵箱格式不正確', email_format_is_incorrect: '郵箱格式不正確',
'password_format_is_incorrect': '有效密碼8-16比特英文大小寫字母+數位+特殊字元(可選)', password_format_is_incorrect: '有效密碼8-16比特英文大小寫字母+數位+特殊字元(可選)',
'old_password': '舊密碼', old_password: '舊密碼',
'new_password': '新密碼', new_password: '新密碼',
'remove_member': '確定要移除該成員嗎', remove_member: '確定要移除該成員嗎',
'input_id_or_email': '請輸入用戶 ID, 或者 用戶郵箱', input_id_or_email: '請輸入用戶 ID, 或者 用戶郵箱',
'no_such_user': '無此用戶信息, 請輸入正確的用戶 ID 或者 用戶郵箱!', no_such_user: '無此用戶信息, 請輸入正確的用戶 ID 或者 用戶郵箱!',
}, },
user: { user: {
'create': '創建用戶', create: '創建用戶',
'modify': '修改用戶', modify: '修改用戶',
'input_name': '請輸入用戶名', input_name: '請輸入用戶名',
'input_id': '請輸入ID', input_id: '請輸入ID',
'input_email': '請輸入郵箱', input_email: '請輸入郵箱',
'input_password': '請輸入密碼', input_password: '請輸入密碼',
'input_phone': '請輸入電話號碼', input_phone: '請輸入電話號碼',
'special_characters_are_not_supported': '不支持特殊字符', special_characters_are_not_supported: '不支持特殊字符',
'mobile_number_format_is_incorrect': '手機號碼格式不正確', mobile_number_format_is_incorrect: '手機號碼格式不正確',
'email_format_is_incorrect': '郵箱格式不正確', email_format_is_incorrect: '郵箱格式不正確',
'delete_confirm': '這個用戶確定要刪除嗎?', delete_confirm: '這個用戶確定要刪除嗎?',
'apikey_delete_confirm': '這個 API Key 確定要刪除嗎?', apikey_delete_confirm: '這個 API Key 確定要刪除嗎?',
'input_id_placeholder': '請輸入ID (只支持數字、英文字母)' input_id_placeholder: '請輸入ID (只支持數字、英文字母)'
}, },
role: { role: {
'please_choose_role': '請選擇角色', please_choose_role: '請選擇角色',
'admin': '系統管理員', admin: '系統管理員',
'org_admin': '組織管理員', org_admin: '組織管理員',
'test_manager': '測試經理', test_manager: '測試經理',
'test_user': '測試人員', test_user: '測試人員',
'test_viewer': 'Viewer', test_viewer: 'Viewer',
'add': '添加角色', add: '添加角色',
}, },
report: { report: {
'name': '項目名稱', name: '項目名稱',
'recent': '最近的報告', recent: '最近的報告',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'test_name': '所屬測試', test_name: '所屬測試',
'test_overview': '測試概覽', test_overview: '測試概覽',
'test_request_statistics': '請求統計', test_request_statistics: '請求統計',
'test_error_log': '錯誤記錄', test_error_log: '錯誤記錄',
'test_log_details': '日誌詳情', test_log_details: '日誌詳情',
'test_details': '測試詳情', test_details: '測試詳情',
'test_duration': '持續時間:{0} 分鐘 {1} 秒', test_duration: '持續時間:{0} 分鐘 {1} 秒',
'test_start_time': '開始時間', test_start_time: '開始時間',
'test_end_time': '結束時間', test_end_time: '結束時間',
'test_stop_now': '立即停止', test_stop_now: '立即停止',
'test_stop_now_confirm': '確定要立即停止當前測試嗎?', test_stop_now_confirm: '確定要立即停止當前測試嗎?',
'test_rerun_confirm': '確定要再次執行當前測試嗎?', test_rerun_confirm: '確定要再次執行當前測試嗎?',
'test_stop_success': '停止成功', test_stop_success: '停止成功',
'test_execute_again': '再次執行', test_execute_again: '再次執行',
'export': '導出', export: '導出',
'compare': '比較', compare: '比較',
'generation_error': '報告生成錯誤,無法查看!', generation_error: '報告生成錯誤,無法查看!',
'being_generated': '報告正在生成中...', being_generated: '報告正在生成中...',
'delete_confirm': '確認刪除報告: ', delete_confirm: '確認刪除報告: ',
'start_status': '測試處於開始狀態,請稍後查看報告!', start_status: '測試處於開始狀態,請稍後查看報告!',
'run_status': '測試處於運行狀態,請稍後查看報告!', run_status: '測試處於運行狀態,請稍後查看報告!',
'user_name': '創建人', user_name: '創建人',
'project_name': '所屬項目' project_name: '所屬項目'
}, },
load_test: { load_test: {
'operating': '操作', operating: '操作',
'recent': '最近的測試', recent: '最近的測試',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'project_name': '所屬項目', project_name: '所屬項目',
'delete_confirm': '確認刪除測試: ', delete_confirm: '確認刪除測試: ',
'input_name': '請輸入名稱', input_name: '請輸入名稱',
'select_project': '請選擇項目', select_project: '請選擇項目',
'save_and_run': '保存並執行', save_and_run: '保存並執行',
'basic_config': '場景配置', basic_config: '場景配置',
'pressure_config': '壓力配置', pressure_config: '壓力配置',
'advanced_config': '高級配置', advanced_config: '高級配置',
'runtime_config': '運行配置', runtime_config: '運行配置',
'is_running': '正在運行! ', is_running: '正在運行! ',
'test_name_is_null': '測試名稱不能為空! ', test_name_is_null: '測試名稱不能為空! ',
'project_is_null': '項目不能為空! ', project_is_null: '項目不能為空! ',
'jmx_is_null': '必需包含一個JMX文件且只能包含一個JMX文件', jmx_is_null: '必需包含一個JMX文件且只能包含一個JMX文件',
'file_name': '文件名', file_name: '文件名',
'file_size': '文件大小', file_size: '文件大小',
'file_type': '文件類型', file_type: '文件類型',
'file_status': '文件狀態', file_status: '文件狀態',
'last_modify_time': '修改時間', last_modify_time: '修改時間',
'upload_tips': '將文件拖到此處,或<em>點擊上傳</em>', upload_tips: '將文件拖到此處,或<em>點擊上傳</em>',
'upload_type': '只能上傳JMX/CSV文件', upload_type: '只能上傳JMX/CSV文件',
'related_file_not_found': "未找到關聯的測試文件!", related_file_not_found: "未找到關聯的測試文件!",
'delete_file_confirm': '確認刪除文件: ', delete_file_confirm: '確認刪除文件: ',
'file_size_limit': "文件個數超出限制!", file_size_limit: "文件個數超出限制!",
'delete_file': "文件已存在,請先刪除同名文件!", delete_file: "文件已存在,請先刪除同名文件!",
'thread_num': '並髮用戶數:', thread_num: '並髮用戶數:',
'input_thread_num': '請輸入線程數', input_thread_num: '請輸入線程數',
'duration': '壓測時長(分鐘):', duration: '壓測時長(分鐘):',
'input_duration': '請輸入時長', input_duration: '請輸入時長',
'rps_limit': 'RPS上限', rps_limit: 'RPS上限',
'input_rps_limit': '請輸入限制', input_rps_limit: '請輸入限制',
'ramp_up_time_within': '在', ramp_up_time_within: '在',
'ramp_up_time_minutes': '分鐘內,分', ramp_up_time_minutes: '分鐘內,分',
'ramp_up_time_times': '次增加並髮用戶', ramp_up_time_times: '次增加並髮用戶',
'advanced_config_error': '高級配置校驗失敗', advanced_config_error: '高級配置校驗失敗',
'domain_bind': '域名綁定', domain_bind: '域名綁定',
'domain': '域名', domain: '域名',
'enable': '是否啟用', enable: '是否啟用',
'ip': 'IP地址', ip: 'IP地址',
'params': '自定義屬性', params: '自定義屬性',
'param_name': '屬性名', param_name: '屬性名',
'param_value': '屬性值', param_value: '屬性值',
'domain_is_duplicate': '域名不能重複', domain_is_duplicate: '域名不能重複',
'param_is_duplicate': '參數名不能重複', param_is_duplicate: '參數名不能重複',
'domain_ip_is_empty': '域名和IP不能為空', domain_ip_is_empty: '域名和IP不能為空',
'param_name_value_is_empty': '參數名和參數值不能為空', param_name_value_is_empty: '參數名和參數值不能為空',
'connect_timeout': '建立連接超時時間', connect_timeout: '建立連接超時時間',
'custom_http_code': '自定義 HTTP 響應成功狀態碼', custom_http_code: '自定義 HTTP 響應成功狀態碼',
'separated_by_commas': '按逗號分隔', separated_by_commas: '按逗號分隔',
'create': '創建測試', create: '創建測試',
'select_resource_pool': '請選擇資源池', select_resource_pool: '請選擇資源池',
'resource_pool_is_null': '資源池為空', resource_pool_is_null: '資源池為空',
'download_log_file': '下載完整日誌文件', download_log_file: '下載完整日誌文件',
'pressure_prediction_chart': '壓力預估圖', pressure_prediction_chart: '壓力預估圖',
'user_name': '創建人', user_name: '創建人',
'special_characters_are_not_supported': '測試名稱不支持特殊字符', special_characters_are_not_supported: '測試名稱不支持特殊字符',
'pressure_config_params_is_empty': '壓力配置參數不能為空!' pressure_config_params_is_empty: '壓力配置參數不能為空!'
}, },
api_test: { api_test: {
title: "測試", title: "測試",
@ -560,65 +597,65 @@ export default {
} }
}, },
test_resource_pool: { test_resource_pool: {
'type': '類型', type: '類型',
'enable_disable': '啟用/禁用', enable_disable: '啟用/禁用',
'search_by_name': '根據名稱搜索', search_by_name: '根據名稱搜索',
'create_resource_pool': '創建資源池', create_resource_pool: '創建資源池',
'update_resource_pool': '修改資源池', update_resource_pool: '修改資源池',
'select_pool_type': '選擇資源類型', select_pool_type: '選擇資源類型',
'max_threads': '最大並發數', max_threads: '最大並發數',
'input_pool_name': '請輸入資源池名稱', input_pool_name: '請輸入資源池名稱',
'pool_name_valid': '資源池名稱不支持特殊字符', pool_name_valid: '資源池名稱不支持特殊字符',
'cannot_remove_all_node': '不能刪除所有獨立節點', cannot_remove_all_node: '不能刪除所有獨立節點',
'cannot_empty': '資源池不能為空', cannot_empty: '資源池不能為空',
'fill_the_data': '請完善數據', fill_the_data: '請完善數據',
'delete_prompt': '此操作將永久刪除該資源池, 是否繼續?', delete_prompt: '此操作將永久刪除該資源池, 是否繼續?',
'status_change_success': '狀態修改成功!', status_change_success: '狀態修改成功!',
'status_change_failed': '狀態修改失敗, 校驗不通過!', status_change_failed: '狀態修改失敗, 校驗不通過!',
'check_in': '校驗中', check_in: '校驗中',
}, },
system_parameter_setting: { system_parameter_setting: {
'mailbox_service_settings': '郵件設置', mailbox_service_settings: '郵件設置',
'ldap_setting': 'LDAP設置', ldap_setting: 'LDAP設置',
'test_connection': '測試連結', test_connection: '測試連結',
'SMTP_host': 'SMTP主機', SMTP_host: 'SMTP主機',
'SMTP_port': 'SMTP埠', SMTP_port: 'SMTP埠',
'SMTP_account': 'SMTP帳戶', SMTP_account: 'SMTP帳戶',
'SMTP_password': 'SMTP密碼', SMTP_password: 'SMTP密碼',
'SSL': '開啟SSL如果SMTP埠是465通常需要啟用SSL', SSL: '開啟SSL如果SMTP埠是465通常需要啟用SSL',
'TLS': '開啟TLS如果SMTP埠是587通常需要啟用TLS', TLS: '開啟TLS如果SMTP埠是587通常需要啟用TLS',
'SMTP': '是否匿名 SMTP', SMTP: '是否匿名 SMTP',
}, },
i18n: { i18n: {
'home': '首頁' home: '首頁'
}, },
ldap: { ldap: {
'url': 'LDAP地址', url: 'LDAP地址',
'dn': '綁定DN', dn: '綁定DN',
'password': '密碼', password: '密碼',
'ou': '用戶OU', ou: '用戶OU',
'filter': '用戶過濾器', filter: '用戶過濾器',
'mapping': 'LDAP屬性映射', mapping: 'LDAP屬性映射',
'open': '啟用LDAP認證', open: '啟用LDAP認證',
'input_url': '請輸入LDAP地址', input_url: '請輸入LDAP地址',
'input_dn': '請輸入DN', input_dn: '請輸入DN',
'input_password': '請輸入密碼', input_password: '請輸入密碼',
'input_ou': '請輸入用戶OU', input_ou: '請輸入用戶OU',
'input_filter': '請輸入用戶過濾器', input_filter: '請輸入用戶過濾器',
'input_mapping': '請輸入LDAP屬性映射', input_mapping: '請輸入LDAP屬性映射',
'input_username': '請輸入用戶名', input_username: '請輸入用戶名',
'input_url_placeholder': '請輸入LDAP地址 (如 ldap://localhost:389)', input_url_placeholder: '請輸入LDAP地址 (如 ldap://localhost:389)',
'input_ou_placeholder': '輸入用戶OU (使用|分隔各OU)', input_ou_placeholder: '輸入用戶OU (使用|分隔各OU)',
'input_filter_placeholder': '輸入過濾器 [可能的選項是cn或uid或sAMAccountName={0}, 如:(uid={0})]', input_filter_placeholder: '輸入過濾器 [可能的選項是cn或uid或sAMAccountName={0}, 如:(uid={0})]',
'test_connect': '測試連接', test_connect: '測試連接',
'test_login': '測試登錄', test_login: '測試登錄',
'edit': '編輯', edit: '編輯',
'login_success': '登錄成功', login_success: '登錄成功',
'url_cannot_be_empty': 'LDAP 地址不能為空', url_cannot_be_empty: 'LDAP 地址不能為空',
'dn_cannot_be_empty': 'LDAP DN不能為空', dn_cannot_be_empty: 'LDAP DN不能為空',
'ou_cannot_be_empty': 'LDAP OU不能為空', ou_cannot_be_empty: 'LDAP OU不能為空',
'filter_cannot_be_empty': 'LDAP 用戶過濾器不能為空', filter_cannot_be_empty: 'LDAP 用戶過濾器不能為空',
'password_cannot_be_empty': 'LDAP 密碼不能為空', password_cannot_be_empty: 'LDAP 密碼不能為空',
}, },
schedule: { schedule: {
not_set: "未設置", not_set: "未設置",