Merge branch 'v4' of github.com:jumpserver/jumpserver into v4

pull/13459/head
ibuler 2024-06-20 11:11:19 +08:00
commit 856e501a15
8 changed files with 538 additions and 403 deletions

File diff suppressed because it is too large Load Diff

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: 2024-06-13 18:19+0800\n" "POT-Creation-Date: 2024-06-19 17:36+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"
@ -106,7 +106,7 @@ msgstr "テンプレート"
msgid "Skip" msgid "Skip"
msgstr "スキップ" msgstr "スキップ"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:239 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:267
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -418,7 +418,7 @@ msgid "Trigger mode"
msgstr "トリガーモード" msgstr "トリガーモード"
#: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:157 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158
#: xpack/plugins/cloud/models.py:221 #: xpack/plugins/cloud/models.py:221
msgid "Reason" msgid "Reason"
msgstr "理由" msgstr "理由"
@ -830,12 +830,12 @@ msgstr "編集済み"
#: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97
#: acls/templates/acls/asset_login_reminder.html:9 #: acls/templates/acls/asset_login_reminder.html:9
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: authentication/api/connection_token.py:410 ops/models/base.py:17 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36 #: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:82 #: xpack/plugins/cloud/manager.py:83
msgid "Assets" msgid "Assets"
msgstr "資産" msgstr "資産"
@ -1517,7 +1517,7 @@ msgstr "脚本"
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:82 #: xpack/plugins/cloud/manager.py:83
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "ホスト" msgstr "ホスト"
@ -1536,7 +1536,7 @@ msgstr "クラウド サービス"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: assets/const/category.py:16 common/sdk/sms/endpoint.py:20 #: assets/const/category.py:15 common/sdk/sms/endpoint.py:20
msgid "Custom type" msgid "Custom type"
msgstr "カスタムタイプ" msgstr "カスタムタイプ"
@ -1573,7 +1573,8 @@ msgstr "ファイアウォール"
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
#: assets/const/host.py:12 rbac/tree.py:28 xpack/plugins/cloud/const.py:69 #: assets/const/host.py:12 rbac/tree.py:28 rbac/tree.py:67
#: xpack/plugins/cloud/const.py:69
msgid "Other" msgid "Other"
msgstr "その他" msgstr "その他"
@ -1612,7 +1613,8 @@ msgstr "コンソールセッションに接続"
msgid "Any" msgid "Any"
msgstr "任意" msgstr "任意"
#: assets/const/protocol.py:81 settings/serializers/security.py:232 #: assets/const/protocol.py:81 rbac/tree.py:63
#: settings/serializers/security.py:232
msgid "Security" msgid "Security"
msgstr "セキュリティ" msgstr "セキュリティ"
@ -1711,7 +1713,7 @@ msgstr "ボタンセレクターを確認する"
msgid "API mode" msgid "API mode"
msgstr "APIモード" msgstr "APIモード"
#: assets/const/types.py:254 #: assets/const/types.py:251
msgid "All types" msgid "All types"
msgstr "いろんなタイプ" msgstr "いろんなタイプ"
@ -1748,7 +1750,7 @@ msgstr "プラットフォーム"
#: assets/models/asset/common.py:163 assets/models/domain.py:22 #: assets/models/asset/common.py:163 assets/models/domain.py:22
msgid "Zone" msgid "Zone"
msgstr "" msgstr "ゾーン"
#: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385 #: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385
#: assets/serializers/asset/host.py:11 #: assets/serializers/asset/host.py:11
@ -1795,7 +1797,7 @@ msgstr "クライアントキー"
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "証明書チェックを無視" msgstr "証明書チェックを無視"
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:86 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:87
msgid "Proxy" msgid "Proxy"
msgstr "プロキシー" msgstr "プロキシー"
@ -1915,7 +1917,7 @@ msgstr "ラベル"
msgid "New node" msgid "New node"
msgstr "新しいノード" msgstr "新しいノード"
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66 #: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83
msgid "empty" msgid "empty"
msgstr "空" msgstr "空"
@ -2399,11 +2401,11 @@ msgstr "一致する資産がない、タスクを停止"
msgid "App Audits" msgid "App Audits"
msgstr "監査" msgstr "監査"
#: audits/backends/db.py:16 #: audits/backends/db.py:17
msgid "The text content is too long. Use Elasticsearch to store operation logs" msgid "The text content is too long. Use Elasticsearch to store operation logs"
msgstr "文章の内容が長すぎる。Elasticsearchで操作履歴を保存する" msgstr "文章の内容が長すぎる。Elasticsearchで操作履歴を保存する"
#: audits/backends/db.py:91 #: audits/backends/db.py:108
msgid "Tips" msgid "Tips"
msgstr "謎々" msgstr "謎々"
@ -2417,7 +2419,7 @@ msgstr "Rmdir"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:240 #: rbac/tree.py:268
msgid "Delete" msgid "Delete"
msgstr "削除" msgstr "削除"
@ -2441,16 +2443,16 @@ msgstr "ダウンロード"
msgid "Rename dir" msgid "Rename dir"
msgstr "マップディレクトリ" msgstr "マップディレクトリ"
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:274 #: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:274
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/manager.py:84
msgid "View" msgid "View"
msgstr "表示" msgstr "表示"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:237 #: rbac/tree.py:265
msgid "Create" msgid "Create"
msgstr "作成" msgstr "作成"
@ -2468,7 +2470,7 @@ msgstr "ログイン"
msgid "Change password" msgid "Change password"
msgstr "パスワードを変更する" msgstr "パスワードを変更する"
#: audits/const.py:35 #: audits/const.py:35 rbac/tree.py:57
msgid "Notifications" msgid "Notifications"
msgstr "通知" msgstr "通知"
@ -3763,7 +3765,7 @@ msgstr "ランニング"
msgid "Canceled" msgid "Canceled"
msgstr "キャンセル" msgstr "キャンセル"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:407 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:408
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s が正常に作成されました" msgstr "%(name)s が正常に作成されました"
@ -3855,7 +3857,7 @@ msgstr "によって更新"
msgid "Invalid port range, should be like and within {}-{}" msgid "Invalid port range, should be like and within {}-{}"
msgstr "無効なポート範囲です。{}-{} のような範囲内である必要があります" msgstr "無効なポート範囲です。{}-{} のような範囲内である必要があります"
#: common/drf/exc_handlers.py:26 #: common/drf/exc_handlers.py:28
msgid "Object" msgid "Object"
msgstr "オブジェクト" msgstr "オブジェクト"
@ -4295,7 +4297,7 @@ msgstr "空欄"
msgid "VCS" msgid "VCS"
msgstr "VCS" msgstr "VCS"
#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:134 #: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:135
msgid "Adhoc" msgid "Adhoc"
msgstr "コマンド#コマンド#" msgstr "コマンド#コマンド#"
@ -4424,7 +4426,7 @@ msgid "Result"
msgstr "結果" msgstr "結果"
#: ops/models/base.py:52 ops/models/job.py:238 #: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:86 #: xpack/plugins/cloud/manager.py:87
msgid "Summary" msgid "Summary"
msgstr "概要" msgstr "概要"
@ -4545,9 +4547,9 @@ msgstr "最後の実行"
msgid "Execute after saving" msgid "Execute after saving"
msgstr "保存後に実行" msgstr "保存後に実行"
#: ops/serializers/job.py:52 #: ops/serializers/job.py:52 terminal/serializers/session.py:47
msgid "Average time taken" msgid "Duration"
msgstr "時を過ごす" msgstr "きかん"
#: ops/serializers/job.py:72 #: ops/serializers/job.py:72
msgid "Job type" msgid "Job type"
@ -4801,7 +4803,7 @@ msgid "today"
msgstr "今日" msgstr "今日"
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:125 #: settings/serializers/feature.py:126
msgid "day" msgid "day"
msgstr "日" msgstr "日"
@ -5003,7 +5005,7 @@ msgstr "システム設定"
msgid "Session audits" msgid "Session audits"
msgstr "セッション監査" msgstr "セッション監査"
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:83 #: rbac/tree.py:49 xpack/plugins/cloud/manager.py:84
msgid "Cloud import" msgid "Cloud import"
msgstr "クラウドインポート" msgstr "クラウドインポート"
@ -5020,45 +5022,76 @@ msgid "Asset change auth"
msgstr "資産の改ざん" msgstr "資産の改ざん"
#: rbac/tree.py:54 #: rbac/tree.py:54
msgid "Terminal setting"
msgstr "ターミナル設定"
#: rbac/tree.py:55
msgid "Job center" msgid "Job center"
msgstr "タスクセンター" msgstr "タスクセンター"
#: rbac/tree.py:56 #: rbac/tree.py:55
msgid "My assets" msgid "My assets"
msgstr "私の資産" msgstr "私の資産"
#: rbac/tree.py:57 #: rbac/tree.py:56
msgid "App ops" msgid "App ops"
msgstr "アプリ操作" msgstr "アプリ操作"
#: rbac/tree.py:58 terminal/models/applet/applet.py:52 #: rbac/tree.py:58
#, fuzzy
#| msgid "Feature"
msgid "Features"
msgstr "機能"
#: rbac/tree.py:59 settings/serializers/auth/base.py:10
msgid "Authentication"
msgstr "認証"
#: rbac/tree.py:60
msgid "Storage"
msgstr ""
#: rbac/tree.py:61
#, fuzzy
#| msgid "Component"
msgid "Components"
msgstr "コンポーネント"
#: rbac/tree.py:62 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15 #: terminal/serializers/applet.py:15
msgid "Applet" msgid "Applet"
msgstr "リモートアプリケーション" msgstr "リモートアプリケーション"
#: rbac/tree.py:128 #: rbac/tree.py:64
msgid "Appearance"
msgstr ""
#: rbac/tree.py:65
#, fuzzy
#| msgid "Task"
msgid "Tasks"
msgstr "タスク"
#: rbac/tree.py:66 xpack/plugins/license/meta.py:10
#: xpack/plugins/license/models.py:144
msgid "License"
msgstr "ライセンス"
#: rbac/tree.py:157
msgid "App organizations" msgid "App organizations"
msgstr "アプリ組織" msgstr "アプリ組織"
#: rbac/tree.py:129 #: rbac/tree.py:158
msgid "Ticket comment" msgid "Ticket comment"
msgstr "チケットコメント" msgstr "チケットコメント"
#: rbac/tree.py:130 settings/serializers/feature.py:112 #: rbac/tree.py:159 settings/serializers/feature.py:113
#: settings/serializers/feature.py:114 tickets/models/ticket/general.py:305 #: settings/serializers/feature.py:115 tickets/models/ticket/general.py:305
msgid "Ticket" msgid "Ticket"
msgstr "チケット" msgstr "チケット"
#: rbac/tree.py:131 #: rbac/tree.py:160
msgid "Common setting" msgid "Common setting"
msgstr "共通設定" msgstr "共通設定"
#: rbac/tree.py:132 #: rbac/tree.py:161
msgid "View permission tree" msgid "View permission tree"
msgstr "権限ツリーの表示" msgstr "権限ツリーの表示"
@ -5171,10 +5204,6 @@ msgstr "チャットのヒント"
msgid "Notification of Synchronized LDAP User Task Results" msgid "Notification of Synchronized LDAP User Task Results"
msgstr "アカウントバックアップルートタスクの結果の通知" msgstr "アカウントバックアップルートタスクの結果の通知"
#: settings/serializers/auth/base.py:10
msgid "Authentication"
msgstr "認証"
#: settings/serializers/auth/base.py:12 #: settings/serializers/auth/base.py:12
msgid "LDAP Auth" msgid "LDAP Auth"
msgstr "LDAP 認証" msgstr "LDAP 認証"
@ -5826,11 +5855,11 @@ msgstr "有効化 Vault"
msgid "Mount Point" msgid "Mount Point"
msgstr "マウントポイント" msgstr "マウントポイント"
#: settings/serializers/feature.py:60 #: settings/serializers/feature.py:61
msgid "Record limit" msgid "Record limit"
msgstr "" msgstr ""
#: settings/serializers/feature.py:62 #: settings/serializers/feature.py:63
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -5841,80 +5870,80 @@ msgstr ""
"所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履" "所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履"
"歴アカウントの削除は実行されません。" "歴アカウントの削除は実行されません。"
#: settings/serializers/feature.py:72 settings/serializers/feature.py:76 #: settings/serializers/feature.py:73 settings/serializers/feature.py:77
msgid "Chat AI" msgid "Chat AI"
msgstr "チャットAI" msgstr "チャットAI"
#: settings/serializers/feature.py:79 #: settings/serializers/feature.py:80
msgid "Base URL" msgid "Base URL"
msgstr "ベースサイトのアドレス" msgstr "ベースサイトのアドレス"
#: settings/serializers/feature.py:80 #: settings/serializers/feature.py:81
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "" msgstr ""
#: settings/serializers/feature.py:83 templates/_header_bar.html:96 #: settings/serializers/feature.py:84 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "API Key" msgstr "API Key"
#: settings/serializers/feature.py:87 #: settings/serializers/feature.py:88
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "" msgstr ""
#: settings/serializers/feature.py:90 #: settings/serializers/feature.py:91
msgid "GPT Model" msgid "GPT Model"
msgstr "GPTモデル" msgstr "GPTモデル"
#: settings/serializers/feature.py:116 #: settings/serializers/feature.py:117
msgid "Approval without login" msgid "Approval without login"
msgstr "ログイン承認なし" msgstr "ログイン承認なし"
#: settings/serializers/feature.py:117 #: settings/serializers/feature.py:118
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "ログインせずに直接承認チケットを許可します" msgstr "ログインせずに直接承認チケットを許可します"
#: settings/serializers/feature.py:121 #: settings/serializers/feature.py:122
msgid "Period" msgid "Period"
msgstr "期間" msgstr "期間"
#: settings/serializers/feature.py:122 #: settings/serializers/feature.py:123
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "" msgstr ""
#: settings/serializers/feature.py:125 #: settings/serializers/feature.py:126
msgid "hour" msgid "hour"
msgstr "時" msgstr "時"
#: settings/serializers/feature.py:126 #: settings/serializers/feature.py:127
msgid "Unit" msgid "Unit"
msgstr "単位" msgstr "単位"
#: settings/serializers/feature.py:126 #: settings/serializers/feature.py:127
msgid "The unit of period" msgid "The unit of period"
msgstr "ユーザーの実行" msgstr "ユーザーの実行"
#: settings/serializers/feature.py:131 #: settings/serializers/feature.py:132
msgid "Feature" msgid "Feature"
msgstr "機能" msgstr "機能"
#: settings/serializers/feature.py:135 #: settings/serializers/feature.py:136
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "" msgstr ""
"ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること"
"を許可します" "を許可します"
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:140
msgid "Command blacklist" msgid "Command blacklist"
msgstr "コマンドフィルタリング" msgstr "コマンドフィルタリング"
#: settings/serializers/feature.py:140 #: settings/serializers/feature.py:141
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "コマンドフィルタリング" msgstr "コマンドフィルタリング"
#: settings/serializers/feature.py:145 #: settings/serializers/feature.py:146
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -5922,11 +5951,11 @@ msgstr "コマンドフィルタリング"
msgid "Virtual app" msgid "Virtual app"
msgstr "仮想アプリケーション" msgstr "仮想アプリケーション"
#: settings/serializers/feature.py:148 #: settings/serializers/feature.py:149
msgid "Virtual App" msgid "Virtual App"
msgstr "仮想アプリケーション" msgstr "仮想アプリケーション"
#: settings/serializers/feature.py:150 #: settings/serializers/feature.py:151
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7474,10 +7503,6 @@ msgstr "参加できます"
msgid "Can terminate" msgid "Can terminate"
msgstr "終了できます" msgstr "終了できます"
#: terminal/serializers/session.py:47
msgid "Duration"
msgstr "きかん"
#: terminal/serializers/session.py:49 #: terminal/serializers/session.py:49
msgid "User ID" msgid "User ID"
msgstr "ユーザーID" msgstr "ユーザーID"
@ -7511,7 +7536,7 @@ msgstr "アクセスキー"
msgid "Access key secret" msgid "Access key secret"
msgstr "アクセスキーシークレット" msgstr "アクセスキーシークレット"
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:99 #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100
#: xpack/plugins/cloud/models.py:266 #: xpack/plugins/cloud/models.py:266
msgid "Region" msgid "Region"
msgstr "リージョン" msgstr "リージョン"
@ -7845,7 +7870,7 @@ msgstr "有効な許可を受けた資産"
msgid "Ticket already closed" msgid "Ticket already closed"
msgstr "チケットはすでに閉じています" msgstr "チケットはすでに閉じています"
#: tickets/handlers/apply_asset.py:36 #: tickets/handlers/apply_asset.py:39
msgid "" msgid ""
"Created by the ticket ticket title: {} ticket applicant: {} ticket " "Created by the ticket ticket title: {} ticket applicant: {} ticket "
"processor: {} ticket ID: {}" "processor: {} ticket ID: {}"
@ -9024,19 +9049,19 @@ msgstr "インスタンス名と部分IP"
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:90
msgid "Unsync" msgid "Unsync"
msgstr "同期していません" msgstr "同期していません"
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:88 #: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:89
msgid "New Sync" msgid "New Sync"
msgstr "新しい同期" msgstr "新しい同期"
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:88 #: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:89
msgid "Synced" msgid "Synced"
msgstr "同期済み" msgstr "同期済み"
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:90
msgid "Released" msgid "Released"
msgstr "リリース済み" msgstr "リリース済み"
@ -9056,46 +9081,46 @@ msgstr "組織が同期されました"
msgid "Imported" msgid "Imported"
msgstr "インポート" msgstr "インポート"
#: xpack/plugins/cloud/manager.py:46 #: xpack/plugins/cloud/manager.py:47
#, python-format #, python-format
msgid "Task \"%s\" starts executing" msgid "Task \"%s\" starts executing"
msgstr "タスク \"%s\" の実行開始" msgstr "タスク \"%s\" の実行開始"
#: xpack/plugins/cloud/manager.py:80 #: xpack/plugins/cloud/manager.py:81
msgid "View the task details path: " msgid "View the task details path: "
msgstr "タスク詳細パスの表示: " msgstr "タスク詳細パスの表示: "
#: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/manager.py:84
msgid "Account Details" msgid "Account Details"
msgstr "アカウントの詳細" msgstr "アカウントの詳細"
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:85
msgid "Synchronization History List" msgid "Synchronization History List"
msgstr "履歴リストの同期" msgstr "履歴リストの同期"
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:85
msgid "Synchronization Instance List" msgid "Synchronization Instance List"
msgstr "インスタンスリストの同期" msgstr "インスタンスリストの同期"
#: xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/manager.py:93
msgid "Task execution completed" msgid "Task execution completed"
msgstr "タスク実行完了" msgstr "タスク実行完了"
#: xpack/plugins/cloud/manager.py:96 #: xpack/plugins/cloud/manager.py:97
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "同期地域" msgstr "同期地域"
#: xpack/plugins/cloud/manager.py:114 #: xpack/plugins/cloud/manager.py:115
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s" msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s"
#: xpack/plugins/cloud/manager.py:156 #: xpack/plugins/cloud/manager.py:157
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "インスタンス \"%s\" の同期に失敗しました" msgstr "インスタンス \"%s\" の同期に失敗しました"
#: xpack/plugins/cloud/manager.py:332 #: xpack/plugins/cloud/manager.py:333
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
@ -9104,42 +9129,42 @@ msgstr ""
"更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ" "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ"
"ラットフォームとプロトコルの更新をスキップ" "ラットフォームとプロトコルの更新をスキップ"
#: xpack/plugins/cloud/manager.py:388 #: xpack/plugins/cloud/manager.py:389
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "資産 \"%s\" はすでに存在します" msgstr "資産 \"%s\" はすでに存在します"
#: xpack/plugins/cloud/manager.py:390 #: xpack/plugins/cloud/manager.py:391
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "資産の更新 \"%s\"" msgstr "資産の更新 \"%s\""
#: xpack/plugins/cloud/manager.py:393 #: xpack/plugins/cloud/manager.py:394
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "資産 \"%s\" が更新されました" msgstr "資産 \"%s\" が更新されました"
#: xpack/plugins/cloud/manager.py:403 #: xpack/plugins/cloud/manager.py:404
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "資産 \"%s\" の作成準備" msgstr "資産 \"%s\" の作成準備"
#: xpack/plugins/cloud/manager.py:424 #: xpack/plugins/cloud/manager.py:425
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "ノード \"%s\" の設定" msgstr "ノード \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:450 #: xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "アカウント \"%s\" の設定" msgstr "アカウント \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:466 #: xpack/plugins/cloud/manager.py:467
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "プロトコル \"%s\" の設定" msgstr "プロトコル \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:480 xpack/plugins/cloud/tasks.py:27 #: xpack/plugins/cloud/manager.py:481 xpack/plugins/cloud/tasks.py:27
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "同期インスタンス タスクを実行する" msgstr "同期インスタンス タスクを実行する"
@ -9674,10 +9699,6 @@ msgstr "ライセンスのインポートに成功"
msgid "Invalid license" msgid "Invalid license"
msgstr "無効なライセンス" msgstr "無効なライセンス"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
msgid "License"
msgstr "ライセンス"
#: xpack/plugins/license/models.py:80 #: xpack/plugins/license/models.py:80
msgid "Basic edition" msgid "Basic edition"
msgstr "エンタープライズ基本版" msgstr "エンタープライズ基本版"
@ -9693,3 +9714,9 @@ msgstr "エンタープライズプロフェッショナル版"
#: xpack/plugins/license/models.py:86 #: xpack/plugins/license/models.py:86
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "エンタープライズ・フラッグシップ・エディション" msgstr "エンタープライズ・フラッグシップ・エディション"
#~ msgid "Average time taken"
#~ msgstr "時を過ごす"
#~ msgid "Terminal setting"
#~ 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: 2024-06-13 18:19+0800\n" "POT-Creation-Date: 2024-06-19 17:36+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"
@ -105,7 +105,7 @@ msgstr "模板"
msgid "Skip" msgid "Skip"
msgstr "跳过" msgstr "跳过"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:239 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:267
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -417,7 +417,7 @@ msgid "Trigger mode"
msgstr "触发模式" msgstr "触发模式"
#: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:157 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158
#: xpack/plugins/cloud/models.py:221 #: xpack/plugins/cloud/models.py:221
msgid "Reason" msgid "Reason"
msgstr "原因" msgstr "原因"
@ -828,12 +828,12 @@ msgstr "已修改"
#: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97
#: acls/templates/acls/asset_login_reminder.html:9 #: acls/templates/acls/asset_login_reminder.html:9
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: authentication/api/connection_token.py:410 ops/models/base.py:17 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36 #: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:82 #: xpack/plugins/cloud/manager.py:83
msgid "Assets" msgid "Assets"
msgstr "资产" msgstr "资产"
@ -1507,7 +1507,7 @@ msgstr "脚本"
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:82 #: xpack/plugins/cloud/manager.py:83
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "主机" msgstr "主机"
@ -1526,7 +1526,7 @@ msgstr "云服务"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: assets/const/category.py:16 common/sdk/sms/endpoint.py:20 #: assets/const/category.py:15 common/sdk/sms/endpoint.py:20
msgid "Custom type" msgid "Custom type"
msgstr "自定义" msgstr "自定义"
@ -1563,7 +1563,8 @@ msgstr "防火墙"
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
#: assets/const/host.py:12 rbac/tree.py:28 xpack/plugins/cloud/const.py:69 #: assets/const/host.py:12 rbac/tree.py:28 rbac/tree.py:67
#: xpack/plugins/cloud/const.py:69
msgid "Other" msgid "Other"
msgstr "其它" msgstr "其它"
@ -1601,7 +1602,8 @@ msgstr "连接到控制台会话"
msgid "Any" msgid "Any"
msgstr "任意" msgstr "任意"
#: assets/const/protocol.py:81 settings/serializers/security.py:232 #: assets/const/protocol.py:81 rbac/tree.py:63
#: settings/serializers/security.py:232
msgid "Security" msgid "Security"
msgstr "安全" msgstr "安全"
@ -1699,7 +1701,7 @@ msgstr "确认按钮选择器"
msgid "API mode" msgid "API mode"
msgstr "API 模式" msgstr "API 模式"
#: assets/const/types.py:254 #: assets/const/types.py:251
msgid "All types" msgid "All types"
msgstr "所有类型" msgstr "所有类型"
@ -1736,7 +1738,7 @@ msgstr "平台"
#: assets/models/asset/common.py:163 assets/models/domain.py:22 #: assets/models/asset/common.py:163 assets/models/domain.py:22
msgid "Zone" msgid "Zone"
msgstr "" msgstr "网域"
#: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385 #: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385
#: assets/serializers/asset/host.py:11 #: assets/serializers/asset/host.py:11
@ -1783,7 +1785,7 @@ msgstr "客户端密钥"
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "忽略证书校验" msgstr "忽略证书校验"
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:86 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:87
msgid "Proxy" msgid "Proxy"
msgstr "代理" msgstr "代理"
@ -1905,7 +1907,7 @@ msgstr "标签"
msgid "New node" msgid "New node"
msgstr "新节点" msgstr "新节点"
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66 #: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83
msgid "empty" msgid "empty"
msgstr "空" msgstr "空"
@ -2379,11 +2381,11 @@ msgstr "没有匹配到资产,结束任务"
msgid "App Audits" msgid "App Audits"
msgstr "日志审计" msgstr "日志审计"
#: audits/backends/db.py:16 #: audits/backends/db.py:17
msgid "The text content is too long. Use Elasticsearch to store operation logs" msgid "The text content is too long. Use Elasticsearch to store operation logs"
msgstr "文字内容太长。请使用 Elasticsearch 存储操作日志" msgstr "文字内容太长。请使用 Elasticsearch 存储操作日志"
#: audits/backends/db.py:91 #: audits/backends/db.py:108
msgid "Tips" msgid "Tips"
msgstr "提示" msgstr "提示"
@ -2397,7 +2399,7 @@ msgstr "删除目录"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:240 #: rbac/tree.py:268
msgid "Delete" msgid "Delete"
msgstr "删除" msgstr "删除"
@ -2421,16 +2423,16 @@ msgstr "下载"
msgid "Rename dir" msgid "Rename dir"
msgstr "映射目录" msgstr "映射目录"
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:274 #: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:274
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/manager.py:84
msgid "View" msgid "View"
msgstr "查看" msgstr "查看"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:237 #: rbac/tree.py:265
msgid "Create" msgid "Create"
msgstr "创建" msgstr "创建"
@ -2448,7 +2450,7 @@ msgstr "登录"
msgid "Change password" msgid "Change password"
msgstr "改密" msgstr "改密"
#: audits/const.py:35 #: audits/const.py:35 rbac/tree.py:57
msgid "Notifications" msgid "Notifications"
msgstr "通知" msgstr "通知"
@ -3716,7 +3718,7 @@ msgstr "运行中"
msgid "Canceled" msgid "Canceled"
msgstr "取消" msgstr "取消"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:407 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:408
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s 创建成功" msgstr "%(name)s 创建成功"
@ -3808,7 +3810,7 @@ msgstr "最后更新者"
msgid "Invalid port range, should be like and within {}-{}" msgid "Invalid port range, should be like and within {}-{}"
msgstr "无效的端口范围,应该在 {}-{} 之内" msgstr "无效的端口范围,应该在 {}-{} 之内"
#: common/drf/exc_handlers.py:26 #: common/drf/exc_handlers.py:28
msgid "Object" msgid "Object"
msgstr "对象" msgstr "对象"
@ -4238,7 +4240,7 @@ msgstr "空白"
msgid "VCS" msgid "VCS"
msgstr "VCS" msgstr "VCS"
#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:134 #: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:135
msgid "Adhoc" msgid "Adhoc"
msgstr "命令" msgstr "命令"
@ -4367,7 +4369,7 @@ msgid "Result"
msgstr "结果" msgstr "结果"
#: ops/models/base.py:52 ops/models/job.py:238 #: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:86 #: xpack/plugins/cloud/manager.py:87
msgid "Summary" msgid "Summary"
msgstr "汇总" msgstr "汇总"
@ -4488,9 +4490,9 @@ msgstr "下次执行时间"
msgid "Execute after saving" msgid "Execute after saving"
msgstr "保存后执行" msgstr "保存后执行"
#: ops/serializers/job.py:52 #: ops/serializers/job.py:52 terminal/serializers/session.py:47
msgid "Average time taken" msgid "Duration"
msgstr "平均耗时" msgstr "时"
#: ops/serializers/job.py:72 #: ops/serializers/job.py:72
msgid "Job type" msgid "Job type"
@ -4743,7 +4745,7 @@ msgid "today"
msgstr "今天" msgstr "今天"
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:125 #: settings/serializers/feature.py:126
msgid "day" msgid "day"
msgstr "天" msgstr "天"
@ -4944,7 +4946,7 @@ msgstr "系统设置"
msgid "Session audits" msgid "Session audits"
msgstr "会话审计" msgstr "会话审计"
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:83 #: rbac/tree.py:49 xpack/plugins/cloud/manager.py:84
msgid "Cloud import" msgid "Cloud import"
msgstr "云同步" msgstr "云同步"
@ -4961,45 +4963,76 @@ msgid "Asset change auth"
msgstr "资产改密" msgstr "资产改密"
#: rbac/tree.py:54 #: rbac/tree.py:54
msgid "Terminal setting"
msgstr "终端设置"
#: rbac/tree.py:55
msgid "Job center" msgid "Job center"
msgstr "任务中心" msgstr "任务中心"
#: rbac/tree.py:56 #: rbac/tree.py:55
msgid "My assets" msgid "My assets"
msgstr "我的资产" msgstr "我的资产"
#: rbac/tree.py:57 #: rbac/tree.py:56
msgid "App ops" msgid "App ops"
msgstr "作业中心" msgstr "作业中心"
#: rbac/tree.py:58 terminal/models/applet/applet.py:52 #: rbac/tree.py:58
#, fuzzy
#| msgid "Feature"
msgid "Features"
msgstr "功能"
#: rbac/tree.py:59 settings/serializers/auth/base.py:10
msgid "Authentication"
msgstr "认证"
#: rbac/tree.py:60
msgid "Storage"
msgstr ""
#: rbac/tree.py:61
#, fuzzy
#| msgid "Component"
msgid "Components"
msgstr "组件"
#: rbac/tree.py:62 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15 #: terminal/serializers/applet.py:15
msgid "Applet" msgid "Applet"
msgstr "远程应用" msgstr "远程应用"
#: rbac/tree.py:128 #: rbac/tree.py:64
msgid "Appearance"
msgstr ""
#: rbac/tree.py:65
#, fuzzy
#| msgid "Task"
msgid "Tasks"
msgstr "任务"
#: rbac/tree.py:66 xpack/plugins/license/meta.py:10
#: xpack/plugins/license/models.py:144
msgid "License"
msgstr "许可证"
#: rbac/tree.py:157
msgid "App organizations" msgid "App organizations"
msgstr "组织管理" msgstr "组织管理"
#: rbac/tree.py:129 #: rbac/tree.py:158
msgid "Ticket comment" msgid "Ticket comment"
msgstr "工单评论" msgstr "工单评论"
#: rbac/tree.py:130 settings/serializers/feature.py:112 #: rbac/tree.py:159 settings/serializers/feature.py:113
#: settings/serializers/feature.py:114 tickets/models/ticket/general.py:305 #: settings/serializers/feature.py:115 tickets/models/ticket/general.py:305
msgid "Ticket" msgid "Ticket"
msgstr "工单" msgstr "工单"
#: rbac/tree.py:131 #: rbac/tree.py:160
msgid "Common setting" msgid "Common setting"
msgstr "一般设置" msgstr "一般设置"
#: rbac/tree.py:132 #: rbac/tree.py:161
msgid "View permission tree" msgid "View permission tree"
msgstr "查看授权树" msgstr "查看授权树"
@ -5110,10 +5143,6 @@ msgstr "聊天提示"
msgid "Notification of Synchronized LDAP User Task Results" msgid "Notification of Synchronized LDAP User Task Results"
msgstr "同步 LDAP 用户任务结果的通知" msgstr "同步 LDAP 用户任务结果的通知"
#: settings/serializers/auth/base.py:10
msgid "Authentication"
msgstr "认证"
#: settings/serializers/auth/base.py:12 #: settings/serializers/auth/base.py:12
msgid "LDAP Auth" msgid "LDAP Auth"
msgstr "LDAP 认证" msgstr "LDAP 认证"
@ -5204,7 +5233,7 @@ msgstr "CAS"
#: settings/serializers/auth/cas.py:13 settings/serializers/auth/ldap.py:42 #: settings/serializers/auth/cas.py:13 settings/serializers/auth/ldap.py:42
#: settings/serializers/auth/oidc.py:60 #: settings/serializers/auth/oidc.py:60
msgid "Server" msgid "Server"
msgstr "LDAP 地址" msgstr "服务端地址"
#: settings/serializers/auth/cas.py:16 #: settings/serializers/auth/cas.py:16
msgid "Proxy Server" msgid "Proxy Server"
@ -5754,11 +5783,11 @@ msgstr "启用 Vault"
msgid "Mount Point" msgid "Mount Point"
msgstr "挂载点" msgstr "挂载点"
#: settings/serializers/feature.py:60 #: settings/serializers/feature.py:61
msgid "Record limit" msgid "Record limit"
msgstr "" msgstr ""
#: settings/serializers/feature.py:62 #: settings/serializers/feature.py:63
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -5768,78 +5797,78 @@ msgstr ""
"若特定数值小于999系统将在每日晚间自动执行任务检查并删除超出预定数量的历史" "若特定数值小于999系统将在每日晚间自动执行任务检查并删除超出预定数量的历史"
"账号。如果该数值达到或超过999则不进行任何历史账号的删除操作。" "账号。如果该数值达到或超过999则不进行任何历史账号的删除操作。"
#: settings/serializers/feature.py:72 settings/serializers/feature.py:76 #: settings/serializers/feature.py:73 settings/serializers/feature.py:77
msgid "Chat AI" msgid "Chat AI"
msgstr "聊天 AI" msgstr "聊天 AI"
#: settings/serializers/feature.py:79 #: settings/serializers/feature.py:80
msgid "Base URL" msgid "Base URL"
msgstr "JumpServer 地址" msgstr "JumpServer 地址"
#: settings/serializers/feature.py:80 #: settings/serializers/feature.py:81
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "" msgstr ""
#: settings/serializers/feature.py:83 templates/_header_bar.html:96 #: settings/serializers/feature.py:84 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "API Key" msgstr "API Key"
#: settings/serializers/feature.py:87 #: settings/serializers/feature.py:88
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "" msgstr ""
#: settings/serializers/feature.py:90 #: settings/serializers/feature.py:91
msgid "GPT Model" msgid "GPT Model"
msgstr "GPT 模型" msgstr "GPT 模型"
#: settings/serializers/feature.py:116 #: settings/serializers/feature.py:117
msgid "Approval without login" msgid "Approval without login"
msgstr "免登录审批" msgstr "免登录审批"
#: settings/serializers/feature.py:117 #: settings/serializers/feature.py:118
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "允许无需登录直接批准工单" msgstr "允许无需登录直接批准工单"
#: settings/serializers/feature.py:121 #: settings/serializers/feature.py:122
msgid "Period" msgid "Period"
msgstr "时段" msgstr "时段"
#: settings/serializers/feature.py:122 #: settings/serializers/feature.py:123
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "" msgstr ""
#: settings/serializers/feature.py:125 #: settings/serializers/feature.py:126
msgid "hour" msgid "hour"
msgstr "时" msgstr "时"
#: settings/serializers/feature.py:126 #: settings/serializers/feature.py:127
msgid "Unit" msgid "Unit"
msgstr "单位" msgstr "单位"
#: settings/serializers/feature.py:126 #: settings/serializers/feature.py:127
msgid "The unit of period" msgid "The unit of period"
msgstr "执行周期" msgstr "执行周期"
#: settings/serializers/feature.py:131 #: settings/serializers/feature.py:132
msgid "Feature" msgid "Feature"
msgstr "功能" msgstr "功能"
#: settings/serializers/feature.py:135 #: settings/serializers/feature.py:136
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "允许用户在工作台 - 作业中心 - Adhoc 中执行批量命令" msgstr "允许用户在工作台 - 作业中心 - Adhoc 中执行批量命令"
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:140
msgid "Command blacklist" msgid "Command blacklist"
msgstr "作业中心命令黑名单" msgstr "作业中心命令黑名单"
#: settings/serializers/feature.py:140 #: settings/serializers/feature.py:141
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "作业中心命令黑名单" msgstr "作业中心命令黑名单"
#: settings/serializers/feature.py:145 #: settings/serializers/feature.py:146
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -5847,11 +5876,11 @@ msgstr "作业中心命令黑名单"
msgid "Virtual app" msgid "Virtual app"
msgstr "虚拟应用" msgstr "虚拟应用"
#: settings/serializers/feature.py:148 #: settings/serializers/feature.py:149
msgid "Virtual App" msgid "Virtual App"
msgstr "虚拟应用" msgstr "虚拟应用"
#: settings/serializers/feature.py:150 #: settings/serializers/feature.py:151
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7360,10 +7389,6 @@ msgstr "是否可加入"
msgid "Can terminate" msgid "Can terminate"
msgstr "是否可中断" msgstr "是否可中断"
#: terminal/serializers/session.py:47
msgid "Duration"
msgstr "时长"
#: terminal/serializers/session.py:49 #: terminal/serializers/session.py:49
msgid "User ID" msgid "User ID"
msgstr "用户 ID" msgstr "用户 ID"
@ -7397,7 +7422,7 @@ msgstr "Access key ID(AK)"
msgid "Access key secret" msgid "Access key secret"
msgstr "Access key secret(SK)" msgstr "Access key secret(SK)"
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:99 #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100
#: xpack/plugins/cloud/models.py:266 #: xpack/plugins/cloud/models.py:266
msgid "Region" msgid "Region"
msgstr "地域" msgstr "地域"
@ -7725,7 +7750,7 @@ msgstr "有效授权的资产"
msgid "Ticket already closed" msgid "Ticket already closed"
msgstr "工单已经关闭" msgstr "工单已经关闭"
#: tickets/handlers/apply_asset.py:36 #: tickets/handlers/apply_asset.py:39
msgid "" msgid ""
"Created by the ticket ticket title: {} ticket applicant: {} ticket " "Created by the ticket ticket title: {} ticket applicant: {} ticket "
"processor: {} ticket ID: {}" "processor: {} ticket ID: {}"
@ -8883,19 +8908,19 @@ msgstr "实例名称和部分IP"
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:90
msgid "Unsync" msgid "Unsync"
msgstr "未同步" msgstr "未同步"
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:88 #: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:89
msgid "New Sync" msgid "New Sync"
msgstr "新同步" msgstr "新同步"
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:88 #: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:89
msgid "Synced" msgid "Synced"
msgstr "已同步" msgstr "已同步"
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:90
msgid "Released" msgid "Released"
msgstr "已释放" msgstr "已释放"
@ -8915,93 +8940,93 @@ msgstr "已同步组织"
msgid "Imported" msgid "Imported"
msgstr "导入" msgstr "导入"
#: xpack/plugins/cloud/manager.py:46 #: xpack/plugins/cloud/manager.py:47
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Task \"%s\" starts executing" #| msgid "Task \"%s\" starts executing"
msgid "Task \"%s\" starts executing" msgid "Task \"%s\" starts executing"
msgstr "任务执行 ID" msgstr "任务执行 ID"
#: xpack/plugins/cloud/manager.py:80 #: xpack/plugins/cloud/manager.py:81
msgid "View the task details path: " msgid "View the task details path: "
msgstr "查看详情" msgstr "查看详情"
#: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/manager.py:84
msgid "Account Details" msgid "Account Details"
msgstr "账号" msgstr "账号"
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:85
msgid "Synchronization History List" msgid "Synchronization History List"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:85
msgid "Synchronization Instance List" msgid "Synchronization Instance List"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/manager.py:93
msgid "Task execution completed" msgid "Task execution completed"
msgstr "任务执行 ID" msgstr "任务执行 ID"
#: xpack/plugins/cloud/manager.py:96 #: xpack/plugins/cloud/manager.py:97
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "没有用户需要同步" msgstr "没有用户需要同步"
#: xpack/plugins/cloud/manager.py:114 #: xpack/plugins/cloud/manager.py:115
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:156 #: xpack/plugins/cloud/manager.py:157
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:332 #: xpack/plugins/cloud/manager.py:333
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates" "platform type. Skip platform and protocol updates"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:388 #: xpack/plugins/cloud/manager.py:389
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "The asset \"%s\" already exists" #| msgid "The asset \"%s\" already exists"
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "名称已存在" msgstr "名称已存在"
#: xpack/plugins/cloud/manager.py:390 #: xpack/plugins/cloud/manager.py:391
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Update asset \"%s\"" #| msgid "Update asset \"%s\""
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "收集资产信息" msgstr "收集资产信息"
#: xpack/plugins/cloud/manager.py:393 #: xpack/plugins/cloud/manager.py:394
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Asset \"%s\" has been updated" #| msgid "Asset \"%s\" has been updated"
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "资产已经被禁用, 跳过: {}" msgstr "资产已经被禁用, 跳过: {}"
#: xpack/plugins/cloud/manager.py:403 #: xpack/plugins/cloud/manager.py:404
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:424 #: xpack/plugins/cloud/manager.py:425
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:450 #: xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "删除账号: %s" msgstr "删除账号: %s"
#: xpack/plugins/cloud/manager.py:466 #: xpack/plugins/cloud/manager.py:467
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Set protocols \"%s\"" #| msgid "Set protocols \"%s\""
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "镜像协议" msgstr "镜像协议"
#: xpack/plugins/cloud/manager.py:480 xpack/plugins/cloud/tasks.py:27 #: xpack/plugins/cloud/manager.py:481 xpack/plugins/cloud/tasks.py:27
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "执行同步实例任务" msgstr "执行同步实例任务"
@ -9535,10 +9560,6 @@ msgstr "许可证导入成功"
msgid "Invalid license" msgid "Invalid license"
msgstr "无效 IP" msgstr "无效 IP"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
msgid "License"
msgstr "许可证"
#: xpack/plugins/license/models.py:80 #: xpack/plugins/license/models.py:80
msgid "Basic edition" msgid "Basic edition"
msgstr "企业基础版" msgstr "企业基础版"
@ -9554,3 +9575,9 @@ msgstr "企业专业版"
#: xpack/plugins/license/models.py:86 #: xpack/plugins/license/models.py:86
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "企业旗舰版" msgstr "企业旗舰版"
#~ msgid "Average time taken"
#~ msgstr "平均耗时"
#~ msgid "Terminal setting"
#~ msgstr "终端设置"

View File

@ -1337,5 +1337,8 @@
"ZoneUpdate": "Update the zone", "ZoneUpdate": "Update the zone",
"IpType": "IP type", "IpType": "IP type",
"PublicIp": "Public Ip", "PublicIp": "Public Ip",
"PrivateIp": "Private Ip" "PrivateIp": "Private Ip",
"VaultHCPMountPoint": "The mount point of the Vault server, default is jumpserver",
"WeChat": "WeChat",
"SuEnabled": "Enabled su"
} }

View File

@ -905,7 +905,7 @@
"RemoteAddr": "远端地址", "RemoteAddr": "远端地址",
"Remove": "移除", "Remove": "移除",
"RemoveAssetFromNode": "从节点移除资产", "RemoveAssetFromNode": "从节点移除资产",
"RemoveSelected": "除所选", "RemoveSelected": "除所选",
"RemoveSuccessMsg": "移除成功", "RemoveSuccessMsg": "移除成功",
"Rename": "重命名", "Rename": "重命名",
"RenameNode": "重命名节点", "RenameNode": "重命名节点",
@ -1100,7 +1100,7 @@
"StrategyHelpTip": "根据策略优先级识别资产(例如平台)的独特属性; 当资产的属性(如节点)可以配置为多个时,策略的所有动作都会被执行。", "StrategyHelpTip": "根据策略优先级识别资产(例如平台)的独特属性; 当资产的属性(如节点)可以配置为多个时,策略的所有动作都会被执行。",
"StrategyList": "策略列表", "StrategyList": "策略列表",
"StrategyUpdate": "更新策略", "StrategyUpdate": "更新策略",
"SuEnabled": "启用开关", "SuEnabled": "启用账号切换",
"EnableDomain": "启用网域", "EnableDomain": "启用网域",
"SuFrom": "切换自", "SuFrom": "切换自",
"Submit": "提交", "Submit": "提交",
@ -1338,5 +1338,6 @@
"ZoneUpdate": "更新网域", "ZoneUpdate": "更新网域",
"IpType": "IP 类型", "IpType": "IP 类型",
"PublicIp": "公有 IP", "PublicIp": "公有 IP",
"PrivateIp": "私有 IP" "PrivateIp": "私有 IP",
"WeChat": "微信"
} }

View File

@ -80,6 +80,12 @@
</style> </style>
</head> </head>
<div class="container"> <div class="container">
<div style="position: absolute; top: 10px; right: 12px;">
<button id="download-log-btn"
style="background-color: #1ab394; color: white; padding: 5px 10px; border: none; border-radius: 4px; cursor: pointer;">
{% trans 'Download' %}
</button>
</div>
<div class="header"> <div class="header">
<ul class="info"> <ul class="info">
<li class="item"> <li class="item">
@ -111,7 +117,6 @@
var term; var term;
var ws; var ws;
var extraQuery = Object.fromEntries(new URLSearchParams(window.location.search)); var extraQuery = Object.fromEntries(new URLSearchParams(window.location.search));
$(document).ready(function () { $(document).ready(function () {
term = new Terminal({ term = new Terminal({
cursorBlink: false, cursorBlink: false,
@ -164,4 +169,20 @@
} }
}) })
} }
function downloadLog() {
term.selectAll()
let logData = term.getSelection()
const blob = new Blob([logData], {type: 'text/plain'});
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `log_${taskId}.txt`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}
document.getElementById('download-log-btn').addEventListener('click', downloadLog);
</script> </script>

View File

@ -53,7 +53,6 @@ class VaultSettingSerializer(serializers.Serializer):
) )
VAULT_HCP_MOUNT_POINT = serializers.CharField( VAULT_HCP_MOUNT_POINT = serializers.CharField(
max_length=256, allow_blank=True, required=False, label=_('Mount Point'), max_length=256, allow_blank=True, required=False, label=_('Mount Point'),
help_text=_('The mount point of the Vault server, default is jumpserver'),
default='jumpserver' default='jumpserver'
) )

View File

@ -1,10 +1,13 @@
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from common.utils import get_logger
from orgs.utils import tmp_to_org from orgs.utils import tmp_to_org
from perms.models import AssetPermission from perms.models import AssetPermission
from tickets.models import ApplyAssetTicket from tickets.models import ApplyAssetTicket
from .base import BaseHandler from .base import BaseHandler
logger = get_logger(__file__)
class Handler(BaseHandler): class Handler(BaseHandler):
ticket: ApplyAssetTicket ticket: ApplyAssetTicket
@ -60,6 +63,10 @@ class Handler(BaseHandler):
asset_permission = AssetPermission.objects.create(**permission_data) asset_permission = AssetPermission.objects.create(**permission_data)
asset_permission.nodes.set(apply_nodes) asset_permission.nodes.set(apply_nodes)
asset_permission.assets.set(apply_assets) asset_permission.assets.set(apply_assets)
try:
asset_permission.users.add(self.ticket.applicant) asset_permission.users.add(self.ticket.applicant)
except Exception as e:
logger.error('Add user to asset permission failed: %s', e)
return asset_permission return asset_permission