-
- {{ tab.title }}
+ {{ tab.title }}
diff --git a/src/workbench/browser/src/app/pages/api/api.component.scss b/src/workbench/browser/src/app/pages/api/api.component.scss
index 2d8674aa..1c4dab65 100644
--- a/src/workbench/browser/src/app/pages/api/api.component.scss
+++ b/src/workbench/browser/src/app/pages/api/api.component.scss
@@ -2,20 +2,41 @@ nz-content {
background-color: var(--MAIN_BG);
}
+:lang(zh) {
+ nz-select {
+ width: 132px;
+ }
+}
+
+:lang(en) {
+ nz-select {
+ width: 162px;
+ }
+}
+
nz-sider {
width: 250px;
background-color: #fff;
}
-::ng-deep {
+ ::ng-deep {
.ant-layout-sider-children {
border-right: 1px solid #f0f0f0;
- padding: 5px;
+ padding: 0 10px;
.group-btn-add,
.group-search {
margin-bottom: 12px;
}
}
+ .api-tabs .ant-tabs-nav-list {
+ width: 100%;
+ justify-content: space-evenly;
+ .ant-tabs-tab {
+ flex: 1;
+ justify-content: center;
+ margin: 0;
+ }
+ }
.tabs-bar {
background-color: var(--SEC_BG);
padding: 5px 10px 0 15px;
@@ -23,9 +44,6 @@ nz-sider {
margin-bottom: -1px;
align-items: center;
justify-content: space-between;
- .env {
- height: 36px;
- }
}
.content_container {
border-top: 1px solid var(--BORDER);
@@ -56,3 +74,22 @@ nz-sider {
color: var(--BLACK_TAG_BG);
}
}
+
+.api-tabs {
+ ::ng-deep .ant-tabs-tab {
+ padding: 0.2em 0;
+ }
+}
+
+.fix-mt {
+ margin-top: -6px;
+}
+
+nz-divider {
+ margin: 0.1em 0;
+}
+
+.manager-env {
+ color: #00785a;
+}
+
diff --git a/src/workbench/browser/src/app/pages/api/api.component.ts b/src/workbench/browser/src/app/pages/api/api.component.ts
index fc5379f1..595cb1fc 100644
--- a/src/workbench/browser/src/app/pages/api/api.component.ts
+++ b/src/workbench/browser/src/app/pages/api/api.component.ts
@@ -1,9 +1,12 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
+import { StorageRes, StorageResStatus } from '../../shared/services/storage/index.model';
import { Subject, takeUntil } from 'rxjs';
+import { Store } from '@ngxs/store';
import { Message, MessageService } from '../../shared/services/message';
import { ApiService } from './api.service';
import { StorageService } from '../../shared/services/storage';
+import { Change } from '../../shared/store/env.state';
import { RemoteService } from 'eo/workbench/browser/src/app/shared/services/remote/remote.service';
@Component({
@@ -20,17 +23,22 @@ export class ApiComponent implements OnInit, OnDestroy {
TABS = [
{
routerLink: 'detail',
- title: '文档',
+ title: $localize`:@@API Detail:Preview`,
},
{
routerLink: 'edit',
- title: '编辑',
+ title: $localize`Edit`,
},
{
routerLink: 'test',
- title: '测试',
+ title: $localize`Test`,
},
];
+ isOpen = false;
+ envInfo: any = {};
+ envList: Array
= [];
+ activeUuid: number | string = 0;
+ tabsIndex = 0;
private destroy$: Subject = new Subject();
constructor(
@@ -38,9 +46,23 @@ export class ApiComponent implements OnInit, OnDestroy {
private apiService: ApiService,
private messageService: MessageService,
private storage: StorageService,
- private remoteService: RemoteService
+ private remoteService: RemoteService,
+ private store: Store
) {}
+ get envUuid(): number {
+ return Number(localStorage.getItem('env:selected')) || 0;
+ }
+ set envUuid(value) {
+ this.activeUuid = value;
+ if (value !== null) {
+ localStorage.setItem('env:selected', value == null ? '' : value.toString());
+ } else {
+ localStorage.removeItem('env:selected');
+ }
+ this.changeStoreEnv(value);
+ }
+
ngOnInit(): void {
this.watchChangeRouter();
this.watchApiAction();
@@ -51,6 +73,18 @@ export class ApiComponent implements OnInit, OnDestroy {
title: 'Mock',
});
}
+ this.envUuid = Number(localStorage.getItem('env:selected'));
+ // * load All env
+ this.getAllEnv().then((result: any[]) => {
+ this.envList = result || [];
+ });
+ this.messageService.get().subscribe(({ type }) => {
+ if (type === 'updateEnv') {
+ this.getAllEnv().then((result: any[]) => {
+ this.envList = result || [];
+ });
+ }
+ });
}
ngOnDestroy() {
this.destroy$.next();
@@ -98,6 +132,38 @@ export class ApiComponent implements OnInit, OnDestroy {
});
}
clickContentMenu(data) {
- this.messageService.send({ type: 'beforeChangeRouter', data: data });
+ this.messageService.send({ type: 'beforeChangeRouter', data });
}
+
+ gotoEnvManager() {
+ // * switch to env
+ this.tabsIndex = 2;
+ }
+
+ getAllEnv(uuid?: number) {
+ const projectID = 1;
+ return new Promise((resolve) => {
+ this.storage.run('environmentLoadAllByProjectID', [projectID], async (result: StorageRes) => {
+ if (result.status === StorageResStatus.success) {
+ return resolve(result.data || []);
+ }
+ return resolve([]);
+ });
+ });
+ }
+
+ private changeStoreEnv(uuid) {
+ if (uuid == null) {
+ this.store.dispatch(new Change(null));
+ return;
+ }
+ this.storage.run('environmentLoadAllByProjectID', [1], (result: StorageRes) => {
+ if (result.status === StorageResStatus.success) {
+ const data = result.data.find((val) => val.uuid === Number(uuid));
+ this.store.dispatch(new Change(data));
+ }
+ });
+ }
+
+ handleEnvSelectStatus(event: boolean) {}
}
diff --git a/src/workbench/browser/src/app/pages/api/api.module.ts b/src/workbench/browser/src/app/pages/api/api.module.ts
index 6377745e..94000605 100644
--- a/src/workbench/browser/src/app/pages/api/api.module.ts
+++ b/src/workbench/browser/src/app/pages/api/api.module.ts
@@ -30,6 +30,7 @@ import { NzInputModule } from 'ng-zorro-antd/input';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzDividerModule } from 'ng-zorro-antd/divider';
import { NzCardModule } from 'ng-zorro-antd/card';
+import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzModalModule } from 'ng-zorro-antd/modal';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
@@ -38,8 +39,10 @@ import { ApiTabComponent } from './tab/api-tab.component';
import { ApiService } from './api.service';
import { ElectronService } from '../../core/services';
import { ApiOverviewComponent } from './overview/api-overview.component';
+import { HistoryComponent } from './history/eo-history.component';
import { ApiMockComponent } from './mock/api-mock.component';
import { IndexedDBStorage } from 'eo/workbench/browser/src/app/shared/services/storage/IndexedDB/lib/';
+import { SharedModule } from 'eo/workbench/browser/src/app/shared/shared.module';
const COMPONENTS = [
ApiComponent,
@@ -52,6 +55,7 @@ const COMPONENTS = [
ImportApiComponent,
ExtensionSelectComponent,
ApiMockComponent,
+ HistoryComponent,
];
@NgModule({
imports: [
@@ -79,7 +83,9 @@ const COMPONENTS = [
EnvModule,
NzCardModule,
NzModalModule,
+ NzSelectModule,
NzPopconfirmModule,
+ SharedModule,
],
declarations: [...COMPONENTS],
exports: [],
diff --git a/src/workbench/browser/src/app/pages/api/api.service.ts b/src/workbench/browser/src/app/pages/api/api.service.ts
index 71ad7a15..b13498ff 100644
--- a/src/workbench/browser/src/app/pages/api/api.service.ts
+++ b/src/workbench/browser/src/app/pages/api/api.service.ts
@@ -20,10 +20,10 @@ export class ApiService {
delete({ name, uuid }: ApiData): void {
this.nzModalService.confirm({
- nzTitle: '删除确认?',
- nzContent: `确认要删除数据 ${
+ nzTitle: $localize`Deletion Confirmation?`,
+ nzContent: $localize`Are you sure you want to delete the data ${
name.length > 50 ? name.slice(0, 50) + '...' : name
- } 吗?删除后不可恢复!`,
+ } ? You cannot restore it once deleted!`,
nzOnOk: () => {
this.storage.run('apiDataRemove', [uuid], (result: StorageRes) => {
if (result.status === StorageResStatus.success) {
diff --git a/src/workbench/browser/src/app/pages/api/detail/api-detail.component.html b/src/workbench/browser/src/app/pages/api/detail/api-detail.component.html
index bac9ba58..d1cdb10d 100644
--- a/src/workbench/browser/src/app/pages/api/detail/api-detail.component.html
+++ b/src/workbench/browser/src/app/pages/api/detail/api-detail.component.html
@@ -6,37 +6,45 @@
{{ apiData.name }}
- Body 请求参数{{ CONST.BODY_TYPE[apiData.requestBodyType] }}
- 最外层结构为:{{
- CONST.JSON_ROOT_TYPE[apiData.requestBodyJsonType] }}
+ Body
+ {{ CONST.BODY_TYPE[apiData.requestBodyType] }}
+ The outermost structure is: {{ CONST.JSON_ROOT_TYPE[apiData.requestBodyJsonType] }}
-
+
-
返回头部
+
Response Headers
diff --git a/src/workbench/browser/src/app/pages/api/detail/api-detail.service.ts b/src/workbench/browser/src/app/pages/api/detail/api-detail.service.ts
index 57d158ac..83191e06 100644
--- a/src/workbench/browser/src/app/pages/api/detail/api-detail.service.ts
+++ b/src/workbench/browser/src/app/pages/api/detail/api-detail.service.ts
@@ -57,7 +57,7 @@ export class ApiDetailService {
}
}
initListConf(opts) {
- opts.title = opts.title || '参数';
+ opts.title = opts.title || $localize`Param`;
return {
setting: {
draggable: true,
@@ -66,22 +66,22 @@ export class ApiDetailService {
itemStructure: Object.assign({}, opts.itemStructure),
tdList: [
{
- thKey: opts.nameTitle || `${opts.title}名`,
+ thKey: opts.nameTitle || $localize`${opts.title} Name`,
type: 'text',
modelKey: 'name',
- placeholder: opts.nameTitle || `${opts.title}名`,
+ placeholder: opts.nameTitle || $localize`${opts.title} Name`,
width: 250,
mark: 'name',
},
{
- thKey: '必填',
+ thKey: $localize`Required`,
type: 'html',
- html: '{{item.required?"是":""}}',
+ html: $localize`{{item.required?"True":""}}`,
width: 80,
mark: 'require',
},
{
- thKey: '说明',
+ thKey: $localize`:@@Description:Description`,
type: 'text',
modelKey: 'description',
width: 250,
@@ -89,7 +89,7 @@ export class ApiDetailService {
},
{
- thKey: '示例',
+ thKey: $localize`Example`,
type: 'text',
modelKey: 'example',
width: 200,
@@ -116,28 +116,28 @@ export class ApiDetailService {
itemStructure: Object.assign({}, opts.itemStructure),
tdList: [
{
- thKey: '参数名',
+ thKey: $localize`Param Name`,
type: 'depthHtml',
html: '
{{item.name}} ',
width: 260,
mark: 'name',
},
{
- thKey: '类型',
+ thKey: $localize`Type`,
type: 'text',
modelKey: 'type',
mark: 'type',
width: 80,
},
{
- thKey: '必填',
+ thKey: $localize`Required`,
type: 'html',
- html: '{{item.required?"是":""}}',
+ html: $localize`{{item.required?"True":""}}`,
width: 60,
mark: 'require',
},
{
- thKey: '说明',
+ thKey: $localize`:@@Description:Description`,
type: 'text',
modelKey: 'description',
width: 260,
@@ -145,20 +145,20 @@ export class ApiDetailService {
},
{
- thKey: '示例',
+ thKey: $localize`Example`,
type: 'text',
modelKey: 'example',
width: 200,
mark: 'example',
},
{
- thKey: `
{{$ctrl.data.isSpreedBtnClick?"全部收缩":"全部展开"}} `,
+ thKey: $localize`
{{$ctrl.data.isSpreedBtnClick?"Shrink All":"Expand All"}} `,
type: 'html',
- html: `
{{item.isClick?"收缩":"展开"}} `,
+ (item.enum && item.enum.length > 0 && item.enum[0].value)">{{item.isClick?"Shrink":"Expand"}}`,
mark: 'fn_btn',
width: '100px',
class: 'undivide_line_lbcc',
diff --git a/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.scss b/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.scss
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.ts b/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.ts
index d5b04197..2c7c14fe 100644
--- a/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.ts
+++ b/src/workbench/browser/src/app/pages/api/detail/body/api-detail-body.component.ts
@@ -4,8 +4,7 @@ import { ApiEditBody, ApiBodyType, JsonRootType } from '../../../../shared/servi
import { ApiDetailService } from '../api-detail.service';
@Component({
selector: 'eo-api-detail-body',
- templateUrl: './api-detail-body.component.html',
- styleUrls: ['./api-detail-body.component.scss'],
+ templateUrl: './api-detail-body.component.html'
})
export class ApiDetailBodyComponent implements OnInit, OnChanges, OnDestroy {
@Input() model: string | ApiEditBody[] | any;
@@ -55,7 +54,6 @@ export class ApiDetailBodyComponent implements OnInit, OnChanges, OnDestroy {
}
private initListConf() {
this.listConf = this.apiDetail.initBodyListConf({
- title: '参数',
itemStructure: this.itemStructure,
});
}
diff --git a/src/workbench/browser/src/app/pages/api/detail/header/api-detail-header.component.ts b/src/workbench/browser/src/app/pages/api/detail/header/api-detail-header.component.ts
index 3ce51e23..00dd0b81 100644
--- a/src/workbench/browser/src/app/pages/api/detail/header/api-detail-header.component.ts
+++ b/src/workbench/browser/src/app/pages/api/detail/header/api-detail-header.component.ts
@@ -22,8 +22,8 @@ export class ApiDetailHeaderComponent implements OnInit, OnChanges {
private initListConf() {
this.listConf = this.detailService.initListConf({
dragCacheVar: 'DRAG_VAR_API_EDIT_HEADER',
- title: '头部',
- nameTitle: '标签',
+ title: $localize`:@@Header:Header`,
+ nameTitle: $localize`Key`,
});
}
}
diff --git a/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.html b/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.html
index 24c83c0c..ecb7f12e 100644
--- a/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.html
+++ b/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.html
@@ -1,6 +1,6 @@
-
+
{{ scope.url }}
diff --git a/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.ts b/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.ts
index b664bc45..7acebda0 100644
--- a/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.ts
+++ b/src/workbench/browser/src/app/pages/api/detail/mock/api-detail-mock.component.ts
@@ -26,12 +26,12 @@ export class ApiDetailMockComponent implements OnInit, OnChanges {
listConf: object = {};
isVisible = false;
createWayMap = {
- system: '系统自动创建',
- custom: '手动创建',
+ system: $localize `System creation`,
+ custom: $localize `Manual creation`,
};
mockListColumns = [
- { title: '名称', key: 'name' },
- { title: '创建方式', slot: 'createWay' },
+ { title: $localize`Name`, key: 'name' },
+ { title: $localize`Created Type`, slot: 'createWay' },
{ title: 'URL', slot: 'url' },
];
private destroy$: Subject = new Subject();
@@ -140,6 +140,6 @@ export class ApiDetailMockComponent implements OnInit, OnChanges {
async copyText(text: string) {
await copyText(text);
- this.message.success('复制成功');
+ this.message.success($localize`Copied`);
}
}
diff --git a/src/workbench/browser/src/app/pages/api/edit/api-edit.component.html b/src/workbench/browser/src/app/pages/api/edit/api-edit.component.html
index f9ca9ed5..0b03fd17 100644
--- a/src/workbench/browser/src/app/pages/api/edit/api-edit.component.html
+++ b/src/workbench/browser/src/app/pages/api/edit/api-edit.component.html
@@ -1,7 +1,7 @@
- 保存
+ Save
-
+
- {{ panel.nzActive ? '收缩' : '展开' }}
+ {{ panel.nzActive ? 'Shrink' : 'Expand' }}
-
+
- 请求头部
- {{
+ Request Headers
+ {{
apiData.requestHeaders | apiParamsNum
}}
@@ -56,7 +57,7 @@
- 请求体
+ Body
- Query 参数
- {{
+ Query
+ {{
apiData.queryParams | apiParamsNum
}}
@@ -78,8 +79,8 @@
- REST 参数
- {{
+ REST
+ {{
apiData.restParams | apiParamsNum
}}
@@ -90,16 +91,17 @@
-
+
- {{ panelRes.nzActive ? '收缩' : '展开' }}
+ {{ panelRes.nzActive ? 'Shrink' : 'Expand' }}
- 返回头部
- {{
+ Response Headers
+ {{
apiData.responseHeaders | apiParamsNum
}}
@@ -108,7 +110,7 @@
- 返回结果
+ Response
+
diff --git a/src/workbench/browser/src/app/pages/api/edit/api-edit.component.ts b/src/workbench/browser/src/app/pages/api/edit/api-edit.component.ts
index c7ba5a21..06b68596 100644
--- a/src/workbench/browser/src/app/pages/api/edit/api-edit.component.ts
+++ b/src/workbench/browser/src/app/pages/api/edit/api-edit.component.ts
@@ -59,7 +59,7 @@ export class ApiEditComponent implements OnInit, OnDestroy {
this.groups = [];
const treeItems: any = [
{
- title: '根目录',
+ title: $localize`Root directory`,
//!actually is 0,but 0 will hidden in nz component,so use -1 replace 0
key: '-1',
weight: 0,
diff --git a/src/workbench/browser/src/app/pages/api/edit/api-edit.service.ts b/src/workbench/browser/src/app/pages/api/edit/api-edit.service.ts
index 2ce98a2a..61937519 100644
--- a/src/workbench/browser/src/app/pages/api/edit/api-edit.service.ts
+++ b/src/workbench/browser/src/app/pages/api/edit/api-edit.service.ts
@@ -6,7 +6,7 @@ export class ApiEditService {
constructor(private modalService: ModalService) {}
showMore(inputArg, opts: { nzOnOk: (result: any) => void; title: string }) {
const modal = this.modalService.create({
- nzTitle: `${opts.title}详情`,
+ nzTitle: $localize`${opts.title} Detail`,
nzContent: ApiParamsExtraSettingComponent,
nzClosable: false,
nzWidth: '60%',
@@ -144,15 +144,15 @@ export class ApiEditService {
itemExpression: 'ng-if="$index+1!==$ctrl.list.length"',
},
{
- thKey: '参数名',
+ thKey: $localize`Param Name`,
type: 'depthInput',
modelKey: 'name',
- placeholder: '参数名',
+ placeholder: $localize`Param Name`,
width: 300,
mark: 'name',
},
{
- thKey: '类型',
+ thKey: $localize`Type`,
type: 'select',
key: 'key',
value: 'value',
@@ -164,26 +164,26 @@ export class ApiEditService {
width: 100,
},
{
- thKey: '必填',
+ thKey: $localize`Required`,
type: 'checkbox',
modelKey: 'required',
width: 80,
mark: 'require',
},
{
- thKey: '说明',
+ thKey: $localize`:@@Description:Description`,
type: 'input',
modelKey: 'description',
- placeholder: '参数说明',
+ placeholder: $localize`Param Description`,
width: 300,
mark: 'description',
},
{
- thKey: '示例',
+ thKey: $localize`Example`,
type: 'input',
modelKey: 'example',
- placeholder: '参数示例',
+ placeholder: $localize`Param Example`,
width: 200,
hide: 1,
mark: 'example',
@@ -193,12 +193,12 @@ export class ApiEditService {
class: 'w_250',
btnList: [
{
- key: '添加子字段',
+ key: $localize`Add Child`,
operateName: 'addChild',
itemExpression: `ng-if="$ctrl.mainObject.setting.isLevel"`,
},
{
- key: '更多设置',
+ key: $localize`More Settings`,
operateName: 'more',
fun: (inputArg) => {
this.showMore(inputArg, {
@@ -210,14 +210,14 @@ export class ApiEditService {
itemExpression: `eo-attr-tip-placeholder="more_setting_btn" `,
},
{
- key: '插入',
+ key: $localize`Insert`,
operateName: 'insert',
- itemExpression: `ng-if="!($ctrl.mainObject.setting.munalHideOperateColumn&&$first)"`
+ itemExpression: `ng-if="!($ctrl.mainObject.setting.munalHideOperateColumn&&$first)"`,
},
{
- key: '删除',
+ key: $localize`:@@Delete:Delete`,
operateName: 'delete',
- itemExpression: 'ng-if="!($ctrl.mainObject.setting.munalHideOperateColumn&&$first)"'
+ itemExpression: 'ng-if="!($ctrl.mainObject.setting.munalHideOperateColumn&&$first)"',
},
],
},
diff --git a/src/workbench/browser/src/app/pages/api/edit/body/api-edit-body.component.html b/src/workbench/browser/src/app/pages/api/edit/body/api-edit-body.component.html
index f2c0b048..c06ea81c 100644
--- a/src/workbench/browser/src/app/pages/api/edit/body/api-edit-body.component.html
+++ b/src/workbench/browser/src/app/pages/api/edit/body/api-edit-body.component.html
@@ -9,7 +9,7 @@
[rootType]="jsonRootType">
-
JSON 根类型:
+
JSON Root Type:
diff --git a/src/workbench/browser/src/app/pages/api/edit/extra-setting/api-params-extra-setting.component.ts b/src/workbench/browser/src/app/pages/api/edit/extra-setting/api-params-extra-setting.component.ts
index 7e0c1705..d1eace03 100644
--- a/src/workbench/browser/src/app/pages/api/edit/extra-setting/api-params-extra-setting.component.ts
+++ b/src/workbench/browser/src/app/pages/api/edit/extra-setting/api-params-extra-setting.component.ts
@@ -14,23 +14,23 @@ export class ApiParamsExtraSettingComponent implements OnInit {
},
tdList: [
{
- thKey: '参数名',
+ thKey: $localize`Param Name`,
type: 'text',
modelKey: 'name',
},
{
- thKey: '必填',
+ thKey: $localize`Required`,
type: 'html',
- html: '{{item.required?"是":"否"}}',
+ html: '{{item.required?"True":"False"}}',
class: 'w_100',
},
{
- thKey: '说明',
+ thKey: $localize`:@@Description:Description`,
type: 'text',
modelKey: 'description',
},
{
- thKey: '类型',
+ thKey: $localize`Type`,
type: 'text',
modelKey: 'type',
},
diff --git a/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.html b/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.html
index 64a37803..ff903f07 100644
--- a/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.html
+++ b/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.html
@@ -1,4 +1,4 @@
diff --git a/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.ts b/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.ts
index bbd6eab6..fd1f143f 100644
--- a/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.ts
+++ b/src/workbench/browser/src/app/pages/api/edit/header/api-edit-header.component.ts
@@ -33,8 +33,8 @@ export class ApiEditHeaderComponent implements OnInit, OnChanges, AfterViewCheck
this.listConf = this.editService.initListConf({
dragCacheVar: 'DRAG_VAR_API_EDIT_HEADER',
itemStructure: this.itemStructure,
- title: '头部',
- nameTitle: '标签',
+ title: $localize`:@@Header:Header`,
+ nameTitle: $localize`Key`,
nzOnOkMoreSetting: (inputArg) => {
this.model[inputArg.$index] = inputArg.item;
},
diff --git a/src/workbench/browser/src/app/pages/api/edit/query/api-edit-query.component.html b/src/workbench/browser/src/app/pages/api/edit/query/api-edit-query.component.html
index 28cb1b4c..696a029e 100644
--- a/src/workbench/browser/src/app/pages/api/edit/query/api-edit-query.component.html
+++ b/src/workbench/browser/src/app/pages/api/edit/query/api-edit-query.component.html
@@ -1,4 +1,4 @@
diff --git a/src/workbench/browser/src/app/pages/api/group/edit/api-group-edit.component.html b/src/workbench/browser/src/app/pages/api/group/edit/api-group-edit.component.html
index dd0fbbc8..e7285b9a 100644
--- a/src/workbench/browser/src/app/pages/api/group/edit/api-group-edit.component.html
+++ b/src/workbench/browser/src/app/pages/api/group/edit/api-group-edit.component.html
@@ -1,13 +1,14 @@
-
- 删除
- {{ group.name.length > 50 ? group.name.slice(0, 50) + '...' : group.name }}
- 后,该分组下的数据都会删除。该操作无法撤销,确认删除吗?
+
+ Data from{{
+ group.name.length > 50 ? group.name.slice(0, 50) + '...' : group.name
+ }}
+ will be deleted. This cannot be undone. Are you sure you want to delete?
diff --git a/src/workbench/browser/src/app/pages/api/group/tree/api-group-tree.component.html b/src/workbench/browser/src/app/pages/api/group/tree/api-group-tree.component.html
index d894d53a..971a50f2 100644
--- a/src/workbench/browser/src/app/pages/api/group/tree/api-group-tree.component.html
+++ b/src/workbench/browser/src/app/pages/api/group/tree/api-group-tree.component.html
@@ -1,48 +1,38 @@
-