diff --git a/pkg/embed/locales/zh_CN/backend.po b/pkg/embed/locales/zh_CN/backend.po index 6e322df3..19680d1f 100644 --- a/pkg/embed/locales/zh_CN/backend.po +++ b/pkg/embed/locales/zh_CN/backend.po @@ -13,20 +13,20 @@ msgstr "" "X-Crowdin-File-ID: 922\n" "Project-Id-Version: ratpanel\n" "Language-Team: Chinese Simplified\n" -"PO-Revision-Date: 2025-05-13 20:54\n" +"PO-Revision-Date: 2025-05-14 18:55\n" #: internal/data/website.go:269 #: internal/data/website.go:635 msgid "# Rewrite rule" msgstr "# 伪静态规则" -#: internal/service/cli.go:287 +#: internal/service/cli.go:284 msgid "2FA disabled for user %s" -msgstr "" +msgstr "用户 %s 已禁用两步验证" -#: internal/service/cli.go:295 +#: internal/service/cli.go:292 msgid "2FA url: %s" -msgstr "" +msgstr "两步验证 URL: %s" #: internal/bootstrap/cli.go:18 msgid "AUTHOR" @@ -60,7 +60,7 @@ msgstr "添加面板应用标记(仅在指导下使用)" msgid "Aliyun" msgstr "阿里云" -#: internal/service/cli.go:862 +#: internal/service/cli.go:859 msgid "Already initialized" msgstr "已经初始化过了" @@ -68,27 +68,27 @@ msgstr "已经初始化过了" msgid "App %s %s" msgstr "应用 %s %s" -#: internal/service/cli.go:711 +#: internal/service/cli.go:708 msgid "App %s installed successfully" msgstr "应用 %s 安装成功" -#: internal/service/cli.go:725 +#: internal/service/cli.go:722 msgid "App %s uninstalled successfully" msgstr "应用 %s 卸载成功" -#: internal/service/cli.go:739 +#: internal/service/cli.go:736 msgid "App %s updated successfully" msgstr "应用 %s 更新成功" -#: internal/service/cli.go:708 +#: internal/service/cli.go:705 msgid "App install failed: %v" msgstr "应用安装失败:%v" -#: internal/service/cli.go:722 +#: internal/service/cli.go:719 msgid "App uninstall failed: %v" msgstr "应用卸载失败:%v" -#: internal/service/cli.go:736 +#: internal/service/cli.go:733 msgid "App update failed: %v" msgstr "应用更新失败:%v" @@ -108,9 +108,9 @@ msgstr "备份数据库" msgid "Backup directory (default path if not filled)" msgstr "备份目录(不填则使用默认路径)" -#: internal/service/cli.go:590 -#: internal/service/cli.go:606 -#: internal/service/cli.go:620 +#: internal/service/cli.go:587 +#: internal/service/cli.go:603 +#: internal/service/cli.go:617 msgid "Backup failed: %v" msgstr "备份失败:%v" @@ -167,7 +167,7 @@ msgstr "更改面板端口" #: internal/route/cli.go:80 msgid "Change user 2FA" -msgstr "" +msgstr "更改用户两步验证" #: internal/route/cli.go:75 msgid "Change user password" @@ -177,7 +177,7 @@ msgstr "更改用户密码" msgid "Change username" msgstr "更改用户名" -#: internal/service/cli.go:644 +#: internal/service/cli.go:641 msgid "Cleaning failed: %v" msgstr "清理失败:%v" @@ -225,7 +225,7 @@ msgstr "已连接客户端数" msgid "Create new website" msgstr "创建新网站" -#: internal/service/cli.go:678 +#: internal/service/cli.go:675 msgid "Currently only website log rotation is supported" msgstr "目前仅支持网站日志切割" @@ -250,11 +250,11 @@ msgstr "数据库管理" msgid "Database name" msgstr "数据库名称" -#: internal/service/cli.go:565 +#: internal/service/cli.go:562 msgid "Database server %s added successfully" msgstr "数据库服务器 %s 添加成功" -#: internal/service/cli.go:579 +#: internal/service/cli.go:576 msgid "Database server %s deleted successfully" msgstr "数据库服务器 %s 删除成功" @@ -311,16 +311,16 @@ msgstr "启用访问入口" msgid "Enchant is a spell-checking library" msgstr "Enchant 是一个拼写检查库" -#: internal/service/cli.go:437 +#: internal/service/cli.go:434 msgid "Entrance disabled" msgstr "入口已禁用" -#: internal/service/cli.go:411 +#: internal/service/cli.go:408 msgid "Entrance enabled" msgstr "入口已启用" -#: internal/service/cli.go:166 -#: internal/service/cli.go:412 +#: internal/service/cli.go:163 +#: internal/service/cli.go:409 msgid "Entrance: %s" msgstr "入口:%s" @@ -332,44 +332,44 @@ msgstr "Event 是一个用于处理事件的库" msgid "Exif is a library for reading and writing image metadata" msgstr "Exif 是一个用于读取和写入图像元数据的库" -#: internal/service/cli.go:285 +#: internal/service/cli.go:282 msgid "Failed to change 2FA status: %v" -msgstr "" +msgstr "修改两步验证失败:%v" -#: internal/service/cli.go:259 +#: internal/service/cli.go:256 msgid "Failed to change password: %v" msgstr "修改密码失败:%v" -#: internal/service/cli.go:227 +#: internal/service/cli.go:224 msgid "Failed to change username: %v" msgstr "修改用户名失败:%v" -#: internal/service/cli.go:799 +#: internal/service/cli.go:796 msgid "Failed to clear tasks: %v" msgstr "清除任务失败:%v" -#: internal/service/cli.go:774 +#: internal/service/cli.go:771 msgid "Failed to delete app: %v" msgstr "删除应用失败:%v" -#: internal/service/cli.go:853 +#: internal/service/cli.go:850 msgid "Failed to delete setting: %v" msgstr "删除设置失败:%v" -#: internal/service/cli.go:293 +#: internal/service/cli.go:290 msgid "Failed to generate 2FA: %v" -msgstr "" +msgstr "生成两步验证失败:%v" #: internal/service/cli.go:137 -#: internal/service/cli.go:255 +#: internal/service/cli.go:252 msgid "Failed to generate password: %v" msgstr "生成密码失败:%v" -#: internal/service/cli.go:754 +#: internal/service/cli.go:751 msgid "Failed to get app: %v" msgstr "获取应用失败:%v" -#: internal/service/cli.go:160 +#: internal/service/cli.go:157 msgid "Failed to get entrance" msgstr "获取入口失败" @@ -377,12 +377,12 @@ msgstr "获取入口失败" msgid "Failed to get latest version: %v" msgstr "获取最新版本失败:%v" -#: internal/service/cli.go:156 +#: internal/service/cli.go:153 msgid "Failed to get port" msgstr "获取端口失败" -#: internal/service/cli.go:817 -#: internal/service/cli.go:834 +#: internal/service/cli.go:814 +#: internal/service/cli.go:831 msgid "Failed to get setting: %v" msgstr "获取设置失败:%v" @@ -390,29 +390,29 @@ msgstr "获取设置失败:%v" msgid "Failed to get user info: %v" msgstr "获取用户信息失败:%v" -#: internal/service/cli.go:196 +#: internal/service/cli.go:193 msgid "Failed to get user list: %v" msgstr "获取用户列表失败:%v" -#: internal/service/cli.go:221 -#: internal/service/cli.go:249 -#: internal/service/cli.go:277 +#: internal/service/cli.go:218 +#: internal/service/cli.go:246 +#: internal/service/cli.go:274 msgid "Failed to get user: %v" msgstr "获取用户失败:%v" -#: internal/service/cli.go:300 +#: internal/service/cli.go:297 msgid "Failed to read input: %v" -msgstr "" +msgstr "读取输入失败: %v" -#: internal/service/cli.go:761 +#: internal/service/cli.go:758 msgid "Failed to save app: %v" msgstr "保存应用失败:%v" -#: internal/service/cli.go:840 +#: internal/service/cli.go:837 msgid "Failed to save setting: %v" msgstr "保存设置失败:%v" -#: internal/service/cli.go:146 +#: internal/service/cli.go:143 msgid "Failed to save user info: %v" msgstr "保存用户信息失败:%v" @@ -424,9 +424,9 @@ msgstr "同步应用数据失败:%v" msgid "Failed to synchronize rewrite rules: %v" msgstr "同步重写规则失败:%v" -#: internal/service/cli.go:303 +#: internal/service/cli.go:300 msgid "Failed to update 2FA: %v" -msgstr "" +msgstr "更新两步验证失败: %v" #: internal/apps/php/app.go:288 msgid "Fileinfo is a library used to identify file types" @@ -480,15 +480,15 @@ msgstr "Gettext 是一个处理多语言支持的库" msgid "Godaddy" msgstr "Godaddy" -#: internal/service/cli.go:386 +#: internal/service/cli.go:383 msgid "HTTPS certificate generated" msgstr "HTTPS 证书已生成" -#: internal/service/cli.go:355 +#: internal/service/cli.go:352 msgid "HTTPS disabled" msgstr "HTTPS 已禁用" -#: internal/service/cli.go:330 +#: internal/service/cli.go:327 msgid "HTTPS enabled" msgstr "HTTPS 已启用" @@ -500,7 +500,7 @@ msgstr "Hetzner" msgid "Huawei Cloud" msgstr "华为云" -#: internal/service/cli.go:200 +#: internal/service/cli.go:197 msgid "ID: %d, Username: %s, Email: %s, Created At: %s" msgstr "ID: %d, 用户名: %s, 邮箱: %s, 创建时间: %s" @@ -512,11 +512,11 @@ msgstr "IMAP 扩展允许 PHP 读取、搜索、删除、下载和管理邮件" msgid "Idle Processes" msgstr "空闲进程" -#: internal/service/cli.go:186 +#: internal/service/cli.go:183 msgid "If you cannot access, please check whether the server's security group and firewall allow port %s" msgstr "如果您无法访问,请检查服务器的安全组和防火墙是否放行端口 %s" -#: internal/service/cli.go:187 +#: internal/service/cli.go:184 msgid "If you still cannot access, try running panel-cli https off to turn off panel HTTPS" msgstr "如果您仍然无法访问,请尝试运行 panel-cli https off 关闭面板 HTTPS" @@ -532,10 +532,10 @@ msgstr "ImageMagick 是一个创建、编辑、合成图片的免费软件" msgid "Index Hit Rate" msgstr "索引命中率" -#: internal/service/cli.go:877 -#: internal/service/cli.go:882 -#: internal/service/cli.go:887 -#: internal/service/cli.go:891 +#: internal/service/cli.go:874 +#: internal/service/cli.go:879 +#: internal/service/cli.go:884 +#: internal/service/cli.go:888 msgid "Initialization failed: %v" msgstr "初始化失败:%v" @@ -608,11 +608,11 @@ msgstr "监听队列" msgid "Listen Queue Length" msgstr "监听队列长度" -#: internal/service/cli.go:170 +#: internal/service/cli.go:167 msgid "Local IPv4: %s://%s:%s%s" msgstr "本地 IPv4:%s://%s:%s%s" -#: internal/service/cli.go:174 +#: internal/service/cli.go:171 msgid "Local IPv6: %s://[%s]:%s%s" msgstr "本地 IPv6:%s://[%s]:%s%s" @@ -678,7 +678,7 @@ msgstr "NameSilo" msgid "Namecheap" msgstr "Namecheap" -#: internal/service/cli.go:214 +#: internal/service/cli.go:211 msgid "New username cannot be empty" msgstr "新用户名不能为空" @@ -686,7 +686,7 @@ msgstr "新用户名不能为空" msgid "No backup file found, unable to automatically repair" msgstr "未找到备份文件,无法自动修复" -#: internal/service/cli.go:546 +#: internal/service/cli.go:543 msgid "Not supported" msgstr "不支持" @@ -712,7 +712,7 @@ msgstr "选项" msgid "OPcache stores precompiled PHP script bytecode in shared memory to improve PHP performance" msgstr "OPcache 将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能" -#: internal/service/cli.go:211 +#: internal/service/cli.go:208 msgid "Old username cannot be empty" msgstr "旧用户名不能为空" @@ -752,26 +752,26 @@ msgstr "面板服务已启动" msgid "Panel service stopped" msgstr "面板服务已停止" -#: internal/service/cli.go:704 -#: internal/service/cli.go:718 -#: internal/service/cli.go:732 -#: internal/service/cli.go:748 -#: internal/service/cli.go:770 -#: internal/service/cli.go:809 -#: internal/service/cli.go:828 -#: internal/service/cli.go:849 +#: internal/service/cli.go:701 +#: internal/service/cli.go:715 +#: internal/service/cli.go:729 +#: internal/service/cli.go:745 +#: internal/service/cli.go:767 +#: internal/service/cli.go:806 +#: internal/service/cli.go:825 +#: internal/service/cli.go:846 msgid "Parameters cannot be empty" msgstr "参数不能为空" -#: internal/service/cli.go:262 +#: internal/service/cli.go:259 msgid "Password for user %s changed successfully" msgstr "用户 %s 的密码已成功更改" -#: internal/service/cli.go:242 +#: internal/service/cli.go:239 msgid "Password length cannot be less than 6" msgstr "密码长度不能少于6位" -#: internal/service/cli.go:164 +#: internal/service/cli.go:161 msgid "Password: %s" msgstr "密码:%s" @@ -791,31 +791,31 @@ msgstr "占用内存峰值" msgid "PhpRedis connects to and operates on data in Redis databases (requires the igbinary extension installed above)" msgstr "PhpRedis 连接并操作 Redis 数据库上的数据(需先安装上面 igbinary 拓展)" -#: internal/service/cli.go:185 +#: internal/service/cli.go:182 msgid "Please choose the appropriate address to access the panel based on your network situation" msgstr "请根据您的网络情况选择合适的地址访问面板" -#: internal/service/cli.go:297 +#: internal/service/cli.go:294 msgid "Please enter the 2FA code: " -msgstr "" +msgstr "请输入两步验证代码: " #: internal/service/cert.go:88 msgid "Porkbun" msgstr "Porkbun" -#: internal/service/cli.go:458 +#: internal/service/cli.go:455 msgid "Port already in use" msgstr "端口已被占用" -#: internal/service/cli.go:486 +#: internal/service/cli.go:483 msgid "Port changed to %d" msgstr "端口已更改为 %d" -#: internal/service/cli.go:444 +#: internal/service/cli.go:441 msgid "Port range error" msgstr "端口范围错误" -#: internal/service/cli.go:165 +#: internal/service/cli.go:162 msgid "Port: %s" msgstr "端口:%s" @@ -835,11 +835,11 @@ msgstr "进程 PID" msgid "Pspell is a spell-checking library" msgstr "Pspell 是一个拼写检查库" -#: internal/service/cli.go:178 +#: internal/service/cli.go:175 msgid "Public IPv4: %s://%s:%s%s" msgstr "公网 IPv4:%s://%s:%s%s" -#: internal/service/cli.go:182 +#: internal/service/cli.go:179 msgid "Public IPv6: %s://[%s]:%s%s" msgstr "公网 IPv6:%s://[%s]:%s%s" @@ -947,7 +947,7 @@ msgstr "服务器用户名" msgid "Setting management" msgstr "设置管理" -#: internal/service/cli.go:815 +#: internal/service/cli.go:812 msgid "Setting not exists" msgstr "设置不存在" @@ -1016,7 +1016,7 @@ msgstr "TCP 端口" msgid "Table Locks Waited" msgstr "锁表次数" -#: internal/service/cli.go:802 +#: internal/service/cli.go:799 msgid "Tasks cleared successfully" msgstr "任务已成功清除" @@ -1036,7 +1036,7 @@ msgstr "腾讯云" msgid "The number of files contained in the compressed file is not 1, actual %d" msgstr "压缩文件包含的文件数量不为1,实际为 %d" -#: internal/service/cli.go:790 +#: internal/service/cli.go:787 msgid "Time synchronized successfully" msgstr "时间同步成功" @@ -1136,25 +1136,25 @@ msgstr "运行时间" msgid "Uptime in Days" msgstr "已运行天数" -#: internal/service/cli.go:219 -#: internal/service/cli.go:247 -#: internal/service/cli.go:275 +#: internal/service/cli.go:216 +#: internal/service/cli.go:244 +#: internal/service/cli.go:272 msgid "User not exists" msgstr "用户不存在" -#: internal/service/cli.go:230 +#: internal/service/cli.go:227 msgid "Username %s changed to %s successfully" msgstr "用户名 %s 已成功更改为 %s" -#: internal/service/cli.go:239 +#: internal/service/cli.go:236 msgid "Username and password cannot be empty" msgstr "用户名和密码不能为空" -#: internal/service/cli.go:270 +#: internal/service/cli.go:267 msgid "Username cannot be empty" -msgstr "" +msgstr "用户名不能为空" -#: internal/service/cli.go:163 +#: internal/service/cli.go:160 msgid "Username: %s" msgstr "用户名:%s" @@ -1174,7 +1174,7 @@ msgstr "验证下载文件失败:%v" msgid "Waiting" msgstr "正在驻留等待" -#: internal/service/cli.go:188 +#: internal/service/cli.go:185 msgid "Warning: After turning off panel HTTPS, the security of the panel will be greatly reduced, please operate with caution" msgstr "警告:关闭面板 HTTPS 后,面板的安全性将大大降低,请谨慎操作" @@ -1182,15 +1182,15 @@ msgstr "警告:关闭面板 HTTPS 后,面板的安全性将大大降低, msgid "Website" msgstr "网站" -#: internal/service/cli.go:505 +#: internal/service/cli.go:502 msgid "Website %s created successfully" msgstr "网站 %s 创建成功" -#: internal/service/cli.go:541 +#: internal/service/cli.go:538 msgid "Website %s deleted successfully" msgstr "网站 %s 删除成功" -#: internal/service/cli.go:522 +#: internal/service/cli.go:519 msgid "Website %s removed successfully" msgstr "网站 %s 移除成功" @@ -1242,7 +1242,7 @@ msgstr "XSL 是用于处理 XML 文档的库" msgid "Zip is a library for handling ZIP files" msgstr "Zip 是一个用于处理 ZIP 文件的库" -#: internal/http/middleware/must_login.go:94 +#: internal/http/middleware/must_login.go:95 msgid "api signature expired" msgstr "API 签名已过期" @@ -1275,8 +1275,8 @@ msgstr "应用 %s 需要面板版本 %s,当前版本 %s" msgid "app not found" msgstr "应用未找到" -#: internal/data/setting.go:312 -#: internal/data/setting.go:373 +#: internal/data/setting.go:282 +#: internal/data/setting.go:343 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "后台任务正在运行,禁止修改某些设置,请稍后再试" @@ -1307,7 +1307,7 @@ msgstr "找不到 %s 数据库服务器,请先添加" msgid "check server connection failed" msgstr "检查服务器连接失败" -#: internal/http/middleware/must_login.go:122 +#: internal/http/middleware/must_login.go:123 msgid "client ip/ua changed, please login again" msgstr "客户端 IP/UA 已更改,请重新登录" @@ -1358,6 +1358,16 @@ msgstr "重复提交,请等待前一个任务结束" msgid "endpoint should not contain bucket" msgstr "端点不应包含 bucket" +#: internal/service/user_token.go:54 +#: internal/service/user_token.go:89 +msgid "expiration time must be greater than current time" +msgstr "到期时间必须大于当前时间" + +#: internal/service/user_token.go:58 +#: internal/service/user_token.go:93 +msgid "expiration time must be less than 10 years" +msgstr "到期时间必须小于 10 年" + #: internal/apps/php/app.go:229 #: internal/apps/php/app.go:260 msgid "extension %s does not exist" @@ -1568,12 +1578,12 @@ msgid "failed to load MySQL root password: %v" msgstr "加载 MySQL root 密码失败: %v" #: internal/data/cert.go:92 -#: internal/data/setting.go:317 +#: internal/data/setting.go:287 msgid "failed to parse certificate: %v" msgstr "解析证书失败: %v" #: internal/data/cert.go:95 -#: internal/data/setting.go:320 +#: internal/data/setting.go:290 msgid "failed to parse private key: %v" msgstr "解析私钥失败: %v" @@ -1685,21 +1695,21 @@ msgstr "gRPC 是一个高性能、开源和通用的 RPC 框架" msgid "get service port failed, please check if it is installed" msgstr "获取服务端口失败,请检查是否安装" -#: internal/data/user.go:149 -#: internal/data/user.go:167 -#: internal/service/user.go:93 -msgid "invalid 2fa code" -msgstr "" +#: internal/data/user.go:160 +#: internal/data/user.go:178 +#: internal/service/user.go:96 +msgid "invalid 2FA code" +msgstr "无效的两步验证代码" #: internal/http/middleware/entrance.go:101 msgid "invalid access entrance" msgstr "无效的访问入口" -#: internal/http/middleware/must_login.go:84 +#: internal/http/middleware/must_login.go:85 msgid "invalid api signature" msgstr "无效的 API 签名" -#: internal/service/user.go:79 +#: internal/service/user.go:82 msgid "invalid key, please refresh the page" msgstr "无效的密钥,请刷新页面" @@ -1715,7 +1725,7 @@ msgstr "无效的请求 IP:%s" msgid "invalid request user agent: %s" msgstr "无效的请求UA:%s" -#: internal/http/middleware/must_login.go:136 +#: internal/http/middleware/must_login.go:137 msgid "invalid user id, please login again" msgstr "无效的用户ID,请重新登录" @@ -1801,7 +1811,7 @@ msgstr "没有找到 phpMyAdmin 目录" msgid "phpMyAdmin port not found" msgstr "没有找到 phpMyAdmin 端口" -#: internal/data/user.go:81 +#: internal/data/user.go:92 #: internal/service/file.go:135 #: internal/service/file.go:222 #: internal/service/file.go:251 @@ -1812,7 +1822,7 @@ msgstr "请不要花样作死" msgid "please retry the manual obtain operation" msgstr "请重新操作手动签发" -#: internal/data/setting.go:341 +#: internal/data/setting.go:311 msgid "port is already in use" msgstr "端口已被占用" @@ -1845,7 +1855,7 @@ msgstr "未找到运行目录注释" msgid "runtime directory does not exist" msgstr "运行目录不存在" -#: internal/http/middleware/must_login.go:107 +#: internal/http/middleware/must_login.go:108 msgid "session expired, please login again" msgstr "会话已过期,请重新登录" @@ -1935,9 +1945,9 @@ msgstr "上传的证书无法设置为自动续签" msgid "upload file error: %v" msgstr "上传文件错误:%v" -#: internal/data/user.go:103 -#: internal/data/user.go:113 -#: internal/data/user.go:96 +#: internal/data/user.go:107 +#: internal/data/user.go:114 +#: internal/data/user.go:124 msgid "username or password error" msgstr "用户名或密码错误" @@ -2008,8 +2018,8 @@ msgstr "|-备份面板数据失败:%v" msgid "|-Backup panel data..." msgstr "|-备份面板数据……" -#: internal/service/cli.go:588 -#: internal/service/cli.go:604 +#: internal/service/cli.go:585 +#: internal/service/cli.go:601 msgid "|-Backup target: %s" msgstr "|-备份目标:%s" @@ -2020,15 +2030,15 @@ msgstr "|-备份目标:%s" msgid "|-Backup time: %s" msgstr "|-备份时间:%s" -#: internal/service/cli.go:602 +#: internal/service/cli.go:599 msgid "|-Backup type: database" msgstr "|-备份类型:数据库" -#: internal/service/cli.go:618 +#: internal/service/cli.go:615 msgid "|-Backup type: panel" msgstr "|-备份类型:面板" -#: internal/service/cli.go:587 +#: internal/service/cli.go:584 msgid "|-Backup type: website" msgstr "|-备份类型:网站" @@ -2056,17 +2066,17 @@ msgstr "|-清理旧版本失败:%v" msgid "|-Cleaning old version..." msgstr "|-清理旧版本……" -#: internal/service/cli.go:641 -#: internal/service/cli.go:689 +#: internal/service/cli.go:638 +#: internal/service/cli.go:686 msgid "|-Cleaning target: %s" msgstr "|-清理目标:%s" -#: internal/service/cli.go:640 -#: internal/service/cli.go:688 +#: internal/service/cli.go:637 +#: internal/service/cli.go:685 msgid "|-Cleaning type: %s" msgstr "|-清理类型:%s" -#: internal/service/cli.go:603 +#: internal/service/cli.go:600 msgid "|-Database: %s" msgstr "|-数据库:%s" @@ -2090,8 +2100,8 @@ msgstr "|-文件名:%s" msgid "|-Fix completed" msgstr "|-修复完成" -#: internal/service/cli.go:642 -#: internal/service/cli.go:690 +#: internal/service/cli.go:639 +#: internal/service/cli.go:687 msgid "|-Keep count: %d" msgstr "|-保留数量:%d" @@ -2116,11 +2126,11 @@ msgstr "|-恢复面板数据失败:%v" msgid "|-Restore panel data..." msgstr "|-恢复面板数据……" -#: internal/service/cli.go:666 +#: internal/service/cli.go:663 msgid "|-Rotation target: %s" msgstr "|-切割目标:%s" -#: internal/service/cli.go:665 +#: internal/service/cli.go:662 msgid "|-Rotation type: website" msgstr "|-切割类型:website" @@ -2182,36 +2192,36 @@ msgstr "|-验证下载文件……" msgid "|-Write new panel version failed: %v" msgstr "|-写入新面板版本失败:%v" -#: internal/service/cli.go:585 -#: internal/service/cli.go:600 -#: internal/service/cli.go:616 +#: internal/service/cli.go:582 +#: internal/service/cli.go:597 +#: internal/service/cli.go:613 msgid "★ Start backup [%s]" msgstr "★ 开始备份 [%s]" -#: internal/service/cli.go:638 +#: internal/service/cli.go:635 msgid "★ Start cleaning [%s]" msgstr "★ 开始清理 [%s]" -#: internal/service/cli.go:686 +#: internal/service/cli.go:683 msgid "★ Start cleaning rotated logs [%s]" msgstr "★ 开始清理切割日志 [%s]" -#: internal/service/cli.go:663 +#: internal/service/cli.go:660 msgid "★ Start log rotation [%s]" msgstr "★ 开始切割日志 [%s]" -#: internal/service/cli.go:593 -#: internal/service/cli.go:609 -#: internal/service/cli.go:623 +#: internal/service/cli.go:590 +#: internal/service/cli.go:606 +#: internal/service/cli.go:620 msgid "☆ Backup successful [%s]" msgstr "☆ 备份成功 [%s]" -#: internal/service/cli.go:647 -#: internal/service/cli.go:695 +#: internal/service/cli.go:644 +#: internal/service/cli.go:692 msgid "☆ Cleaning successful [%s]" msgstr "☆ 清理成功 [%s]" -#: internal/service/cli.go:671 +#: internal/service/cli.go:668 msgid "☆ Rotation successful [%s]" msgstr "☆ 切割成功 [%s]" diff --git a/pkg/embed/locales/zh_TW/backend.po b/pkg/embed/locales/zh_TW/backend.po index 196a4f82..06deed0b 100644 --- a/pkg/embed/locales/zh_TW/backend.po +++ b/pkg/embed/locales/zh_TW/backend.po @@ -13,20 +13,20 @@ msgstr "" "X-Crowdin-File-ID: 922\n" "Project-Id-Version: ratpanel\n" "Language-Team: Chinese Traditional\n" -"PO-Revision-Date: 2025-05-13 20:54\n" +"PO-Revision-Date: 2025-05-14 18:55\n" #: internal/data/website.go:269 #: internal/data/website.go:635 msgid "# Rewrite rule" msgstr "# 重寫規則" -#: internal/service/cli.go:287 +#: internal/service/cli.go:284 msgid "2FA disabled for user %s" -msgstr "" +msgstr "用戶 %s 已禁用兩步驗證" -#: internal/service/cli.go:295 +#: internal/service/cli.go:292 msgid "2FA url: %s" -msgstr "" +msgstr "兩步驗證 URL: %s" #: internal/bootstrap/cli.go:18 msgid "AUTHOR" @@ -60,7 +60,7 @@ msgstr "添加面板應用標記(僅在指導下使用)" msgid "Aliyun" msgstr "阿里雲" -#: internal/service/cli.go:862 +#: internal/service/cli.go:859 msgid "Already initialized" msgstr "已經初始化過了" @@ -68,27 +68,27 @@ msgstr "已經初始化過了" msgid "App %s %s" msgstr "應用 %s %s" -#: internal/service/cli.go:711 +#: internal/service/cli.go:708 msgid "App %s installed successfully" msgstr "應用程式 %s 安裝成功" -#: internal/service/cli.go:725 +#: internal/service/cli.go:722 msgid "App %s uninstalled successfully" msgstr "應用程式 %s 解除安裝成功" -#: internal/service/cli.go:739 +#: internal/service/cli.go:736 msgid "App %s updated successfully" msgstr "應用程式 %s 更新成功" -#: internal/service/cli.go:708 +#: internal/service/cli.go:705 msgid "App install failed: %v" msgstr "應用程式安裝失敗:%v" -#: internal/service/cli.go:722 +#: internal/service/cli.go:719 msgid "App uninstall failed: %v" msgstr "應用程式解除安裝失敗:%v" -#: internal/service/cli.go:736 +#: internal/service/cli.go:733 msgid "App update failed: %v" msgstr "應用程式更新失敗:%v" @@ -108,9 +108,9 @@ msgstr "備份數據庫" msgid "Backup directory (default path if not filled)" msgstr "備份目錄(不填則使用默認路徑)" -#: internal/service/cli.go:590 -#: internal/service/cli.go:606 -#: internal/service/cli.go:620 +#: internal/service/cli.go:587 +#: internal/service/cli.go:603 +#: internal/service/cli.go:617 msgid "Backup failed: %v" msgstr "備份失敗:%v" @@ -167,7 +167,7 @@ msgstr "更改面板端口" #: internal/route/cli.go:80 msgid "Change user 2FA" -msgstr "" +msgstr "更改用戶兩步驗證" #: internal/route/cli.go:75 msgid "Change user password" @@ -177,7 +177,7 @@ msgstr "更改用戶密碼" msgid "Change username" msgstr "更改用戶名" -#: internal/service/cli.go:644 +#: internal/service/cli.go:641 msgid "Cleaning failed: %v" msgstr "清理失敗:%v" @@ -225,7 +225,7 @@ msgstr "已連接客戶端數" msgid "Create new website" msgstr "創建新網站" -#: internal/service/cli.go:678 +#: internal/service/cli.go:675 msgid "Currently only website log rotation is supported" msgstr "目前僅支援網站日誌輪替" @@ -250,11 +250,11 @@ msgstr "數據庫管理" msgid "Database name" msgstr "數據庫名稱" -#: internal/service/cli.go:565 +#: internal/service/cli.go:562 msgid "Database server %s added successfully" msgstr "數據庫伺服器 %s 添加成功" -#: internal/service/cli.go:579 +#: internal/service/cli.go:576 msgid "Database server %s deleted successfully" msgstr "數據庫伺服器 %s 刪除成功" @@ -311,16 +311,16 @@ msgstr "啟用訪問入口" msgid "Enchant is a spell-checking library" msgstr "Enchant 是一個拼寫檢查庫" -#: internal/service/cli.go:437 +#: internal/service/cli.go:434 msgid "Entrance disabled" msgstr "入口已禁用" -#: internal/service/cli.go:411 +#: internal/service/cli.go:408 msgid "Entrance enabled" msgstr "入口已啟用" -#: internal/service/cli.go:166 -#: internal/service/cli.go:412 +#: internal/service/cli.go:163 +#: internal/service/cli.go:409 msgid "Entrance: %s" msgstr "入口:%s" @@ -332,44 +332,44 @@ msgstr "Event 是一個用於處理事件的庫" msgid "Exif is a library for reading and writing image metadata" msgstr "Exif 是一個用於讀取和寫入圖像元數據的庫" -#: internal/service/cli.go:285 +#: internal/service/cli.go:282 msgid "Failed to change 2FA status: %v" -msgstr "" +msgstr "修改兩步驗證狀態失敗:%v" -#: internal/service/cli.go:259 +#: internal/service/cli.go:256 msgid "Failed to change password: %v" msgstr "修改密碼失敗:%v" -#: internal/service/cli.go:227 +#: internal/service/cli.go:224 msgid "Failed to change username: %v" msgstr "修改用戶名失敗:%v" -#: internal/service/cli.go:799 +#: internal/service/cli.go:796 msgid "Failed to clear tasks: %v" msgstr "清除任務失敗:%v" -#: internal/service/cli.go:774 +#: internal/service/cli.go:771 msgid "Failed to delete app: %v" msgstr "刪除應用失敗:%v" -#: internal/service/cli.go:853 +#: internal/service/cli.go:850 msgid "Failed to delete setting: %v" msgstr "刪除設置失敗:%v" -#: internal/service/cli.go:293 +#: internal/service/cli.go:290 msgid "Failed to generate 2FA: %v" -msgstr "" +msgstr "生成兩步驗證失敗:%v" #: internal/service/cli.go:137 -#: internal/service/cli.go:255 +#: internal/service/cli.go:252 msgid "Failed to generate password: %v" msgstr "生成密碼失敗:%v" -#: internal/service/cli.go:754 +#: internal/service/cli.go:751 msgid "Failed to get app: %v" msgstr "獲取應用失敗:%v" -#: internal/service/cli.go:160 +#: internal/service/cli.go:157 msgid "Failed to get entrance" msgstr "獲取入口失敗" @@ -377,12 +377,12 @@ msgstr "獲取入口失敗" msgid "Failed to get latest version: %v" msgstr "無法獲取最新版本:%v" -#: internal/service/cli.go:156 +#: internal/service/cli.go:153 msgid "Failed to get port" msgstr "無法獲取端口" -#: internal/service/cli.go:817 -#: internal/service/cli.go:834 +#: internal/service/cli.go:814 +#: internal/service/cli.go:831 msgid "Failed to get setting: %v" msgstr "無法獲取設置:%v" @@ -390,29 +390,29 @@ msgstr "無法獲取設置:%v" msgid "Failed to get user info: %v" msgstr "無法獲取用戶信息:%v" -#: internal/service/cli.go:196 +#: internal/service/cli.go:193 msgid "Failed to get user list: %v" msgstr "無法獲取用戶列表:%v" -#: internal/service/cli.go:221 -#: internal/service/cli.go:249 -#: internal/service/cli.go:277 +#: internal/service/cli.go:218 +#: internal/service/cli.go:246 +#: internal/service/cli.go:274 msgid "Failed to get user: %v" msgstr "無法獲取用戶:%v" -#: internal/service/cli.go:300 +#: internal/service/cli.go:297 msgid "Failed to read input: %v" -msgstr "" +msgstr "讀取輸入失敗: %v" -#: internal/service/cli.go:761 +#: internal/service/cli.go:758 msgid "Failed to save app: %v" msgstr "無法保存應用:%v" -#: internal/service/cli.go:840 +#: internal/service/cli.go:837 msgid "Failed to save setting: %v" msgstr "無法保存設置:%v" -#: internal/service/cli.go:146 +#: internal/service/cli.go:143 msgid "Failed to save user info: %v" msgstr "無法保存用戶信息:%v" @@ -424,9 +424,9 @@ msgstr "同步應用程式資料失敗:%v" msgid "Failed to synchronize rewrite rules: %v" msgstr "同步重寫規則失敗:%v" -#: internal/service/cli.go:303 +#: internal/service/cli.go:300 msgid "Failed to update 2FA: %v" -msgstr "" +msgstr "更新兩步驗證失敗: %v" #: internal/apps/php/app.go:288 msgid "Fileinfo is a library used to identify file types" @@ -480,15 +480,15 @@ msgstr "Gettext 是一個處理多語言支持的庫" msgid "Godaddy" msgstr "Godaddy" -#: internal/service/cli.go:386 +#: internal/service/cli.go:383 msgid "HTTPS certificate generated" msgstr "HTTPS 憑證已生成" -#: internal/service/cli.go:355 +#: internal/service/cli.go:352 msgid "HTTPS disabled" msgstr "HTTPS 已停用" -#: internal/service/cli.go:330 +#: internal/service/cli.go:327 msgid "HTTPS enabled" msgstr "HTTPS 已啟用" @@ -500,7 +500,7 @@ msgstr "Hetzner" msgid "Huawei Cloud" msgstr "華為雲" -#: internal/service/cli.go:200 +#: internal/service/cli.go:197 msgid "ID: %d, Username: %s, Email: %s, Created At: %s" msgstr "ID: %d, 用戶名: %s, 電子郵件: %s, 創建時間: %s" @@ -512,11 +512,11 @@ msgstr "IMAP 擴展允許 PHP 讀取、搜索、刪除、下載和管理電子 msgid "Idle Processes" msgstr "空閒進程" -#: internal/service/cli.go:186 +#: internal/service/cli.go:183 msgid "If you cannot access, please check whether the server's security group and firewall allow port %s" msgstr "如果您無法訪問,請檢查服務器的安全組和防火牆是否允許端口 %s" -#: internal/service/cli.go:187 +#: internal/service/cli.go:184 msgid "If you still cannot access, try running panel-cli https off to turn off panel HTTPS" msgstr "如果您仍然無法訪問,請嘗試運行 panel-cli https off 關閉面板 HTTPS" @@ -532,10 +532,10 @@ msgstr "ImageMagick 是一個創建、編輯、合成圖片的免費軟件" msgid "Index Hit Rate" msgstr "索引命中率" -#: internal/service/cli.go:877 -#: internal/service/cli.go:882 -#: internal/service/cli.go:887 -#: internal/service/cli.go:891 +#: internal/service/cli.go:874 +#: internal/service/cli.go:879 +#: internal/service/cli.go:884 +#: internal/service/cli.go:888 msgid "Initialization failed: %v" msgstr "初始化失敗:%v" @@ -608,11 +608,11 @@ msgstr "監聽佇列" msgid "Listen Queue Length" msgstr "監聽佇列長度" -#: internal/service/cli.go:170 +#: internal/service/cli.go:167 msgid "Local IPv4: %s://%s:%s%s" msgstr "本地 IPv4:%s://%s:%s%s" -#: internal/service/cli.go:174 +#: internal/service/cli.go:171 msgid "Local IPv6: %s://[%s]:%s%s" msgstr "本地 IPv6:%s://[%s]:%s%s" @@ -678,7 +678,7 @@ msgstr "NameSilo" msgid "Namecheap" msgstr "Namecheap" -#: internal/service/cli.go:214 +#: internal/service/cli.go:211 msgid "New username cannot be empty" msgstr "新用戶名不能為空" @@ -686,7 +686,7 @@ msgstr "新用戶名不能為空" msgid "No backup file found, unable to automatically repair" msgstr "未找到備份檔案,無法自動修復" -#: internal/service/cli.go:546 +#: internal/service/cli.go:543 msgid "Not supported" msgstr "不支援" @@ -712,7 +712,7 @@ msgstr "選項" msgid "OPcache stores precompiled PHP script bytecode in shared memory to improve PHP performance" msgstr "OPcache 將 PHP 腳本預編譯的位元組碼儲存到共享記憶體中來提升 PHP 的效能" -#: internal/service/cli.go:211 +#: internal/service/cli.go:208 msgid "Old username cannot be empty" msgstr "舊用戶名不能為空" @@ -752,26 +752,26 @@ msgstr "面板服務已啟動" msgid "Panel service stopped" msgstr "面板服務已停止" -#: internal/service/cli.go:704 -#: internal/service/cli.go:718 -#: internal/service/cli.go:732 -#: internal/service/cli.go:748 -#: internal/service/cli.go:770 -#: internal/service/cli.go:809 -#: internal/service/cli.go:828 -#: internal/service/cli.go:849 +#: internal/service/cli.go:701 +#: internal/service/cli.go:715 +#: internal/service/cli.go:729 +#: internal/service/cli.go:745 +#: internal/service/cli.go:767 +#: internal/service/cli.go:806 +#: internal/service/cli.go:825 +#: internal/service/cli.go:846 msgid "Parameters cannot be empty" msgstr "參數不能為空" -#: internal/service/cli.go:262 +#: internal/service/cli.go:259 msgid "Password for user %s changed successfully" msgstr "用戶 %s 的密碼已成功更改" -#: internal/service/cli.go:242 +#: internal/service/cli.go:239 msgid "Password length cannot be less than 6" msgstr "密碼長度不能少於6位" -#: internal/service/cli.go:164 +#: internal/service/cli.go:161 msgid "Password: %s" msgstr "密碼:%s" @@ -791,31 +791,31 @@ msgstr "佔用記憶體峰值" msgid "PhpRedis connects to and operates on data in Redis databases (requires the igbinary extension installed above)" msgstr "PhpRedis 連接並操作 Redis 資料庫上的資料(需先安裝上面 igbinary 擴展)" -#: internal/service/cli.go:185 +#: internal/service/cli.go:182 msgid "Please choose the appropriate address to access the panel based on your network situation" msgstr "請根據您的網絡情況選擇合適的地址訪問面板" -#: internal/service/cli.go:297 +#: internal/service/cli.go:294 msgid "Please enter the 2FA code: " -msgstr "" +msgstr "請輸入兩步驗證代碼: " #: internal/service/cert.go:88 msgid "Porkbun" msgstr "Porkbun" -#: internal/service/cli.go:458 +#: internal/service/cli.go:455 msgid "Port already in use" msgstr "端口已被佔用" -#: internal/service/cli.go:486 +#: internal/service/cli.go:483 msgid "Port changed to %d" msgstr "端口已更改為 %d" -#: internal/service/cli.go:444 +#: internal/service/cli.go:441 msgid "Port range error" msgstr "端口範圍錯誤" -#: internal/service/cli.go:165 +#: internal/service/cli.go:162 msgid "Port: %s" msgstr "端口:%s" @@ -835,11 +835,11 @@ msgstr "進程 PID" msgid "Pspell is a spell-checking library" msgstr "Pspell 是一個拼寫檢查庫" -#: internal/service/cli.go:178 +#: internal/service/cli.go:175 msgid "Public IPv4: %s://%s:%s%s" msgstr "公用 IPv4:%s://%s:%s%s" -#: internal/service/cli.go:182 +#: internal/service/cli.go:179 msgid "Public IPv6: %s://[%s]:%s%s" msgstr "公用 IPv6:%s://[%s]:%s%s" @@ -947,7 +947,7 @@ msgstr "伺服器用戶名" msgid "Setting management" msgstr "設置管理" -#: internal/service/cli.go:815 +#: internal/service/cli.go:812 msgid "Setting not exists" msgstr "設置不存在" @@ -1016,7 +1016,7 @@ msgstr "TCP 連接埠" msgid "Table Locks Waited" msgstr "等待表鎖定" -#: internal/service/cli.go:802 +#: internal/service/cli.go:799 msgid "Tasks cleared successfully" msgstr "任務已成功清除" @@ -1036,7 +1036,7 @@ msgstr "騰訊雲" msgid "The number of files contained in the compressed file is not 1, actual %d" msgstr "壓縮檔案包含的檔案數量不為1,實際為 %d" -#: internal/service/cli.go:790 +#: internal/service/cli.go:787 msgid "Time synchronized successfully" msgstr "時間同步成功" @@ -1136,25 +1136,25 @@ msgstr "運行時間" msgid "Uptime in Days" msgstr "已運行天數" -#: internal/service/cli.go:219 -#: internal/service/cli.go:247 -#: internal/service/cli.go:275 +#: internal/service/cli.go:216 +#: internal/service/cli.go:244 +#: internal/service/cli.go:272 msgid "User not exists" msgstr "使用者不存在" -#: internal/service/cli.go:230 +#: internal/service/cli.go:227 msgid "Username %s changed to %s successfully" msgstr "使用者名稱 %s 已成功更改為 %s" -#: internal/service/cli.go:239 +#: internal/service/cli.go:236 msgid "Username and password cannot be empty" msgstr "使用者名稱和密碼不能為空" -#: internal/service/cli.go:270 +#: internal/service/cli.go:267 msgid "Username cannot be empty" -msgstr "" +msgstr "用戶名不能為空" -#: internal/service/cli.go:163 +#: internal/service/cli.go:160 msgid "Username: %s" msgstr "使用者名稱:%s" @@ -1174,7 +1174,7 @@ msgstr "驗證下載文件失敗:%v" msgid "Waiting" msgstr "正在駐留等待" -#: internal/service/cli.go:188 +#: internal/service/cli.go:185 msgid "Warning: After turning off panel HTTPS, the security of the panel will be greatly reduced, please operate with caution" msgstr "警告:關閉面板 HTTPS 後,面板的安全性將大大降低,請謹慎操作" @@ -1182,15 +1182,15 @@ msgstr "警告:關閉面板 HTTPS 後,面板的安全性將大大降低, msgid "Website" msgstr "網站" -#: internal/service/cli.go:505 +#: internal/service/cli.go:502 msgid "Website %s created successfully" msgstr "網站 %s 創建成功" -#: internal/service/cli.go:541 +#: internal/service/cli.go:538 msgid "Website %s deleted successfully" msgstr "網站 %s 刪除成功" -#: internal/service/cli.go:522 +#: internal/service/cli.go:519 msgid "Website %s removed successfully" msgstr "網站 %s 移除成功" @@ -1242,9 +1242,9 @@ msgstr "XSL 是用於處理 XML 文檔的庫" msgid "Zip is a library for handling ZIP files" msgstr "Zip 是一個用於處理 ZIP 文件的庫" -#: internal/http/middleware/must_login.go:94 +#: internal/http/middleware/must_login.go:95 msgid "api signature expired" -msgstr "" +msgstr "API 簽名已過期" #: internal/data/app.go:159 msgid "app %s already installed" @@ -1273,10 +1273,10 @@ msgstr "應用程式 %s 需要面板版本 %s,目前版本 %s" #: internal/http/middleware/must_install.go:29 msgid "app not found" -msgstr "" +msgstr "找不到應用" -#: internal/data/setting.go:312 -#: internal/data/setting.go:373 +#: internal/data/setting.go:282 +#: internal/data/setting.go:343 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "後台任務正在運行,禁止修改某些設置,請稍後再試" @@ -1307,9 +1307,9 @@ msgstr "找不到 %s 數據庫服務器,請先添加" msgid "check server connection failed" msgstr "檢查伺服器連接失敗" -#: internal/http/middleware/must_login.go:122 +#: internal/http/middleware/must_login.go:123 msgid "client ip/ua changed, please login again" -msgstr "" +msgstr "客戶端 IP/UA 已更改,請重新登入" #: internal/data/backup.go:564 msgid "could not find .sql backup file" @@ -1358,6 +1358,16 @@ msgstr "重複提交,請等待前一個任務結束" msgid "endpoint should not contain bucket" msgstr "端點不應包含 bucket" +#: internal/service/user_token.go:54 +#: internal/service/user_token.go:89 +msgid "expiration time must be greater than current time" +msgstr "到期時間必須大於當前時間" + +#: internal/service/user_token.go:58 +#: internal/service/user_token.go:93 +msgid "expiration time must be less than 10 years" +msgstr "到期時間必須小於 10 年" + #: internal/apps/php/app.go:229 #: internal/apps/php/app.go:260 msgid "extension %s does not exist" @@ -1568,12 +1578,12 @@ msgid "failed to load MySQL root password: %v" msgstr "無法載入 MySQL root 密碼:%v" #: internal/data/cert.go:92 -#: internal/data/setting.go:317 +#: internal/data/setting.go:287 msgid "failed to parse certificate: %v" msgstr "無法解析證書:%v" #: internal/data/cert.go:95 -#: internal/data/setting.go:320 +#: internal/data/setting.go:290 msgid "failed to parse private key: %v" msgstr "解析私鑰失敗:%v" @@ -1685,39 +1695,39 @@ msgstr "gRPC 是一個高性能、開源和通用的 RPC 框架" msgid "get service port failed, please check if it is installed" msgstr "獲取服務端口失敗,請檢查是否安裝" -#: internal/data/user.go:149 -#: internal/data/user.go:167 -#: internal/service/user.go:93 -msgid "invalid 2fa code" -msgstr "" +#: internal/data/user.go:160 +#: internal/data/user.go:178 +#: internal/service/user.go:96 +msgid "invalid 2FA code" +msgstr "無效的兩步驗證代碼" #: internal/http/middleware/entrance.go:101 msgid "invalid access entrance" -msgstr "" +msgstr "無效的訪問入口" -#: internal/http/middleware/must_login.go:84 +#: internal/http/middleware/must_login.go:85 msgid "invalid api signature" -msgstr "" +msgstr "無效的 API 簽名" -#: internal/service/user.go:79 +#: internal/service/user.go:82 msgid "invalid key, please refresh the page" msgstr "無效的密鑰,請重新整理頁面" #: internal/http/middleware/entrance.go:50 msgid "invalid request domain: %s" -msgstr "" +msgstr "無效的請求域名:%s" #: internal/http/middleware/entrance.go:63 msgid "invalid request ip: %s" -msgstr "" +msgstr "無效的請求 IP:%s" #: internal/http/middleware/entrance.go:72 msgid "invalid request user agent: %s" -msgstr "" +msgstr "無效的請求UA:%s" -#: internal/http/middleware/must_login.go:136 +#: internal/http/middleware/must_login.go:137 msgid "invalid user id, please login again" -msgstr "" +msgstr "無效的用戶ID,請重新登錄" #: internal/apps/php/app.go:473 msgid "ionCube is a professional-grade PHP encryption and decryption tool (must be installed after OPcache)" @@ -1766,19 +1776,19 @@ msgstr "開啟檔案錯誤:%v" #: internal/http/middleware/status.go:38 msgid "panel is closed" -msgstr "" +msgstr "面板已關閉" #: internal/http/middleware/status.go:30 msgid "panel is maintaining, please refresh later" -msgstr "" +msgstr "面板正在維護,請稍後刷新" #: internal/http/middleware/status.go:22 msgid "panel is upgrading, please refresh later" -msgstr "" +msgstr "面板正在升級,請稍後刷新" #: internal/http/middleware/status.go:46 msgid "panel run error, please check or contact support" -msgstr "" +msgstr "面板運行錯誤,請檢查或聯繫技術支持" #: internal/apps/php/app.go:328 msgid "pdo_pgsql is a PDO driver for connecting to PostgreSQL (requires PostgreSQL installed)" @@ -1801,7 +1811,7 @@ msgstr "未找到 phpMyAdmin 目錄" msgid "phpMyAdmin port not found" msgstr "未找到 phpMyAdmin 端口" -#: internal/data/user.go:81 +#: internal/data/user.go:92 #: internal/service/file.go:135 #: internal/service/file.go:222 #: internal/service/file.go:251 @@ -1812,7 +1822,7 @@ msgstr "請不要這樣做" msgid "please retry the manual obtain operation" msgstr "請重新操作手動簽發" -#: internal/data/setting.go:341 +#: internal/data/setting.go:311 msgid "port is already in use" msgstr "端口已被佔用" @@ -1845,9 +1855,9 @@ msgstr "未找到運行目錄註釋" msgid "runtime directory does not exist" msgstr "運行目錄不存在" -#: internal/http/middleware/must_login.go:107 +#: internal/http/middleware/must_login.go:108 msgid "session expired, please login again" -msgstr "" +msgstr "會話已過期,請重新登錄" #: internal/apps/php/app.go:333 msgid "sqlsrv is a driver for connecting to SQL Server" @@ -1935,9 +1945,9 @@ msgstr "上傳的憑證無法設定為自動續簽" msgid "upload file error: %v" msgstr "上傳檔案錯誤:%v" -#: internal/data/user.go:103 -#: internal/data/user.go:113 -#: internal/data/user.go:96 +#: internal/data/user.go:107 +#: internal/data/user.go:114 +#: internal/data/user.go:124 msgid "username or password error" msgstr "使用者名稱或密碼錯誤" @@ -2008,8 +2018,8 @@ msgstr "|-備份面板數據失敗:%v" msgid "|-Backup panel data..." msgstr "|-備份面板數據……" -#: internal/service/cli.go:588 -#: internal/service/cli.go:604 +#: internal/service/cli.go:585 +#: internal/service/cli.go:601 msgid "|-Backup target: %s" msgstr "|-備份目標:%s" @@ -2020,15 +2030,15 @@ msgstr "|-備份目標:%s" msgid "|-Backup time: %s" msgstr "|-備份時間:%s" -#: internal/service/cli.go:602 +#: internal/service/cli.go:599 msgid "|-Backup type: database" msgstr "|-備份類型:數據庫" -#: internal/service/cli.go:618 +#: internal/service/cli.go:615 msgid "|-Backup type: panel" msgstr "|-備份類型:面板" -#: internal/service/cli.go:587 +#: internal/service/cli.go:584 msgid "|-Backup type: website" msgstr "|-備份類型:網站" @@ -2056,17 +2066,17 @@ msgstr "|-清理舊版本失敗:%v" msgid "|-Cleaning old version..." msgstr "|-清理舊版本……" -#: internal/service/cli.go:641 -#: internal/service/cli.go:689 +#: internal/service/cli.go:638 +#: internal/service/cli.go:686 msgid "|-Cleaning target: %s" msgstr "|-清理目標:%s" -#: internal/service/cli.go:640 -#: internal/service/cli.go:688 +#: internal/service/cli.go:637 +#: internal/service/cli.go:685 msgid "|-Cleaning type: %s" msgstr "|-清理類型:%s" -#: internal/service/cli.go:603 +#: internal/service/cli.go:600 msgid "|-Database: %s" msgstr "|-數據庫:%s" @@ -2090,8 +2100,8 @@ msgstr "|-文件名:%s" msgid "|-Fix completed" msgstr "|-修復完成" -#: internal/service/cli.go:642 -#: internal/service/cli.go:690 +#: internal/service/cli.go:639 +#: internal/service/cli.go:687 msgid "|-Keep count: %d" msgstr "|-保留數量:%d" @@ -2116,11 +2126,11 @@ msgstr "|-還原面板數據失敗:%v" msgid "|-Restore panel data..." msgstr "|-還原面板資料……" -#: internal/service/cli.go:666 +#: internal/service/cli.go:663 msgid "|-Rotation target: %s" msgstr "|-輪換目標:%s" -#: internal/service/cli.go:665 +#: internal/service/cli.go:662 msgid "|-Rotation type: website" msgstr "|-旋轉類型:website" @@ -2182,36 +2192,36 @@ msgstr "|-驗證下載檔案……" msgid "|-Write new panel version failed: %v" msgstr "|-寫入新面板版本失敗:%v" -#: internal/service/cli.go:585 -#: internal/service/cli.go:600 -#: internal/service/cli.go:616 +#: internal/service/cli.go:582 +#: internal/service/cli.go:597 +#: internal/service/cli.go:613 msgid "★ Start backup [%s]" msgstr "★ 開始備份 [%s]" -#: internal/service/cli.go:638 +#: internal/service/cli.go:635 msgid "★ Start cleaning [%s]" msgstr "★ 開始清理 [%s]" -#: internal/service/cli.go:686 +#: internal/service/cli.go:683 msgid "★ Start cleaning rotated logs [%s]" msgstr "★ 開始清理已旋轉的日誌 [%s]" -#: internal/service/cli.go:663 +#: internal/service/cli.go:660 msgid "★ Start log rotation [%s]" msgstr "★ 開始日誌旋轉 [%s]" -#: internal/service/cli.go:593 -#: internal/service/cli.go:609 -#: internal/service/cli.go:623 +#: internal/service/cli.go:590 +#: internal/service/cli.go:606 +#: internal/service/cli.go:620 msgid "☆ Backup successful [%s]" msgstr "☆ 備份成功 [%s]" -#: internal/service/cli.go:647 -#: internal/service/cli.go:695 +#: internal/service/cli.go:644 +#: internal/service/cli.go:692 msgid "☆ Cleaning successful [%s]" msgstr "☆ 清理成功 [%s]" -#: internal/service/cli.go:671 +#: internal/service/cli.go:668 msgid "☆ Rotation successful [%s]" msgstr "☆ 旋轉成功 [%s]" diff --git a/web/src/locales/zh_CN.po b/web/src/locales/zh_CN.po index 937c3451..73d398ff 100644 --- a/web/src/locales/zh_CN.po +++ b/web/src/locales/zh_CN.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: ratpanel\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" -"PO-Revision-Date: 2025-05-13 20:54\n" +"PO-Revision-Date: 2025-05-14 18:55\n" #: src/components/common/AppFooter.vue:13 #: src/views/dashboard/IndexView.vue:439 @@ -74,7 +74,7 @@ msgstr "当前状态无法保存" #: src/views/apps/toolbox/IndexView.vue:66 #: src/views/apps/toolbox/IndexView.vue:72 #: src/views/apps/toolbox/IndexView.vue:81 -#: src/views/setting/IndexView.vue:46 +#: src/views/setting/IndexView.vue:44 #: src/views/website/EditView.vue:115 msgid "Saved successfully" msgstr "保存成功" @@ -160,9 +160,10 @@ msgstr "无效的名称" #: src/views/file/ToolBar.vue:45 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/firewall/CreateModal.vue:84 +#: src/views/setting/CreateModal.vue:19 +#: src/views/setting/TokenModal.vue:127 #: src/views/ssh/CreateModal.vue:38 #: src/views/task/CreateModal.vue:51 -#: src/views/website/IndexView.vue:306 msgid "Created successfully" msgstr "创建成功" @@ -178,7 +179,9 @@ msgstr "文件夹" #: src/components/common/PathSelector.vue:260 #: src/components/common/PathSelector.vue:323 -#: src/views/website/IndexView.vue:523 +#: src/views/setting/TokenModal.vue:268 +#: src/views/website/BulkCreate.vue:127 +#: src/views/website/IndexView.vue:533 msgid "Create" msgstr "创建" @@ -223,6 +226,9 @@ msgstr "根目录" #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:122 #: src/views/firewall/CreateModal.vue:147 +#: src/views/setting/CreateModal.vue:64 +#: src/views/setting/PasswordModal.vue:44 +#: src/views/setting/TwoFaModal.vue:80 #: src/views/ssh/CreateModal.vue:99 #: src/views/ssh/UpdateModal.vue:105 #: src/views/task/CreateModal.vue:171 @@ -271,6 +277,8 @@ msgstr "设置主题颜色" #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:74 #: src/views/apps/pureftpd/IndexView.vue:339 +#: src/views/setting/PasswordModal.vue:26 +#: src/views/setting/SettingUser.vue:109 msgid "Change Password" msgstr "更改密码" @@ -395,6 +403,7 @@ msgstr "仪表板" #: src/locales/menu.ts:12 #: src/views/app/IndexView.vue:96 #: src/views/dashboard/IndexView.vue:451 +#: src/views/setting/TokenModal.vue:301 msgid "Update" msgstr "更新" @@ -402,7 +411,7 @@ msgstr "更新" #: src/views/backup/ListView.vue:264 #: src/views/dashboard/IndexView.vue:425 #: src/views/database/IndexView.vue:45 -#: src/views/website/IndexView.vue:444 +#: src/views/website/IndexView.vue:454 msgid "Database" msgstr "数据库" @@ -531,10 +540,12 @@ msgstr "在主页显示" #: src/views/firewall/ForwardView.vue:80 #: src/views/firewall/IpRuleView.vue:122 #: src/views/firewall/RuleView.vue:159 +#: src/views/setting/SettingUser.vue:76 +#: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:102 #: src/views/task/SystemView.vue:96 #: src/views/task/TaskView.vue:55 -#: src/views/website/IndexView.vue:93 +#: src/views/website/IndexView.vue:94 msgid "Actions" msgstr "操作" @@ -769,7 +780,7 @@ msgstr "开始跑分" #: src/views/apps/supervisor/IndexView.vue:54 #: src/views/task/SystemView.vue:50 #: src/views/task/TaskView.vue:33 -#: src/views/website/IndexView.vue:30 +#: src/views/website/IndexView.vue:31 msgid "Running" msgstr "运行中" @@ -811,7 +822,7 @@ msgstr "已停止" #: src/views/apps/rsync/IndexView.vue:159 #: src/views/apps/supervisor/IndexView.vue:273 #: src/views/apps/supervisor/IndexView.vue:302 -#: src/views/website/IndexView.vue:237 +#: src/views/website/IndexView.vue:239 msgid "Started successfully" msgstr "启动成功" @@ -832,7 +843,7 @@ msgstr "启动成功" #: src/views/apps/rsync/IndexView.vue:176 #: src/views/apps/supervisor/IndexView.vue:280 #: src/views/apps/supervisor/IndexView.vue:309 -#: src/views/website/IndexView.vue:239 +#: src/views/website/IndexView.vue:241 msgid "Stopped successfully" msgstr "停止成功" @@ -921,7 +932,7 @@ msgstr "自启动已成功禁用" #: src/views/apps/toolbox/IndexView.vue:109 #: src/views/file/EditModal.vue:31 #: src/views/file/ListTable.vue:723 -#: src/views/setting/IndexView.vue:63 +#: src/views/setting/IndexView.vue:65 #: src/views/website/EditView.vue:215 msgid "Save" msgstr "保存" @@ -1186,10 +1197,12 @@ msgstr "您确定要删除规则 %{ name } 吗?" #: src/views/firewall/ForwardView.vue:104 #: src/views/firewall/IpRuleView.vue:146 #: src/views/firewall/RuleView.vue:183 +#: src/views/setting/SettingUser.vue:132 +#: src/views/setting/TokenModal.vue:92 #: src/views/ssh/IndexView.vue:93 #: src/views/task/CronView.vue:155 #: src/views/task/TaskView.vue:98 -#: src/views/website/IndexView.vue:166 +#: src/views/website/IndexView.vue:167 msgid "Delete" msgstr "删除" @@ -1236,10 +1249,12 @@ msgstr "添加成功" #: src/views/firewall/IpRuleView.vue:191 #: src/views/firewall/RuleView.vue:210 #: src/views/firewall/RuleView.vue:228 +#: src/views/setting/SettingUser.vue:162 +#: src/views/setting/TokenModal.vue:116 #: src/views/task/CronView.vue:198 #: src/views/task/TaskView.vue:124 -#: src/views/website/IndexView.vue:267 -#: src/views/website/IndexView.vue:321 +#: src/views/website/IndexView.vue:269 +#: src/views/website/IndexView.vue:325 msgid "Deleted successfully" msgstr "删除成功" @@ -1429,10 +1444,11 @@ msgstr "清除成功" #: src/views/database/UpdateUserModal.vue:18 #: src/views/database/UserList.vue:222 #: src/views/file/PermissionModal.vue:29 +#: src/views/setting/SettingUser.vue:156 #: src/views/task/CronView.vue:180 #: src/views/task/CronView.vue:207 -#: src/views/website/IndexView.vue:250 -#: src/views/website/IndexView.vue:276 +#: src/views/website/IndexView.vue:252 +#: src/views/website/IndexView.vue:278 msgid "Modified successfully" msgstr "修改成功" @@ -1618,8 +1634,9 @@ msgstr "这将修改 PostgreSQL 用户配置文件。如果您不了解每个参 #: src/views/database/ServerList.vue:47 #: src/views/database/UpdateServerModal.vue:86 #: src/views/database/UserList.vue:40 -#: src/views/login/IndexView.vue:115 -#: src/views/setting/SettingBase.vue:49 +#: src/views/login/IndexView.vue:133 +#: src/views/setting/CreateModal.vue:40 +#: src/views/setting/SettingUser.vue:19 #: src/views/ssh/CreateModal.vue:83 #: src/views/ssh/UpdateModal.vue:89 msgid "Username" @@ -1662,6 +1679,8 @@ msgstr "运行日志" #: src/views/database/CreateDatabaseModal.vue:78 #: src/views/database/CreateUserModal.vue:54 #: src/views/database/IndexView.vue:36 +#: src/views/setting/CreateModal.vue:32 +#: src/views/setting/IndexView.vue:69 msgid "Create User" msgstr "创建用户" @@ -1684,8 +1703,9 @@ msgstr "输入用户名" #: src/views/database/UpdateServerModal.vue:94 #: src/views/database/UpdateUserModal.vue:49 #: src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:123 -#: src/views/setting/SettingBase.vue:52 +#: src/views/login/IndexView.vue:142 +#: src/views/setting/CreateModal.vue:47 +#: src/views/setting/PasswordModal.vue:34 #: src/views/ssh/CreateModal.vue:77 #: src/views/ssh/CreateModal.vue:86 #: src/views/ssh/UpdateModal.vue:83 @@ -1703,8 +1723,8 @@ msgstr "建议使用生成器生成随机密码" #: src/views/apps/rsync/IndexView.vue:373 #: src/views/apps/rsync/IndexView.vue:427 #: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:43 -#: src/views/website/IndexView.vue:501 +#: src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:511 msgid "Directory" msgstr "目录" @@ -1729,6 +1749,7 @@ msgstr "运行正常" #: src/views/apps/rsync/IndexView.vue:381 #: src/views/apps/rsync/IndexView.vue:435 #: src/views/database/IndexView.vue:48 +#: src/views/setting/IndexView.vue:79 #: src/views/task/SystemView.vue:37 msgid "User" msgstr "用户" @@ -1959,6 +1980,7 @@ msgstr "同步成功" #: src/views/database/ServerList.vue:184 #: src/views/database/UserList.vue:169 #: src/views/file/PermissionModal.vue:123 +#: src/views/setting/TokenModal.vue:69 msgid "Modify" msgstr "修改" @@ -2053,8 +2075,8 @@ msgstr "选择网站" #: src/views/database/DatabaseList.vue:35 #: src/views/task/CreateModal.vue:154 #: src/views/task/CreateModal.vue:156 -#: src/views/website/IndexView.vue:465 -#: src/views/website/IndexView.vue:470 +#: src/views/website/IndexView.vue:475 +#: src/views/website/IndexView.vue:480 msgid "Database Name" msgstr "数据库名称" @@ -2095,6 +2117,8 @@ msgstr "对于大文件,建议使用 SFTP 或其他方法上传" #: src/views/cert/AccountView.vue:44 #: src/views/cert/AccountView.vue:243 #: src/views/cert/CreateAccountModal.vue:100 +#: src/views/setting/CreateModal.vue:56 +#: src/views/setting/SettingUser.vue:26 msgid "Email" msgstr "邮箱" @@ -2180,7 +2204,7 @@ msgstr "输入 HMAC" #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 #: src/views/website/EditView.vue:232 -#: src/views/website/IndexView.vue:409 +#: src/views/website/IndexView.vue:419 msgid "Domain" msgstr "域名" @@ -2217,6 +2241,9 @@ msgid "Issuer" msgstr "颁发者" #: src/views/cert/CertView.vue:139 +#: src/views/setting/TokenModal.vue:43 +#: src/views/setting/TokenModal.vue:258 +#: src/views/setting/TokenModal.vue:291 msgid "Expiration Time" msgstr "过期时间" @@ -2567,6 +2594,8 @@ msgstr "签发模式" #: src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 #: src/views/container/VolumeView.vue:54 +#: src/views/setting/SettingUser.vue:67 +#: src/views/setting/TokenModal.vue:34 #: src/views/task/CronView.vue:83 #: src/views/task/TaskView.vue:37 msgid "Creation Time" @@ -2577,7 +2606,7 @@ msgstr "创建时间" #: src/views/file/ListTable.vue:220 #: src/views/ssh/IndexView.vue:71 #: src/views/task/CronView.vue:133 -#: src/views/website/IndexView.vue:108 +#: src/views/website/IndexView.vue:109 msgid "Edit" msgstr "编辑" @@ -3488,10 +3517,10 @@ msgstr "输入数据库服务器主机" #: src/views/database/UpdateServerModal.vue:76 #: src/views/firewall/ForwardView.vue:32 #: src/views/firewall/RuleView.vue:49 -#: src/views/setting/SettingBase.vue:58 +#: src/views/setting/SettingBase.vue:49 #: src/views/ssh/CreateModal.vue:68 #: src/views/ssh/UpdateModal.vue:74 -#: src/views/website/IndexView.vue:420 +#: src/views/website/IndexView.vue:430 msgid "Port" msgstr "端口" @@ -3545,6 +3574,7 @@ msgstr "您确定要删除这个数据库吗?" #: src/views/file/SearchModal.vue:65 #: src/views/file/ToolBar.vue:145 #: src/views/file/ToolBar.vue:165 +#: src/views/setting/TokenModal.vue:165 msgid "Copied successfully" msgstr "复制成功" @@ -3973,7 +4003,7 @@ msgstr "请选择要删除的规则" #: src/views/firewall/ForwardView.vue:172 #: src/views/firewall/IpRuleView.vue:214 #: src/views/firewall/RuleView.vue:251 -#: src/views/website/IndexView.vue:349 +#: src/views/website/IndexView.vue:354 msgid "Batch Delete" msgstr "批量删除" @@ -4034,27 +4064,31 @@ msgstr "允许 Ping" msgid "SSH Port" msgstr "SSH 端口" -#: src/views/login/IndexView.vue:46 +#: src/views/login/IndexView.vue:49 msgid "Please enter username and password" msgstr "请输入用户名和密码" -#: src/views/login/IndexView.vue:51 +#: src/views/login/IndexView.vue:54 msgid "Failed to get encryption public key, please refresh the page and try again" msgstr "获取加密公钥失败,请刷新页面后重试" -#: src/views/login/IndexView.vue:63 +#: src/views/login/IndexView.vue:67 msgid "Login successful!" msgstr "登录成功!" -#: src/views/login/IndexView.vue:132 +#: src/views/login/IndexView.vue:153 +msgid "2FA Code" +msgstr "两步验证代码" + +#: src/views/login/IndexView.vue:161 msgid "Safe Login" msgstr "安全登录" -#: src/views/login/IndexView.vue:133 +#: src/views/login/IndexView.vue:162 msgid "Remember Me" msgstr "记住我" -#: src/views/login/IndexView.vue:147 +#: src/views/login/IndexView.vue:176 msgid "Login" msgstr "登录" @@ -4136,18 +4170,38 @@ msgstr "天" msgid "Time Selection" msgstr "时间选择" -#: src/views/setting/IndexView.vue:49 +#: src/views/setting/CreateModal.vue:44 +msgid "Enter user name" +msgstr "输入用户名" + +#: src/views/setting/CreateModal.vue:53 +#: src/views/setting/PasswordModal.vue:40 +msgid "Enter user password" +msgstr "输入用户密码" + +#: src/views/setting/CreateModal.vue:60 +msgid "Enter user email" +msgstr "输入用户邮箱" + +#: src/views/setting/IndexView.vue:47 msgid "Panel is restarting, page will refresh in 3 seconds" msgstr "面板正在重启,页面将在 3 秒后刷新" -#: src/views/setting/IndexView.vue:67 +#: src/views/setting/IndexView.vue:73 msgid "Basic" msgstr "基本" -#: src/views/setting/IndexView.vue:70 +#: src/views/setting/IndexView.vue:76 msgid "Safe" msgstr "安全" +#: src/views/setting/PasswordModal.vue:16 +#: src/views/setting/TokenModal.vue:183 +#: src/views/setting/TwoFaModal.vue:24 +#: src/views/ssh/UpdateModal.vue:30 +msgid "Updated successfully" +msgstr "更新成功" + #: src/views/setting/SettingBase.vue:20 msgid "Stable" msgstr "稳定" @@ -4174,36 +4228,22 @@ msgid "Update Channel" msgstr "更新渠道" #: src/views/setting/SettingBase.vue:50 -#: src/views/setting/SettingBase.vue:53 -#: src/views/setting/SettingSafe.vue:26 -msgid "admin" -msgstr "admin" - -#: src/views/setting/SettingBase.vue:55 -msgid "Certificate Default Email" -msgstr "证书默认邮箱" - -#: src/views/setting/SettingBase.vue:56 -msgid "admin@yourdomain.com" -msgstr "admin@yourdomain.com" - -#: src/views/setting/SettingBase.vue:59 msgid "8888" msgstr "8888" -#: src/views/setting/SettingBase.vue:61 +#: src/views/setting/SettingBase.vue:52 msgid "Default Website Directory" msgstr "默认网站目录" -#: src/views/setting/SettingBase.vue:62 +#: src/views/setting/SettingBase.vue:53 msgid "/www/wwwroot" msgstr "/www/wwwroot" -#: src/views/setting/SettingBase.vue:64 +#: src/views/setting/SettingBase.vue:55 msgid "Default Backup Directory" msgstr "默认备份目录" -#: src/views/setting/SettingBase.vue:65 +#: src/views/setting/SettingBase.vue:56 msgid "/www/backup" msgstr "/www/backup" @@ -4224,6 +4264,10 @@ msgstr "分钟" msgid "Access Entrance" msgstr "访问入口" +#: src/views/setting/SettingSafe.vue:26 +msgid "admin" +msgstr "admin" + #: src/views/setting/SettingSafe.vue:28 msgid "Bind Domain" msgstr "绑定域名" @@ -4248,6 +4292,91 @@ msgstr "自动更新" msgid "Panel HTTPS" msgstr "面板 HTTPS" +#: src/views/setting/SettingUser.vue:43 +msgid "2FA" +msgstr "两步验证" + +#: src/views/setting/SettingUser.vue:58 +msgid "Disabled successfully" +msgstr "禁用成功" + +#: src/views/setting/SettingUser.vue:93 +#: src/views/setting/TokenModal.vue:204 +msgid "Access Tokens" +msgstr "访问令牌" + +#: src/views/setting/SettingUser.vue:121 +msgid "Are you sure you want to delete this user?" +msgstr "您确定要删除该用户吗?" + +#: src/views/setting/TokenModal.vue:27 +msgid "ID" +msgstr "ID" + +#: src/views/setting/TokenModal.vue:81 +msgid "Are you sure you want to delete this access token?" +msgstr "您确定要删除此访问令牌吗?" + +#: src/views/setting/TokenModal.vue:144 +msgid "Token is only displayed once, please save it before closing the dialog." +msgstr "令牌只显示一次,请在关闭对话框前保存。" + +#: src/views/setting/TokenModal.vue:161 +msgid "Copy and close" +msgstr "复制并关闭" + +#: src/views/setting/TokenModal.vue:168 +msgid "Copy failed" +msgstr "复制失败" + +#: src/views/setting/TokenModal.vue:214 +#: src/views/setting/TokenModal.vue:242 +msgid "Create Access Token" +msgstr "创建访问令牌" + +#: src/views/setting/TokenModal.vue:251 +#: src/views/setting/TokenModal.vue:284 +msgid "IP White List" +msgstr "IP 白名单" + +#: src/views/setting/TokenModal.vue:254 +#: src/views/setting/TokenModal.vue:287 +msgid "127.0.0.1" +msgstr "127.0.0.1" + +#: src/views/setting/TokenModal.vue:262 +#: src/views/setting/TokenModal.vue:295 +msgid "Please select the expiration time" +msgstr "请选择到期时间" + +#: src/views/setting/TokenModal.vue:275 +msgid "Modify Access Token" +msgstr "修改访问令牌" + +#: src/views/setting/TwoFaModal.vue:46 +msgid "Enable 2FA" +msgstr "启用两步验证" + +#: src/views/setting/TwoFaModal.vue:55 +msgid "QR Code" +msgstr "二维码" + +#: src/views/setting/TwoFaModal.vue:58 +msgid "Scan the QR code with your 2FA app and enter the code below" +msgstr "用您的两步验证应用扫描二维码并在下方输入代码" + +#: src/views/setting/TwoFaModal.vue:62 +msgid "If you cannot scan the QR code, please enter the URL below in your 2FA app" +msgstr "如果您不能扫描二维码,请在您的两步验证应用中输入下面的 URL" + +#: src/views/setting/TwoFaModal.vue:72 +msgid "Code" +msgstr "代码" + +#: src/views/setting/TwoFaModal.vue:76 +msgid "Enter the code" +msgstr "输入代码" + #: src/views/ssh/CreateModal.vue:50 #: src/views/ssh/IndexView.vue:231 msgid "Create Host" @@ -4279,10 +4408,6 @@ msgstr "连接已关闭。请刷新。" msgid "Connection error. Please refresh." msgstr "连接错误。请刷新。" -#: src/views/ssh/UpdateModal.vue:30 -msgid "Updated successfully" -msgstr "更新成功" - #: src/views/ssh/UpdateModal.vue:56 msgid "Update Host" msgstr "更新主机" @@ -4439,8 +4564,50 @@ msgstr "完成时间" msgid "If logs cannot be loaded, please disable ad blockers!" msgstr "如果无法加载日志,请禁用广告拦截器!" +#: src/views/website/BulkCreate.vue:21 +msgid "The format is incorrect, please check" +msgstr "格式不正确,请检查" + +#: src/views/website/BulkCreate.vue:59 +#: src/views/website/IndexView.vue:295 +msgid "Website %{ name } created successfully" +msgstr "网站 %{ name } 创建成功" + +#: src/views/website/BulkCreate.vue:77 +#: src/views/website/IndexView.vue:363 +msgid "Bulk Create Website" +msgstr "批量创建网站" + +#: src/views/website/BulkCreate.vue:88 +msgid "Please enter the website name, domain, port, path, and remark in the text area below, one per line." +msgstr "请在下面的文本区域输入网站名称、域名、端口、路径和注释,每行一个。" + +#: src/views/website/BulkCreate.vue:96 +msgid "name|domain|port|path|remark" +msgstr "名称|域名|端口|路径|备注" + +#: src/views/website/BulkCreate.vue:101 +msgid "Name: The name of the website, which will be displayed in the website list, must be unique." +msgstr "名称:网站的名称,将显示在网站列表中,必须是唯一的。" + +#: src/views/website/BulkCreate.vue:108 +msgid "Domain: The domain name of the website, multiple domains can be separated by commas." +msgstr "域名:网站的域名,多个域名可以用英文逗号分隔。" + +#: src/views/website/BulkCreate.vue:115 +msgid "Port: The port number of the website, multiple ports can be separated by commas." +msgstr "端口:网站的端口号,多个端口可以用英文逗号分隔。" + +#: src/views/website/BulkCreate.vue:121 +msgid "Path: The path of the website, can be empty to use the default path." +msgstr "路径:网站的根目录,可以为空以使用默认路径。" + +#: src/views/website/BulkCreate.vue:124 +msgid "Remark: The remark of the website, can be empty." +msgstr "备注:网站的备注,可以为空。" + #: src/views/website/EditView.vue:54 -#: src/views/website/IndexView.vue:207 +#: src/views/website/IndexView.vue:209 msgid "Not used" msgstr "未使用" @@ -4522,12 +4689,12 @@ msgid "Default Document" msgstr "默认文档" #: src/views/website/EditView.vue:277 -#: src/views/website/IndexView.vue:432 +#: src/views/website/IndexView.vue:442 msgid "PHP Version" msgstr "PHP 版本" #: src/views/website/EditView.vue:282 -#: src/views/website/IndexView.vue:436 +#: src/views/website/IndexView.vue:446 msgid "Select PHP Version" msgstr "选择 PHP 版本" @@ -4593,76 +4760,76 @@ msgstr "查看" msgid "Error Log" msgstr "错误日志" -#: src/views/website/IndexView.vue:23 -#: src/views/website/IndexView.vue:395 +#: src/views/website/IndexView.vue:24 +#: src/views/website/IndexView.vue:405 msgid "Website Name" msgstr "网站名称" -#: src/views/website/IndexView.vue:76 -#: src/views/website/IndexView.vue:513 -#: src/views/website/IndexView.vue:518 +#: src/views/website/IndexView.vue:77 +#: src/views/website/IndexView.vue:523 +#: src/views/website/IndexView.vue:528 msgid "Remark" msgstr "备注" -#: src/views/website/IndexView.vue:132 +#: src/views/website/IndexView.vue:133 msgid "Are you sure you want to delete website %{ name }?" msgstr "您确定要删除网站 %{ name } 吗?" -#: src/views/website/IndexView.vue:143 +#: src/views/website/IndexView.vue:144 msgid "Delete website directory" msgstr "删除网站目录" -#: src/views/website/IndexView.vue:151 +#: src/views/website/IndexView.vue:152 msgid "Delete local database with the same name" msgstr "删除同名的本地数据库" -#: src/views/website/IndexView.vue:312 +#: src/views/website/IndexView.vue:316 msgid "Please select the websites to delete" msgstr "请选择要删除的网站" -#: src/views/website/IndexView.vue:345 -#: src/views/website/IndexView.vue:386 -msgid "Create Website" -msgstr "创建网站" - -#: src/views/website/IndexView.vue:352 -msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" -msgstr "这将删除网站目录,但不会删除同名的数据库。您确定要删除所选网站吗?" - -#: src/views/website/IndexView.vue:358 -#: src/views/website/IndexView.vue:529 +#: src/views/website/IndexView.vue:350 +#: src/views/website/IndexView.vue:539 msgid "Modify Default Page" msgstr "修改默认页面" -#: src/views/website/IndexView.vue:401 +#: src/views/website/IndexView.vue:357 +msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" +msgstr "这将删除网站目录,但不会删除同名的数据库。您确定要删除所选网站吗?" + +#: src/views/website/IndexView.vue:366 +#: src/views/website/IndexView.vue:396 +msgid "Create Website" +msgstr "创建网站" + +#: src/views/website/IndexView.vue:411 msgid "Recommended to use English for the website name, it cannot be modified after setting" msgstr "建议使用英文作为网站名称,设置后无法修改" -#: src/views/website/IndexView.vue:448 +#: src/views/website/IndexView.vue:458 msgid "Select Database" msgstr "选择数据库" -#: src/views/website/IndexView.vue:476 -#: src/views/website/IndexView.vue:481 +#: src/views/website/IndexView.vue:486 +#: src/views/website/IndexView.vue:491 msgid "Database User" msgstr "数据库用户" -#: src/views/website/IndexView.vue:490 -#: src/views/website/IndexView.vue:496 +#: src/views/website/IndexView.vue:500 +#: src/views/website/IndexView.vue:506 msgid "Database Password" msgstr "数据库密码" -#: src/views/website/IndexView.vue:507 +#: src/views/website/IndexView.vue:517 msgid "Website root directory (if left empty, defaults to website directory/website name)" msgstr "网站根目录(如果留空,默认为网站目录/网站名称)" -#: src/views/website/IndexView.vue:537 -#: src/views/website/IndexView.vue:537 +#: src/views/website/IndexView.vue:547 +#: src/views/website/IndexView.vue:547 msgid "Default Page" msgstr "默认页面" -#: src/views/website/IndexView.vue:551 -#: src/views/website/IndexView.vue:551 +#: src/views/website/IndexView.vue:561 +#: src/views/website/IndexView.vue:561 msgid "Stop Page" msgstr "停止页面" diff --git a/web/src/locales/zh_TW.po b/web/src/locales/zh_TW.po index 8c5ac45a..7dd9c33d 100644 --- a/web/src/locales/zh_TW.po +++ b/web/src/locales/zh_TW.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: ratpanel\n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" -"PO-Revision-Date: 2025-05-13 19:15\n" +"PO-Revision-Date: 2025-05-14 18:55\n" #: src/components/common/AppFooter.vue:13 #: src/views/dashboard/IndexView.vue:439 @@ -74,7 +74,7 @@ msgstr "當前狀態無法保存" #: src/views/apps/toolbox/IndexView.vue:66 #: src/views/apps/toolbox/IndexView.vue:72 #: src/views/apps/toolbox/IndexView.vue:81 -#: src/views/setting/IndexView.vue:46 +#: src/views/setting/IndexView.vue:44 #: src/views/website/EditView.vue:115 msgid "Saved successfully" msgstr "儲存成功" @@ -160,9 +160,10 @@ msgstr "無效的名稱" #: src/views/file/ToolBar.vue:45 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/firewall/CreateModal.vue:84 +#: src/views/setting/CreateModal.vue:19 +#: src/views/setting/TokenModal.vue:127 #: src/views/ssh/CreateModal.vue:38 #: src/views/task/CreateModal.vue:51 -#: src/views/website/IndexView.vue:306 msgid "Created successfully" msgstr "創建成功" @@ -178,7 +179,9 @@ msgstr "文件夾" #: src/components/common/PathSelector.vue:260 #: src/components/common/PathSelector.vue:323 -#: src/views/website/IndexView.vue:523 +#: src/views/setting/TokenModal.vue:268 +#: src/views/website/BulkCreate.vue:127 +#: src/views/website/IndexView.vue:533 msgid "Create" msgstr "創建" @@ -223,6 +226,9 @@ msgstr "根目錄" #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:122 #: src/views/firewall/CreateModal.vue:147 +#: src/views/setting/CreateModal.vue:64 +#: src/views/setting/PasswordModal.vue:44 +#: src/views/setting/TwoFaModal.vue:80 #: src/views/ssh/CreateModal.vue:99 #: src/views/ssh/UpdateModal.vue:105 #: src/views/task/CreateModal.vue:171 @@ -271,6 +277,8 @@ msgstr "設置主題顏色" #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:74 #: src/views/apps/pureftpd/IndexView.vue:339 +#: src/views/setting/PasswordModal.vue:26 +#: src/views/setting/SettingUser.vue:109 msgid "Change Password" msgstr "更改密碼" @@ -395,6 +403,7 @@ msgstr "儀表板" #: src/locales/menu.ts:12 #: src/views/app/IndexView.vue:96 #: src/views/dashboard/IndexView.vue:451 +#: src/views/setting/TokenModal.vue:301 msgid "Update" msgstr "更新" @@ -402,7 +411,7 @@ msgstr "更新" #: src/views/backup/ListView.vue:264 #: src/views/dashboard/IndexView.vue:425 #: src/views/database/IndexView.vue:45 -#: src/views/website/IndexView.vue:444 +#: src/views/website/IndexView.vue:454 msgid "Database" msgstr "數據庫" @@ -531,10 +540,12 @@ msgstr "在主頁顯示" #: src/views/firewall/ForwardView.vue:80 #: src/views/firewall/IpRuleView.vue:122 #: src/views/firewall/RuleView.vue:159 +#: src/views/setting/SettingUser.vue:76 +#: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:102 #: src/views/task/SystemView.vue:96 #: src/views/task/TaskView.vue:55 -#: src/views/website/IndexView.vue:93 +#: src/views/website/IndexView.vue:94 msgid "Actions" msgstr "操作" @@ -769,7 +780,7 @@ msgstr "開始跑分" #: src/views/apps/supervisor/IndexView.vue:54 #: src/views/task/SystemView.vue:50 #: src/views/task/TaskView.vue:33 -#: src/views/website/IndexView.vue:30 +#: src/views/website/IndexView.vue:31 msgid "Running" msgstr "運行中" @@ -811,7 +822,7 @@ msgstr "已停止" #: src/views/apps/rsync/IndexView.vue:159 #: src/views/apps/supervisor/IndexView.vue:273 #: src/views/apps/supervisor/IndexView.vue:302 -#: src/views/website/IndexView.vue:237 +#: src/views/website/IndexView.vue:239 msgid "Started successfully" msgstr "啟動成功" @@ -832,7 +843,7 @@ msgstr "啟動成功" #: src/views/apps/rsync/IndexView.vue:176 #: src/views/apps/supervisor/IndexView.vue:280 #: src/views/apps/supervisor/IndexView.vue:309 -#: src/views/website/IndexView.vue:239 +#: src/views/website/IndexView.vue:241 msgid "Stopped successfully" msgstr "停止成功" @@ -921,7 +932,7 @@ msgstr "自啟動已成功禁用" #: src/views/apps/toolbox/IndexView.vue:109 #: src/views/file/EditModal.vue:31 #: src/views/file/ListTable.vue:723 -#: src/views/setting/IndexView.vue:63 +#: src/views/setting/IndexView.vue:65 #: src/views/website/EditView.vue:215 msgid "Save" msgstr "儲存" @@ -1186,10 +1197,12 @@ msgstr "您確定要刪除規則 %{ name } 嗎?" #: src/views/firewall/ForwardView.vue:104 #: src/views/firewall/IpRuleView.vue:146 #: src/views/firewall/RuleView.vue:183 +#: src/views/setting/SettingUser.vue:132 +#: src/views/setting/TokenModal.vue:92 #: src/views/ssh/IndexView.vue:93 #: src/views/task/CronView.vue:155 #: src/views/task/TaskView.vue:98 -#: src/views/website/IndexView.vue:166 +#: src/views/website/IndexView.vue:167 msgid "Delete" msgstr "刪除" @@ -1236,10 +1249,12 @@ msgstr "添加成功" #: src/views/firewall/IpRuleView.vue:191 #: src/views/firewall/RuleView.vue:210 #: src/views/firewall/RuleView.vue:228 +#: src/views/setting/SettingUser.vue:162 +#: src/views/setting/TokenModal.vue:116 #: src/views/task/CronView.vue:198 #: src/views/task/TaskView.vue:124 -#: src/views/website/IndexView.vue:267 -#: src/views/website/IndexView.vue:321 +#: src/views/website/IndexView.vue:269 +#: src/views/website/IndexView.vue:325 msgid "Deleted successfully" msgstr "刪除成功" @@ -1429,10 +1444,11 @@ msgstr "清除成功" #: src/views/database/UpdateUserModal.vue:18 #: src/views/database/UserList.vue:222 #: src/views/file/PermissionModal.vue:29 +#: src/views/setting/SettingUser.vue:156 #: src/views/task/CronView.vue:180 #: src/views/task/CronView.vue:207 -#: src/views/website/IndexView.vue:250 -#: src/views/website/IndexView.vue:276 +#: src/views/website/IndexView.vue:252 +#: src/views/website/IndexView.vue:278 msgid "Modified successfully" msgstr "修改成功" @@ -1618,8 +1634,9 @@ msgstr "這將修改 PostgreSQL 用戶配置文件。如果您不了解每個參 #: src/views/database/ServerList.vue:47 #: src/views/database/UpdateServerModal.vue:86 #: src/views/database/UserList.vue:40 -#: src/views/login/IndexView.vue:115 -#: src/views/setting/SettingBase.vue:49 +#: src/views/login/IndexView.vue:133 +#: src/views/setting/CreateModal.vue:40 +#: src/views/setting/SettingUser.vue:19 #: src/views/ssh/CreateModal.vue:83 #: src/views/ssh/UpdateModal.vue:89 msgid "Username" @@ -1662,6 +1679,8 @@ msgstr "運行日誌" #: src/views/database/CreateDatabaseModal.vue:78 #: src/views/database/CreateUserModal.vue:54 #: src/views/database/IndexView.vue:36 +#: src/views/setting/CreateModal.vue:32 +#: src/views/setting/IndexView.vue:69 msgid "Create User" msgstr "建立使用者" @@ -1684,8 +1703,9 @@ msgstr "輸入使用者名稱" #: src/views/database/UpdateServerModal.vue:94 #: src/views/database/UpdateUserModal.vue:49 #: src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:123 -#: src/views/setting/SettingBase.vue:52 +#: src/views/login/IndexView.vue:142 +#: src/views/setting/CreateModal.vue:47 +#: src/views/setting/PasswordModal.vue:34 #: src/views/ssh/CreateModal.vue:77 #: src/views/ssh/CreateModal.vue:86 #: src/views/ssh/UpdateModal.vue:83 @@ -1703,8 +1723,8 @@ msgstr "建議使用生成器生成隨機密碼" #: src/views/apps/rsync/IndexView.vue:373 #: src/views/apps/rsync/IndexView.vue:427 #: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:43 -#: src/views/website/IndexView.vue:501 +#: src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:511 msgid "Directory" msgstr "目錄" @@ -1729,6 +1749,7 @@ msgstr "運行正常" #: src/views/apps/rsync/IndexView.vue:381 #: src/views/apps/rsync/IndexView.vue:435 #: src/views/database/IndexView.vue:48 +#: src/views/setting/IndexView.vue:79 #: src/views/task/SystemView.vue:37 msgid "User" msgstr "用戶" @@ -1959,6 +1980,7 @@ msgstr "同步成功" #: src/views/database/ServerList.vue:184 #: src/views/database/UserList.vue:169 #: src/views/file/PermissionModal.vue:123 +#: src/views/setting/TokenModal.vue:69 msgid "Modify" msgstr "修改" @@ -2053,8 +2075,8 @@ msgstr "選擇網站" #: src/views/database/DatabaseList.vue:35 #: src/views/task/CreateModal.vue:154 #: src/views/task/CreateModal.vue:156 -#: src/views/website/IndexView.vue:465 -#: src/views/website/IndexView.vue:470 +#: src/views/website/IndexView.vue:475 +#: src/views/website/IndexView.vue:480 msgid "Database Name" msgstr "數據庫名稱" @@ -2095,6 +2117,8 @@ msgstr "對於大文件,建議使用 SFTP 或其他方法上傳" #: src/views/cert/AccountView.vue:44 #: src/views/cert/AccountView.vue:243 #: src/views/cert/CreateAccountModal.vue:100 +#: src/views/setting/CreateModal.vue:56 +#: src/views/setting/SettingUser.vue:26 msgid "Email" msgstr "電子郵件" @@ -2180,7 +2204,7 @@ msgstr "輸入 HMAC" #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 #: src/views/website/EditView.vue:232 -#: src/views/website/IndexView.vue:409 +#: src/views/website/IndexView.vue:419 msgid "Domain" msgstr "域名" @@ -2217,6 +2241,9 @@ msgid "Issuer" msgstr "頒發者" #: src/views/cert/CertView.vue:139 +#: src/views/setting/TokenModal.vue:43 +#: src/views/setting/TokenModal.vue:258 +#: src/views/setting/TokenModal.vue:291 msgid "Expiration Time" msgstr "過期時間" @@ -2567,6 +2594,8 @@ msgstr "簽發模式" #: src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 #: src/views/container/VolumeView.vue:54 +#: src/views/setting/SettingUser.vue:67 +#: src/views/setting/TokenModal.vue:34 #: src/views/task/CronView.vue:83 #: src/views/task/TaskView.vue:37 msgid "Creation Time" @@ -2577,7 +2606,7 @@ msgstr "創建時間" #: src/views/file/ListTable.vue:220 #: src/views/ssh/IndexView.vue:71 #: src/views/task/CronView.vue:133 -#: src/views/website/IndexView.vue:108 +#: src/views/website/IndexView.vue:109 msgid "Edit" msgstr "編輯" @@ -3488,10 +3517,10 @@ msgstr "輸入數據庫伺服器主機" #: src/views/database/UpdateServerModal.vue:76 #: src/views/firewall/ForwardView.vue:32 #: src/views/firewall/RuleView.vue:49 -#: src/views/setting/SettingBase.vue:58 +#: src/views/setting/SettingBase.vue:49 #: src/views/ssh/CreateModal.vue:68 #: src/views/ssh/UpdateModal.vue:74 -#: src/views/website/IndexView.vue:420 +#: src/views/website/IndexView.vue:430 msgid "Port" msgstr "端口" @@ -3545,6 +3574,7 @@ msgstr "您確定要刪除這個數據庫嗎?" #: src/views/file/SearchModal.vue:65 #: src/views/file/ToolBar.vue:145 #: src/views/file/ToolBar.vue:165 +#: src/views/setting/TokenModal.vue:165 msgid "Copied successfully" msgstr "複製成功" @@ -3973,7 +4003,7 @@ msgstr "請選擇要刪除的規則" #: src/views/firewall/ForwardView.vue:172 #: src/views/firewall/IpRuleView.vue:214 #: src/views/firewall/RuleView.vue:251 -#: src/views/website/IndexView.vue:349 +#: src/views/website/IndexView.vue:354 msgid "Batch Delete" msgstr "批量刪除" @@ -4034,27 +4064,31 @@ msgstr "允許 Ping" msgid "SSH Port" msgstr "SSH 連接埠" -#: src/views/login/IndexView.vue:46 +#: src/views/login/IndexView.vue:49 msgid "Please enter username and password" msgstr "請輸入用戶名和密碼" -#: src/views/login/IndexView.vue:51 +#: src/views/login/IndexView.vue:54 msgid "Failed to get encryption public key, please refresh the page and try again" msgstr "獲取加密公鑰失敗,請刷新頁面後重試" -#: src/views/login/IndexView.vue:63 +#: src/views/login/IndexView.vue:67 msgid "Login successful!" msgstr "登錄成功!" -#: src/views/login/IndexView.vue:132 +#: src/views/login/IndexView.vue:153 +msgid "2FA Code" +msgstr "兩步驗證代碼" + +#: src/views/login/IndexView.vue:161 msgid "Safe Login" msgstr "安全登錄" -#: src/views/login/IndexView.vue:133 +#: src/views/login/IndexView.vue:162 msgid "Remember Me" msgstr "記住我" -#: src/views/login/IndexView.vue:147 +#: src/views/login/IndexView.vue:176 msgid "Login" msgstr "登錄" @@ -4136,25 +4170,45 @@ msgstr "天" msgid "Time Selection" msgstr "時間選擇" -#: src/views/setting/IndexView.vue:49 +#: src/views/setting/CreateModal.vue:44 +msgid "Enter user name" +msgstr "輸入用戶名" + +#: src/views/setting/CreateModal.vue:53 +#: src/views/setting/PasswordModal.vue:40 +msgid "Enter user password" +msgstr "輸入用戶密碼" + +#: src/views/setting/CreateModal.vue:60 +msgid "Enter user email" +msgstr "輸入用戶郵箱" + +#: src/views/setting/IndexView.vue:47 msgid "Panel is restarting, page will refresh in 3 seconds" msgstr "面板正在重啟,頁面將在 3 秒後刷新" -#: src/views/setting/IndexView.vue:67 +#: src/views/setting/IndexView.vue:73 msgid "Basic" msgstr "基本" -#: src/views/setting/IndexView.vue:70 +#: src/views/setting/IndexView.vue:76 msgid "Safe" -msgstr "" +msgstr "安全" + +#: src/views/setting/PasswordModal.vue:16 +#: src/views/setting/TokenModal.vue:183 +#: src/views/setting/TwoFaModal.vue:24 +#: src/views/ssh/UpdateModal.vue:30 +msgid "Updated successfully" +msgstr "更新成功" #: src/views/setting/SettingBase.vue:20 msgid "Stable" -msgstr "" +msgstr "穩定" #: src/views/setting/SettingBase.vue:24 msgid "Beta" -msgstr "" +msgstr "測試" #: src/views/setting/SettingBase.vue:34 msgid "Modifying panel port/entrance requires corresponding changes in the browser address bar to access the panel!" @@ -4171,49 +4225,35 @@ msgstr "語言" #: src/views/setting/SettingBase.vue:46 msgid "Update Channel" -msgstr "" +msgstr "更新渠道" #: src/views/setting/SettingBase.vue:50 -#: src/views/setting/SettingBase.vue:53 -#: src/views/setting/SettingSafe.vue:26 -msgid "admin" -msgstr "admin" - -#: src/views/setting/SettingBase.vue:55 -msgid "Certificate Default Email" -msgstr "證書默認郵箱" - -#: src/views/setting/SettingBase.vue:56 -msgid "admin@yourdomain.com" -msgstr "admin@yourdomain.com" - -#: src/views/setting/SettingBase.vue:59 msgid "8888" msgstr "8888" -#: src/views/setting/SettingBase.vue:61 +#: src/views/setting/SettingBase.vue:52 msgid "Default Website Directory" msgstr "預設網站目錄" -#: src/views/setting/SettingBase.vue:62 +#: src/views/setting/SettingBase.vue:53 msgid "/www/wwwroot" msgstr "/www/wwwroot" -#: src/views/setting/SettingBase.vue:64 +#: src/views/setting/SettingBase.vue:55 msgid "Default Backup Directory" msgstr "預設備份目錄" -#: src/views/setting/SettingBase.vue:65 +#: src/views/setting/SettingBase.vue:56 msgid "/www/backup" msgstr "/www/backup" #: src/views/setting/SettingSafe.vue:12 msgid "Login Timeout" -msgstr "" +msgstr "登錄超時" #: src/views/setting/SettingSafe.vue:15 msgid "120" -msgstr "" +msgstr "120" #: src/views/setting/SettingSafe.vue:21 #: src/views/website/ProxyBuilderModal.vue:188 @@ -4224,17 +4264,21 @@ msgstr "分鐘" msgid "Access Entrance" msgstr "訪問入口" +#: src/views/setting/SettingSafe.vue:26 +msgid "admin" +msgstr "admin" + #: src/views/setting/SettingSafe.vue:28 msgid "Bind Domain" -msgstr "" +msgstr "綁定域名" #: src/views/setting/SettingSafe.vue:35 msgid "Bind IP" -msgstr "" +msgstr "綁定 IP" #: src/views/setting/SettingSafe.vue:38 msgid "Bind UA" -msgstr "" +msgstr "綁定 UA" #: src/views/setting/SettingSafe.vue:45 msgid "Offline Mode" @@ -4248,6 +4292,91 @@ msgstr "自動更新" msgid "Panel HTTPS" msgstr "面板 HTTPS" +#: src/views/setting/SettingUser.vue:43 +msgid "2FA" +msgstr "兩步驗證" + +#: src/views/setting/SettingUser.vue:58 +msgid "Disabled successfully" +msgstr "禁用成功" + +#: src/views/setting/SettingUser.vue:93 +#: src/views/setting/TokenModal.vue:204 +msgid "Access Tokens" +msgstr "訪問令牌" + +#: src/views/setting/SettingUser.vue:121 +msgid "Are you sure you want to delete this user?" +msgstr "您確定要刪除該用戶嗎?" + +#: src/views/setting/TokenModal.vue:27 +msgid "ID" +msgstr "ID" + +#: src/views/setting/TokenModal.vue:81 +msgid "Are you sure you want to delete this access token?" +msgstr "您確定要刪除此訪問令牌嗎?" + +#: src/views/setting/TokenModal.vue:144 +msgid "Token is only displayed once, please save it before closing the dialog." +msgstr "令牌只顯示一次,請在關閉對話框前保存。" + +#: src/views/setting/TokenModal.vue:161 +msgid "Copy and close" +msgstr "複製並關閉" + +#: src/views/setting/TokenModal.vue:168 +msgid "Copy failed" +msgstr "複製失敗" + +#: src/views/setting/TokenModal.vue:214 +#: src/views/setting/TokenModal.vue:242 +msgid "Create Access Token" +msgstr "創建訪問令牌" + +#: src/views/setting/TokenModal.vue:251 +#: src/views/setting/TokenModal.vue:284 +msgid "IP White List" +msgstr "IP 白名單" + +#: src/views/setting/TokenModal.vue:254 +#: src/views/setting/TokenModal.vue:287 +msgid "127.0.0.1" +msgstr "127.0.0.1" + +#: src/views/setting/TokenModal.vue:262 +#: src/views/setting/TokenModal.vue:295 +msgid "Please select the expiration time" +msgstr "請選擇到期時間" + +#: src/views/setting/TokenModal.vue:275 +msgid "Modify Access Token" +msgstr "修改訪問令牌" + +#: src/views/setting/TwoFaModal.vue:46 +msgid "Enable 2FA" +msgstr "啟用兩步驗證" + +#: src/views/setting/TwoFaModal.vue:55 +msgid "QR Code" +msgstr "二維碼" + +#: src/views/setting/TwoFaModal.vue:58 +msgid "Scan the QR code with your 2FA app and enter the code below" +msgstr "用您的兩步驗證應用掃描二維碼並在下方輸入代碼" + +#: src/views/setting/TwoFaModal.vue:62 +msgid "If you cannot scan the QR code, please enter the URL below in your 2FA app" +msgstr "如果您無法掃描二維碼,請在您的兩步驗證應用中輸入下面的 URL" + +#: src/views/setting/TwoFaModal.vue:72 +msgid "Code" +msgstr "代碼" + +#: src/views/setting/TwoFaModal.vue:76 +msgid "Enter the code" +msgstr "輸入代碼" + #: src/views/ssh/CreateModal.vue:50 #: src/views/ssh/IndexView.vue:231 msgid "Create Host" @@ -4279,10 +4408,6 @@ msgstr "連接已關閉。請刷新。" msgid "Connection error. Please refresh." msgstr "連接錯誤。請刷新。" -#: src/views/ssh/UpdateModal.vue:30 -msgid "Updated successfully" -msgstr "更新成功" - #: src/views/ssh/UpdateModal.vue:56 msgid "Update Host" msgstr "更新主機" @@ -4439,8 +4564,50 @@ msgstr "完成時間" msgid "If logs cannot be loaded, please disable ad blockers!" msgstr "如果無法加載日誌,請禁用廣告攔截器!" +#: src/views/website/BulkCreate.vue:21 +msgid "The format is incorrect, please check" +msgstr "格式不正確,請檢查" + +#: src/views/website/BulkCreate.vue:59 +#: src/views/website/IndexView.vue:295 +msgid "Website %{ name } created successfully" +msgstr "網站 %{ name } 創建成功" + +#: src/views/website/BulkCreate.vue:77 +#: src/views/website/IndexView.vue:363 +msgid "Bulk Create Website" +msgstr "批量創建網站" + +#: src/views/website/BulkCreate.vue:88 +msgid "Please enter the website name, domain, port, path, and remark in the text area below, one per line." +msgstr "請在下面的文本區域輸入網站名稱、域名、端口、路徑和備註,每行一個。" + +#: src/views/website/BulkCreate.vue:96 +msgid "name|domain|port|path|remark" +msgstr "名稱|域名|端口|路徑|備註" + +#: src/views/website/BulkCreate.vue:101 +msgid "Name: The name of the website, which will be displayed in the website list, must be unique." +msgstr "名稱:網站的名稱,將顯示在網站列表中,必須是唯一的。" + +#: src/views/website/BulkCreate.vue:108 +msgid "Domain: The domain name of the website, multiple domains can be separated by commas." +msgstr "域名:網站的域名,多個域名可以用英文逗號分隔。" + +#: src/views/website/BulkCreate.vue:115 +msgid "Port: The port number of the website, multiple ports can be separated by commas." +msgstr "端口:網站的端口號,多個端口可以用英文逗號分隔。" + +#: src/views/website/BulkCreate.vue:121 +msgid "Path: The path of the website, can be empty to use the default path." +msgstr "路徑:網站的根目錄,可以為空以使用默認路徑。" + +#: src/views/website/BulkCreate.vue:124 +msgid "Remark: The remark of the website, can be empty." +msgstr "備註:網站的備註,可以為空。" + #: src/views/website/EditView.vue:54 -#: src/views/website/IndexView.vue:207 +#: src/views/website/IndexView.vue:209 msgid "Not used" msgstr "未使用" @@ -4522,12 +4689,12 @@ msgid "Default Document" msgstr "預設文件" #: src/views/website/EditView.vue:277 -#: src/views/website/IndexView.vue:432 +#: src/views/website/IndexView.vue:442 msgid "PHP Version" msgstr "PHP 版本" #: src/views/website/EditView.vue:282 -#: src/views/website/IndexView.vue:436 +#: src/views/website/IndexView.vue:446 msgid "Select PHP Version" msgstr "選擇 PHP 版本" @@ -4593,76 +4760,76 @@ msgstr "查看" msgid "Error Log" msgstr "錯誤日誌" -#: src/views/website/IndexView.vue:23 -#: src/views/website/IndexView.vue:395 +#: src/views/website/IndexView.vue:24 +#: src/views/website/IndexView.vue:405 msgid "Website Name" msgstr "網站名稱" -#: src/views/website/IndexView.vue:76 -#: src/views/website/IndexView.vue:513 -#: src/views/website/IndexView.vue:518 +#: src/views/website/IndexView.vue:77 +#: src/views/website/IndexView.vue:523 +#: src/views/website/IndexView.vue:528 msgid "Remark" msgstr "備註" -#: src/views/website/IndexView.vue:132 +#: src/views/website/IndexView.vue:133 msgid "Are you sure you want to delete website %{ name }?" msgstr "您確定要刪除網站 %{ name } 嗎?" -#: src/views/website/IndexView.vue:143 +#: src/views/website/IndexView.vue:144 msgid "Delete website directory" msgstr "刪除網站目錄" -#: src/views/website/IndexView.vue:151 +#: src/views/website/IndexView.vue:152 msgid "Delete local database with the same name" msgstr "刪除同名的本地數據庫" -#: src/views/website/IndexView.vue:312 +#: src/views/website/IndexView.vue:316 msgid "Please select the websites to delete" msgstr "請選擇要刪除的網站" -#: src/views/website/IndexView.vue:345 -#: src/views/website/IndexView.vue:386 -msgid "Create Website" -msgstr "創建網站" - -#: src/views/website/IndexView.vue:352 -msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" -msgstr "這將刪除網站目錄,但不會刪除同名的數據庫。您確定要刪除所選網站嗎?" - -#: src/views/website/IndexView.vue:358 -#: src/views/website/IndexView.vue:529 +#: src/views/website/IndexView.vue:350 +#: src/views/website/IndexView.vue:539 msgid "Modify Default Page" msgstr "修改預設頁面" -#: src/views/website/IndexView.vue:401 +#: src/views/website/IndexView.vue:357 +msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" +msgstr "這將刪除網站目錄,但不會刪除同名的數據庫。您確定要刪除所選網站嗎?" + +#: src/views/website/IndexView.vue:366 +#: src/views/website/IndexView.vue:396 +msgid "Create Website" +msgstr "創建網站" + +#: src/views/website/IndexView.vue:411 msgid "Recommended to use English for the website name, it cannot be modified after setting" msgstr "建議使用英文作為網站名稱,設置後無法修改" -#: src/views/website/IndexView.vue:448 +#: src/views/website/IndexView.vue:458 msgid "Select Database" msgstr "選擇數據庫" -#: src/views/website/IndexView.vue:476 -#: src/views/website/IndexView.vue:481 +#: src/views/website/IndexView.vue:486 +#: src/views/website/IndexView.vue:491 msgid "Database User" msgstr "數據庫用戶" -#: src/views/website/IndexView.vue:490 -#: src/views/website/IndexView.vue:496 +#: src/views/website/IndexView.vue:500 +#: src/views/website/IndexView.vue:506 msgid "Database Password" msgstr "數據庫密碼" -#: src/views/website/IndexView.vue:507 +#: src/views/website/IndexView.vue:517 msgid "Website root directory (if left empty, defaults to website directory/website name)" msgstr "網站根目錄(如果留空,默認為網站目錄/網站名稱)" -#: src/views/website/IndexView.vue:537 -#: src/views/website/IndexView.vue:537 +#: src/views/website/IndexView.vue:547 +#: src/views/website/IndexView.vue:547 msgid "Default Page" msgstr "默認頁面" -#: src/views/website/IndexView.vue:551 -#: src/views/website/IndexView.vue:551 +#: src/views/website/IndexView.vue:561 +#: src/views/website/IndexView.vue:561 msgid "Stop Page" msgstr "停止頁面"