You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by li...@apache.org on 2022/06/17 04:39:01 UTC

[dolphinscheduler] 12/18: [Style][UI] Split multilingual modules. (#10256)

This is an automated email from the ASF dual-hosted git repository.

liudongkai pushed a commit to branch 3.0.0-beta-2-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 32c8b7c9f222ad16b055d5d3351f224d36d40309
Author: songjianet <17...@qq.com>
AuthorDate: Thu May 26 19:22:27 2022 +0800

    [Style][UI] Split multilingual modules. (#10256)
    
    (cherry picked from commit 4c1ef0a89a81e3e7464300a7d010a4786abd3e7b)
---
 .../src/layouts/content/use-dataList.ts            |    6 +-
 dolphinscheduler-ui/src/locales/en_US/crontab.ts   |   78 ++
 .../src/locales/en_US/data-quality.ts              |  112 ++
 .../src/locales/en_US/datasource.ts                |   66 +
 .../src/locales/{index.ts => en_US/home.ts}        |   40 +-
 dolphinscheduler-ui/src/locales/en_US/index.ts     |   50 +
 .../src/locales/{index.ts => en_US/login.ts}       |   23 +-
 dolphinscheduler-ui/src/locales/en_US/menu.ts      |   59 +
 .../src/locales/{index.ts => en_US/modal.ts}       |   19 +-
 dolphinscheduler-ui/src/locales/en_US/monitor.ts   |   71 +
 .../src/locales/{index.ts => en_US/password.ts}    |   25 +-
 .../src/locales/{index.ts => en_US/profile.ts}     |   38 +-
 dolphinscheduler-ui/src/locales/en_US/project.ts   |  621 +++++++++
 dolphinscheduler-ui/src/locales/en_US/resource.ts  |  170 +++
 dolphinscheduler-ui/src/locales/en_US/security.ts  |  265 ++++
 .../src/locales/{index.ts => en_US/theme.ts}       |   19 +-
 .../locales/{index.ts => en_US/user-dropdown.ts}   |   20 +-
 dolphinscheduler-ui/src/locales/index.ts           |    4 +-
 dolphinscheduler-ui/src/locales/modules/en_US.ts   | 1436 --------------------
 dolphinscheduler-ui/src/locales/modules/zh_CN.ts   | 1419 -------------------
 dolphinscheduler-ui/src/locales/zh_CN/crontab.ts   |   77 ++
 .../src/locales/zh_CN/data-quality.ts              |  111 ++
 .../src/locales/zh_CN/datasource.ts                |   63 +
 .../src/locales/{index.ts => zh_CN/home.ts}        |   40 +-
 dolphinscheduler-ui/src/locales/zh_CN/index.ts     |   50 +
 .../src/locales/{index.ts => zh_CN/login.ts}       |   23 +-
 dolphinscheduler-ui/src/locales/zh_CN/menu.ts      |   59 +
 .../src/locales/{index.ts => zh_CN/modal.ts}       |   19 +-
 dolphinscheduler-ui/src/locales/zh_CN/monitor.ts   |   70 +
 .../src/locales/{index.ts => zh_CN/password.ts}    |   24 +-
 .../src/locales/{index.ts => zh_CN/profile.ts}     |   38 +-
 dolphinscheduler-ui/src/locales/zh_CN/project.ts   |  614 +++++++++
 dolphinscheduler-ui/src/locales/zh_CN/resource.ts  |  168 +++
 dolphinscheduler-ui/src/locales/zh_CN/security.ts  |  265 ++++
 .../src/locales/{index.ts => zh_CN/theme.ts}       |   19 +-
 .../locales/{index.ts => zh_CN/user-dropdown.ts}   |   20 +-
 36 files changed, 3131 insertions(+), 3070 deletions(-)

diff --git a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts
index 242edd414a..b1045c5156 100644
--- a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts
+++ b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts
@@ -327,17 +327,17 @@ export function useDataList() {
   const changeUserDropdown = (state: any) => {
     state.userDropdownOptions = [
       {
-        label: t('userDropdown.profile'),
+        label: t('user_dropdown.profile'),
         key: 'profile',
         icon: renderIcon(UserOutlined)
       },
       {
-        label: t('userDropdown.password'),
+        label: t('user_dropdown.password'),
         key: 'password',
         icon: renderIcon(KeyOutlined)
       },
       {
-        label: t('userDropdown.logout'),
+        label: t('user_dropdown.logout'),
         key: 'logout',
         icon: renderIcon(LogoutOutlined)
       }
diff --git a/dolphinscheduler-ui/src/locales/en_US/crontab.ts b/dolphinscheduler-ui/src/locales/en_US/crontab.ts
new file mode 100644
index 0000000000..0bc96147b7
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/crontab.ts
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  second: 'second',
+  minute: 'minute',
+  hour: 'hour',
+  day: 'day',
+  month: 'month',
+  year: 'year',
+  monday: 'Monday',
+  tuesday: 'Tuesday',
+  wednesday: 'Wednesday',
+  thursday: 'Thursday',
+  friday: 'Friday',
+  saturday: 'Saturday',
+  sunday: 'Sunday',
+  every_second: 'Every second',
+  every: 'Every',
+  second_carried_out: 'second carried out',
+  second_start: 'Start',
+  specific_second: 'Specific second(multiple)',
+  specific_second_tip: 'Please enter a specific second',
+  cycle_from: 'Cycle from',
+  to: 'to',
+  every_minute: 'Every minute',
+  minute_carried_out: 'minute carried out',
+  minute_start: 'Start',
+  specific_minute: 'Specific minute(multiple)',
+  specific_minute_tip: 'Please enter a specific minute',
+  every_hour: 'Every hour',
+  hour_carried_out: 'hour carried out',
+  hour_start: 'Start',
+  specific_hour: 'Specific hour(multiple)',
+  specific_hour_tip: 'Please enter a specific hour',
+  every_day: 'Every day',
+  week_carried_out: 'week carried out',
+  start: 'Start',
+  day_carried_out: 'day carried out',
+  day_start: 'Start',
+  specific_week: 'Specific day of the week(multiple)',
+  specific_week_tip: 'Please enter a specific week',
+  specific_day: 'Specific days(multiple)',
+  specific_day_tip: 'Please enter a days',
+  last_day_of_month: 'On the last day of the month',
+  last_work_day_of_month: 'On the last working day of the month',
+  last_of_month: 'At the last of this month',
+  before_end_of_month: 'Before the end of this month',
+  recent_business_day_to_month:
+    'The most recent business day (Monday to Friday) to this month',
+  in_this_months: 'In this months',
+  every_month: 'Every month',
+  month_carried_out: 'month carried out',
+  month_start: 'Start',
+  specific_month: 'Specific months(multiple)',
+  specific_month_tip: 'Please enter a months',
+  every_year: 'Every year',
+  year_carried_out: 'year carried out',
+  year_start: 'Start',
+  specific_year: 'Specific year(multiple)',
+  specific_year_tip: 'Please enter a year',
+  one_hour: 'hour',
+  one_day: 'day'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/data-quality.ts b/dolphinscheduler-ui/src/locales/en_US/data-quality.ts
new file mode 100644
index 0000000000..c01556cefe
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/data-quality.ts
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  task_result: {
+    task_name: 'Task Name',
+    workflow_instance: 'Workflow Instance',
+    rule_type: 'Rule Type',
+    rule_name: 'Rule Name',
+    state: 'State',
+    actual_value: 'Actual Value',
+    excepted_value: 'Excepted Value',
+    check_type: 'Check Type',
+    operator: 'Operator',
+    threshold: 'Threshold',
+    failure_strategy: 'Failure Strategy',
+    excepted_value_type: 'Excepted Value Type',
+    error_output_path: 'Error Output Path',
+    username: 'Username',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    undone: 'Undone',
+    success: 'Success',
+    failure: 'Failure',
+    single_table: 'Single Table',
+    single_table_custom_sql: 'Single Table Custom Sql',
+    multi_table_accuracy: 'Multi Table Accuracy',
+    multi_table_comparison: 'Multi Table Comparison',
+    expected_and_actual_or_expected: '(Expected - Actual) / Expected x 100%',
+    expected_and_actual: 'Expected - Actual',
+    actual_and_expected: 'Actual - Expected',
+    actual_or_expected: 'Actual / Expected x 100%'
+  },
+  rule: {
+    actions: 'Actions',
+    name: 'Rule Name',
+    type: 'Rule Type',
+    username: 'User Name',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    input_item: 'Rule input item',
+    view_input_item: 'View input items',
+    input_item_title: 'Input item title',
+    input_item_placeholder: 'Input item placeholder',
+    input_item_type: 'Input item type',
+    src_connector_type: 'SrcConnType',
+    src_datasource_id: 'SrcSource',
+    src_table: 'SrcTable',
+    src_filter: 'SrcFilter',
+    src_field: 'SrcField',
+    statistics_name: 'ActualValName',
+    check_type: 'CheckType',
+    operator: 'Operator',
+    threshold: 'Threshold',
+    failure_strategy: 'FailureStrategy',
+    target_connector_type: 'TargetConnType',
+    target_datasource_id: 'TargetSourceId',
+    target_table: 'TargetTable',
+    target_filter: 'TargetFilter',
+    mapping_columns: 'OnClause',
+    statistics_execute_sql: 'ActualValExecSql',
+    comparison_name: 'ExceptedValName',
+    comparison_execute_sql: 'ExceptedValExecSql',
+    comparison_type: 'ExceptedValType',
+    writer_connector_type: 'WriterConnType',
+    writer_datasource_id: 'WriterSourceId',
+    target_field: 'TargetField',
+    field_length: 'FieldLength',
+    logic_operator: 'LogicOperator',
+    regexp_pattern: 'RegexpPattern',
+    deadline: 'Deadline',
+    datetime_format: 'DatetimeFormat',
+    enum_list: 'EnumList',
+    begin_time: 'BeginTime',
+    fix_value: 'FixValue',
+    null_check: 'NullCheck',
+    custom_sql: 'Custom Sql',
+    single_table: 'Single Table',
+    single_table_custom_sql: 'Single Table Custom Sql',
+    multi_table_accuracy: 'Multi Table Accuracy',
+    multi_table_value_comparison: 'Multi Table Compare',
+    field_length_check: 'FieldLengthCheck',
+    uniqueness_check: 'UniquenessCheck',
+    regexp_check: 'RegexpCheck',
+    timeliness_check: 'TimelinessCheck',
+    enumeration_check: 'EnumerationCheck',
+    table_count_check: 'TableCountCheck',
+    all: 'All',
+    FixValue: 'FixValue',
+    DailyAvg: 'DailyAvg',
+    WeeklyAvg: 'WeeklyAvg',
+    MonthlyAvg: 'MonthlyAvg',
+    Last7DayAvg: 'Last7DayAvg',
+    Last30DayAvg: 'Last30DayAvg',
+    SrcTableTotalRows: 'SrcTableTotalRows',
+    TargetTableTotalRows: 'TargetTableTotalRows'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/datasource.ts b/dolphinscheduler-ui/src/locales/en_US/datasource.ts
new file mode 100644
index 0000000000..a6a34a78b3
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/datasource.ts
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  datasource: 'DataSource',
+  create_datasource: 'Create DataSource',
+  search_input_tips: 'Please input the keywords',
+  datasource_name: 'Datasource Name',
+  datasource_name_tips: 'Please enter datasource name',
+  datasource_user_name: 'Owner',
+  datasource_type: 'Datasource Type',
+  datasource_parameter: 'Datasource Parameter',
+  description: 'Description',
+  description_tips: 'Please enter description',
+  create_time: 'Create Time',
+  update_time: 'Update Time',
+  operation: 'Operation',
+  click_to_view: 'Click to view',
+  delete: 'Delete',
+  confirm: 'Confirm',
+  delete_confirm: 'Delete?',
+  cancel: 'Cancel',
+  create: 'Create',
+  edit: 'Edit',
+  success: 'Success',
+  test_connect: 'Test Connect',
+  ip: 'IP',
+  ip_tips: 'Please enter IP',
+  port: 'Port',
+  port_tips: 'Please enter port',
+  database_name: 'Database Name',
+  database_name_tips: 'Please enter database name',
+  oracle_connect_type: 'ServiceName or SID',
+  oracle_connect_type_tips: 'Please select serviceName or SID',
+  oracle_service_name: 'ServiceName',
+  oracle_sid: 'SID',
+  jdbc_connect_parameters: 'jdbc connect parameters',
+  principal_tips: 'Please enter Principal',
+  krb5_conf_tips:
+    'Please enter the kerberos authentication parameter java.security.krb5.conf',
+  keytab_username_tips:
+    'Please enter the kerberos authentication parameter login.user.keytab.username',
+  keytab_path_tips:
+    'Please enter the kerberos authentication parameter login.user.keytab.path',
+  format_tips: 'Please enter format',
+  connection_parameter: 'connection parameter',
+  user_name: 'User Name',
+  user_name_tips: 'Please enter your username',
+  user_password: 'Password',
+  user_password_tips: 'Please enter your password',
+  jdbc_format_tips: 'jdbc connection parameters is not a correct JSON format'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/home.ts
similarity index 51%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/home.ts
index 31a3cd9835..6f4ec60bad 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/home.ts
@@ -15,18 +15,28 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  task_state_statistics: 'Task State Statistics',
+  process_state_statistics: 'Process State Statistics',
+  process_definition_statistics: 'Process Definition Statistics',
+  number: 'Number',
+  state: 'State',
+  submitted_success: 'SUBMITTED_SUCCESS',
+  running_execution: 'RUNNING_EXECUTION',
+  ready_pause: 'READY_PAUSE',
+  pause: 'PAUSE',
+  ready_stop: 'READY_STOP',
+  stop: 'STOP',
+  failure: 'FAILURE',
+  success: 'SUCCESS',
+  need_fault_tolerance: 'NEED_FAULT_TOLERANCE',
+  kill: 'KILL',
+  waiting_thread: 'WAITING_THREAD',
+  waiting_depend: 'WAITING_DEPEND',
+  delay_execution: 'DELAY_EXECUTION',
+  forced_success: 'FORCED_SUCCESS',
+  serial_wait: 'SERIAL_WAIT',
+  dispatch: 'DISPATCH',
+  ready_block: 'READY_BLOCK',
+  block: 'BLOCK'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/index.ts b/dolphinscheduler-ui/src/locales/en_US/index.ts
new file mode 100644
index 0000000000..d04b7efcc2
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/index.ts
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import crontab from '@/locales/en_US/crontab'
+import data_quality from '@/locales/en_US/data-quality'
+import datasource from '@/locales/en_US/datasource'
+import home from '@/locales/en_US/home'
+import login from '@/locales/en_US/login'
+import menu from '@/locales/en_US/menu'
+import modal from '@/locales/en_US/modal'
+import monitor from '@/locales/en_US/monitor'
+import password from '@/locales/en_US/password'
+import profile from '@/locales/en_US/profile'
+import project from '@/locales/en_US/project'
+import resource from '@/locales/en_US/resource'
+import security from '@/locales/en_US/security'
+import theme from '@/locales/en_US/theme'
+import user_dropdown from '@/locales/en_US/user-dropdown'
+
+export default {
+  login,
+  modal,
+  theme,
+  user_dropdown,
+  menu,
+  home,
+  password,
+  profile,
+  monitor,
+  resource,
+  project,
+  security,
+  datasource,
+  data_quality,
+  crontab
+}
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/login.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/login.ts
index 31a3cd9835..2776397304 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/login.ts
@@ -15,18 +15,11 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  test: 'Test',
+  userName: 'Username',
+  userName_tips: 'Please enter your username',
+  userPassword: 'Password',
+  userPassword_tips: 'Please enter your password',
+  login: 'Login'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/menu.ts b/dolphinscheduler-ui/src/locales/en_US/menu.ts
new file mode 100644
index 0000000000..ab95e43df5
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/menu.ts
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  home: 'Home',
+  project: 'Project',
+  resources: 'Resources',
+  datasource: 'Datasource',
+  monitor: 'Monitor',
+  security: 'Security',
+  project_overview: 'Project Overview',
+  workflow_relation: 'Workflow Relation',
+  workflow: 'Workflow',
+  workflow_definition: 'Workflow Definition',
+  workflow_instance: 'Workflow Instance',
+  task: 'Task',
+  task_instance: 'Task Instance',
+  task_definition: 'Task Definition',
+  file_manage: 'File Manage',
+  udf_manage: 'UDF Manage',
+  resource_manage: 'Resource Manage',
+  function_manage: 'Function Manage',
+  service_manage: 'Service Manage',
+  master: 'Master',
+  worker: 'Worker',
+  db: 'DB',
+  statistical_manage: 'Statistical Manage',
+  statistics: 'Statistics',
+  audit_log: 'Audit Log',
+  tenant_manage: 'Tenant Manage',
+  user_manage: 'User Manage',
+  alarm_group_manage: 'Alarm Group Manage',
+  alarm_instance_manage: 'Alarm Instance Manage',
+  worker_group_manage: 'Worker Group Manage',
+  yarn_queue_manage: 'Yarn Queue Manage',
+  environment_manage: 'Environment Manage',
+  k8s_namespace_manage: 'K8S Namespace Manage',
+  token_manage: 'Token Manage',
+  task_group_manage: 'Task Group Manage',
+  task_group_option: 'Task Group Option',
+  task_group_queue: 'Task Group Queue',
+  data_quality: 'Data Quality',
+  task_result: 'Task Result',
+  rule: 'Rule management'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/modal.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/modal.ts
index 31a3cd9835..f81fa9a7a4 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/modal.ts
@@ -15,18 +15,7 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  cancel: 'Cancel',
+  confirm: 'Confirm'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/monitor.ts b/dolphinscheduler-ui/src/locales/en_US/monitor.ts
new file mode 100644
index 0000000000..d94d6e913c
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/monitor.ts
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  master: {
+    cpu_usage: 'CPU Usage',
+    memory_usage: 'Memory Usage',
+    load_average: 'Load Average',
+    create_time: 'Create Time',
+    last_heartbeat_time: 'Last Heartbeat Time',
+    directory_detail: 'Directory Detail',
+    host: 'Host',
+    directory: 'Directory',
+    master_no_data_result_title: 'No Master Nodes Exist',
+    master_no_data_result_desc:
+      'Currently, there are no master nodes exist, please create a master node and refresh this page'
+  },
+  worker: {
+    cpu_usage: 'CPU Usage',
+    memory_usage: 'Memory Usage',
+    load_average: 'Load Average',
+    create_time: 'Create Time',
+    last_heartbeat_time: 'Last Heartbeat Time',
+    directory_detail: 'Directory Detail',
+    host: 'Host',
+    directory: 'Directory',
+    worker_no_data_result_title: 'No Worker Nodes Exist',
+    worker_no_data_result_desc:
+      'Currently, there are no worker nodes exist, please create a worker node and refresh this page'
+  },
+  db: {
+    health_state: 'Health State',
+    max_connections: 'Max Connections',
+    threads_connections: 'Threads Connections',
+    threads_running_connections: 'Threads Running Connections'
+  },
+  statistics: {
+    command_number_of_waiting_for_running:
+      'Command Number Of Waiting For Running',
+    failure_command_number: 'Failure Command Number'
+  },
+  audit_log: {
+    user_name: 'User Name',
+    resource_type: 'Resource Type',
+    project_name: 'Project Name',
+    operation_type: 'Operation Type',
+    create_time: 'Create Time',
+    start_time: 'Start Time',
+    end_time: 'End Time',
+    user_audit: 'User Audit',
+    project_audit: 'Project Audit',
+    create: 'Create',
+    update: 'Update',
+    delete: 'Delete',
+    read: 'Read'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/password.ts
similarity index 70%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/password.ts
index 31a3cd9835..870b787dc3 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/password.ts
@@ -15,18 +15,13 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  edit_password: 'Edit Password',
+  password: 'Password',
+  confirm_password: 'Confirm Password',
+  password_tips: 'Please enter your password',
+  confirm_password_tips: 'Please enter your confirm password',
+  two_password_entries_are_inconsistent:
+    'Two password entries are inconsistent',
+  submit: 'Submit'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/profile.ts
similarity index 53%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/profile.ts
index 31a3cd9835..08d048019f 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/profile.ts
@@ -15,18 +15,26 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  profile: 'Profile',
+  edit: 'Edit',
+  username: 'Username',
+  email: 'Email',
+  phone: 'Phone',
+  state: 'State',
+  permission: 'Permission',
+  create_time: 'Create Time',
+  update_time: 'Update Time',
+  administrator: 'Administrator',
+  ordinary_user: 'Ordinary User',
+  edit_profile: 'Edit Profile',
+  username_tips: 'Please enter your username',
+  email_tips: 'Please enter your email',
+  email_correct_tips: 'Please enter your email in the correct format',
+  phone_tips: 'Please enter your phone',
+  state_tips: 'Please choose your state',
+  enable: 'Enable',
+  disable: 'Disable',
+  timezone_success: 'Time zone updated successful',
+  please_select_timezone: 'Choose timeZone'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts b/dolphinscheduler-ui/src/locales/en_US/project.ts
new file mode 100644
index 0000000000..7f2f7f4577
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/project.ts
@@ -0,0 +1,621 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  list: {
+    create_project: 'Create Project',
+    edit_project: 'Edit Project',
+    project_list: 'Project List',
+    project_tips: 'Please enter your project',
+    description_tips: 'Please enter your description',
+    username_tips: 'Please enter your username',
+    project_name: 'Project Name',
+    project_description: 'Project Description',
+    owned_users: 'Owned Users',
+    workflow_define_count: 'Workflow Define Count',
+    process_instance_running_count: 'Process Instance Running Count',
+    description: 'Description',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    delete: 'Delete',
+    confirm: 'Confirm',
+    cancel: 'Cancel',
+    delete_confirm: 'Delete?'
+  },
+  workflow: {
+    workflow_relation: 'Workflow Relation',
+    create_workflow: 'Create Workflow',
+    import_workflow: 'Import Workflow',
+    workflow_name: 'Workflow Name',
+    current_selection: 'Current Selection',
+    online: 'Online',
+    offline: 'Offline',
+    refresh: 'Refresh',
+    show_hide_label: 'Show / Hide Label',
+    workflow_offline: 'Workflow Offline',
+    schedule_offline: 'Schedule Offline',
+    schedule_start_time: 'Schedule Start Time',
+    schedule_end_time: 'Schedule End Time',
+    crontab_expression: 'Crontab',
+    workflow_publish_status: 'Workflow Publish Status',
+    schedule_publish_status: 'Schedule Publish Status',
+    workflow_definition: 'Workflow Definition',
+    workflow_instance: 'Workflow Instance',
+    status: 'Status',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    description: 'Description',
+    create_user: 'Create User',
+    modify_user: 'Modify User',
+    operation: 'Operation',
+    edit: 'Edit',
+    start: 'Start',
+    timing: 'Timing',
+    timezone: 'Timezone',
+    up_line: 'Online',
+    down_line: 'Offline',
+    copy_workflow: 'Copy Workflow',
+    cron_manage: 'Cron manage',
+    delete: 'Delete',
+    tree_view: 'Tree View',
+    tree_limit: 'Limit Size',
+    export: 'Export',
+    batch_copy: 'Batch Copy',
+    version_info: 'Version Info',
+    version: 'Version',
+    file_upload: 'File Upload',
+    upload_file: 'Upload File',
+    upload: 'Upload',
+    file_name: 'File Name',
+    success: 'Success',
+    set_parameters_before_starting: 'Please set the parameters before starting',
+    set_parameters_before_timing: 'Set parameters before timing',
+    start_and_stop_time: 'Start and stop time',
+    next_five_execution_times: 'Next five execution times',
+    execute_time: 'Execute time',
+    failure_strategy: 'Failure Strategy',
+    notification_strategy: 'Notification Strategy',
+    workflow_priority: 'Workflow Priority',
+    worker_group: 'Worker Group',
+    environment_name: 'Environment Name',
+    alarm_group: 'Alarm Group',
+    complement_data: 'Complement Data',
+    startup_parameter: 'Startup Parameter',
+    whether_dry_run: 'Whether Dry-Run',
+    continue: 'Continue',
+    end: 'End',
+    none_send: 'None',
+    success_send: 'Success',
+    failure_send: 'Failure',
+    all_send: 'All',
+    whether_complement_data: 'Whether it is a complement process?',
+    schedule_date: 'Schedule date',
+    mode_of_execution: 'Mode of execution',
+    serial_execution: 'Serial execution',
+    parallel_execution: 'Parallel execution',
+    parallelism: 'Parallelism',
+    custom_parallelism: 'Custom Parallelism',
+    please_enter_parallelism: 'Please enter Parallelism',
+    please_choose: 'Please Choose',
+    start_time: 'Start Time',
+    end_time: 'End Time',
+    crontab: 'Crontab',
+    delete_confirm: 'Delete?',
+    enter_name_tips: 'Please enter name',
+    switch_version: 'Switch To This Version',
+    confirm_switch_version: 'Confirm Switch To This Version?',
+    current_version: 'Current Version',
+    run_type: 'Run Type',
+    scheduling_time: 'Scheduling Time',
+    duration: 'Duration',
+    run_times: 'Run Times',
+    fault_tolerant_sign: 'Fault-tolerant Sign',
+    dry_run_flag: 'Dry-run Flag',
+    executor: 'Executor',
+    host: 'Host',
+    start_process: 'Start Process',
+    execute_from_the_current_node: 'Execute from the current node',
+    recover_tolerance_fault_process: 'Recover tolerance fault process',
+    resume_the_suspension_process: 'Resume the suspension process',
+    execute_from_the_failed_nodes: 'Execute from the failed nodes',
+    scheduling_execution: 'Scheduling execution',
+    rerun: 'Rerun',
+    stop: 'Stop',
+    pause: 'Pause',
+    recovery_waiting_thread: 'Recovery waiting thread',
+    recover_serial_wait: 'Recover serial wait',
+    recovery_suspend: 'Recovery Suspend',
+    recovery_failed: 'Recovery Failed',
+    gantt: 'Gantt',
+    name: 'Name',
+    all_status: 'AllStatus',
+    submit_success: 'Submitted successfully',
+    running: 'Running',
+    ready_to_pause: 'Ready to pause',
+    ready_to_stop: 'Ready to stop',
+    failed: 'Failed',
+    need_fault_tolerance: 'Need fault tolerance',
+    kill: 'Kill',
+    waiting_for_thread: 'Waiting for thread',
+    waiting_for_dependence: 'Waiting for dependence',
+    waiting_for_dependency_to_complete: 'Waiting for dependency to complete',
+    delay_execution: 'Delay execution',
+    forced_success: 'Forced success',
+    serial_wait: 'Serial wait',
+    dispatch: 'Dispatch',
+    pending: 'Pending',
+    executing: 'Executing',
+    startup_type: 'Startup Type',
+    complement_range: 'Complement Range',
+    parameters_variables: 'Parameters variables',
+    global_parameters: 'Global parameters',
+    local_parameters: 'Local parameters',
+    type: 'Type',
+    retry_count: 'Retry Count',
+    submit_time: 'Submit Time',
+    refresh_status_succeeded: 'Refresh status succeeded',
+    view_log: 'View log',
+    update_log_success: 'Update log success',
+    no_more_log: 'No more logs',
+    no_log: 'No log',
+    loading_log: 'Loading Log...',
+    close: 'Close',
+    download_log: 'Download Log',
+    refresh_log: 'Refresh Log',
+    enter_full_screen: 'Enter full screen',
+    cancel_full_screen: 'Cancel full screen',
+    task_state: 'Task status',
+    mode_of_dependent: 'Mode of dependent',
+    open: 'Open',
+    project_name_required: 'Project name is required',
+    related_items: 'Related items',
+    project_name: 'Project Name',
+    project_tips: 'Please select project name',
+    workflow_relation_no_data_result_title:
+      'Can not find any relations of workflows.',
+    workflow_relation_no_data_result_desc:
+      'There is not any workflows. Please create a workflow, and then visit this page again.'
+  },
+  task: {
+    cancel_full_screen: 'Cancel full screen',
+    enter_full_screen: 'Enter full screen',
+    current_task_settings: 'Current task settings',
+    online: 'Online',
+    offline: 'Offline',
+    task_name: 'Task Name',
+    task_type: 'Task Type',
+    create_task: 'Create Task',
+    workflow_instance: 'Workflow Instance',
+    workflow_name: 'Workflow Name',
+    workflow_name_tips: 'Please select workflow name',
+    workflow_state: 'Workflow State',
+    version: 'Version',
+    current_version: 'Current Version',
+    switch_version: 'Switch To This Version',
+    confirm_switch_version: 'Confirm Switch To This Version?',
+    description: 'Description',
+    move: 'Move',
+    upstream_tasks: 'Upstream Tasks',
+    executor: 'Executor',
+    node_type: 'Node Type',
+    state: 'State',
+    submit_time: 'Submit Time',
+    start_time: 'Start Time',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    end_time: 'End Time',
+    duration: 'Duration',
+    retry_count: 'Retry Count',
+    dry_run_flag: 'Dry Run Flag',
+    host: 'Host',
+    operation: 'Operation',
+    edit: 'Edit',
+    delete: 'Delete',
+    delete_confirm: 'Delete?',
+    forced_success: 'Forced Success',
+    view_log: 'View Log',
+    download_log: 'Download Log',
+    refresh: 'Refresh'
+  },
+  dag: {
+    create: 'Create Workflow',
+    search: 'Search',
+    download_png: 'Download PNG',
+    fullscreen_open: 'Open Fullscreen',
+    fullscreen_close: 'Close Fullscreen',
+    save: 'Save',
+    close: 'Close',
+    format: 'Format',
+    refresh_dag_status: 'Refresh DAG status',
+    layout_type: 'Layout Type',
+    grid_layout: 'Grid',
+    dagre_layout: 'Dagre',
+    rows: 'Rows',
+    cols: 'Cols',
+    copy_success: 'Copy Success',
+    workflow_name: 'Workflow Name',
+    description: 'Description',
+    tenant: 'Tenant',
+    timeout_alert: 'Timeout Alert',
+    process_execute_type: 'Process execute type',
+    parallel: 'parallel',
+    serial_wait: 'Serial wait',
+    serial_discard: 'Serial discard',
+    serial_priority: 'Serial priority',
+    recover_serial_wait: 'Recover serial wait',
+    global_variables: 'Global Variables',
+    basic_info: 'Basic Information',
+    minute: 'Minute',
+    key: 'Key',
+    value: 'Value',
+    success: 'Success',
+    delete_cell: 'Delete selected edges and nodes',
+    online_directly: 'Whether to go online the workflow definition',
+    update_directly: 'Whether to update the workflow definition',
+    dag_name_empty: 'DAG graph name cannot be empty',
+    positive_integer: 'Please enter a positive integer greater than 0',
+    prop_empty: 'prop is empty',
+    prop_repeat: 'prop is repeat',
+    node_not_created: 'Failed to save node not created',
+    copy_name: 'Copy Name',
+    view_variables: 'View Variables',
+    startup_parameter: 'Startup Parameter',
+    online: 'Online'
+  },
+  node: {
+    return_back: 'Return',
+    current_node_settings: 'Current node settings',
+    instructions: 'Instructions',
+    view_history: 'View history',
+    view_log: 'View log',
+    enter_this_child_node: 'Enter this child node',
+    name: 'Node Name',
+    task_name: 'Task Name',
+    task_name_tips: 'Please select a task (required)',
+    name_tips: 'Please enter name (required)',
+    task_type: 'Task Type',
+    task_type_tips: 'Please select a task type (required)',
+    workflow_name: 'Workflow Name',
+    workflow_name_tips: 'Please select a workflow (required)',
+    child_node: 'Child Node',
+    child_node_tips: 'Please select a child node (required)',
+    run_flag: 'Run flag',
+    normal: 'Normal',
+    prohibition_execution: 'Prohibition execution',
+    description: 'Description',
+    description_tips: 'Please enter description',
+    task_priority: 'Task priority',
+    worker_group: 'Worker group',
+    worker_group_tips:
+      'The Worker group no longer exists, please select the correct Worker group!',
+    environment_name: 'Environment Name',
+    task_group_name: 'Task group name',
+    task_group_queue_priority: 'Priority',
+    number_of_failed_retries: 'Number of failed retries',
+    times: 'Times',
+    failed_retry_interval: 'Failed retry interval',
+    minute: 'Minute',
+    delay_execution_time: 'Delay execution time',
+    state: 'State',
+    branch_flow: 'Branch flow',
+    cancel: 'Cancel',
+    loading: 'Loading...',
+    confirm: 'Confirm',
+    success: 'Success',
+    failed: 'Failed',
+    backfill_tips:
+      'The newly created sub-Process has not yet been executed and cannot enter the sub-Process',
+    task_instance_tips:
+      'The task has not been executed and cannot enter the sub-Process',
+    branch_tips:
+      'Cannot select the same node for successful branch flow and failed branch flow',
+    timeout_alarm: 'Timeout alarm',
+    timeout_strategy: 'Timeout strategy',
+    timeout_strategy_tips: 'Timeout strategy must be selected',
+    timeout_failure: 'Timeout failure',
+    timeout_period: 'Timeout period',
+    timeout_period_tips: 'Timeout must be a positive integer',
+    script: 'Script',
+    script_tips: 'Please enter script(required)',
+    init_script: 'Initialization script',
+    init_script_tips: 'Please enter initialization script',
+    resources: 'Resources',
+    resources_tips: 'Please select resources',
+    non_resources_tips: 'Please delete all non-existent resources',
+    useless_resources_tips: 'Unauthorized or deleted resources',
+    custom_parameters: 'Custom Parameters',
+    copy_success: 'Copy success',
+    copy_failed: 'The browser does not support automatic copying',
+    prop_tips: 'prop(required)',
+    prop_repeat: 'prop is repeat',
+    value_tips: 'value(optional)',
+    value_required_tips: 'value(required)',
+    pre_tasks: 'Pre tasks',
+    program_type: 'Program Type',
+    spark_version: 'Spark Version',
+    main_class: 'Main Class',
+    main_class_tips: 'Please enter main class',
+    main_package: 'Main Package',
+    main_package_tips: 'Please enter main package',
+    deploy_mode: 'Deploy Mode',
+    app_name: 'App Name',
+    app_name_tips: 'Please enter app name(optional)',
+    driver_cores: 'Driver Cores',
+    driver_cores_tips: 'Please enter Driver cores',
+    driver_memory: 'Driver Memory',
+    driver_memory_tips: 'Please enter Driver memory',
+    executor_number: 'Executor Number',
+    executor_number_tips: 'Please enter Executor number',
+    executor_memory: 'Executor Memory',
+    executor_memory_tips: 'Please enter Executor memory',
+    executor_cores: 'Executor Cores',
+    executor_cores_tips: 'Please enter Executor cores',
+    main_arguments: 'Main Arguments',
+    main_arguments_tips: 'Please enter main arguments',
+    option_parameters: 'Option Parameters',
+    option_parameters_tips: 'Please enter option parameters',
+    positive_integer_tips: 'should be a positive integer',
+    flink_version: 'Flink Version',
+    job_manager_memory: 'JobManager Memory',
+    job_manager_memory_tips: 'Please enter JobManager memory',
+    task_manager_memory: 'TaskManager Memory',
+    task_manager_memory_tips: 'Please enter TaskManager memory',
+    slot_number: 'Slot Number',
+    slot_number_tips: 'Please enter Slot number',
+    parallelism: 'Parallelism',
+    custom_parallelism: 'Configure parallelism',
+    parallelism_tips: 'Please enter Parallelism',
+    parallelism_number_tips: 'Parallelism number should be positive integer',
+    parallelism_complement_tips:
+      'If there are a large number of tasks requiring complement, you can use the custom parallelism to ' +
+      'set the complement task thread to a reasonable value to avoid too large impact on the server.',
+    task_manager_number: 'TaskManager Number',
+    task_manager_number_tips: 'Please enter TaskManager number',
+    http_url: 'Http Url',
+    http_url_tips: 'Please Enter Http Url',
+    http_url_validator: 'The request address must contain HTTP or HTTPS',
+    http_method: 'Http Method',
+    http_parameters: 'Http Parameters',
+    http_check_condition: 'Http Check Condition',
+    http_condition: 'Http Condition',
+    http_condition_tips: 'Please Enter Http Condition',
+    timeout_settings: 'Timeout Settings',
+    connect_timeout: 'Connect Timeout',
+    ms: 'ms',
+    socket_timeout: 'Socket Timeout',
+    status_code_default: 'Default response code 200',
+    status_code_custom: 'Custom response code',
+    body_contains: 'Content includes',
+    body_not_contains: 'Content does not contain',
+    http_parameters_position: 'Http Parameters Position',
+    target_task_name: 'Target Task Name',
+    target_task_name_tips: 'Please enter the Pigeon task name(required)',
+    datasource_type: 'Datasource types',
+    datasource_instances: 'Datasource instances',
+    sql_type: 'SQL Type',
+    sql_type_query: 'Query',
+    sql_type_non_query: 'Non Query',
+    sql_statement: 'SQL Statement',
+    pre_sql_statement: 'Pre SQL Statement',
+    post_sql_statement: 'Post SQL Statement',
+    sql_input_placeholder: 'Please enter non-query sql.',
+    sql_empty_tips: 'The sql can not be empty.',
+    procedure_method: 'SQL Statement',
+    procedure_method_tips: 'Please enter the procedure script',
+    procedure_method_snippet:
+      '--Please enter the procedure script \n\n--call procedure:call <procedure-name>[(<arg1>,<arg2>, ...)]\n\n--call function:?= call <procedure-name>[(<arg1>,<arg2>, ...)]',
+    start: 'Start',
+    edit: 'Edit',
+    copy: 'Copy',
+    delete: 'Delete',
+    custom_job: 'Custom Job',
+    custom_script: 'Custom Script',
+    sqoop_job_name: 'Job Name',
+    sqoop_job_name_tips: 'Please enter Job Name(required)',
+    direct: 'Direct',
+    hadoop_custom_params: 'Hadoop Params',
+    sqoop_advanced_parameters: 'Sqoop Advanced Parameters',
+    data_source: 'Data Source',
+    type: 'Type',
+    datasource: 'Datasource',
+    datasource_tips: 'Please select the datasource',
+    model_type: 'ModelType',
+    form: 'Form',
+    table: 'Table',
+    table_tips: 'Please enter Mysql Table(required)',
+    column_type: 'ColumnType',
+    all_columns: 'All Columns',
+    some_columns: 'Some Columns',
+    column: 'Column',
+    column_tips: 'Please enter Columns (Comma separated)',
+    database: 'Database',
+    database_tips: 'Please enter Hive Database(required)',
+    hive_table_tips: 'Please enter Hive Table(required)',
+    hive_partition_keys: 'Hive partition Keys',
+    hive_partition_keys_tips: 'Please enter Hive Partition Keys',
+    hive_partition_values: 'Hive partition Values',
+    hive_partition_values_tips: 'Please enter Hive Partition Values',
+    export_dir: 'Export Dir',
+    export_dir_tips: 'Please enter Export Dir(required)',
+    sql_statement_tips: 'SQL Statement(required)',
+    map_column_hive: 'Map Column Hive',
+    map_column_java: 'Map Column Java',
+    data_target: 'Data Target',
+    create_hive_table: 'CreateHiveTable',
+    drop_delimiter: 'DropDelimiter',
+    over_write_src: 'OverWriteSrc',
+    hive_target_dir: 'Hive Target Dir',
+    hive_target_dir_tips: 'Please enter hive target dir',
+    replace_delimiter: 'ReplaceDelimiter',
+    replace_delimiter_tips: 'Please enter Replace Delimiter',
+    target_dir: 'Target Dir',
+    target_dir_tips: 'Please enter Target Dir(required)',
+    delete_target_dir: 'DeleteTargetDir',
+    compression_codec: 'CompressionCodec',
+    file_type: 'FileType',
+    fields_terminated: 'FieldsTerminated',
+    fields_terminated_tips: 'Please enter Fields Terminated',
+    lines_terminated: 'LinesTerminated',
+    lines_terminated_tips: 'Please enter Lines Terminated',
+    is_update: 'IsUpdate',
+    update_key: 'UpdateKey',
+    update_key_tips: 'Please enter Update Key',
+    update_mode: 'UpdateMode',
+    only_update: 'OnlyUpdate',
+    allow_insert: 'AllowInsert',
+    concurrency: 'Concurrency',
+    concurrency_tips: 'Please enter Concurrency',
+    sea_tunnel_master: 'Master',
+    sea_tunnel_master_url: 'Master URL',
+    sea_tunnel_queue: 'Queue',
+    sea_tunnel_master_url_tips:
+      'Please enter the master url, e.g., 127.0.0.1:7077',
+    add_pre_task_check_condition: 'Add pre task check condition',
+    switch_condition: 'Condition',
+    switch_branch_flow: 'Branch Flow',
+    and: 'and',
+    or: 'or',
+    datax_custom_template: 'Custom Template',
+    datax_json_template: 'JSON',
+    datax_target_datasource_type: 'Target Datasource Types',
+    datax_target_database: 'Target Database',
+    datax_target_table: 'Target Table',
+    datax_target_table_tips: 'Please enter the name of the target table',
+    datax_target_database_pre_sql: 'Pre SQL Statement',
+    datax_target_database_post_sql: 'Post SQL Statement',
+    datax_non_query_sql_tips: 'Please enter the non-query sql statement',
+    datax_job_speed_byte: 'Speed(Byte count)',
+    datax_job_speed_byte_info: '(0 means unlimited)',
+    datax_job_speed_record: 'Speed(Record count)',
+    datax_job_speed_record_info: '(0 means unlimited)',
+    datax_job_runtime_memory: 'Runtime Memory Limits',
+    datax_job_runtime_memory_xms: 'Low Limit Value',
+    datax_job_runtime_memory_xmx: 'High Limit Value',
+    datax_job_runtime_memory_unit: 'G',
+    current_hour: 'CurrentHour',
+    last_1_hour: 'Last1Hour',
+    last_2_hour: 'Last2Hours',
+    last_3_hour: 'Last3Hours',
+    last_24_hour: 'Last24Hours',
+    today: 'today',
+    last_1_days: 'Last1Days',
+    last_2_days: 'Last2Days',
+    last_3_days: 'Last3Days',
+    last_7_days: 'Last7Days',
+    this_week: 'ThisWeek',
+    last_week: 'LastWeek',
+    last_monday: 'LastMonday',
+    last_tuesday: 'LastTuesday',
+    last_wednesday: 'LastWednesday',
+    last_thursday: 'LastThursday',
+    last_friday: 'LastFriday',
+    last_saturday: 'LastSaturday',
+    last_sunday: 'LastSunday',
+    this_month: 'ThisMonth',
+    this_month_begin: 'ThisMonthBegin',
+    last_month: 'LastMonth',
+    last_month_begin: 'LastMonthBegin',
+    last_month_end: 'LastMonthEnd',
+    month: 'month',
+    week: 'week',
+    day: 'day',
+    hour: 'hour',
+    add_dependency: 'Add dependency',
+    waiting_dependent_start: 'Waiting Dependent start',
+    check_interval: 'Check interval',
+    waiting_dependent_complete: 'Waiting Dependent complete',
+    project_name: 'Project Name',
+    project_name_tips: 'Please select a project(required)',
+    process_name: 'Workflow Name',
+    process_name_tips: 'Please select a workflow(required)',
+    cycle_time: 'Cycle Time',
+    cycle_time_tips: 'Please select a cycle time(required)',
+    date_tips: 'Please select a date(required)',
+    rule_name: 'Rule Name',
+    null_check: 'NullCheck',
+    custom_sql: 'CustomSql',
+    multi_table_accuracy: 'MulTableAccuracy',
+    multi_table_value_comparison: 'MulTableCompare',
+    field_length_check: 'FieldLengthCheck',
+    uniqueness_check: 'UniquenessCheck',
+    regexp_check: 'RegexpCheck',
+    timeliness_check: 'TimelinessCheck',
+    enumeration_check: 'EnumerationCheck',
+    table_count_check: 'TableCountCheck',
+    src_connector_type: 'SrcConnType',
+    src_datasource_id: 'SrcSource',
+    src_table: 'SrcTable',
+    src_filter: 'SrcFilter',
+    src_field: 'SrcField',
+    statistics_name: 'ActualValName',
+    check_type: 'CheckType',
+    operator: 'Operator',
+    threshold: 'Threshold',
+    failure_strategy: 'FailureStrategy',
+    target_connector_type: 'TargetConnType',
+    target_datasource_id: 'TargetSourceId',
+    target_table: 'TargetTable',
+    target_filter: 'TargetFilter',
+    mapping_columns: 'OnClause',
+    statistics_execute_sql: 'ActualValExecSql',
+    comparison_name: 'ExceptedValName',
+    comparison_execute_sql: 'ExceptedValExecSql',
+    comparison_type: 'ExceptedValType',
+    writer_connector_type: 'WriterConnType',
+    writer_datasource_id: 'WriterSourceId',
+    target_field: 'TargetField',
+    field_length: 'FieldLength',
+    logic_operator: 'LogicOperator',
+    regexp_pattern: 'RegexpPattern',
+    deadline: 'Deadline',
+    datetime_format: 'DatetimeFormat',
+    enum_list: 'EnumList',
+    begin_time: 'BeginTime',
+    fix_value: 'FixValue',
+    required: 'required',
+    emr_flow_define_json: 'jobFlowDefineJson',
+    emr_flow_define_json_tips: 'Please enter the definition of the job flow.',
+    segment_separator: 'Segment Execution Separator',
+    segment_separator_tips: 'Please enter the segment execution separator',
+    zeppelin_note_id: 'zeppelinNoteId',
+    zeppelin_note_id_tips: 'Please enter the note id of your zeppelin note',
+    zeppelin_paragraph_id: 'zeppelinParagraphId',
+    zeppelin_paragraph_id_tips:
+      'Please enter the paragraph id of your zeppelin paragraph',
+    send_email: 'Send Email',
+    log_display: 'Log display',
+    rows_of_result: 'rows of result',
+    title: 'Title',
+    title_tips: 'Please enter the title of email',
+    alarm_group: 'Alarm group',
+    alarm_group_tips: 'Alarm group required',
+    integer_tips: 'Please enter a positive integer',
+    sql_parameter: 'SQL Parameter',
+    format_tips: 'Please enter format',
+    udf_function: 'UDF Function',
+    unlimited: 'unlimited',
+    please_select_source_connector_type: 'Please select source connector type',
+    please_select_source_datasource_id: 'Please select source datasource id',
+    please_enter_source_table_name: 'Please select source table name',
+    please_enter_filter_expression: 'Please enter filter expression',
+    please_enter_column_only_single_column_is_supported: 'Please select column, only single column is supported',
+    please_enter_threshold_number_is_needed: 'Please enter threshold number is needed',
+    please_enter_comparison_title: 'please select comparison title'
+  }
+}
diff --git a/dolphinscheduler-ui/src/locales/en_US/resource.ts b/dolphinscheduler-ui/src/locales/en_US/resource.ts
new file mode 100644
index 0000000000..1e5651d19e
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/resource.ts
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  file: {
+    file_manage: 'File Manage',
+    create_folder: 'Create Folder',
+    create_file: 'Create File',
+    upload_files: 'Upload Files',
+    enter_keyword_tips: 'Please enter keyword',
+    name: 'Name',
+    user_name: 'Resource userName',
+    whether_directory: 'Whether directory',
+    file_name: 'File Name',
+    description: 'Description',
+    size: 'Size',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    rename: 'Rename',
+    download: 'Download',
+    delete: 'Delete',
+    yes: 'Yes',
+    no: 'No',
+    folder_name: 'Folder Name',
+    enter_name_tips: 'Please enter name',
+    enter_description_tips: 'Please enter description',
+    enter_content_tips: 'Please enter the resource content',
+    file_format: 'File Format',
+    file_content: 'File Content',
+    delete_confirm: 'Delete?',
+    confirm: 'Confirm',
+    cancel: 'Cancel',
+    success: 'Success',
+    file_details: 'File Details',
+    return: 'Return',
+    save: 'Save'
+  },
+  udf: {
+    udf_resources: 'UDF resources',
+    create_folder: 'Create Folder',
+    upload_udf_resources: 'Upload UDF Resources',
+    udf_source_name: 'UDF Resource Name',
+    user_name: 'Resource userName',
+    whether_directory: 'Whether directory',
+    file_name: 'File Name',
+    file_size: 'File Size',
+    description: 'Description',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    yes: 'Yes',
+    no: 'No',
+    edit: 'Edit',
+    download: 'Download',
+    delete: 'Delete',
+    delete_confirm: 'Delete?',
+    success: 'Success',
+    folder_name: 'Folder Name',
+    upload: 'Upload',
+    upload_files: 'Upload Files',
+    file_upload: 'File Upload',
+    enter_keyword_tips: 'Please enter keyword',
+    enter_name_tips: 'Please enter name',
+    enter_description_tips: 'Please enter description'
+  },
+  function: {
+    udf_function: 'UDF Function',
+    create_udf_function: 'Create UDF Function',
+    edit_udf_function: 'Create UDF Function',
+    udf_function_name: 'UDF Function Name',
+    user_name: 'Resource userName',
+    class_name: 'Class Name',
+    type: 'Type',
+    description: 'Description',
+    jar_package: 'Jar Package',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    rename: 'Rename',
+    edit: 'Edit',
+    delete: 'Delete',
+    success: 'Success',
+    package_name: 'Package Name',
+    udf_resources: 'UDF Resources',
+    instructions: 'Instructions',
+    upload_resources: 'Upload Resources',
+    udf_resources_directory: 'UDF resources directory',
+    delete_confirm: 'Delete?',
+    enter_keyword_tips: 'Please enter keyword',
+    enter_udf_unction_name_tips: 'Please enter a UDF function name',
+    enter_package_name_tips: 'Please enter a Package name',
+    enter_select_udf_resources_tips: 'Please select UDF resources',
+    enter_select_udf_resources_directory_tips:
+      'Please select UDF resources directory',
+    enter_instructions_tips: 'Please enter a instructions',
+    enter_name_tips: 'Please enter name',
+    enter_description_tips: 'Please enter description',
+    upload: 'Upload',
+    upload_udf_resources: 'Upload UDF Resources'
+  },
+  task_group_option: {
+    manage: 'Task group manage',
+    option: 'Task group option',
+    create: 'Create task group',
+    edit: 'Edit task group',
+    delete: 'Delete task group',
+    view_queue: 'View the queue of the task group',
+    switch_status: 'Switch status',
+    code: 'Task group code',
+    name: 'Task group name',
+    project_name: 'Project name',
+    resource_pool_size: 'Resource pool size',
+    resource_used_pool_size: 'Used resource',
+    desc: 'Task group desc',
+    status: 'Task group status',
+    enable_status: 'Enable',
+    disable_status: 'Disable',
+    please_enter_name: 'Please enter task group name',
+    please_enter_desc: 'Please enter task group description',
+    please_enter_resource_pool_size:
+      'Please enter task group resource pool size',
+    positive_integer_tips: 'should be a positive integer',
+    please_select_project: 'Please select a project',
+    create_time: 'Create time',
+    update_time: 'Update time',
+    actions: 'Actions',
+    please_enter_keywords: 'Please enter keywords'
+  },
+  task_group_queue: {
+    actions: 'Actions',
+    task_name: 'Task name',
+    task_group_name: 'Task group name',
+    project_name: 'Project name',
+    task_instance_name: 'Task instance',
+    workflow_instance_name: 'Workflow instance',
+    queue: 'Task group queue',
+    priority: 'Priority',
+    priority_be_a_number:
+      'The priority of the task group queue should be a positive number',
+    force_starting_status: 'Starting status',
+    in_queue: 'In queue',
+    task_status: 'Task status',
+    view: 'View task group queue',
+    the_status_of_waiting: 'Waiting into the queue',
+    the_status_of_queuing: 'Queuing',
+    the_status_of_releasing: 'Released',
+    modify_priority: 'Edit the priority',
+    start_task: 'Start the task',
+    priority_not_empty: 'The value of priority can not be empty',
+    priority_must_be_number: 'The value of priority should be number',
+    please_select_task_name: 'Please select a task name',
+    create_time: 'Create time',
+    update_time: 'Update time',
+    edit_priority: 'Edit the task priority'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/en_US/security.ts b/dolphinscheduler-ui/src/locales/en_US/security.ts
new file mode 100644
index 0000000000..0f3ec1f163
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/en_US/security.ts
@@ -0,0 +1,265 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  tenant: {
+    tenant_manage: 'Tenant Manage',
+    create_tenant: 'Create Tenant',
+    search_tips: 'Please enter keywords',
+    tenant_code: 'Operating System Tenant',
+    description: 'Description',
+    queue_name: 'QueueName',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    actions: 'Operation',
+    edit_tenant: 'Edit Tenant',
+    tenant_code_tips: 'Please enter the operating system tenant',
+    queue_name_tips: 'Please select queue',
+    description_tips: 'Please enter a description',
+    delete_confirm: 'Delete?',
+    edit: 'Edit',
+    delete: 'Delete'
+  },
+  alarm_group: {
+    create_alarm_group: 'Create Alarm Group',
+    edit_alarm_group: 'Edit Alarm Group',
+    search_tips: 'Please enter keywords',
+    alert_group_name_tips: 'Please enter your alert group name',
+    alarm_plugin_instance: 'Alarm Plugin Instance',
+    alarm_plugin_instance_tips: 'Please select alert plugin instance',
+    alarm_group_description_tips: 'Please enter your alarm group description',
+    alert_group_name: 'Alert Group Name',
+    alarm_group_description: 'Alarm Group Description',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    delete_confirm: 'Delete?',
+    edit: 'Edit',
+    delete: 'Delete'
+  },
+  worker_group: {
+    create_worker_group: 'Create Worker Group',
+    edit_worker_group: 'Edit Worker Group',
+    search_tips: 'Please enter keywords',
+    operation: 'Operation',
+    delete_confirm: 'Delete?',
+    edit: 'Edit',
+    delete: 'Delete',
+    group_name: 'Group Name',
+    group_name_tips: 'Please enter your group name',
+    worker_addresses: 'Worker Addresses',
+    worker_addresses_tips: 'Please select worker addresses',
+    create_time: 'Create Time',
+    update_time: 'Update Time'
+  },
+  yarn_queue: {
+    create_queue: 'Create Queue',
+    edit_queue: 'Edit Queue',
+    search_tips: 'Please enter keywords',
+    queue_name: 'Queue Name',
+    queue_value: 'Queue Value',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    queue_name_tips: 'Please enter your queue name',
+    queue_value_tips: 'Please enter your queue value'
+  },
+  environment: {
+    create_environment: 'Create Environment',
+    edit_environment: 'Edit Environment',
+    search_tips: 'Please enter keywords',
+    edit: 'Edit',
+    delete: 'Delete',
+    environment_name: 'Environment Name',
+    environment_config: 'Environment Config',
+    environment_desc: 'Environment Desc',
+    worker_groups: 'Worker Groups',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    delete_confirm: 'Delete?',
+    environment_name_tips: 'Please enter your environment name',
+    environment_config_tips: 'Please enter your environment config',
+    environment_description_tips: 'Please enter your environment description',
+    worker_group_tips: 'Please select worker group'
+  },
+  token: {
+    create_token: 'Create Token',
+    edit_token: 'Edit Token',
+    search_tips: 'Please enter keywords',
+    user: 'User',
+    user_tips: 'Please select user',
+    token: 'Token',
+    token_tips: 'Please click to get token',
+    expiration_time: 'Expiration Time',
+    expiration_time_tips: 'Please select expiration time',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    delete: 'Delete',
+    delete_confirm: 'Delete?'
+  },
+  user: {
+    user_manage: 'User Manage',
+    create_user: 'Create User',
+    edit_user: 'Edit User',
+    delete_user: 'Delete User',
+    delete_confirm: 'Are you sure to delete?',
+    delete_confirm_tip:
+      'Deleting user is a dangerous operation,please be careful',
+    project: 'Project',
+    resource: 'Resource',
+    file_resource: 'File Resource',
+    udf_resource: 'UDF Resource',
+    datasource: 'Datasource',
+    udf: 'UDF Function',
+    namespace: 'Namespace',
+    authorize_project: 'Project Authorize',
+    authorize_resource: 'Resource Authorize',
+    authorize_namespace: 'Namespace Authorize',
+    authorize_datasource: 'Datasource Authorize',
+    authorize_udf: 'UDF Function Authorize',
+    username: 'Username',
+    username_exists: 'The username already exists',
+    username_tips: 'Please enter username',
+    user_password: 'Password',
+    user_password_tips:
+      'Please enter a password containing letters and numbers with a length between 6 and 20',
+    user_type: 'User Type',
+    ordinary_user: 'Ordinary users',
+    administrator: 'Administrator',
+    tenant_code: 'Tenant',
+    tenant_id_tips: 'Please select tenant',
+    queue: 'Queue',
+    queue_tips: 'Please select a queue',
+    email: 'Email',
+    email_empty_tips: 'Please enter email',
+    emial_correct_tips: 'Please enter the correct email format',
+    phone: 'Phone',
+    phone_empty_tips: 'Please enter phone number',
+    phone_correct_tips: 'Please enter the correct mobile phone format',
+    state: 'State',
+    state_enabled: 'Enabled',
+    state_disabled: 'Disabled',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    delete: 'Delete',
+    authorize: 'Authorize',
+    save_error_msg: 'Failed to save, please retry',
+    delete_error_msg: 'Failed to delete, please retry',
+    auth_error_msg: 'Failed to authorize, please retry',
+    auth_success_msg: 'Authorize succeeded',
+    enable: 'Enable',
+    disable: 'Disable'
+  },
+  alarm_instance: {
+    search_input_tips: 'Please input the keywords',
+    alarm_instance_manage: 'Alarm instance manage',
+    alarm_instance_name: 'Alarm instance name',
+    alarm_instance_name_tips: 'Please enter alarm plugin instance name',
+    alarm_plugin_name: 'Alarm plugin name',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit_alarm_instance: 'Edit Alarm Instance',
+    delete: 'Delete',
+    edit: 'Edit',
+    delete_confirm: 'Delete?',
+    confirm: 'Confirm',
+    cancel: 'Cancel',
+    submit: 'Submit',
+    create_alarm_instance: 'Create Alarm Instance',
+    select_plugin: 'Select plugin',
+    select_plugin_tips: 'Select Alarm plugin',
+    instance_parameter_exception: 'Instance parameter exception',
+    WebHook: 'WebHook',
+    webHook: 'WebHook',
+    WarningType: 'Warning Type',
+    IsEnableProxy: 'Enable Proxy',
+    Proxy: 'Proxy',
+    Port: 'Port',
+    User: 'User',
+    corpId: 'CorpId',
+    secret: 'Secret',
+    Secret: 'Secret',
+    users: 'Users',
+    userSendMsg: 'UserSendMsg',
+    'agentId/chatId': 'AgentId or ChatId',
+    showType: 'Show Type',
+    receivers: 'Receivers',
+    receiverCcs: 'ReceiverCcs',
+    serverHost: 'SMTP Host',
+    serverPort: 'SMTP Port',
+    sender: 'Sender',
+    enableSmtpAuth: 'SMTP Auth',
+    Password: 'Password',
+    starttlsEnable: 'SMTP STARTTLS Enable',
+    sslEnable: 'SMTP SSL Enable',
+    smtpSslTrust: 'SMTP SSL Trust',
+    url: 'URL',
+    requestType: 'Request Type',
+    headerParams: 'Headers',
+    bodyParams: 'Body',
+    contentField: 'Content Field',
+    Keyword: 'Keyword',
+    userParams: 'User Params',
+    path: 'Script Path',
+    type: 'Type',
+    sendType: 'Send Type',
+    username: 'Username',
+    botToken: 'Bot Token',
+    chatId: 'Channel Chat Id',
+    parseMode: 'Parse Mode',
+    IntegrationKey: 'Integration Key',
+    BotAccessToken: 'Bot Access Token',
+    RoomId: 'Room Id',
+    ToPersonId: 'To Person Id',
+    ToPersonEmail: 'To Person Email',
+    AtSomeoneInRoom: 'At Someone In Room',
+    Destination: 'Destination',
+    AtMobiles: 'At User Mobiles',
+    AtUserIds: 'At User Ids',
+    MsgType: 'Msg Type',
+    // eslint-disable-next-line quotes
+    IsAtAll: "{'@'}All"
+  },
+  k8s_namespace: {
+    create_namespace: 'Create Namespace',
+    edit_namespace: 'Edit Namespace',
+    search_tips: 'Please enter keywords',
+    k8s_namespace: 'K8S Namespace',
+    k8s_namespace_tips: 'Please enter k8s namespace',
+    k8s_cluster: 'K8S Cluster',
+    k8s_cluster_tips: 'Please enter k8s cluster',
+    owner: 'Owner',
+    owner_tips: 'Please enter owner',
+    limit_cpu: 'Limit CPU',
+    limit_cpu_tips: 'Please enter limit CPU',
+    limit_memory: 'Limit Memory',
+    limit_memory_tips: 'Please enter limit memory',
+    create_time: 'Create Time',
+    update_time: 'Update Time',
+    operation: 'Operation',
+    edit: 'Edit',
+    delete: 'Delete',
+    delete_confirm: 'Delete?'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/theme.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/theme.ts
index 31a3cd9835..5281a2f2d7 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/theme.ts
@@ -15,18 +15,7 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  light: 'Light',
+  dark: 'Dark'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts
index 31a3cd9835..4bcf593f14 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts
@@ -15,18 +15,8 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  profile: 'Profile',
+  password: 'Password',
+  logout: 'Logout'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/index.ts
index 31a3cd9835..2f691a11f9 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/index.ts
@@ -16,8 +16,8 @@
  */
 
 import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
+import zh_CN from './zh_CN'
+import en_US from './en_US'
 
 const i18n = createI18n({
   legacy: false,
diff --git a/dolphinscheduler-ui/src/locales/modules/en_US.ts b/dolphinscheduler-ui/src/locales/modules/en_US.ts
deleted file mode 100644
index 8223e4de8c..0000000000
--- a/dolphinscheduler-ui/src/locales/modules/en_US.ts
+++ /dev/null
@@ -1,1436 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-const login = {
-  test: 'Test',
-  userName: 'Username',
-  userName_tips: 'Please enter your username',
-  userPassword: 'Password',
-  userPassword_tips: 'Please enter your password',
-  login: 'Login'
-}
-
-const modal = {
-  cancel: 'Cancel',
-  confirm: 'Confirm'
-}
-
-const theme = {
-  light: 'Light',
-  dark: 'Dark'
-}
-
-const userDropdown = {
-  profile: 'Profile',
-  password: 'Password',
-  logout: 'Logout'
-}
-
-const menu = {
-  home: 'Home',
-  project: 'Project',
-  resources: 'Resources',
-  datasource: 'Datasource',
-  monitor: 'Monitor',
-  security: 'Security',
-  project_overview: 'Project Overview',
-  workflow_relation: 'Workflow Relation',
-  workflow: 'Workflow',
-  workflow_definition: 'Workflow Definition',
-  workflow_instance: 'Workflow Instance',
-  task: 'Task',
-  task_instance: 'Task Instance',
-  task_definition: 'Task Definition',
-  file_manage: 'File Manage',
-  udf_manage: 'UDF Manage',
-  resource_manage: 'Resource Manage',
-  function_manage: 'Function Manage',
-  service_manage: 'Service Manage',
-  master: 'Master',
-  worker: 'Worker',
-  db: 'DB',
-  statistical_manage: 'Statistical Manage',
-  statistics: 'Statistics',
-  audit_log: 'Audit Log',
-  tenant_manage: 'Tenant Manage',
-  user_manage: 'User Manage',
-  alarm_group_manage: 'Alarm Group Manage',
-  alarm_instance_manage: 'Alarm Instance Manage',
-  worker_group_manage: 'Worker Group Manage',
-  yarn_queue_manage: 'Yarn Queue Manage',
-  environment_manage: 'Environment Manage',
-  k8s_namespace_manage: 'K8S Namespace Manage',
-  token_manage: 'Token Manage',
-  task_group_manage: 'Task Group Manage',
-  task_group_option: 'Task Group Option',
-  task_group_queue: 'Task Group Queue',
-  data_quality: 'Data Quality',
-  task_result: 'Task Result',
-  rule: 'Rule management'
-}
-
-const home = {
-  task_state_statistics: 'Task State Statistics',
-  process_state_statistics: 'Process State Statistics',
-  process_definition_statistics: 'Process Definition Statistics',
-  number: 'Number',
-  state: 'State',
-  submitted_success: 'SUBMITTED_SUCCESS',
-  running_execution: 'RUNNING_EXECUTION',
-  ready_pause: 'READY_PAUSE',
-  pause: 'PAUSE',
-  ready_stop: 'READY_STOP',
-  stop: 'STOP',
-  failure: 'FAILURE',
-  success: 'SUCCESS',
-  need_fault_tolerance: 'NEED_FAULT_TOLERANCE',
-  kill: 'KILL',
-  waiting_thread: 'WAITING_THREAD',
-  waiting_depend: 'WAITING_DEPEND',
-  delay_execution: 'DELAY_EXECUTION',
-  forced_success: 'FORCED_SUCCESS',
-  serial_wait: 'SERIAL_WAIT',
-  dispatch: 'DISPATCH',
-  ready_block: 'READY_BLOCK',
-  block: 'BLOCK'
-}
-
-const password = {
-  edit_password: 'Edit Password',
-  password: 'Password',
-  confirm_password: 'Confirm Password',
-  password_tips: 'Please enter your password',
-  confirm_password_tips: 'Please enter your confirm password',
-  two_password_entries_are_inconsistent:
-    'Two password entries are inconsistent',
-  submit: 'Submit'
-}
-
-const profile = {
-  profile: 'Profile',
-  edit: 'Edit',
-  username: 'Username',
-  email: 'Email',
-  phone: 'Phone',
-  state: 'State',
-  permission: 'Permission',
-  create_time: 'Create Time',
-  update_time: 'Update Time',
-  administrator: 'Administrator',
-  ordinary_user: 'Ordinary User',
-  edit_profile: 'Edit Profile',
-  username_tips: 'Please enter your username',
-  email_tips: 'Please enter your email',
-  email_correct_tips: 'Please enter your email in the correct format',
-  phone_tips: 'Please enter your phone',
-  state_tips: 'Please choose your state',
-  enable: 'Enable',
-  disable: 'Disable',
-  timezone_success: 'Time zone updated successful',
-  please_select_timezone: 'Choose timeZone'
-}
-
-const monitor = {
-  master: {
-    cpu_usage: 'CPU Usage',
-    memory_usage: 'Memory Usage',
-    load_average: 'Load Average',
-    create_time: 'Create Time',
-    last_heartbeat_time: 'Last Heartbeat Time',
-    directory_detail: 'Directory Detail',
-    host: 'Host',
-    directory: 'Directory',
-    master_no_data_result_title: 'No Master Nodes Exist',
-    master_no_data_result_desc:
-      'Currently, there are no master nodes exist, please create a master node and refresh this page'
-  },
-  worker: {
-    cpu_usage: 'CPU Usage',
-    memory_usage: 'Memory Usage',
-    load_average: 'Load Average',
-    create_time: 'Create Time',
-    last_heartbeat_time: 'Last Heartbeat Time',
-    directory_detail: 'Directory Detail',
-    host: 'Host',
-    directory: 'Directory',
-    worker_no_data_result_title: 'No Worker Nodes Exist',
-    worker_no_data_result_desc:
-      'Currently, there are no worker nodes exist, please create a worker node and refresh this page'
-  },
-  db: {
-    health_state: 'Health State',
-    max_connections: 'Max Connections',
-    threads_connections: 'Threads Connections',
-    threads_running_connections: 'Threads Running Connections'
-  },
-  statistics: {
-    command_number_of_waiting_for_running:
-      'Command Number Of Waiting For Running',
-    failure_command_number: 'Failure Command Number'
-  },
-  audit_log: {
-    user_name: 'User Name',
-    resource_type: 'Resource Type',
-    project_name: 'Project Name',
-    operation_type: 'Operation Type',
-    create_time: 'Create Time',
-    start_time: 'Start Time',
-    end_time: 'End Time',
-    user_audit: 'User Audit',
-    project_audit: 'Project Audit',
-    create: 'Create',
-    update: 'Update',
-    delete: 'Delete',
-    read: 'Read'
-  }
-}
-
-const resource = {
-  file: {
-    file_manage: 'File Manage',
-    create_folder: 'Create Folder',
-    create_file: 'Create File',
-    upload_files: 'Upload Files',
-    enter_keyword_tips: 'Please enter keyword',
-    name: 'Name',
-    user_name: 'Resource userName',
-    whether_directory: 'Whether directory',
-    file_name: 'File Name',
-    description: 'Description',
-    size: 'Size',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    rename: 'Rename',
-    download: 'Download',
-    delete: 'Delete',
-    yes: 'Yes',
-    no: 'No',
-    folder_name: 'Folder Name',
-    enter_name_tips: 'Please enter name',
-    enter_description_tips: 'Please enter description',
-    enter_content_tips: 'Please enter the resource content',
-    file_format: 'File Format',
-    file_content: 'File Content',
-    delete_confirm: 'Delete?',
-    confirm: 'Confirm',
-    cancel: 'Cancel',
-    success: 'Success',
-    file_details: 'File Details',
-    return: 'Return',
-    save: 'Save'
-  },
-  udf: {
-    udf_resources: 'UDF resources',
-    create_folder: 'Create Folder',
-    upload_udf_resources: 'Upload UDF Resources',
-    udf_source_name: 'UDF Resource Name',
-    user_name: 'Resource userName',
-    whether_directory: 'Whether directory',
-    file_name: 'File Name',
-    file_size: 'File Size',
-    description: 'Description',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    yes: 'Yes',
-    no: 'No',
-    edit: 'Edit',
-    download: 'Download',
-    delete: 'Delete',
-    delete_confirm: 'Delete?',
-    success: 'Success',
-    folder_name: 'Folder Name',
-    upload: 'Upload',
-    upload_files: 'Upload Files',
-    file_upload: 'File Upload',
-    enter_keyword_tips: 'Please enter keyword',
-    enter_name_tips: 'Please enter name',
-    enter_description_tips: 'Please enter description'
-  },
-  function: {
-    udf_function: 'UDF Function',
-    create_udf_function: 'Create UDF Function',
-    edit_udf_function: 'Create UDF Function',
-    udf_function_name: 'UDF Function Name',
-    user_name: 'Resource userName',
-    class_name: 'Class Name',
-    type: 'Type',
-    description: 'Description',
-    jar_package: 'Jar Package',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    rename: 'Rename',
-    edit: 'Edit',
-    delete: 'Delete',
-    success: 'Success',
-    package_name: 'Package Name',
-    udf_resources: 'UDF Resources',
-    instructions: 'Instructions',
-    upload_resources: 'Upload Resources',
-    udf_resources_directory: 'UDF resources directory',
-    delete_confirm: 'Delete?',
-    enter_keyword_tips: 'Please enter keyword',
-    enter_udf_unction_name_tips: 'Please enter a UDF function name',
-    enter_package_name_tips: 'Please enter a Package name',
-    enter_select_udf_resources_tips: 'Please select UDF resources',
-    enter_select_udf_resources_directory_tips:
-      'Please select UDF resources directory',
-    enter_instructions_tips: 'Please enter a instructions',
-    enter_name_tips: 'Please enter name',
-    enter_description_tips: 'Please enter description',
-    upload: 'Upload',
-    upload_udf_resources: 'Upload UDF Resources'
-  },
-  task_group_option: {
-    manage: 'Task group manage',
-    option: 'Task group option',
-    create: 'Create task group',
-    edit: 'Edit task group',
-    delete: 'Delete task group',
-    view_queue: 'View the queue of the task group',
-    switch_status: 'Switch status',
-    code: 'Task group code',
-    name: 'Task group name',
-    project_name: 'Project name',
-    resource_pool_size: 'Resource pool size',
-    resource_used_pool_size: 'Used resource',
-    desc: 'Task group desc',
-    status: 'Task group status',
-    enable_status: 'Enable',
-    disable_status: 'Disable',
-    please_enter_name: 'Please enter task group name',
-    please_enter_desc: 'Please enter task group description',
-    please_enter_resource_pool_size:
-      'Please enter task group resource pool size',
-    positive_integer_tips: 'should be a positive integer',
-    please_select_project: 'Please select a project',
-    create_time: 'Create time',
-    update_time: 'Update time',
-    actions: 'Actions',
-    please_enter_keywords: 'Please enter keywords'
-  },
-  task_group_queue: {
-    actions: 'Actions',
-    task_name: 'Task name',
-    task_group_name: 'Task group name',
-    project_name: 'Project name',
-    task_instance_name: 'Task instance',
-    workflow_instance_name: 'Workflow instance',
-    queue: 'Task group queue',
-    priority: 'Priority',
-    priority_be_a_number:
-      'The priority of the task group queue should be a positive number',
-    force_starting_status: 'Starting status',
-    in_queue: 'In queue',
-    task_status: 'Task status',
-    view: 'View task group queue',
-    the_status_of_waiting: 'Waiting into the queue',
-    the_status_of_queuing: 'Queuing',
-    the_status_of_releasing: 'Released',
-    modify_priority: 'Edit the priority',
-    start_task: 'Start the task',
-    priority_not_empty: 'The value of priority can not be empty',
-    priority_must_be_number: 'The value of priority should be number',
-    please_select_task_name: 'Please select a task name',
-    create_time: 'Create time',
-    update_time: 'Update time',
-    edit_priority: 'Edit the task priority'
-  }
-}
-
-const project = {
-  list: {
-    create_project: 'Create Project',
-    edit_project: 'Edit Project',
-    project_list: 'Project List',
-    project_tips: 'Please enter your project',
-    description_tips: 'Please enter your description',
-    username_tips: 'Please enter your username',
-    project_name: 'Project Name',
-    project_description: 'Project Description',
-    owned_users: 'Owned Users',
-    workflow_define_count: 'Workflow Define Count',
-    process_instance_running_count: 'Process Instance Running Count',
-    description: 'Description',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    delete: 'Delete',
-    confirm: 'Confirm',
-    cancel: 'Cancel',
-    delete_confirm: 'Delete?'
-  },
-  workflow: {
-    workflow_relation: 'Workflow Relation',
-    create_workflow: 'Create Workflow',
-    import_workflow: 'Import Workflow',
-    workflow_name: 'Workflow Name',
-    current_selection: 'Current Selection',
-    online: 'Online',
-    offline: 'Offline',
-    refresh: 'Refresh',
-    show_hide_label: 'Show / Hide Label',
-    workflow_offline: 'Workflow Offline',
-    schedule_offline: 'Schedule Offline',
-    schedule_start_time: 'Schedule Start Time',
-    schedule_end_time: 'Schedule End Time',
-    crontab_expression: 'Crontab',
-    workflow_publish_status: 'Workflow Publish Status',
-    schedule_publish_status: 'Schedule Publish Status',
-    workflow_definition: 'Workflow Definition',
-    workflow_instance: 'Workflow Instance',
-    status: 'Status',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    description: 'Description',
-    create_user: 'Create User',
-    modify_user: 'Modify User',
-    operation: 'Operation',
-    edit: 'Edit',
-    start: 'Start',
-    timing: 'Timing',
-    timezone: 'Timezone',
-    up_line: 'Online',
-    down_line: 'Offline',
-    copy_workflow: 'Copy Workflow',
-    cron_manage: 'Cron manage',
-    delete: 'Delete',
-    tree_view: 'Tree View',
-    tree_limit: 'Limit Size',
-    export: 'Export',
-    batch_copy: 'Batch Copy',
-    version_info: 'Version Info',
-    version: 'Version',
-    file_upload: 'File Upload',
-    upload_file: 'Upload File',
-    upload: 'Upload',
-    file_name: 'File Name',
-    success: 'Success',
-    set_parameters_before_starting: 'Please set the parameters before starting',
-    set_parameters_before_timing: 'Set parameters before timing',
-    start_and_stop_time: 'Start and stop time',
-    next_five_execution_times: 'Next five execution times',
-    execute_time: 'Execute time',
-    failure_strategy: 'Failure Strategy',
-    notification_strategy: 'Notification Strategy',
-    workflow_priority: 'Workflow Priority',
-    worker_group: 'Worker Group',
-    environment_name: 'Environment Name',
-    alarm_group: 'Alarm Group',
-    complement_data: 'Complement Data',
-    startup_parameter: 'Startup Parameter',
-    whether_dry_run: 'Whether Dry-Run',
-    continue: 'Continue',
-    end: 'End',
-    none_send: 'None',
-    success_send: 'Success',
-    failure_send: 'Failure',
-    all_send: 'All',
-    whether_complement_data: 'Whether it is a complement process?',
-    schedule_date: 'Schedule date',
-    mode_of_execution: 'Mode of execution',
-    serial_execution: 'Serial execution',
-    parallel_execution: 'Parallel execution',
-    parallelism: 'Parallelism',
-    custom_parallelism: 'Custom Parallelism',
-    please_enter_parallelism: 'Please enter Parallelism',
-    please_choose: 'Please Choose',
-    start_time: 'Start Time',
-    end_time: 'End Time',
-    crontab: 'Crontab',
-    delete_confirm: 'Delete?',
-    enter_name_tips: 'Please enter name',
-    switch_version: 'Switch To This Version',
-    confirm_switch_version: 'Confirm Switch To This Version?',
-    current_version: 'Current Version',
-    run_type: 'Run Type',
-    scheduling_time: 'Scheduling Time',
-    duration: 'Duration',
-    run_times: 'Run Times',
-    fault_tolerant_sign: 'Fault-tolerant Sign',
-    dry_run_flag: 'Dry-run Flag',
-    executor: 'Executor',
-    host: 'Host',
-    start_process: 'Start Process',
-    execute_from_the_current_node: 'Execute from the current node',
-    recover_tolerance_fault_process: 'Recover tolerance fault process',
-    resume_the_suspension_process: 'Resume the suspension process',
-    execute_from_the_failed_nodes: 'Execute from the failed nodes',
-    scheduling_execution: 'Scheduling execution',
-    rerun: 'Rerun',
-    stop: 'Stop',
-    pause: 'Pause',
-    recovery_waiting_thread: 'Recovery waiting thread',
-    recover_serial_wait: 'Recover serial wait',
-    recovery_suspend: 'Recovery Suspend',
-    recovery_failed: 'Recovery Failed',
-    gantt: 'Gantt',
-    name: 'Name',
-    all_status: 'AllStatus',
-    submit_success: 'Submitted successfully',
-    running: 'Running',
-    ready_to_pause: 'Ready to pause',
-    ready_to_stop: 'Ready to stop',
-    failed: 'Failed',
-    need_fault_tolerance: 'Need fault tolerance',
-    kill: 'Kill',
-    waiting_for_thread: 'Waiting for thread',
-    waiting_for_dependence: 'Waiting for dependence',
-    waiting_for_dependency_to_complete: 'Waiting for dependency to complete',
-    delay_execution: 'Delay execution',
-    forced_success: 'Forced success',
-    serial_wait: 'Serial wait',
-    dispatch: 'Dispatch',
-    pending: 'Pending',
-    executing: 'Executing',
-    startup_type: 'Startup Type',
-    complement_range: 'Complement Range',
-    parameters_variables: 'Parameters variables',
-    global_parameters: 'Global parameters',
-    local_parameters: 'Local parameters',
-    type: 'Type',
-    retry_count: 'Retry Count',
-    submit_time: 'Submit Time',
-    refresh_status_succeeded: 'Refresh status succeeded',
-    view_log: 'View log',
-    update_log_success: 'Update log success',
-    no_more_log: 'No more logs',
-    no_log: 'No log',
-    loading_log: 'Loading Log...',
-    close: 'Close',
-    download_log: 'Download Log',
-    refresh_log: 'Refresh Log',
-    enter_full_screen: 'Enter full screen',
-    cancel_full_screen: 'Cancel full screen',
-    task_state: 'Task status',
-    mode_of_dependent: 'Mode of dependent',
-    open: 'Open',
-    project_name_required: 'Project name is required',
-    related_items: 'Related items',
-    project_name: 'Project Name',
-    project_tips: 'Please select project name',
-    workflow_relation_no_data_result_title:
-      'Can not find any relations of workflows.',
-    workflow_relation_no_data_result_desc:
-      'There is not any workflows. Please create a workflow, and then visit this page again.'
-  },
-  task: {
-    cancel_full_screen: 'Cancel full screen',
-    enter_full_screen: 'Enter full screen',
-    current_task_settings: 'Current task settings',
-    online: 'Online',
-    offline: 'Offline',
-    task_name: 'Task Name',
-    task_type: 'Task Type',
-    create_task: 'Create Task',
-    workflow_instance: 'Workflow Instance',
-    workflow_name: 'Workflow Name',
-    workflow_name_tips: 'Please select workflow name',
-    workflow_state: 'Workflow State',
-    version: 'Version',
-    current_version: 'Current Version',
-    switch_version: 'Switch To This Version',
-    confirm_switch_version: 'Confirm Switch To This Version?',
-    description: 'Description',
-    move: 'Move',
-    upstream_tasks: 'Upstream Tasks',
-    executor: 'Executor',
-    node_type: 'Node Type',
-    state: 'State',
-    submit_time: 'Submit Time',
-    start_time: 'Start Time',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    end_time: 'End Time',
-    duration: 'Duration',
-    retry_count: 'Retry Count',
-    dry_run_flag: 'Dry Run Flag',
-    host: 'Host',
-    operation: 'Operation',
-    edit: 'Edit',
-    delete: 'Delete',
-    delete_confirm: 'Delete?',
-    forced_success: 'Forced Success',
-    view_log: 'View Log',
-    download_log: 'Download Log',
-    refresh: 'Refresh'
-  },
-  dag: {
-    create: 'Create Workflow',
-    search: 'Search',
-    download_png: 'Download PNG',
-    fullscreen_open: 'Open Fullscreen',
-    fullscreen_close: 'Close Fullscreen',
-    save: 'Save',
-    close: 'Close',
-    format: 'Format',
-    refresh_dag_status: 'Refresh DAG status',
-    layout_type: 'Layout Type',
-    grid_layout: 'Grid',
-    dagre_layout: 'Dagre',
-    rows: 'Rows',
-    cols: 'Cols',
-    copy_success: 'Copy Success',
-    workflow_name: 'Workflow Name',
-    description: 'Description',
-    tenant: 'Tenant',
-    timeout_alert: 'Timeout Alert',
-    process_execute_type: 'Process execute type',
-    parallel: 'parallel',
-    serial_wait: 'Serial wait',
-    serial_discard: 'Serial discard',
-    serial_priority: 'Serial priority',
-    recover_serial_wait: 'Recover serial wait',
-    global_variables: 'Global Variables',
-    basic_info: 'Basic Information',
-    minute: 'Minute',
-    key: 'Key',
-    value: 'Value',
-    success: 'Success',
-    delete_cell: 'Delete selected edges and nodes',
-    online_directly: 'Whether to go online the workflow definition',
-    update_directly: 'Whether to update the workflow definition',
-    dag_name_empty: 'DAG graph name cannot be empty',
-    positive_integer: 'Please enter a positive integer greater than 0',
-    prop_empty: 'prop is empty',
-    prop_repeat: 'prop is repeat',
-    node_not_created: 'Failed to save node not created',
-    copy_name: 'Copy Name',
-    view_variables: 'View Variables',
-    startup_parameter: 'Startup Parameter',
-    online: 'Online'
-  },
-  node: {
-    return_back: 'Return',
-    current_node_settings: 'Current node settings',
-    instructions: 'Instructions',
-    view_history: 'View history',
-    view_log: 'View log',
-    enter_this_child_node: 'Enter this child node',
-    name: 'Node Name',
-    task_name: 'Task Name',
-    task_name_tips: 'Please select a task (required)',
-    name_tips: 'Please enter name (required)',
-    task_type: 'Task Type',
-    task_type_tips: 'Please select a task type (required)',
-    workflow_name: 'Workflow Name',
-    workflow_name_tips: 'Please select a workflow (required)',
-    child_node: 'Child Node',
-    child_node_tips: 'Please select a child node (required)',
-    run_flag: 'Run flag',
-    normal: 'Normal',
-    prohibition_execution: 'Prohibition execution',
-    description: 'Description',
-    description_tips: 'Please enter description',
-    task_priority: 'Task priority',
-    worker_group: 'Worker group',
-    worker_group_tips:
-      'The Worker group no longer exists, please select the correct Worker group!',
-    environment_name: 'Environment Name',
-    task_group_name: 'Task group name',
-    task_group_queue_priority: 'Priority',
-    number_of_failed_retries: 'Number of failed retries',
-    times: 'Times',
-    failed_retry_interval: 'Failed retry interval',
-    minute: 'Minute',
-    delay_execution_time: 'Delay execution time',
-    state: 'State',
-    branch_flow: 'Branch flow',
-    cancel: 'Cancel',
-    loading: 'Loading...',
-    confirm: 'Confirm',
-    success: 'Success',
-    failed: 'Failed',
-    backfill_tips:
-      'The newly created sub-Process has not yet been executed and cannot enter the sub-Process',
-    task_instance_tips:
-      'The task has not been executed and cannot enter the sub-Process',
-    branch_tips:
-      'Cannot select the same node for successful branch flow and failed branch flow',
-    timeout_alarm: 'Timeout alarm',
-    timeout_strategy: 'Timeout strategy',
-    timeout_strategy_tips: 'Timeout strategy must be selected',
-    timeout_failure: 'Timeout failure',
-    timeout_period: 'Timeout period',
-    timeout_period_tips: 'Timeout must be a positive integer',
-    script: 'Script',
-    script_tips: 'Please enter script(required)',
-    init_script: 'Initialization script',
-    init_script_tips: 'Please enter initialization script',
-    resources: 'Resources',
-    resources_tips: 'Please select resources',
-    non_resources_tips: 'Please delete all non-existent resources',
-    useless_resources_tips: 'Unauthorized or deleted resources',
-    custom_parameters: 'Custom Parameters',
-    copy_success: 'Copy success',
-    copy_failed: 'The browser does not support automatic copying',
-    prop_tips: 'prop(required)',
-    prop_repeat: 'prop is repeat',
-    value_tips: 'value(optional)',
-    value_required_tips: 'value(required)',
-    pre_tasks: 'Pre tasks',
-    program_type: 'Program Type',
-    spark_version: 'Spark Version',
-    main_class: 'Main Class',
-    main_class_tips: 'Please enter main class',
-    main_package: 'Main Package',
-    main_package_tips: 'Please enter main package',
-    deploy_mode: 'Deploy Mode',
-    app_name: 'App Name',
-    app_name_tips: 'Please enter app name(optional)',
-    driver_cores: 'Driver Cores',
-    driver_cores_tips: 'Please enter Driver cores',
-    driver_memory: 'Driver Memory',
-    driver_memory_tips: 'Please enter Driver memory',
-    executor_number: 'Executor Number',
-    executor_number_tips: 'Please enter Executor number',
-    executor_memory: 'Executor Memory',
-    executor_memory_tips: 'Please enter Executor memory',
-    executor_cores: 'Executor Cores',
-    executor_cores_tips: 'Please enter Executor cores',
-    main_arguments: 'Main Arguments',
-    main_arguments_tips: 'Please enter main arguments',
-    option_parameters: 'Option Parameters',
-    option_parameters_tips: 'Please enter option parameters',
-    positive_integer_tips: 'should be a positive integer',
-    flink_version: 'Flink Version',
-    job_manager_memory: 'JobManager Memory',
-    job_manager_memory_tips: 'Please enter JobManager memory',
-    task_manager_memory: 'TaskManager Memory',
-    task_manager_memory_tips: 'Please enter TaskManager memory',
-    slot_number: 'Slot Number',
-    slot_number_tips: 'Please enter Slot number',
-    parallelism: 'Parallelism',
-    custom_parallelism: 'Configure parallelism',
-    parallelism_tips: 'Please enter Parallelism',
-    parallelism_number_tips: 'Parallelism number should be positive integer',
-    parallelism_complement_tips:
-      'If there are a large number of tasks requiring complement, you can use the custom parallelism to ' +
-      'set the complement task thread to a reasonable value to avoid too large impact on the server.',
-    task_manager_number: 'TaskManager Number',
-    task_manager_number_tips: 'Please enter TaskManager number',
-    http_url: 'Http Url',
-    http_url_tips: 'Please Enter Http Url',
-    http_url_validator: 'The request address must contain HTTP or HTTPS',
-    http_method: 'Http Method',
-    http_parameters: 'Http Parameters',
-    http_check_condition: 'Http Check Condition',
-    http_condition: 'Http Condition',
-    http_condition_tips: 'Please Enter Http Condition',
-    timeout_settings: 'Timeout Settings',
-    connect_timeout: 'Connect Timeout',
-    ms: 'ms',
-    socket_timeout: 'Socket Timeout',
-    status_code_default: 'Default response code 200',
-    status_code_custom: 'Custom response code',
-    body_contains: 'Content includes',
-    body_not_contains: 'Content does not contain',
-    http_parameters_position: 'Http Parameters Position',
-    target_task_name: 'Target Task Name',
-    target_task_name_tips: 'Please enter the Pigeon task name(required)',
-    datasource_type: 'Datasource types',
-    datasource_instances: 'Datasource instances',
-    sql_type: 'SQL Type',
-    sql_type_query: 'Query',
-    sql_type_non_query: 'Non Query',
-    sql_statement: 'SQL Statement',
-    pre_sql_statement: 'Pre SQL Statement',
-    post_sql_statement: 'Post SQL Statement',
-    sql_input_placeholder: 'Please enter non-query sql.',
-    sql_empty_tips: 'The sql can not be empty.',
-    procedure_method: 'SQL Statement',
-    procedure_method_tips: 'Please enter the procedure script',
-    procedure_method_snippet:
-      '--Please enter the procedure script \n\n--call procedure:call <procedure-name>[(<arg1>,<arg2>, ...)]\n\n--call function:?= call <procedure-name>[(<arg1>,<arg2>, ...)]',
-    start: 'Start',
-    edit: 'Edit',
-    copy: 'Copy',
-    delete: 'Delete',
-    custom_job: 'Custom Job',
-    custom_script: 'Custom Script',
-    sqoop_job_name: 'Job Name',
-    sqoop_job_name_tips: 'Please enter Job Name(required)',
-    direct: 'Direct',
-    hadoop_custom_params: 'Hadoop Params',
-    sqoop_advanced_parameters: 'Sqoop Advanced Parameters',
-    data_source: 'Data Source',
-    type: 'Type',
-    datasource: 'Datasource',
-    datasource_tips: 'Please select the datasource',
-    model_type: 'ModelType',
-    form: 'Form',
-    table: 'Table',
-    table_tips: 'Please enter Mysql Table(required)',
-    column_type: 'ColumnType',
-    all_columns: 'All Columns',
-    some_columns: 'Some Columns',
-    column: 'Column',
-    column_tips: 'Please enter Columns (Comma separated)',
-    database: 'Database',
-    database_tips: 'Please enter Hive Database(required)',
-    hive_table_tips: 'Please enter Hive Table(required)',
-    hive_partition_keys: 'Hive partition Keys',
-    hive_partition_keys_tips: 'Please enter Hive Partition Keys',
-    hive_partition_values: 'Hive partition Values',
-    hive_partition_values_tips: 'Please enter Hive Partition Values',
-    export_dir: 'Export Dir',
-    export_dir_tips: 'Please enter Export Dir(required)',
-    sql_statement_tips: 'SQL Statement(required)',
-    map_column_hive: 'Map Column Hive',
-    map_column_java: 'Map Column Java',
-    data_target: 'Data Target',
-    create_hive_table: 'CreateHiveTable',
-    drop_delimiter: 'DropDelimiter',
-    over_write_src: 'OverWriteSrc',
-    hive_target_dir: 'Hive Target Dir',
-    hive_target_dir_tips: 'Please enter hive target dir',
-    replace_delimiter: 'ReplaceDelimiter',
-    replace_delimiter_tips: 'Please enter Replace Delimiter',
-    target_dir: 'Target Dir',
-    target_dir_tips: 'Please enter Target Dir(required)',
-    delete_target_dir: 'DeleteTargetDir',
-    compression_codec: 'CompressionCodec',
-    file_type: 'FileType',
-    fields_terminated: 'FieldsTerminated',
-    fields_terminated_tips: 'Please enter Fields Terminated',
-    lines_terminated: 'LinesTerminated',
-    lines_terminated_tips: 'Please enter Lines Terminated',
-    is_update: 'IsUpdate',
-    update_key: 'UpdateKey',
-    update_key_tips: 'Please enter Update Key',
-    update_mode: 'UpdateMode',
-    only_update: 'OnlyUpdate',
-    allow_insert: 'AllowInsert',
-    concurrency: 'Concurrency',
-    concurrency_tips: 'Please enter Concurrency',
-    sea_tunnel_master: 'Master',
-    sea_tunnel_master_url: 'Master URL',
-    sea_tunnel_queue: 'Queue',
-    sea_tunnel_master_url_tips:
-      'Please enter the master url, e.g., 127.0.0.1:7077',
-    add_pre_task_check_condition: 'Add pre task check condition',
-    switch_condition: 'Condition',
-    switch_branch_flow: 'Branch Flow',
-    and: 'and',
-    or: 'or',
-    datax_custom_template: 'Custom Template',
-    datax_json_template: 'JSON',
-    datax_target_datasource_type: 'Target Datasource Types',
-    datax_target_database: 'Target Database',
-    datax_target_table: 'Target Table',
-    datax_target_table_tips: 'Please enter the name of the target table',
-    datax_target_database_pre_sql: 'Pre SQL Statement',
-    datax_target_database_post_sql: 'Post SQL Statement',
-    datax_non_query_sql_tips: 'Please enter the non-query sql statement',
-    datax_job_speed_byte: 'Speed(Byte count)',
-    datax_job_speed_byte_info: '(0 means unlimited)',
-    datax_job_speed_record: 'Speed(Record count)',
-    datax_job_speed_record_info: '(0 means unlimited)',
-    datax_job_runtime_memory: 'Runtime Memory Limits',
-    datax_job_runtime_memory_xms: 'Low Limit Value',
-    datax_job_runtime_memory_xmx: 'High Limit Value',
-    datax_job_runtime_memory_unit: 'G',
-    current_hour: 'CurrentHour',
-    last_1_hour: 'Last1Hour',
-    last_2_hour: 'Last2Hours',
-    last_3_hour: 'Last3Hours',
-    last_24_hour: 'Last24Hours',
-    today: 'today',
-    last_1_days: 'Last1Days',
-    last_2_days: 'Last2Days',
-    last_3_days: 'Last3Days',
-    last_7_days: 'Last7Days',
-    this_week: 'ThisWeek',
-    last_week: 'LastWeek',
-    last_monday: 'LastMonday',
-    last_tuesday: 'LastTuesday',
-    last_wednesday: 'LastWednesday',
-    last_thursday: 'LastThursday',
-    last_friday: 'LastFriday',
-    last_saturday: 'LastSaturday',
-    last_sunday: 'LastSunday',
-    this_month: 'ThisMonth',
-    this_month_begin: 'ThisMonthBegin',
-    last_month: 'LastMonth',
-    last_month_begin: 'LastMonthBegin',
-    last_month_end: 'LastMonthEnd',
-    month: 'month',
-    week: 'week',
-    day: 'day',
-    hour: 'hour',
-    add_dependency: 'Add dependency',
-    waiting_dependent_start: 'Waiting Dependent start',
-    check_interval: 'Check interval',
-    waiting_dependent_complete: 'Waiting Dependent complete',
-    project_name: 'Project Name',
-    project_name_tips: 'Please select a project(required)',
-    process_name: 'Workflow Name',
-    process_name_tips: 'Please select a workflow(required)',
-    cycle_time: 'Cycle Time',
-    cycle_time_tips: 'Please select a cycle time(required)',
-    date_tips: 'Please select a date(required)',
-    rule_name: 'Rule Name',
-    null_check: 'NullCheck',
-    custom_sql: 'CustomSql',
-    multi_table_accuracy: 'MulTableAccuracy',
-    multi_table_value_comparison: 'MulTableCompare',
-    field_length_check: 'FieldLengthCheck',
-    uniqueness_check: 'UniquenessCheck',
-    regexp_check: 'RegexpCheck',
-    timeliness_check: 'TimelinessCheck',
-    enumeration_check: 'EnumerationCheck',
-    table_count_check: 'TableCountCheck',
-    src_connector_type: 'SrcConnType',
-    src_datasource_id: 'SrcSource',
-    src_table: 'SrcTable',
-    src_filter: 'SrcFilter',
-    src_field: 'SrcField',
-    statistics_name: 'ActualValName',
-    check_type: 'CheckType',
-    operator: 'Operator',
-    threshold: 'Threshold',
-    failure_strategy: 'FailureStrategy',
-    target_connector_type: 'TargetConnType',
-    target_datasource_id: 'TargetSourceId',
-    target_table: 'TargetTable',
-    target_filter: 'TargetFilter',
-    mapping_columns: 'OnClause',
-    statistics_execute_sql: 'ActualValExecSql',
-    comparison_name: 'ExceptedValName',
-    comparison_execute_sql: 'ExceptedValExecSql',
-    comparison_type: 'ExceptedValType',
-    writer_connector_type: 'WriterConnType',
-    writer_datasource_id: 'WriterSourceId',
-    target_field: 'TargetField',
-    field_length: 'FieldLength',
-    logic_operator: 'LogicOperator',
-    regexp_pattern: 'RegexpPattern',
-    deadline: 'Deadline',
-    datetime_format: 'DatetimeFormat',
-    enum_list: 'EnumList',
-    begin_time: 'BeginTime',
-    fix_value: 'FixValue',
-    required: 'required',
-    emr_flow_define_json: 'jobFlowDefineJson',
-    emr_flow_define_json_tips: 'Please enter the definition of the job flow.',
-    segment_separator: 'Segment Execution Separator',
-    segment_separator_tips: 'Please enter the segment execution separator',
-    zeppelin_note_id: 'zeppelinNoteId',
-    zeppelin_note_id_tips: 'Please enter the note id of your zeppelin note',
-    zeppelin_paragraph_id: 'zeppelinParagraphId',
-    zeppelin_paragraph_id_tips:
-      'Please enter the paragraph id of your zeppelin paragraph',
-    send_email: 'Send Email',
-    log_display: 'Log display',
-    rows_of_result: 'rows of result',
-    title: 'Title',
-    title_tips: 'Please enter the title of email',
-    alarm_group: 'Alarm group',
-    alarm_group_tips: 'Alarm group required',
-    integer_tips: 'Please enter a positive integer',
-    sql_parameter: 'SQL Parameter',
-    format_tips: 'Please enter format',
-    udf_function: 'UDF Function',
-    unlimited: 'unlimited',
-    please_select_source_connector_type: 'Please select source connector type',
-    please_select_source_datasource_id: 'Please select source datasource id',
-    please_enter_source_table_name: 'Please select source table name',
-    please_enter_filter_expression: 'Please enter filter expression',
-    please_enter_column_only_single_column_is_supported: 'Please select column, only single column is supported',
-    please_enter_threshold_number_is_needed: 'Please enter threshold number is needed',
-    please_enter_comparison_title: 'please select comparison title'
-  }
-}
-
-const security = {
-  tenant: {
-    tenant_manage: 'Tenant Manage',
-    create_tenant: 'Create Tenant',
-    search_tips: 'Please enter keywords',
-    tenant_code: 'Operating System Tenant',
-    description: 'Description',
-    queue_name: 'QueueName',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    actions: 'Operation',
-    edit_tenant: 'Edit Tenant',
-    tenant_code_tips: 'Please enter the operating system tenant',
-    queue_name_tips: 'Please select queue',
-    description_tips: 'Please enter a description',
-    delete_confirm: 'Delete?',
-    edit: 'Edit',
-    delete: 'Delete'
-  },
-  alarm_group: {
-    create_alarm_group: 'Create Alarm Group',
-    edit_alarm_group: 'Edit Alarm Group',
-    search_tips: 'Please enter keywords',
-    alert_group_name_tips: 'Please enter your alert group name',
-    alarm_plugin_instance: 'Alarm Plugin Instance',
-    alarm_plugin_instance_tips: 'Please select alert plugin instance',
-    alarm_group_description_tips: 'Please enter your alarm group description',
-    alert_group_name: 'Alert Group Name',
-    alarm_group_description: 'Alarm Group Description',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    delete_confirm: 'Delete?',
-    edit: 'Edit',
-    delete: 'Delete'
-  },
-  worker_group: {
-    create_worker_group: 'Create Worker Group',
-    edit_worker_group: 'Edit Worker Group',
-    search_tips: 'Please enter keywords',
-    operation: 'Operation',
-    delete_confirm: 'Delete?',
-    edit: 'Edit',
-    delete: 'Delete',
-    group_name: 'Group Name',
-    group_name_tips: 'Please enter your group name',
-    worker_addresses: 'Worker Addresses',
-    worker_addresses_tips: 'Please select worker addresses',
-    create_time: 'Create Time',
-    update_time: 'Update Time'
-  },
-  yarn_queue: {
-    create_queue: 'Create Queue',
-    edit_queue: 'Edit Queue',
-    search_tips: 'Please enter keywords',
-    queue_name: 'Queue Name',
-    queue_value: 'Queue Value',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    queue_name_tips: 'Please enter your queue name',
-    queue_value_tips: 'Please enter your queue value'
-  },
-  environment: {
-    create_environment: 'Create Environment',
-    edit_environment: 'Edit Environment',
-    search_tips: 'Please enter keywords',
-    edit: 'Edit',
-    delete: 'Delete',
-    environment_name: 'Environment Name',
-    environment_config: 'Environment Config',
-    environment_desc: 'Environment Desc',
-    worker_groups: 'Worker Groups',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    delete_confirm: 'Delete?',
-    environment_name_tips: 'Please enter your environment name',
-    environment_config_tips: 'Please enter your environment config',
-    environment_description_tips: 'Please enter your environment description',
-    worker_group_tips: 'Please select worker group'
-  },
-  token: {
-    create_token: 'Create Token',
-    edit_token: 'Edit Token',
-    search_tips: 'Please enter keywords',
-    user: 'User',
-    user_tips: 'Please select user',
-    token: 'Token',
-    token_tips: 'Please click to get token',
-    expiration_time: 'Expiration Time',
-    expiration_time_tips: 'Please select expiration time',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    delete: 'Delete',
-    delete_confirm: 'Delete?'
-  },
-  user: {
-    user_manage: 'User Manage',
-    create_user: 'Create User',
-    edit_user: 'Edit User',
-    delete_user: 'Delete User',
-    delete_confirm: 'Are you sure to delete?',
-    delete_confirm_tip:
-      'Deleting user is a dangerous operation,please be careful',
-    project: 'Project',
-    resource: 'Resource',
-    file_resource: 'File Resource',
-    udf_resource: 'UDF Resource',
-    datasource: 'Datasource',
-    udf: 'UDF Function',
-    namespace: 'Namespace',
-    authorize_project: 'Project Authorize',
-    authorize_resource: 'Resource Authorize',
-    authorize_namespace: 'Namespace Authorize',
-    authorize_datasource: 'Datasource Authorize',
-    authorize_udf: 'UDF Function Authorize',
-    username: 'Username',
-    username_exists: 'The username already exists',
-    username_tips: 'Please enter username',
-    user_password: 'Password',
-    user_password_tips:
-      'Please enter a password containing letters and numbers with a length between 6 and 20',
-    user_type: 'User Type',
-    ordinary_user: 'Ordinary users',
-    administrator: 'Administrator',
-    tenant_code: 'Tenant',
-    tenant_id_tips: 'Please select tenant',
-    queue: 'Queue',
-    queue_tips: 'Please select a queue',
-    email: 'Email',
-    email_empty_tips: 'Please enter email',
-    emial_correct_tips: 'Please enter the correct email format',
-    phone: 'Phone',
-    phone_empty_tips: 'Please enter phone number',
-    phone_correct_tips: 'Please enter the correct mobile phone format',
-    state: 'State',
-    state_enabled: 'Enabled',
-    state_disabled: 'Disabled',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    delete: 'Delete',
-    authorize: 'Authorize',
-    save_error_msg: 'Failed to save, please retry',
-    delete_error_msg: 'Failed to delete, please retry',
-    auth_error_msg: 'Failed to authorize, please retry',
-    auth_success_msg: 'Authorize succeeded',
-    enable: 'Enable',
-    disable: 'Disable'
-  },
-  alarm_instance: {
-    search_input_tips: 'Please input the keywords',
-    alarm_instance_manage: 'Alarm instance manage',
-    alarm_instance_name: 'Alarm instance name',
-    alarm_instance_name_tips: 'Please enter alarm plugin instance name',
-    alarm_plugin_name: 'Alarm plugin name',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit_alarm_instance: 'Edit Alarm Instance',
-    delete: 'Delete',
-    edit: 'Edit',
-    delete_confirm: 'Delete?',
-    confirm: 'Confirm',
-    cancel: 'Cancel',
-    submit: 'Submit',
-    create_alarm_instance: 'Create Alarm Instance',
-    select_plugin: 'Select plugin',
-    select_plugin_tips: 'Select Alarm plugin',
-    instance_parameter_exception: 'Instance parameter exception',
-    WebHook: 'WebHook',
-    webHook: 'WebHook',
-    WarningType: 'Warning Type',
-    IsEnableProxy: 'Enable Proxy',
-    Proxy: 'Proxy',
-    Port: 'Port',
-    User: 'User',
-    corpId: 'CorpId',
-    secret: 'Secret',
-    Secret: 'Secret',
-    users: 'Users',
-    userSendMsg: 'UserSendMsg',
-    'agentId/chatId': 'AgentId or ChatId',
-    showType: 'Show Type',
-    receivers: 'Receivers',
-    receiverCcs: 'ReceiverCcs',
-    serverHost: 'SMTP Host',
-    serverPort: 'SMTP Port',
-    sender: 'Sender',
-    enableSmtpAuth: 'SMTP Auth',
-    Password: 'Password',
-    starttlsEnable: 'SMTP STARTTLS Enable',
-    sslEnable: 'SMTP SSL Enable',
-    smtpSslTrust: 'SMTP SSL Trust',
-    url: 'URL',
-    requestType: 'Request Type',
-    headerParams: 'Headers',
-    bodyParams: 'Body',
-    contentField: 'Content Field',
-    Keyword: 'Keyword',
-    userParams: 'User Params',
-    path: 'Script Path',
-    type: 'Type',
-    sendType: 'Send Type',
-    username: 'Username',
-    botToken: 'Bot Token',
-    chatId: 'Channel Chat Id',
-    parseMode: 'Parse Mode',
-    IntegrationKey: 'Integration Key',
-    BotAccessToken: 'Bot Access Token',
-    RoomId: 'Room Id',
-    ToPersonId: 'To Person Id',
-    ToPersonEmail: 'To Person Email',
-    AtSomeoneInRoom: 'At Someone In Room',
-    Destination: 'Destination',
-    AtMobiles: 'At User Mobiles',
-    AtUserIds: 'At User Ids',
-    MsgType: 'Msg Type',
-    // eslint-disable-next-line quotes
-    IsAtAll: "{'@'}All"
-  },
-  k8s_namespace: {
-    create_namespace: 'Create Namespace',
-    edit_namespace: 'Edit Namespace',
-    search_tips: 'Please enter keywords',
-    k8s_namespace: 'K8S Namespace',
-    k8s_namespace_tips: 'Please enter k8s namespace',
-    k8s_cluster: 'K8S Cluster',
-    k8s_cluster_tips: 'Please enter k8s cluster',
-    owner: 'Owner',
-    owner_tips: 'Please enter owner',
-    tag: 'Tag',
-    tag_tips: 'Please enter tag',
-    limit_cpu: 'Limit CPU',
-    limit_cpu_tips: 'Please enter limit CPU',
-    limit_memory: 'Limit Memory',
-    limit_memory_tips: 'Please enter limit memory',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    operation: 'Operation',
-    edit: 'Edit',
-    delete: 'Delete',
-    delete_confirm: 'Delete?'
-  }
-}
-
-const datasource = {
-  datasource: 'DataSource',
-  create_datasource: 'Create DataSource',
-  search_input_tips: 'Please input the keywords',
-  datasource_name: 'Datasource Name',
-  datasource_name_tips: 'Please enter datasource name',
-  datasource_user_name: 'Owner',
-  datasource_type: 'Datasource Type',
-  datasource_parameter: 'Datasource Parameter',
-  description: 'Description',
-  description_tips: 'Please enter description',
-  create_time: 'Create Time',
-  update_time: 'Update Time',
-  operation: 'Operation',
-  click_to_view: 'Click to view',
-  delete: 'Delete',
-  confirm: 'Confirm',
-  delete_confirm: 'Delete?',
-  cancel: 'Cancel',
-  create: 'Create',
-  edit: 'Edit',
-  success: 'Success',
-  test_connect: 'Test Connect',
-  ip: 'IP',
-  ip_tips: 'Please enter IP',
-  port: 'Port',
-  port_tips: 'Please enter port',
-  database_name: 'Database Name',
-  database_name_tips: 'Please enter database name',
-  oracle_connect_type: 'ServiceName or SID',
-  oracle_connect_type_tips: 'Please select serviceName or SID',
-  oracle_service_name: 'ServiceName',
-  oracle_sid: 'SID',
-  jdbc_connect_parameters: 'jdbc connect parameters',
-  principal_tips: 'Please enter Principal',
-  krb5_conf_tips:
-    'Please enter the kerberos authentication parameter java.security.krb5.conf',
-  keytab_username_tips:
-    'Please enter the kerberos authentication parameter login.user.keytab.username',
-  keytab_path_tips:
-    'Please enter the kerberos authentication parameter login.user.keytab.path',
-  format_tips: 'Please enter format',
-  connection_parameter: 'connection parameter',
-  user_name: 'User Name',
-  user_name_tips: 'Please enter your username',
-  user_password: 'Password',
-  user_password_tips: 'Please enter your password',
-  jdbc_format_tips: 'jdbc connection parameters is not a correct JSON format'
-}
-
-const data_quality = {
-  task_result: {
-    task_name: 'Task Name',
-    workflow_instance: 'Workflow Instance',
-    rule_type: 'Rule Type',
-    rule_name: 'Rule Name',
-    state: 'State',
-    actual_value: 'Actual Value',
-    excepted_value: 'Excepted Value',
-    check_type: 'Check Type',
-    operator: 'Operator',
-    threshold: 'Threshold',
-    failure_strategy: 'Failure Strategy',
-    excepted_value_type: 'Excepted Value Type',
-    error_output_path: 'Error Output Path',
-    username: 'Username',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    undone: 'Undone',
-    success: 'Success',
-    failure: 'Failure',
-    single_table: 'Single Table',
-    single_table_custom_sql: 'Single Table Custom Sql',
-    multi_table_accuracy: 'Multi Table Accuracy',
-    multi_table_comparison: 'Multi Table Comparison',
-    expected_and_actual_or_expected: '(Expected - Actual) / Expected x 100%',
-    expected_and_actual: 'Expected - Actual',
-    actual_and_expected: 'Actual - Expected',
-    actual_or_expected: 'Actual / Expected x 100%'
-  },
-  rule: {
-    actions: 'Actions',
-    name: 'Rule Name',
-    type: 'Rule Type',
-    username: 'User Name',
-    create_time: 'Create Time',
-    update_time: 'Update Time',
-    input_item: 'Rule input item',
-    view_input_item: 'View input items',
-    input_item_title: 'Input item title',
-    input_item_placeholder: 'Input item placeholder',
-    input_item_type: 'Input item type',
-    src_connector_type: 'SrcConnType',
-    src_datasource_id: 'SrcSource',
-    src_table: 'SrcTable',
-    src_filter: 'SrcFilter',
-    src_field: 'SrcField',
-    statistics_name: 'ActualValName',
-    check_type: 'CheckType',
-    operator: 'Operator',
-    threshold: 'Threshold',
-    failure_strategy: 'FailureStrategy',
-    target_connector_type: 'TargetConnType',
-    target_datasource_id: 'TargetSourceId',
-    target_table: 'TargetTable',
-    target_filter: 'TargetFilter',
-    mapping_columns: 'OnClause',
-    statistics_execute_sql: 'ActualValExecSql',
-    comparison_name: 'ExceptedValName',
-    comparison_execute_sql: 'ExceptedValExecSql',
-    comparison_type: 'ExceptedValType',
-    writer_connector_type: 'WriterConnType',
-    writer_datasource_id: 'WriterSourceId',
-    target_field: 'TargetField',
-    field_length: 'FieldLength',
-    logic_operator: 'LogicOperator',
-    regexp_pattern: 'RegexpPattern',
-    deadline: 'Deadline',
-    datetime_format: 'DatetimeFormat',
-    enum_list: 'EnumList',
-    begin_time: 'BeginTime',
-    fix_value: 'FixValue',
-    null_check: 'NullCheck',
-    custom_sql: 'Custom Sql',
-    single_table: 'Single Table',
-    single_table_custom_sql: 'Single Table Custom Sql',
-    multi_table_accuracy: 'Multi Table Accuracy',
-    multi_table_value_comparison: 'Multi Table Compare',
-    field_length_check: 'FieldLengthCheck',
-    uniqueness_check: 'UniquenessCheck',
-    regexp_check: 'RegexpCheck',
-    timeliness_check: 'TimelinessCheck',
-    enumeration_check: 'EnumerationCheck',
-    table_count_check: 'TableCountCheck',
-    all: 'All',
-    FixValue: 'FixValue',
-    DailyAvg: 'DailyAvg',
-    WeeklyAvg: 'WeeklyAvg',
-    MonthlyAvg: 'MonthlyAvg',
-    Last7DayAvg: 'Last7DayAvg',
-    Last30DayAvg: 'Last30DayAvg',
-    SrcTableTotalRows: 'SrcTableTotalRows',
-    TargetTableTotalRows: 'TargetTableTotalRows'
-  }
-}
-
-const crontab = {
-  second: 'second',
-  minute: 'minute',
-  hour: 'hour',
-  day: 'day',
-  month: 'month',
-  year: 'year',
-  monday: 'Monday',
-  tuesday: 'Tuesday',
-  wednesday: 'Wednesday',
-  thursday: 'Thursday',
-  friday: 'Friday',
-  saturday: 'Saturday',
-  sunday: 'Sunday',
-  every_second: 'Every second',
-  every: 'Every',
-  second_carried_out: 'second carried out',
-  second_start: 'Start',
-  specific_second: 'Specific second(multiple)',
-  specific_second_tip: 'Please enter a specific second',
-  cycle_from: 'Cycle from',
-  to: 'to',
-  every_minute: 'Every minute',
-  minute_carried_out: 'minute carried out',
-  minute_start: 'Start',
-  specific_minute: 'Specific minute(multiple)',
-  specific_minute_tip: 'Please enter a specific minute',
-  every_hour: 'Every hour',
-  hour_carried_out: 'hour carried out',
-  hour_start: 'Start',
-  specific_hour: 'Specific hour(multiple)',
-  specific_hour_tip: 'Please enter a specific hour',
-  every_day: 'Every day',
-  week_carried_out: 'week carried out',
-  start: 'Start',
-  day_carried_out: 'day carried out',
-  day_start: 'Start',
-  specific_week: 'Specific day of the week(multiple)',
-  specific_week_tip: 'Please enter a specific week',
-  specific_day: 'Specific days(multiple)',
-  specific_day_tip: 'Please enter a days',
-  last_day_of_month: 'On the last day of the month',
-  last_work_day_of_month: 'On the last working day of the month',
-  last_of_month: 'At the last of this month',
-  before_end_of_month: 'Before the end of this month',
-  recent_business_day_to_month:
-    'The most recent business day (Monday to Friday) to this month',
-  in_this_months: 'In this months',
-  every_month: 'Every month',
-  month_carried_out: 'month carried out',
-  month_start: 'Start',
-  specific_month: 'Specific months(multiple)',
-  specific_month_tip: 'Please enter a months',
-  every_year: 'Every year',
-  year_carried_out: 'year carried out',
-  year_start: 'Start',
-  specific_year: 'Specific year(multiple)',
-  specific_year_tip: 'Please enter a year',
-  one_hour: 'hour',
-  one_day: 'day'
-}
-
-export default {
-  login,
-  modal,
-  theme,
-  userDropdown,
-  menu,
-  home,
-  password,
-  profile,
-  monitor,
-  resource,
-  project,
-  security,
-  datasource,
-  data_quality,
-  crontab
-}
diff --git a/dolphinscheduler-ui/src/locales/modules/zh_CN.ts b/dolphinscheduler-ui/src/locales/modules/zh_CN.ts
deleted file mode 100644
index 150a5e9acb..0000000000
--- a/dolphinscheduler-ui/src/locales/modules/zh_CN.ts
+++ /dev/null
@@ -1,1419 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-const login = {
-  test: '测试',
-  userName: '用户名',
-  userName_tips: '请输入用户名',
-  userPassword: '密码',
-  userPassword_tips: '请输入密码',
-  login: '登录'
-}
-
-const modal = {
-  cancel: '取消',
-  confirm: '确定'
-}
-
-const theme = {
-  light: '浅色',
-  dark: '深色'
-}
-
-const userDropdown = {
-  profile: '用户信息',
-  password: '密码管理',
-  logout: '退出登录'
-}
-
-const menu = {
-  home: '首页',
-  project: '项目管理',
-  resources: '资源中心',
-  datasource: '数据源中心',
-  monitor: '监控中心',
-  security: '安全中心',
-  project_overview: '项目概览',
-  workflow_relation: '工作流关系',
-  workflow: '工作流',
-  workflow_definition: '工作流定义',
-  workflow_instance: '工作流实例',
-  task: '任务',
-  task_instance: '任务实例',
-  task_definition: '任务定义',
-  file_manage: '文件管理',
-  udf_manage: 'UDF管理',
-  resource_manage: '资源管理',
-  function_manage: '函数管理',
-  service_manage: '服务管理',
-  master: 'Master',
-  worker: 'Worker',
-  db: 'DB',
-  statistical_manage: '统计管理',
-  statistics: 'Statistics',
-  audit_log: '审计日志',
-  tenant_manage: '租户管理',
-  user_manage: '用户管理',
-  alarm_group_manage: '告警组管理',
-  alarm_instance_manage: '告警实例管理',
-  worker_group_manage: 'Worker分组管理',
-  yarn_queue_manage: 'Yarn队列管理',
-  environment_manage: '环境管理',
-  k8s_namespace_manage: 'K8S命名空间管理',
-  token_manage: '令牌管理',
-  task_group_manage: '任务组管理',
-  task_group_option: '任务组配置',
-  task_group_queue: '任务组队列',
-  data_quality: '数据质量',
-  task_result: '任务结果',
-  rule: '规则管理'
-}
-
-const home = {
-  task_state_statistics: '任务状态统计',
-  process_state_statistics: '流程状态统计',
-  process_definition_statistics: '流程定义统计',
-  number: '数量',
-  state: '状态',
-  submitted_success: '提交成功',
-  running_execution: '正在运行',
-  ready_pause: '准备暂停',
-  pause: '暂停',
-  ready_stop: '准备停止',
-  stop: '停止',
-  failure: '失败',
-  success: '成功',
-  need_fault_tolerance: '需要容错',
-  kill: 'KILL',
-  waiting_thread: '等待线程',
-  waiting_depend: '等待依赖完成',
-  delay_execution: '延时执行',
-  forced_success: '强制成功',
-  serial_wait: '串行等待',
-  dispatch: '派发',
-  ready_block: '准备阻断',
-  block: '阻断'
-}
-
-const password = {
-  edit_password: '修改密码',
-  password: '密码',
-  confirm_password: '确认密码',
-  password_tips: '请输入密码',
-  confirm_password_tips: '请输入确认密码',
-  two_password_entries_are_inconsistent: '两次密码输入不一致',
-  submit: '提交'
-}
-
-const profile = {
-  profile: '用户信息',
-  edit: '编辑',
-  username: '用户名',
-  email: '邮箱',
-  phone: '手机',
-  state: '状态',
-  permission: '权限',
-  create_time: '创建时间',
-  update_time: '更新时间',
-  administrator: '管理员',
-  ordinary_user: '普通用户',
-  edit_profile: '编辑用户',
-  username_tips: '请输入用户名',
-  email_tips: '请输入邮箱',
-  email_correct_tips: '请输入正确格式的邮箱',
-  phone_tips: '请输入手机号',
-  state_tips: '请选择状态',
-  enable: '启用',
-  disable: '禁用',
-  timezone_success: '时区更新成功',
-  please_select_timezone: '请选择时区'
-}
-
-const monitor = {
-  master: {
-    cpu_usage: '处理器使用量',
-    memory_usage: '内存使用量',
-    load_average: '平均负载量',
-    create_time: '创建时间',
-    last_heartbeat_time: '最后心跳时间',
-    directory_detail: '目录详情',
-    host: '主机',
-    directory: '注册目录',
-    master_no_data_result_title: 'Master节点不存在',
-    master_no_data_result_desc:
-      '目前没有任何Master节点,请先创建Master节点,再访问该页面'
-  },
-  worker: {
-    cpu_usage: '处理器使用量',
-    memory_usage: '内存使用量',
-    load_average: '平均负载量',
-    create_time: '创建时间',
-    last_heartbeat_time: '最后心跳时间',
-    directory_detail: '目录详情',
-    host: '主机',
-    directory: '注册目录',
-    worker_no_data_result_title: 'Worker节点不存在',
-    worker_no_data_result_desc:
-      '目前没有任何Worker节点,请先创建Worker节点,再访问该页面'
-  },
-  db: {
-    health_state: '健康状态',
-    max_connections: '最大连接数',
-    threads_connections: '当前连接数',
-    threads_running_connections: '数据库当前活跃连接数'
-  },
-  statistics: {
-    command_number_of_waiting_for_running: '待执行的命令数',
-    failure_command_number: '执行失败的命令数'
-  },
-  audit_log: {
-    user_name: '用户名称',
-    resource_type: '资源类型',
-    project_name: '项目名称',
-    operation_type: '操作类型',
-    create_time: '创建时间',
-    start_time: '开始时间',
-    end_time: '结束时间',
-    user_audit: '用户管理审计',
-    project_audit: '项目管理审计',
-    create: '创建',
-    update: '更新',
-    delete: '删除',
-    read: '读取'
-  }
-}
-
-const resource = {
-  file: {
-    file_manage: '文件管理',
-    create_folder: '创建文件夹',
-    create_file: '创建文件',
-    upload_files: '上传文件',
-    enter_keyword_tips: '请输入关键词',
-    name: '名称',
-    user_name: '所属用户',
-    whether_directory: '是否文件夹',
-    file_name: '文件名称',
-    description: '描述',
-    size: '大小',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    rename: '重命名',
-    download: '下载',
-    delete: '删除',
-    yes: '是',
-    no: '否',
-    folder_name: '文件夹名称',
-    enter_name_tips: '请输入名称',
-    enter_description_tips: '请输入描述',
-    enter_content_tips: '请输入资源内容',
-    enter_suffix_tips: '请输入文件后缀',
-    file_format: '文件格式',
-    file_content: '文件内容',
-    delete_confirm: '确定删除吗?',
-    confirm: '确定',
-    cancel: '取消',
-    success: '成功',
-    file_details: '文件详情',
-    return: '返回',
-    save: '保存'
-  },
-  udf: {
-    udf_resources: 'UDF资源',
-    create_folder: '创建文件夹',
-    upload_udf_resources: '上传UDF资源',
-    udf_source_name: 'UDF资源名称',
-    user_name: '所属用户',
-    whether_directory: '是否文件夹',
-    file_name: '文件名称',
-    file_size: '文件大小',
-    description: '描述',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    yes: '是',
-    no: '否',
-    edit: '编辑',
-    download: '下载',
-    delete: '删除',
-    success: '成功',
-    folder_name: '文件夹名称',
-    upload: '上传',
-    upload_files: '上传文件',
-    file_upload: '文件上传',
-    delete_confirm: '确定删除吗?',
-    enter_keyword_tips: '请输入关键词',
-    enter_name_tips: '请输入名称',
-    enter_description_tips: '请输入描述'
-  },
-  function: {
-    udf_function: 'UDF函数',
-    create_udf_function: '创建UDF函数',
-    edit_udf_function: '编辑UDF函数',
-    udf_function_name: 'UDF函数名称',
-    user_name: '所属用户',
-    class_name: '类名',
-    type: '类型',
-    description: '描述',
-    jar_package: 'jar包',
-    update_time: '更新时间',
-    operation: '操作',
-    rename: '重命名',
-    edit: '编辑',
-    delete: '删除',
-    success: '成功',
-    package_name: '包名类名',
-    udf_resources: 'UDF资源',
-    instructions: '使用说明',
-    upload_resources: '上传资源',
-    udf_resources_directory: 'UDF资源目录',
-    delete_confirm: '确定删除吗?',
-    enter_keyword_tips: '请输入关键词',
-    enter_udf_unction_name_tips: '请输入UDF函数名称',
-    enter_package_name_tips: '请输入包名类名',
-    enter_select_udf_resources_tips: '请选择UDF资源',
-    enter_select_udf_resources_directory_tips: '请选择UDF资源目录',
-    enter_instructions_tips: '请输入使用说明',
-    enter_name_tips: '请输入名称',
-    enter_description_tips: '请输入描述',
-    upload: '上传',
-    upload_udf_resources: '上传UDF资源'
-  },
-  task_group_option: {
-    manage: '任务组管理',
-    option: '任务组配置',
-    create: '创建任务组',
-    edit: '编辑任务组',
-    delete: '删除任务组',
-    view_queue: '查看任务组队列',
-    switch_status: '切换任务组状态',
-    code: '任务组编号',
-    name: '任务组名称',
-    project_name: '项目名称',
-    resource_pool_size: '资源容量',
-    resource_used_pool_size: '已用资源',
-    desc: '描述信息',
-    status: '任务组状态',
-    enable_status: '启用',
-    disable_status: '不可用',
-    please_enter_name: '请输入任务组名称',
-    please_enter_desc: '请输入任务组描述',
-    please_enter_resource_pool_size: '请输入资源容量大小',
-    positive_integer_tips: '应为正整数',
-    please_select_project: '请选择项目',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    actions: '操作',
-    please_enter_keywords: '请输入搜索关键词'
-  },
-  task_group_queue: {
-    actions: '操作',
-    task_name: '任务名称',
-    task_group_name: '任务组名称',
-    project_name: '项目名称',
-    task_instance_name: '任务实例',
-    workflow_instance_name: '工作流实例',
-    queue: '任务组队列',
-    priority: '组内优先级',
-    priority_be_a_number: '优先级必须是大于等于0的数值',
-    force_starting_status: '是否强制启动',
-    in_queue: '是否排队中',
-    task_status: '任务状态',
-    view_task_group_queue: '查看任务组队列',
-    the_status_of_waiting: '等待入队',
-    the_status_of_queuing: '排队中',
-    the_status_of_releasing: '已释放',
-    modify_priority: '修改优先级',
-    start_task: '强制启动',
-    priority_not_empty: '优先级不能为空',
-    priority_must_be_number: '优先级必须是数值',
-    please_select_task_name: '请选择节点名称',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    edit_priority: '修改优先级'
-  }
-}
-
-const project = {
-  list: {
-    create_project: '创建项目',
-    edit_project: '编辑项目',
-    project_list: '项目列表',
-    project_tips: '请输入项目名称',
-    description_tips: '请输入项目描述',
-    username_tips: '请输入所属用户',
-    project_name: '项目名称',
-    project_description: '项目描述',
-    owned_users: '所属用户',
-    workflow_define_count: '工作流定义数',
-    process_instance_running_count: '正在运行的流程数',
-    description: '描述',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    delete: '删除',
-    confirm: '确定',
-    cancel: '取消',
-    delete_confirm: '确定删除吗?'
-  },
-  workflow: {
-    workflow_relation: '工作流关系',
-    create_workflow: '创建工作流',
-    import_workflow: '导入工作流',
-    workflow_name: '工作流名称',
-    current_selection: '当前选择',
-    online: '已上线',
-    offline: '已下线',
-    refresh: '刷新',
-    show_hide_label: '显示 / 隐藏标签',
-    workflow_offline: '工作流下线',
-    schedule_offline: '调度下线',
-    schedule_start_time: '定时开始时间',
-    schedule_end_time: '定时结束时间',
-    crontab_expression: 'Crontab',
-    workflow_publish_status: '工作流上线状态',
-    schedule_publish_status: '定时状态',
-    workflow_definition: '工作流定义',
-    workflow_instance: '工作流实例',
-    status: '状态',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    description: '描述',
-    create_user: '创建用户',
-    modify_user: '修改用户',
-    operation: '操作',
-    edit: '编辑',
-    confirm: '确定',
-    cancel: '取消',
-    start: '运行',
-    timing: '定时',
-    timezone: '时区',
-    up_line: '上线',
-    down_line: '下线',
-    copy_workflow: '复制工作流',
-    cron_manage: '定时管理',
-    delete: '删除',
-    tree_view: '工作流树形图',
-    tree_limit: '限制大小',
-    export: '导出',
-    batch_copy: '批量复制',
-    version_info: '版本信息',
-    version: '版本',
-    file_upload: '文件上传',
-    upload_file: '上传文件',
-    upload: '上传',
-    file_name: '文件名称',
-    success: '成功',
-    set_parameters_before_starting: '启动前请先设置参数',
-    set_parameters_before_timing: '定时前请先设置参数',
-    start_and_stop_time: '起止时间',
-    next_five_execution_times: '接下来五次执行时间',
-    execute_time: '执行时间',
-    failure_strategy: '失败策略',
-    notification_strategy: '通知策略',
-    workflow_priority: '流程优先级',
-    worker_group: 'Worker分组',
-    environment_name: '环境名称',
-    alarm_group: '告警组',
-    complement_data: '补数',
-    startup_parameter: '启动参数',
-    whether_dry_run: '是否空跑',
-    continue: '继续',
-    end: '结束',
-    none_send: '都不发',
-    success_send: '成功发',
-    failure_send: '失败发',
-    all_send: '成功或失败都发',
-    whether_complement_data: '是否是补数',
-    schedule_date: '调度日期',
-    mode_of_execution: '执行方式',
-    serial_execution: '串行执行',
-    parallel_execution: '并行执行',
-    parallelism: '并行度',
-    custom_parallelism: '自定义并行度',
-    please_enter_parallelism: '请输入并行度',
-    please_choose: '请选择',
-    start_time: '开始时间',
-    end_time: '结束时间',
-    crontab: 'Crontab',
-    delete_confirm: '确定删除吗?',
-    enter_name_tips: '请输入名称',
-    switch_version: '切换到该版本',
-    confirm_switch_version: '确定切换到该版本吗?',
-    current_version: '当前版本',
-    run_type: '运行类型',
-    scheduling_time: '调度时间',
-    duration: '运行时长',
-    run_times: '运行次数',
-    fault_tolerant_sign: '容错标识',
-    dry_run_flag: '空跑标识',
-    executor: '执行用户',
-    host: '主机',
-    start_process: '启动工作流',
-    execute_from_the_current_node: '从当前节点开始执行',
-    recover_tolerance_fault_process: '恢复被容错的工作流',
-    resume_the_suspension_process: '恢复运行流程',
-    execute_from_the_failed_nodes: '从失败节点开始执行',
-    scheduling_execution: '调度执行',
-    rerun: '重跑',
-    stop: '停止',
-    pause: '暂停',
-    recovery_waiting_thread: '恢复等待线程',
-    recover_serial_wait: '串行恢复',
-    recovery_suspend: '恢复运行',
-    recovery_failed: '重跑失败任务',
-    gantt: '甘特图',
-    name: '名称',
-    all_status: '全部状态',
-    submit_success: '提交成功',
-    running: '正在运行',
-    ready_to_pause: '准备暂停',
-    ready_to_stop: '准备停止',
-    failed: '失败',
-    need_fault_tolerance: '需要容错',
-    kill: 'Kill',
-    waiting_for_thread: '等待线程',
-    waiting_for_dependence: '等待依赖',
-    waiting_for_dependency_to_complete: '等待依赖完成',
-    delay_execution: '延时执行',
-    forced_success: '强制成功',
-    serial_wait: '串行等待',
-    dispatch: '派发',
-    pending: '挂起',
-    executing: '正在执行',
-    startup_type: '启动类型',
-    complement_range: '补数范围',
-    parameters_variables: '参数变量',
-    global_parameters: '全局参数',
-    local_parameters: '局部参数',
-    type: '类型',
-    retry_count: '重试次数',
-    submit_time: '提交时间',
-    refresh_status_succeeded: '刷新状态成功',
-    view_log: '查看日志',
-    update_log_success: '更新日志成功',
-    no_more_log: '暂无更多日志',
-    no_log: '暂无日志',
-    loading_log: '正在努力请求日志中...',
-    close: '关闭',
-    download_log: '下载日志',
-    refresh_log: '刷新日志',
-    enter_full_screen: '进入全屏',
-    cancel_full_screen: '取消全屏',
-    task_state: '任务状态',
-    mode_of_dependent: '依赖模式',
-    open: '打开',
-    project_name_required: '项目名称必填',
-    related_items: '关联项目',
-    project_name: '项目名称',
-    project_tips: '请选择项目',
-    workflow_relation_no_data_result_title: '工作流关系不存在',
-    workflow_relation_no_data_result_desc:
-      '目前没有任何工作流,请先创建工作流,再访问该页面'
-  },
-  task: {
-    cancel_full_screen: '取消全屏',
-    enter_full_screen: '全屏',
-    current_task_settings: '当前任务设置',
-    online: '已上线',
-    offline: '已下线',
-    task_name: '任务名称',
-    task_type: '任务类型',
-    create_task: '创建任务',
-    workflow_instance: '工作流实例',
-    workflow_name: '工作流名称',
-    workflow_name_tips: '请选择工作流名称',
-    workflow_state: '工作流状态',
-    version: '版本',
-    current_version: '当前版本',
-    switch_version: '切换到该版本',
-    confirm_switch_version: '确定切换到该版本吗?',
-    description: '描述',
-    move: '移动',
-    upstream_tasks: '上游任务',
-    executor: '执行用户',
-    node_type: '节点类型',
-    state: '状态',
-    submit_time: '提交时间',
-    start_time: '开始时间',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    end_time: '结束时间',
-    duration: '运行时间',
-    retry_count: '重试次数',
-    dry_run_flag: '空跑标识',
-    host: '主机',
-    operation: '操作',
-    edit: '编辑',
-    delete: '删除',
-    delete_confirm: '确定删除吗?',
-    forced_success: '强制成功',
-    view_log: '查看日志',
-    download_log: '下载日志',
-    refresh: '刷新'
-  },
-  dag: {
-    create: '创建工作流',
-    search: '搜索',
-    download_png: '下载工作流图片',
-    fullscreen_open: '全屏',
-    fullscreen_close: '退出全屏',
-    save: '保存',
-    close: '关闭',
-    format: '格式化',
-    refresh_dag_status: '刷新DAG状态',
-    layout_type: '布局类型',
-    grid_layout: '网格布局',
-    dagre_layout: '层次布局',
-    rows: '行数',
-    cols: '列数',
-    copy_success: '复制成功',
-    workflow_name: '工作流名称',
-    description: '描述',
-    tenant: '租户',
-    timeout_alert: '超时告警',
-    process_execute_type: '执行策略',
-    parallel: '并行',
-    serial_wait: '串行等待',
-    serial_discard: '串行抛弃',
-    serial_priority: '串行优先',
-    recover_serial_wait: '串行恢复',
-    global_variables: '全局变量',
-    basic_info: '基本信息',
-    minute: '分',
-    key: '键',
-    value: '值',
-    success: '成功',
-    delete_cell: '删除选中的线或节点',
-    online_directly: '是否上线工作流定义',
-    update_directly: '是否更新工作流定义',
-    dag_name_empty: 'DAG图名称不能为空',
-    positive_integer: '请输入大于 0 的正整数',
-    prop_empty: '自定义参数prop不能为空',
-    prop_repeat: 'prop中有重复',
-    node_not_created: '未创建节点保存失败',
-    copy_name: '复制名称',
-    view_variables: '查看变量',
-    startup_parameter: '启动参数',
-    online: '已上线'
-  },
-  node: {
-    return_back: '返回上一节点',
-    current_node_settings: '当前节点设置',
-    instructions: '使用说明',
-    view_history: '查看历史',
-    view_log: '查看日志',
-    enter_this_child_node: '进入该子节点',
-    name: '节点名称',
-    task_name: '任务名称',
-    task_name_tips: '任务名称(必填)',
-    name_tips: '请输入名称(必填)',
-    task_type: '任务类型',
-    task_type_tips: '请选择任务类型(必选)',
-    workflow_name: '工作流名称',
-    workflow_name_tips: '请选择工作流(必选)',
-    child_node: '子节点',
-    child_node_tips: '请选择子节点(必选)',
-    run_flag: '运行标志',
-    normal: '正常',
-    prohibition_execution: '禁止执行',
-    description: '描述',
-    description_tips: '请输入描述',
-    task_priority: '任务优先级',
-    worker_group: 'Worker分组',
-    worker_group_tips: '该Worker分组已经不存在,请选择正确的Worker分组!',
-    environment_name: '环境名称',
-    task_group_name: '任务组名称',
-    task_group_queue_priority: '组内优先级',
-    number_of_failed_retries: '失败重试次数',
-    times: '次',
-    failed_retry_interval: '失败重试间隔',
-    minute: '分',
-    delay_execution_time: '延时执行时间',
-    state: '状态',
-    branch_flow: '分支流转',
-    cancel: '取消',
-    loading: '正在努力加载中...',
-    confirm: '确定',
-    success: '成功',
-    failed: '失败',
-    backfill_tips: '新创建子工作流还未执行,不能进入子工作流',
-    task_instance_tips: '该任务还未执行,不能进入子工作流',
-    branch_tips: '成功分支流转和失败分支流转不能选择同一个节点',
-    timeout_alarm: '超时告警',
-    timeout_strategy: '超时策略',
-    timeout_strategy_tips: '超时策略必须选一个',
-    timeout_failure: '超时失败',
-    timeout_period: '超时时长',
-    timeout_period_tips: '超时时长必须为正整数',
-    script: '脚本',
-    script_tips: '请输入脚本(必填)',
-    init_script: '初始化脚本',
-    init_script_tips: '请输入初始化脚本',
-    resources: '资源',
-    resources_tips: '请选择资源',
-    no_resources_tips: '请删除所有未授权或已删除资源',
-    useless_resources_tips: '未授权或已删除资源',
-    custom_parameters: '自定义参数',
-    copy_failed: '该浏览器不支持自动复制',
-    prop_tips: 'prop(必填)',
-    prop_repeat: 'prop中有重复',
-    value_tips: 'value(选填)',
-    value_required_tips: 'value(必填)',
-    pre_tasks: '前置任务',
-    program_type: '程序类型',
-    spark_version: 'Spark版本',
-    main_class: '主函数的Class',
-    main_class_tips: '请填写主函数的Class',
-    main_package: '主程序包',
-    main_package_tips: '请选择主程序包',
-    deploy_mode: '部署方式',
-    app_name: '任务名称',
-    app_name_tips: '请输入任务名称(选填)',
-    driver_cores: 'Driver核心数',
-    driver_cores_tips: '请输入Driver核心数',
-    driver_memory: 'Driver内存数',
-    driver_memory_tips: '请输入Driver内存数',
-    executor_number: 'Executor数量',
-    executor_number_tips: '请输入Executor数量',
-    executor_memory: 'Executor内存数',
-    executor_memory_tips: '请输入Executor内存数',
-    executor_cores: 'Executor核心数',
-    executor_cores_tips: '请输入Executor核心数',
-    main_arguments: '主程序参数',
-    main_arguments_tips: '请输入主程序参数',
-    option_parameters: '选项参数',
-    option_parameters_tips: '请输入选项参数',
-    positive_integer_tips: '应为正整数',
-    flink_version: 'Flink版本',
-    job_manager_memory: 'JobManager内存数',
-    job_manager_memory_tips: '请输入JobManager内存数',
-    task_manager_memory: 'TaskManager内存数',
-    task_manager_memory_tips: '请输入TaskManager内存数',
-    slot_number: 'Slot数量',
-    slot_number_tips: '请输入Slot数量',
-    parallelism: '并行度',
-    custom_parallelism: '自定义并行度',
-    parallelism_tips: '请输入并行度',
-    parallelism_number_tips: '并行度必须为正整数',
-    parallelism_complement_tips:
-      '如果存在大量任务需要补数时,可以利用自定义并行度将补数的任务线程设置成合理的数值,避免对服务器造成过大的影响',
-    task_manager_number: 'TaskManager数量',
-    task_manager_number_tips: '请输入TaskManager数量',
-    http_url: '请求地址',
-    http_url_tips: '请填写请求地址(必填)',
-    http_url_validator: '请求地址需包含http或者https',
-    http_method: '请求类型',
-    http_parameters: '请求参数',
-    http_check_condition: '校验条件',
-    http_condition: '校验内容',
-    http_condition_tips: '请填写校验内容',
-    timeout_settings: '超时设置',
-    connect_timeout: '连接超时',
-    ms: '毫秒',
-    socket_timeout: 'Socket超时',
-    status_code_default: '默认响应码200',
-    status_code_custom: '自定义响应码',
-    body_contains: '内容包含',
-    body_not_contains: '内容不包含',
-    http_parameters_position: '参数位置',
-    target_task_name: '目标任务名',
-    target_task_name_tips: '请输入Pigeon任务名(必填)',
-    datasource_type: '数据源类型',
-    datasource_instances: '数据源实例',
-    sql_type: 'SQL类型',
-    sql_type_query: '查询',
-    sql_type_non_query: '非查询',
-    sql_statement: 'SQL语句',
-    pre_sql_statement: '前置SQL语句',
-    post_sql_statement: '后置SQL语句',
-    sql_input_placeholder: '请输入非查询SQL语句',
-    sql_empty_tips: '语句不能为空',
-    procedure_method: 'SQL语句',
-    procedure_method_tips: '请输入存储脚本',
-    procedure_method_snippet:
-      '--请输入存储脚本 \n\n--调用存储过程: call <procedure-name>[(<arg1>,<arg2>, ...)] \n\n--调用存储函数:?= call <procedure-name>[(<arg1>,<arg2>, ...)]',
-    start: '运行',
-    edit: '编辑',
-    copy: '复制节点',
-    delete: '删除',
-    custom_job: '自定义任务',
-    custom_script: '自定义脚本',
-    sqoop_job_name: '任务名称',
-    sqoop_job_name_tips: '请输入任务名称(必填)',
-    direct: '流向',
-    hadoop_custom_params: 'Hadoop参数',
-    sqoop_advanced_parameters: 'Sqoop参数',
-    data_source: '数据来源',
-    type: '类型',
-    datasource: '数据源',
-    datasource_tips: '请选择数据源',
-    model_type: '模式',
-    form: '表单',
-    table: '表名',
-    table_tips: '请输入Mysql表名(必填)',
-    column_type: '列类型',
-    all_columns: '全表导入',
-    some_columns: '选择列',
-    column: '列',
-    column_tips: '请输入列名,用 , 隔开',
-    database: '数据库',
-    database_tips: '请输入Hive数据库(必填)',
-    hive_table_tips: '请输入Hive表名(必填)',
-    hive_partition_keys: 'Hive 分区键',
-    hive_partition_keys_tips: '请输入分区键',
-    hive_partition_values: 'Hive 分区值',
-    hive_partition_values_tips: '请输入分区值',
-    export_dir: '数据源路径',
-    export_dir_tips: '请输入数据源路径(必填)',
-    sql_statement_tips: 'SQL语句(必填)',
-    map_column_hive: 'Hive类型映射',
-    map_column_java: 'Java类型映射',
-    data_target: '数据目的',
-    create_hive_table: '是否创建新表',
-    drop_delimiter: '是否删除分隔符',
-    over_write_src: '是否覆盖数据源',
-    hive_target_dir: 'Hive目标路径',
-    hive_target_dir_tips: '请输入Hive临时目录',
-    replace_delimiter: '替换分隔符',
-    replace_delimiter_tips: '请输入替换分隔符',
-    target_dir: '目标路径',
-    target_dir_tips: '请输入目标路径(必填)',
-    delete_target_dir: '是否删除目录',
-    compression_codec: '压缩类型',
-    file_type: '保存格式',
-    fields_terminated: '列分隔符',
-    fields_terminated_tips: '请输入列分隔符',
-    lines_terminated: '行分隔符',
-    lines_terminated_tips: '请输入行分隔符',
-    is_update: '是否更新',
-    update_key: '更新列',
-    update_key_tips: '请输入更新列',
-    update_mode: '更新类型',
-    only_update: '只更新',
-    allow_insert: '无更新便插入',
-    concurrency: '并发度',
-    concurrency_tips: '请输入并发度',
-    sea_tunnel_master: 'Master',
-    sea_tunnel_master_url: 'Master URL',
-    sea_tunnel_queue: '队列',
-    sea_tunnel_master_url_tips: '请直接填写地址,例如:127.0.0.1:7077',
-    add_pre_task_check_condition: '添加前置检查条件',
-    switch_condition: '条件',
-    switch_branch_flow: '分支流转',
-    and: '且',
-    or: '或',
-    datax_custom_template: '自定义模板',
-    datax_json_template: 'JSON',
-    datax_target_datasource_type: '目标源类型',
-    datax_target_database: '目标源实例',
-    datax_target_table: '目标表',
-    datax_target_table_tips: '请输入目标表名',
-    datax_target_database_pre_sql: '目标库前置SQL',
-    datax_target_database_post_sql: '目标库后置SQL',
-    datax_non_query_sql_tips: '请输入非查询SQL语句',
-    datax_job_speed_byte: '限流(字节数)',
-    datax_job_speed_byte_info: '(KB,0代表不限制)',
-    datax_job_speed_record: '限流(记录数)',
-    datax_job_speed_record_info: '(0代表不限制)',
-    datax_job_runtime_memory: '运行内存',
-    datax_job_runtime_memory_xms: '最小内存',
-    datax_job_runtime_memory_xmx: '最大内存',
-    datax_job_runtime_memory_unit: 'G',
-    current_hour: '当前小时',
-    last_1_hour: '前1小时',
-    last_2_hour: '前2小时',
-    last_3_hour: '前3小时',
-    last_24_hour: '前24小时',
-    today: '今天',
-    last_1_days: '昨天',
-    last_2_days: '前两天',
-    last_3_days: '前三天',
-    last_7_days: '前七天',
-    this_week: '本周',
-    last_week: '上周',
-    last_monday: '上周一',
-    last_tuesday: '上周二',
-    last_wednesday: '上周三',
-    last_thursday: '上周四',
-    last_friday: '上周五',
-    last_saturday: '上周六',
-    last_sunday: '上周日',
-    this_month: '本月',
-    this_month_begin: '本月初',
-    last_month: '上月',
-    last_month_begin: '上月初',
-    last_month_end: '上月末',
-    month: '月',
-    week: '周',
-    day: '日',
-    hour: '时',
-    add_dependency: '添加依赖',
-    waiting_dependent_start: '等待依赖启动',
-    check_interval: '检查间隔',
-    waiting_dependent_complete: '等待依赖完成',
-    project_name: '项目名称',
-    project_name_tips: '项目名称(必填)',
-    process_name: '工作流名称',
-    process_name_tips: '工作流名称(必填)',
-    cycle_time: '时间周期',
-    cycle_time_tips: '时间周期(必填)',
-    date_tips: '日期(必填)',
-    rule_name: '规则名称',
-    null_check: '空值检测',
-    custom_sql: '自定义SQL',
-    multi_table_accuracy: '多表准确性',
-    multi_table_value_comparison: '两表值比对',
-    field_length_check: '字段长度校验',
-    uniqueness_check: '唯一性校验',
-    regexp_check: '正则表达式',
-    timeliness_check: '及时性校验',
-    enumeration_check: '枚举值校验',
-    table_count_check: '表行数校验',
-    src_connector_type: '源数据类型',
-    src_datasource_id: '源数据源',
-    src_table: '源数据表',
-    src_filter: '源表过滤条件',
-    src_field: '源表检测列',
-    statistics_name: '实际值名',
-    check_type: '校验方式',
-    operator: '校验操作符',
-    threshold: '阈值',
-    failure_strategy: '失败策略',
-    target_connector_type: '目标数据类型',
-    target_datasource_id: '目标数据源',
-    target_table: '目标数据表',
-    target_filter: '目标表过滤条件',
-    mapping_columns: 'ON语句',
-    statistics_execute_sql: '实际值计算SQL',
-    comparison_name: '期望值名',
-    comparison_execute_sql: '期望值计算SQL',
-    comparison_type: '期望值类型',
-    writer_connector_type: '输出数据类型',
-    writer_datasource_id: '输出数据源',
-    target_field: '目标表检测列',
-    field_length: '字段长度限制',
-    logic_operator: '逻辑操作符',
-    regexp_pattern: '正则表达式',
-    deadline: '截止时间',
-    datetime_format: '时间格式',
-    enum_list: '枚举值列表',
-    begin_time: '起始时间',
-    fix_value: '固定值',
-    required: '必填',
-    emr_flow_define_json: 'jobFlowDefineJson',
-    emr_flow_define_json_tips: '请输入工作流定义',
-    segment_separator: '分段执行符号',
-    segment_separator_tips: '请输入分段执行符号',
-    zeppelin_note_id: 'zeppelin_note_id',
-    zeppelin_note_id_tips: '请输入zeppelin note id',
-    zeppelin_paragraph_id: 'zeppelin_paragraph_id',
-    zeppelin_paragraph_id_tips: '请输入zeppelin paragraph id',
-    send_email: '发送邮件',
-    log_display: '日志显示',
-    rows_of_result: '行查询结果',
-    title: '主题',
-    title_tips: '请输入邮件主题',
-    alarm_group: '告警组',
-    alarm_group_tips: '告警组必填',
-    integer_tips: '请输入一个正整数',
-    sql_parameter: 'sql参数',
-    format_tips: '请输入格式为',
-    udf_function: 'UDF函数',
-    unlimited: '不限制',
-    please_select_source_connector_type: '请选择源数据类型',
-    please_select_source_datasource_id: '请选择源数据源',
-    please_enter_source_table_name: '请选择源数据表',
-    please_enter_filter_expression: '请输入源表过滤条件',
-    please_enter_column_only_single_column_is_supported: '请选择源表检测列',
-    please_enter_threshold_number_is_needed: '请输入阈值',
-    please_enter_comparison_title: '请选择期望值类型'
-  }
-}
-
-const security = {
-  tenant: {
-    tenant_manage: '租户管理',
-    create_tenant: '创建租户',
-    search_tips: '请输入关键词',
-    tenant_code: '操作系统租户',
-    description: '描述',
-    queue_name: '队列',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    actions: '操作',
-    edit_tenant: '编辑租户',
-    tenant_code_tips: '请输入操作系统租户',
-    queue_name_tips: '请选择队列',
-    description_tips: '请输入描述',
-    delete_confirm: '确定删除吗?',
-    edit: '编辑',
-    delete: '删除'
-  },
-  alarm_group: {
-    create_alarm_group: '创建告警组',
-    edit_alarm_group: '编辑告警组',
-    search_tips: '请输入关键词',
-    alert_group_name_tips: '请输入告警组名称',
-    alarm_plugin_instance: '告警组实例',
-    alarm_plugin_instance_tips: '请选择告警组实例',
-    alarm_group_description_tips: '请输入告警组描述',
-    alert_group_name: '告警组名称',
-    alarm_group_description: '告警组描述',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    delete_confirm: '确定删除吗?',
-    edit: '编辑',
-    delete: '删除'
-  },
-  worker_group: {
-    create_worker_group: '创建Worker分组',
-    edit_worker_group: '编辑Worker分组',
-    search_tips: '请输入关键词',
-    operation: '操作',
-    delete_confirm: '确定删除吗?',
-    edit: '编辑',
-    delete: '删除',
-    group_name: '分组名称',
-    group_name_tips: '请输入分组名称',
-    worker_addresses: 'Worker地址',
-    worker_addresses_tips: '请选择Worker地址',
-    create_time: '创建时间',
-    update_time: '更新时间'
-  },
-  yarn_queue: {
-    create_queue: '创建队列',
-    edit_queue: '编辑队列',
-    search_tips: '请输入关键词',
-    queue_name: '队列名',
-    queue_value: '队列值',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    queue_name_tips: '请输入队列名',
-    queue_value_tips: '请输入队列值'
-  },
-  environment: {
-    create_environment: '创建环境',
-    edit_environment: '编辑环境',
-    search_tips: '请输入关键词',
-    edit: '编辑',
-    delete: '删除',
-    environment_name: '环境名称',
-    environment_config: '环境配置',
-    environment_desc: '环境描述',
-    worker_groups: 'Worker分组',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    delete_confirm: '确定删除吗?',
-    environment_name_tips: '请输入环境名',
-    environment_config_tips: '请输入环境配置',
-    environment_description_tips: '请输入环境描述',
-    worker_group_tips: '请选择Worker分组'
-  },
-  token: {
-    create_token: '创建令牌',
-    edit_token: '编辑令牌',
-    search_tips: '请输入关键词',
-    user: '用户',
-    user_tips: '请选择用户',
-    token: '令牌',
-    token_tips: '请点击获取令牌',
-    expiration_time: '失效时间',
-    expiration_time_tips: '请选择失效时间',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    delete: '删除',
-    delete_confirm: '确定删除吗?'
-  },
-  user: {
-    user_manage: '用户管理',
-    create_user: '创建用户',
-    edit_user: '编辑用户',
-    delete_user: '删除用户',
-    delete_confirm: '确定删除吗?',
-    project: '项目',
-    resource: '资源',
-    file_resource: '文件资源',
-    udf_resource: 'UDF资源',
-    datasource: '数据源',
-    udf: 'UDF函数',
-    namespace: '命名空间',
-    authorize_project: '项目授权',
-    authorize_resource: '资源授权',
-    authorize_namespace: '命名空间授权',
-    authorize_datasource: '数据源授权',
-    authorize_udf: 'UDF函数授权',
-    username: '用户名',
-    username_exists: '用户名已存在',
-    username_tips: '请输入用户名',
-    user_password: '密码',
-    user_password_tips: '请输入包含字母和数字,长度在6~20之间的密码',
-    user_type: '用户类型',
-    ordinary_user: '普通用户',
-    administrator: '管理员',
-    tenant_code: '租户',
-    tenant_id_tips: '请选择租户',
-    queue: '队列',
-    queue_tips: '默认为租户关联队列',
-    email: '邮件',
-    email_empty_tips: '请输入邮箱',
-    emial_correct_tips: '请输入正确的邮箱格式',
-    phone: '手机',
-    phone_empty_tips: '请输入手机号码',
-    phone_correct_tips: '请输入正确的手机格式',
-    state: '状态',
-    state_enabled: '启用',
-    state_disabled: '停用',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    delete: '删除',
-    authorize: '授权',
-    save_error_msg: '保存失败,请重试',
-    delete_error_msg: '删除失败,请重试',
-    auth_error_msg: '授权失败,请重试',
-    auth_success_msg: '授权成功',
-    enable: '启用',
-    disable: '停用'
-  },
-  alarm_instance: {
-    search_input_tips: '请输入关键字',
-    alarm_instance_manage: '告警实例管理',
-    alarm_instance_name: '告警实例名称',
-    alarm_instance_name_tips: '请输入告警实例名称',
-    alarm_plugin_name: '告警插件名称',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit_alarm_instance: '编辑告警实例',
-    delete: '删除',
-    edit: '编辑',
-    delete_confirm: '删除?',
-    confirm: '确定',
-    cancel: '取消',
-    submit: '提交',
-    create_alarm_instance: '创建告警实例',
-    select_plugin: '选择插件',
-    select_plugin_tips: '请选择告警插件',
-    instance_parameter_exception: '实例参数异常',
-    WebHook: 'Web钩子',
-    webHook: 'Web钩子',
-    WarningType: '告警类型',
-    IsEnableProxy: '启用代理',
-    Proxy: '代理',
-    Port: '端口',
-    User: '用户',
-    corpId: '企业ID',
-    secret: '密钥',
-    Secret: '密钥',
-    users: '群员',
-    userSendMsg: '群员信息',
-    'agentId/chatId': '应用ID或群聊ID',
-    showType: '内容展示类型',
-    receivers: '收件人',
-    receiverCcs: '抄送人',
-    serverHost: 'SMTP服务器',
-    serverPort: 'SMTP端口',
-    sender: '发件人',
-    enableSmtpAuth: '请求认证',
-    Password: '密码',
-    starttlsEnable: 'STARTTLS连接',
-    sslEnable: 'SSL连接',
-    smtpSslTrust: 'SSL证书信任',
-    url: 'URL',
-    requestType: '请求方式',
-    headerParams: '请求头',
-    bodyParams: '请求体',
-    contentField: '内容字段',
-    Keyword: '关键词',
-    userParams: '自定义参数',
-    path: '脚本路径',
-    type: '类型',
-    sendType: '发送类型',
-    username: '用户名',
-    botToken: '机器人Token',
-    chatId: '频道ID',
-    parseMode: '解析类型',
-    IntegrationKey: '集成密钥',
-    BotAccessToken: '访问令牌',
-    RoomId: '房间',
-    ToPersonId: '用户',
-    ToPersonEmail: '用户邮箱',
-    // eslint-disable-next-line quotes
-    AtSomeoneInRoom: "{'@'}房间中的成员",
-    Destination: '目的地',
-    // eslint-disable-next-line quotes
-    AtMobiles: "被{'@'}人的手机号",
-    // eslint-disable-next-line quotes
-    AtUserIds: "被{'@'}人的用户ID",
-    MsgType: '消息类型',
-    // eslint-disable-next-line quotes
-    IsAtAll: "{'@'}所有人"
-  },
-  k8s_namespace: {
-    create_namespace: '创建命名空间',
-    edit_namespace: '编辑命名空间',
-    search_tips: '请输入关键词',
-    k8s_namespace: 'K8S命名空间',
-    k8s_namespace_tips: '请输入k8s命名空间',
-    k8s_cluster: 'K8S集群',
-    k8s_cluster_tips: '请输入k8s集群',
-    owner: '负责人',
-    owner_tips: '请输入负责人',
-    tag: '标签',
-    tag_tips: '请输入标签',
-    limit_cpu: '最大CPU',
-    limit_cpu_tips: '请输入最大CPU',
-    limit_memory: '最大内存',
-    limit_memory_tips: '请输入最大内存',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    operation: '操作',
-    edit: '编辑',
-    delete: '删除',
-    delete_confirm: '确定删除吗?'
-  }
-}
-
-const datasource = {
-  datasource: '数据源',
-  create_datasource: '创建数据源',
-  search_input_tips: '请输入关键字',
-  datasource_name: '数据源名称',
-  datasource_name_tips: '请输入数据源名称',
-  datasource_user_name: '所属用户',
-  datasource_type: '数据源类型',
-  datasource_parameter: '数据源参数',
-  description: '描述',
-  description_tips: '请输入描述',
-  create_time: '创建时间',
-  update_time: '更新时间',
-  operation: '操作',
-  click_to_view: '点击查看',
-  delete: '删除',
-  confirm: '确定',
-  delete_confirm: '删除?',
-  cancel: '取消',
-  create: '创建',
-  edit: '编辑',
-  success: '成功',
-  test_connect: '测试连接',
-  ip: 'IP主机名',
-  ip_tips: '请输入IP主机名',
-  port: '端口',
-  port_tips: '请输入端口',
-  database_name: '数据库名',
-  database_name_tips: '请输入数据库名',
-  oracle_connect_type: '服务名或SID',
-  oracle_connect_type_tips: '请选择服务名或SID',
-  oracle_service_name: '服务名',
-  oracle_sid: 'SID',
-  jdbc_connect_parameters: 'jdbc连接参数',
-  principal_tips: '请输入Principal',
-  krb5_conf_tips: '请输入kerberos认证参数 java.security.krb5.conf',
-  keytab_username_tips: '请输入kerberos认证参数 login.user.keytab.username',
-  keytab_path_tips: '请输入kerberos认证参数 login.user.keytab.path',
-  format_tips: '请输入格式为',
-  connection_parameter: '连接参数',
-  user_name: '用户名',
-  user_name_tips: '请输入用户名',
-  user_password: '密码',
-  user_password_tips: '请输入密码',
-  jdbc_format_tips: 'jdbc连接参数不是一个正确的JSON格式'
-}
-
-const data_quality = {
-  task_result: {
-    task_name: '任务名称',
-    workflow_instance: '工作流实例',
-    rule_type: '规则类型',
-    rule_name: '规则名称',
-    state: '状态',
-    actual_value: '实际值',
-    excepted_value: '期望值',
-    check_type: '检测类型',
-    operator: '操作符',
-    threshold: '阈值',
-    failure_strategy: '失败策略',
-    excepted_value_type: '期望值类型',
-    error_output_path: '错误数据路径',
-    username: '用户名',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    undone: '未完成',
-    success: '成功',
-    failure: '失败',
-    single_table: '单表检测',
-    single_table_custom_sql: '自定义SQL',
-    multi_table_accuracy: '多表准确性',
-    multi_table_comparison: '两表值对比',
-    expected_and_actual_or_expected: '(期望值-实际值)/实际值 x 100%',
-    expected_and_actual: '期望值-实际值',
-    actual_and_expected: '实际值-期望值',
-    actual_or_expected: '实际值/期望值 x 100%'
-  },
-  rule: {
-    actions: '操作',
-    name: '规则名称',
-    type: '规则类型',
-    username: '用户名',
-    create_time: '创建时间',
-    update_time: '更新时间',
-    input_item: '规则输入项',
-    view_input_item: '查看规则输入项信息',
-    input_item_title: '输入项标题',
-    input_item_placeholder: '输入项占位符',
-    input_item_type: '输入项类型',
-    src_connector_type: '源数据类型',
-    src_datasource_id: '源数据源',
-    src_table: '源数据表',
-    src_filter: '源表过滤条件',
-    src_field: '源表检测列',
-    statistics_name: '实际值名',
-    check_type: '校验方式',
-    operator: '校验操作符',
-    threshold: '阈值',
-    failure_strategy: '失败策略',
-    target_connector_type: '目标数据类型',
-    target_datasource_id: '目标数据源',
-    target_table: '目标数据表',
-    target_filter: '目标表过滤条件',
-    mapping_columns: 'ON语句',
-    statistics_execute_sql: '实际值计算SQL',
-    comparison_name: '期望值名',
-    comparison_execute_sql: '期望值计算SQL',
-    comparison_type: '期望值类型',
-    writer_connector_type: '输出数据类型',
-    writer_datasource_id: '输出数据源',
-    target_field: '目标表检测列',
-    field_length: '字段长度限制',
-    logic_operator: '逻辑操作符',
-    regexp_pattern: '正则表达式',
-    deadline: '截止时间',
-    datetime_format: '时间格式',
-    enum_list: '枚举值列表',
-    begin_time: '起始时间',
-    fix_value: '固定值',
-    null_check: '空值检测',
-    custom_sql: '自定义SQL',
-    single_table: '单表检测',
-    multi_table_accuracy: '多表准确性',
-    multi_table_value_comparison: '两表值比对',
-    field_length_check: '字段长度校验',
-    uniqueness_check: '唯一性校验',
-    regexp_check: '正则表达式',
-    timeliness_check: '及时性校验',
-    enumeration_check: '枚举值校验',
-    table_count_check: '表行数校验',
-    all: '全部',
-    FixValue: '固定值',
-    DailyAvg: '日均值',
-    WeeklyAvg: '周均值',
-    MonthlyAvg: '月均值',
-    Last7DayAvg: '最近7天均值',
-    Last30DayAvg: '最近30天均值',
-    SrcTableTotalRows: '源表总行数',
-    TargetTableTotalRows: '目标表总行数'
-  }
-}
-const crontab = {
-  second: '秒',
-  minute: '分',
-  hour: '时',
-  day: '天',
-  month: '月',
-  year: '年',
-  monday: '星期一',
-  tuesday: '星期二',
-  wednesday: '星期三',
-  thursday: '星期四',
-  friday: '星期五',
-  saturday: '星期六',
-  sunday: '星期天',
-  every_second: '每一秒钟',
-  every: '每隔',
-  second_carried_out: '秒执行 从',
-  second_start: '秒开始',
-  specific_second: '具体秒数(可多选)',
-  specific_second_tip: '请选择具体秒数',
-  cycle_from: '周期从',
-  to: '到',
-  every_minute: '每一分钟',
-  minute_carried_out: '分执行 从',
-  minute_start: '分开始',
-  specific_minute: '具体分钟数(可多选)',
-  specific_minute_tip: '请选择具体分钟数',
-  every_hour: '每一小时',
-  hour_carried_out: '小时执行 从',
-  hour_start: '小时开始',
-  specific_hour: '具体小时数(可多选)',
-  specific_hour_tip: '请选择具体小时数',
-  every_day: '每一天',
-  week_carried_out: '周执行 从',
-  start: '开始',
-  day_carried_out: '天执行 从',
-  day_start: '天开始',
-  specific_week: '具体星期几(可多选)',
-  specific_week_tip: '请选择具体周几',
-  specific_day: '具体天数(可多选)',
-  specific_day_tip: '请选择具体天数',
-  last_day_of_month: '在这个月的最后一天',
-  last_work_day_of_month: '在这个月的最后一个工作日',
-  last_of_month: '在这个月的最后一个',
-  before_end_of_month: '在本月底前',
-  recent_business_day_to_month: '最近的工作日(周一至周五)至本月',
-  in_this_months: '在这个月的第',
-  every_month: '每一月',
-  month_carried_out: '月执行 从',
-  month_start: '月开始',
-  specific_month: '具体月数(可多选)',
-  specific_month_tip: '请选择具体月数',
-  every_year: '每一年',
-  year_carried_out: '年执行 从',
-  year_start: '年开始',
-  specific_year: '具体年数(可多选)',
-  specific_year_tip: '请选择具体年数',
-  one_hour: '小时',
-  one_day: '日'
-}
-
-export default {
-  login,
-  modal,
-  theme,
-  userDropdown,
-  menu,
-  home,
-  password,
-  profile,
-  monitor,
-  resource,
-  project,
-  security,
-  datasource,
-  data_quality,
-  crontab
-}
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/crontab.ts b/dolphinscheduler-ui/src/locales/zh_CN/crontab.ts
new file mode 100644
index 0000000000..607cd30a71
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/crontab.ts
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  second: '秒',
+  minute: '分',
+  hour: '时',
+  day: '天',
+  month: '月',
+  year: '年',
+  monday: '星期一',
+  tuesday: '星期二',
+  wednesday: '星期三',
+  thursday: '星期四',
+  friday: '星期五',
+  saturday: '星期六',
+  sunday: '星期天',
+  every_second: '每一秒钟',
+  every: '每隔',
+  second_carried_out: '秒执行 从',
+  second_start: '秒开始',
+  specific_second: '具体秒数(可多选)',
+  specific_second_tip: '请选择具体秒数',
+  cycle_from: '周期从',
+  to: '到',
+  every_minute: '每一分钟',
+  minute_carried_out: '分执行 从',
+  minute_start: '分开始',
+  specific_minute: '具体分钟数(可多选)',
+  specific_minute_tip: '请选择具体分钟数',
+  every_hour: '每一小时',
+  hour_carried_out: '小时执行 从',
+  hour_start: '小时开始',
+  specific_hour: '具体小时数(可多选)',
+  specific_hour_tip: '请选择具体小时数',
+  every_day: '每一天',
+  week_carried_out: '周执行 从',
+  start: '开始',
+  day_carried_out: '天执行 从',
+  day_start: '天开始',
+  specific_week: '具体星期几(可多选)',
+  specific_week_tip: '请选择具体周几',
+  specific_day: '具体天数(可多选)',
+  specific_day_tip: '请选择具体天数',
+  last_day_of_month: '在这个月的最后一天',
+  last_work_day_of_month: '在这个月的最后一个工作日',
+  last_of_month: '在这个月的最后一个',
+  before_end_of_month: '在本月底前',
+  recent_business_day_to_month: '最近的工作日(周一至周五)至本月',
+  in_this_months: '在这个月的第',
+  every_month: '每一月',
+  month_carried_out: '月执行 从',
+  month_start: '月开始',
+  specific_month: '具体月数(可多选)',
+  specific_month_tip: '请选择具体月数',
+  every_year: '每一年',
+  year_carried_out: '年执行 从',
+  year_start: '年开始',
+  specific_year: '具体年数(可多选)',
+  specific_year_tip: '请选择具体年数',
+  one_hour: '小时',
+  one_day: '日'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/data-quality.ts b/dolphinscheduler-ui/src/locales/zh_CN/data-quality.ts
new file mode 100644
index 0000000000..ca1bbc843e
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/data-quality.ts
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  task_result: {
+    task_name: '任务名称',
+    workflow_instance: '工作流实例',
+    rule_type: '规则类型',
+    rule_name: '规则名称',
+    state: '状态',
+    actual_value: '实际值',
+    excepted_value: '期望值',
+    check_type: '检测类型',
+    operator: '操作符',
+    threshold: '阈值',
+    failure_strategy: '失败策略',
+    excepted_value_type: '期望值类型',
+    error_output_path: '错误数据路径',
+    username: '用户名',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    undone: '未完成',
+    success: '成功',
+    failure: '失败',
+    single_table: '单表检测',
+    single_table_custom_sql: '自定义SQL',
+    multi_table_accuracy: '多表准确性',
+    multi_table_comparison: '两表值对比',
+    expected_and_actual_or_expected: '(期望值-实际值)/实际值 x 100%',
+    expected_and_actual: '期望值-实际值',
+    actual_and_expected: '实际值-期望值',
+    actual_or_expected: '实际值/期望值 x 100%'
+  },
+  rule: {
+    actions: '操作',
+    name: '规则名称',
+    type: '规则类型',
+    username: '用户名',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    input_item: '规则输入项',
+    view_input_item: '查看规则输入项信息',
+    input_item_title: '输入项标题',
+    input_item_placeholder: '输入项占位符',
+    input_item_type: '输入项类型',
+    src_connector_type: '源数据类型',
+    src_datasource_id: '源数据源',
+    src_table: '源数据表',
+    src_filter: '源表过滤条件',
+    src_field: '源表检测列',
+    statistics_name: '实际值名',
+    check_type: '校验方式',
+    operator: '校验操作符',
+    threshold: '阈值',
+    failure_strategy: '失败策略',
+    target_connector_type: '目标数据类型',
+    target_datasource_id: '目标数据源',
+    target_table: '目标数据表',
+    target_filter: '目标表过滤条件',
+    mapping_columns: 'ON语句',
+    statistics_execute_sql: '实际值计算SQL',
+    comparison_name: '期望值名',
+    comparison_execute_sql: '期望值计算SQL',
+    comparison_type: '期望值类型',
+    writer_connector_type: '输出数据类型',
+    writer_datasource_id: '输出数据源',
+    target_field: '目标表检测列',
+    field_length: '字段长度限制',
+    logic_operator: '逻辑操作符',
+    regexp_pattern: '正则表达式',
+    deadline: '截止时间',
+    datetime_format: '时间格式',
+    enum_list: '枚举值列表',
+    begin_time: '起始时间',
+    fix_value: '固定值',
+    null_check: '空值检测',
+    custom_sql: '自定义SQL',
+    single_table: '单表检测',
+    multi_table_accuracy: '多表准确性',
+    multi_table_value_comparison: '两表值比对',
+    field_length_check: '字段长度校验',
+    uniqueness_check: '唯一性校验',
+    regexp_check: '正则表达式',
+    timeliness_check: '及时性校验',
+    enumeration_check: '枚举值校验',
+    table_count_check: '表行数校验',
+    all: '全部',
+    FixValue: '固定值',
+    DailyAvg: '日均值',
+    WeeklyAvg: '周均值',
+    MonthlyAvg: '月均值',
+    Last7DayAvg: '最近7天均值',
+    Last30DayAvg: '最近30天均值',
+    SrcTableTotalRows: '源表总行数',
+    TargetTableTotalRows: '目标表总行数'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/datasource.ts b/dolphinscheduler-ui/src/locales/zh_CN/datasource.ts
new file mode 100644
index 0000000000..105b04a13a
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/datasource.ts
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  datasource: '数据源',
+  create_datasource: '创建数据源',
+  search_input_tips: '请输入关键字',
+  datasource_name: '数据源名称',
+  datasource_name_tips: '请输入数据源名称',
+  datasource_user_name: '所属用户',
+  datasource_type: '数据源类型',
+  datasource_parameter: '数据源参数',
+  description: '描述',
+  description_tips: '请输入描述',
+  create_time: '创建时间',
+  update_time: '更新时间',
+  operation: '操作',
+  click_to_view: '点击查看',
+  delete: '删除',
+  confirm: '确定',
+  delete_confirm: '删除?',
+  cancel: '取消',
+  create: '创建',
+  edit: '编辑',
+  success: '成功',
+  test_connect: '测试连接',
+  ip: 'IP主机名',
+  ip_tips: '请输入IP主机名',
+  port: '端口',
+  port_tips: '请输入端口',
+  database_name: '数据库名',
+  database_name_tips: '请输入数据库名',
+  oracle_connect_type: '服务名或SID',
+  oracle_connect_type_tips: '请选择服务名或SID',
+  oracle_service_name: '服务名',
+  oracle_sid: 'SID',
+  jdbc_connect_parameters: 'jdbc连接参数',
+  principal_tips: '请输入Principal',
+  krb5_conf_tips: '请输入kerberos认证参数 java.security.krb5.conf',
+  keytab_username_tips: '请输入kerberos认证参数 login.user.keytab.username',
+  keytab_path_tips: '请输入kerberos认证参数 login.user.keytab.path',
+  format_tips: '请输入格式为',
+  connection_parameter: '连接参数',
+  user_name: '用户名',
+  user_name_tips: '请输入用户名',
+  user_password: '密码',
+  user_password_tips: '请输入密码',
+  jdbc_format_tips: 'jdbc连接参数不是一个正确的JSON格式'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/home.ts
similarity index 52%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/home.ts
index 31a3cd9835..399215dfc2 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/home.ts
@@ -15,18 +15,28 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  task_state_statistics: '任务状态统计',
+  process_state_statistics: '流程状态统计',
+  process_definition_statistics: '流程定义统计',
+  number: '数量',
+  state: '状态',
+  submitted_success: '提交成功',
+  running_execution: '正在运行',
+  ready_pause: '准备暂停',
+  pause: '暂停',
+  ready_stop: '准备停止',
+  stop: '停止',
+  failure: '失败',
+  success: '成功',
+  need_fault_tolerance: '需要容错',
+  kill: 'KILL',
+  waiting_thread: '等待线程',
+  waiting_depend: '等待依赖完成',
+  delay_execution: '延时执行',
+  forced_success: '强制成功',
+  serial_wait: '串行等待',
+  dispatch: '派发',
+  ready_block: '准备阻断',
+  block: '阻断'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/index.ts
new file mode 100644
index 0000000000..132fd14f75
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/index.ts
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import crontab from '@/locales/zh_CN/crontab'
+import data_quality from '@/locales/zh_CN/data-quality'
+import datasource from '@/locales/zh_CN/datasource'
+import home from '@/locales/zh_CN/home'
+import login from '@/locales/zh_CN/login'
+import menu from '@/locales/zh_CN/menu'
+import modal from '@/locales/zh_CN/modal'
+import monitor from '@/locales/zh_CN/monitor'
+import password from '@/locales/zh_CN/password'
+import profile from '@/locales/zh_CN/profile'
+import project from '@/locales/zh_CN/project'
+import resource from '@/locales/zh_CN/resource'
+import security from '@/locales/zh_CN/security'
+import theme from '@/locales/zh_CN/theme'
+import user_dropdown from '@/locales/zh_CN/user-dropdown'
+
+export default {
+  login,
+  modal,
+  theme,
+  user_dropdown,
+  menu,
+  home,
+  password,
+  profile,
+  monitor,
+  resource,
+  project,
+  security,
+  datasource,
+  data_quality,
+  crontab
+}
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/login.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/login.ts
index 31a3cd9835..656af40510 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/login.ts
@@ -15,18 +15,11 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  test: '测试',
+  userName: '用户名',
+  userName_tips: '请输入用户名',
+  userPassword: '密码',
+  userPassword_tips: '请输入密码',
+  login: '登录'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/menu.ts b/dolphinscheduler-ui/src/locales/zh_CN/menu.ts
new file mode 100644
index 0000000000..59e9420b0c
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/menu.ts
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  home: '首页',
+  project: '项目管理',
+  resources: '资源中心',
+  datasource: '数据源中心',
+  monitor: '监控中心',
+  security: '安全中心',
+  project_overview: '项目概览',
+  workflow_relation: '工作流关系',
+  workflow: '工作流',
+  workflow_definition: '工作流定义',
+  workflow_instance: '工作流实例',
+  task: '任务',
+  task_instance: '任务实例',
+  task_definition: '任务定义',
+  file_manage: '文件管理',
+  udf_manage: 'UDF管理',
+  resource_manage: '资源管理',
+  function_manage: '函数管理',
+  service_manage: '服务管理',
+  master: 'Master',
+  worker: 'Worker',
+  db: 'DB',
+  statistical_manage: '统计管理',
+  statistics: 'Statistics',
+  audit_log: '审计日志',
+  tenant_manage: '租户管理',
+  user_manage: '用户管理',
+  alarm_group_manage: '告警组管理',
+  alarm_instance_manage: '告警实例管理',
+  worker_group_manage: 'Worker分组管理',
+  yarn_queue_manage: 'Yarn队列管理',
+  environment_manage: '环境管理',
+  k8s_namespace_manage: 'K8S命名空间管理',
+  token_manage: '令牌管理',
+  task_group_manage: '任务组管理',
+  task_group_option: '任务组配置',
+  task_group_queue: '任务组队列',
+  data_quality: '数据质量',
+  task_result: '任务结果',
+  rule: '规则管理'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/modal.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/modal.ts
index 31a3cd9835..6e78e45975 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/modal.ts
@@ -15,18 +15,7 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  cancel: '取消',
+  confirm: '确定'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/monitor.ts b/dolphinscheduler-ui/src/locales/zh_CN/monitor.ts
new file mode 100644
index 0000000000..4b2b4f0c67
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/monitor.ts
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  master: {
+    cpu_usage: '处理器使用量',
+    memory_usage: '内存使用量',
+    load_average: '平均负载量',
+    create_time: '创建时间',
+    last_heartbeat_time: '最后心跳时间',
+    directory_detail: '目录详情',
+    host: '主机',
+    directory: '注册目录',
+    master_no_data_result_title: 'Master节点不存在',
+    master_no_data_result_desc:
+      '目前没有任何Master节点,请先创建Master节点,再访问该页面'
+  },
+  worker: {
+    cpu_usage: '处理器使用量',
+    memory_usage: '内存使用量',
+    load_average: '平均负载量',
+    create_time: '创建时间',
+    last_heartbeat_time: '最后心跳时间',
+    directory_detail: '目录详情',
+    host: '主机',
+    directory: '注册目录',
+    worker_no_data_result_title: 'Worker节点不存在',
+    worker_no_data_result_desc:
+      '目前没有任何Worker节点,请先创建Worker节点,再访问该页面'
+  },
+  db: {
+    health_state: '健康状态',
+    max_connections: '最大连接数',
+    threads_connections: '当前连接数',
+    threads_running_connections: '数据库当前活跃连接数'
+  },
+  statistics: {
+    command_number_of_waiting_for_running: '待执行的命令数',
+    failure_command_number: '执行失败的命令数'
+  },
+  audit_log: {
+    user_name: '用户名称',
+    resource_type: '资源类型',
+    project_name: '项目名称',
+    operation_type: '操作类型',
+    create_time: '创建时间',
+    start_time: '开始时间',
+    end_time: '结束时间',
+    user_audit: '用户管理审计',
+    project_audit: '项目管理审计',
+    create: '创建',
+    update: '更新',
+    delete: '删除',
+    read: '读取'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/password.ts
similarity index 73%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/password.ts
index 31a3cd9835..543fe6cbe8 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/password.ts
@@ -15,18 +15,12 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  edit_password: '修改密码',
+  password: '密码',
+  confirm_password: '确认密码',
+  password_tips: '请输入密码',
+  confirm_password_tips: '请输入确认密码',
+  two_password_entries_are_inconsistent: '两次密码输入不一致',
+  submit: '提交'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/profile.ts
similarity index 55%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/profile.ts
index 31a3cd9835..9e86f89414 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/profile.ts
@@ -15,18 +15,26 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  profile: '用户信息',
+  edit: '编辑',
+  username: '用户名',
+  email: '邮箱',
+  phone: '手机',
+  state: '状态',
+  permission: '权限',
+  create_time: '创建时间',
+  update_time: '更新时间',
+  administrator: '管理员',
+  ordinary_user: '普通用户',
+  edit_profile: '编辑用户',
+  username_tips: '请输入用户名',
+  email_tips: '请输入邮箱',
+  email_correct_tips: '请输入正确格式的邮箱',
+  phone_tips: '请输入手机号',
+  state_tips: '请选择状态',
+  enable: '启用',
+  disable: '禁用',
+  timezone_success: '时区更新成功',
+  please_select_timezone: '请选择时区'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
new file mode 100644
index 0000000000..721e31357a
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
@@ -0,0 +1,614 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  list: {
+    create_project: '创建项目',
+    edit_project: '编辑项目',
+    project_list: '项目列表',
+    project_tips: '请输入项目名称',
+    description_tips: '请输入项目描述',
+    username_tips: '请输入所属用户',
+    project_name: '项目名称',
+    project_description: '项目描述',
+    owned_users: '所属用户',
+    workflow_define_count: '工作流定义数',
+    process_instance_running_count: '正在运行的流程数',
+    description: '描述',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    delete: '删除',
+    confirm: '确定',
+    cancel: '取消',
+    delete_confirm: '确定删除吗?'
+  },
+  workflow: {
+    workflow_relation: '工作流关系',
+    create_workflow: '创建工作流',
+    import_workflow: '导入工作流',
+    workflow_name: '工作流名称',
+    current_selection: '当前选择',
+    online: '已上线',
+    offline: '已下线',
+    refresh: '刷新',
+    show_hide_label: '显示 / 隐藏标签',
+    workflow_offline: '工作流下线',
+    schedule_offline: '调度下线',
+    schedule_start_time: '定时开始时间',
+    schedule_end_time: '定时结束时间',
+    crontab_expression: 'Crontab',
+    workflow_publish_status: '工作流上线状态',
+    schedule_publish_status: '定时状态',
+    workflow_definition: '工作流定义',
+    workflow_instance: '工作流实例',
+    status: '状态',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    description: '描述',
+    create_user: '创建用户',
+    modify_user: '修改用户',
+    operation: '操作',
+    edit: '编辑',
+    confirm: '确定',
+    cancel: '取消',
+    start: '运行',
+    timing: '定时',
+    timezone: '时区',
+    up_line: '上线',
+    down_line: '下线',
+    copy_workflow: '复制工作流',
+    cron_manage: '定时管理',
+    delete: '删除',
+    tree_view: '工作流树形图',
+    tree_limit: '限制大小',
+    export: '导出',
+    batch_copy: '批量复制',
+    version_info: '版本信息',
+    version: '版本',
+    file_upload: '文件上传',
+    upload_file: '上传文件',
+    upload: '上传',
+    file_name: '文件名称',
+    success: '成功',
+    set_parameters_before_starting: '启动前请先设置参数',
+    set_parameters_before_timing: '定时前请先设置参数',
+    start_and_stop_time: '起止时间',
+    next_five_execution_times: '接下来五次执行时间',
+    execute_time: '执行时间',
+    failure_strategy: '失败策略',
+    notification_strategy: '通知策略',
+    workflow_priority: '流程优先级',
+    worker_group: 'Worker分组',
+    environment_name: '环境名称',
+    alarm_group: '告警组',
+    complement_data: '补数',
+    startup_parameter: '启动参数',
+    whether_dry_run: '是否空跑',
+    continue: '继续',
+    end: '结束',
+    none_send: '都不发',
+    success_send: '成功发',
+    failure_send: '失败发',
+    all_send: '成功或失败都发',
+    whether_complement_data: '是否是补数',
+    schedule_date: '调度日期',
+    mode_of_execution: '执行方式',
+    serial_execution: '串行执行',
+    parallel_execution: '并行执行',
+    parallelism: '并行度',
+    custom_parallelism: '自定义并行度',
+    please_enter_parallelism: '请输入并行度',
+    please_choose: '请选择',
+    start_time: '开始时间',
+    end_time: '结束时间',
+    crontab: 'Crontab',
+    delete_confirm: '确定删除吗?',
+    enter_name_tips: '请输入名称',
+    switch_version: '切换到该版本',
+    confirm_switch_version: '确定切换到该版本吗?',
+    current_version: '当前版本',
+    run_type: '运行类型',
+    scheduling_time: '调度时间',
+    duration: '运行时长',
+    run_times: '运行次数',
+    fault_tolerant_sign: '容错标识',
+    dry_run_flag: '空跑标识',
+    executor: '执行用户',
+    host: '主机',
+    start_process: '启动工作流',
+    execute_from_the_current_node: '从当前节点开始执行',
+    recover_tolerance_fault_process: '恢复被容错的工作流',
+    resume_the_suspension_process: '恢复运行流程',
+    execute_from_the_failed_nodes: '从失败节点开始执行',
+    scheduling_execution: '调度执行',
+    rerun: '重跑',
+    stop: '停止',
+    pause: '暂停',
+    recovery_waiting_thread: '恢复等待线程',
+    recover_serial_wait: '串行恢复',
+    recovery_suspend: '恢复运行',
+    recovery_failed: '重跑失败任务',
+    gantt: '甘特图',
+    name: '名称',
+    all_status: '全部状态',
+    submit_success: '提交成功',
+    running: '正在运行',
+    ready_to_pause: '准备暂停',
+    ready_to_stop: '准备停止',
+    failed: '失败',
+    need_fault_tolerance: '需要容错',
+    kill: 'Kill',
+    waiting_for_thread: '等待线程',
+    waiting_for_dependence: '等待依赖',
+    waiting_for_dependency_to_complete: '等待依赖完成',
+    delay_execution: '延时执行',
+    forced_success: '强制成功',
+    serial_wait: '串行等待',
+    dispatch: '派发',
+    pending: '挂起',
+    executing: '正在执行',
+    startup_type: '启动类型',
+    complement_range: '补数范围',
+    parameters_variables: '参数变量',
+    global_parameters: '全局参数',
+    local_parameters: '局部参数',
+    type: '类型',
+    retry_count: '重试次数',
+    submit_time: '提交时间',
+    refresh_status_succeeded: '刷新状态成功',
+    view_log: '查看日志',
+    update_log_success: '更新日志成功',
+    no_more_log: '暂无更多日志',
+    no_log: '暂无日志',
+    loading_log: '正在努力请求日志中...',
+    close: '关闭',
+    download_log: '下载日志',
+    refresh_log: '刷新日志',
+    enter_full_screen: '进入全屏',
+    cancel_full_screen: '取消全屏',
+    task_state: '任务状态',
+    mode_of_dependent: '依赖模式',
+    open: '打开',
+    project_name_required: '项目名称必填',
+    related_items: '关联项目',
+    project_name: '项目名称',
+    project_tips: '请选择项目',
+    workflow_relation_no_data_result_title: '工作流关系不存在',
+    workflow_relation_no_data_result_desc:
+      '目前没有任何工作流,请先创建工作流,再访问该页面'
+  },
+  task: {
+    cancel_full_screen: '取消全屏',
+    enter_full_screen: '全屏',
+    current_task_settings: '当前任务设置',
+    online: '已上线',
+    offline: '已下线',
+    task_name: '任务名称',
+    task_type: '任务类型',
+    create_task: '创建任务',
+    workflow_instance: '工作流实例',
+    workflow_name: '工作流名称',
+    workflow_name_tips: '请选择工作流名称',
+    workflow_state: '工作流状态',
+    version: '版本',
+    current_version: '当前版本',
+    switch_version: '切换到该版本',
+    confirm_switch_version: '确定切换到该版本吗?',
+    description: '描述',
+    move: '移动',
+    upstream_tasks: '上游任务',
+    executor: '执行用户',
+    node_type: '节点类型',
+    state: '状态',
+    submit_time: '提交时间',
+    start_time: '开始时间',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    end_time: '结束时间',
+    duration: '运行时间',
+    retry_count: '重试次数',
+    dry_run_flag: '空跑标识',
+    host: '主机',
+    operation: '操作',
+    edit: '编辑',
+    delete: '删除',
+    delete_confirm: '确定删除吗?',
+    forced_success: '强制成功',
+    view_log: '查看日志',
+    download_log: '下载日志',
+    refresh: '刷新'
+  },
+  dag: {
+    create: '创建工作流',
+    search: '搜索',
+    download_png: '下载工作流图片',
+    fullscreen_open: '全屏',
+    fullscreen_close: '退出全屏',
+    save: '保存',
+    close: '关闭',
+    format: '格式化',
+    refresh_dag_status: '刷新DAG状态',
+    layout_type: '布局类型',
+    grid_layout: '网格布局',
+    dagre_layout: '层次布局',
+    rows: '行数',
+    cols: '列数',
+    copy_success: '复制成功',
+    workflow_name: '工作流名称',
+    description: '描述',
+    tenant: '租户',
+    timeout_alert: '超时告警',
+    process_execute_type: '执行策略',
+    parallel: '并行',
+    serial_wait: '串行等待',
+    serial_discard: '串行抛弃',
+    serial_priority: '串行优先',
+    recover_serial_wait: '串行恢复',
+    global_variables: '全局变量',
+    basic_info: '基本信息',
+    minute: '分',
+    key: '键',
+    value: '值',
+    success: '成功',
+    delete_cell: '删除选中的线或节点',
+    online_directly: '是否上线工作流定义',
+    update_directly: '是否更新工作流定义',
+    dag_name_empty: 'DAG图名称不能为空',
+    positive_integer: '请输入大于 0 的正整数',
+    prop_empty: '自定义参数prop不能为空',
+    prop_repeat: 'prop中有重复',
+    node_not_created: '未创建节点保存失败',
+    copy_name: '复制名称',
+    view_variables: '查看变量',
+    startup_parameter: '启动参数',
+    online: '已上线'
+  },
+  node: {
+    return_back: '返回上一节点',
+    current_node_settings: '当前节点设置',
+    instructions: '使用说明',
+    view_history: '查看历史',
+    view_log: '查看日志',
+    enter_this_child_node: '进入该子节点',
+    name: '节点名称',
+    task_name: '任务名称',
+    task_name_tips: '任务名称(必填)',
+    name_tips: '请输入名称(必填)',
+    task_type: '任务类型',
+    task_type_tips: '请选择任务类型(必选)',
+    workflow_name: '工作流名称',
+    workflow_name_tips: '请选择工作流(必选)',
+    child_node: '子节点',
+    child_node_tips: '请选择子节点(必选)',
+    run_flag: '运行标志',
+    normal: '正常',
+    prohibition_execution: '禁止执行',
+    description: '描述',
+    description_tips: '请输入描述',
+    task_priority: '任务优先级',
+    worker_group: 'Worker分组',
+    worker_group_tips: '该Worker分组已经不存在,请选择正确的Worker分组!',
+    environment_name: '环境名称',
+    task_group_name: '任务组名称',
+    task_group_queue_priority: '组内优先级',
+    number_of_failed_retries: '失败重试次数',
+    times: '次',
+    failed_retry_interval: '失败重试间隔',
+    minute: '分',
+    delay_execution_time: '延时执行时间',
+    state: '状态',
+    branch_flow: '分支流转',
+    cancel: '取消',
+    loading: '正在努力加载中...',
+    confirm: '确定',
+    success: '成功',
+    failed: '失败',
+    backfill_tips: '新创建子工作流还未执行,不能进入子工作流',
+    task_instance_tips: '该任务还未执行,不能进入子工作流',
+    branch_tips: '成功分支流转和失败分支流转不能选择同一个节点',
+    timeout_alarm: '超时告警',
+    timeout_strategy: '超时策略',
+    timeout_strategy_tips: '超时策略必须选一个',
+    timeout_failure: '超时失败',
+    timeout_period: '超时时长',
+    timeout_period_tips: '超时时长必须为正整数',
+    script: '脚本',
+    script_tips: '请输入脚本(必填)',
+    init_script: '初始化脚本',
+    init_script_tips: '请输入初始化脚本',
+    resources: '资源',
+    resources_tips: '请选择资源',
+    no_resources_tips: '请删除所有未授权或已删除资源',
+    useless_resources_tips: '未授权或已删除资源',
+    custom_parameters: '自定义参数',
+    copy_failed: '该浏览器不支持自动复制',
+    prop_tips: 'prop(必填)',
+    prop_repeat: 'prop中有重复',
+    value_tips: 'value(选填)',
+    value_required_tips: 'value(必填)',
+    pre_tasks: '前置任务',
+    program_type: '程序类型',
+    spark_version: 'Spark版本',
+    main_class: '主函数的Class',
+    main_class_tips: '请填写主函数的Class',
+    main_package: '主程序包',
+    main_package_tips: '请选择主程序包',
+    deploy_mode: '部署方式',
+    app_name: '任务名称',
+    app_name_tips: '请输入任务名称(选填)',
+    driver_cores: 'Driver核心数',
+    driver_cores_tips: '请输入Driver核心数',
+    driver_memory: 'Driver内存数',
+    driver_memory_tips: '请输入Driver内存数',
+    executor_number: 'Executor数量',
+    executor_number_tips: '请输入Executor数量',
+    executor_memory: 'Executor内存数',
+    executor_memory_tips: '请输入Executor内存数',
+    executor_cores: 'Executor核心数',
+    executor_cores_tips: '请输入Executor核心数',
+    main_arguments: '主程序参数',
+    main_arguments_tips: '请输入主程序参数',
+    option_parameters: '选项参数',
+    option_parameters_tips: '请输入选项参数',
+    positive_integer_tips: '应为正整数',
+    flink_version: 'Flink版本',
+    job_manager_memory: 'JobManager内存数',
+    job_manager_memory_tips: '请输入JobManager内存数',
+    task_manager_memory: 'TaskManager内存数',
+    task_manager_memory_tips: '请输入TaskManager内存数',
+    slot_number: 'Slot数量',
+    slot_number_tips: '请输入Slot数量',
+    parallelism: '并行度',
+    custom_parallelism: '自定义并行度',
+    parallelism_tips: '请输入并行度',
+    parallelism_number_tips: '并行度必须为正整数',
+    parallelism_complement_tips:
+      '如果存在大量任务需要补数时,可以利用自定义并行度将补数的任务线程设置成合理的数值,避免对服务器造成过大的影响',
+    task_manager_number: 'TaskManager数量',
+    task_manager_number_tips: '请输入TaskManager数量',
+    http_url: '请求地址',
+    http_url_tips: '请填写请求地址(必填)',
+    http_url_validator: '请求地址需包含http或者https',
+    http_method: '请求类型',
+    http_parameters: '请求参数',
+    http_check_condition: '校验条件',
+    http_condition: '校验内容',
+    http_condition_tips: '请填写校验内容',
+    timeout_settings: '超时设置',
+    connect_timeout: '连接超时',
+    ms: '毫秒',
+    socket_timeout: 'Socket超时',
+    status_code_default: '默认响应码200',
+    status_code_custom: '自定义响应码',
+    body_contains: '内容包含',
+    body_not_contains: '内容不包含',
+    http_parameters_position: '参数位置',
+    target_task_name: '目标任务名',
+    target_task_name_tips: '请输入Pigeon任务名(必填)',
+    datasource_type: '数据源类型',
+    datasource_instances: '数据源实例',
+    sql_type: 'SQL类型',
+    sql_type_query: '查询',
+    sql_type_non_query: '非查询',
+    sql_statement: 'SQL语句',
+    pre_sql_statement: '前置SQL语句',
+    post_sql_statement: '后置SQL语句',
+    sql_input_placeholder: '请输入非查询SQL语句',
+    sql_empty_tips: '语句不能为空',
+    procedure_method: 'SQL语句',
+    procedure_method_tips: '请输入存储脚本',
+    procedure_method_snippet:
+      '--请输入存储脚本 \n\n--调用存储过程: call <procedure-name>[(<arg1>,<arg2>, ...)] \n\n--调用存储函数:?= call <procedure-name>[(<arg1>,<arg2>, ...)]',
+    start: '运行',
+    edit: '编辑',
+    copy: '复制节点',
+    delete: '删除',
+    custom_job: '自定义任务',
+    custom_script: '自定义脚本',
+    sqoop_job_name: '任务名称',
+    sqoop_job_name_tips: '请输入任务名称(必填)',
+    direct: '流向',
+    hadoop_custom_params: 'Hadoop参数',
+    sqoop_advanced_parameters: 'Sqoop参数',
+    data_source: '数据来源',
+    type: '类型',
+    datasource: '数据源',
+    datasource_tips: '请选择数据源',
+    model_type: '模式',
+    form: '表单',
+    table: '表名',
+    table_tips: '请输入Mysql表名(必填)',
+    column_type: '列类型',
+    all_columns: '全表导入',
+    some_columns: '选择列',
+    column: '列',
+    column_tips: '请输入列名,用 , 隔开',
+    database: '数据库',
+    database_tips: '请输入Hive数据库(必填)',
+    hive_table_tips: '请输入Hive表名(必填)',
+    hive_partition_keys: 'Hive 分区键',
+    hive_partition_keys_tips: '请输入分区键',
+    hive_partition_values: 'Hive 分区值',
+    hive_partition_values_tips: '请输入分区值',
+    export_dir: '数据源路径',
+    export_dir_tips: '请输入数据源路径(必填)',
+    sql_statement_tips: 'SQL语句(必填)',
+    map_column_hive: 'Hive类型映射',
+    map_column_java: 'Java类型映射',
+    data_target: '数据目的',
+    create_hive_table: '是否创建新表',
+    drop_delimiter: '是否删除分隔符',
+    over_write_src: '是否覆盖数据源',
+    hive_target_dir: 'Hive目标路径',
+    hive_target_dir_tips: '请输入Hive临时目录',
+    replace_delimiter: '替换分隔符',
+    replace_delimiter_tips: '请输入替换分隔符',
+    target_dir: '目标路径',
+    target_dir_tips: '请输入目标路径(必填)',
+    delete_target_dir: '是否删除目录',
+    compression_codec: '压缩类型',
+    file_type: '保存格式',
+    fields_terminated: '列分隔符',
+    fields_terminated_tips: '请输入列分隔符',
+    lines_terminated: '行分隔符',
+    lines_terminated_tips: '请输入行分隔符',
+    is_update: '是否更新',
+    update_key: '更新列',
+    update_key_tips: '请输入更新列',
+    update_mode: '更新类型',
+    only_update: '只更新',
+    allow_insert: '无更新便插入',
+    concurrency: '并发度',
+    concurrency_tips: '请输入并发度',
+    sea_tunnel_master: 'Master',
+    sea_tunnel_master_url: 'Master URL',
+    sea_tunnel_queue: '队列',
+    sea_tunnel_master_url_tips: '请直接填写地址,例如:127.0.0.1:7077',
+    add_pre_task_check_condition: '添加前置检查条件',
+    switch_condition: '条件',
+    switch_branch_flow: '分支流转',
+    and: '且',
+    or: '或',
+    datax_custom_template: '自定义模板',
+    datax_json_template: 'JSON',
+    datax_target_datasource_type: '目标源类型',
+    datax_target_database: '目标源实例',
+    datax_target_table: '目标表',
+    datax_target_table_tips: '请输入目标表名',
+    datax_target_database_pre_sql: '目标库前置SQL',
+    datax_target_database_post_sql: '目标库后置SQL',
+    datax_non_query_sql_tips: '请输入非查询SQL语句',
+    datax_job_speed_byte: '限流(字节数)',
+    datax_job_speed_byte_info: '(KB,0代表不限制)',
+    datax_job_speed_record: '限流(记录数)',
+    datax_job_speed_record_info: '(0代表不限制)',
+    datax_job_runtime_memory: '运行内存',
+    datax_job_runtime_memory_xms: '最小内存',
+    datax_job_runtime_memory_xmx: '最大内存',
+    datax_job_runtime_memory_unit: 'G',
+    current_hour: '当前小时',
+    last_1_hour: '前1小时',
+    last_2_hour: '前2小时',
+    last_3_hour: '前3小时',
+    last_24_hour: '前24小时',
+    today: '今天',
+    last_1_days: '昨天',
+    last_2_days: '前两天',
+    last_3_days: '前三天',
+    last_7_days: '前七天',
+    this_week: '本周',
+    last_week: '上周',
+    last_monday: '上周一',
+    last_tuesday: '上周二',
+    last_wednesday: '上周三',
+    last_thursday: '上周四',
+    last_friday: '上周五',
+    last_saturday: '上周六',
+    last_sunday: '上周日',
+    this_month: '本月',
+    this_month_begin: '本月初',
+    last_month: '上月',
+    last_month_begin: '上月初',
+    last_month_end: '上月末',
+    month: '月',
+    week: '周',
+    day: '日',
+    hour: '时',
+    add_dependency: '添加依赖',
+    waiting_dependent_start: '等待依赖启动',
+    check_interval: '检查间隔',
+    waiting_dependent_complete: '等待依赖完成',
+    project_name: '项目名称',
+    project_name_tips: '项目名称(必填)',
+    process_name: '工作流名称',
+    process_name_tips: '工作流名称(必填)',
+    cycle_time: '时间周期',
+    cycle_time_tips: '时间周期(必填)',
+    date_tips: '日期(必填)',
+    rule_name: '规则名称',
+    null_check: '空值检测',
+    custom_sql: '自定义SQL',
+    multi_table_accuracy: '多表准确性',
+    multi_table_value_comparison: '两表值比对',
+    field_length_check: '字段长度校验',
+    uniqueness_check: '唯一性校验',
+    regexp_check: '正则表达式',
+    timeliness_check: '及时性校验',
+    enumeration_check: '枚举值校验',
+    table_count_check: '表行数校验',
+    src_connector_type: '源数据类型',
+    src_datasource_id: '源数据源',
+    src_table: '源数据表',
+    src_filter: '源表过滤条件',
+    src_field: '源表检测列',
+    statistics_name: '实际值名',
+    check_type: '校验方式',
+    operator: '校验操作符',
+    threshold: '阈值',
+    failure_strategy: '失败策略',
+    target_connector_type: '目标数据类型',
+    target_datasource_id: '目标数据源',
+    target_table: '目标数据表',
+    target_filter: '目标表过滤条件',
+    mapping_columns: 'ON语句',
+    statistics_execute_sql: '实际值计算SQL',
+    comparison_name: '期望值名',
+    comparison_execute_sql: '期望值计算SQL',
+    comparison_type: '期望值类型',
+    writer_connector_type: '输出数据类型',
+    writer_datasource_id: '输出数据源',
+    target_field: '目标表检测列',
+    field_length: '字段长度限制',
+    logic_operator: '逻辑操作符',
+    regexp_pattern: '正则表达式',
+    deadline: '截止时间',
+    datetime_format: '时间格式',
+    enum_list: '枚举值列表',
+    begin_time: '起始时间',
+    fix_value: '固定值',
+    required: '必填',
+    emr_flow_define_json: 'jobFlowDefineJson',
+    emr_flow_define_json_tips: '请输入工作流定义',
+    segment_separator: '分段执行符号',
+    segment_separator_tips: '请输入分段执行符号',
+    zeppelin_note_id: 'zeppelin_note_id',
+    zeppelin_note_id_tips: '请输入zeppelin note id',
+    zeppelin_paragraph_id: 'zeppelin_paragraph_id',
+    zeppelin_paragraph_id_tips: '请输入zeppelin paragraph id',
+    send_email: '发送邮件',
+    log_display: '日志显示',
+    rows_of_result: '行查询结果',
+    title: '主题',
+    title_tips: '请输入邮件主题',
+    alarm_group: '告警组',
+    alarm_group_tips: '告警组必填',
+    integer_tips: '请输入一个正整数',
+    sql_parameter: 'sql参数',
+    format_tips: '请输入格式为',
+    udf_function: 'UDF函数',
+    unlimited: '不限制',
+    please_select_source_connector_type: '请选择源数据类型',
+    please_select_source_datasource_id: '请选择源数据源',
+    please_enter_source_table_name: '请选择源数据表',
+    please_enter_filter_expression: '请输入源表过滤条件',
+    please_enter_column_only_single_column_is_supported: '请选择源表检测列',
+    please_enter_threshold_number_is_needed: '请输入阈值',
+    please_enter_comparison_title: '请选择期望值类型'
+  }
+}
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/resource.ts b/dolphinscheduler-ui/src/locales/zh_CN/resource.ts
new file mode 100644
index 0000000000..b795c5132b
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/resource.ts
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  file: {
+    file_manage: '文件管理',
+    create_folder: '创建文件夹',
+    create_file: '创建文件',
+    upload_files: '上传文件',
+    enter_keyword_tips: '请输入关键词',
+    name: '名称',
+    user_name: '所属用户',
+    whether_directory: '是否文件夹',
+    file_name: '文件名称',
+    description: '描述',
+    size: '大小',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    rename: '重命名',
+    download: '下载',
+    delete: '删除',
+    yes: '是',
+    no: '否',
+    folder_name: '文件夹名称',
+    enter_name_tips: '请输入名称',
+    enter_description_tips: '请输入描述',
+    enter_content_tips: '请输入资源内容',
+    enter_suffix_tips: '请输入文件后缀',
+    file_format: '文件格式',
+    file_content: '文件内容',
+    delete_confirm: '确定删除吗?',
+    confirm: '确定',
+    cancel: '取消',
+    success: '成功',
+    file_details: '文件详情',
+    return: '返回',
+    save: '保存'
+  },
+  udf: {
+    udf_resources: 'UDF资源',
+    create_folder: '创建文件夹',
+    upload_udf_resources: '上传UDF资源',
+    udf_source_name: 'UDF资源名称',
+    user_name: '所属用户',
+    whether_directory: '是否文件夹',
+    file_name: '文件名称',
+    file_size: '文件大小',
+    description: '描述',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    yes: '是',
+    no: '否',
+    edit: '编辑',
+    download: '下载',
+    delete: '删除',
+    success: '成功',
+    folder_name: '文件夹名称',
+    upload: '上传',
+    upload_files: '上传文件',
+    file_upload: '文件上传',
+    delete_confirm: '确定删除吗?',
+    enter_keyword_tips: '请输入关键词',
+    enter_name_tips: '请输入名称',
+    enter_description_tips: '请输入描述'
+  },
+  function: {
+    udf_function: 'UDF函数',
+    create_udf_function: '创建UDF函数',
+    edit_udf_function: '编辑UDF函数',
+    udf_function_name: 'UDF函数名称',
+    user_name: '所属用户',
+    class_name: '类名',
+    type: '类型',
+    description: '描述',
+    jar_package: 'jar包',
+    update_time: '更新时间',
+    operation: '操作',
+    rename: '重命名',
+    edit: '编辑',
+    delete: '删除',
+    success: '成功',
+    package_name: '包名类名',
+    udf_resources: 'UDF资源',
+    instructions: '使用说明',
+    upload_resources: '上传资源',
+    udf_resources_directory: 'UDF资源目录',
+    delete_confirm: '确定删除吗?',
+    enter_keyword_tips: '请输入关键词',
+    enter_udf_unction_name_tips: '请输入UDF函数名称',
+    enter_package_name_tips: '请输入包名类名',
+    enter_select_udf_resources_tips: '请选择UDF资源',
+    enter_select_udf_resources_directory_tips: '请选择UDF资源目录',
+    enter_instructions_tips: '请输入使用说明',
+    enter_name_tips: '请输入名称',
+    enter_description_tips: '请输入描述',
+    upload: '上传',
+    upload_udf_resources: '上传UDF资源'
+  },
+  task_group_option: {
+    manage: '任务组管理',
+    option: '任务组配置',
+    create: '创建任务组',
+    edit: '编辑任务组',
+    delete: '删除任务组',
+    view_queue: '查看任务组队列',
+    switch_status: '切换任务组状态',
+    code: '任务组编号',
+    name: '任务组名称',
+    project_name: '项目名称',
+    resource_pool_size: '资源容量',
+    resource_used_pool_size: '已用资源',
+    desc: '描述信息',
+    status: '任务组状态',
+    enable_status: '启用',
+    disable_status: '不可用',
+    please_enter_name: '请输入任务组名称',
+    please_enter_desc: '请输入任务组描述',
+    please_enter_resource_pool_size: '请输入资源容量大小',
+    positive_integer_tips: '应为正整数',
+    please_select_project: '请选择项目',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    actions: '操作',
+    please_enter_keywords: '请输入搜索关键词'
+  },
+  task_group_queue: {
+    actions: '操作',
+    task_name: '任务名称',
+    task_group_name: '任务组名称',
+    project_name: '项目名称',
+    task_instance_name: '任务实例',
+    workflow_instance_name: '工作流实例',
+    queue: '任务组队列',
+    priority: '组内优先级',
+    priority_be_a_number: '优先级必须是大于等于0的数值',
+    force_starting_status: '是否强制启动',
+    in_queue: '是否排队中',
+    task_status: '任务状态',
+    view_task_group_queue: '查看任务组队列',
+    the_status_of_waiting: '等待入队',
+    the_status_of_queuing: '排队中',
+    the_status_of_releasing: '已释放',
+    modify_priority: '修改优先级',
+    start_task: '强制启动',
+    priority_not_empty: '优先级不能为空',
+    priority_must_be_number: '优先级必须是数值',
+    please_select_task_name: '请选择节点名称',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    edit_priority: '修改优先级'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/security.ts b/dolphinscheduler-ui/src/locales/zh_CN/security.ts
new file mode 100644
index 0000000000..10b36fdc8a
--- /dev/null
+++ b/dolphinscheduler-ui/src/locales/zh_CN/security.ts
@@ -0,0 +1,265 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+  tenant: {
+    tenant_manage: '租户管理',
+    create_tenant: '创建租户',
+    search_tips: '请输入关键词',
+    tenant_code: '操作系统租户',
+    description: '描述',
+    queue_name: '队列',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    actions: '操作',
+    edit_tenant: '编辑租户',
+    tenant_code_tips: '请输入操作系统租户',
+    queue_name_tips: '请选择队列',
+    description_tips: '请输入描述',
+    delete_confirm: '确定删除吗?',
+    edit: '编辑',
+    delete: '删除'
+  },
+  alarm_group: {
+    create_alarm_group: '创建告警组',
+    edit_alarm_group: '编辑告警组',
+    search_tips: '请输入关键词',
+    alert_group_name_tips: '请输入告警组名称',
+    alarm_plugin_instance: '告警组实例',
+    alarm_plugin_instance_tips: '请选择告警组实例',
+    alarm_group_description_tips: '请输入告警组描述',
+    alert_group_name: '告警组名称',
+    alarm_group_description: '告警组描述',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    delete_confirm: '确定删除吗?',
+    edit: '编辑',
+    delete: '删除'
+  },
+  worker_group: {
+    create_worker_group: '创建Worker分组',
+    edit_worker_group: '编辑Worker分组',
+    search_tips: '请输入关键词',
+    operation: '操作',
+    delete_confirm: '确定删除吗?',
+    edit: '编辑',
+    delete: '删除',
+    group_name: '分组名称',
+    group_name_tips: '请输入分组名称',
+    worker_addresses: 'Worker地址',
+    worker_addresses_tips: '请选择Worker地址',
+    create_time: '创建时间',
+    update_time: '更新时间'
+  },
+  yarn_queue: {
+    create_queue: '创建队列',
+    edit_queue: '编辑队列',
+    search_tips: '请输入关键词',
+    queue_name: '队列名',
+    queue_value: '队列值',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    queue_name_tips: '请输入队列名',
+    queue_value_tips: '请输入队列值'
+  },
+  environment: {
+    create_environment: '创建环境',
+    edit_environment: '编辑环境',
+    search_tips: '请输入关键词',
+    edit: '编辑',
+    delete: '删除',
+    environment_name: '环境名称',
+    environment_config: '环境配置',
+    environment_desc: '环境描述',
+    worker_groups: 'Worker分组',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    delete_confirm: '确定删除吗?',
+    environment_name_tips: '请输入环境名',
+    environment_config_tips: '请输入环境配置',
+    environment_description_tips: '请输入环境描述',
+    worker_group_tips: '请选择Worker分组'
+  },
+  token: {
+    create_token: '创建令牌',
+    edit_token: '编辑令牌',
+    search_tips: '请输入关键词',
+    user: '用户',
+    user_tips: '请选择用户',
+    token: '令牌',
+    token_tips: '请点击获取令牌',
+    expiration_time: '失效时间',
+    expiration_time_tips: '请选择失效时间',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    delete: '删除',
+    delete_confirm: '确定删除吗?'
+  },
+  user: {
+    user_manage: '用户管理',
+    create_user: '创建用户',
+    edit_user: '编辑用户',
+    delete_user: '删除用户',
+    delete_confirm: '确定删除吗?',
+    project: '项目',
+    resource: '资源',
+    file_resource: '文件资源',
+    udf_resource: 'UDF资源',
+    datasource: '数据源',
+    udf: 'UDF函数',
+    namespace: '命名空间',
+    authorize_project: '项目授权',
+    authorize_resource: '资源授权',
+    authorize_namespace: '命名空间授权',
+    authorize_datasource: '数据源授权',
+    authorize_udf: 'UDF函数授权',
+    username: '用户名',
+    username_exists: '用户名已存在',
+    username_tips: '请输入用户名',
+    user_password: '密码',
+    user_password_tips: '请输入包含字母和数字,长度在6~20之间的密码',
+    user_type: '用户类型',
+    ordinary_user: '普通用户',
+    administrator: '管理员',
+    tenant_code: '租户',
+    tenant_id_tips: '请选择租户',
+    queue: '队列',
+    queue_tips: '默认为租户关联队列',
+    email: '邮件',
+    email_empty_tips: '请输入邮箱',
+    emial_correct_tips: '请输入正确的邮箱格式',
+    phone: '手机',
+    phone_empty_tips: '请输入手机号码',
+    phone_correct_tips: '请输入正确的手机格式',
+    state: '状态',
+    state_enabled: '启用',
+    state_disabled: '停用',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    delete: '删除',
+    authorize: '授权',
+    save_error_msg: '保存失败,请重试',
+    delete_error_msg: '删除失败,请重试',
+    auth_error_msg: '授权失败,请重试',
+    auth_success_msg: '授权成功',
+    enable: '启用',
+    disable: '停用'
+  },
+  alarm_instance: {
+    search_input_tips: '请输入关键字',
+    alarm_instance_manage: '告警实例管理',
+    alarm_instance_name: '告警实例名称',
+    alarm_instance_name_tips: '请输入告警实例名称',
+    alarm_plugin_name: '告警插件名称',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit_alarm_instance: '编辑告警实例',
+    delete: '删除',
+    edit: '编辑',
+    delete_confirm: '删除?',
+    confirm: '确定',
+    cancel: '取消',
+    submit: '提交',
+    create_alarm_instance: '创建告警实例',
+    select_plugin: '选择插件',
+    select_plugin_tips: '请选择告警插件',
+    instance_parameter_exception: '实例参数异常',
+    WebHook: 'Web钩子',
+    webHook: 'Web钩子',
+    WarningType: '告警类型',
+    IsEnableProxy: '启用代理',
+    Proxy: '代理',
+    Port: '端口',
+    User: '用户',
+    corpId: '企业ID',
+    secret: '密钥',
+    Secret: '密钥',
+    users: '群员',
+    userSendMsg: '群员信息',
+    'agentId/chatId': '应用ID或群聊ID',
+    showType: '内容展示类型',
+    receivers: '收件人',
+    receiverCcs: '抄送人',
+    serverHost: 'SMTP服务器',
+    serverPort: 'SMTP端口',
+    sender: '发件人',
+    enableSmtpAuth: '请求认证',
+    Password: '密码',
+    starttlsEnable: 'STARTTLS连接',
+    sslEnable: 'SSL连接',
+    smtpSslTrust: 'SSL证书信任',
+    url: 'URL',
+    requestType: '请求方式',
+    headerParams: '请求头',
+    bodyParams: '请求体',
+    contentField: '内容字段',
+    Keyword: '关键词',
+    userParams: '自定义参数',
+    path: '脚本路径',
+    type: '类型',
+    sendType: '发送类型',
+    username: '用户名',
+    botToken: '机器人Token',
+    chatId: '频道ID',
+    parseMode: '解析类型',
+    IntegrationKey: '集成密钥',
+    BotAccessToken: '访问令牌',
+    RoomId: '房间',
+    ToPersonId: '用户',
+    ToPersonEmail: '用户邮箱',
+    // eslint-disable-next-line quotes
+    AtSomeoneInRoom: "{'@'}房间中的成员",
+    Destination: '目的地',
+    // eslint-disable-next-line quotes
+    AtMobiles: "被{'@'}人的手机号",
+    // eslint-disable-next-line quotes
+    AtUserIds: "被{'@'}人的用户ID",
+    MsgType: '消息类型',
+    // eslint-disable-next-line quotes
+    IsAtAll: "{'@'}所有人"
+  },
+  k8s_namespace: {
+    create_namespace: '创建命名空间',
+    edit_namespace: '编辑命名空间',
+    search_tips: '请输入关键词',
+    k8s_namespace: 'K8S命名空间',
+    k8s_namespace_tips: '请输入k8s命名空间',
+    k8s_cluster: 'K8S集群',
+    k8s_cluster_tips: '请输入k8s集群',
+    owner: '负责人',
+    owner_tips: '请输入负责人',
+    limit_cpu: '最大CPU',
+    limit_cpu_tips: '请输入最大CPU',
+    limit_memory: '最大内存',
+    limit_memory_tips: '请输入最大内存',
+    create_time: '创建时间',
+    update_time: '更新时间',
+    operation: '操作',
+    edit: '编辑',
+    delete: '删除',
+    delete_confirm: '确定删除吗?'
+  }
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/theme.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/theme.ts
index 31a3cd9835..77df7f2fc1 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/theme.ts
@@ -15,18 +15,7 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  light: '浅色',
+  dark: '深色'
+}
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/locales/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts
similarity index 75%
copy from dolphinscheduler-ui/src/locales/index.ts
copy to dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts
index 31a3cd9835..554f40872e 100644
--- a/dolphinscheduler-ui/src/locales/index.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts
@@ -15,18 +15,8 @@
  * limitations under the License.
  */
 
-import { createI18n } from 'vue-i18n'
-import zh_CN from './modules/zh_CN'
-import en_US from './modules/en_US'
-
-const i18n = createI18n({
-  legacy: false,
-  globalInjection: true,
-  locale: 'zh_CN',
-  messages: {
-    zh_CN,
-    en_US
-  }
-})
-
-export default i18n
+export default {
+  profile: '用户信息',
+  password: '密码管理',
+  logout: '退出登录'
+}
\ No newline at end of file