mirror of https://github.com/jumpserver/jumpserver
perf: 优化英文下树的显示 (#7883)
* perf: 优化英文下树的显示 * perf: 修改翻译 * perf: 修改翻译 Co-authored-by: ibuler <ibuler@qq.com>pull/7886/head^2
parent
8233c69038
commit
3b507dc795
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: JumpServer 0.3.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-03-16 17:35+0800\n"
|
||||
"POT-Creation-Date: 2022-03-16 19:59+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"
|
||||
|
@ -26,7 +26,7 @@ msgstr "访问控制"
|
|||
#: assets/models/base.py:175 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:12 perms/models/base.py:83 rbac/models/role.py:29
|
||||
#: orgs/models.py:65 perms/models/base.py:83 rbac/models/role.py:29
|
||||
#: settings/models.py:29 settings/serializers/sms.py:6
|
||||
#: terminal/models/storage.py:23 terminal/models/task.py:16
|
||||
#: terminal/models/terminal.py:100 users/forms/profile.py:32
|
||||
|
@ -62,7 +62,7 @@ msgstr "激活中"
|
|||
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:48
|
||||
#: assets/models/cmd_filter.py:96 assets/models/domain.py:24
|
||||
#: assets/models/domain.py:64 assets/models/group.py:23
|
||||
#: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:15
|
||||
#: assets/models/label.py:23 ops/models/adhoc.py:38 orgs/models.py:68
|
||||
#: perms/models/base.py:93 rbac/models/role.py:37 settings/models.py:34
|
||||
#: terminal/models/storage.py:26 terminal/models/terminal.py:114
|
||||
#: tickets/models/comment.py:24 tickets/models/ticket.py:154
|
||||
|
@ -89,8 +89,8 @@ msgstr "登录复核"
|
|||
#: acls/models/login_acl.py:24 acls/models/login_asset_acl.py:20
|
||||
#: assets/models/cmd_filter.py:30 assets/models/label.py:15 audits/models.py:37
|
||||
#: audits/models.py:60 audits/models.py:85 audits/serializers.py:100
|
||||
#: authentication/models.py:50 orgs/models.py:191 perms/models/base.py:84
|
||||
#: rbac/builtin.py:97 rbac/models/rolebinding.py:33 templates/index.html:78
|
||||
#: authentication/models.py:50 orgs/models.py:214 perms/models/base.py:84
|
||||
#: rbac/builtin.py:98 rbac/models/rolebinding.py:39 templates/index.html:78
|
||||
#: terminal/backends/command/models.py:19
|
||||
#: terminal/backends/command/serializers.py:12 terminal/models/session.py:42
|
||||
#: terminal/notifications.py:88 terminal/notifications.py:136
|
||||
|
@ -375,7 +375,7 @@ msgstr "类型名称"
|
|||
#: assets/models/group.py:22 assets/models/label.py:25
|
||||
#: assets/serializers/account.py:18 common/db/models.py:113
|
||||
#: common/mixins/models.py:50 ops/models/adhoc.py:39 ops/models/command.py:30
|
||||
#: orgs/models.py:14 orgs/models.py:194 perms/models/base.py:92
|
||||
#: orgs/models.py:67 orgs/models.py:217 perms/models/base.py:92
|
||||
#: users/models/group.py:18 users/models/user.py:827
|
||||
#: xpack/plugins/cloud/models.py:125
|
||||
msgid "Date created"
|
||||
|
@ -384,7 +384,7 @@ msgstr "创建日期"
|
|||
#: applications/serializers/application.py:104 assets/models/base.py:182
|
||||
#: assets/models/gathered_user.py:20 assets/serializers/account.py:21
|
||||
#: common/db/models.py:114 common/mixins/models.py:51 ops/models/adhoc.py:40
|
||||
#: orgs/models.py:195
|
||||
#: orgs/models.py:218
|
||||
msgid "Date updated"
|
||||
msgstr "更新日期"
|
||||
|
||||
|
@ -626,8 +626,8 @@ msgstr "标签管理"
|
|||
#: assets/models/asset.py:229 assets/models/base.py:183
|
||||
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:52
|
||||
#: assets/models/cmd_filter.py:99 assets/models/group.py:21
|
||||
#: common/db/models.py:111 common/mixins/models.py:49 orgs/models.py:13
|
||||
#: orgs/models.py:196 perms/models/base.py:91 users/models/user.py:619
|
||||
#: common/db/models.py:111 common/mixins/models.py:49 orgs/models.py:66
|
||||
#: orgs/models.py:219 perms/models/base.py:91 users/models/user.py:619
|
||||
#: users/serializers/group.py:33
|
||||
#: xpack/plugins/change_auth_plan/models/base.py:48
|
||||
#: xpack/plugins/cloud/models.py:122 xpack/plugins/gathered_user/models.py:30
|
||||
|
@ -1255,6 +1255,7 @@ msgid "System user name"
|
|||
msgstr "系统用户名称"
|
||||
|
||||
#: assets/serializers/system_user.py:282 orgs/mixins/serializers.py:26
|
||||
#: rbac/serializers/rolebinding.py:23
|
||||
msgid "Org name"
|
||||
msgstr "组织名称"
|
||||
|
||||
|
@ -1383,7 +1384,7 @@ msgstr "日志审计"
|
|||
|
||||
#: audits/models.py:27 audits/models.py:57
|
||||
#: authentication/templates/authentication/_access_key_modal.html:65
|
||||
#: rbac/tree.py:161 users/templates/users/user_asset_permission.html:128
|
||||
#: rbac/tree.py:160 users/templates/users/user_asset_permission.html:128
|
||||
#: users/templates/users/user_database_app_permission.html:111
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
@ -1437,11 +1438,11 @@ msgstr "文件管理"
|
|||
|
||||
#: audits/models.py:55
|
||||
#: authentication/templates/authentication/_access_key_modal.html:22
|
||||
#: rbac/tree.py:158
|
||||
#: rbac/tree.py:157
|
||||
msgid "Create"
|
||||
msgstr "创建"
|
||||
|
||||
#: audits/models.py:56 rbac/tree.py:160 templates/_csv_import_export.html:18
|
||||
#: audits/models.py:56 rbac/tree.py:159 templates/_csv_import_export.html:18
|
||||
#: templates/_csv_update_modal.html:6
|
||||
#: users/templates/users/user_asset_permission.html:127
|
||||
#: users/templates/users/user_database_app_permission.html:110
|
||||
|
@ -1565,7 +1566,7 @@ msgstr "运行用户"
|
|||
msgid "Run as display"
|
||||
msgstr "运行用户名称"
|
||||
|
||||
#: audits/serializers.py:102 rbac/serializers/rolebinding.py:22
|
||||
#: audits/serializers.py:102 rbac/serializers/rolebinding.py:21
|
||||
msgid "User display"
|
||||
msgstr "用户名称"
|
||||
|
||||
|
@ -2878,25 +2879,25 @@ msgstr "当前组织 ({}) 不能被删除"
|
|||
msgid "The organization have resource ({}) cannot be deleted"
|
||||
msgstr "组织存在资源 ({}) 不能被删除"
|
||||
|
||||
#: orgs/apps.py:7 rbac/tree.py:111
|
||||
#: orgs/apps.py:7 rbac/tree.py:110
|
||||
msgid "App organizations"
|
||||
msgstr "组织管理"
|
||||
|
||||
#: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:27
|
||||
#: orgs/models.py:188 rbac/const.py:7 rbac/models/rolebinding.py:40
|
||||
#: orgs/mixins/models.py:46 orgs/mixins/serializers.py:25 orgs/models.py:80
|
||||
#: orgs/models.py:211 rbac/const.py:7 rbac/models/rolebinding.py:46
|
||||
#: rbac/serializers/rolebinding.py:40 tickets/serializers/ticket/ticket.py:77
|
||||
msgid "Organization"
|
||||
msgstr "组织"
|
||||
|
||||
#: orgs/models.py:21
|
||||
#: orgs/models.py:74
|
||||
msgid "GLOBAL"
|
||||
msgstr "全局组织"
|
||||
|
||||
#: orgs/models.py:29
|
||||
#: orgs/models.py:82
|
||||
msgid "Can view root org"
|
||||
msgstr "可以查看全局组织"
|
||||
|
||||
#: orgs/models.py:193 rbac/models/role.py:46 rbac/models/rolebinding.py:36
|
||||
#: orgs/models.py:216 rbac/models/role.py:46 rbac/models/rolebinding.py:42
|
||||
#: users/models/user.py:584 users/templates/users/_select_user_modal.html:15
|
||||
msgid "Role"
|
||||
msgstr "角色"
|
||||
|
@ -3121,7 +3122,7 @@ msgstr "角色已绑定用户,不能删除"
|
|||
msgid "Internal role, can't be update"
|
||||
msgstr "内部角色,不能更新"
|
||||
|
||||
#: rbac/api/rolebinding.py:46
|
||||
#: rbac/api/rolebinding.py:52
|
||||
msgid "{} at least one system role"
|
||||
msgstr "{} 至少有一个系统角色"
|
||||
|
||||
|
@ -3129,27 +3130,27 @@ msgstr "{} 至少有一个系统角色"
|
|||
msgid "RBAC"
|
||||
msgstr "RBAC"
|
||||
|
||||
#: rbac/builtin.py:88
|
||||
#: rbac/builtin.py:89
|
||||
msgid "SystemAdmin"
|
||||
msgstr "系统管理员"
|
||||
|
||||
#: rbac/builtin.py:91
|
||||
#: rbac/builtin.py:92
|
||||
msgid "SystemAuditor"
|
||||
msgstr "系统审计员"
|
||||
|
||||
#: rbac/builtin.py:94
|
||||
#: rbac/builtin.py:95
|
||||
msgid "SystemComponent"
|
||||
msgstr "系统组件"
|
||||
|
||||
#: rbac/builtin.py:100
|
||||
#: rbac/builtin.py:101
|
||||
msgid "OrgAdmin"
|
||||
msgstr "组织管理员"
|
||||
|
||||
#: rbac/builtin.py:103
|
||||
#: rbac/builtin.py:104
|
||||
msgid "OrgAuditor"
|
||||
msgstr "组织审计员"
|
||||
|
||||
#: rbac/builtin.py:106
|
||||
#: rbac/builtin.py:107
|
||||
msgid "OrgUser"
|
||||
msgstr "组织用户"
|
||||
|
||||
|
@ -3181,7 +3182,7 @@ msgstr "文件管理"
|
|||
msgid "Permission"
|
||||
msgstr "授权"
|
||||
|
||||
#: rbac/models/role.py:31 rbac/models/rolebinding.py:30
|
||||
#: rbac/models/role.py:31 rbac/models/rolebinding.py:36
|
||||
msgid "Scope"
|
||||
msgstr "范围"
|
||||
|
||||
|
@ -3201,21 +3202,21 @@ msgstr "系统角色"
|
|||
msgid "Organization role"
|
||||
msgstr "组织角色"
|
||||
|
||||
#: rbac/models/rolebinding.py:45
|
||||
#: rbac/models/rolebinding.py:51
|
||||
msgid "Role binding"
|
||||
msgstr "角色绑定"
|
||||
|
||||
#: rbac/models/rolebinding.py:111
|
||||
#: rbac/models/rolebinding.py:123
|
||||
msgid ""
|
||||
"User last role in org, can not be delete, you can remove user from org "
|
||||
"instead"
|
||||
msgstr "用户最后一个角色,不能删除,你可以将用户从组织移除"
|
||||
|
||||
#: rbac/models/rolebinding.py:118
|
||||
#: rbac/models/rolebinding.py:130
|
||||
msgid "Organization role binding"
|
||||
msgstr "组织角色绑定"
|
||||
|
||||
#: rbac/models/rolebinding.py:132
|
||||
#: rbac/models/rolebinding.py:145
|
||||
msgid "System role binding"
|
||||
msgstr "系统角色绑定"
|
||||
|
||||
|
@ -3231,7 +3232,7 @@ msgstr "范围名称"
|
|||
msgid "Display name"
|
||||
msgstr "显示名称"
|
||||
|
||||
#: rbac/serializers/rolebinding.py:23
|
||||
#: rbac/serializers/rolebinding.py:22
|
||||
msgid "Role display"
|
||||
msgstr "角色显示"
|
||||
|
||||
|
@ -3239,87 +3240,87 @@ msgstr "角色显示"
|
|||
msgid "Has bound this role"
|
||||
msgstr "已经绑定"
|
||||
|
||||
#: rbac/tree.py:17 rbac/tree.py:18
|
||||
#: rbac/tree.py:16 rbac/tree.py:17
|
||||
msgid "All permissions"
|
||||
msgstr "所有权限"
|
||||
|
||||
#: rbac/tree.py:24
|
||||
#: rbac/tree.py:23
|
||||
msgid "Console view"
|
||||
msgstr "控制台"
|
||||
|
||||
#: rbac/tree.py:25
|
||||
#: rbac/tree.py:24
|
||||
msgid "Workspace view"
|
||||
msgstr "工作台"
|
||||
|
||||
#: rbac/tree.py:26
|
||||
#: rbac/tree.py:25
|
||||
msgid "Audit view"
|
||||
msgstr "审计台"
|
||||
|
||||
#: rbac/tree.py:27 settings/models.py:140
|
||||
#: rbac/tree.py:26 settings/models.py:140
|
||||
msgid "System setting"
|
||||
msgstr "系统设置"
|
||||
|
||||
#: rbac/tree.py:28
|
||||
#: rbac/tree.py:27
|
||||
msgid "Other"
|
||||
msgstr "其它"
|
||||
|
||||
#: rbac/tree.py:36
|
||||
#: rbac/tree.py:35
|
||||
msgid "Accounts"
|
||||
msgstr "账号管理"
|
||||
|
||||
#: rbac/tree.py:40
|
||||
#: rbac/tree.py:39
|
||||
msgid "Session audits"
|
||||
msgstr "会话审计"
|
||||
|
||||
#: rbac/tree.py:50
|
||||
#: rbac/tree.py:49
|
||||
msgid "Cloud import"
|
||||
msgstr "云同步"
|
||||
|
||||
#: rbac/tree.py:51
|
||||
#: rbac/tree.py:50
|
||||
msgid "Backup account"
|
||||
msgstr "备份账号"
|
||||
|
||||
#: rbac/tree.py:52
|
||||
#: rbac/tree.py:51
|
||||
msgid "Gather account"
|
||||
msgstr "收集账号"
|
||||
|
||||
#: rbac/tree.py:53
|
||||
#: rbac/tree.py:52
|
||||
msgid "App change auth"
|
||||
msgstr "应用改密"
|
||||
|
||||
#: rbac/tree.py:54
|
||||
#: rbac/tree.py:53
|
||||
msgid "Asset change auth"
|
||||
msgstr "资产改密"
|
||||
|
||||
#: rbac/tree.py:55
|
||||
#: rbac/tree.py:54
|
||||
msgid "Terminal setting"
|
||||
msgstr "终端设置"
|
||||
|
||||
#: rbac/tree.py:56
|
||||
#: rbac/tree.py:55
|
||||
msgid "My assets"
|
||||
msgstr "我的资产"
|
||||
|
||||
#: rbac/tree.py:57
|
||||
#: rbac/tree.py:56
|
||||
msgid "My apps"
|
||||
msgstr "我的应用"
|
||||
|
||||
#: rbac/tree.py:112
|
||||
#: rbac/tree.py:111
|
||||
msgid "Ticket comment"
|
||||
msgstr "工单评论"
|
||||
|
||||
#: rbac/tree.py:113 tickets/models/ticket.py:163
|
||||
#: rbac/tree.py:112 tickets/models/ticket.py:163
|
||||
msgid "Ticket"
|
||||
msgstr "工单管理"
|
||||
|
||||
#: rbac/tree.py:114
|
||||
#: rbac/tree.py:113
|
||||
msgid "Common setting"
|
||||
msgstr "一般设置"
|
||||
|
||||
#: rbac/tree.py:115
|
||||
#: rbac/tree.py:114
|
||||
msgid "Execute batch command"
|
||||
msgstr "执行批量命令"
|
||||
|
||||
#: rbac/tree.py:159
|
||||
#: rbac/tree.py:158
|
||||
msgid "View"
|
||||
msgstr "查看"
|
||||
|
||||
|
@ -6839,6 +6840,21 @@ msgstr "旗舰版"
|
|||
msgid "Community edition"
|
||||
msgstr "社区版"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Create"
|
||||
#~ msgid "create"
|
||||
#~ msgstr "创建"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Update"
|
||||
#~ msgid "update"
|
||||
#~ msgstr "更新"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Delete"
|
||||
#~ msgid "delete"
|
||||
#~ msgstr "删除"
|
||||
|
||||
#~ msgid "Can connect my assets"
|
||||
#~ msgstr "可以连接我的资产"
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ user_perms = (
|
|||
('assets', 'systemuser', 'match', 'systemuser'),
|
||||
('assets', 'node', 'match', 'node'),
|
||||
('ops', 'commandexecution', 'add', 'commandexecution'),
|
||||
('authentication', 'connectiontoken', 'add', 'connectiontoken'),
|
||||
)
|
||||
|
||||
auditor_perms = user_perms + (
|
||||
|
|
|
@ -2,11 +2,10 @@
|
|||
from collections import defaultdict
|
||||
from typing import Callable
|
||||
|
||||
from django.utils.translation import gettext_lazy as _, gettext
|
||||
from django.utils.translation import gettext_lazy as _, gettext, get_language
|
||||
from django.conf import settings
|
||||
from django.apps import apps
|
||||
from django.db.models import F, Count
|
||||
from django.utils.translation import ugettext
|
||||
|
||||
from common.tree import TreeNode
|
||||
from .models import Permission, ContentType
|
||||
|
@ -155,10 +154,10 @@ def sort_nodes(node):
|
|||
class PermissionTreeUtil:
|
||||
get_permissions: Callable
|
||||
action_mapper = {
|
||||
'add': ugettext('Create'),
|
||||
'view': ugettext('View'),
|
||||
'change': ugettext('Update'),
|
||||
'delete': ugettext('Delete')
|
||||
'add': _('Create'),
|
||||
'view': _('View'),
|
||||
'change': _('Update'),
|
||||
'delete': _('Delete')
|
||||
}
|
||||
action_icon = {
|
||||
'add': 'add',
|
||||
|
@ -178,6 +177,7 @@ class PermissionTreeUtil:
|
|||
self.check_disabled = check_disabled
|
||||
self.total_counts = defaultdict(int)
|
||||
self.checked_counts = defaultdict(int)
|
||||
self.lang = get_language()
|
||||
|
||||
@staticmethod
|
||||
def prefetch_permissions(perms):
|
||||
|
@ -288,12 +288,18 @@ class PermissionTreeUtil:
|
|||
return name, icon
|
||||
|
||||
app_model = '%s.%s' % (p.content_type.app_label, resource)
|
||||
if action in self.action_mapper and app_model in content_types_name_mapper:
|
||||
if self.lang == 'en':
|
||||
name = p.name
|
||||
# 因为默认的权限位是没有翻译的,所以我们要用 action + resource name 去拼
|
||||
elif action in self.action_mapper and app_model in content_types_name_mapper:
|
||||
action_name = self.action_mapper[action]
|
||||
name = action_name + content_types_name_mapper[app_model]
|
||||
resource_name = content_types_name_mapper[app_model]
|
||||
sep = ''
|
||||
name = '{}{}{}'.format(action_name, sep, resource_name)
|
||||
# 手动创建的 permission
|
||||
else:
|
||||
name = gettext(p.name)
|
||||
name = name.replace('Can ', '').replace('可以', '')
|
||||
name = name.replace('Can ', '').replace('可以', '').capitalize()
|
||||
return name, icon
|
||||
|
||||
def _create_perms_nodes(self):
|
||||
|
|
Loading…
Reference in New Issue