mirror of https://github.com/jumpserver/jumpserver
[Update] 修改一些翻译
parent
c48531c586
commit
3b6403b2f2
|
@ -171,7 +171,7 @@ class AdminUserForm(forms.ModelForm):
|
|||
password = forms.CharField(
|
||||
widget=forms.PasswordInput, max_length=128,
|
||||
strip=True, required=False,
|
||||
help_text=_('If also set private key, use that first'),
|
||||
help_text=_('Password or private key password'),
|
||||
)
|
||||
# Need use upload private key file except paste private key content
|
||||
private_key_file = forms.FileField(required=False)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{% load i18n %}
|
||||
{% block modal_id %}asset_group_bulk_update_modal{% endblock %}
|
||||
{% block modal_class %}modal-lg{% endblock %}
|
||||
{% block modal_title%}{% trans "Update asset sroup" %}{% endblock %}
|
||||
{% block modal_title%}{% trans "Update asset group" %}{% endblock %}
|
||||
{% block modal_body %}
|
||||
{% load bootstrap3 %}
|
||||
<p class="text-success text-center">{% trans "Hint: only change the field you want to update." %}</p>
|
||||
|
|
|
@ -9,16 +9,6 @@
|
|||
{% block content_left_head %}{% endblock %}
|
||||
|
||||
{% block table_search %}
|
||||
<div class="html5buttons">
|
||||
<div class="dt-buttons btn-group">
|
||||
<a class="btn btn-default btn_import" data-toggle="modal" data-target="#asset_import_modal" tabindex="0">
|
||||
<span>{% trans "Import" %}</span>
|
||||
</a>
|
||||
<a class="btn btn-default btn_export" tabindex="0">
|
||||
<span>{% trans "Export" %}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block table_container %}
|
||||
|
|
|
@ -41,8 +41,8 @@ class AdminUserCreateView(AdminUserRequiredMixin,
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'assets',
|
||||
'action': 'Create admin user'
|
||||
'app': _('Assets'),
|
||||
'action': _('Create admin user')
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -64,8 +64,8 @@ class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'assets',
|
||||
'action': 'Update admin user'
|
||||
'app': _('Assets'),
|
||||
'action': _('Update admin user'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -85,8 +85,8 @@ class AdminUserDetailView(AdminUserRequiredMixin, DetailView):
|
|||
def get_context_data(self, **kwargs):
|
||||
cluster_remain = Cluster.objects.exclude(admin_user=self.object)
|
||||
context = {
|
||||
'app': 'assets',
|
||||
'action': 'Admin user detail',
|
||||
'app': _('Assets'),
|
||||
'action': _('Admin user detail'),
|
||||
'cluster_remain': cluster_remain,
|
||||
}
|
||||
kwargs.update(context)
|
||||
|
@ -112,8 +112,8 @@ class AdminUserAssetsView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'assets',
|
||||
'action': 'Admin user detail',
|
||||
'app': _('Assets'),
|
||||
'action': _('Admin user detail'),
|
||||
"total_amount": len(self.queryset),
|
||||
'unreachable_amount': len([asset for asset in self.queryset if asset.is_connective is False])
|
||||
}
|
||||
|
|
|
@ -81,8 +81,8 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Assets',
|
||||
'action': 'Create asset',
|
||||
'app': _('Assets'),
|
||||
'action': _('Create asset'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -138,8 +138,8 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Assets',
|
||||
'action': 'Bulk update asset',
|
||||
'app': _('Assets'),
|
||||
'action': _('Bulk update asset'),
|
||||
'form': self.form,
|
||||
'assets_selected': self.id_list,
|
||||
}
|
||||
|
@ -155,8 +155,8 @@ class AssetUpdateView(AdminUserRequiredMixin, UpdateView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Assets',
|
||||
'action': 'Update asset',
|
||||
'app': _('Assets'),
|
||||
'action': _('Update asset'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super(AssetUpdateView, self).get_context_data(**kwargs)
|
||||
|
@ -176,8 +176,8 @@ class AssetDetailView(DetailView):
|
|||
def get_context_data(self, **kwargs):
|
||||
asset_groups = self.object.groups.all()
|
||||
context = {
|
||||
'app': 'Assets',
|
||||
'action': 'Asset detail',
|
||||
'app': _('Assets'),
|
||||
'action': _('Asset detail'),
|
||||
'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
|
||||
if asset_group not in asset_groups],
|
||||
'asset_groups': asset_groups,
|
||||
|
|
|
@ -89,6 +89,7 @@ class BulkSerializerMixin(object):
|
|||
|
||||
|
||||
class DatetimeSearchMixin:
|
||||
date_format = '%Y-%m-%d'
|
||||
date_from = date_to = None
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
|
@ -96,7 +97,7 @@ class DatetimeSearchMixin:
|
|||
date_to_s = self.request.GET.get('date_to')
|
||||
|
||||
if date_from_s:
|
||||
date_from = timezone.datetime.strptime(date_from_s, '%m/%d/%Y')
|
||||
date_from = timezone.datetime.strptime(date_from_s, self.date_format)
|
||||
self.date_from = date_from.replace(
|
||||
tzinfo=timezone.get_current_timezone()
|
||||
)
|
||||
|
@ -105,7 +106,7 @@ class DatetimeSearchMixin:
|
|||
|
||||
if date_to_s:
|
||||
date_to = timezone.datetime.strptime(
|
||||
date_to_s + ' 23:59:59', '%m/%d/%Y %H:%M:%S'
|
||||
date_to_s + ' 23:59:59', self.date_format + ' %H:%M:%S'
|
||||
)
|
||||
self.date_to = date_to.replace(
|
||||
tzinfo=timezone.get_current_timezone()
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Jumpserver 0.3.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-01-01 00:34+0800\n"
|
||||
"POT-Creation-Date: 2018-01-01 14:59+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
|
||||
|
@ -55,7 +55,7 @@ msgstr "选择资产"
|
|||
#: assets/templates/assets/asset_list.html:32
|
||||
#: assets/templates/assets/cluster_assets.html:53
|
||||
#: assets/templates/assets/system_user_asset.html:54
|
||||
#: assets/templates/assets/user_asset_list.html:31
|
||||
#: assets/templates/assets/user_asset_list.html:21
|
||||
#: perms/templates/perms/asset_permission_asset.html:56
|
||||
#: users/templates/users/user_group_granted_asset.html:51
|
||||
msgid "Port"
|
||||
|
@ -105,8 +105,8 @@ msgid "Name"
|
|||
msgstr "名称"
|
||||
|
||||
#: assets/forms.py:174
|
||||
msgid "If also set private key, use that first"
|
||||
msgstr "如果设置私钥,则优先使用密钥"
|
||||
msgid "Password or private key password"
|
||||
msgstr "密码或秘钥不合法"
|
||||
|
||||
#: assets/forms.py:202 assets/forms.py:260 assets/forms.py:321
|
||||
msgid "Invalid private key"
|
||||
|
@ -190,7 +190,7 @@ msgstr "测试环境"
|
|||
#: assets/templates/assets/asset_list.html:31
|
||||
#: assets/templates/assets/cluster_assets.html:52
|
||||
#: assets/templates/assets/system_user_asset.html:53
|
||||
#: assets/templates/assets/user_asset_list.html:30
|
||||
#: assets/templates/assets/user_asset_list.html:20
|
||||
#: perms/templates/perms/asset_permission_asset.html:55
|
||||
#: users/templates/users/login_log_list.html:52
|
||||
#: users/templates/users/user_granted_asset.html:49
|
||||
|
@ -204,7 +204,7 @@ msgstr "IP"
|
|||
#: assets/templates/assets/asset_list.html:30
|
||||
#: assets/templates/assets/cluster_assets.html:51
|
||||
#: assets/templates/assets/system_user_asset.html:52
|
||||
#: assets/templates/assets/user_asset_list.html:29
|
||||
#: assets/templates/assets/user_asset_list.html:19
|
||||
#: perms/templates/perms/asset_permission_asset.html:54
|
||||
#: users/templates/users/user_granted_asset.html:48
|
||||
#: users/templates/users/user_group_granted_asset.html:49
|
||||
|
@ -496,25 +496,23 @@ msgstr "推送系统用户到资产: {}"
|
|||
msgid "Push system user to cluster assets period: {}->{}"
|
||||
msgstr "定期推送系统用户到资产: {}->{}"
|
||||
|
||||
#: assets/templates/assets/_asset_group_bulk_update_modal.html:5
|
||||
#, fuzzy
|
||||
#| msgid "Update asset group"
|
||||
msgid "Update asset sroup"
|
||||
msgstr "编辑资产组"
|
||||
|
||||
#: assets/templates/assets/_asset_group_bulk_update_modal.html:8
|
||||
msgid "Hint: only change the field you want to update."
|
||||
msgstr "仅修改你需要更新的字段"
|
||||
|
||||
#: assets/templates/assets/_asset_group_bulk_update_modal.html:12
|
||||
#: assets/templates/assets/system_user_asset.html:21
|
||||
#: assets/views/admin_user.py:27 assets/views/asset.py:47
|
||||
#: assets/views/asset.py:61 assets/views/cluster.py:22
|
||||
#: assets/views/cluster.py:80 assets/views/cluster.py:97
|
||||
#: assets/views/group.py:30 assets/views/group.py:53 assets/views/group.py:71
|
||||
#: assets/views/group.py:93 assets/views/system_user.py:29
|
||||
#: assets/views/system_user.py:48 assets/views/system_user.py:71
|
||||
#: assets/views/system_user.py:91 templates/_nav.html:19
|
||||
#: assets/views/admin_user.py:27 assets/views/admin_user.py:44
|
||||
#: assets/views/admin_user.py:67 assets/views/admin_user.py:88
|
||||
#: assets/views/admin_user.py:115 assets/views/asset.py:47
|
||||
#: assets/views/asset.py:61 assets/views/asset.py:84 assets/views/asset.py:141
|
||||
#: assets/views/asset.py:158 assets/views/asset.py:179
|
||||
#: assets/views/cluster.py:22 assets/views/cluster.py:80
|
||||
#: assets/views/cluster.py:97 assets/views/group.py:30 assets/views/group.py:53
|
||||
#: assets/views/group.py:71 assets/views/group.py:93
|
||||
#: assets/views/system_user.py:29 assets/views/system_user.py:48
|
||||
#: assets/views/system_user.py:71 assets/views/system_user.py:91
|
||||
#: templates/_nav.html:19
|
||||
msgid "Assets"
|
||||
msgstr "资产管理"
|
||||
|
||||
|
@ -647,8 +645,6 @@ msgstr "详情"
|
|||
|
||||
#: assets/templates/assets/admin_user_assets.html:21
|
||||
#: assets/templates/assets/admin_user_detail.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Asset list of "
|
||||
msgid "Assets list"
|
||||
msgstr "资产列表"
|
||||
|
||||
|
@ -662,7 +658,7 @@ msgstr "资产列表"
|
|||
#: assets/templates/assets/asset_group_detail.html:48
|
||||
#: assets/templates/assets/asset_list.html:34
|
||||
#: assets/templates/assets/cluster_assets.html:54
|
||||
#: assets/templates/assets/user_asset_list.html:32
|
||||
#: assets/templates/assets/user_asset_list.html:22
|
||||
#: users/templates/users/login_log_list.html:50
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
@ -699,6 +695,7 @@ msgstr "任务已下发,查看左侧资产状态"
|
|||
|
||||
#: assets/templates/assets/admin_user_create_update.html:16
|
||||
#: assets/templates/assets/admin_user_list.html:14
|
||||
#: assets/views/admin_user.py:45
|
||||
msgid "Create admin user"
|
||||
msgstr "创建管理用户"
|
||||
|
||||
|
@ -743,7 +740,7 @@ msgstr "不可达"
|
|||
#: assets/templates/assets/cluster_assets.html:56
|
||||
#: assets/templates/assets/cluster_list.html:23
|
||||
#: assets/templates/assets/system_user_list.html:31
|
||||
#: assets/templates/assets/user_asset_list.html:37
|
||||
#: assets/templates/assets/user_asset_list.html:27
|
||||
#: ops/templates/ops/adhoc_history.html:59 ops/templates/ops/task_adhoc.html:61
|
||||
#: ops/templates/ops/task_history.html:62 ops/templates/ops/task_list.html:46
|
||||
#: perms/templates/perms/asset_permission_list.html:32
|
||||
|
@ -787,7 +784,8 @@ msgstr "删除"
|
|||
msgid "Group"
|
||||
msgstr "组"
|
||||
|
||||
#: assets/templates/assets/asset_detail.html:20 assets/views/cluster.py:98
|
||||
#: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:180
|
||||
#: assets/views/cluster.py:98
|
||||
msgid "Asset detail"
|
||||
msgstr "资产详情"
|
||||
|
||||
|
@ -818,7 +816,7 @@ msgstr "快速修改"
|
|||
|
||||
#: assets/templates/assets/asset_detail.html:175
|
||||
#: assets/templates/assets/asset_list.html:37
|
||||
#: assets/templates/assets/user_asset_list.html:35 perms/models.py:20
|
||||
#: assets/templates/assets/user_asset_list.html:25 perms/models.py:20
|
||||
#: perms/templates/perms/asset_permission_create_update.html:47
|
||||
#: terminal/templates/terminal/terminal_list.html:34
|
||||
#: users/templates/users/_select_user_modal.html:18
|
||||
|
@ -916,28 +914,26 @@ msgid "AssetGroup Updated"
|
|||
msgstr "资产组更新"
|
||||
|
||||
#: assets/templates/assets/asset_list.html:15
|
||||
#: assets/templates/assets/user_asset_list.html:15
|
||||
#: users/templates/users/user_list.html:7
|
||||
msgid "Import"
|
||||
msgstr "导入"
|
||||
|
||||
#: assets/templates/assets/asset_list.html:18
|
||||
#: assets/templates/assets/user_asset_list.html:18
|
||||
#: users/templates/users/user_list.html:10
|
||||
msgid "Export"
|
||||
msgstr "导出"
|
||||
|
||||
#: assets/templates/assets/asset_list.html:25
|
||||
#: assets/templates/assets/asset_list.html:25 assets/views/asset.py:85
|
||||
msgid "Create asset"
|
||||
msgstr "创建资产"
|
||||
|
||||
#: assets/templates/assets/asset_list.html:35
|
||||
#: assets/templates/assets/user_asset_list.html:33
|
||||
#: assets/templates/assets/user_asset_list.html:23
|
||||
msgid "Env"
|
||||
msgstr "环境"
|
||||
|
||||
#: assets/templates/assets/asset_list.html:36
|
||||
#: assets/templates/assets/user_asset_list.html:34
|
||||
#: assets/templates/assets/user_asset_list.html:24
|
||||
msgid "Hardware"
|
||||
msgstr "硬件"
|
||||
|
||||
|
@ -1040,7 +1036,6 @@ msgstr "Cluster删除失败"
|
|||
|
||||
#: assets/templates/assets/delete_confirm.html:6
|
||||
#: perms/templates/perms/delete_confirm.html:6 templates/delete_confirm.html:6
|
||||
#: users/templates/users/user_delete_confirm.html:6
|
||||
msgid "Confirm delete"
|
||||
msgstr "确认删除"
|
||||
|
||||
|
@ -1112,11 +1107,11 @@ msgstr "删除系统用户"
|
|||
msgid "System Users Deleting failed."
|
||||
msgstr "系统用户删除失败"
|
||||
|
||||
#: assets/templates/assets/user_asset_list.html:36
|
||||
#: assets/templates/assets/user_asset_list.html:26
|
||||
msgid "Connective"
|
||||
msgstr "连接性"
|
||||
|
||||
#: assets/templates/assets/user_asset_list.html:76
|
||||
#: assets/templates/assets/user_asset_list.html:66
|
||||
msgid "Connect"
|
||||
msgstr "连接"
|
||||
|
||||
|
@ -1129,10 +1124,26 @@ msgstr "管理用户列表"
|
|||
msgid "Create admin user <a href=\"{url}\">{name}</a> successfully."
|
||||
msgstr "创建管理用户 <a href=\"{url}\">{name}</a> 成功"
|
||||
|
||||
#: assets/views/admin_user.py:68
|
||||
msgid "Update admin user"
|
||||
msgstr "更新管理用户"
|
||||
|
||||
#: assets/views/admin_user.py:89 assets/views/admin_user.py:116
|
||||
msgid "Admin user detail"
|
||||
msgstr "管理用户详情"
|
||||
|
||||
#: assets/views/asset.py:48 assets/views/asset.py:62
|
||||
msgid "Asset list"
|
||||
msgstr "资产列表"
|
||||
|
||||
#: assets/views/asset.py:142
|
||||
msgid "Bulk update asset"
|
||||
msgstr "批量更新资产"
|
||||
|
||||
#: assets/views/asset.py:159
|
||||
msgid "Update asset"
|
||||
msgstr "编辑资产"
|
||||
|
||||
#: assets/views/asset.py:292
|
||||
msgid "already exists"
|
||||
msgstr "已经存在"
|
||||
|
@ -1281,7 +1292,7 @@ msgid "Version detail"
|
|||
msgstr "版本详情"
|
||||
|
||||
#: ops/templates/ops/adhoc_detail.html:22
|
||||
#: ops/templates/ops/adhoc_history.html:22
|
||||
#: ops/templates/ops/adhoc_history.html:22 ops/views.py:121
|
||||
msgid "Version run history"
|
||||
msgstr "执行历史"
|
||||
|
||||
|
@ -1353,7 +1364,7 @@ msgstr "失败/成功/总"
|
|||
msgid "Version"
|
||||
msgstr "版本"
|
||||
|
||||
#: ops/templates/ops/adhoc_history_detail.html:19
|
||||
#: ops/templates/ops/adhoc_history_detail.html:19 ops/views.py:134
|
||||
msgid "Run history detail"
|
||||
msgstr "执行历史详情"
|
||||
|
||||
|
@ -1379,12 +1390,12 @@ msgid "Success assets"
|
|||
msgstr "成功资产"
|
||||
|
||||
#: ops/templates/ops/task_adhoc.html:19 ops/templates/ops/task_detail.html:19
|
||||
#: ops/templates/ops/task_history.html:19
|
||||
#: ops/templates/ops/task_history.html:19 ops/views.py:59
|
||||
msgid "Task detail"
|
||||
msgstr "任务详情"
|
||||
|
||||
#: ops/templates/ops/task_adhoc.html:22 ops/templates/ops/task_detail.html:22
|
||||
#: ops/templates/ops/task_history.html:22
|
||||
#: ops/templates/ops/task_history.html:22 ops/views.py:72
|
||||
msgid "Task versions"
|
||||
msgstr "任务各版本"
|
||||
|
||||
|
@ -1435,10 +1446,19 @@ msgstr "成功"
|
|||
msgid "Date"
|
||||
msgstr "日期"
|
||||
|
||||
#: ops/views.py:42 ops/views.py:58 ops/views.py:71 ops/views.py:84
|
||||
#: ops/views.py:107 ops/views.py:120 ops/views.py:133
|
||||
msgid "Ops"
|
||||
msgstr "作业中心"
|
||||
|
||||
#: ops/views.py:43
|
||||
msgid "Task list"
|
||||
msgstr "任务列表"
|
||||
|
||||
#: ops/views.py:85
|
||||
msgid "Task run history"
|
||||
msgstr "执行历史"
|
||||
|
||||
#: perms/forms.py:16 users/forms.py:144 users/forms.py:149 users/forms.py:161
|
||||
#: users/forms.py:190
|
||||
msgid "Select users"
|
||||
|
@ -1451,7 +1471,7 @@ msgstr "选择用户"
|
|||
#: terminal/models.py:92 terminal/templates/terminal/command_list.html:32
|
||||
#: terminal/templates/terminal/command_list.html:72
|
||||
#: terminal/templates/terminal/session_list.html:33
|
||||
#: terminal/templates/terminal/session_list.html:71
|
||||
#: terminal/templates/terminal/session_list.html:71 users/models/user.py:31
|
||||
#: users/templates/users/user_group_detail.html:78 users/views/user.py:348
|
||||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
@ -1623,7 +1643,7 @@ msgid "Update asset permission"
|
|||
msgstr "更新资产授权"
|
||||
|
||||
#: perms/views.py:115
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgid "Update asset permission <a href=\"{url}\"> {name} </a> success."
|
||||
msgstr "更新授权 <a href=\"{url}\"> {name} </a> 成功"
|
||||
|
||||
|
@ -1674,10 +1694,17 @@ msgstr ""
|
|||
" "
|
||||
|
||||
#: templates/_message.html:16
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Your ssh public key not set or expired. Please click <a href="
|
||||
"\"{{ user_pubkey_update }}\"> this link </a>to update your"
|
||||
msgstr "您的ssh秘钥没有设置或已失效,请点击 <a href={{ user_pubkey_update}} > 链接 </a> 更新"
|
||||
"\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"
|
||||
" "
|
||||
|
||||
#: templates/_modal.html:15
|
||||
msgid "Close"
|
||||
|
@ -1685,7 +1712,7 @@ msgstr "关闭"
|
|||
|
||||
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:46
|
||||
#: users/views/group.py:72 users/views/group.py:89 users/views/login.py:192
|
||||
#: users/views/login.py:242 users/views/user.py:55 users/views/user.py:70
|
||||
#: users/views/login.py:241 users/views/user.py:55 users/views/user.py:70
|
||||
#: users/views/user.py:95 users/views/user.py:151 users/views/user.py:308
|
||||
#: users/views/user.py:322 users/views/user.py:366 users/views/user.py:388
|
||||
msgid "Users"
|
||||
|
@ -1704,15 +1731,13 @@ msgid "Job Center"
|
|||
msgstr "作业中心"
|
||||
|
||||
#: templates/_nav.html:42
|
||||
#, fuzzy
|
||||
#| msgid "Tasks"
|
||||
msgid "Task"
|
||||
msgstr "任务"
|
||||
|
||||
#: templates/_nav.html:47 templates/_nav.html:50 templates/_nav_user.html:14
|
||||
#: templates/_nav.html:47 templates/_nav.html:50
|
||||
#: terminal/templates/terminal/session_list.html:74
|
||||
#: terminal/views/command.py:48 terminal/views/session.py:78
|
||||
#: terminal/views/session.py:95 terminal/views/session.py:117
|
||||
#: terminal/views/command.py:47 terminal/views/session.py:77
|
||||
#: terminal/views/session.py:94 terminal/views/session.py:116
|
||||
#: terminal/views/terminal.py:31 terminal/views/terminal.py:46
|
||||
#: terminal/views/terminal.py:58
|
||||
msgid "Terminal"
|
||||
|
@ -1756,16 +1781,12 @@ msgid "Profile settings"
|
|||
msgstr "个人信息设置"
|
||||
|
||||
#: templates/_user_profile.html:24
|
||||
#, fuzzy
|
||||
#| msgid "Admin user"
|
||||
msgid "Admin page"
|
||||
msgstr "管理用户"
|
||||
msgstr "管理页面"
|
||||
|
||||
#: templates/_user_profile.html:26
|
||||
#, fuzzy
|
||||
#| msgid "User agent"
|
||||
msgid "User page"
|
||||
msgstr "Agent"
|
||||
msgstr "用户页面"
|
||||
|
||||
#: templates/captcha/image.html:3
|
||||
msgid "Play CAPTCHA as audio file"
|
||||
|
@ -1845,10 +1866,8 @@ msgid "Replay"
|
|||
msgstr "回放"
|
||||
|
||||
#: terminal/models.py:101
|
||||
#, fuzzy
|
||||
#| msgid "Date joined"
|
||||
msgid "Date end"
|
||||
msgstr "创建日期"
|
||||
msgstr "结束日期"
|
||||
|
||||
#: terminal/models.py:118
|
||||
msgid "Args"
|
||||
|
@ -1859,12 +1878,12 @@ msgid "Goto"
|
|||
msgstr ""
|
||||
|
||||
#: terminal/templates/terminal/session_detail.html:17
|
||||
#: terminal/views/session.py:118
|
||||
#: terminal/views/session.py:117
|
||||
msgid "Session detail"
|
||||
msgstr "会话详情"
|
||||
|
||||
#: terminal/templates/terminal/session_detail.html:28
|
||||
#: terminal/views/command.py:49
|
||||
#: terminal/views/command.py:48
|
||||
msgid "Command list"
|
||||
msgstr "命令记录列表"
|
||||
|
||||
|
@ -1948,19 +1967,19 @@ msgstr "接受终端注册"
|
|||
msgid "Info"
|
||||
msgstr "信息"
|
||||
|
||||
#: terminal/views/session.py:55
|
||||
#: terminal/views/session.py:54
|
||||
msgid "Audits"
|
||||
msgstr "审计中心"
|
||||
|
||||
#: terminal/views/session.py:56
|
||||
#: terminal/views/session.py:55
|
||||
msgid "Proxy log list"
|
||||
msgstr "Session列表"
|
||||
|
||||
#: terminal/views/session.py:79
|
||||
#: terminal/views/session.py:78
|
||||
msgid "Session online list"
|
||||
msgstr "在线会话"
|
||||
|
||||
#: terminal/views/session.py:96
|
||||
#: terminal/views/session.py:95
|
||||
msgid "Session offline list"
|
||||
msgstr "离线会话"
|
||||
|
||||
|
@ -2104,6 +2123,14 @@ msgstr "Agent"
|
|||
msgid "Date login"
|
||||
msgstr "登录日期"
|
||||
|
||||
#: users/models/user.py:30 users/models/user.py:255
|
||||
msgid "Administrator"
|
||||
msgstr "管理员"
|
||||
|
||||
#: users/models/user.py:32
|
||||
msgid "Application"
|
||||
msgstr "应用程序"
|
||||
|
||||
#: users/models/user.py:39 users/templates/users/_select_user_modal.html:15
|
||||
#: users/templates/users/user_detail.html:86
|
||||
#: users/templates/users/user_list.html:25
|
||||
|
@ -2134,10 +2161,6 @@ msgstr "ssh私钥"
|
|||
msgid "Public key"
|
||||
msgstr "ssh公钥"
|
||||
|
||||
#: users/models/user.py:255
|
||||
msgid "Administrator"
|
||||
msgstr "管理员"
|
||||
|
||||
#: users/models/user.py:258
|
||||
msgid "Administrator is the super user of system"
|
||||
msgstr "Administrator是初始的超级管理员"
|
||||
|
@ -2592,7 +2615,7 @@ msgstr "密码不一致"
|
|||
msgid "First login"
|
||||
msgstr "首次登陆"
|
||||
|
||||
#: users/views/login.py:243
|
||||
#: users/views/login.py:242
|
||||
msgid "Login log list"
|
||||
msgstr "登录日志"
|
||||
|
||||
|
@ -2628,3 +2651,6 @@ msgstr "密码更新"
|
|||
#: users/views/user.py:389
|
||||
msgid "Public key update"
|
||||
msgstr "秘钥更新"
|
||||
|
||||
#~ msgid "If also set private key, use that first"
|
||||
#~ msgstr "如果设置私钥,则优先使用密钥"
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
<div class="form-group" id="date">
|
||||
<div class="input-daterange input-group" id="datepicker">
|
||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
|
||||
<span class="input-group-addon">to</span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans "Search" %}" value="{{ keyword }}">
|
||||
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans 'Search' %}" value="{{ keyword }}">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
|
@ -94,9 +94,11 @@ $(document).ready(function() {
|
|||
width: 'auto'
|
||||
});
|
||||
$('#date .input-daterange').datepicker({
|
||||
dateFormat: 'mm/dd/yy',
|
||||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
keyboardNavigation: false,
|
||||
forceParse: false,
|
||||
calendarWeeks: true,
|
||||
autoclose: true
|
||||
});
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ class TaskListView(DatetimeSearchMixin, ListView):
|
|||
ordering = ('-date_created',)
|
||||
context_object_name = 'task_list'
|
||||
template_name = 'ops/task_list.html'
|
||||
date_format = '%m/%d/%Y'
|
||||
keyword = ''
|
||||
|
||||
def get_queryset(self):
|
||||
|
@ -39,7 +38,7 @@ class TaskListView(DatetimeSearchMixin, ListView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'app': _('Ops'),
|
||||
'action': _('Task list'),
|
||||
'date_from': self.date_from,
|
||||
'date_to': self.date_to,
|
||||
|
@ -55,8 +54,8 @@ class TaskDetailView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'action': 'Task detail',
|
||||
'app': _('Ops'),
|
||||
'action': _('Task detail'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -68,8 +67,8 @@ class TaskAdhocView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'action': 'Task versions',
|
||||
'app': _('Ops'),
|
||||
'action': _('Task versions'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -81,8 +80,8 @@ class TaskHistoryView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'action': 'Task run history',
|
||||
'app': _('Ops'),
|
||||
'action': _('Task run history'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -104,7 +103,7 @@ class AdHocDetailView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'app': _('Ops'),
|
||||
'action': 'Task version detail',
|
||||
}
|
||||
kwargs.update(context)
|
||||
|
@ -117,8 +116,8 @@ class AdHocHistoryView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'action': 'Version run history',
|
||||
'app': _('Ops'),
|
||||
'action': _('Version run history'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
@ -130,8 +129,8 @@ class AdHocHistoryDetailView(DetailView):
|
|||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'app': 'Ops',
|
||||
'action': 'Run history detail',
|
||||
'app': _('Ops'),
|
||||
'action': _('Run history detail'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
|
@ -280,16 +280,16 @@ jumpserver.initDataTable = function (options) {
|
|||
language: {
|
||||
search: "搜索",
|
||||
lengthMenu: "每页 _MENU_",
|
||||
info: "显示第 _START_ 到 _END_; 总共 _TOTAL_ ",
|
||||
info: "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项",
|
||||
infoFiltered: "",
|
||||
infoEmpty: "",
|
||||
zeroRecords: "没有匹配记录",
|
||||
zeroRecords: "没有匹配项",
|
||||
emptyTable: "没有记录",
|
||||
paginate: {
|
||||
first: "第一页",
|
||||
previous: "上一页",
|
||||
next: "下一页",
|
||||
last: "最后"
|
||||
first: "«",
|
||||
previous: "‹",
|
||||
next: "›",
|
||||
last: "»"
|
||||
}
|
||||
},
|
||||
lengthMenu: [[15, 25, 50, -1], [15, 25, 50, "All"]]
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
{% if user.is_authenticated and not user.is_public_key_valid %}
|
||||
<div class="alert alert-danger help-message">
|
||||
{% url 'users:user-pubkey-update' as user_pubkey_update %}
|
||||
{% trans 'Your ssh public key not set or expired. Please click <a href="{{ user_pubkey_update }}"> this link </a>to update' %}
|
||||
{% blocktrans %}
|
||||
Your ssh public key not set or expired. Please click <a href="{{ user_pubkey_update }}"> this link </a>to update
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -9,11 +9,6 @@
|
|||
<i class="fa fa-user" ></i> <span class="nav-label">{% trans 'Profile' %}</span><span class="label label-info pull-right"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li id="terminal">
|
||||
<a href="{% url 'terminal:terminal-list' %}">
|
||||
<i class="fa fa-terminal" ></i> <span class="nav-label">{% trans 'Terminal' %}</span><span class="label label-info pull-right"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="special_link">
|
||||
<a href="http://www.jumpserver.org" target="_blank"><i class="fa fa-database"></i>
|
||||
<span class="nav-label">访问官网</span>
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
<div class="form-group" id="date">
|
||||
<div class="input-daterange input-group" id="datepicker">
|
||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
|
||||
<span class="input-group-addon">to</span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
|
@ -105,9 +105,11 @@
|
|||
width: 'auto'
|
||||
});
|
||||
$('#date .input-daterange').datepicker({
|
||||
dateFormat: 'mm/dd/yy',
|
||||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
keyboardNavigation: false,
|
||||
forceParse: false,
|
||||
calendarWeeks: true,
|
||||
autoclose: true
|
||||
});
|
||||
});
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
{% load common_tags %}
|
||||
{% block custom_head_css_js %}
|
||||
<link href="{% static 'css/plugins/datepicker/datepicker3.css' %}" rel="stylesheet">
|
||||
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
|
||||
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
|
||||
<link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
|
||||
<script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
|
||||
<style>
|
||||
#search_btn {
|
||||
margin-bottom: 0;
|
||||
|
@ -23,9 +23,9 @@
|
|||
<div class="form-group" id="date">
|
||||
<div class="input-daterange input-group" id="datepicker">
|
||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
|
||||
<span class="input-group-addon">to</span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
|
@ -135,10 +135,12 @@
|
|||
dropdownAutoWidth: true,
|
||||
width: "auto"
|
||||
});
|
||||
$('#date .input-daterange').datepicker({
|
||||
dateFormat: 'mm/dd/yy',
|
||||
$('.input-daterange.input-group').datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
keyboardNavigation: false,
|
||||
forceParse: false,
|
||||
calendarWeeks: true,
|
||||
autoclose: true
|
||||
});
|
||||
}).on('click', '.btn-term', function () {
|
||||
|
|
|
@ -22,7 +22,6 @@ class CommandListView(DatetimeSearchMixin, ListView):
|
|||
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
|
||||
command = user = asset = system_user = ""
|
||||
date_from = date_to = None
|
||||
date_format = '%m/%d/%Y'
|
||||
|
||||
def get_queryset(self):
|
||||
self.command = self.request.GET.get('command', '')
|
||||
|
|
|
@ -29,7 +29,6 @@ class SessionListView(AdminUserRequiredMixin, DatetimeSearchMixin, ListView):
|
|||
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
|
||||
user = asset = system_user = ''
|
||||
date_from = date_to = None
|
||||
date_format = '%m/%d/%Y'
|
||||
|
||||
def get_queryset(self):
|
||||
self.queryset = super().get_queryset()
|
||||
|
|
|
@ -20,7 +20,7 @@ __all__ = [
|
|||
]
|
||||
|
||||
|
||||
class TerminalListView(LoginRequiredMixin, ListView):
|
||||
class TerminalListView(AdminUserRequiredMixin, ListView):
|
||||
model = Terminal
|
||||
template_name = 'terminal/terminal_list.html'
|
||||
form_class = TerminalForm
|
||||
|
|
|
@ -20,7 +20,7 @@ from common.utils import get_logger
|
|||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class UserViewSet(BulkModelViewSet):
|
||||
class UserViewSet(IDInFilterMixin, BulkModelViewSet):
|
||||
queryset = User.objects.exclude(role="App")
|
||||
# queryset = User.objects.all().exclude(role="App").order_by("date_joined")
|
||||
serializer_class = UserSerializer
|
||||
|
|
|
@ -27,9 +27,9 @@ class User(AbstractUser):
|
|||
ROLE_APP = 'App'
|
||||
|
||||
ROLE_CHOICES = (
|
||||
(ROLE_ADMIN, 'Administrator'),
|
||||
(ROLE_USER, 'User'),
|
||||
(ROLE_APP, 'Application')
|
||||
(ROLE_ADMIN, _('Administrator')),
|
||||
(ROLE_USER, _('User')),
|
||||
(ROLE_APP, _('Application'))
|
||||
)
|
||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||
username = models.CharField(max_length=128, unique=True, verbose_name=_('Username'))
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
<div class="form-group" id="date">
|
||||
<div class="input-daterange input-group" id="datepicker">
|
||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y"}}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d'}}">
|
||||
{# <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" >#}
|
||||
<span class="input-group-addon">to</span>
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y"}}">
|
||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d'}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
|
@ -32,7 +32,7 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans "Search" %}" value="{{ keyword }}">
|
||||
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans 'Search' %}" value="{{ keyword }}">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
|
@ -81,9 +81,11 @@
|
|||
"order": []
|
||||
});
|
||||
$('#date .input-daterange').datepicker({
|
||||
dateFormat: "mm/dd/yyy",
|
||||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
keyboardNavigation: false,
|
||||
forceParse: false,
|
||||
calendarWeeks: true,
|
||||
autoclose: true
|
||||
|
||||
});
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
{% load i18n %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% trans 'Confirm delete' %}</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="" method="post">
|
||||
{% csrf_token %}
|
||||
<p>Are you sure you want to delete "{{ object.name }}"?</p>
|
||||
<input type="submit" value="Confirm" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
|
@ -4,8 +4,8 @@
|
|||
{% load i18n %}
|
||||
|
||||
{% block custom_head_css_js %}
|
||||
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
|
||||
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
|
||||
<link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
|
||||
<script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
|
@ -23,7 +23,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<div class="col-sm-7" style="padding-left: 0;">
|
||||
<div class="col-sm-6" style="padding-left: 0;">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<span style="float: left">{% trans 'Assets granted of ' %} <b>{{ user.name }}</b></span>
|
||||
|
@ -56,7 +56,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5" style="padding-left: 0;padding-right: 0">
|
||||
<div class="col-sm-6" style="padding-left: 0;padding-right: 0">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<span style="float: left">{% trans 'Asset groups granted of ' %} <b>{{ user.name }}</b></span>
|
||||
|
|
|
@ -217,7 +217,6 @@ class LoginLogListView(DatetimeSearchMixin, ListView):
|
|||
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
|
||||
user = keyword = ""
|
||||
date_to = date_from = None
|
||||
date_format = '%m/%d/%Y'
|
||||
|
||||
def get_queryset(self):
|
||||
self.user = self.request.GET.get('user', '')
|
||||
|
|
Loading…
Reference in New Issue