From b18ead0ffa76dad11364b7da0cab3d1a3f93fe3a Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 12 Nov 2020 10:56:09 +0800 Subject: [PATCH] =?UTF-8?q?perf(i18n):=20=E6=9B=B4=E6=96=B0=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/applications/serializers/remote_app.py | 2 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 62241 -> 62503 bytes apps/locale/zh/LC_MESSAGES/django.po | 179 ++++++++++---------- 3 files changed, 95 insertions(+), 86 deletions(-) diff --git a/apps/applications/serializers/remote_app.py b/apps/applications/serializers/remote_app.py index 5e4d8763f..267a52d3c 100644 --- a/apps/applications/serializers/remote_app.py +++ b/apps/applications/serializers/remote_app.py @@ -33,7 +33,7 @@ class CharPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField): class RemoteAppAttrsSerializer(serializers.Serializer): asset_info = serializers.SerializerMethodField() - asset = CharPrimaryKeyRelatedField(queryset=Asset.objects, required=False, label=_("Assets")) + asset = CharPrimaryKeyRelatedField(queryset=Asset.objects, required=False, label=_("Asset")) path = serializers.CharField(max_length=128, label=_('Remote App path')) @staticmethod diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 4c4bff907f1ba75c65796bb76561aa781e956597..21078f9555423c813a50d130678e85e11ad0dc24 100644 GIT binary patch delta 18505 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 OxC!aA6}j|J_WuEpdxFRS delta 18251 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\n" "Language-Team: JumpServer team\n" @@ -39,8 +39,8 @@ msgstr "远程应用" #: assets/models/cmd_filter.py:21 assets/models/domain.py:21 #: assets/models/group.py:20 assets/models/label.py:18 ops/mixin.py:24 #: orgs/models.py:23 perms/models/base.py:48 settings/models.py:27 -#: terminal/models.py:28 terminal/models.py:356 terminal/models.py:388 -#: terminal/models.py:425 users/forms/profile.py:20 users/models/group.py:15 +#: terminal/models.py:28 terminal/models.py:372 terminal/models.py:404 +#: terminal/models.py:441 users/forms/profile.py:20 users/models/group.py:15 #: users/models/user.py:505 users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_asset_permission.html:37 #: users/templates/users/user_asset_permission.html:154 @@ -54,7 +54,7 @@ msgstr "远程应用" #: users/templates/users/user_profile.html:51 #: users/templates/users/user_pubkey_update.html:57 #: users/templates/users/user_remote_app_permission.html:36 -#: xpack/plugins/cloud/models.py:36 +#: xpack/plugins/cloud/models.py:37 msgid "Name" msgstr "名称" @@ -76,8 +76,8 @@ msgstr "分类" #: applications/serializers/application.py:17 assets/models/cmd_filter.py:52 #: perms/models/application_permission.py:20 #: perms/serializers/application/permission.py:17 -#: perms/serializers/application/user_permission.py:34 terminal/models.py:390 -#: terminal/models.py:427 tickets/models/ticket.py:40 +#: perms/serializers/application/user_permission.py:34 terminal/models.py:406 +#: terminal/models.py:443 tickets/models/ticket.py:40 #: users/templates/users/user_granted_database_app.html:35 msgid "Type" msgstr "类型" @@ -93,7 +93,7 @@ msgstr "类型" #: assets/models/domain.py:55 assets/models/group.py:23 #: assets/models/label.py:23 ops/models/adhoc.py:37 orgs/models.py:26 #: perms/models/base.py:56 settings/models.py:32 terminal/models.py:38 -#: terminal/models.py:395 terminal/models.py:432 tickets/models/ticket.py:43 +#: terminal/models.py:411 terminal/models.py:448 tickets/models/ticket.py:43 #: users/models/group.py:16 users/models/user.py:538 #: users/templates/users/user_detail.html:115 #: users/templates/users/user_granted_database_app.html:38 @@ -101,8 +101,8 @@ msgstr "类型" #: users/templates/users/user_group_detail.html:62 #: users/templates/users/user_group_list.html:16 #: users/templates/users/user_profile.html:138 -#: xpack/plugins/change_auth_plan/models.py:77 xpack/plugins/cloud/models.py:54 -#: xpack/plugins/cloud/models.py:149 xpack/plugins/gathered_user/models.py:26 +#: xpack/plugins/change_auth_plan/models.py:77 xpack/plugins/cloud/models.py:56 +#: xpack/plugins/cloud/models.py:151 xpack/plugins/gathered_user/models.py:26 msgid "Comment" msgstr "备注" @@ -146,7 +146,8 @@ msgstr "集群" msgid "KubernetesApp" msgstr "Kubernetes应用" -#: applications/models/remote_app.py:23 assets/models/asset.py:363 +#: applications/models/remote_app.py:23 +#: applications/serializers/remote_app.py:36 assets/models/asset.py:363 #: assets/models/authbook.py:26 assets/models/gathered_user.py:14 #: assets/serializers/admin_user.py:32 assets/serializers/asset_user.py:47 #: assets/serializers/asset_user.py:84 assets/serializers/system_user.py:191 @@ -157,8 +158,8 @@ msgstr "Kubernetes应用" #: users/templates/users/user_asset_permission.html:40 #: users/templates/users/user_asset_permission.html:70 #: users/templates/users/user_granted_remote_app.html:36 -#: xpack/plugins/change_auth_plan/models.py:283 -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/change_auth_plan/models.py:282 +#: xpack/plugins/cloud/models.py:280 msgid "Asset" msgstr "资产" @@ -183,8 +184,8 @@ msgstr "参数" #: orgs/models.py:24 orgs/models.py:400 perms/models/base.py:54 #: users/models/user.py:546 users/serializers/group.py:35 #: users/templates/users/user_detail.html:97 -#: xpack/plugins/change_auth_plan/models.py:81 xpack/plugins/cloud/models.py:57 -#: xpack/plugins/cloud/models.py:155 xpack/plugins/gathered_user/models.py:30 +#: xpack/plugins/change_auth_plan/models.py:81 xpack/plugins/cloud/models.py:59 +#: xpack/plugins/cloud/models.py:157 xpack/plugins/gathered_user/models.py:30 msgid "Created by" msgstr "创建者" @@ -197,7 +198,7 @@ msgstr "创建者" #: common/mixins/models.py:50 ops/models/adhoc.py:38 ops/models/command.py:27 #: orgs/models.py:25 orgs/models.py:398 perms/models/base.py:55 #: users/models/group.py:18 users/templates/users/user_group_detail.html:58 -#: xpack/plugins/cloud/models.py:60 xpack/plugins/cloud/models.py:158 +#: xpack/plugins/cloud/models.py:62 xpack/plugins/cloud/models.py:160 msgid "Date created" msgstr "创建日期" @@ -216,12 +217,6 @@ msgstr "远程应用" msgid "Type for display" msgstr "类型(显示名称)" -#: applications/serializers/remote_app.py:36 assets/models/user.py:99 -#: assets/serializers/domain.py:30 templates/_nav.html:39 -#: xpack/plugins/change_auth_plan/models.py:52 -msgid "Assets" -msgstr "资产" - #: applications/serializers/remote_app.py:37 #: applications/serializers/remote_app.py:58 #: applications/serializers/remote_app.py:66 @@ -248,7 +243,7 @@ msgstr "目标URL" #: users/templates/users/user_list.html:15 #: users/templates/users/user_profile.html:47 #: xpack/plugins/change_auth_plan/models.py:47 -#: xpack/plugins/change_auth_plan/models.py:279 +#: xpack/plugins/change_auth_plan/models.py:278 msgid "Username" msgstr "用户名" @@ -267,8 +262,8 @@ msgstr "用户名" #: users/templates/users/user_pubkey_update.html:41 #: users/templates/users/user_update.html:20 #: xpack/plugins/change_auth_plan/models.py:68 -#: xpack/plugins/change_auth_plan/models.py:191 -#: xpack/plugins/change_auth_plan/models.py:286 +#: xpack/plugins/change_auth_plan/models.py:190 +#: xpack/plugins/change_auth_plan/models.py:285 msgid "Password" msgstr "密码" @@ -370,7 +365,7 @@ msgstr "激活" #: assets/models/asset.py:203 assets/models/cluster.py:19 #: assets/models/user.py:66 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:142 xpack/plugins/cloud/serializers.py:84 +#: xpack/plugins/cloud/models.py:144 xpack/plugins/cloud/serializers.py:115 msgid "Admin user" msgstr "管理用户" @@ -459,14 +454,14 @@ msgid "AuthBook" msgstr "" #: assets/models/base.py:235 xpack/plugins/change_auth_plan/models.py:72 -#: xpack/plugins/change_auth_plan/models.py:198 -#: xpack/plugins/change_auth_plan/models.py:293 +#: xpack/plugins/change_auth_plan/models.py:197 +#: xpack/plugins/change_auth_plan/models.py:292 msgid "SSH private key" msgstr "SSH密钥" #: assets/models/base.py:236 xpack/plugins/change_auth_plan/models.py:75 -#: xpack/plugins/change_auth_plan/models.py:194 -#: xpack/plugins/change_auth_plan/models.py:289 +#: xpack/plugins/change_auth_plan/models.py:193 +#: xpack/plugins/change_auth_plan/models.py:288 msgid "SSH public key" msgstr "SSH公钥" @@ -664,7 +659,7 @@ msgstr "ssh私钥" #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 -#: xpack/plugins/cloud/models.py:138 xpack/plugins/cloud/serializers.py:85 +#: xpack/plugins/cloud/models.py:140 xpack/plugins/cloud/serializers.py:116 msgid "Node" msgstr "节点" @@ -680,6 +675,11 @@ msgstr "手动登录" msgid "Username same with user" msgstr "用户名与用户相同" +#: assets/models/user.py:99 assets/serializers/domain.py:30 +#: templates/_nav.html:39 xpack/plugins/change_auth_plan/models.py:52 +msgid "Assets" +msgstr "资产" + #: assets/models/user.py:100 templates/_nav.html:17 #: users/views/profile/password.py:42 users/views/profile/pubkey.py:36 msgid "Users" @@ -841,7 +841,7 @@ msgstr "值" #: assets/serializers/node.py:29 msgid "Can't contains: /" -msgstr "" +msgstr "不能包含: /" #: assets/serializers/node.py:39 msgid "The same level node name cannot be the same" @@ -1048,7 +1048,7 @@ msgstr "成功" #: audits/models.py:43 ops/models/command.py:28 perms/models/base.py:52 #: terminal/models.py:204 tickets/serializers/request_asset_perm.py:29 #: xpack/plugins/change_auth_plan/models.py:177 -#: xpack/plugins/change_auth_plan/models.py:308 +#: xpack/plugins/change_auth_plan/models.py:307 #: xpack/plugins/gathered_user/models.py:76 msgid "Date start" msgstr "开始日期" @@ -1103,7 +1103,7 @@ msgstr "启用" msgid "-" msgstr "" -#: audits/models.py:96 xpack/plugins/cloud/models.py:210 +#: audits/models.py:96 xpack/plugins/cloud/models.py:215 msgid "Failed" msgstr "失败" @@ -1132,14 +1132,14 @@ msgstr "用户代理" msgid "MFA" msgstr "多因子认证" -#: audits/models.py:105 xpack/plugins/change_auth_plan/models.py:304 -#: xpack/plugins/cloud/models.py:223 +#: audits/models.py:105 xpack/plugins/change_auth_plan/models.py:303 +#: xpack/plugins/cloud/models.py:228 msgid "Reason" msgstr "原因" #: audits/models.py:106 tickets/serializers/request_asset_perm.py:64 -#: tickets/serializers/ticket.py:29 xpack/plugins/cloud/models.py:220 -#: xpack/plugins/cloud/models.py:278 +#: tickets/serializers/ticket.py:29 xpack/plugins/cloud/models.py:225 +#: xpack/plugins/cloud/models.py:283 msgid "Status" msgstr "状态" @@ -1165,7 +1165,7 @@ msgid "Is success" msgstr "是否成功" #: audits/serializers.py:76 ops/models/command.py:24 -#: xpack/plugins/cloud/models.py:218 +#: xpack/plugins/cloud/models.py:223 msgid "Result" msgstr "结果" @@ -1765,7 +1765,7 @@ msgid "End time" msgstr "完成时间" #: ops/models/adhoc.py:242 xpack/plugins/change_auth_plan/models.py:180 -#: xpack/plugins/change_auth_plan/models.py:311 +#: xpack/plugins/change_auth_plan/models.py:310 #: xpack/plugins/gathered_user/models.py:79 msgid "Time" msgstr "时间" @@ -1978,11 +1978,11 @@ msgstr "远程应用授权" msgid "" "The application list contains applications that are different from the " "permission type. ({})" -msgstr "" +msgstr "应用列表中包含与授权类型不同的应用。({})" #: perms/serializers/asset/permission.py:58 users/serializers/user.py:76 msgid "Is expired" -msgstr " 是否过期" +msgstr "是否过期" #: perms/serializers/asset/permission.py:59 #: perms/serializers/database_app_permission.py:43 @@ -2774,7 +2774,7 @@ msgstr "回放" msgid "Date end" msgstr "结束日期" -#: terminal/models.py:357 +#: terminal/models.py:373 msgid "Args" msgstr "参数" @@ -2864,7 +2864,7 @@ msgid "Confirmed system-users changed" msgstr "确认的系统用户变更了" #: tickets/api/request_asset_perm.py:98 tickets/api/request_asset_perm.py:105 -#: xpack/plugins/cloud/models.py:211 +#: xpack/plugins/cloud/models.py:216 msgid "Succeed" msgstr "成功" @@ -3290,7 +3290,7 @@ msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 users/templates/users/_user.html:13 #: users/templates/users/user_profile_update.html:55 -#: xpack/plugins/cloud/models.py:124 xpack/plugins/cloud/serializers.py:83 +#: xpack/plugins/cloud/models.py:126 xpack/plugins/cloud/serializers.py:114 msgid "Account" msgstr "账户" @@ -3454,7 +3454,7 @@ msgstr "很强" #: users/templates/users/user_database_app_permission.html:41 #: users/templates/users/user_list.html:19 #: users/templates/users/user_remote_app_permission.html:41 -#: xpack/plugins/cloud/models.py:51 +#: xpack/plugins/cloud/models.py:53 msgid "Validity" msgstr "有效" @@ -4139,44 +4139,44 @@ msgstr "所有资产使用不同的随机密码" msgid "Password rules" msgstr "密码规则" -#: xpack/plugins/change_auth_plan/models.py:188 +#: xpack/plugins/change_auth_plan/models.py:187 msgid "Change auth plan snapshot" msgstr "改密计划快照" -#: xpack/plugins/change_auth_plan/models.py:203 -#: xpack/plugins/change_auth_plan/models.py:297 +#: xpack/plugins/change_auth_plan/models.py:202 +#: xpack/plugins/change_auth_plan/models.py:296 msgid "Change auth plan execution" msgstr "改密计划执行" -#: xpack/plugins/change_auth_plan/models.py:270 +#: xpack/plugins/change_auth_plan/models.py:269 msgid "Ready" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:271 +#: xpack/plugins/change_auth_plan/models.py:270 msgid "Preflight check" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:272 +#: xpack/plugins/change_auth_plan/models.py:271 msgid "Change auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:273 +#: xpack/plugins/change_auth_plan/models.py:272 msgid "Verify auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:274 +#: xpack/plugins/change_auth_plan/models.py:273 msgid "Keep auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:275 +#: xpack/plugins/change_auth_plan/models.py:274 msgid "Finished" msgstr "结束" -#: xpack/plugins/change_auth_plan/models.py:301 +#: xpack/plugins/change_auth_plan/models.py:300 msgid "Step" msgstr "步骤" -#: xpack/plugins/change_auth_plan/models.py:318 +#: xpack/plugins/change_auth_plan/models.py:317 msgid "Change auth plan task" msgstr "改密计划任务" @@ -4212,95 +4212,95 @@ msgstr "无法将数据发送到远程" msgid "Cloud center" msgstr "云管中心" -#: xpack/plugins/cloud/models.py:30 +#: xpack/plugins/cloud/models.py:31 msgid "Available" msgstr "有效" -#: xpack/plugins/cloud/models.py:31 +#: xpack/plugins/cloud/models.py:32 msgid "Unavailable" msgstr "无效" -#: xpack/plugins/cloud/models.py:40 +#: xpack/plugins/cloud/models.py:41 msgid "Provider" msgstr "云服务商" -#: xpack/plugins/cloud/models.py:43 +#: xpack/plugins/cloud/models.py:44 msgid "Access key id" msgstr "" -#: xpack/plugins/cloud/models.py:47 +#: xpack/plugins/cloud/models.py:48 msgid "Access key secret" msgstr "" -#: xpack/plugins/cloud/models.py:65 +#: xpack/plugins/cloud/models.py:67 msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:122 msgid "Instance name" msgstr "实例名称" -#: xpack/plugins/cloud/models.py:121 +#: xpack/plugins/cloud/models.py:123 msgid "Instance name and Partial IP" msgstr "实例名称和部分IP" -#: xpack/plugins/cloud/models.py:127 xpack/plugins/cloud/serializers.py:59 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/serializers.py:90 msgid "Regions" msgstr "地域" -#: xpack/plugins/cloud/models.py:130 +#: xpack/plugins/cloud/models.py:132 msgid "Instances" msgstr "实例" -#: xpack/plugins/cloud/models.py:134 +#: xpack/plugins/cloud/models.py:136 msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:146 xpack/plugins/cloud/serializers.py:87 +#: xpack/plugins/cloud/models.py:148 xpack/plugins/cloud/serializers.py:118 msgid "Always update" msgstr "总是更新" -#: xpack/plugins/cloud/models.py:152 +#: xpack/plugins/cloud/models.py:154 msgid "Date last sync" msgstr "最后同步日期" -#: xpack/plugins/cloud/models.py:163 xpack/plugins/cloud/models.py:216 +#: xpack/plugins/cloud/models.py:165 xpack/plugins/cloud/models.py:221 msgid "Sync instance task" msgstr "同步实例任务" -#: xpack/plugins/cloud/models.py:226 xpack/plugins/cloud/models.py:281 +#: xpack/plugins/cloud/models.py:231 xpack/plugins/cloud/models.py:286 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:254 +#: xpack/plugins/cloud/models.py:259 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/models.py:255 +#: xpack/plugins/cloud/models.py:260 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/models.py:256 +#: xpack/plugins/cloud/models.py:261 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/models.py:257 +#: xpack/plugins/cloud/models.py:262 msgid "Released" msgstr "已释放" -#: xpack/plugins/cloud/models.py:262 +#: xpack/plugins/cloud/models.py:267 msgid "Sync task" msgstr "同步任务" -#: xpack/plugins/cloud/models.py:266 +#: xpack/plugins/cloud/models.py:271 msgid "Sync instance task history" msgstr "同步实例任务历史" -#: xpack/plugins/cloud/models.py:269 +#: xpack/plugins/cloud/models.py:274 msgid "Instance" msgstr "实例" -#: xpack/plugins/cloud/models.py:272 +#: xpack/plugins/cloud/models.py:277 msgid "Region" msgstr "地域" @@ -4316,6 +4316,10 @@ msgstr "AWS (国际)" msgid "AWS (China)" msgstr "AWS (中国)" +#: xpack/plugins/cloud/providers/azure_.py:18 +msgid "Azure (China)" +msgstr "Azure (中国)" + #: xpack/plugins/cloud/providers/huaweicloud.py:20 msgid "Huawei Cloud" msgstr "华为云" @@ -4376,15 +4380,23 @@ msgstr "拉美-圣地亚哥" msgid "Tencent Cloud" msgstr "腾讯云" -#: xpack/plugins/cloud/serializers.py:57 +#: xpack/plugins/cloud/serializers.py:26 +msgid "Tenant ID" +msgstr "" + +#: xpack/plugins/cloud/serializers.py:30 +msgid "Subscription ID" +msgstr "" + +#: xpack/plugins/cloud/serializers.py:88 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:58 +#: xpack/plugins/cloud/serializers.py:89 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:86 +#: xpack/plugins/cloud/serializers.py:117 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" @@ -5971,9 +5983,6 @@ msgstr "社区版" #~ msgid "No license" #~ msgstr "暂无许可证" -#~ msgid "Subscription ID" -#~ msgstr "订阅授权ID" - #~ msgid "Corporation" #~ msgstr "公司"