Files
lmvpn_server/frontend/src/locales/zh.ts
T
kevin fea3fc62f7 feat: 新增管理员踢下线 VPN 客户端功能
- vpn/service.go: ClientInfo 增加 user_id 字段,新增 KickUser 方法
  用读锁收集目标连接后逐个关闭 WebSocket,返回断开数量
- vpn/tunnel.go: info() 填充 UserID
- handler/vpn.go: 新增 KickUserClient handler,校验用户存在后调用 KickUser
- router.go: 注册 DELETE /api/admin/vpn/clients/:id
- VpnView.vue: 在线客户端表格新增操作列与踢下线按钮,handleKick 确认后调用 API 并刷新
- zh.ts/en.ts: 新增 kick/confirmKick/kickFailed 国际化 key
2026-07-10 13:01:26 +08:00

181 lines
6.1 KiB
TypeScript

export default {
common: {
cancel: '取消',
confirm: '确定',
save: '保存',
saving: '保存中...',
delete: '删除',
deleting: '删除中...',
edit: '编辑',
loading: '加载中...',
loadFailed: '加载失败',
saveFailed: '保存失败',
createFailed: '创建失败',
deleteFailed: '删除失败',
role: '角色',
status: '状态',
admin: '管理员',
normalUser: '普通用户',
enabled: '启用',
disabled: '禁用',
username: '用户名',
password: '密码',
createdAt: '创建时间',
actions: '操作',
id: 'ID',
},
nav: {
home: '首页',
about: '关于',
profile: '用户信息',
admin: '管理后台',
logout: '退出',
login: '登录',
},
language: {
label: '语言',
zh: '中文',
en: 'English',
},
login: {
title: 'LmVPN 登录',
enterUsernamePassword: '请输入用户名和密码',
enterUsername: '请输入用户名',
enterPassword: '请输入密码',
loginFailed: '登录失败',
loggingIn: '登录中...',
loginButton: '登录',
},
profile: {
title: '用户信息',
basicInfo: '基本信息',
usernameLabel: '用户名:',
roleLabel: '角色:',
changePassword: '修改密码',
oldPassword: '原密码',
newPassword: '新密码',
confirmNewPassword: '确认新密码',
enterOldAndNewPassword: '请填写原密码和新密码',
passwordsDoNotMatch: '两次输入的新密码不一致',
passwordChangeFailed: '密码修改失败',
},
about: {
title: '关于 LmVPN',
description:
'LmVPN 是一款基于 WebSocket 隧道与 TUN 虚拟网卡的轻量级三层 VPN 系统,采用 Go + Vue 3 构建。支持多用户管理、IPv4/IPv6 双栈、静态 IP 预留与流量统计,提供点对点与点对站点网络连接方案。',
},
admin: {
title: '管理后台',
uptime: '运行时长',
activeDevices: '活跃设备',
todayTraffic: '今日流量',
onlineNodes: '在线节点',
totalUsers: '用户总数',
vpnManage: 'VPN 管理',
config: '配置',
userInfo: '用户信息',
usernameLabel: '用户名:',
roleLabel: '角色:',
logoutButton: '退出登录',
},
userManage: {
title: '用户管理',
addUser: '新增用户',
fillUsernamePassword: '请填写用户名和密码',
creating: '创建中...',
editUser: '编辑用户 - {username}',
newPasswordOptional: '新密码(留空不修改)',
newPasswordPlaceholder: '留空则不修改密码',
confirmDelete: '确认删除',
confirmDeleteMessage: '确定要删除用户 {username} 吗?此操作不可撤销。',
confirmDeleteButton: '确认删除',
},
vpn: {
title: 'VPN 管理',
refresh: '刷新',
serviceStatus: '服务状态',
running: '运行中',
stopped: '已停止',
onlineClients: '在线客户端',
ipUsage: 'IP 用量',
systemCheck: '系统环境检测',
tunDevice: 'TUN 设备',
tunRunning: '运行中',
rootPermission: 'Root 权限',
runningAsRoot: '以 root 运行',
notRunningAsRoot: '非 root 运行',
capNetAdmin: 'CAP_NET_ADMIN',
authorized: '已授权',
unauthorized: '未授权',
ipForward: 'IP 转发 (ip_forward)',
notEnabled: '未开启',
natMasqueradeV4: 'NAT MASQUERADE (IPv4)',
configured: '已配置',
notConfigured: '未配置',
ipv6Forward: 'IPv6 转发 (forwarding)',
natMasqueradeV6: 'NAT MASQUERADE (IPv6)',
platform: '平台',
nonLinuxNote:
'注:CAP_NET_ADMIN / ip_forward / MASQUERADE 检测仅适用于 Linux,其他平台需手动确认网络配置。',
tunnelSettings: '隧道设置',
enableVpn: '启用 VPN 服务',
enable: '启用',
stop: '停止',
subnet: '子网 (CIDR)',
ipv6Subnet: 'IPv6 子网 (CIDR, 可选)',
mtu: 'MTU',
interfaceName: '接口名 (留空自动)',
allowClientToClient: '允许客户端互通',
allow: '允许',
deny: '禁止',
serverConfigTunIp: '服务端配置 TUN IP',
autoConfig: '自动配置',
manual: '手动',
saveSettings: '保存设置',
saveSuccess: '保存成功',
user: '用户',
ipv4: 'IPv4',
ipv6: 'IPv6',
connectTime: '连接时间',
noOnlineClients: '暂无在线客户端',
staticIpReservation: '静态 IP 预留',
addReservation: '新增预留',
noReservations: '暂无预留',
addIpReservation: '新增 IP 预留',
selectUser: '选择用户',
ipv4Address: 'IPv4 地址 (可选)',
ipv6Address: 'IPv6 地址 (可选)',
selectUserAndIp: '请选择用户并至少填写一个 IP 地址',
confirmDeleteReservation: '确认删除该预留?',
kick: '踢下线',
confirmKick: '确定要断开用户 {username} 的所有 VPN 连接吗?',
kickFailed: '踢下线失败',
},
footer: {
lastCommit: '最后提交',
},
home: {
tagline: '基于 WebSocket 与 TUN 虚拟网卡的轻量级三层 VPN 隧道管理系统',
tunnel: 'WebSocket 隧道',
tunnelDesc:
'基于 WebSocket 与 TUN 虚拟网卡的三层隧道,经反向代理提供 WSS/TLS 传输安全。',
userManage: '多用户管理',
userManageDesc:
'管理员与普通角色,支持用户增删改、启用禁用与改密,内置自保护规则。',
multiDevice: '多设备并发',
multiDeviceDesc: '每用户最多 3 个并发连接,自动分配隧道 IP 地址。',
dualStack: 'IPv4/IPv6 双栈',
dualStackDesc: '同时支持 IPv4 与 IPv6 子网,NAT 双栈转发与源地址反欺骗。',
reservation: '静态 IP 预留',
reservationDesc:
'按用户预留固定 IPv4/IPv6 地址,自动校验子网合法性与唯一性。',
traffic: '流量统计',
trafficDesc: '实时统计在线设备与流量,按日聚合记录网络使用状况。',
session: '会话管理',
sessionDesc:
'JWT 令牌会话,支持自行注销与管理员强制下线,状态变更级联失效。',
deploy: '一键部署与诊断',
deployDesc: 'Linux 一键脚本部署,内置系统环境检测面板快速定位问题。',
},
}