You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by so...@apache.org on 2022/05/26 11:22:32 UTC

[dolphinscheduler] branch dev updated: [Style][UI] Split multilingual modules. (#10256)

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

songjian pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 4c1ef0a89a [Style][UI] Split multilingual modules. (#10256)
4c1ef0a89a is described below

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

    [Style][UI] Split multilingual modules. (#10256)
---
 .../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 +-
 .../locales/{modules/en_US.ts => en_US/project.ts} | 817 +--------------------
 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/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 +-
 .../locales/{modules/zh_CN.ts => zh_CN/project.ts} | 807 +-------------------
 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 +-
 34 files changed, 1900 insertions(+), 1835 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/modules/en_US.ts b/dolphinscheduler-ui/src/locales/en_US/project.ts
similarity index 51%
rename from dolphinscheduler-ui/src/locales/modules/en_US.ts
rename to dolphinscheduler-ui/src/locales/en_US/project.ts
index 9e082fdea1..8f37959248 100644
--- a/dolphinscheduler-ui/src/locales/modules/en_US.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/project.ts
@@ -15,345 +15,7 @@
  * 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 = {
+export default {
   list: {
     create_project: 'Create Project',
     edit_project: 'Edit Project',
@@ -1017,479 +679,4 @@ const project = {
     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',
-    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
-}
+}
\ No newline at end of file
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/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/modules/zh_CN.ts b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
similarity index 50%
rename from dolphinscheduler-ui/src/locales/modules/zh_CN.ts
rename to dolphinscheduler-ui/src/locales/zh_CN/project.ts
index 74c02652b9..5e10480c4e 100644
--- a/dolphinscheduler-ui/src/locales/modules/zh_CN.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
@@ -15,341 +15,7 @@
  * 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 = {
+export default {
   list: {
     create_project: '创建项目',
     edit_project: '编辑项目',
@@ -1000,473 +666,4 @@ const project = {
     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: '请输入负责人',
-    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
-}
+}
\ No newline at end of file
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