diff --git a/apps/accounts/automations/change_secret/custom/ssh/manifest.yml b/apps/accounts/automations/change_secret/custom/ssh/manifest.yml
index c46511344..be0248d68 100644
--- a/apps/accounts/automations/change_secret/custom/ssh/manifest.yml
+++ b/apps/accounts/automations/change_secret/custom/ssh/manifest.yml
@@ -9,12 +9,22 @@ method: change_secret
 params:
   - name: commands
     type: list
-    label: '自定义命令'
+    label: "{{ 'Params commands label' | trans }}"
     default: [ '' ]
-    help_text: '自定义命令中如需包含账号的 账号、密码、SSH 连接的用户密码 字段,<br />请使用 &#123;username&#125;、&#123;password&#125;、&#123;login_password&#125;格式,执行任务时会进行替换 。<br />比如针对 Cisco 主机进行改密,一般需要配置五条命令:<br />1. enable<br />2. &#123;login_password&#125;<br />3. configure terminal<br />4. username &#123;username&#125; privilege 0 password &#123;password&#125; <br />5. end'
+    help_text: "{{ 'Params commands help text' | trans }}"
 
 i18n:
   SSH account change secret:
-    zh: 使用 SSH 命令行自定义改密
-    ja: SSH コマンドライン方式でカスタムパスワード変更
-    en: Custom password change by SSH command line
+    zh: '使用 SSH 命令行自定义改密'
+    ja: 'SSH コマンドライン方式でカスタムパスワード変更'
+    en: 'Custom password change by SSH command line'
+
+  Params commands help text:
+    zh: '自定义命令中如需包含账号的 账号、密码、SSH 连接的用户密码 字段,<br />请使用 &#123;username&#125;、&#123;password&#125;、&#123;login_password&#125;格式,执行任务时会进行替换 。<br />比如针对 Cisco 主机进行改密,一般需要配置五条命令:<br />1. enable<br />2. &#123;login_password&#125;<br />3. configure terminal<br />4. username &#123;username&#125; privilege 0 password &#123;password&#125; <br />5. end'
+    ja: 'カスタム コマンドに SSH 接続用のアカウント番号、パスワード、ユーザー パスワード フィールドを含める必要がある場合は、<br />&#123;ユーザー名&#125;、&#123;パスワード&#125;、&#123;login_password& を使用してください。 # 125; 形式。タスクの実行時に置き換えられます。 <br />たとえば、Cisco ホストのパスワードを変更するには、通常、次の 5 つのコマンドを設定する必要があります:<br />1.enable<br />2.&#123;login_password&#125;<br />3 .ターミナルの設定<br / >4. ユーザー名 &#123;ユーザー名&#125; 権限 0 パスワード &#123;パスワード&#125; <br />5. 終了'
+    en: 'If the custom command needs to include the account number, password, and user password field for SSH connection,<br />Please use &#123;username&#125;, &#123;password&#125;, &#123;login_password&# 125; format, which will be replaced when executing the task. <br />For example, to change the password of a Cisco host, you generally need to configure five commands:<br />1. enable<br />2. &#123;login_password&#125;<br />3. configure terminal<br / >4. username &#123;username&#125; privilege 0 password &#123;password&#125; <br />5. end'
+
+  Params commands label:
+    zh: '自定义命令'
+    ja: 'カスタムコマンド'
+    en: 'Custom command'
diff --git a/apps/accounts/automations/push_account/host/aix/manifest.yml b/apps/accounts/automations/push_account/host/aix/manifest.yml
index 949d49758..ee62d7020 100644
--- a/apps/accounts/automations/push_account/host/aix/manifest.yml
+++ b/apps/accounts/automations/push_account/host/aix/manifest.yml
@@ -9,7 +9,7 @@ params:
     type: str
     label: 'Sudo'
     default: '/bin/whoami'
-    help_text: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
+    help_text: "{{ 'Params sudo help text' | trans }}"
 
   - name: shell
     type: str
@@ -18,19 +18,44 @@ params:
 
   - name: home
     type: str
-    label: '家目录'
+    label: "{{ 'Params home label' | trans }}"
     default: ''
-    help_text: '默认家目录 /home/系统用户名: /home/username'
+    help_text: "{{ 'Params home help text' | trans }}"
 
   - name: groups
     type: str
-    label: '用户组'
+    label: "{{ 'Params groups label' | trans }}"
     default: ''
-    help_text: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    help_text: "{{ 'Params groups help text' | trans }}"
 
 i18n:
   Aix account push:
-    zh: 使用 Ansible 模块 user 执行 Aix 账号推送 (DES)
-    ja: Ansible user モジュールを使用して Aix アカウントをプッシュする (DES)
-    en: Using Ansible module user to push account (DES)
+    zh: '使用 Ansible 模块 user 执行 Aix 账号推送 (DES)'
+    ja: 'Ansible user モジュールを使用して Aix アカウントをプッシュする (DES)'
+    en: 'Using Ansible module user to push account (DES)'
+
+  Params sudo help text:
+    zh: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
+    ja: 'コンマで区切って複数のコマンドを入力してください。例: /bin/whoami,/sbin/ifconfig'
+    en: 'Use commas to separate multiple commands, such as: /bin/whoami,/sbin/ifconfig'
+
+  Params home help text:
+    zh: '默认家目录 /home/{账号用户名}'
+    ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
+    en: 'Default home directory /home/{account username}'
+
+  Params groups help text:
+    zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
+    en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
+
+  Params home label:
+    zh: '家目录'
+    ja: 'ホームディレクトリ'
+    en: 'Home'
+
+  Params groups label:
+    zh: '用户组'
+    ja: 'グループ'
+    en: 'Groups'
 
diff --git a/apps/accounts/automations/push_account/host/posix/manifest.yml b/apps/accounts/automations/push_account/host/posix/manifest.yml
index 0c1d31845..32964f1d6 100644
--- a/apps/accounts/automations/push_account/host/posix/manifest.yml
+++ b/apps/accounts/automations/push_account/host/posix/manifest.yml
@@ -10,7 +10,7 @@ params:
     type: str
     label: 'Sudo'
     default: '/bin/whoami'
-    help_text: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
+    help_text: "{{ 'Params sudo help text' | trans }}"
 
   - name: shell
     type: str
@@ -20,18 +20,43 @@ params:
 
   - name: home
     type: str
-    label: '家目录'
+    label: "{{ 'Params home label' | trans }}"
     default: ''
-    help_text: '默认家目录 /home/系统用户名: /home/username'
+    help_text: "{{ 'Params home help text' | trans }}"
 
   - name: groups
     type: str
-    label: '用户组'
+    label: "{{ 'Params groups label' | trans }}"
     default: ''
-    help_text: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    help_text: "{{ 'Params groups help text' | trans }}"
 
 i18n:
   Posix account push:
-    zh: 使用 Ansible 模块 user 执行账号推送 (sha512)
-    ja: Ansible user モジュールを使用してアカウントをプッシュする (sha512)
-    en: Using Ansible module user to push account (sha512)
+    zh: '使用 Ansible 模块 user 执行账号推送 (sha512)'
+    ja: 'Ansible user モジュールを使用してアカウントをプッシュする (sha512)'
+    en: 'Using Ansible module user to push account (sha512)'
+
+  Params sudo help text:
+    zh: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
+    ja: 'コンマで区切って複数のコマンドを入力してください。例: /bin/whoami,/sbin/ifconfig'
+    en: 'Use commas to separate multiple commands, such as: /bin/whoami,/sbin/ifconfig'
+
+  Params home help text:
+    zh: '默认家目录 /home/{账号用户名}'
+    ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
+    en: 'Default home directory /home/{account username}'
+
+  Params groups help text:
+    zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
+    en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
+
+  Params home label:
+    zh: '家目录'
+    ja: 'ホームディレクトリ'
+    en: 'Home'
+
+  Params groups label:
+    zh: '用户组'
+    ja: 'グループ'
+    en: 'Groups'
\ No newline at end of file
diff --git a/apps/accounts/automations/push_account/host/windows/manifest.yml b/apps/accounts/automations/push_account/host/windows/manifest.yml
index 7866e3c13..dcbdfe7f8 100644
--- a/apps/accounts/automations/push_account/host/windows/manifest.yml
+++ b/apps/accounts/automations/push_account/host/windows/manifest.yml
@@ -10,10 +10,15 @@ params:
     type: str
     label: '用户组'
     default: 'Users,Remote Desktop Users'
-    help_text: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    help_text: "{{ 'Params groups help text' | trans }}"
 
 i18n:
   Windows account push:
-    zh: 使用 Ansible 模块 win_user 执行 Windows 账号推送
-    ja: Ansible win_user モジュールを使用して Windows アカウントをプッシュする
-    en: Using Ansible module win_user to push account
+    zh: '使用 Ansible 模块 win_user 执行 Windows 账号推送'
+    ja: 'Ansible win_user モジュールを使用して Windows アカウントをプッシュする'
+    en: 'Using Ansible module win_user to push account'
+
+  Params groups help text:
+    zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
+    en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
diff --git a/apps/accounts/automations/push_account/host/windows_rdp_verify/manifest.yml b/apps/accounts/automations/push_account/host/windows_rdp_verify/manifest.yml
index 449cf726f..d08a29ebc 100644
--- a/apps/accounts/automations/push_account/host/windows_rdp_verify/manifest.yml
+++ b/apps/accounts/automations/push_account/host/windows_rdp_verify/manifest.yml
@@ -10,10 +10,15 @@ params:
     type: str
     label: '用户组'
     default: 'Users,Remote Desktop Users'
-    help_text: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    help_text: "{{ 'Params groups help text' | trans }}"
 
 i18n:
   Windows account push rdp verify:
-    zh: 使用 Ansible 模块 win_user 执行 Windows 账号推送 RDP 协议测试最后的可连接性
-    ja: Ansibleモジュールwin_userがWindowsアカウントプッシュRDPプロトコルテストを実行する最後の接続性
-    en: Using the Ansible module win_user performs Windows account push RDP protocol testing for final connectivity
+    zh: '使用 Ansible 模块 win_user 执行 Windows 账号推送(最后使用 Python 模块 pyfreerdp 验证账号的可连接性)'
+    ja: 'Ansible モジュール win_user を使用して Windows アカウントのプッシュを実行します (最後に Python モジュール pyfreerdp を使用してアカウントの接続性を確認します)'
+    en: 'Use the Ansible module win_user to perform Windows account push (finally use the Python module pyfreerdp to verify the connectability of the account)'
+
+  Params groups help text:
+    zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
+    ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
+    en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
diff --git a/apps/accounts/automations/verify_account/custom/rdp/manifest.yml b/apps/accounts/automations/verify_account/custom/rdp/manifest.yml
index 79fcce96b..1d68afbac 100644
--- a/apps/accounts/automations/verify_account/custom/rdp/manifest.yml
+++ b/apps/accounts/automations/verify_account/custom/rdp/manifest.yml
@@ -8,6 +8,6 @@ method: verify_account
 
 i18n:
   Windows rdp account verify:
-    zh: 使用 Python 模块 pyfreerdp 验证账号
-    ja: Python モジュール pyfreerdp を使用してアカウントを検証する
-    en: Using Python module pyfreerdp to verify account
+    zh: '使用 Python 模块 pyfreerdp 验证账号'
+    ja: 'Python モジュール pyfreerdp を使用してアカウントを検証する'
+    en: 'Using Python module pyfreerdp to verify account'
diff --git a/apps/accounts/automations/verify_account/custom/ssh/manifest.yml b/apps/accounts/automations/verify_account/custom/ssh/manifest.yml
index 666266416..12d495d01 100644
--- a/apps/accounts/automations/verify_account/custom/ssh/manifest.yml
+++ b/apps/accounts/automations/verify_account/custom/ssh/manifest.yml
@@ -9,6 +9,6 @@ method: verify_account
 
 i18n:
   SSH account verify:
-    zh: 使用 Python 模块 paramiko 验证账号
-    ja: Python モジュール paramiko を使用してアカウントを検証する
-    en: Using Python module paramiko to verify account
+    zh: '使用 Python 模块 paramiko 验证账号'
+    ja: 'Python モジュール paramiko を使用してアカウントを検証する'
+    en: 'Using Python module paramiko to verify account'
diff --git a/apps/assets/automations/gather_facts/host/posix/manifest.yml b/apps/assets/automations/gather_facts/host/posix/manifest.yml
index a92c496e9..d1a833311 100644
--- a/apps/assets/automations/gather_facts/host/posix/manifest.yml
+++ b/apps/assets/automations/gather_facts/host/posix/manifest.yml
@@ -7,6 +7,6 @@ type:
 method: gather_facts
 i18n:
   Gather posix facts:
-    zh: 使用 Ansible 指令 gather_facts 从主机获取设备信息
-    en: Gather facts from asset using gather_facts
-    ja: gather_factsを使用してPosixから情報を収集する
+    zh: '使用 Ansible 指令 gather_facts 从主机获取设备信息'
+    en: 'Gather facts from asset using gather_facts'
+    ja: 'gather_factsを使用してPosixから情報を収集する'
diff --git a/apps/assets/automations/gather_facts/host/windows/manifest.yml b/apps/assets/automations/gather_facts/host/windows/manifest.yml
index 809208e10..7068f4d6e 100644
--- a/apps/assets/automations/gather_facts/host/windows/manifest.yml
+++ b/apps/assets/automations/gather_facts/host/windows/manifest.yml
@@ -7,6 +7,6 @@ type:
   - windows
 i18n:
   Gather facts windows:
-    zh: 使用 Ansible 指令 gather_facts 从 Windows 获取设备信息
-    en: Gather facts from Windows using gather_facts
-    ja: gather_factsを使用してWindowsから情報を収集する
+    zh: '使用 Ansible 指令 gather_facts 从 Windows 获取设备信息'
+    en: 'Gather facts from Windows using gather_facts'
+    ja: 'gather_factsを使用してWindowsから情報を収集する'
diff --git a/apps/assets/automations/methods.py b/apps/assets/automations/methods.py
index 8db474d7b..b0ad883fd 100644
--- a/apps/assets/automations/methods.py
+++ b/apps/assets/automations/methods.py
@@ -31,7 +31,7 @@ def generate_serializer(data):
     return create_serializer_class(serializer_name, params)
 
 
-def get_platform_automation_methods(path):
+def get_platform_automation_methods(path, lang=None):
     methods = []
     for root, dirs, files in os.walk(path, topdown=False):
         for name in files:
@@ -40,7 +40,7 @@ def get_platform_automation_methods(path):
                 continue
 
             with open(path, 'r', encoding='utf8') as f:
-                manifest = yaml_load_with_i18n(f)
+                manifest = yaml_load_with_i18n(f, lang)
                 check_platform_method(manifest, path)
                 manifest['dir'] = os.path.dirname(path)
                 manifest['params_serializer'] = generate_serializer(manifest)
diff --git a/apps/assets/automations/ping/custom/rdp/manifest.yml b/apps/assets/automations/ping/custom/rdp/manifest.yml
index 77b8a855e..ab5846100 100644
--- a/apps/assets/automations/ping/custom/rdp/manifest.yml
+++ b/apps/assets/automations/ping/custom/rdp/manifest.yml
@@ -8,6 +8,6 @@ type:
 method: ping
 i18n:
   Ping by pyfreerdp:
-    zh: 使用 Python 模块 pyfreerdp 测试主机可连接性
-    en: Ping by pyfreerdp module
-    ja: Pyfreerdpモジュールを使用してホストにPingする
+    zh: '使用 Python 模块 pyfreerdp 测试主机可连接性'
+    en: 'Ping by pyfreerdp module'
+    ja: 'Pyfreerdpモジュールを使用してホストにPingする'
diff --git a/apps/assets/automations/ping/custom/ssh/manifest.yml b/apps/assets/automations/ping/custom/ssh/manifest.yml
index d57a50a2e..95bb85d60 100644
--- a/apps/assets/automations/ping/custom/ssh/manifest.yml
+++ b/apps/assets/automations/ping/custom/ssh/manifest.yml
@@ -8,6 +8,6 @@ type:
 method: ping
 i18n:
   Ping by paramiko:
-    zh: 使用 Python 模块 paramiko 测试主机可连接性
-    en: Ping by paramiko module
-    ja: Paramikoモジュールを使用してホストにPingする
+    zh: '使用 Python 模块 paramiko 测试主机可连接性'
+    en: 'Ping by paramiko module'
+    ja: 'Paramikoモジュールを使用してホストにPingする'
diff --git a/apps/assets/const/types.py b/apps/assets/const/types.py
index 8654002b9..c33052c64 100644
--- a/apps/assets/const/types.py
+++ b/apps/assets/const/types.py
@@ -2,9 +2,11 @@ import json
 from collections import defaultdict
 from copy import deepcopy
 
+from django.conf import settings
 from django.utils.translation import gettext as _
 
 from common.db.models import ChoicesMixin
+from jumpserver.utils import get_current_request
 from .category import Category
 from .cloud import CloudTypes
 from .custom import CustomTypes
@@ -22,6 +24,8 @@ class AllTypes(ChoicesMixin):
         CloudTypes, WebTypes, CustomTypes, GPTTypes
     ]
     _category_constrains = {}
+    _automation_methods = None
+    _current_language = settings.LANGUAGE_CODE
 
     @classmethod
     def choices(cls):
@@ -61,9 +65,28 @@ class AllTypes(ChoicesMixin):
 
     @classmethod
     def get_automation_methods(cls):
-        from assets.automations import platform_automation_methods as asset_methods
-        from accounts.automations import platform_automation_methods as account_methods
-        return asset_methods + account_methods
+        from assets.automations import methods as asset
+        from accounts.automations import methods as account
+
+        automation_methods = \
+            asset.platform_automation_methods + \
+            account.platform_automation_methods
+
+        request = get_current_request()
+        if request is None:
+            return automation_methods
+
+        language = request.LANGUAGE_CODE
+        if cls._automation_methods is not None and language == cls._current_language:
+            automation_methods = cls._automation_methods
+        else:
+            automation_methods = \
+                asset.get_platform_automation_methods(asset.BASE_DIR, language) + \
+                account.get_platform_automation_methods(account.BASE_DIR, language)
+
+        cls._current_language = language
+        cls._automation_methods = automation_methods
+        return cls._automation_methods
 
     @classmethod
     def set_automation_methods(cls, category, tp_name, constraints):
diff --git a/apps/common/utils/yml.py b/apps/common/utils/yml.py
index 6db03ea63..c5221b948 100644
--- a/apps/common/utils/yml.py
+++ b/apps/common/utils/yml.py
@@ -5,20 +5,21 @@ from django.conf import settings
 from jinja2 import Environment
 
 
-def translate(key, i18n):
-    lang = settings.LANGUAGE_CODE[:2]
+def translate(key, i18n, lang):
+    lang = settings.LANGUAGE_CODE if lang is None else lang
+    lang = lang[:2]
     lang_data = i18n.get(key, {})
     return lang_data.get(lang, key)
 
 
-def yaml_load_with_i18n(stream):
+def yaml_load_with_i18n(stream, lang):
     ori_text = stream.read()
     stream = io.StringIO(ori_text)
     yaml_data = yaml.safe_load(stream)
     i18n = yaml_data.get('i18n', {})
 
     env = Environment()
-    env.filters['trans'] = lambda key: translate(key, i18n)
+    env.filters['trans'] = lambda key: translate(key, i18n, lang)
     template = env.from_string(ori_text)
     yaml_data = template.render()
     yaml_f = io.StringIO(yaml_data)