diff --git a/apps/accounts/tasks/remove_account.py b/apps/accounts/tasks/remove_account.py index 62a9375a1..269a7f349 100644 --- a/apps/accounts/tasks/remove_account.py +++ b/apps/accounts/tasks/remove_account.py @@ -11,7 +11,7 @@ __all__ = ['remove_accounts_task'] @shared_task( - queue="ansible", verbose_name=_('Remove accounts'), + queue="ansible", verbose_name=_('Remove account'), activity_callback=lambda self, gather_account_ids, *args, **kwargs: (gather_account_ids, None) ) def remove_accounts_task(gather_account_ids): @@ -20,7 +20,7 @@ def remove_accounts_task(gather_account_ids): gather_accounts = GatheredAccount.objects.filter( id__in=gather_account_ids ) - task_name = gettext_noop("Remove accounts") + task_name = gettext_noop("Remove account") task_snapshot = { 'assets': [str(i.asset_id) for i in gather_accounts], diff --git a/apps/audits/migrations/0024_usersession.py b/apps/audits/migrations/0024_usersession.py index 3cca28f75..c5a6c9331 100644 --- a/apps/audits/migrations/0024_usersession.py +++ b/apps/audits/migrations/0024_usersession.py @@ -1,9 +1,10 @@ # Generated by Django 4.1.10 on 2023-09-15 08:58 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): @@ -31,7 +32,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'User session', 'ordering': ['-date_created'], - 'permissions': [('offline_usersession', 'Offline ussr session')], + 'permissions': [('offline_usersession', 'Offline user session')], }, ), ] diff --git a/apps/audits/models.py b/apps/audits/models.py index 97496102b..64a0ebc5b 100644 --- a/apps/audits/models.py +++ b/apps/audits/models.py @@ -305,5 +305,5 @@ class UserSession(models.Model): ordering = ['-date_created'] verbose_name = _('User session') permissions = [ - ('offline_usersession', _('Offline ussr session')), + ('offline_usersession', _('Offline user session')), ] diff --git a/apps/locale/ja/LC_MESSAGES/django.mo b/apps/locale/ja/LC_MESSAGES/django.mo index 56394b738..17fc22c3a 100644 --- a/apps/locale/ja/LC_MESSAGES/django.mo +++ b/apps/locale/ja/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:790917753a2bc455aaa6a74322b18f7cbdb7ba860f4c08c46263e7762fb3fbe7 -size 165198 +oid sha256:5d443763c06877304dca8dac76131271287acc6594df665bdf9445455c5187f1 +size 167791 diff --git a/apps/locale/ja/LC_MESSAGES/django.po b/apps/locale/ja/LC_MESSAGES/django.po index 6e983d775..bf08b4575 100644 --- a/apps/locale/ja/LC_MESSAGES/django.po +++ b/apps/locale/ja/LC_MESSAGES/django.po @@ -9,6 +9,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-12-08 14:51+0800\n" +"POT-Creation-Date: 2023-12-08 15:33+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -115,83 +116,88 @@ msgstr "パスワードを変更する" msgid "Verify account" msgstr "アカウントを確認" -#: accounts/const/automation.py:27 +#: accounts/const/automation.py:27 accounts/tasks/remove_account.py:14 +#: accounts/tasks/remove_account.py:23 +msgid "Remove account" +msgstr "アカウントの削除" + +#: accounts/const/automation.py:28 msgid "Gather accounts" msgstr "アカウントのコレクション" -#: accounts/const/automation.py:28 +#: accounts/const/automation.py:29 msgid "Verify gateway account" msgstr "ゲートウェイ アカウントを確認する" -#: accounts/const/automation.py:46 +#: accounts/const/automation.py:47 msgid "Specific secret" msgstr "特定" -#: accounts/const/automation.py:47 +#: accounts/const/automation.py:48 msgid "Random generate" msgstr "ランダム生成" -#: accounts/const/automation.py:51 ops/const.py:13 +#: accounts/const/automation.py:52 ops/const.py:13 msgid "Append SSH KEY" msgstr "追加" -#: accounts/const/automation.py:52 ops/const.py:14 +#: accounts/const/automation.py:53 ops/const.py:14 msgid "Empty and append SSH KEY" msgstr "すべてクリアして追加" -#: accounts/const/automation.py:53 ops/const.py:15 +#: accounts/const/automation.py:54 ops/const.py:15 msgid "Replace (Replace only keys pushed by JumpServer) " msgstr "置換(JumpServer によってプッシュされたキーのみを置換)" -#: accounts/const/automation.py:58 +#: accounts/const/automation.py:59 msgid "On asset create" msgstr "アセットが作成されたとき" -#: accounts/const/automation.py:61 +#: accounts/const/automation.py:62 msgid "On perm add user" msgstr "承認が変更されたときにユーザーを追加する" -#: accounts/const/automation.py:63 +#: accounts/const/automation.py:64 msgid "On perm add user group" msgstr "権限変更時にユーザーグループを追加" -#: accounts/const/automation.py:65 +#: accounts/const/automation.py:66 msgid "On perm add asset" msgstr "変更の承認時にアセットを追加する" -#: accounts/const/automation.py:67 +#: accounts/const/automation.py:68 msgid "On perm add node" msgstr "承認変更時のノードの追加" -#: accounts/const/automation.py:69 +#: accounts/const/automation.py:70 msgid "On perm add account" msgstr "承認が変更されたときにアカウントを追加する" -#: accounts/const/automation.py:71 +#: accounts/const/automation.py:72 msgid "On asset join node" msgstr "アセットの変更時にノードに追加" -#: accounts/const/automation.py:73 +#: accounts/const/automation.py:74 msgid "On user join group" msgstr "ユーザー変更時にユーザーグループに追加" -#: accounts/const/automation.py:81 +#: accounts/const/automation.py:82 msgid "On perm change" msgstr "権限が変更されたとき" -#: accounts/const/automation.py:88 +#: accounts/const/automation.py:89 msgid "Inherit from group or node" msgstr "ユーザーグループまたはアセットノードから継承" -#: accounts/const/automation.py:96 +#: accounts/const/automation.py:97 msgid "Create and push" msgstr "作成してプッシュ" -#: accounts/const/automation.py:97 +#: accounts/const/automation.py:98 msgid "Only create" msgstr "作成のみ" -#: accounts/const/automation.py:102 +#: accounts/const/automation.py:103 #: authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 #: notifications/backends/__init__.py:10 settings/serializers/msg.py:22 @@ -203,6 +209,7 @@ msgid "Email" msgstr "メール" #: accounts/const/automation.py:104 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:87 msgid "SFTP" msgstr "SFTP" @@ -314,6 +321,10 @@ msgstr "アカウントを確認できます" msgid "Can push account" msgstr "アカウントをプッシュできます" +#: accounts/models/account.py:72 +msgid "Can remove account" +msgstr "アカウントを削除できます" + #: accounts/models/automations/backup_account.py:27 msgid "Backup Type" msgstr "バックアップの種類" @@ -586,7 +597,7 @@ msgstr "パスワードルール" #: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 #: assets/models/domain.py:19 assets/models/group.py:17 #: assets/models/label.py:18 assets/models/platform.py:16 -#: assets/models/platform.py:89 assets/serializers/asset/common.py:146 +#: assets/models/platform.py:95 assets/serializers/asset/common.py:146 #: assets/serializers/platform.py:118 assets/serializers/platform.py:235 #: authentication/backends/passkey/models.py:10 #: authentication/serializers/connect_token_secret.py:113 @@ -730,7 +741,7 @@ msgid "Exist policy" msgstr "アカウントの存在ポリシー" #: accounts/serializers/account/account.py:193 applications/models.py:11 -#: assets/models/label.py:21 assets/models/platform.py:90 +#: assets/models/label.py:21 assets/models/platform.py:96 #: assets/serializers/asset/common.py:122 assets/serializers/cagegory.py:12 #: assets/serializers/platform.py:140 assets/serializers/platform.py:236 #: perms/serializers/user_permission.py:25 settings/models.py:34 @@ -742,7 +753,7 @@ msgstr "カテゴリ" #: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24 #: acls/serializers/command_acl.py:19 applications/models.py:14 #: assets/models/_user.py:50 assets/models/automations/base.py:20 -#: assets/models/cmd_filter.py:74 assets/models/platform.py:91 +#: assets/models/cmd_filter.py:74 assets/models/platform.py:97 #: assets/serializers/asset/common.py:123 assets/serializers/platform.py:120 #: assets/serializers/platform.py:139 audits/serializers.py:53 #: audits/serializers.py:170 @@ -892,10 +903,8 @@ msgid "Special symbol" msgstr "特殊記号" #: accounts/serializers/account/template.py:18 -#, fuzzy -#| msgid "Special symbol" msgid "Exclude symbol" -msgstr "特殊記号" +msgstr "除外文字" #: accounts/serializers/account/template.py:36 msgid "Secret generation strategy for account creation" @@ -1710,7 +1719,7 @@ msgstr "ポート" msgid "Address" msgstr "アドレス" -#: assets/models/asset/common.py:161 assets/models/platform.py:120 +#: assets/models/asset/common.py:161 assets/models/platform.py:126 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 #: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321 @@ -1997,31 +2006,43 @@ msgstr "アカウント認証方法" msgid "Verify account params" msgstr "アカウント認証パラメータ" -#: assets/models/platform.py:92 tickets/models/ticket/general.py:300 +#: assets/models/platform.py:76 +msgid "Remove account enabled" +msgstr "アカウントを開いて削除" + +#: assets/models/platform.py:78 +msgid "Remove account method" +msgstr "アカウントの削除方法" + +#: assets/models/platform.py:80 +msgid "Remove account params" +msgstr "アカウント削除パラメータ" + +#: assets/models/platform.py:98 tickets/models/ticket/general.py:300 msgid "Meta" msgstr "メタ" -#: assets/models/platform.py:93 labels/models.py:13 +#: assets/models/platform.py:99 labels/models.py:13 msgid "Internal" msgstr "ビルトイン" -#: assets/models/platform.py:97 assets/serializers/platform.py:138 +#: assets/models/platform.py:103 assets/serializers/platform.py:138 msgid "Charset" msgstr "シャーセット" -#: assets/models/platform.py:99 assets/serializers/platform.py:167 +#: assets/models/platform.py:105 assets/serializers/platform.py:167 msgid "Domain enabled" msgstr "ドメインを有効にする" -#: assets/models/platform.py:101 assets/serializers/platform.py:166 +#: assets/models/platform.py:107 assets/serializers/platform.py:166 msgid "Su enabled" msgstr "アカウントの切り替えを有効にする" -#: assets/models/platform.py:102 assets/serializers/platform.py:144 +#: assets/models/platform.py:108 assets/serializers/platform.py:144 msgid "Su method" msgstr "アカウントの切り替え方法" -#: assets/models/platform.py:103 assets/serializers/platform.py:147 +#: assets/models/platform.py:109 assets/serializers/platform.py:147 msgid "Custom fields" msgstr "カスタムフィールド" @@ -2521,8 +2542,8 @@ msgid "User session" msgstr "ユーザーセッション" #: audits/models.py:308 -msgid "Offline ussr session" -msgstr "ユーザー・セッションの下限" +msgid "Offline user session" +msgstr "オフラインユーザセッション" #: audits/serializers.py:33 ops/models/adhoc.py:25 ops/models/base.py:16 #: ops/models/base.py:53 ops/models/job.py:150 ops/models/job.py:238 @@ -3160,6 +3181,21 @@ msgstr "コンポーネント" msgid "Expired now" msgstr "すぐに期限切れ" +#: authentication/serializers/connect_token_secret.py:169 +#: terminal/models/virtualapp/virtualapp.py:25 +msgid "Image name" +msgstr "ミラー名" + +#: authentication/serializers/connect_token_secret.py:170 +#: terminal/models/virtualapp/virtualapp.py:27 +msgid "Image port" +msgstr "ミラーポート" + +#: authentication/serializers/connect_token_secret.py:171 +#: terminal/models/virtualapp/virtualapp.py:26 +msgid "Image protocol" +msgstr "ミラープロトコル" + #: authentication/serializers/connection_token.py:16 msgid "Expired time" msgstr "期限切れ時間" @@ -3446,22 +3482,19 @@ msgid "If you have any question, please contact the administrator" msgstr "質問があったら、管理者に連絡して下さい" #: authentication/views/base.py:138 -#, fuzzy, python-format -#| msgid "WeCom query user failed" +#, python-format msgid "%s query user failed" -msgstr "企業微信ユーザーの問合せに失敗しました" +msgstr "%sユーザーのクエリに失敗しました" #: authentication/views/base.py:147 -#, fuzzy, python-format -#| msgid "The WeCom is already bound to another user" +#, python-format msgid "The %s is already bound to another user" -msgstr "この企業の微信はすでに他のユーザーをバインドしている。" +msgstr "%sが別のユーザーにバインドされています。" #: authentication/views/base.py:154 -#, fuzzy, python-format -#| msgid "Binding WeCom successfully" +#, python-format msgid "Binding %s successfully" -msgstr "企業の微信のバインドに成功" +msgstr "バインド%s成功" #: authentication/views/dingtalk.py:42 msgid "DingTalk Error, Please contact your system administrator" @@ -3554,22 +3587,16 @@ msgid "Logout success, return login page" msgstr "ログアウト成功、ログインページを返す" #: authentication/views/slack.py:35 authentication/views/slack.py:126 -#, fuzzy -#| msgid "DingTalk Error" msgid "Slack Error" -msgstr "DingTalkエラー" +msgstr "Slack エラー" #: authentication/views/slack.py:63 -#, fuzzy -#| msgid "DingTalk is already bound" msgid "Slack is already bound" -msgstr "DingTalkはすでにバインドされています" +msgstr "Slack はすでにバインドされています" #: authentication/views/slack.py:128 -#, fuzzy -#| msgid "Failed to get user from DingTalk" msgid "Failed to get user from Slack" -msgstr "DingTalkからユーザーを取得できませんでした" +msgstr "Slack からユーザーを取得できませんでした" #: authentication/views/wecom.py:40 msgid "WeCom Error, Please contact your system administrator" @@ -3782,10 +3809,8 @@ msgid "Network error, please contact system administrator" msgstr "ネットワークエラー、システム管理者に連絡してください" #: common/sdk/im/slack/__init__.py:76 -#, fuzzy -#| msgid "Unknown error: {}" msgid "Unknown error occur" -msgstr "不明なエラー: {}" +msgstr "不明なエラーが発生しました" #: common/sdk/im/wecom/__init__.py:16 msgid "WeCom error, please contact system administrator" @@ -4787,9 +4812,13 @@ msgstr "共通設定" msgid "View permission tree" msgstr "権限ツリーの表示" -#: settings/api/dingtalk.py:31 settings/api/feishu.py:36 -#: settings/api/slack.py:34 settings/api/sms.py:160 settings/api/vault.py:40 -#: settings/api/wecom.py:37 +#: settings/api/chat.py:35 +msgid "Chat AI is not enabled" +msgstr "チャットAIがオンになっていない" + +#: settings/api/chat.py:73 settings/api/dingtalk.py:31 +#: settings/api/feishu.py:36 settings/api/slack.py:34 settings/api/sms.py:160 +#: settings/api/vault.py:40 settings/api/wecom.py:37 msgid "Test success" msgstr "テストの成功" @@ -4853,6 +4882,10 @@ msgid "Can change vault setting" msgstr "金庫の設定を変えることができます" #: settings/models.py:166 +msgid "Can change chat ai setting" +msgstr "チャットAI設定を変更できます" + +#: settings/models.py:167 msgid "Can change system msg sub setting" msgstr "システムmsgサブ设定を変更できます" @@ -4917,10 +4950,8 @@ msgid "FeiShu Auth" msgstr "飛本 認証" #: settings/serializers/auth/base.py:20 -#, fuzzy -#| msgid "CAS Auth" msgid "Slack Auth" -msgstr "CAS 認証" +msgstr "Slack 認証" #: settings/serializers/auth/base.py:21 msgid "WeCom Auth" @@ -5241,10 +5272,8 @@ msgid "SP cert" msgstr "SP 証明書" #: settings/serializers/auth/slack.py:12 -#, fuzzy -#| msgid "Enable CAS Auth" msgid "Enable Slack Auth" -msgstr "CAS 認証の有効化" +msgstr "Slack 認証の有効化" #: settings/serializers/auth/sms.py:17 msgid "Enable SMS" @@ -5460,6 +5489,22 @@ msgid "Mount Point" msgstr "マウントポイント" #: settings/serializers/feature.py:60 +msgid "Chat AI" +msgstr "チャットAI" + +#: settings/serializers/feature.py:67 +msgid "Base Url" +msgstr "基本的なUrl" + +#: settings/serializers/feature.py:70 templates/_header_bar.html:90 +msgid "API Key" +msgstr "API Key" + +#: settings/serializers/feature.py:76 +msgid "GPT Model" +msgstr "GPTモデル" + +#: settings/serializers/feature.py:100 msgid "Enable tickets" msgstr "チケットを有効にする" @@ -6125,10 +6170,6 @@ msgstr "ページの管理" msgid "User page" msgstr "ユーザーページ" -#: templates/_header_bar.html:90 -msgid "API Key" -msgstr "API Key" - #: templates/_header_bar.html:91 msgid "Logout" msgstr "ログアウト" @@ -6760,6 +6801,26 @@ msgstr "検証コードが無効" msgid "You have already joined this session" msgstr "すでにこのセッションに参加しています" +#: terminal/models/virtualapp/provider.py:17 +#: terminal/models/virtualapp/virtualapp.py:36 +#: terminal/models/virtualapp/virtualapp.py:97 +#: terminal/serializers/virtualapp.py:32 +msgid "Virtual app" +msgstr "仮想アプリケーション" + +#: terminal/models/virtualapp/virtualapp.py:32 +msgid "Providers" +msgstr "プロバイダ" + +#: terminal/models/virtualapp/virtualapp.py:94 +#: terminal/serializers/virtualapp.py:34 +msgid "App Provider" +msgstr "アプリケーションプロバイダ" + +#: terminal/models/virtualapp/virtualapp.py:102 +msgid "Virtual app publication" +msgstr "仮想アプリケーションの公開" + #: terminal/notifications.py:25 msgid "Sessions" msgstr "セッション" @@ -7079,6 +7140,26 @@ msgstr "セッション" msgid "Not found" msgstr "見つかりません" +#: terminal/serializers/virtualapp_provider.py:26 +msgid "Container ID" +msgstr "コンテナID" + +#: terminal/serializers/virtualapp_provider.py:27 +msgid "Container Image" +msgstr "コンテナミラーリング" + +#: terminal/serializers/virtualapp_provider.py:28 +msgid "Container Name" +msgstr "コンテナー名" + +#: terminal/serializers/virtualapp_provider.py:29 +msgid "Container Status" +msgstr "コンテナステータス" + +#: terminal/serializers/virtualapp_provider.py:30 +msgid "Container Ports" +msgstr "コンテナポート" + #: terminal/tasks.py:33 msgid "Periodic delete terminal status" msgstr "端末の状態を定期的にクリーンアップする" @@ -7893,7 +7974,7 @@ msgstr "ユーザーの有効期限の定期的な検出" #: users/tasks.py:84 msgid "Check unused users" -msgstr "未使用のユーザーを確認する" +msgstr "未使用のユーザーのチェック" #: users/tasks.py:115 msgid "The user has not logged in recently and has been disabled." @@ -8791,7 +8872,15 @@ msgstr "ログアウトページのロゴ" msgid "Theme" msgstr "テーマ" -#: xpack/plugins/interface/models.py:44 xpack/plugins/interface/models.py:85 +#: xpack/plugins/interface/models.py:42 +msgid "Beian link" +msgstr "公安オンライン申告ジャンプリンク" + +#: xpack/plugins/interface/models.py:43 +msgid "Beian text" +msgstr "公安網登録番号" + +#: xpack/plugins/interface/models.py:46 xpack/plugins/interface/models.py:87 msgid "Interface setting" msgstr "インターフェイスの設定" diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 7d33a1c92..4de90d618 100644 --- a/apps/locale/zh/LC_MESSAGES/django.mo +++ b/apps/locale/zh/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a46c7aff5f314cbab9849e4c11671f81b849f98fad73887ced5b2012635b8a97 -size 135290 +oid sha256:8976c6b41e2c0ce591b2b257fd0352b4ed7517661f7df83ba74b302b8cf94b00 +size 137479 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 46f3f36ec..1302ce4f7 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-08 14:51+0800\n" +"POT-Creation-Date: 2023-12-08 15:33+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -114,83 +114,88 @@ msgstr "更改密码" msgid "Verify account" msgstr "验证账号" -#: accounts/const/automation.py:27 +#: accounts/const/automation.py:27 accounts/tasks/remove_account.py:14 +#: accounts/tasks/remove_account.py:23 +msgid "Remove account" +msgstr "移除账号" + +#: accounts/const/automation.py:28 msgid "Gather accounts" msgstr "收集账号" -#: accounts/const/automation.py:28 +#: accounts/const/automation.py:29 msgid "Verify gateway account" msgstr "验证网关账号" -#: accounts/const/automation.py:46 +#: accounts/const/automation.py:47 msgid "Specific secret" msgstr "指定" -#: accounts/const/automation.py:47 +#: accounts/const/automation.py:48 msgid "Random generate" msgstr "随机生成" -#: accounts/const/automation.py:51 ops/const.py:13 +#: accounts/const/automation.py:52 ops/const.py:13 msgid "Append SSH KEY" msgstr "追加" -#: accounts/const/automation.py:52 ops/const.py:14 +#: accounts/const/automation.py:53 ops/const.py:14 msgid "Empty and append SSH KEY" msgstr "清空所有并添加" -#: accounts/const/automation.py:53 ops/const.py:15 +#: accounts/const/automation.py:54 ops/const.py:15 msgid "Replace (Replace only keys pushed by JumpServer) " msgstr "替换 (只替换由 JumpServer 推送的密钥)" -#: accounts/const/automation.py:58 +#: accounts/const/automation.py:59 msgid "On asset create" msgstr "资产创建时" -#: accounts/const/automation.py:61 +#: accounts/const/automation.py:62 msgid "On perm add user" msgstr "授权变更时添加用户" -#: accounts/const/automation.py:63 +#: accounts/const/automation.py:64 msgid "On perm add user group" msgstr "授权变更时添加用户组" -#: accounts/const/automation.py:65 +#: accounts/const/automation.py:66 msgid "On perm add asset" msgstr "授权变更时添加资产" -#: accounts/const/automation.py:67 +#: accounts/const/automation.py:68 msgid "On perm add node" msgstr "授权变更时添加节点" -#: accounts/const/automation.py:69 +#: accounts/const/automation.py:70 msgid "On perm add account" msgstr "授权变更时添加账号" -#: accounts/const/automation.py:71 +#: accounts/const/automation.py:72 msgid "On asset join node" msgstr "资产变更时添加到节点" -#: accounts/const/automation.py:73 +#: accounts/const/automation.py:74 msgid "On user join group" msgstr "用户变更时添加到用户组" -#: accounts/const/automation.py:81 +#: accounts/const/automation.py:82 msgid "On perm change" msgstr "授权变更时" -#: accounts/const/automation.py:88 +#: accounts/const/automation.py:89 msgid "Inherit from group or node" msgstr "继承自用户组或资产节点" -#: accounts/const/automation.py:96 +#: accounts/const/automation.py:97 msgid "Create and push" msgstr "创建并推送" -#: accounts/const/automation.py:97 +#: accounts/const/automation.py:98 msgid "Only create" msgstr "仅创建" -#: accounts/const/automation.py:102 +#: accounts/const/automation.py:103 #: authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 #: notifications/backends/__init__.py:10 settings/serializers/msg.py:22 @@ -201,7 +206,7 @@ msgstr "仅创建" msgid "Email" msgstr "邮箱" -#: accounts/const/automation.py:104 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:87 msgid "SFTP" msgstr "SFTP" @@ -313,6 +318,10 @@ msgstr "可以验证账号" msgid "Can push account" msgstr "可以推送账号" +#: accounts/models/account.py:72 +msgid "Can remove account" +msgstr "可以移除账号" + #: accounts/models/automations/backup_account.py:27 msgid "Backup Type" msgstr "备份类型" @@ -585,7 +594,7 @@ msgstr "密码规则" #: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 #: assets/models/domain.py:19 assets/models/group.py:17 #: assets/models/label.py:18 assets/models/platform.py:16 -#: assets/models/platform.py:89 assets/serializers/asset/common.py:146 +#: assets/models/platform.py:95 assets/serializers/asset/common.py:146 #: assets/serializers/platform.py:118 assets/serializers/platform.py:235 #: authentication/backends/passkey/models.py:10 #: authentication/serializers/connect_token_secret.py:113 @@ -728,7 +737,7 @@ msgid "Exist policy" msgstr "账号存在策略" #: accounts/serializers/account/account.py:193 applications/models.py:11 -#: assets/models/label.py:21 assets/models/platform.py:90 +#: assets/models/label.py:21 assets/models/platform.py:96 #: assets/serializers/asset/common.py:122 assets/serializers/cagegory.py:12 #: assets/serializers/platform.py:140 assets/serializers/platform.py:236 #: perms/serializers/user_permission.py:25 settings/models.py:34 @@ -740,7 +749,7 @@ msgstr "类别" #: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24 #: acls/serializers/command_acl.py:19 applications/models.py:14 #: assets/models/_user.py:50 assets/models/automations/base.py:20 -#: assets/models/cmd_filter.py:74 assets/models/platform.py:91 +#: assets/models/cmd_filter.py:74 assets/models/platform.py:97 #: assets/serializers/asset/common.py:123 assets/serializers/platform.py:120 #: assets/serializers/platform.py:139 audits/serializers.py:53 #: audits/serializers.py:170 @@ -890,10 +899,8 @@ msgid "Special symbol" msgstr "特殊字符" #: accounts/serializers/account/template.py:18 -#, fuzzy -#| msgid "Special symbol" msgid "Exclude symbol" -msgstr "特殊字符" +msgstr "排除字符" #: accounts/serializers/account/template.py:36 msgid "Secret generation strategy for account creation" @@ -1703,7 +1710,7 @@ msgstr "端口" msgid "Address" msgstr "地址" -#: assets/models/asset/common.py:161 assets/models/platform.py:120 +#: assets/models/asset/common.py:161 assets/models/platform.py:126 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 #: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321 @@ -1990,31 +1997,43 @@ msgstr "账号验证方式" msgid "Verify account params" msgstr "账号验证参数" -#: assets/models/platform.py:92 tickets/models/ticket/general.py:300 +#: assets/models/platform.py:76 +msgid "Remove account enabled" +msgstr "开启账号移除" + +#: assets/models/platform.py:78 +msgid "Remove account method" +msgstr "账号移除方式" + +#: assets/models/platform.py:80 +msgid "Remove account params" +msgstr "账号移除参数" + +#: assets/models/platform.py:98 tickets/models/ticket/general.py:300 msgid "Meta" msgstr "元数据" -#: assets/models/platform.py:93 labels/models.py:13 +#: assets/models/platform.py:99 labels/models.py:13 msgid "Internal" msgstr "内置" -#: assets/models/platform.py:97 assets/serializers/platform.py:138 +#: assets/models/platform.py:103 assets/serializers/platform.py:138 msgid "Charset" msgstr "编码" -#: assets/models/platform.py:99 assets/serializers/platform.py:167 +#: assets/models/platform.py:105 assets/serializers/platform.py:167 msgid "Domain enabled" msgstr "启用网域" -#: assets/models/platform.py:101 assets/serializers/platform.py:166 +#: assets/models/platform.py:107 assets/serializers/platform.py:166 msgid "Su enabled" msgstr "启用账号切换" -#: assets/models/platform.py:102 assets/serializers/platform.py:144 +#: assets/models/platform.py:108 assets/serializers/platform.py:144 msgid "Su method" msgstr "账号切换方式" -#: assets/models/platform.py:103 assets/serializers/platform.py:147 +#: assets/models/platform.py:109 assets/serializers/platform.py:147 msgid "Custom fields" msgstr "自定义属性" @@ -2505,8 +2524,8 @@ msgid "User session" msgstr "用户会话" #: audits/models.py:308 -msgid "Offline ussr session" -msgstr "下限用户会话" +msgid "Offline user session" +msgstr "下线用户会话" #: audits/serializers.py:33 ops/models/adhoc.py:25 ops/models/base.py:16 #: ops/models/base.py:53 ops/models/job.py:150 ops/models/job.py:238 @@ -3129,6 +3148,21 @@ msgstr "组件" msgid "Expired now" msgstr "立刻过期" +#: authentication/serializers/connect_token_secret.py:169 +#: terminal/models/virtualapp/virtualapp.py:25 +msgid "Image name" +msgstr "镜像名称" + +#: authentication/serializers/connect_token_secret.py:170 +#: terminal/models/virtualapp/virtualapp.py:27 +msgid "Image port" +msgstr "镜像端口" + +#: authentication/serializers/connect_token_secret.py:171 +#: terminal/models/virtualapp/virtualapp.py:26 +msgid "Image protocol" +msgstr "镜像协议" + #: authentication/serializers/connection_token.py:16 msgid "Expired time" msgstr "过期时间" @@ -3403,22 +3437,19 @@ msgid "If you have any question, please contact the administrator" msgstr "如果有疑问或需求,请联系系统管理员" #: authentication/views/base.py:138 -#, fuzzy, python-format -#| msgid "WeCom query user failed" +#, python-format msgid "%s query user failed" -msgstr "企业微信查询用户失败" +msgstr "%s 查询用户失败" #: authentication/views/base.py:147 -#, fuzzy, python-format -#| msgid "The WeCom is already bound to another user" +#, python-format msgid "The %s is already bound to another user" -msgstr "该企业微信已经绑定其他用户" +msgstr "%s 已绑定到另一个用户" #: authentication/views/base.py:154 -#, fuzzy, python-format -#| msgid "Binding WeCom successfully" +#, python-format msgid "Binding %s successfully" -msgstr "绑定 企业微信 成功" +msgstr "绑定 %s 成功" #: authentication/views/dingtalk.py:42 msgid "DingTalk Error, Please contact your system administrator" @@ -3512,15 +3543,15 @@ msgstr "退出登录成功,返回到登录页面" #: authentication/views/slack.py:35 authentication/views/slack.py:126 msgid "Slack Error" -msgstr "Slack错误" +msgstr "Slack 错误" #: authentication/views/slack.py:63 msgid "Slack is already bound" -msgstr "Slack已经绑定" +msgstr "Slack 已经绑定" #: authentication/views/slack.py:128 msgid "Failed to get user from Slack" -msgstr "从Slack获取用户失败" +msgstr "从 Slack 获取用户失败" #: authentication/views/wecom.py:40 msgid "WeCom Error, Please contact your system administrator" @@ -3731,10 +3762,8 @@ msgid "Network error, please contact system administrator" msgstr "网络错误,请联系系统管理员" #: common/sdk/im/slack/__init__.py:76 -#, fuzzy -#| msgid "Unknown error: {}" msgid "Unknown error occur" -msgstr "未知错误: {}" +msgstr "发生未知错误" #: common/sdk/im/wecom/__init__.py:16 msgid "WeCom error, please contact system administrator" @@ -4731,9 +4760,13 @@ msgstr "一般设置" msgid "View permission tree" msgstr "查看授权树" -#: settings/api/dingtalk.py:31 settings/api/feishu.py:36 -#: settings/api/slack.py:34 settings/api/sms.py:160 settings/api/vault.py:40 -#: settings/api/wecom.py:37 +#: settings/api/chat.py:35 +msgid "Chat AI is not enabled" +msgstr "聊天 AI 没有开启" + +#: settings/api/chat.py:73 settings/api/dingtalk.py:31 +#: settings/api/feishu.py:36 settings/api/slack.py:34 settings/api/sms.py:160 +#: settings/api/vault.py:40 settings/api/wecom.py:37 msgid "Test success" msgstr "测试成功" @@ -4795,6 +4828,10 @@ msgid "Can change vault setting" msgstr "可以更改 vault 设置" #: settings/models.py:166 +msgid "Can change chat ai setting" +msgstr "可以修改聊天 AI 设置" + +#: settings/models.py:167 msgid "Can change system msg sub setting" msgstr "消息订阅设置" @@ -4859,10 +4896,8 @@ msgid "FeiShu Auth" msgstr "飞书 认证" #: settings/serializers/auth/base.py:20 -#, fuzzy -#| msgid "CAS Auth" msgid "Slack Auth" -msgstr "CAS 认证" +msgstr "Slack 认证" #: settings/serializers/auth/base.py:21 msgid "WeCom Auth" @@ -5182,10 +5217,8 @@ msgid "SP cert" msgstr "SP 证书" #: settings/serializers/auth/slack.py:12 -#, fuzzy -#| msgid "Enable CAS Auth" msgid "Enable Slack Auth" -msgstr "启用 CAS 认证" +msgstr "启用 Slack 认证" #: settings/serializers/auth/sms.py:17 msgid "Enable SMS" @@ -5398,6 +5431,22 @@ msgid "Mount Point" msgstr "挂在点" #: settings/serializers/feature.py:60 +msgid "Chat AI" +msgstr "聊天 AI" + +#: settings/serializers/feature.py:67 +msgid "Base Url" +msgstr "基本地址" + +#: settings/serializers/feature.py:70 templates/_header_bar.html:90 +msgid "API Key" +msgstr "API Key" + +#: settings/serializers/feature.py:76 +msgid "GPT Model" +msgstr "GPT 模型" + +#: settings/serializers/feature.py:100 msgid "Enable tickets" msgstr "启用工单" @@ -5960,8 +6009,6 @@ msgid "Succeed: Match {} s user" msgstr "成功匹配 {} 个用户" #: settings/utils/ldap.py:653 -#, fuzzy -#| msgid "Can test asset connectivity" msgid "Please test the connection first" msgstr "请先测试连接" @@ -6037,10 +6084,6 @@ msgstr "管理页面" msgid "User page" msgstr "用户页面" -#: templates/_header_bar.html:90 -msgid "API Key" -msgstr "API Key" - #: templates/_header_bar.html:91 msgid "Logout" msgstr "注销登录" @@ -6666,6 +6709,26 @@ msgstr "验证码不正确" msgid "You have already joined this session" msgstr "您已经加入过此会话" +#: terminal/models/virtualapp/provider.py:17 +#: terminal/models/virtualapp/virtualapp.py:36 +#: terminal/models/virtualapp/virtualapp.py:97 +#: terminal/serializers/virtualapp.py:32 +msgid "Virtual app" +msgstr "虚拟应用" + +#: terminal/models/virtualapp/virtualapp.py:32 +msgid "Providers" +msgstr "提供商" + +#: terminal/models/virtualapp/virtualapp.py:94 +#: terminal/serializers/virtualapp.py:34 +msgid "App Provider" +msgstr "应用提供商" + +#: terminal/models/virtualapp/virtualapp.py:102 +msgid "Virtual app publication" +msgstr "虚拟应用发布" + #: terminal/notifications.py:25 msgid "Sessions" msgstr "会话管理" @@ -6978,6 +7041,26 @@ msgstr "会话 ID" msgid "Not found" msgstr "没有发现" +#: terminal/serializers/virtualapp_provider.py:26 +msgid "Container ID" +msgstr "容器 ID" + +#: terminal/serializers/virtualapp_provider.py:27 +msgid "Container Image" +msgstr "容器镜像" + +#: terminal/serializers/virtualapp_provider.py:28 +msgid "Container Name" +msgstr "容器名称" + +#: terminal/serializers/virtualapp_provider.py:29 +msgid "Container Status" +msgstr "容器状态" + +#: terminal/serializers/virtualapp_provider.py:30 +msgid "Container Ports" +msgstr "容器端口" + #: terminal/tasks.py:33 msgid "Periodic delete terminal status" msgstr "周期清理终端状态" @@ -7781,7 +7864,7 @@ msgstr "周期检测用户过期" #: users/tasks.py:84 msgid "Check unused users" -msgstr "校验用户已过期" +msgstr "检查未使用的用户" #: users/tasks.py:115 msgid "The user has not logged in recently and has been disabled." @@ -8664,7 +8747,15 @@ msgstr "退出页面logo" msgid "Theme" msgstr "主题" -#: xpack/plugins/interface/models.py:44 xpack/plugins/interface/models.py:85 +#: xpack/plugins/interface/models.py:42 +msgid "Beian link" +msgstr "公安联网备案跳转链接" + +#: xpack/plugins/interface/models.py:43 +msgid "Beian text" +msgstr "公安联网备案号" + +#: xpack/plugins/interface/models.py:46 xpack/plugins/interface/models.py:87 msgid "Interface setting" msgstr "界面设置" diff --git a/apps/rbac/migrations/0014_auto_20231208_1548.py b/apps/rbac/migrations/0014_auto_20231208_1548.py new file mode 100644 index 000000000..33581c5a0 --- /dev/null +++ b/apps/rbac/migrations/0014_auto_20231208_1548.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.10 on 2023-12-08 07:48 + +from django.db import migrations + + +def migrate_remove_offline_ussrsession_permission(apps, *args): + perm_model = apps.get_model('auth', 'Permission') + perm_model.objects.filter(codename='offline_ussrsession').delete() + + +class Migration(migrations.Migration): + dependencies = [ + ('rbac', '0013_alter_menupermission_options'), + ] + + operations = [ + migrations.RunPython(migrate_remove_offline_ussrsession_permission) + ] diff --git a/apps/settings/serializers/feature.py b/apps/settings/serializers/feature.py index 3b7f80fef..c301585ff 100644 --- a/apps/settings/serializers/feature.py +++ b/apps/settings/serializers/feature.py @@ -67,7 +67,7 @@ class ChatAISettingSerializer(serializers.Serializer): max_length=256, allow_blank=True, required=False, label=_('Base Url') ) GPT_API_KEY = EncryptedField( - max_length=256, allow_blank=True, required=False, label=_('Api Key'), + max_length=256, allow_blank=True, required=False, label=_('API Key'), ) GPT_PROXY = serializers.CharField( max_length=256, allow_blank=True, required=False, label=_('Proxy') diff --git a/apps/terminal/models/virtualapp/provider.py b/apps/terminal/models/virtualapp/provider.py index 90a8df2ef..8642ff065 100644 --- a/apps/terminal/models/virtualapp/provider.py +++ b/apps/terminal/models/virtualapp/provider.py @@ -14,7 +14,7 @@ class AppProvider(JMSBaseModel): related_name='app_provider', verbose_name=_('Terminal') ) apps = models.ManyToManyField( - 'VirtualApp', verbose_name=_('VirtualApp'), + 'VirtualApp', verbose_name=_('Virtual app'), through='VirtualAppPublication', through_fields=('provider', 'app'), ) diff --git a/apps/terminal/models/virtualapp/virtualapp.py b/apps/terminal/models/virtualapp/virtualapp.py index 6035c76c4..877dea387 100644 --- a/apps/terminal/models/virtualapp/virtualapp.py +++ b/apps/terminal/models/virtualapp/virtualapp.py @@ -94,7 +94,7 @@ class VirtualAppPublication(JMSBaseModel): 'AppProvider', on_delete=models.CASCADE, related_name='publications', verbose_name=_('App Provider') ) app = models.ForeignKey( - 'VirtualApp', on_delete=models.CASCADE, related_name='publications', verbose_name=_('Virtual App') + 'VirtualApp', on_delete=models.CASCADE, related_name='publications', verbose_name=_('Virtual app') ) status = models.CharField(max_length=16, default='pending', verbose_name=_('Status')) diff --git a/apps/terminal/serializers/virtualapp.py b/apps/terminal/serializers/virtualapp.py index f55226eaf..5f959e490 100644 --- a/apps/terminal/serializers/virtualapp.py +++ b/apps/terminal/serializers/virtualapp.py @@ -29,7 +29,7 @@ class VirtualAppSerializer(serializers.ModelSerializer): class VirtualAppPublicationSerializer(serializers.ModelSerializer): - app = ObjectRelatedField(attrs=('id', 'name', 'image_name',), label=_("Virtual App"), + app = ObjectRelatedField(attrs=('id', 'name', 'image_name',), label=_("Virtual app"), queryset=VirtualApp.objects.all()) provider = ObjectRelatedField(queryset=AppProvider.objects.all(), label=_("App Provider")) status = LabeledChoiceField(choices=PublishStatus.choices, label=_("Status"), default=Status.pending) diff --git a/apps/users/migrations/0044_usersession.py b/apps/users/migrations/0044_usersession.py index 325cd4f2c..9793eddd4 100644 --- a/apps/users/migrations/0044_usersession.py +++ b/apps/users/migrations/0044_usersession.py @@ -1,9 +1,10 @@ # Generated by Django 4.1.10 on 2023-09-14 07:23 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): @@ -30,7 +31,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'User session', 'ordering': ['-date_created'], - 'permissions': [('offline_usersession', 'Offline ussr session')], + 'permissions': [('offline_usersession', 'Offline user session')], }, ), ]