mirror of
https://github.com/kingmo888/rustdesk-api-server.git
synced 2026-02-21 10:27:23 +08:00
Fix bugs and adjust internationalization of new pages
This commit is contained in:
parent
aba300a0fa
commit
81341d5b6d
@ -57,4 +57,22 @@ _('用户名')
|
||||
_('3、为保障安全,链接有效期为15分钟、链接仅有效1次。链接一旦被(非分享人的登录用户)访问,分享生效,后续访问链接失效。')
|
||||
_('系统')
|
||||
_('我的机器')
|
||||
_('信息')
|
||||
_('信息')
|
||||
_('远程ID')
|
||||
_('远程别名')
|
||||
_('用户ID')
|
||||
_('用户别名')
|
||||
_('用户IP')
|
||||
_('文件大小')
|
||||
_('发送/接受')
|
||||
_('记录于')
|
||||
_('连接开始时间')
|
||||
_('连接结束时间')
|
||||
_('时长')
|
||||
_('连接日志')
|
||||
_('文件传输日志')
|
||||
_('页码 #')
|
||||
_('下一页 #')
|
||||
_('上一页 #')
|
||||
_('第一页')
|
||||
_('上页')
|
||||
240
api/migrations/0006_alter_rustdesdevice_options_and_more.py
Normal file
240
api/migrations/0006_alter_rustdesdevice_options_and_more.py
Normal file
@ -0,0 +1,240 @@
|
||||
# Generated by Django 4.2.7 on 2024-05-14 10:43
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("api", "0005_connlog_filelog"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesdevice",
|
||||
options={
|
||||
"ordering": ("-rid",),
|
||||
"verbose_name": "Device",
|
||||
"verbose_name_plural": "Device List",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdeskpeer",
|
||||
options={
|
||||
"ordering": ("-username",),
|
||||
"verbose_name": "Peers",
|
||||
"verbose_name_plural": "Peers List",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesktag",
|
||||
options={
|
||||
"ordering": ("-uid",),
|
||||
"verbose_name": "Tags",
|
||||
"verbose_name_plural": "Tags List",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesktoken",
|
||||
options={
|
||||
"ordering": ("-username",),
|
||||
"verbose_name": "Token",
|
||||
"verbose_name_plural": "Token List",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="sharelink",
|
||||
options={
|
||||
"ordering": ("-create_time",),
|
||||
"verbose_name": "Share Link",
|
||||
"verbose_name_plural": "Link List",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="userprofile",
|
||||
options={
|
||||
"permissions": (
|
||||
("view_task", "Can see available tasks"),
|
||||
("change_task_status", "Can change the status of tasks"),
|
||||
("close_task", "Can remove a task by setting its status as closed"),
|
||||
),
|
||||
"verbose_name": "User",
|
||||
"verbose_name_plural": "User List",
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(
|
||||
auto_now_add=True, verbose_name="Device Registration Time"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="hostname",
|
||||
field=models.CharField(max_length=100, verbose_name="Hostname"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="memory",
|
||||
field=models.CharField(max_length=100, verbose_name="Memory"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="os",
|
||||
field=models.CharField(max_length=100, verbose_name="Operating System"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="rid",
|
||||
field=models.CharField(blank=True, max_length=60, verbose_name="Client ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="username",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=100, verbose_name="System Username"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="version",
|
||||
field=models.CharField(max_length=100, verbose_name="Client Version"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="alias",
|
||||
field=models.CharField(max_length=30, verbose_name="Alias"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="hostname",
|
||||
field=models.CharField(max_length=30, verbose_name="Operating System Name"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="platform",
|
||||
field=models.CharField(max_length=30, verbose_name="Platform"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="rhash",
|
||||
field=models.CharField(
|
||||
max_length=60, verbose_name="Device Connection Password"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="rid",
|
||||
field=models.CharField(max_length=60, verbose_name="Client ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="tags",
|
||||
field=models.CharField(max_length=30, verbose_name="Tag"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="User ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="username",
|
||||
field=models.CharField(max_length=20, verbose_name="System Username"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="tag_color",
|
||||
field=models.CharField(blank=True, max_length=60, verbose_name="Tag Color"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="tag_name",
|
||||
field=models.CharField(max_length=60, verbose_name="Tag Name"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="Belongs to User ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="access_token",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=60, verbose_name="Access Token"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name="Login Time"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="User ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="username",
|
||||
field=models.CharField(max_length=20, verbose_name="Username"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="uuid",
|
||||
field=models.CharField(max_length=60, verbose_name="UUID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(
|
||||
auto_now_add=True, verbose_name="Generation Time"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="is_expired",
|
||||
field=models.BooleanField(default=False, verbose_name="Is Expired"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="is_used",
|
||||
field=models.BooleanField(default=False, verbose_name="Is Used"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="peers",
|
||||
field=models.CharField(max_length=20, verbose_name="Machine ID List"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="shash",
|
||||
field=models.CharField(max_length=60, verbose_name="Link Key"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="User ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="deviceInfo",
|
||||
field=models.TextField(blank=True, verbose_name="Login Information:"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="is_active",
|
||||
field=models.BooleanField(default=True, verbose_name="Is Active"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="is_admin",
|
||||
field=models.BooleanField(default=False, verbose_name="Is Administrator"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="username",
|
||||
field=models.CharField(max_length=50, unique=True, verbose_name="Username"),
|
||||
),
|
||||
]
|
||||
232
api/migrations/0007_alter_rustdesdevice_options_and_more.py
Normal file
232
api/migrations/0007_alter_rustdesdevice_options_and_more.py
Normal file
@ -0,0 +1,232 @@
|
||||
# Generated by Django 4.2.7 on 2024-05-14 10:46
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("api", "0006_alter_rustdesdevice_options_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesdevice",
|
||||
options={
|
||||
"ordering": ("-rid",),
|
||||
"verbose_name": "设备",
|
||||
"verbose_name_plural": "设备列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdeskpeer",
|
||||
options={
|
||||
"ordering": ("-username",),
|
||||
"verbose_name": "Peers",
|
||||
"verbose_name_plural": "Peers列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesktag",
|
||||
options={
|
||||
"ordering": ("-uid",),
|
||||
"verbose_name": "Tags",
|
||||
"verbose_name_plural": "Tags列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="rustdesktoken",
|
||||
options={
|
||||
"ordering": ("-username",),
|
||||
"verbose_name": "Token",
|
||||
"verbose_name_plural": "Token列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="sharelink",
|
||||
options={
|
||||
"ordering": ("-create_time",),
|
||||
"verbose_name": "分享链接",
|
||||
"verbose_name_plural": "链接列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="userprofile",
|
||||
options={
|
||||
"permissions": (
|
||||
("view_task", "Can see available tasks"),
|
||||
("change_task_status", "Can change the status of tasks"),
|
||||
("close_task", "Can remove a task by setting its status as closed"),
|
||||
),
|
||||
"verbose_name": "用户",
|
||||
"verbose_name_plural": "用户列表",
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name="设备注册时间"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="hostname",
|
||||
field=models.CharField(max_length=100, verbose_name="主机名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="memory",
|
||||
field=models.CharField(max_length=100, verbose_name="内存"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="os",
|
||||
field=models.CharField(max_length=100, verbose_name="操作系统"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="rid",
|
||||
field=models.CharField(blank=True, max_length=60, verbose_name="客户端ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="username",
|
||||
field=models.CharField(blank=True, max_length=100, verbose_name="系统用户名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesdevice",
|
||||
name="version",
|
||||
field=models.CharField(max_length=100, verbose_name="客户端版本"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="alias",
|
||||
field=models.CharField(max_length=30, verbose_name="别名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="hostname",
|
||||
field=models.CharField(max_length=30, verbose_name="操作系统名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="platform",
|
||||
field=models.CharField(max_length=30, verbose_name="平台"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="rhash",
|
||||
field=models.CharField(max_length=60, verbose_name="设备链接密码"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="rid",
|
||||
field=models.CharField(max_length=60, verbose_name="客户端ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="tags",
|
||||
field=models.CharField(max_length=30, verbose_name="标签"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="用户ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdeskpeer",
|
||||
name="username",
|
||||
field=models.CharField(max_length=20, verbose_name="系统用户名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="tag_color",
|
||||
field=models.CharField(blank=True, max_length=60, verbose_name="标签颜色"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="tag_name",
|
||||
field=models.CharField(max_length=60, verbose_name="标签名称"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktag",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="所属用户ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="access_token",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=60, verbose_name="access_token"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name="登录时间"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="用户ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="username",
|
||||
field=models.CharField(max_length=20, verbose_name="用户名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="rustdesktoken",
|
||||
name="uuid",
|
||||
field=models.CharField(max_length=60, verbose_name="uuid"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="create_time",
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name="生成时间"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="is_expired",
|
||||
field=models.BooleanField(default=False, verbose_name="是否过期"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="is_used",
|
||||
field=models.BooleanField(default=False, verbose_name="是否使用"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="peers",
|
||||
field=models.CharField(max_length=20, verbose_name="机器ID列表"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="shash",
|
||||
field=models.CharField(max_length=60, verbose_name="链接Key"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="sharelink",
|
||||
name="uid",
|
||||
field=models.CharField(max_length=16, verbose_name="用户ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="deviceInfo",
|
||||
field=models.TextField(blank=True, verbose_name="登录信息:"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="is_active",
|
||||
field=models.BooleanField(default=True, verbose_name="是否激活"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="is_admin",
|
||||
field=models.BooleanField(default=False, verbose_name="是否管理员"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="userprofile",
|
||||
name="username",
|
||||
field=models.CharField(max_length=50, unique=True, verbose_name="用户名"),
|
||||
),
|
||||
]
|
||||
@ -37,10 +37,10 @@
|
||||
<li class="layui-nav-item"><a href="/webui" target="_blank">{% trans "网页控制" %}</a></li>
|
||||
|
||||
{% if u.is_admin %}
|
||||
<li class="layui-nav-item"><a href="/api/conn_log">{% trans "连接日志" %}</a></li>
|
||||
<li class="layui-nav-item"><a href="/api/file_log">{% trans "文件传输日志" %}</a></li>
|
||||
<li class="layui-nav-item"><a href="/admin" target="_blank">{% trans "管理后台" %}</a>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="/api/conn_log">Connection Log</a></li>
|
||||
<li class="layui-nav-item"><a href="/api/file_log">File Transfer Log</a></li>
|
||||
{% endif %}
|
||||
<li class="layui-nav-item"><a href="/api/user_action?action=logout" target="_blank">{% trans "退出" %}</a></li>
|
||||
</ul>
|
||||
|
||||
@ -1,23 +1,24 @@
|
||||
{% extends "base.html" %}
|
||||
{% load my_filters %}
|
||||
{% block title %}RustDesk WebUI{% endblock %}
|
||||
{% block content %}
|
||||
<div style="padding: 20px; background-color: #F2F2F2;">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md15">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">{{ "Connection Log" | translate }}:【{{u.username}}】</div>
|
||||
<div class="layui-card-header">{{ "连接日志" | translate }}:【{{u.username}}】</div>
|
||||
<div class="layui-card-body">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ "User IP" | translate }}</th>
|
||||
<th>{{ "User ID" | translate }}</th>
|
||||
<th>{{ "User Alias" | translate }}</th>
|
||||
<th>{{ "Remote ID" | translate }}</th>
|
||||
<th>{{ "Remote Alias" | translate }}</th>
|
||||
<th>{{ "Connection Start Time" | translate }}</th>
|
||||
<th>{{ "Connection End Time" | translate }}</th>
|
||||
<th>{{ "Duration (HH:MM:SS)" | translate }}</th>
|
||||
<th>{{ "用户IP" | translate }}</th>
|
||||
<th>{{ "用户ID" | translate }}</th>
|
||||
<th>{{ "用户别名" | translate }}</th>
|
||||
<th>{{ "远程ID" | translate }}</th>
|
||||
<th>{{ "远程别名" | translate }}</th>
|
||||
<th>{{ "连接开始时间" | translate }}</th>
|
||||
<th>{{ "连接结束时间" | translate }}</th>
|
||||
<th>{{ "时长" | translate }}(HH:MM:SS)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -46,7 +47,7 @@
|
||||
{% endif %}
|
||||
{% if page_obj.paginator.num_pages > 1 %}
|
||||
<span class="current">
|
||||
{{ "Page #" | translate }} {{ page_obj.number }} / {{ page_obj.paginator.num_pages }}
|
||||
{{ "页码 #" | translate }} {{ page_obj.number }} / {{ page_obj.paginator.num_pages }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if page_obj.has_next %}
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
{% extends "base.html" %}
|
||||
{% load my_filters %}
|
||||
{% block title %}RustDesk WebUI{% endblock %}
|
||||
{% block content %}
|
||||
<div style="padding: 20px; background-color: #F2F2F2;">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md15">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">{{ "File Transfer Log" | translate }}:【{{u.username}}】</div>
|
||||
<div class="layui-card-header">{{ "文件传输日志" | translate }}:【{{u.username}}】</div>
|
||||
<div class="layui-card-body">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ "File" | translate }}</th>
|
||||
<th>{{ "Remote ID" | translate }}</th>
|
||||
<th>{{ "Remote Alias" | translate }}</th>
|
||||
<th>{{ "User ID" | translate }}</th>
|
||||
<th>{{ "User Alias" | translate }}</th>
|
||||
<th>{{ "User IP" | translate }}</th>
|
||||
<th>{{ "Filesize" | translate }}</th>
|
||||
<th>{{ "Sent/Received" | translate }}</th>
|
||||
<th>{{ "Logged At" | translate }}</th>
|
||||
<th>{{ "文件" | translate }}</th>
|
||||
<th>{{ "远程ID" | translate }}</th>
|
||||
<th>{{ "远程别名" | translate }}</th>
|
||||
<th>{{ "用户ID" | translate }}</th>
|
||||
<th>{{ "用户别名" | translate }}</th>
|
||||
<th>{{ "用户IP" | translate }}</th>
|
||||
<th>{{ "文件大小" | translate }}</th>
|
||||
<th>{{ "发送/接受" | translate }}</th>
|
||||
<th>{{ "记录于" | translate }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -47,12 +48,12 @@
|
||||
<div class="layui-col-md4 layui-col-md-offset4">
|
||||
<span class="step-links">
|
||||
{% if page_obj.has_previous %}
|
||||
<button class="layui-btn" ><a href="?page=1">« {{ "First" | translate }}</a></button>
|
||||
<button class="layui-btn" ><a href="?page=1">« {{ "首页" | translate }}</a></button>
|
||||
<button class="layui-btn" ><a href="?page={{ page_obj.previous_page_number }}">{{ "Previous" | translate }}</a></button>
|
||||
{% endif %}
|
||||
{% if page_obj.paginator.num_pages > 1 %}
|
||||
<span class="current">
|
||||
{{ "page #" | translate }} {{ page_obj.number }} / {{ page_obj.paginator.num_pages }}
|
||||
{{ "页码 #" | translate }} {{ page_obj.number }} / {{ page_obj.paginator.num_pages }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if page_obj.has_next %}
|
||||
|
||||
BIN
db/db.sqlite3
BIN
db/db.sqlite3
Binary file not shown.
Binary file not shown.
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-03-15 21:10+0800\n"
|
||||
"POT-Creation-Date: 2024-05-14 10:44+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"
|
||||
@ -32,15 +32,15 @@ msgstr "Password Hash Value"
|
||||
msgid "基本信息"
|
||||
msgstr "Basic Information"
|
||||
|
||||
#: .\api\admin_user.py:98
|
||||
#: .\api\admin_user.py:100
|
||||
msgid "RustDesk自建Web"
|
||||
msgstr "RustDesk Self-Hosted Web"
|
||||
|
||||
#: .\api\admin_user.py:99
|
||||
#: .\api\admin_user.py:101
|
||||
msgid "未定义"
|
||||
msgstr "Undefined"
|
||||
|
||||
#: .\api\front_locale.py:4 .\api\templates\base.html:40
|
||||
#: .\api\front_locale.py:4 .\api\templates\base.html:42
|
||||
msgid "管理后台"
|
||||
msgstr "Admin Panel"
|
||||
|
||||
@ -54,7 +54,8 @@ msgstr "Share Machine"
|
||||
|
||||
#: .\api\front_locale.py:7
|
||||
msgid "这么简易的东西,忘记密码这功能就没必要了吧。"
|
||||
msgstr "For such a simple thing, the forgot password feature is unnecessary, right?"
|
||||
msgstr ""
|
||||
"For such a simple thing, the forgot password feature is unnecessary, right?"
|
||||
|
||||
#: .\api\front_locale.py:8
|
||||
msgid "立即注册"
|
||||
@ -77,7 +78,8 @@ msgid ""
|
||||
"2、所分享的机器,被分享人享有相同的权限,如果机器设置了保存密码,被分享人也可"
|
||||
"以直接连接。"
|
||||
msgstr ""
|
||||
"2. The shared machine grants the same permissions to the recipient. If the machine is set to save password, the recipient can also connect directly."
|
||||
"2. The shared machine grants the same permissions to the recipient. If the "
|
||||
"machine is set to save password, the recipient can also connect directly."
|
||||
|
||||
#: .\api\front_locale.py:13
|
||||
msgid "导出xlsx"
|
||||
@ -89,7 +91,9 @@ msgstr "Generate Share Link"
|
||||
|
||||
#: .\api\front_locale.py:15
|
||||
msgid "请输入8~20位密码。可以包含字母、数字和特殊字符。"
|
||||
msgstr "Please enter a password of 8~20 characters. It can contain letters, numbers, and special characters."
|
||||
msgstr ""
|
||||
"Please enter a password of 8~20 characters. It can contain letters, numbers, "
|
||||
"and special characters."
|
||||
|
||||
#: .\api\front_locale.py:16
|
||||
msgid "尾页"
|
||||
@ -196,8 +200,7 @@ msgid "请输入用户名"
|
||||
msgstr "Please enter username"
|
||||
|
||||
#: .\api\front_locale.py:43
|
||||
msgid ""
|
||||
"1、链接有效期为15分钟,切勿随意分享给他人。"
|
||||
msgid "1、链接有效期为15分钟,切勿随意分享给他人。"
|
||||
msgstr ""
|
||||
"1. The link is valid for 15 minutes. Do not share it with others casually."
|
||||
|
||||
@ -217,7 +220,7 @@ msgstr "Next Page"
|
||||
msgid "登录"
|
||||
msgstr "Login"
|
||||
|
||||
#: .\api\front_locale.py:48 .\api\templates\base.html:43
|
||||
#: .\api\front_locale.py:48 .\api\templates\base.html:45
|
||||
msgid "退出"
|
||||
msgstr "Logout"
|
||||
|
||||
@ -227,7 +230,8 @@ msgstr "Please adjust the machines to be shared to the right"
|
||||
|
||||
#: .\api\front_locale.py:50
|
||||
msgid "成功!如需分享,请复制以下链接给其他人:<br>"
|
||||
msgstr "Success! If you need to share, please copy the following link to others:<br>"
|
||||
msgstr ""
|
||||
"Success! If you need to share, please copy the following link to others:<br>"
|
||||
|
||||
#: .\api\front_locale.py:51
|
||||
msgid "忘记密码?"
|
||||
@ -258,12 +262,102 @@ msgid ""
|
||||
"3、为保障安全,链接有效期为15分钟、链接仅有效1次。链接一旦被(非分享人的登录"
|
||||
"用户)访问,分享生效,后续访问链接失效。"
|
||||
msgstr ""
|
||||
"3. For security reasons, the link is valid for 15 minutes and only valid once. Once the link is accessed by a user (other than the sharing person), the sharing becomes effective, and subsequent access to the link will be invalid."
|
||||
"3. For security reasons, the link is valid for 15 minutes and only valid "
|
||||
"once. Once the link is accessed by a user (other than the sharing person), "
|
||||
"the sharing becomes effective, and subsequent access to the link will be "
|
||||
"invalid."
|
||||
|
||||
#: .\api\front_locale.py:58
|
||||
msgid "系统"
|
||||
msgstr "System"
|
||||
|
||||
#: .\api\front_locale.py:59
|
||||
msgid "我的机器"
|
||||
msgstr "My Machine"
|
||||
|
||||
#: .\api\front_locale.py:60
|
||||
#, fuzzy
|
||||
#| msgid "基本信息"
|
||||
msgid "信息"
|
||||
msgstr "Basic Information"
|
||||
|
||||
#: .\api\front_locale.py:61
|
||||
msgid "远程ID"
|
||||
msgstr "Remote ID"
|
||||
|
||||
#: .\api\front_locale.py:62
|
||||
msgid "远程别名"
|
||||
msgstr "Remote Alias"
|
||||
|
||||
#: .\api\front_locale.py:63 .\api\models_work.py:11 .\api\models_work.py:48
|
||||
#: .\api\models_work.py:126
|
||||
msgid "用户ID"
|
||||
msgstr "User ID"
|
||||
|
||||
#: .\api\front_locale.py:64
|
||||
msgid "用户别名"
|
||||
msgstr "User Alias"
|
||||
|
||||
#: .\api\front_locale.py:65
|
||||
msgid "用户IP"
|
||||
msgstr "User IP"
|
||||
|
||||
#: .\api\front_locale.py:66
|
||||
msgid "文件大小"
|
||||
msgstr "Filesize"
|
||||
|
||||
#: .\api\front_locale.py:67
|
||||
msgid "发送/接受"
|
||||
msgstr "Sent/Received"
|
||||
|
||||
#: .\api\front_locale.py:68
|
||||
msgid "记录于"
|
||||
msgstr "Logged At"
|
||||
|
||||
#: .\api\front_locale.py:69
|
||||
msgid "连接开始时间"
|
||||
msgstr "Connection Start Time\t"
|
||||
|
||||
#: .\api\front_locale.py:70
|
||||
msgid "连接结束时间"
|
||||
msgstr "Connection End Time"
|
||||
|
||||
#: .\api\front_locale.py:71
|
||||
msgid "时长"
|
||||
msgstr "Duration"
|
||||
|
||||
#: .\api\front_locale.py:72 .\api\templates\base.html:40
|
||||
msgid "连接日志"
|
||||
msgstr "Connection Log"
|
||||
|
||||
#: .\api\front_locale.py:73 .\api\templates\base.html:41
|
||||
msgid "文件传输日志"
|
||||
msgstr "File Transfer Log"
|
||||
|
||||
#: .\api\front_locale.py:74
|
||||
msgid "页码 #"
|
||||
msgstr "Page #"
|
||||
|
||||
#: .\api\front_locale.py:75
|
||||
msgid "下一页 #"
|
||||
msgstr "Next #"
|
||||
|
||||
#: .\api\front_locale.py:76
|
||||
msgid "上一页 #"
|
||||
msgstr "Previous #"
|
||||
|
||||
#: .\api\front_locale.py:77
|
||||
#, fuzzy
|
||||
#| msgid "上一页"
|
||||
msgid "第一页"
|
||||
msgstr "First"
|
||||
|
||||
#: .\api\front_locale.py:78
|
||||
#, fuzzy
|
||||
#| msgid "上一页"
|
||||
msgid "上页"
|
||||
msgstr "Previous Page"
|
||||
|
||||
#: .\api\models_user.py:40
|
||||
msgid "登录信息:"
|
||||
msgstr "Login Information:"
|
||||
@ -288,10 +382,6 @@ msgstr "User List"
|
||||
msgid "RustDesk ID"
|
||||
msgstr "RustDesk ID"
|
||||
|
||||
#: .\api\models_work.py:11 .\api\models_work.py:48 .\api\models_work.py:96
|
||||
msgid "用户ID"
|
||||
msgstr "User ID"
|
||||
|
||||
#: .\api\models_work.py:12
|
||||
msgid "uuid"
|
||||
msgstr "UUID"
|
||||
@ -364,67 +454,69 @@ msgstr "Device"
|
||||
msgid "设备列表"
|
||||
msgstr "Device List"
|
||||
|
||||
#: .\api\models_work.py:97
|
||||
#: .\api\models_work.py:127
|
||||
msgid "链接Key"
|
||||
msgstr "Link Key"
|
||||
|
||||
#: .\api\models_work.py:98
|
||||
#: .\api\models_work.py:128
|
||||
msgid "机器ID列表"
|
||||
msgstr "Machine ID List"
|
||||
|
||||
#: .\api\models_work.py:99
|
||||
#: .\api\models_work.py:129
|
||||
msgid "是否使用"
|
||||
msgstr "Is Used"
|
||||
|
||||
#: .\api\models_work.py:100
|
||||
#: .\api\models_work.py:130
|
||||
msgid "是否过期"
|
||||
msgstr "Is Expired"
|
||||
|
||||
#: .\api\models_work.py:101
|
||||
#: .\api\models_work.py:131
|
||||
msgid "生成时间"
|
||||
msgstr "Generation Time"
|
||||
|
||||
#: .\api\models_work.py:107
|
||||
#: .\api\models_work.py:137
|
||||
msgid "分享链接"
|
||||
msgstr "Share Link"
|
||||
|
||||
#: .\api\models_work.py:108
|
||||
#: .\api\models_work.py:138
|
||||
msgid "链接列表"
|
||||
msgstr "Link List"
|
||||
|
||||
#: .\api\views_api.py:19
|
||||
#: .\api\views_api.py:20
|
||||
msgid "请求方式错误!请使用POST方式。"
|
||||
msgstr "Request method error! Please use the POST method."
|
||||
|
||||
#: .\api\views_api.py:33
|
||||
#: .\api\views_api.py:34
|
||||
msgid "帐号或密码错误!请重试,多次重试后将被锁定IP!"
|
||||
msgstr "Account or password error! Please retry. After multiple retries, the IP will be locked!"
|
||||
msgstr ""
|
||||
"Account or password error! Please retry. After multiple retries, the IP will "
|
||||
"be locked!"
|
||||
|
||||
#: .\api\views_api.py:71
|
||||
#: .\api\views_api.py:72
|
||||
msgid "请求方式错误!"
|
||||
msgstr "Request method error!"
|
||||
|
||||
#: .\api\views_api.py:79
|
||||
#: .\api\views_api.py:80
|
||||
msgid "异常请求!"
|
||||
msgstr "Abnormal request!"
|
||||
|
||||
#: .\api\views_api.py:92 .\api\views_api.py:212
|
||||
#: .\api\views_api.py:93 .\api\views_api.py:213
|
||||
msgid "错误的提交方式!"
|
||||
msgstr "Incorrect submission method!"
|
||||
|
||||
#: .\api\views_api.py:120
|
||||
#: .\api\views_api.py:121
|
||||
msgid "拉取列表错误!"
|
||||
msgstr "Error fetching list!"
|
||||
|
||||
#: .\api\views_api.py:199
|
||||
#: .\api\views_api.py:200
|
||||
msgid "更新地址簿有误"
|
||||
msgstr "Error updating address book"
|
||||
|
||||
#: .\api\views_api.py:246 .\api\views_front.py:207 .\api\views_front.py:226
|
||||
#: .\api\views_api.py:247 .\api\views_front.py:207 .\api\views_front.py:226
|
||||
msgid "在线"
|
||||
msgstr "Online"
|
||||
|
||||
#: .\api\views_api.py:252
|
||||
#: .\api\views_api.py:308
|
||||
msgid "好的"
|
||||
msgstr "Okay"
|
||||
|
||||
@ -435,12 +527,15 @@ msgstr "The parameter received by model_to_dict must be a model object"
|
||||
#: .\api\views_front.py:55
|
||||
#, python-brace-format
|
||||
msgid "model_to_dict,要替换成{replace_field}字段已经存在了"
|
||||
msgstr "model_to_dict, the field to be replaced with {replace_field} already exists"
|
||||
msgstr ""
|
||||
"model_to_dict, the field to be replaced with {replace_field} already exists"
|
||||
|
||||
#: .\api\views_front.py:60
|
||||
#, python-brace-format
|
||||
msgid "model_to_dict,要新增默认值,但字段{default_key}已经存在了"
|
||||
msgstr "model_to_dict, to add default values, but the field {default_key} already exists"
|
||||
msgstr ""
|
||||
"model_to_dict, to add default values, but the field {default_key} already "
|
||||
"exists"
|
||||
|
||||
#: .\api\views_front.py:134
|
||||
msgid "出了点问题,未获取用户名或密码。"
|
||||
@ -460,7 +555,9 @@ msgstr "Username must be at least 3 characters"
|
||||
|
||||
#: .\api\views_front.py:165
|
||||
msgid "密码长度不符合要求, 应在8~20位。"
|
||||
msgstr "Password length does not meet requirements, should be between 8~20 characters."
|
||||
msgstr ""
|
||||
"Password length does not meet requirements, should be between 8~20 "
|
||||
"characters."
|
||||
|
||||
#: .\api\views_front.py:171
|
||||
msgid "用户名已存在。"
|
||||
@ -485,3 +582,11 @@ msgstr "Device Information Table"
|
||||
#: .\api\views_front.py:351
|
||||
msgid "数据为空。"
|
||||
msgstr "Data is empty."
|
||||
|
||||
#: .\api\views_front.py:373 .\api\views_front.py:378 .\api\views_front.py:409
|
||||
#: .\api\views_front.py:414
|
||||
msgid "UNKNOWN"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "未知"
|
||||
#~ msgstr "UNKNOWN"
|
||||
|
||||
@ -44,6 +44,7 @@ MYSQL_PORT = os.environ.get("MYSQL_PORT", '3306')
|
||||
#==========数据库配置 结束=====================
|
||||
|
||||
LANGUAGE_CODE = os.environ.get("LANGUAGE_CODE", 'zh-hans')
|
||||
##LANGUAGE_CODE = os.environ.get("LANGUAGE_CODE", 'en')
|
||||
|
||||
# Application definition
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user