mirror of https://github.com/jumpserver/jumpserver
fix: 修复翻译
parent
ebbae36c49
commit
c628ba1c4b
|
@ -1,4 +1,4 @@
|
|||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
from common.drf.serializers import BulkModelSerializer
|
||||
from common.drf.serializers import MethodSerializer
|
||||
|
|
|
@ -513,4 +513,14 @@ class AuthMixin(CommonMixin, AuthPreCheckMixin, AuthACLMixin, MFAMixin, AuthPost
|
|||
args = self.request.META.get('QUERY_STRING', '')
|
||||
if args:
|
||||
guard_url = "%s?%s" % (guard_url, args)
|
||||
return redirect(guard_url)
|
||||
response = redirect(guard_url)
|
||||
self.set_browser_default_language_if_need(response)
|
||||
return response
|
||||
|
||||
def set_browser_default_language_if_need(self, response):
|
||||
# en, ja, zh-CN,zh;q=0.9
|
||||
default_lang = self.request.headers.get('Accept-Language')
|
||||
if 'zh' in default_lang:
|
||||
default_lang = 'zh'
|
||||
lang = response.cookies.get(settings.LANGUAGE_COOKIE_NAME) or default_lang
|
||||
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang)
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-12-13 15:01+0800\n"
|
||||
"POT-Creation-Date: 2023-03-02 12:21+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -24,7 +24,7 @@ msgstr "Acls"
|
|||
|
||||
#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:47
|
||||
#: applications/models/application.py:219 assets/models/asset.py:138
|
||||
#: assets/models/base.py:173 assets/models/cluster.py:18
|
||||
#: assets/models/base.py:177 assets/models/cluster.py:18
|
||||
#: assets/models/cmd_filter.py:27 assets/models/domain.py:23
|
||||
#: assets/models/group.py:20 assets/models/label.py:18 ops/mixin.py:24
|
||||
#: orgs/models.py:70 perms/models/base.py:83 rbac/models/role.py:29
|
||||
|
@ -55,7 +55,7 @@ msgstr "アクティブ"
|
|||
|
||||
#: acls/models/base.py:32 applications/models/application.py:232
|
||||
#: assets/models/asset.py:143 assets/models/asset.py:231
|
||||
#: assets/models/backup.py:54 assets/models/base.py:178
|
||||
#: assets/models/backup.py:54 assets/models/base.py:182
|
||||
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:52
|
||||
#: assets/models/cmd_filter.py:100 assets/models/domain.py:24
|
||||
#: assets/models/domain.py:65 assets/models/group.py:23
|
||||
|
@ -155,7 +155,7 @@ msgid "Format for comma-delimited string, with * indicating a match all. "
|
|||
msgstr "コンマ区切り文字列の形式。* はすべて一致することを示します。"
|
||||
|
||||
#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17
|
||||
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:174
|
||||
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:178
|
||||
#: assets/models/gathered_user.py:15 audits/models.py:139
|
||||
#: authentication/forms.py:25 authentication/forms.py:27
|
||||
#: authentication/models.py:260
|
||||
|
@ -186,7 +186,7 @@ msgstr ""
|
|||
#: authentication/templates/authentication/_msg_oauth_bind.html:12
|
||||
#: authentication/templates/authentication/_msg_rest_password_success.html:8
|
||||
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8
|
||||
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:54
|
||||
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:58
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -353,7 +353,7 @@ msgid "Type display"
|
|||
msgstr "タイプ表示"
|
||||
|
||||
#: applications/serializers/application.py:105 assets/models/asset.py:230
|
||||
#: assets/models/base.py:179 assets/models/cluster.py:26
|
||||
#: assets/models/base.py:183 assets/models/cluster.py:26
|
||||
#: assets/models/cmd_filter.py:53 assets/models/domain.py:26
|
||||
#: assets/models/gathered_user.py:19 assets/models/group.py:22
|
||||
#: assets/models/label.py:25 assets/serializers/account.py:18
|
||||
|
@ -367,7 +367,7 @@ msgstr "タイプ表示"
|
|||
msgid "Date created"
|
||||
msgstr "作成された日付"
|
||||
|
||||
#: applications/serializers/application.py:106 assets/models/base.py:180
|
||||
#: applications/serializers/application.py:106 assets/models/base.py:184
|
||||
#: assets/models/cmd_filter.py:54 assets/models/gathered_user.py:20
|
||||
#: assets/serializers/account.py:21 assets/serializers/cmd_filter.py:29
|
||||
#: assets/serializers/cmd_filter.py:49 common/db/models.py:117
|
||||
|
@ -650,7 +650,7 @@ msgstr "資産番号"
|
|||
msgid "Labels"
|
||||
msgstr "ラベル"
|
||||
|
||||
#: assets/models/asset.py:229 assets/models/base.py:181
|
||||
#: assets/models/asset.py:229 assets/models/base.py:185
|
||||
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:56
|
||||
#: assets/models/cmd_filter.py:103 assets/models/group.py:21
|
||||
#: common/db/models.py:114 common/mixins/models.py:49 orgs/models.py:71
|
||||
|
@ -786,32 +786,32 @@ msgstr "成功は"
|
|||
msgid "Account backup execution"
|
||||
msgstr "アカウントバックアップの実行"
|
||||
|
||||
#: assets/models/base.py:28 assets/tasks/const.py:51 audits/const.py:5
|
||||
#: assets/models/base.py:29 assets/tasks/const.py:51 audits/const.py:5
|
||||
#: common/utils/ip/geoip/utils.py:31 common/utils/ip/geoip/utils.py:37
|
||||
#: common/utils/ip/utils.py:84
|
||||
msgid "Unknown"
|
||||
msgstr "不明"
|
||||
|
||||
#: assets/models/base.py:29
|
||||
#: assets/models/base.py:30
|
||||
msgid "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#: assets/models/base.py:30 audits/models.py:136
|
||||
#: assets/models/base.py:31 audits/models.py:136
|
||||
#: xpack/plugins/change_auth_plan/serializers/app.py:88
|
||||
#: xpack/plugins/change_auth_plan/serializers/asset.py:199
|
||||
#: xpack/plugins/cloud/const.py:41
|
||||
msgid "Failed"
|
||||
msgstr "失敗しました"
|
||||
|
||||
#: assets/models/base.py:36 assets/serializers/domain.py:47
|
||||
#: assets/models/base.py:37 assets/serializers/domain.py:47
|
||||
msgid "Connectivity"
|
||||
msgstr "接続性"
|
||||
|
||||
#: assets/models/base.py:38 authentication/models.py:263
|
||||
#: assets/models/base.py:39 authentication/models.py:263
|
||||
msgid "Date verified"
|
||||
msgstr "確認済みの日付"
|
||||
|
||||
#: assets/models/base.py:175 assets/serializers/base.py:14
|
||||
#: assets/models/base.py:179 assets/serializers/base.py:14
|
||||
#: assets/serializers/base.py:37 assets/serializers/system_user.py:29
|
||||
#: audits/signal_handlers.py:58 authentication/confirm/password.py:9
|
||||
#: authentication/forms.py:32
|
||||
|
@ -829,14 +829,14 @@ msgstr "確認済みの日付"
|
|||
msgid "Password"
|
||||
msgstr "パスワード"
|
||||
|
||||
#: assets/models/base.py:176 assets/serializers/base.py:41
|
||||
#: assets/models/base.py:180 assets/serializers/base.py:41
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:53
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:130
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:206
|
||||
msgid "SSH private key"
|
||||
msgstr "SSH秘密鍵"
|
||||
|
||||
#: assets/models/base.py:177 xpack/plugins/change_auth_plan/models/asset.py:56
|
||||
#: assets/models/base.py:181 xpack/plugins/change_auth_plan/models/asset.py:56
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:126
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:202
|
||||
msgid "SSH public key"
|
||||
|
@ -954,7 +954,7 @@ msgstr "テストゲートウェイ"
|
|||
msgid "Unable to connect to port {port} on {ip}"
|
||||
msgstr "{ip} でポート {port} に接続できません"
|
||||
|
||||
#: assets/models/domain.py:134 authentication/middleware.py:75
|
||||
#: assets/models/domain.py:134 authentication/middleware.py:87
|
||||
#: xpack/plugins/cloud/providers/fc.py:48
|
||||
msgid "Authentication failed"
|
||||
msgstr "認証に失敗しました"
|
||||
|
@ -1722,7 +1722,7 @@ msgid "Authentication"
|
|||
msgstr "認証"
|
||||
|
||||
#: authentication/backends/custom.py:58
|
||||
#: authentication/backends/oauth2/backends.py:158 authentication/models.py:158
|
||||
#: authentication/backends/oauth2/backends.py:167 authentication/models.py:158
|
||||
msgid "User invalid, disabled or expired"
|
||||
msgstr "ユーザーが無効、無効、または期限切れです"
|
||||
|
||||
|
@ -1937,15 +1937,15 @@ msgstr "本を飛ばすは拘束されていません"
|
|||
msgid "Your password is invalid"
|
||||
msgstr "パスワードが無効です"
|
||||
|
||||
#: authentication/errors/redirect.py:85 authentication/mixins.py:306
|
||||
#: authentication/errors/redirect.py:85 authentication/mixins.py:307
|
||||
msgid "Your password is too simple, please change it for security"
|
||||
msgstr "パスワードがシンプルすぎるので、セキュリティのために変更してください"
|
||||
|
||||
#: authentication/errors/redirect.py:93 authentication/mixins.py:313
|
||||
#: authentication/errors/redirect.py:93 authentication/mixins.py:314
|
||||
msgid "You should to change your password before login"
|
||||
msgstr "ログインする前にパスワードを変更する必要があります"
|
||||
|
||||
#: authentication/errors/redirect.py:101 authentication/mixins.py:320
|
||||
#: authentication/errors/redirect.py:101 authentication/mixins.py:321
|
||||
msgid "Your password has expired, please reset before logging in"
|
||||
msgstr ""
|
||||
"パスワードの有効期限が切れました。ログインする前にリセットしてください。"
|
||||
|
@ -2044,15 +2044,15 @@ msgstr "電話番号を設定して有効にする"
|
|||
msgid "Clear phone number to disable"
|
||||
msgstr "無効にする電話番号をクリアする"
|
||||
|
||||
#: authentication/middleware.py:76 settings/utils/ldap.py:652
|
||||
#: authentication/middleware.py:88 settings/utils/ldap.py:652
|
||||
msgid "Authentication failed (before login check failed): {}"
|
||||
msgstr "認証に失敗しました (ログインチェックが失敗する前): {}"
|
||||
|
||||
#: authentication/mixins.py:256
|
||||
#: authentication/mixins.py:257
|
||||
msgid "The MFA type ({}) is not enabled"
|
||||
msgstr "MFAタイプ ({}) が有効になっていない"
|
||||
|
||||
#: authentication/mixins.py:296
|
||||
#: authentication/mixins.py:297
|
||||
msgid "Please change your password"
|
||||
msgstr "パスワードを変更してください"
|
||||
|
||||
|
@ -4739,8 +4739,8 @@ msgstr "期限切れです。"
|
|||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your password has expired, please click <a href="
|
||||
"\"%(user_password_update_url)s\"> this link </a> update password.\n"
|
||||
" Your password has expired, please click <a "
|
||||
"href=\"%(user_password_update_url)s\"> this link </a> update password.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
|
@ -4761,34 +4761,34 @@ msgid ""
|
|||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" クリックしてください <a href=\"%(user_password_update_url)s"
|
||||
"\"> リンク </a> パスワードの更新\n"
|
||||
" クリックしてください <a "
|
||||
"href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n"
|
||||
" "
|
||||
|
||||
#: templates/_message.html:43
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your information was incomplete. Please click <a href="
|
||||
"\"%(first_login_url)s\"> this link </a>to complete your information.\n"
|
||||
" Your information was incomplete. Please click <a "
|
||||
"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" あなたの情報が不完全なので、クリックしてください。 <a href="
|
||||
"\"%(first_login_url)s\"> リンク </a> 補完\n"
|
||||
" あなたの情報が不完全なので、クリックしてください。 <a "
|
||||
"href=\"%(first_login_url)s\"> リンク </a> 補完\n"
|
||||
" "
|
||||
|
||||
#: templates/_message.html:56
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your ssh public key not set or expired. Please click <a href="
|
||||
"\"%(user_pubkey_update)s\"> this link </a>to update\n"
|
||||
" Your ssh public key not set or expired. Please click <a "
|
||||
"href=\"%(user_pubkey_update)s\"> this link </a>to update\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" SSHキーが設定されていないか無効になっている場合は、 <a href="
|
||||
"\"%(user_pubkey_update)s\"> リンク </a> 更新\n"
|
||||
" SSHキーが設定されていないか無効になっている場合は、 <a "
|
||||
"href=\"%(user_pubkey_update)s\"> リンク </a> 更新\n"
|
||||
" "
|
||||
|
||||
#: templates/_mfa_login_field.html:28
|
||||
|
@ -5008,7 +5008,7 @@ msgid "RDP Port"
|
|||
msgstr "RDP ポート"
|
||||
|
||||
#: terminal/models/endpoint.py:27 terminal/models/endpoint.py:95
|
||||
#: terminal/serializers/endpoint.py:57 terminal/serializers/storage.py:38
|
||||
#: terminal/serializers/endpoint.py:61 terminal/serializers/storage.py:38
|
||||
#: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
|
||||
#: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
|
||||
msgid "Endpoint"
|
||||
|
@ -5199,15 +5199,15 @@ msgstr "レベル"
|
|||
msgid "Batch danger command alert"
|
||||
msgstr "一括危険コマンド警告"
|
||||
|
||||
#: terminal/serializers/endpoint.py:14
|
||||
#: terminal/serializers/endpoint.py:15
|
||||
msgid "Magnus listen db port"
|
||||
msgstr "Magnus がリッスンするデータベース ポート"
|
||||
|
||||
#: terminal/serializers/endpoint.py:17
|
||||
#: terminal/serializers/endpoint.py:18
|
||||
msgid "Magnus Listen port range"
|
||||
msgstr "Magnus がリッスンするポート範囲"
|
||||
|
||||
#: terminal/serializers/endpoint.py:19
|
||||
#: terminal/serializers/endpoint.py:20
|
||||
msgid ""
|
||||
"The range of ports that Magnus listens on is modified in the configuration "
|
||||
"file"
|
||||
|
@ -5215,10 +5215,15 @@ msgstr "Magnus がリッスンするポート範囲を構成ファイルで変
|
|||
|
||||
#: terminal/serializers/endpoint.py:51
|
||||
msgid ""
|
||||
"If asset IP addresses under different endpoints conflict, use asset labels"
|
||||
"Format for comma-delimited string, with * indicating a match all. Such as: "
|
||||
"192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:"
|
||||
"db8:1a:1110::/64<br>If asset IP addresses under different endpoints "
|
||||
"conflict, use asset labels"
|
||||
msgstr ""
|
||||
"異なるエンドポイントの下に競合するアセットIPがある場合は、アセットタグを使用"
|
||||
"して実装します"
|
||||
"コンマ区切り文字列の形式。* はすべて一致することを示します。例: "
|
||||
"192.168.10.1、192.168.1.0/24、10.1.1.1-10.1.1.20、2001:db8:2de::e13、2001:"
|
||||
"db8:1a:1110:::/64<br>異なるエンドポイントの下に競合するアセットIPがある場合"
|
||||
"は、アセットタグを使用して実装します"
|
||||
|
||||
#: terminal/serializers/session.py:15 terminal/serializers/session.py:42
|
||||
msgid "Terminal display"
|
||||
|
@ -5342,7 +5347,7 @@ msgstr "見つかりません"
|
|||
msgid "view"
|
||||
msgstr "表示"
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:65
|
||||
#: terminal/utils/db_port_mapper.py:78
|
||||
msgid ""
|
||||
"No available port is matched. The number of databases may have exceeded the "
|
||||
"number of ports open to the database agent service, Contact the "
|
||||
|
@ -5352,7 +5357,7 @@ msgstr ""
|
|||
"サービスによって開かれたポートの数を超えた可能性があります。さらにポートを開"
|
||||
"くには、管理者に連絡してください。"
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:91
|
||||
#: terminal/utils/db_port_mapper.py:104
|
||||
msgid ""
|
||||
"No ports can be used, check and modify the limit on the number of ports that "
|
||||
"Magnus listens on in the configuration file."
|
||||
|
@ -5360,7 +5365,7 @@ msgstr ""
|
|||
"使用できるポートがありません。設定ファイルで Magnus がリッスンするポート数の"
|
||||
"制限を確認して変更してください. "
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:93
|
||||
#: terminal/utils/db_port_mapper.py:106
|
||||
msgid "All available port count: {}, Already use port count: {}"
|
||||
msgstr "使用可能なすべてのポート数: {}、すでに使用しているポート数: {}"
|
||||
|
||||
|
@ -7079,3 +7084,9 @@ msgstr "究極のエディション"
|
|||
#: xpack/plugins/license/models.py:77
|
||||
msgid "Community edition"
|
||||
msgstr "コミュニティ版"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If asset IP addresses under different endpoints conflict, use asset labels"
|
||||
#~ msgstr ""
|
||||
#~ "異なるエンドポイントの下に競合するアセットIPがある場合は、アセットタグを使"
|
||||
#~ "用して実装します"
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: JumpServer 0.3.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-12-13 15:00+0800\n"
|
||||
"POT-Creation-Date: 2023-03-02 12:21+0800\n"
|
||||
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
||||
|
@ -23,7 +23,7 @@ msgstr "访问控制"
|
|||
|
||||
#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:47
|
||||
#: applications/models/application.py:219 assets/models/asset.py:138
|
||||
#: assets/models/base.py:173 assets/models/cluster.py:18
|
||||
#: assets/models/base.py:177 assets/models/cluster.py:18
|
||||
#: assets/models/cmd_filter.py:27 assets/models/domain.py:23
|
||||
#: assets/models/group.py:20 assets/models/label.py:18 ops/mixin.py:24
|
||||
#: orgs/models.py:70 perms/models/base.py:83 rbac/models/role.py:29
|
||||
|
@ -54,7 +54,7 @@ msgstr "激活中"
|
|||
|
||||
#: acls/models/base.py:32 applications/models/application.py:232
|
||||
#: assets/models/asset.py:143 assets/models/asset.py:231
|
||||
#: assets/models/backup.py:54 assets/models/base.py:178
|
||||
#: assets/models/backup.py:54 assets/models/base.py:182
|
||||
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:52
|
||||
#: assets/models/cmd_filter.py:100 assets/models/domain.py:24
|
||||
#: assets/models/domain.py:65 assets/models/group.py:23
|
||||
|
@ -154,7 +154,7 @@ msgid "Format for comma-delimited string, with * indicating a match all. "
|
|||
msgstr "格式为逗号分隔的字符串, * 表示匹配所有. "
|
||||
|
||||
#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:17
|
||||
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:174
|
||||
#: acls/serializers/login_asset_acl.py:51 assets/models/base.py:178
|
||||
#: assets/models/gathered_user.py:15 audits/models.py:139
|
||||
#: authentication/forms.py:25 authentication/forms.py:27
|
||||
#: authentication/models.py:260
|
||||
|
@ -184,7 +184,7 @@ msgstr ""
|
|||
#: authentication/templates/authentication/_msg_oauth_bind.html:12
|
||||
#: authentication/templates/authentication/_msg_rest_password_success.html:8
|
||||
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8
|
||||
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:54
|
||||
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:58
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -348,7 +348,7 @@ msgid "Type display"
|
|||
msgstr "类型名称"
|
||||
|
||||
#: applications/serializers/application.py:105 assets/models/asset.py:230
|
||||
#: assets/models/base.py:179 assets/models/cluster.py:26
|
||||
#: assets/models/base.py:183 assets/models/cluster.py:26
|
||||
#: assets/models/cmd_filter.py:53 assets/models/domain.py:26
|
||||
#: assets/models/gathered_user.py:19 assets/models/group.py:22
|
||||
#: assets/models/label.py:25 assets/serializers/account.py:18
|
||||
|
@ -362,7 +362,7 @@ msgstr "类型名称"
|
|||
msgid "Date created"
|
||||
msgstr "创建日期"
|
||||
|
||||
#: applications/serializers/application.py:106 assets/models/base.py:180
|
||||
#: applications/serializers/application.py:106 assets/models/base.py:184
|
||||
#: assets/models/cmd_filter.py:54 assets/models/gathered_user.py:20
|
||||
#: assets/serializers/account.py:21 assets/serializers/cmd_filter.py:29
|
||||
#: assets/serializers/cmd_filter.py:49 common/db/models.py:117
|
||||
|
@ -643,7 +643,7 @@ msgstr "资产编号"
|
|||
msgid "Labels"
|
||||
msgstr "标签管理"
|
||||
|
||||
#: assets/models/asset.py:229 assets/models/base.py:181
|
||||
#: assets/models/asset.py:229 assets/models/base.py:185
|
||||
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:56
|
||||
#: assets/models/cmd_filter.py:103 assets/models/group.py:21
|
||||
#: common/db/models.py:114 common/mixins/models.py:49 orgs/models.py:71
|
||||
|
@ -779,32 +779,32 @@ msgstr "是否成功"
|
|||
msgid "Account backup execution"
|
||||
msgstr "账号备份执行"
|
||||
|
||||
#: assets/models/base.py:28 assets/tasks/const.py:51 audits/const.py:5
|
||||
#: assets/models/base.py:29 assets/tasks/const.py:51 audits/const.py:5
|
||||
#: common/utils/ip/geoip/utils.py:31 common/utils/ip/geoip/utils.py:37
|
||||
#: common/utils/ip/utils.py:84
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#: assets/models/base.py:29
|
||||
#: assets/models/base.py:30
|
||||
msgid "Ok"
|
||||
msgstr "成功"
|
||||
|
||||
#: assets/models/base.py:30 audits/models.py:136
|
||||
#: assets/models/base.py:31 audits/models.py:136
|
||||
#: xpack/plugins/change_auth_plan/serializers/app.py:88
|
||||
#: xpack/plugins/change_auth_plan/serializers/asset.py:199
|
||||
#: xpack/plugins/cloud/const.py:41
|
||||
msgid "Failed"
|
||||
msgstr "失败"
|
||||
|
||||
#: assets/models/base.py:36 assets/serializers/domain.py:47
|
||||
#: assets/models/base.py:37 assets/serializers/domain.py:47
|
||||
msgid "Connectivity"
|
||||
msgstr "可连接性"
|
||||
|
||||
#: assets/models/base.py:38 authentication/models.py:263
|
||||
#: assets/models/base.py:39 authentication/models.py:263
|
||||
msgid "Date verified"
|
||||
msgstr "校验日期"
|
||||
|
||||
#: assets/models/base.py:175 assets/serializers/base.py:14
|
||||
#: assets/models/base.py:179 assets/serializers/base.py:14
|
||||
#: assets/serializers/base.py:37 assets/serializers/system_user.py:29
|
||||
#: audits/signal_handlers.py:58 authentication/confirm/password.py:9
|
||||
#: authentication/forms.py:32
|
||||
|
@ -822,14 +822,14 @@ msgstr "校验日期"
|
|||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: assets/models/base.py:176 assets/serializers/base.py:41
|
||||
#: assets/models/base.py:180 assets/serializers/base.py:41
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:53
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:130
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:206
|
||||
msgid "SSH private key"
|
||||
msgstr "SSH密钥"
|
||||
|
||||
#: assets/models/base.py:177 xpack/plugins/change_auth_plan/models/asset.py:56
|
||||
#: assets/models/base.py:181 xpack/plugins/change_auth_plan/models/asset.py:56
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:126
|
||||
#: xpack/plugins/change_auth_plan/models/asset.py:202
|
||||
msgid "SSH public key"
|
||||
|
@ -947,7 +947,7 @@ msgstr "测试网关"
|
|||
msgid "Unable to connect to port {port} on {ip}"
|
||||
msgstr "无法连接到 {ip} 上的端口 {port}"
|
||||
|
||||
#: assets/models/domain.py:134 authentication/middleware.py:75
|
||||
#: assets/models/domain.py:134 authentication/middleware.py:87
|
||||
#: xpack/plugins/cloud/providers/fc.py:48
|
||||
msgid "Authentication failed"
|
||||
msgstr "认证失败"
|
||||
|
@ -1706,7 +1706,7 @@ msgid "Authentication"
|
|||
msgstr "认证"
|
||||
|
||||
#: authentication/backends/custom.py:58
|
||||
#: authentication/backends/oauth2/backends.py:158 authentication/models.py:158
|
||||
#: authentication/backends/oauth2/backends.py:167 authentication/models.py:158
|
||||
msgid "User invalid, disabled or expired"
|
||||
msgstr "用户无效,已禁用或已过期"
|
||||
|
||||
|
@ -1913,15 +1913,15 @@ msgstr "没有绑定飞书"
|
|||
msgid "Your password is invalid"
|
||||
msgstr "您的密码无效"
|
||||
|
||||
#: authentication/errors/redirect.py:85 authentication/mixins.py:306
|
||||
#: authentication/errors/redirect.py:85 authentication/mixins.py:307
|
||||
msgid "Your password is too simple, please change it for security"
|
||||
msgstr "你的密码过于简单,为了安全,请修改"
|
||||
|
||||
#: authentication/errors/redirect.py:93 authentication/mixins.py:313
|
||||
#: authentication/errors/redirect.py:93 authentication/mixins.py:314
|
||||
msgid "You should to change your password before login"
|
||||
msgstr "登录完成前,请先修改密码"
|
||||
|
||||
#: authentication/errors/redirect.py:101 authentication/mixins.py:320
|
||||
#: authentication/errors/redirect.py:101 authentication/mixins.py:321
|
||||
msgid "Your password has expired, please reset before logging in"
|
||||
msgstr "您的密码已过期,先修改再登录"
|
||||
|
||||
|
@ -2018,15 +2018,15 @@ msgstr "设置手机号码启用"
|
|||
msgid "Clear phone number to disable"
|
||||
msgstr "清空手机号码禁用"
|
||||
|
||||
#: authentication/middleware.py:76 settings/utils/ldap.py:652
|
||||
#: authentication/middleware.py:88 settings/utils/ldap.py:652
|
||||
msgid "Authentication failed (before login check failed): {}"
|
||||
msgstr "认证失败(登录前检查失败): {}"
|
||||
|
||||
#: authentication/mixins.py:256
|
||||
#: authentication/mixins.py:257
|
||||
msgid "The MFA type ({}) is not enabled"
|
||||
msgstr "该 MFA ({}) 方式没有启用"
|
||||
|
||||
#: authentication/mixins.py:296
|
||||
#: authentication/mixins.py:297
|
||||
msgid "Please change your password"
|
||||
msgstr "请修改密码"
|
||||
|
||||
|
@ -4660,13 +4660,13 @@ msgstr "过期。"
|
|||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your password has expired, please click <a href="
|
||||
"\"%(user_password_update_url)s\"> this link </a> update password.\n"
|
||||
" Your password has expired, please click <a "
|
||||
"href=\"%(user_password_update_url)s\"> this link </a> update password.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" 您的密码已经过期,请点击 <a href="
|
||||
"\"%(user_password_update_url)s\"> 链接 </a> 更新密码\n"
|
||||
" 您的密码已经过期,请点击 <a "
|
||||
"href=\"%(user_password_update_url)s\"> 链接 </a> 更新密码\n"
|
||||
" "
|
||||
|
||||
#: templates/_message.html:30
|
||||
|
@ -4690,8 +4690,8 @@ msgstr ""
|
|||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your information was incomplete. Please click <a href="
|
||||
"\"%(first_login_url)s\"> this link </a>to complete your information.\n"
|
||||
" Your information was incomplete. Please click <a "
|
||||
"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
|
@ -4703,13 +4703,13 @@ msgstr ""
|
|||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Your ssh public key not set or expired. Please click <a href="
|
||||
"\"%(user_pubkey_update)s\"> this link </a>to update\n"
|
||||
" Your ssh public key not set or expired. Please click <a "
|
||||
"href=\"%(user_pubkey_update)s\"> this link </a>to update\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" 您的SSH密钥没有设置或已失效,请点击 <a href="
|
||||
"\"%(user_pubkey_update)s\"> 链接 </a> 更新\n"
|
||||
" 您的SSH密钥没有设置或已失效,请点击 <a "
|
||||
"href=\"%(user_pubkey_update)s\"> 链接 </a> 更新\n"
|
||||
" "
|
||||
|
||||
#: templates/_mfa_login_field.html:28
|
||||
|
@ -4922,7 +4922,7 @@ msgid "RDP Port"
|
|||
msgstr "RDP 端口"
|
||||
|
||||
#: terminal/models/endpoint.py:27 terminal/models/endpoint.py:95
|
||||
#: terminal/serializers/endpoint.py:57 terminal/serializers/storage.py:38
|
||||
#: terminal/serializers/endpoint.py:61 terminal/serializers/storage.py:38
|
||||
#: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
|
||||
#: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
|
||||
msgid "Endpoint"
|
||||
|
@ -5113,15 +5113,15 @@ msgstr "级别"
|
|||
msgid "Batch danger command alert"
|
||||
msgstr "批量危险命令告警"
|
||||
|
||||
#: terminal/serializers/endpoint.py:14
|
||||
#: terminal/serializers/endpoint.py:15
|
||||
msgid "Magnus listen db port"
|
||||
msgstr "Magnus 监听的数据库端口"
|
||||
|
||||
#: terminal/serializers/endpoint.py:17
|
||||
#: terminal/serializers/endpoint.py:18
|
||||
msgid "Magnus Listen port range"
|
||||
msgstr "Magnus 监听的端口范围"
|
||||
|
||||
#: terminal/serializers/endpoint.py:19
|
||||
#: terminal/serializers/endpoint.py:20
|
||||
msgid ""
|
||||
"The range of ports that Magnus listens on is modified in the configuration "
|
||||
"file"
|
||||
|
@ -5129,8 +5129,14 @@ msgstr "请在配置文件中修改 Magnus 监听的端口范围"
|
|||
|
||||
#: terminal/serializers/endpoint.py:51
|
||||
msgid ""
|
||||
"If asset IP addresses under different endpoints conflict, use asset labels"
|
||||
msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现"
|
||||
"Format for comma-delimited string, with * indicating a match all. Such as: "
|
||||
"192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:"
|
||||
"db8:1a:1110::/64<br>If asset IP addresses under different endpoints "
|
||||
"conflict, use asset labels"
|
||||
msgstr ""
|
||||
"格式为逗号分隔的字符串, * 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, "
|
||||
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64<br>如果不同端点"
|
||||
"下的资产 IP 有冲突,使用资产标签实现"
|
||||
|
||||
#: terminal/serializers/session.py:15 terminal/serializers/session.py:42
|
||||
msgid "Terminal display"
|
||||
|
@ -5254,7 +5260,7 @@ msgstr "没有发现"
|
|||
msgid "view"
|
||||
msgstr "查看"
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:65
|
||||
#: terminal/utils/db_port_mapper.py:78
|
||||
msgid ""
|
||||
"No available port is matched. The number of databases may have exceeded the "
|
||||
"number of ports open to the database agent service, Contact the "
|
||||
|
@ -5263,13 +5269,13 @@ msgstr ""
|
|||
"未匹配到可用端口,数据库的数量可能已经超过数据库代理服务开放的端口数量,请联"
|
||||
"系管理员开放更多端口。"
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:91
|
||||
#: terminal/utils/db_port_mapper.py:104
|
||||
msgid ""
|
||||
"No ports can be used, check and modify the limit on the number of ports that "
|
||||
"Magnus listens on in the configuration file."
|
||||
msgstr "没有端口可以使用,检查并修改配置文件中 Magnus 监听的端口数量限制。"
|
||||
|
||||
#: terminal/utils/db_port_mapper.py:93
|
||||
#: terminal/utils/db_port_mapper.py:106
|
||||
msgid "All available port count: {}, Already use port count: {}"
|
||||
msgstr "所有可用端口数量:{},已使用端口数量:{}"
|
||||
|
||||
|
@ -6969,3 +6975,7 @@ msgstr "旗舰版"
|
|||
#: xpack/plugins/license/models.py:77
|
||||
msgid "Community edition"
|
||||
msgstr "社区版"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If asset IP addresses under different endpoints conflict, use asset labels"
|
||||
#~ msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from rest_framework import serializers
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from common.drf.serializers import BulkModelSerializer
|
||||
from common.utils import lazyproperty
|
||||
from acls.serializers.rules import ip_group_child_validator, ip_group_help_text
|
||||
from ..utils import db_port_manager
|
||||
from ..models import Endpoint, EndpointRule
|
||||
|
@ -46,9 +47,12 @@ class EndpointSerializer(BulkModelSerializer):
|
|||
|
||||
|
||||
class EndpointRuleSerializer(BulkModelSerializer):
|
||||
_ip_group_help_text = '{} <br> {}'.format(
|
||||
ip_group_help_text,
|
||||
_('If asset IP addresses under different endpoints conflict, use asset labels')
|
||||
_ip_group_help_text = _(
|
||||
'Format for comma-delimited string, with * indicating a match all. '
|
||||
'Such as: '
|
||||
'192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64'
|
||||
'<br>'
|
||||
'If asset IP addresses under different endpoints conflict, use asset labels'
|
||||
)
|
||||
ip_group = serializers.ListField(
|
||||
default=['*'], label=_('IP'), help_text=_ip_group_help_text,
|
||||
|
|
Loading…
Reference in New Issue