perf: 企业微信、钉钉工单审批增加拒绝功能 (#8208)

* perf: 工单直接审批增加拒绝功能

* feat: 翻译

* perf: 修改动作名词

* perf: 修改翻译
pull/8217/head
jiangweidong 2022-05-10 16:30:25 +08:00 committed by GitHub
parent 094446c548
commit b44fa64994
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 282 additions and 270 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-05 13:03+0800\n" "POT-Creation-Date: 2022-05-10 10:46+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -30,8 +30,8 @@ msgstr "Acls"
#: orgs/models.py:65 perms/models/base.py:83 rbac/models/role.py:29 #: orgs/models.py:65 perms/models/base.py:83 rbac/models/role.py:29
#: settings/models.py:29 settings/serializers/sms.py:6 #: settings/models.py:29 settings/serializers/sms.py:6
#: terminal/models/endpoint.py:10 terminal/models/endpoint.py:58 #: terminal/models/endpoint.py:10 terminal/models/endpoint.py:58
#: terminal/models/storage.py:24 terminal/models/task.py:16 #: terminal/models/storage.py:25 terminal/models/task.py:16
#: terminal/models/terminal.py:100 users/forms/profile.py:32 #: terminal/models/terminal.py:100 users/forms/profile.py:33
#: users/models/group.py:15 users/models/user.py:661 #: users/models/group.py:15 users/models/user.py:661
#: xpack/plugins/cloud/models.py:28 #: xpack/plugins/cloud/models.py:28
msgid "Name" msgid "Name"
@ -62,7 +62,7 @@ msgstr "アクティブ"
#: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:68 #: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:68
#: perms/models/base.py:93 rbac/models/role.py:37 settings/models.py:34 #: perms/models/base.py:93 rbac/models/role.py:37 settings/models.py:34
#: terminal/models/endpoint.py:20 terminal/models/endpoint.py:68 #: terminal/models/endpoint.py:20 terminal/models/endpoint.py:68
#: terminal/models/storage.py:27 terminal/models/terminal.py:114 #: terminal/models/storage.py:28 terminal/models/terminal.py:114
#: tickets/models/comment.py:24 tickets/models/ticket.py:154 #: tickets/models/comment.py:24 tickets/models/ticket.py:154
#: users/models/group.py:16 users/models/user.py:698 #: users/models/group.py:16 users/models/user.py:698
#: xpack/plugins/change_auth_plan/models/base.py:44 #: xpack/plugins/change_auth_plan/models/base.py:44
@ -153,11 +153,11 @@ msgstr "コンマ区切り文字列の形式。* はすべて一致すること
#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17 #: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:176 #: acls/serializers/login_asset_acl.py:51 assets/models/base.py:176
#: assets/models/gathered_user.py:15 audits/models.py:121 #: assets/models/gathered_user.py:15 audits/models.py:121
#: authentication/forms.py:15 authentication/forms.py:17 #: authentication/forms.py:25 authentication/forms.py:27
#: authentication/models.py:69 #: authentication/models.py:69
#: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_different_city.html:9
#: authentication/templates/authentication/_msg_oauth_bind.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9
#: ops/models/adhoc.py:159 users/forms/profile.py:31 users/models/user.py:659 #: ops/models/adhoc.py:159 users/forms/profile.py:32 users/models/user.py:659
#: users/templates/users/_msg_user_created.html:12 #: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34 #: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: xpack/plugins/change_auth_plan/models/asset.py:195
@ -305,7 +305,7 @@ msgstr "カテゴリ"
#: assets/models/cmd_filter.py:82 assets/models/user.py:246 #: assets/models/cmd_filter.py:82 assets/models/user.py:246
#: perms/models/application_permission.py:24 #: perms/models/application_permission.py:24
#: perms/serializers/application/user_permission.py:34 #: perms/serializers/application/user_permission.py:34
#: terminal/models/storage.py:56 terminal/models/storage.py:136 #: terminal/models/storage.py:57 terminal/models/storage.py:141
#: tickets/models/flow.py:56 tickets/models/ticket.py:131 #: tickets/models/flow.py:56 tickets/models/ticket.py:131
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:29 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:29
#: xpack/plugins/change_auth_plan/models/app.py:28 #: xpack/plugins/change_auth_plan/models/app.py:28
@ -757,9 +757,9 @@ msgid "Date verified"
msgstr "確認済みの日付" msgstr "確認済みの日付"
#: assets/models/base.py:177 audits/signal_handlers.py:48 #: assets/models/base.py:177 audits/signal_handlers.py:48
#: authentication/forms.py:22 #: authentication/forms.py:32
#: authentication/templates/authentication/login.html:181 #: authentication/templates/authentication/login.html:182
#: settings/serializers/auth/ldap.py:43 users/forms/profile.py:21 #: settings/serializers/auth/ldap.py:45 users/forms/profile.py:22
#: users/templates/users/_msg_user_created.html:13 #: users/templates/users/_msg_user_created.html:13
#: users/templates/users/user_password_verify.html:18 #: users/templates/users/user_password_verify.html:18
#: xpack/plugins/change_auth_plan/models/base.py:42 #: xpack/plugins/change_auth_plan/models/base.py:42
@ -1108,7 +1108,7 @@ msgid "Actions"
msgstr "アクション" msgstr "アクション"
#: assets/serializers/backup.py:31 ops/mixin.py:106 ops/mixin.py:147 #: assets/serializers/backup.py:31 ops/mixin.py:106 ops/mixin.py:147
#: settings/serializers/auth/ldap.py:62 #: settings/serializers/auth/ldap.py:64
#: xpack/plugins/change_auth_plan/serializers/base.py:42 #: xpack/plugins/change_auth_plan/serializers/base.py:42
msgid "Periodic perform" msgid "Periodic perform"
msgstr "定期的なパフォーマンス" msgstr "定期的なパフォーマンス"
@ -1118,11 +1118,11 @@ msgstr "定期的なパフォーマンス"
msgid "Currently only mail sending is supported" msgid "Currently only mail sending is supported"
msgstr "現在、メール送信のみがサポートされています" msgstr "現在、メール送信のみがサポートされています"
#: assets/serializers/base.py:36 #: assets/serializers/base.py:39
msgid "Key password" msgid "Key password"
msgstr "キーパスワード" msgstr "キーパスワード"
#: assets/serializers/base.py:49 #: assets/serializers/base.py:52
msgid "private key invalid or passphrase error" msgid "private key invalid or passphrase error"
msgstr "秘密鍵が無効またはpassphraseエラー" msgstr "秘密鍵が無効またはpassphraseエラー"
@ -1313,11 +1313,11 @@ msgstr "プラットフォームのプッシュシステムユーザーを開始
msgid "Hosts count: {}" msgid "Hosts count: {}"
msgstr "ホスト数: {}" msgstr "ホスト数: {}"
#: assets/tasks/push_system_user.py:259 assets/tasks/push_system_user.py:292 #: assets/tasks/push_system_user.py:263 assets/tasks/push_system_user.py:296
msgid "Push system users to assets: " msgid "Push system users to assets: "
msgstr "システムユーザーを資産にプッシュする:" msgstr "システムユーザーを資産にプッシュする:"
#: assets/tasks/push_system_user.py:271 #: assets/tasks/push_system_user.py:275
msgid "Push system users to asset: " msgid "Push system users to asset: "
msgstr "システムユーザーをアセットにプッシュする:" msgstr "システムユーザーをアセットにプッシュする:"
@ -1401,8 +1401,8 @@ msgstr "操作"
msgid "Filename" msgid "Filename"
msgstr "ファイル名" msgstr "ファイル名"
#: audits/models.py:43 audits/models.py:115 terminal/models/sharing.py:90 #: audits/models.py:43 audits/models.py:117 terminal/models/sharing.py:90
#: tickets/views/approve.py:93 #: tickets/views/approve.py:98
#: xpack/plugins/change_auth_plan/serializers/app.py:87 #: xpack/plugins/change_auth_plan/serializers/app.py:87
#: xpack/plugins/change_auth_plan/serializers/asset.py:197 #: xpack/plugins/change_auth_plan/serializers/asset.py:197
msgid "Success" msgid "Success"
@ -1418,7 +1418,6 @@ msgstr "ファイル転送ログ"
msgid "Create" msgid "Create"
msgstr "作成" msgstr "作成"
#: audits/models.py:56 rbac/tree.py:227 templates/_csv_import_export.html:18
#: audits/models.py:57 rbac/tree.py:226 #: audits/models.py:57 rbac/tree.py:226
msgid "View" msgid "View"
msgstr "表示" msgstr "表示"
@ -1486,8 +1485,8 @@ msgstr "ユーザーエージェント"
#: audits/models.py:126 #: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:64 users/models/user.py:684 #: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:121 #: users/serializers/profile.py:124
msgid "MFA" msgid "MFA"
msgstr "MFA" msgstr "MFA"
@ -1562,14 +1561,13 @@ msgstr "SSO"
msgid "Auth Token" msgid "Auth Token"
msgstr "認証トークン" msgstr "認証トークン"
#: audits/signal_handlers.py:71 authentication/notifications.py:73
#: audits/signal_handlers.py:51 authentication/notifications.py:73 #: audits/signal_handlers.py:51 authentication/notifications.py:73
#: authentication/views/login.py:164 authentication/views/wecom.py:181 #: authentication/views/login.py:164 authentication/views/wecom.py:182
#: notifications/backends/__init__.py:11 users/models/user.py:720 #: notifications/backends/__init__.py:11 users/models/user.py:720
msgid "WeCom" msgid "WeCom"
msgstr "企業微信" msgstr "企業微信"
#: audits/signal_handlers.py:72 authentication/views/dingtalk.py:183 #: audits/signal_handlers.py:52 authentication/views/dingtalk.py:183
#: authentication/views/login.py:170 notifications/backends/__init__.py:12 #: authentication/views/login.py:170 notifications/backends/__init__.py:12
#: users/models/user.py:721 #: users/models/user.py:721
msgid "DingTalk" msgid "DingTalk"
@ -1936,15 +1934,15 @@ msgstr "期間は許可されていません"
msgid "SSO auth closed" msgid "SSO auth closed"
msgstr "SSO authは閉鎖されました" msgstr "SSO authは閉鎖されました"
#: authentication/errors.py:300 authentication/mixins.py:372 #: authentication/errors.py:300 authentication/mixins.py:305
msgid "Your password is too simple, please change it for security" msgid "Your password is too simple, please change it for security"
msgstr "パスワードがシンプルすぎるので、セキュリティのために変更してください" msgstr "パスワードがシンプルすぎるので、セキュリティのために変更してください"
#: authentication/errors.py:309 authentication/mixins.py:379 #: authentication/errors.py:309 authentication/mixins.py:312
msgid "You should to change your password before login" msgid "You should to change your password before login"
msgstr "ログインする前にパスワードを変更する必要があります" msgstr "ログインする前にパスワードを変更する必要があります"
#: authentication/errors.py:318 authentication/mixins.py:386 #: authentication/errors.py:318 authentication/mixins.py:319
msgid "Your password has expired, please reset before logging in" msgid "Your password has expired, please reset before logging in"
msgstr "" msgstr ""
"パスワードの有効期限が切れました。ログインする前にリセットしてください。" "パスワードの有効期限が切れました。ログインする前にリセットしてください。"
@ -1965,23 +1963,23 @@ msgstr "SMSコードを入力してください"
msgid "Phone not set" msgid "Phone not set"
msgstr "電話が設定されていない" msgstr "電話が設定されていない"
#: authentication/forms.py:35 #: authentication/forms.py:45
msgid "{} days auto login" msgid "{} days auto login"
msgstr "{} 日自動ログイン" msgstr "{} 日自動ログイン"
#: authentication/forms.py:46 #: authentication/forms.py:56
msgid "MFA Code" msgid "MFA Code"
msgstr "MFAコード" msgstr "MFAコード"
#: authentication/forms.py:47 #: authentication/forms.py:57
msgid "MFA type" msgid "MFA type"
msgstr "MFAタイプ" msgstr "MFAタイプ"
#: authentication/forms.py:60 users/forms/profile.py:27 #: authentication/forms.py:70 users/forms/profile.py:28
msgid "MFA code" msgid "MFA code"
msgstr "MFAコード" msgstr "MFAコード"
#: authentication/forms.py:62 #: authentication/forms.py:72
msgid "Dynamic code" msgid "Dynamic code"
msgstr "動的コード" msgstr "動的コード"
@ -2037,11 +2035,11 @@ msgstr "電話番号を設定して有効にする"
msgid "Clear phone number to disable" msgid "Clear phone number to disable"
msgstr "無効にする電話番号をクリアする" msgstr "無効にする電話番号をクリアする"
#: authentication/mixins.py:322 #: authentication/mixins.py:255
msgid "The MFA type ({}) is not enabled" msgid "The MFA type ({}) is not enabled"
msgstr "MFAタイプ ({}) が有効になっていない" msgstr "MFAタイプ ({}) が有効になっていない"
#: authentication/mixins.py:362 #: authentication/mixins.py:295
msgid "Please change your password" msgid "Please change your password"
msgstr "パスワードを変更してください" msgstr "パスワードを変更してください"
@ -2134,13 +2132,13 @@ msgstr "表示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556 #: settings/serializers/security.py:39 users/models/user.py:556
#: users/serializers/profile.py:111 users/templates/users/mfa_setting.html:61 #: users/serializers/profile.py:114 users/templates/users/mfa_setting.html:61
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "無効化" msgstr "無効化"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: users/models/user.py:557 users/serializers/profile.py:112 #: users/models/user.py:557 users/serializers/profile.py:115
#: users/templates/users/mfa_setting.html:26 #: users/templates/users/mfa_setting.html:26
#: users/templates/users/mfa_setting.html:68 #: users/templates/users/mfa_setting.html:68
msgid "Enable" msgid "Enable"
@ -2161,7 +2159,7 @@ msgid "Play CAPTCHA as audio file"
msgstr "CAPTCHAをオーディオファイルとして再生する" msgstr "CAPTCHAをオーディオファイルとして再生する"
#: authentication/templates/authentication/_captcha_field.html:15 #: authentication/templates/authentication/_captcha_field.html:15
#: users/forms/profile.py:102 #: users/forms/profile.py:103
msgid "Captcha" msgid "Captcha"
msgstr "キャプチャ" msgstr "キャプチャ"
@ -2279,23 +2277,23 @@ msgstr ""
"公開鍵の更新が開始されなかった場合、アカウントにセキュリティ上の問題がある可" "公開鍵の更新が開始されなかった場合、アカウントにセキュリティ上の問題がある可"
"能性があります" "能性があります"
#: authentication/templates/authentication/login.html:173 #: authentication/templates/authentication/login.html:174
msgid "Welcome back, please enter username and password to login" msgid "Welcome back, please enter username and password to login"
msgstr "" msgstr ""
"おかえりなさい、ログインするためにユーザー名とパスワードを入力してください" "おかえりなさい、ログインするためにユーザー名とパスワードを入力してください"
#: authentication/templates/authentication/login.html:209 #: authentication/templates/authentication/login.html:210
#: users/templates/users/forgot_password.html:15 #: users/templates/users/forgot_password.html:15
#: users/templates/users/forgot_password.html:16 #: users/templates/users/forgot_password.html:16
msgid "Forgot password" msgid "Forgot password"
msgstr "パスワードを忘れた" msgstr "パスワードを忘れた"
#: authentication/templates/authentication/login.html:216 #: authentication/templates/authentication/login.html:217
#: templates/_header_bar.html:89 #: templates/_header_bar.html:89
msgid "Login" msgid "Login"
msgstr "ログイン" msgstr "ログイン"
#: authentication/templates/authentication/login.html:223 #: authentication/templates/authentication/login.html:224
msgid "More login options" msgid "More login options"
msgstr "その他のログインオプション" msgstr "その他のログインオプション"
@ -2501,6 +2499,34 @@ msgstr "%(name)s は正常に更新されました"
msgid "ugettext_lazy" msgid "ugettext_lazy"
msgstr "ugettext_lazy" msgstr "ugettext_lazy"
#: common/db/fields.py:80
msgid "Marshal dict data to char field"
msgstr "チャーフィールドへのマーシャルディクトデータ"
#: common/db/fields.py:84
msgid "Marshal dict data to text field"
msgstr "テキストフィールドへのマーシャルディクトデータ"
#: common/db/fields.py:96
msgid "Marshal list data to char field"
msgstr "元帥リストデータをチャーフィールドに"
#: common/db/fields.py:100
msgid "Marshal list data to text field"
msgstr "マーシャルリストデータをテキストフィールドに"
#: common/db/fields.py:104
msgid "Marshal data to char field"
msgstr "チャーフィールドへのマーシャルデータ"
#: common/db/fields.py:108
msgid "Marshal data to text field"
msgstr "テキストフィールドへのマーシャルデータ"
#: common/db/fields.py:150
msgid "Encrypt field using Secret Key"
msgstr "Secret Keyを使用したフィールドの暗号化"
#: common/db/models.py:112 #: common/db/models.py:112
msgid "Updated by" msgid "Updated by"
msgstr "によって更新" msgstr "によって更新"
@ -2546,34 +2572,6 @@ msgstr "このアクションでは、MFAの確認が必要です。"
msgid "Unexpect error occur" msgid "Unexpect error occur"
msgstr "予期しないエラーが発生します" msgstr "予期しないエラーが発生します"
#: common/fields/model.py:80
msgid "Marshal dict data to char field"
msgstr "チャーフィールドへのマーシャルディクトデータ"
#: common/fields/model.py:84
msgid "Marshal dict data to text field"
msgstr "テキストフィールドへのマーシャルディクトデータ"
#: common/fields/model.py:96
msgid "Marshal list data to char field"
msgstr "元帥リストデータをチャーフィールドに"
#: common/fields/model.py:100
msgid "Marshal list data to text field"
msgstr "マーシャルリストデータをテキストフィールドに"
#: common/fields/model.py:104
msgid "Marshal data to char field"
msgstr "チャーフィールドへのマーシャルデータ"
#: common/fields/model.py:108
msgid "Marshal data to text field"
msgstr "テキストフィールドへのマーシャルデータ"
#: common/fields/model.py:150
msgid "Encrypt field using Secret Key"
msgstr "Secret Keyを使用したフィールドの暗号化"
#: common/mixins/api/action.py:52 #: common/mixins/api/action.py:52
msgid "Request file format may be wrong" msgid "Request file format may be wrong"
msgstr "リクエストファイルの形式が間違っている可能性があります" msgstr "リクエストファイルの形式が間違っている可能性があります"
@ -2586,15 +2584,15 @@ msgstr "は破棄されます"
msgid "discard time" msgid "discard time"
msgstr "時間を捨てる" msgstr "時間を捨てる"
#: common/mixins/views.py:41 #: common/mixins/views.py:42
msgid "Export all" msgid "Export all"
msgstr "すべてエクスポート" msgstr "すべてエクスポート"
#: common/mixins/views.py:43 #: common/mixins/views.py:44
msgid "Export only selected items" msgid "Export only selected items"
msgstr "選択項目のみエクスポート" msgstr "選択項目のみエクスポート"
#: common/mixins/views.py:48 #: common/mixins/views.py:49
#, python-format #, python-format
msgid "Export filtered: %s" msgid "Export filtered: %s"
msgstr "検索のエクスポート: %s" msgstr "検索のエクスポート: %s"
@ -2711,7 +2709,7 @@ msgstr ""
msgid "Notifications" msgid "Notifications"
msgstr "通知" msgstr "通知"
#: notifications/backends/__init__.py:10 users/forms/profile.py:101 #: notifications/backends/__init__.py:10 users/forms/profile.py:102
#: users/models/user.py:663 #: users/models/user.py:663
msgid "Email" msgid "Email"
msgstr "メール" msgstr "メール"
@ -2733,12 +2731,12 @@ msgid "App ops"
msgstr "アプリ操作" msgstr "アプリ操作"
#: ops/mixin.py:29 ops/mixin.py:92 ops/mixin.py:162 #: ops/mixin.py:29 ops/mixin.py:92 ops/mixin.py:162
#: settings/serializers/auth/ldap.py:69 #: settings/serializers/auth/ldap.py:71
msgid "Cycle perform" msgid "Cycle perform"
msgstr "サイクル実行" msgstr "サイクル実行"
#: ops/mixin.py:33 ops/mixin.py:90 ops/mixin.py:109 ops/mixin.py:150 #: ops/mixin.py:33 ops/mixin.py:90 ops/mixin.py:109 ops/mixin.py:150
#: settings/serializers/auth/ldap.py:66 #: settings/serializers/auth/ldap.py:68
msgid "Regularly perform" msgid "Regularly perform"
msgstr "定期的に実行する" msgstr "定期的に実行する"
@ -2928,7 +2926,7 @@ msgstr "アプリ組織"
#: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:80 #: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:80
#: orgs/models.py:211 rbac/const.py:7 rbac/models/rolebinding.py:48 #: orgs/models.py:211 rbac/const.py:7 rbac/models/rolebinding.py:48
#: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:59 #: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:61
#: tickets/serializers/ticket/ticket.py:77 #: tickets/serializers/ticket/ticket.py:77
msgid "Organization" msgid "Organization"
msgstr "組織" msgstr "組織"
@ -3134,15 +3132,15 @@ msgstr "質問があったら、管理者に連絡して下さい"
msgid "My applications" msgid "My applications"
msgstr "私のアプリケーション" msgstr "私のアプリケーション"
#: rbac/api/role.py:33 #: rbac/api/role.py:34
msgid "Internal role, can't be destroy" msgid "Internal role, can't be destroy"
msgstr "内部の役割は、破壊することはできません" msgstr "内部の役割は、破壊することはできません"
#: rbac/api/role.py:37 #: rbac/api/role.py:38
msgid "The role has been bound to users, can't be destroy" msgid "The role has been bound to users, can't be destroy"
msgstr "ロールはユーザーにバインドされており、破壊することはできません" msgstr "ロールはユーザーにバインドされており、破壊することはできません"
#: rbac/api/role.py:44 #: rbac/api/role.py:45
msgid "Internal role, can't be update" msgid "Internal role, can't be update"
msgstr "内部ロール、更新できません" msgstr "内部ロール、更新できません"
@ -3245,7 +3243,7 @@ msgstr "組織の役割バインディング"
msgid "System role binding" msgid "System role binding"
msgstr "システムロールバインディング" msgstr "システムロールバインディング"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:127 #: rbac/serializers/permission.py:26 users/serializers/profile.py:130
msgid "Perms" msgid "Perms"
msgstr "パーマ" msgstr "パーマ"
@ -3507,40 +3505,40 @@ msgstr "ピン認証の有効化"
msgid "Enable FeiShu Auth" msgid "Enable FeiShu Auth"
msgstr "飛本認証の有効化" msgstr "飛本認証の有効化"
#: settings/serializers/auth/ldap.py:38 #: settings/serializers/auth/ldap.py:40
msgid "LDAP server" msgid "LDAP server"
msgstr "LDAPサーバー" msgstr "LDAPサーバー"
#: settings/serializers/auth/ldap.py:39 #: settings/serializers/auth/ldap.py:41
msgid "eg: ldap://localhost:389" msgid "eg: ldap://localhost:389"
msgstr "例: ldap://localhost:389" msgstr "例: ldap://localhost:389"
#: settings/serializers/auth/ldap.py:41 #: settings/serializers/auth/ldap.py:43
msgid "Bind DN" msgid "Bind DN"
msgstr "DN のバインド" msgstr "DN のバインド"
#: settings/serializers/auth/ldap.py:46 #: settings/serializers/auth/ldap.py:48
msgid "User OU" msgid "User OU"
msgstr "ユーザー OU" msgstr "ユーザー OU"
#: settings/serializers/auth/ldap.py:47 #: settings/serializers/auth/ldap.py:49
msgid "Use | split multi OUs" msgid "Use | split multi OUs"
msgstr "使用 | splitマルチ OU" msgstr "使用 | splitマルチ OU"
#: settings/serializers/auth/ldap.py:50 #: settings/serializers/auth/ldap.py:52
msgid "User search filter" msgid "User search filter"
msgstr "ユーザー検索フィルター" msgstr "ユーザー検索フィルター"
#: settings/serializers/auth/ldap.py:51 #: settings/serializers/auth/ldap.py:53
#, python-format #, python-format
msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)"
msgstr "選択は (cnまたはuidまたはsAMAccountName)=%(user)s)" msgstr "選択は (cnまたはuidまたはsAMAccountName)=%(user)s)"
#: settings/serializers/auth/ldap.py:54 #: settings/serializers/auth/ldap.py:56
msgid "User attr map" msgid "User attr map"
msgstr "ユーザー属性マッピング" msgstr "ユーザー属性マッピング"
#: settings/serializers/auth/ldap.py:55 #: settings/serializers/auth/ldap.py:57
msgid "" msgid ""
"User attr map present how to map LDAP user attr to jumpserver, username,name," "User attr map present how to map LDAP user attr to jumpserver, username,name,"
"email is jumpserver attr" "email is jumpserver attr"
@ -3548,15 +3546,15 @@ msgstr ""
"ユーザー属性マッピングは、LDAPのユーザー属性をjumpserverユーザーにマッピング" "ユーザー属性マッピングは、LDAPのユーザー属性をjumpserverユーザーにマッピング"
"する方法、username, name,emailはjumpserverのユーザーが必要とする属性です" "する方法、username, name,emailはjumpserverのユーザーが必要とする属性です"
#: settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap.py:75
msgid "Connect timeout" msgid "Connect timeout"
msgstr "接続タイムアウト" msgstr "接続タイムアウト"
#: settings/serializers/auth/ldap.py:75 #: settings/serializers/auth/ldap.py:77
msgid "Search paged size" msgid "Search paged size"
msgstr "ページサイズを検索" msgstr "ページサイズを検索"
#: settings/serializers/auth/ldap.py:77 #: settings/serializers/auth/ldap.py:79
msgid "Enable LDAP auth" msgid "Enable LDAP auth"
msgstr "LDAP認証の有効化" msgstr "LDAP認証の有効化"
@ -4420,7 +4418,7 @@ msgstr "ドキュメント"
msgid "Commercial support" msgid "Commercial support"
msgstr "商用サポート" msgstr "商用サポート"
#: templates/_header_bar.html:76 users/forms/profile.py:43 #: templates/_header_bar.html:76 users/forms/profile.py:44
msgid "Profile" msgid "Profile"
msgstr "プロフィール" msgstr "プロフィール"
@ -4883,15 +4881,15 @@ msgstr "スレッド"
msgid "Boot Time" msgid "Boot Time"
msgstr "ブート時間" msgstr "ブート時間"
#: terminal/models/storage.py:26 #: terminal/models/storage.py:27
msgid "Default storage" msgid "Default storage"
msgstr "デフォルトのストレージ" msgstr "デフォルトのストレージ"
#: terminal/models/storage.py:130 terminal/models/terminal.py:108 #: terminal/models/storage.py:135 terminal/models/terminal.py:108
msgid "Command storage" msgid "Command storage"
msgstr "コマンドストレージ" msgstr "コマンドストレージ"
#: terminal/models/storage.py:190 terminal/models/terminal.py:109 #: terminal/models/storage.py:195 terminal/models/terminal.py:109
msgid "Replay storage" msgid "Replay storage"
msgstr "再生ストレージ" msgstr "再生ストレージ"
@ -5016,18 +5014,14 @@ msgid "Whether to create an index by date"
msgstr "現在の日付に基づいてインデックスを動的に作成するかどうか" msgstr "現在の日付に基づいてインデックスを動的に作成するかどうか"
#: terminal/serializers/storage.py:163 #: terminal/serializers/storage.py:163
msgid "Index prefix"
msgstr "インデックス接頭辞"
#: terminal/serializers/storage.py:166
msgid "Index" msgid "Index"
msgstr "インデックス" msgstr "インデックス"
#: terminal/serializers/storage.py:168 #: terminal/serializers/storage.py:165
msgid "Doc type" msgid "Doc type"
msgstr "Docタイプ" msgstr "Docタイプ"
#: terminal/serializers/storage.py:170 #: terminal/serializers/storage.py:167
msgid "Ignore Certificate Verification" msgid "Ignore Certificate Verification"
msgstr "証明書の検証を無視する" msgstr "証明書の検証を無視する"
@ -5489,17 +5483,19 @@ msgid "Ticket information"
msgstr "作業指示情報" msgstr "作業指示情報"
#: tickets/templates/tickets/approve_check_password.html:19 #: tickets/templates/tickets/approve_check_password.html:19
#, fuzzy #: tickets/views/approve.py:25
#| msgid "Ticket flow approval rule"
msgid "Ticket approval" msgid "Ticket approval"
msgstr "作業指示の承認" msgstr "作業指示の承認"
#: tickets/templates/tickets/approve_check_password.html:35 #: tickets/templates/tickets/approve_check_password.html:35
#: tickets/views/approve.py:25
msgid "Ticket direct approval" msgid "Ticket direct approval"
msgstr "作業指示の直接承認" msgstr "作業指示の直接承認"
#: tickets/templates/tickets/approve_check_password.html:40 #: tickets/templates/tickets/approve_check_password.html:39
msgid "Ticket direct reject"
msgstr "作業指示の直接却下"
#: tickets/templates/tickets/approve_check_password.html:44
msgid "Go Login" msgid "Go Login"
msgstr "ログイン" msgstr "ログイン"
@ -5511,14 +5507,18 @@ msgstr ""
"なっています" "なっています"
#: tickets/views/approve.py:55 #: tickets/views/approve.py:55
msgid "Click the button to approve directly" msgid "Click the button below to approve or reject"
msgstr "ボタンをクリックすると、直接承認に成功します。" msgstr "下のボタンをクリックして同意または拒否。"
#: tickets/views/approve.py:57 #: tickets/views/approve.py:57
msgid "After successful authentication, this ticket can be approved directly" msgid "After successful authentication, this ticket can be approved directly"
msgstr "認証に成功した後、作業指示書は直接承認することができる。" msgstr "認証に成功した後、作業指示書は直接承認することができる。"
#: tickets/views/approve.py:84 #: tickets/views/approve.py:79
msgid "Illegal approval action"
msgstr "無効な承認アクション"
#: tickets/views/approve.py:89
msgid "This user is not authorized to approve this ticket" msgid "This user is not authorized to approve this ticket"
msgstr "このユーザーはこの作業指示を承認する権限がありません" msgstr "このユーザーはこの作業指示を承認する権限がありません"
@ -5558,7 +5558,7 @@ msgstr "MFAが有効化されていません"
msgid "MFA method not support" msgid "MFA method not support"
msgstr "MFAメソッドはサポートしていません" msgstr "MFAメソッドはサポートしていません"
#: users/forms/profile.py:49 #: users/forms/profile.py:50
msgid "" msgid ""
"When enabled, you will enter the MFA binding process the next time you log " "When enabled, you will enter the MFA binding process the next time you log "
"in. you can also directly bind in \"personal information -> quick " "in. you can also directly bind in \"personal information -> quick "
@ -5567,11 +5567,11 @@ msgstr ""
"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入りま" "有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入りま"
"す。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" "す。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!"
#: users/forms/profile.py:60 #: users/forms/profile.py:61
msgid "* Enable MFA to make the account more secure." msgid "* Enable MFA to make the account more secure."
msgstr "* アカウントをより安全にするためにMFAを有効にします。" msgstr "* アカウントをより安全にするためにMFAを有効にします。"
#: users/forms/profile.py:69 #: users/forms/profile.py:70
msgid "" msgid ""
"In order to protect you and your company, please keep your account, password " "In order to protect you and your company, please keep your account, password "
"and key sensitive information properly. (for example: setting complex " "and key sensitive information properly. (for example: setting complex "
@ -5580,56 +5580,56 @@ msgstr ""
"あなたとあなたの会社を保護するために、アカウント、パスワード、キーの機密情報" "あなたとあなたの会社を保護するために、アカウント、パスワード、キーの機密情報"
"を適切に保管してください。(例: 複雑なパスワードの設定、MFAの有効化)" "を適切に保管してください。(例: 複雑なパスワードの設定、MFAの有効化)"
#: users/forms/profile.py:76 #: users/forms/profile.py:77
msgid "Finish" msgid "Finish"
msgstr "仕上げ" msgstr "仕上げ"
#: users/forms/profile.py:83 #: users/forms/profile.py:84
msgid "New password" msgid "New password"
msgstr "新しいパスワード" msgstr "新しいパスワード"
#: users/forms/profile.py:88 #: users/forms/profile.py:89
msgid "Confirm password" msgid "Confirm password"
msgstr "パスワードの確認" msgstr "パスワードの確認"
#: users/forms/profile.py:96 #: users/forms/profile.py:97
msgid "Password does not match" msgid "Password does not match"
msgstr "パスワードが一致しない" msgstr "パスワードが一致しない"
#: users/forms/profile.py:108 #: users/forms/profile.py:109
msgid "Old password" msgid "Old password"
msgstr "古いパスワード" msgstr "古いパスワード"
#: users/forms/profile.py:118 #: users/forms/profile.py:119
msgid "Old password error" msgid "Old password error"
msgstr "古いパスワードエラー" msgstr "古いパスワードエラー"
#: users/forms/profile.py:128 #: users/forms/profile.py:129
msgid "Automatically configure and download the SSH key" msgid "Automatically configure and download the SSH key"
msgstr "SSHキーの自動設定とダウンロード" msgstr "SSHキーの自動設定とダウンロード"
#: users/forms/profile.py:130 #: users/forms/profile.py:131
msgid "ssh public key" msgid "ssh public key"
msgstr "ssh公開キー" msgstr "ssh公開キー"
#: users/forms/profile.py:131 #: users/forms/profile.py:132
msgid "ssh-rsa AAAA..." msgid "ssh-rsa AAAA..."
msgstr "ssh-rsa AAAA.." msgstr "ssh-rsa AAAA.."
#: users/forms/profile.py:132 #: users/forms/profile.py:133
msgid "Paste your id_rsa.pub here." msgid "Paste your id_rsa.pub here."
msgstr "ここにid_rsa.pubを貼り付けます。" msgstr "ここにid_rsa.pubを貼り付けます。"
#: users/forms/profile.py:145 #: users/forms/profile.py:146
msgid "Public key should not be the same as your old one." msgid "Public key should not be the same as your old one."
msgstr "公開鍵は古いものと同じであってはなりません。" msgstr "公開鍵は古いものと同じであってはなりません。"
#: users/forms/profile.py:149 users/serializers/profile.py:95 #: users/forms/profile.py:150 users/serializers/profile.py:98
#: users/serializers/profile.py:178 users/serializers/profile.py:205 #: users/serializers/profile.py:181 users/serializers/profile.py:208
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "有効なssh公開鍵ではありません" msgstr "有効なssh公開鍵ではありません"
#: users/forms/profile.py:160 users/models/user.py:692 #: users/forms/profile.py:161 users/models/user.py:692
msgid "Public key" msgid "Public key"
msgstr "公開キー" msgstr "公開キー"
@ -5724,23 +5724,23 @@ msgstr "SSHキーのリセット"
msgid "Reset MFA" msgid "Reset MFA"
msgstr "MFAのリセット" msgstr "MFAのリセット"
#: users/serializers/profile.py:29 #: users/serializers/profile.py:30
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "古いパスワードが正しくありません" msgstr "古いパスワードが正しくありません"
#: users/serializers/profile.py:36 users/serializers/profile.py:192 #: users/serializers/profile.py:37 users/serializers/profile.py:195
msgid "Password does not match security rules" msgid "Password does not match security rules"
msgstr "パスワードがセキュリティルールと一致しない" msgstr "パスワードがセキュリティルールと一致しない"
#: users/serializers/profile.py:40 #: users/serializers/profile.py:41
msgid "The new password cannot be the last {} passwords" msgid "The new password cannot be the last {} passwords"
msgstr "新しいパスワードを最後の {} 個のパスワードにすることはできません" msgstr "新しいパスワードを最後の {} 個のパスワードにすることはできません"
#: users/serializers/profile.py:46 users/serializers/profile.py:66 #: users/serializers/profile.py:49 users/serializers/profile.py:69
msgid "The newly set password is inconsistent" msgid "The newly set password is inconsistent"
msgstr "新しく設定されたパスワードが一致しない" msgstr "新しく設定されたパスワードが一致しない"
#: users/serializers/profile.py:144 users/serializers/user.py:140 #: users/serializers/profile.py:147 users/serializers/user.py:140
msgid "Is first login" msgid "Is first login"
msgstr "最初のログインです" msgstr "最初のログインです"
@ -6773,11 +6773,11 @@ msgstr "ログアウトページのロゴ"
msgid "Interface setting" msgid "Interface setting"
msgstr "インターフェイスの設定" msgstr "インターフェイスの設定"
#: xpack/plugins/license/api.py:43 #: xpack/plugins/license/api.py:50
msgid "License import successfully" msgid "License import successfully"
msgstr "ライセンスのインポートに成功" msgstr "ライセンスのインポートに成功"
#: xpack/plugins/license/api.py:44 #: xpack/plugins/license/api.py:51
msgid "License is invalid" msgid "License is invalid"
msgstr "ライセンスが無効です" msgstr "ライセンスが無効です"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-05 13:03+0800\n" "POT-Creation-Date: 2022-05-10 10:45+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -29,8 +29,8 @@ msgstr "访问控制"
#: orgs/models.py:65 perms/models/base.py:83 rbac/models/role.py:29 #: orgs/models.py:65 perms/models/base.py:83 rbac/models/role.py:29
#: settings/models.py:29 settings/serializers/sms.py:6 #: settings/models.py:29 settings/serializers/sms.py:6
#: terminal/models/endpoint.py:10 terminal/models/endpoint.py:58 #: terminal/models/endpoint.py:10 terminal/models/endpoint.py:58
#: terminal/models/storage.py:24 terminal/models/task.py:16 #: terminal/models/storage.py:25 terminal/models/task.py:16
#: terminal/models/terminal.py:100 users/forms/profile.py:32 #: terminal/models/terminal.py:100 users/forms/profile.py:33
#: users/models/group.py:15 users/models/user.py:661 #: users/models/group.py:15 users/models/user.py:661
#: xpack/plugins/cloud/models.py:28 #: xpack/plugins/cloud/models.py:28
msgid "Name" msgid "Name"
@ -61,7 +61,7 @@ msgstr "激活中"
#: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:68 #: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:68
#: perms/models/base.py:93 rbac/models/role.py:37 settings/models.py:34 #: perms/models/base.py:93 rbac/models/role.py:37 settings/models.py:34
#: terminal/models/endpoint.py:20 terminal/models/endpoint.py:68 #: terminal/models/endpoint.py:20 terminal/models/endpoint.py:68
#: terminal/models/storage.py:27 terminal/models/terminal.py:114 #: terminal/models/storage.py:28 terminal/models/terminal.py:114
#: tickets/models/comment.py:24 tickets/models/ticket.py:154 #: tickets/models/comment.py:24 tickets/models/ticket.py:154
#: users/models/group.py:16 users/models/user.py:698 #: users/models/group.py:16 users/models/user.py:698
#: xpack/plugins/change_auth_plan/models/base.py:44 #: xpack/plugins/change_auth_plan/models/base.py:44
@ -152,11 +152,11 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. "
#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17 #: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:176 #: acls/serializers/login_asset_acl.py:51 assets/models/base.py:176
#: assets/models/gathered_user.py:15 audits/models.py:121 #: assets/models/gathered_user.py:15 audits/models.py:121
#: authentication/forms.py:15 authentication/forms.py:17 #: authentication/forms.py:25 authentication/forms.py:27
#: authentication/models.py:69 #: authentication/models.py:69
#: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_different_city.html:9
#: authentication/templates/authentication/_msg_oauth_bind.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9
#: ops/models/adhoc.py:159 users/forms/profile.py:31 users/models/user.py:659 #: ops/models/adhoc.py:159 users/forms/profile.py:32 users/models/user.py:659
#: users/templates/users/_msg_user_created.html:12 #: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34 #: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: xpack/plugins/change_auth_plan/models/asset.py:195
@ -300,7 +300,7 @@ msgstr "类别"
#: assets/models/cmd_filter.py:82 assets/models/user.py:246 #: assets/models/cmd_filter.py:82 assets/models/user.py:246
#: perms/models/application_permission.py:24 #: perms/models/application_permission.py:24
#: perms/serializers/application/user_permission.py:34 #: perms/serializers/application/user_permission.py:34
#: terminal/models/storage.py:56 terminal/models/storage.py:136 #: terminal/models/storage.py:57 terminal/models/storage.py:141
#: tickets/models/flow.py:56 tickets/models/ticket.py:131 #: tickets/models/flow.py:56 tickets/models/ticket.py:131
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:29 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:29
#: xpack/plugins/change_auth_plan/models/app.py:28 #: xpack/plugins/change_auth_plan/models/app.py:28
@ -752,9 +752,9 @@ msgid "Date verified"
msgstr "校验日期" msgstr "校验日期"
#: assets/models/base.py:177 audits/signal_handlers.py:48 #: assets/models/base.py:177 audits/signal_handlers.py:48
#: authentication/forms.py:22 #: authentication/forms.py:32
#: authentication/templates/authentication/login.html:181 #: authentication/templates/authentication/login.html:182
#: settings/serializers/auth/ldap.py:43 users/forms/profile.py:21 #: settings/serializers/auth/ldap.py:45 users/forms/profile.py:22
#: users/templates/users/_msg_user_created.html:13 #: users/templates/users/_msg_user_created.html:13
#: users/templates/users/user_password_verify.html:18 #: users/templates/users/user_password_verify.html:18
#: xpack/plugins/change_auth_plan/models/base.py:42 #: xpack/plugins/change_auth_plan/models/base.py:42
@ -1100,7 +1100,7 @@ msgid "Actions"
msgstr "动作" msgstr "动作"
#: assets/serializers/backup.py:31 ops/mixin.py:106 ops/mixin.py:147 #: assets/serializers/backup.py:31 ops/mixin.py:106 ops/mixin.py:147
#: settings/serializers/auth/ldap.py:62 #: settings/serializers/auth/ldap.py:64
#: xpack/plugins/change_auth_plan/serializers/base.py:42 #: xpack/plugins/change_auth_plan/serializers/base.py:42
msgid "Periodic perform" msgid "Periodic perform"
msgstr "定时执行" msgstr "定时执行"
@ -1110,11 +1110,11 @@ msgstr "定时执行"
msgid "Currently only mail sending is supported" msgid "Currently only mail sending is supported"
msgstr "当前只支持邮件发送" msgstr "当前只支持邮件发送"
#: assets/serializers/base.py:36 #: assets/serializers/base.py:39
msgid "Key password" msgid "Key password"
msgstr "密钥密码" msgstr "密钥密码"
#: assets/serializers/base.py:49 #: assets/serializers/base.py:52
msgid "private key invalid or passphrase error" msgid "private key invalid or passphrase error"
msgstr "密钥不合法或密钥密码错误" msgstr "密钥不合法或密钥密码错误"
@ -1301,11 +1301,11 @@ msgstr "推送系统用户到平台: [{}]"
msgid "Hosts count: {}" msgid "Hosts count: {}"
msgstr "主机数量: {}" msgstr "主机数量: {}"
#: assets/tasks/push_system_user.py:259 assets/tasks/push_system_user.py:292 #: assets/tasks/push_system_user.py:263 assets/tasks/push_system_user.py:296
msgid "Push system users to assets: " msgid "Push system users to assets: "
msgstr "推送系统用户到入资产: " msgstr "推送系统用户到入资产: "
#: assets/tasks/push_system_user.py:271 #: assets/tasks/push_system_user.py:275
msgid "Push system users to asset: " msgid "Push system users to asset: "
msgstr "推送系统用户到入资产: " msgstr "推送系统用户到入资产: "
@ -1389,8 +1389,8 @@ msgstr "操作"
msgid "Filename" msgid "Filename"
msgstr "文件名" msgstr "文件名"
#: audits/models.py:43 audits/models.py:115 terminal/models/sharing.py:90 #: audits/models.py:43 audits/models.py:117 terminal/models/sharing.py:90
#: tickets/views/approve.py:93 #: tickets/views/approve.py:98
#: xpack/plugins/change_auth_plan/serializers/app.py:87 #: xpack/plugins/change_auth_plan/serializers/app.py:87
#: xpack/plugins/change_auth_plan/serializers/asset.py:197 #: xpack/plugins/change_auth_plan/serializers/asset.py:197
msgid "Success" msgid "Success"
@ -1406,7 +1406,11 @@ msgstr "文件管理"
msgid "Create" msgid "Create"
msgstr "创建" msgstr "创建"
#: audits/models.py:56 rbac/tree.py:227 templates/_csv_import_export.html:18 #: audits/models.py:57 rbac/tree.py:226
msgid "View"
msgstr "查看"
#: audits/models.py:58 rbac/tree.py:227 templates/_csv_import_export.html:18
#: templates/_csv_update_modal.html:6 #: templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -1469,8 +1473,8 @@ msgstr "用户代理"
#: audits/models.py:126 #: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:64 users/models/user.py:684 #: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:121 #: users/serializers/profile.py:124
msgid "MFA" msgid "MFA"
msgstr "MFA" msgstr "MFA"
@ -1545,13 +1549,13 @@ msgstr "SSO"
msgid "Auth Token" msgid "Auth Token"
msgstr "认证令牌" msgstr "认证令牌"
#: audits/signal_handlers.py:71 authentication/notifications.py:73 #: audits/signal_handlers.py:51 authentication/notifications.py:73
#: authentication/views/login.py:164 authentication/views/wecom.py:182 #: authentication/views/login.py:164 authentication/views/wecom.py:182
#: notifications/backends/__init__.py:11 users/models/user.py:720 #: notifications/backends/__init__.py:11 users/models/user.py:720
msgid "WeCom" msgid "WeCom"
msgstr "企业微信" msgstr "企业微信"
#: audits/signal_handlers.py:72 authentication/views/dingtalk.py:183 #: audits/signal_handlers.py:52 authentication/views/dingtalk.py:183
#: authentication/views/login.py:170 notifications/backends/__init__.py:12 #: authentication/views/login.py:170 notifications/backends/__init__.py:12
#: users/models/user.py:721 #: users/models/user.py:721
msgid "DingTalk" msgid "DingTalk"
@ -1910,15 +1914,15 @@ msgstr "该 时间段 不被允许登录"
msgid "SSO auth closed" msgid "SSO auth closed"
msgstr "SSO 认证关闭了" msgstr "SSO 认证关闭了"
#: authentication/errors.py:300 authentication/mixins.py:372 #: authentication/errors.py:300 authentication/mixins.py:305
msgid "Your password is too simple, please change it for security" msgid "Your password is too simple, please change it for security"
msgstr "你的密码过于简单,为了安全,请修改" msgstr "你的密码过于简单,为了安全,请修改"
#: authentication/errors.py:309 authentication/mixins.py:379 #: authentication/errors.py:309 authentication/mixins.py:312
msgid "You should to change your password before login" msgid "You should to change your password before login"
msgstr "登录完成前,请先修改密码" msgstr "登录完成前,请先修改密码"
#: authentication/errors.py:318 authentication/mixins.py:386 #: authentication/errors.py:318 authentication/mixins.py:319
msgid "Your password has expired, please reset before logging in" msgid "Your password has expired, please reset before logging in"
msgstr "您的密码已过期,先修改再登录" msgstr "您的密码已过期,先修改再登录"
@ -1938,23 +1942,23 @@ msgstr "请输入短信验证码"
msgid "Phone not set" msgid "Phone not set"
msgstr "手机号没有设置" msgstr "手机号没有设置"
#: authentication/forms.py:35 #: authentication/forms.py:45
msgid "{} days auto login" msgid "{} days auto login"
msgstr "{} 天内自动登录" msgstr "{} 天内自动登录"
#: authentication/forms.py:46 #: authentication/forms.py:56
msgid "MFA Code" msgid "MFA Code"
msgstr "MFA 验证码" msgstr "MFA 验证码"
#: authentication/forms.py:47 #: authentication/forms.py:57
msgid "MFA type" msgid "MFA type"
msgstr "MFA 类型" msgstr "MFA 类型"
#: authentication/forms.py:60 users/forms/profile.py:27 #: authentication/forms.py:70 users/forms/profile.py:28
msgid "MFA code" msgid "MFA code"
msgstr "MFA 验证码" msgstr "MFA 验证码"
#: authentication/forms.py:62 #: authentication/forms.py:72
msgid "Dynamic code" msgid "Dynamic code"
msgstr "动态码" msgstr "动态码"
@ -2010,11 +2014,11 @@ msgstr "设置手机号码启用"
msgid "Clear phone number to disable" msgid "Clear phone number to disable"
msgstr "清空手机号码禁用" msgstr "清空手机号码禁用"
#: authentication/mixins.py:322 #: authentication/mixins.py:255
msgid "The MFA type ({}) is not enabled" msgid "The MFA type ({}) is not enabled"
msgstr "该 MFA ({}) 方式没有启用" msgstr "该 MFA ({}) 方式没有启用"
#: authentication/mixins.py:362 #: authentication/mixins.py:295
msgid "Please change your password" msgid "Please change your password"
msgstr "请修改密码" msgstr "请修改密码"
@ -2107,13 +2111,13 @@ msgstr "显示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556 #: settings/serializers/security.py:39 users/models/user.py:556
#: users/serializers/profile.py:111 users/templates/users/mfa_setting.html:61 #: users/serializers/profile.py:114 users/templates/users/mfa_setting.html:61
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "禁用" msgstr "禁用"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: users/models/user.py:557 users/serializers/profile.py:112 #: users/models/user.py:557 users/serializers/profile.py:115
#: users/templates/users/mfa_setting.html:26 #: users/templates/users/mfa_setting.html:26
#: users/templates/users/mfa_setting.html:68 #: users/templates/users/mfa_setting.html:68
msgid "Enable" msgid "Enable"
@ -2134,7 +2138,7 @@ msgid "Play CAPTCHA as audio file"
msgstr "语言播放验证码" msgstr "语言播放验证码"
#: authentication/templates/authentication/_captcha_field.html:15 #: authentication/templates/authentication/_captcha_field.html:15
#: users/forms/profile.py:102 #: users/forms/profile.py:103
msgid "Captcha" msgid "Captcha"
msgstr "验证码" msgstr "验证码"
@ -2244,22 +2248,22 @@ msgid ""
"security issues" "security issues"
msgstr "如果这次公钥更新不是由你发起的,那么你的账号可能存在安全问题" msgstr "如果这次公钥更新不是由你发起的,那么你的账号可能存在安全问题"
#: authentication/templates/authentication/login.html:173 #: authentication/templates/authentication/login.html:174
msgid "Welcome back, please enter username and password to login" msgid "Welcome back, please enter username and password to login"
msgstr "欢迎回来,请输入用户名和密码登录" msgstr "欢迎回来,请输入用户名和密码登录"
#: authentication/templates/authentication/login.html:209 #: authentication/templates/authentication/login.html:210
#: users/templates/users/forgot_password.html:15 #: users/templates/users/forgot_password.html:15
#: users/templates/users/forgot_password.html:16 #: users/templates/users/forgot_password.html:16
msgid "Forgot password" msgid "Forgot password"
msgstr "忘记密码" msgstr "忘记密码"
#: authentication/templates/authentication/login.html:216 #: authentication/templates/authentication/login.html:217
#: templates/_header_bar.html:89 #: templates/_header_bar.html:89
msgid "Login" msgid "Login"
msgstr "登录" msgstr "登录"
#: authentication/templates/authentication/login.html:223 #: authentication/templates/authentication/login.html:224
msgid "More login options" msgid "More login options"
msgstr "更多登录方式" msgstr "更多登录方式"
@ -2465,6 +2469,34 @@ msgstr "%(name)s 更新成功"
msgid "ugettext_lazy" msgid "ugettext_lazy"
msgstr "ugettext_lazy" msgstr "ugettext_lazy"
#: common/db/fields.py:80
msgid "Marshal dict data to char field"
msgstr "编码 dict 为 char"
#: common/db/fields.py:84
msgid "Marshal dict data to text field"
msgstr "编码 dict 为 text"
#: common/db/fields.py:96
msgid "Marshal list data to char field"
msgstr "编码 list 为 char"
#: common/db/fields.py:100
msgid "Marshal list data to text field"
msgstr "编码 list 为 text"
#: common/db/fields.py:104
msgid "Marshal data to char field"
msgstr "编码数据为 char"
#: common/db/fields.py:108
msgid "Marshal data to text field"
msgstr "编码数据为 text"
#: common/db/fields.py:150
msgid "Encrypt field using Secret Key"
msgstr "加密的字段"
#: common/db/models.py:112 #: common/db/models.py:112
msgid "Updated by" msgid "Updated by"
msgstr "更新人" msgstr "更新人"
@ -2510,34 +2542,6 @@ msgstr "这个操作需要验证 MFA"
msgid "Unexpect error occur" msgid "Unexpect error occur"
msgstr "发生意外错误" msgstr "发生意外错误"
#: common/fields/model.py:80
msgid "Marshal dict data to char field"
msgstr "编码 dict 为 char"
#: common/fields/model.py:84
msgid "Marshal dict data to text field"
msgstr "编码 dict 为 text"
#: common/fields/model.py:96
msgid "Marshal list data to char field"
msgstr "编码 list 为 char"
#: common/fields/model.py:100
msgid "Marshal list data to text field"
msgstr "编码 list 为 text"
#: common/fields/model.py:104
msgid "Marshal data to char field"
msgstr "编码数据为 char"
#: common/fields/model.py:108
msgid "Marshal data to text field"
msgstr "编码数据为 text"
#: common/fields/model.py:150
msgid "Encrypt field using Secret Key"
msgstr "加密的字段"
#: common/mixins/api/action.py:52 #: common/mixins/api/action.py:52
msgid "Request file format may be wrong" msgid "Request file format may be wrong"
msgstr "上传的文件格式错误 或 其它类型资源的文件" msgstr "上传的文件格式错误 或 其它类型资源的文件"
@ -2550,15 +2554,15 @@ msgstr "忽略的"
msgid "discard time" msgid "discard time"
msgstr "忽略时间" msgstr "忽略时间"
#: common/mixins/views.py:41 #: common/mixins/views.py:42
msgid "Export all" msgid "Export all"
msgstr "导出所有" msgstr "导出所有"
#: common/mixins/views.py:43 #: common/mixins/views.py:44
msgid "Export only selected items" msgid "Export only selected items"
msgstr "仅导出选择项" msgstr "仅导出选择项"
#: common/mixins/views.py:48 #: common/mixins/views.py:49
#, python-format #, python-format
msgid "Export filtered: %s" msgid "Export filtered: %s"
msgstr "导出搜素: %s" msgstr "导出搜素: %s"
@ -2670,7 +2674,7 @@ msgstr ""
msgid "Notifications" msgid "Notifications"
msgstr "通知" msgstr "通知"
#: notifications/backends/__init__.py:10 users/forms/profile.py:101 #: notifications/backends/__init__.py:10 users/forms/profile.py:102
#: users/models/user.py:663 #: users/models/user.py:663
msgid "Email" msgid "Email"
msgstr "邮件" msgstr "邮件"
@ -2692,12 +2696,12 @@ msgid "App ops"
msgstr "作业中心" msgstr "作业中心"
#: ops/mixin.py:29 ops/mixin.py:92 ops/mixin.py:162 #: ops/mixin.py:29 ops/mixin.py:92 ops/mixin.py:162
#: settings/serializers/auth/ldap.py:69 #: settings/serializers/auth/ldap.py:71
msgid "Cycle perform" msgid "Cycle perform"
msgstr "周期执行" msgstr "周期执行"
#: ops/mixin.py:33 ops/mixin.py:90 ops/mixin.py:109 ops/mixin.py:150 #: ops/mixin.py:33 ops/mixin.py:90 ops/mixin.py:109 ops/mixin.py:150
#: settings/serializers/auth/ldap.py:66 #: settings/serializers/auth/ldap.py:68
msgid "Regularly perform" msgid "Regularly perform"
msgstr "定期执行" msgstr "定期执行"
@ -2886,7 +2890,7 @@ msgstr "组织管理"
#: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:80 #: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:80
#: orgs/models.py:211 rbac/const.py:7 rbac/models/rolebinding.py:48 #: orgs/models.py:211 rbac/const.py:7 rbac/models/rolebinding.py:48
#: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:59 #: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:61
#: tickets/serializers/ticket/ticket.py:77 #: tickets/serializers/ticket/ticket.py:77
msgid "Organization" msgid "Organization"
msgstr "组织" msgstr "组织"
@ -3090,15 +3094,15 @@ msgstr "如果有疑问或需求,请联系系统管理员"
msgid "My applications" msgid "My applications"
msgstr "我的应用" msgstr "我的应用"
#: rbac/api/role.py:33 #: rbac/api/role.py:34
msgid "Internal role, can't be destroy" msgid "Internal role, can't be destroy"
msgstr "内部角色,不能删除" msgstr "内部角色,不能删除"
#: rbac/api/role.py:37 #: rbac/api/role.py:38
msgid "The role has been bound to users, can't be destroy" msgid "The role has been bound to users, can't be destroy"
msgstr "角色已绑定用户,不能删除" msgstr "角色已绑定用户,不能删除"
#: rbac/api/role.py:44 #: rbac/api/role.py:45
msgid "Internal role, can't be update" msgid "Internal role, can't be update"
msgstr "内部角色,不能更新" msgstr "内部角色,不能更新"
@ -3200,7 +3204,7 @@ msgstr "组织角色绑定"
msgid "System role binding" msgid "System role binding"
msgstr "系统角色绑定" msgstr "系统角色绑定"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:127 #: rbac/serializers/permission.py:26 users/serializers/profile.py:130
msgid "Perms" msgid "Perms"
msgstr "权限" msgstr "权限"
@ -3304,10 +3308,6 @@ msgstr "查看授权树"
msgid "Execute batch command" msgid "Execute batch command"
msgstr "执行批量命令" msgstr "执行批量命令"
#: rbac/tree.py:226
msgid "View"
msgstr "查看"
#: settings/api/alibaba_sms.py:31 settings/api/tencent_sms.py:35 #: settings/api/alibaba_sms.py:31 settings/api/tencent_sms.py:35
msgid "test_phone is required" msgid "test_phone is required"
msgstr "测试手机号 该字段是必填项。" msgstr "测试手机号 该字段是必填项。"
@ -3466,40 +3466,40 @@ msgstr "启用钉钉认证"
msgid "Enable FeiShu Auth" msgid "Enable FeiShu Auth"
msgstr "启用飞书认证" msgstr "启用飞书认证"
#: settings/serializers/auth/ldap.py:38 #: settings/serializers/auth/ldap.py:40
msgid "LDAP server" msgid "LDAP server"
msgstr "LDAP 地址" msgstr "LDAP 地址"
#: settings/serializers/auth/ldap.py:39 #: settings/serializers/auth/ldap.py:41
msgid "eg: ldap://localhost:389" msgid "eg: ldap://localhost:389"
msgstr "如: ldap://localhost:389" msgstr "如: ldap://localhost:389"
#: settings/serializers/auth/ldap.py:41 #: settings/serializers/auth/ldap.py:43
msgid "Bind DN" msgid "Bind DN"
msgstr "绑定 DN" msgstr "绑定 DN"
#: settings/serializers/auth/ldap.py:46 #: settings/serializers/auth/ldap.py:48
msgid "User OU" msgid "User OU"
msgstr "用户 OU" msgstr "用户 OU"
#: settings/serializers/auth/ldap.py:47 #: settings/serializers/auth/ldap.py:49
msgid "Use | split multi OUs" msgid "Use | split multi OUs"
msgstr "多个 OU 使用 | 分割" msgstr "多个 OU 使用 | 分割"
#: settings/serializers/auth/ldap.py:50 #: settings/serializers/auth/ldap.py:52
msgid "User search filter" msgid "User search filter"
msgstr "用户过滤器" msgstr "用户过滤器"
#: settings/serializers/auth/ldap.py:51 #: settings/serializers/auth/ldap.py:53
#, python-format #, python-format
msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)"
msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)" msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)"
#: settings/serializers/auth/ldap.py:54 #: settings/serializers/auth/ldap.py:56
msgid "User attr map" msgid "User attr map"
msgstr "用户属性映射" msgstr "用户属性映射"
#: settings/serializers/auth/ldap.py:55 #: settings/serializers/auth/ldap.py:57
msgid "" msgid ""
"User attr map present how to map LDAP user attr to jumpserver, username,name," "User attr map present how to map LDAP user attr to jumpserver, username,name,"
"email is jumpserver attr" "email is jumpserver attr"
@ -3507,15 +3507,15 @@ msgstr ""
"用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上username, name," "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上username, name,"
"email 是jumpserver的用户需要属性" "email 是jumpserver的用户需要属性"
#: settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap.py:75
msgid "Connect timeout" msgid "Connect timeout"
msgstr "连接超时时间" msgstr "连接超时时间"
#: settings/serializers/auth/ldap.py:75 #: settings/serializers/auth/ldap.py:77
msgid "Search paged size" msgid "Search paged size"
msgstr "搜索分页数量" msgstr "搜索分页数量"
#: settings/serializers/auth/ldap.py:77 #: settings/serializers/auth/ldap.py:79
msgid "Enable LDAP auth" msgid "Enable LDAP auth"
msgstr "启用 LDAP 认证" msgstr "启用 LDAP 认证"
@ -4352,7 +4352,7 @@ msgstr "文档"
msgid "Commercial support" msgid "Commercial support"
msgstr "商业支持" msgstr "商业支持"
#: templates/_header_bar.html:76 users/forms/profile.py:43 #: templates/_header_bar.html:76 users/forms/profile.py:44
msgid "Profile" msgid "Profile"
msgstr "个人信息" msgstr "个人信息"
@ -4809,15 +4809,15 @@ msgstr "线程数"
msgid "Boot Time" msgid "Boot Time"
msgstr "运行时间" msgstr "运行时间"
#: terminal/models/storage.py:26 #: terminal/models/storage.py:27
msgid "Default storage" msgid "Default storage"
msgstr "默认存储" msgstr "默认存储"
#: terminal/models/storage.py:130 terminal/models/terminal.py:108 #: terminal/models/storage.py:135 terminal/models/terminal.py:108
msgid "Command storage" msgid "Command storage"
msgstr "命令存储" msgstr "命令存储"
#: terminal/models/storage.py:190 terminal/models/terminal.py:109 #: terminal/models/storage.py:195 terminal/models/terminal.py:109
msgid "Replay storage" msgid "Replay storage"
msgstr "录像存储" msgstr "录像存储"
@ -4942,18 +4942,14 @@ msgid "Whether to create an index by date"
msgstr "是否根据日期动态建立索引" msgstr "是否根据日期动态建立索引"
#: terminal/serializers/storage.py:163 #: terminal/serializers/storage.py:163
msgid "Index prefix"
msgstr "索引前缀"
#: terminal/serializers/storage.py:166
msgid "Index" msgid "Index"
msgstr "索引" msgstr "索引"
#: terminal/serializers/storage.py:168 #: terminal/serializers/storage.py:165
msgid "Doc type" msgid "Doc type"
msgstr "文档类型" msgstr "文档类型"
#: terminal/serializers/storage.py:170 #: terminal/serializers/storage.py:167
msgid "Ignore Certificate Verification" msgid "Ignore Certificate Verification"
msgstr "忽略证书认证" msgstr "忽略证书认证"
@ -5411,15 +5407,19 @@ msgid "Ticket information"
msgstr "工单信息" msgstr "工单信息"
#: tickets/templates/tickets/approve_check_password.html:19 #: tickets/templates/tickets/approve_check_password.html:19
#: tickets/views/approve.py:25
msgid "Ticket approval" msgid "Ticket approval"
msgstr "工单审批" msgstr "工单审批"
#: tickets/templates/tickets/approve_check_password.html:35 #: tickets/templates/tickets/approve_check_password.html:35
#: tickets/views/approve.py:25
msgid "Ticket direct approval" msgid "Ticket direct approval"
msgstr "工单直接审批" msgstr "工单直接审批"
#: tickets/templates/tickets/approve_check_password.html:40 #: tickets/templates/tickets/approve_check_password.html:39
msgid "Ticket direct reject"
msgstr "工单直接拒绝"
#: tickets/templates/tickets/approve_check_password.html:44
msgid "Go Login" msgid "Go Login"
msgstr "去登录" msgstr "去登录"
@ -5429,14 +5429,18 @@ msgid ""
msgstr "工单不存在,或者工单流程已经结束,或者此链接已经过期" msgstr "工单不存在,或者工单流程已经结束,或者此链接已经过期"
#: tickets/views/approve.py:55 #: tickets/views/approve.py:55
msgid "Click the button to approve directly" msgid "Click the button below to approve or reject"
msgstr "点击按钮,即可直接审批成功" msgstr "点击下方按钮同意或者拒绝"
#: tickets/views/approve.py:57 #: tickets/views/approve.py:57
msgid "After successful authentication, this ticket can be approved directly" msgid "After successful authentication, this ticket can be approved directly"
msgstr "认证成功后,工单可直接审批" msgstr "认证成功后,工单可直接审批"
#: tickets/views/approve.py:84 #: tickets/views/approve.py:79
msgid "Illegal approval action"
msgstr "无效的审批动作"
#: tickets/views/approve.py:89
msgid "This user is not authorized to approve this ticket" msgid "This user is not authorized to approve this ticket"
msgstr "此用户无权审批此工单" msgstr "此用户无权审批此工单"
@ -5476,7 +5480,7 @@ msgstr "MFA 多因子认证没有开启"
msgid "MFA method not support" msgid "MFA method not support"
msgstr "不支持该 MFA 方式" msgstr "不支持该 MFA 方式"
#: users/forms/profile.py:49 #: users/forms/profile.py:50
msgid "" msgid ""
"When enabled, you will enter the MFA binding process the next time you log " "When enabled, you will enter the MFA binding process the next time you log "
"in. you can also directly bind in \"personal information -> quick " "in. you can also directly bind in \"personal information -> quick "
@ -5485,11 +5489,11 @@ msgstr ""
"启用之后您将会在下次登录时进入多因子认证绑定流程;您也可以在(个人信息->快速" "启用之后您将会在下次登录时进入多因子认证绑定流程;您也可以在(个人信息->快速"
"修改->设置 MFA 多因子认证)中直接绑定!" "修改->设置 MFA 多因子认证)中直接绑定!"
#: users/forms/profile.py:60 #: users/forms/profile.py:61
msgid "* Enable MFA to make the account more secure." msgid "* Enable MFA to make the account more secure."
msgstr "* 启用 MFA 多因子认证,使账号更加安全。" msgstr "* 启用 MFA 多因子认证,使账号更加安全。"
#: users/forms/profile.py:69 #: users/forms/profile.py:70
msgid "" msgid ""
"In order to protect you and your company, please keep your account, password " "In order to protect you and your company, please keep your account, password "
"and key sensitive information properly. (for example: setting complex " "and key sensitive information properly. (for example: setting complex "
@ -5498,56 +5502,56 @@ msgstr ""
"为了保护您和公司的安全,请妥善保管您的账号、密码和密钥等重要敏感信息;(如:" "为了保护您和公司的安全,请妥善保管您的账号、密码和密钥等重要敏感信息;(如:"
"设置复杂密码,并启用 MFA 多因子认证)" "设置复杂密码,并启用 MFA 多因子认证)"
#: users/forms/profile.py:76 #: users/forms/profile.py:77
msgid "Finish" msgid "Finish"
msgstr "完成" msgstr "完成"
#: users/forms/profile.py:83 #: users/forms/profile.py:84
msgid "New password" msgid "New password"
msgstr "新密码" msgstr "新密码"
#: users/forms/profile.py:88 #: users/forms/profile.py:89
msgid "Confirm password" msgid "Confirm password"
msgstr "确认密码" msgstr "确认密码"
#: users/forms/profile.py:96 #: users/forms/profile.py:97
msgid "Password does not match" msgid "Password does not match"
msgstr "密码不一致" msgstr "密码不一致"
#: users/forms/profile.py:108 #: users/forms/profile.py:109
msgid "Old password" msgid "Old password"
msgstr "原来密码" msgstr "原来密码"
#: users/forms/profile.py:118 #: users/forms/profile.py:119
msgid "Old password error" msgid "Old password error"
msgstr "原来密码错误" msgstr "原来密码错误"
#: users/forms/profile.py:128 #: users/forms/profile.py:129
msgid "Automatically configure and download the SSH key" msgid "Automatically configure and download the SSH key"
msgstr "自动配置并下载SSH密钥" msgstr "自动配置并下载SSH密钥"
#: users/forms/profile.py:130 #: users/forms/profile.py:131
msgid "ssh public key" msgid "ssh public key"
msgstr "SSH公钥" msgstr "SSH公钥"
#: users/forms/profile.py:131 #: users/forms/profile.py:132
msgid "ssh-rsa AAAA..." msgid "ssh-rsa AAAA..."
msgstr "ssh-rsa AAAA..." msgstr "ssh-rsa AAAA..."
#: users/forms/profile.py:132 #: users/forms/profile.py:133
msgid "Paste your id_rsa.pub here." msgid "Paste your id_rsa.pub here."
msgstr "复制你的公钥到这里" msgstr "复制你的公钥到这里"
#: users/forms/profile.py:145 #: users/forms/profile.py:146
msgid "Public key should not be the same as your old one." msgid "Public key should not be the same as your old one."
msgstr "不能和原来的密钥相同" msgstr "不能和原来的密钥相同"
#: users/forms/profile.py:149 users/serializers/profile.py:95 #: users/forms/profile.py:150 users/serializers/profile.py:98
#: users/serializers/profile.py:178 users/serializers/profile.py:205 #: users/serializers/profile.py:181 users/serializers/profile.py:208
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "SSH密钥不合法" msgstr "SSH密钥不合法"
#: users/forms/profile.py:160 users/models/user.py:692 #: users/forms/profile.py:161 users/models/user.py:692
msgid "Public key" msgid "Public key"
msgstr "SSH公钥" msgstr "SSH公钥"
@ -5642,23 +5646,23 @@ msgstr "重置 SSH 密钥"
msgid "Reset MFA" msgid "Reset MFA"
msgstr "重置 MFA" msgstr "重置 MFA"
#: users/serializers/profile.py:29 #: users/serializers/profile.py:30
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "旧密码错误" msgstr "旧密码错误"
#: users/serializers/profile.py:36 users/serializers/profile.py:192 #: users/serializers/profile.py:37 users/serializers/profile.py:195
msgid "Password does not match security rules" msgid "Password does not match security rules"
msgstr "密码不满足安全规则" msgstr "密码不满足安全规则"
#: users/serializers/profile.py:40 #: users/serializers/profile.py:41
msgid "The new password cannot be the last {} passwords" msgid "The new password cannot be the last {} passwords"
msgstr "新密码不能是最近 {} 次的密码" msgstr "新密码不能是最近 {} 次的密码"
#: users/serializers/profile.py:46 users/serializers/profile.py:66 #: users/serializers/profile.py:49 users/serializers/profile.py:69
msgid "The newly set password is inconsistent" msgid "The newly set password is inconsistent"
msgstr "两次密码不一致" msgstr "两次密码不一致"
#: users/serializers/profile.py:144 users/serializers/user.py:140 #: users/serializers/profile.py:147 users/serializers/user.py:140
msgid "Is first login" msgid "Is first login"
msgstr "首次登录" msgstr "首次登录"
@ -6677,11 +6681,11 @@ msgstr "退出页面logo"
msgid "Interface setting" msgid "Interface setting"
msgstr "界面设置" msgstr "界面设置"
#: xpack/plugins/license/api.py:43 #: xpack/plugins/license/api.py:50
msgid "License import successfully" msgid "License import successfully"
msgstr "许可证导入成功" msgstr "许可证导入成功"
#: xpack/plugins/license/api.py:44 #: xpack/plugins/license/api.py:51
msgid "License is invalid" msgid "License is invalid"
msgstr "无效的许可证" msgstr "无效的许可证"

View File

@ -14,7 +14,6 @@
<script src="{% static "js/jumpserver.js" %}"></script> <script src="{% static "js/jumpserver.js" %}"></script>
<style> <style>
.outerBox { .outerBox {
max-width: 80%;
margin: 0 auto; margin: 0 auto;
padding: 100px 20px 20px 20px; padding: 100px 20px 20px 20px;
} }

View File

@ -30,10 +30,14 @@
{% csrf_token %} {% csrf_token %}
<div class="form-group" style=""> <div class="form-group" style="">
{% if user.is_authenticated %} {% if user.is_authenticated %}
<button id='approve_button' class="btn btn-primary block full-width m-b" <button class="btn btn-primary block full-width m-b" name="action" value="approve"
type="submit"> type="submit">
{% trans 'Ticket direct approval' %} {% trans 'Ticket direct approval' %}
</button> </button>
<button class="btn btn-primary block full-width m-b" name="action" value="reject"
type="submit">
{% trans 'Ticket direct reject' %}
</button>
{% else %} {% else %}
<a id='login_button' class="btn btn-primary block full-width m-b" <a id='login_button' class="btn btn-primary block full-width m-b"
href="{{ login_url }}"> href="{{ login_url }}">

View File

@ -22,7 +22,7 @@ class TicketDirectApproveView(TemplateView):
@property @property
def message_data(self): def message_data(self):
return { return {
'title': _('Ticket direct approval'), 'title': _('Ticket approval'),
'error': _("This ticket does not exist, " 'error': _("This ticket does not exist, "
"the process has ended, or this link has expired"), "the process has ended, or this link has expired"),
'redirect_url': self.login_url, 'redirect_url': self.login_url,
@ -52,7 +52,7 @@ class TicketDirectApproveView(TemplateView):
token = kwargs.get('token') token = kwargs.get('token')
ticket_info = cache.get(token, {}).get('body', '') ticket_info = cache.get(token, {}).get('body', '')
if self.request.user.is_authenticated: if self.request.user.is_authenticated:
prompt_msg = _('Click the button to approve directly') prompt_msg = _('Click the button below to approve or reject')
else: else:
prompt_msg = _('After successful authentication, this ticket can be approved directly') prompt_msg = _('After successful authentication, this ticket can be approved directly')
kwargs.update({ kwargs.update({
@ -74,6 +74,11 @@ class TicketDirectApproveView(TemplateView):
def post(self, request, **kwargs): def post(self, request, **kwargs):
user = request.user user = request.user
token = kwargs.get('token') token = kwargs.get('token')
action = request.POST.get('action')
if action not in ['approve', 'reject']:
msg = _('Illegal approval action')
return self.redirect_message_response(error=str(msg))
ticket_info = cache.get(token) ticket_info = cache.get(token)
if not ticket_info: if not ticket_info:
return self.redirect_message_response(redirect_url=self.login_url) return self.redirect_message_response(redirect_url=self.login_url)
@ -82,7 +87,7 @@ class TicketDirectApproveView(TemplateView):
ticket = Ticket.all().get(id=ticket_id) ticket = Ticket.all().get(id=ticket_id)
if not ticket.has_current_assignee(user): if not ticket.has_current_assignee(user):
raise Exception(_("This user is not authorized to approve this ticket")) raise Exception(_("This user is not authorized to approve this ticket"))
ticket.approve(user) getattr(ticket, action)(user)
except AlreadyClosed as e: except AlreadyClosed as e:
self.clear(token) self.clear(token)
return self.redirect_message_response(error=str(e), redirect_url=self.login_url) return self.redirect_message_response(error=str(e), redirect_url=self.login_url)