fix(i18n): declare WARP/routing keys; restore 3x-ui in acknowledgments

Unit test required en.ts keys used by Routing/Settings. Credits keep
3x-ui / s-ui as before.
This commit is contained in:
kazeyukiro committed 2026-09-29 15:57:51 +00:00
1 parent fec9733baa
commit 1ddb808270
21 files changed
+37 -19

No files matched your search

+1 -1
View File
@@ -191,7 +191,7 @@ JWT / 凭据密钥请使用独立随机值(≥ 32 字节),不要使用文
- [Mihomo](https://github.com/MetaCubeX/mihomo) — 核心代理引擎及 Listener 配置模型
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — Listener 配置示例与协议参考
- [s-ui](https://github.com/alireza0/s-ui) — 面板交互与运维思路参考
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — 面板交互与运维思路参考
- [Gin](https://github.com/gin-gonic/gin) — 后端 HTTP 框架
- [GORM](https://github.com/go-gorm/gorm) — 数据库 ORM
- [React](https://github.com/facebook/react) — 前端基础
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Statische Binaries: [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -86,7 +86,7 @@ Static Linux binaries for multiple architectures are on [Releases](https://githu
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Binarios estáticos en [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Binaires statiques : [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Biner statis: [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Binarne pliki statyczne: [Releases](https://github.com/kazeyukiro/3m-ui/releases
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Binários estáticos: [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Statik ikililer: [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -67,7 +67,7 @@ Binary tĩnh: [Releases](https://github.com/kazeyukiro/3m-ui/releases).
- [Mihomo](https://github.com/MetaCubeX/mihomo) — core engine and listener model
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — listener examples
- [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — panel UX inspiration
- [Gin](https://github.com/gin-gonic/gin), [GORM](https://github.com/go-gorm/gorm), [React](https://github.com/facebook/react), [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — icons (`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo routing config / lite rule ideas
+1 -1
View File
@@ -96,7 +96,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — 核心引擎与 Listener 模型
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — Listener 示例
- [s-ui](https://github.com/alireza0/s-ui) — 面板交互参考
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — 面板交互参考
- [Gin](https://github.com/gin-gonic/gin) / [GORM](https://github.com/go-gorm/gorm) / [React](https://github.com/facebook/react) / [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — 图标(`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo 分流配置与精简规则思路参考
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../backend && CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags=
- [Mihomo](https://github.com/MetaCubeX/mihomo) — 核心引擎与 Listener 模型
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — Listener 示例
- [s-ui](https://github.com/alireza0/s-ui) — 面板交互参考
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — 面板交互参考
- [Gin](https://github.com/gin-gonic/gin) / [GORM](https://github.com/go-gorm/gorm) / [React](https://github.com/facebook/react) / [Ant Design](https://github.com/ant-design/ant-design)
- [Lucide](https://github.com/lucide-icons/lucide) — 圖示(`lucide-react`)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo 分流配置與精簡規則思路參考
+9
View File
@@ -828,6 +828,10 @@ export default {
"tplPrivateDirect": "GEOIP private → DIRECT, MATCH → DIRECT",
"tplWarpAi": "AI domains → WARP (needs outbound named WARP)",
"warpAiHint": "Register WARP in Settings (name the proxy WARP), then Generate & apply",
"noServerTemplates": "Server egress has no templates — set WARP domains below or edit rules.",
"warpDomains": "WARP domains",
"warpDomainsHintShort": "Requires WARP account in Settings",
"warpDomainsHint": "One domain per line (or GEOSITE:name). Traffic to these domains leaves via the WARP outbound after Apply. Register WARP under Settings first.",
"groupDeleted": "Group deleted"
},
"settings": {
@@ -1014,6 +1018,11 @@ export default {
"backupTime": "Time",
"warp": "Cloudflare WARP",
"warpHint": "One-click register a WARP WireGuard config (YAML fragment for Mihomo outbound). Requires outbound HTTPS to Cloudflare.",
"warpAccountSaved": "WARP account saved — use Routing → Server egress + WARP domains",
"warpConfigured": "Configured",
"warpDelete": "Delete WARP account",
"warpDeleted": "WARP account removed",
"warpNotConfigured": "No WARP account yet — register to enable server egress via WARP.",
"warpRegister": "Register WARP",
"warpWireguard": "WireGuard",
"warpMasque": "MASQUE","navOps":"System ops","restartPanel":"Restart panel","restartPanelHint":"Restart the 3m-ui panel process. systemd will automatically bring it back. Use this after config changes that require a restart, or if the panel is acting up.","restartNow":"Restart now","restartConfirmTitle":"Restart panel?","restartConfirmHint":"The panel will exit and systemd will restart it. You will be briefly disconnected.","restarting":"Restarting…","panelUpdate":"Panel update","updateHint":"Check for the latest 3m-ui release and update with one click. The panel will download the latest binary, replace itself, and restart automatically.","checkUpdate":"Check for updates","updateNow":"Update now","updateConfirmTitle":"Update panel?","updateConfirmHint":"This will download the latest release and restart the panel. The process takes 30-60 seconds.","updating":"Update started. Panel will restart automatically.","updateTimeout":"Update is taking longer than 2 minutes. Check SSH: 3m-ui logs","updateAvailable":"Update available","upToDate":"Up to date","upToDateHint":"You are running the latest version. Check again later or update via SSH: 3m-ui update","updateCheckFailed":"Cannot check for updates (GitHub API unreachable). Update via SSH: 3m-ui update","currentVersion":"Current","latestVersion":"Latest","releaseNotes":"Release notes","unknown":"unknown","stable":"Stable","preRelease":"Pre-release","channelSwitch":"Channel","publicHostHint":"Public hostname/IP clients connect to (e.g. cdn.example.com). Defaults to bind address if empty.","publicPortHint":"Public port clients connect to (e.g. 443 for CDN). Defaults to panel port if empty.","accessSniHint":"SNI sent by client during TLS handshake. Must match the certificate. Leave empty to use public_host.","clientFingerprintHint":"uTLS fingerprint for client TLS hello. chrome is recommended for stealth.","botTokenHint":"Get from @BotFather. Format: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz","cpuWarnPctHint":"0 = disabled. Alert when panel CPU usage exceeds this percentage.","trafficWarnPctHint":"0 = disabled. Alert when user traffic exceeds this percentage of their quota.","expiryWarnHoursHint":"Hours before user expiry to send a warning notification.","tgProxyHint":"SOCKS5/HTTP proxy for Telegram API if GitHub/Telegram is blocked. e.g. socks5://127.0.0.1:1080","tgApiServerHint":"Custom Telegram API server (for Bot API instances). Leave empty for default api.telegram.org","subTitleHint":"Title shown on the user subscription info page.","subSupportUrlHint":"Optional link shown on the subscription page (e.g. Telegram support link).",
+9
View File
@@ -828,6 +828,10 @@ export default {
"tplPrivateDirect": "GEOIP private → DIRECT,MATCH → DIRECT",
"tplWarpAi": "AI 域名 → WARP(需名为 WARP 的出站)",
"warpAiHint": "请先在设置注册 WARP,并将出站名称设为 WARP,再点生成并应用",
"noServerTemplates": "服务端出站没有模板 — 请在下方填写 WARP 域名或编辑规则。",
"warpDomains": "WARP 域名",
"warpDomainsHintShort": "需先在设置中注册 WARP 账户",
"warpDomainsHint": "每行一个域名(或 GEOSITE:name)。保存并应用后,这些域名经 WARP 出站。请先在设置中注册 WARP。",
"groupDeleted": "策略组已删除"
},
"settings": {
@@ -1014,6 +1018,11 @@ export default {
"backupTime": "时间",
"warp": "Cloudflare WARP",
"warpHint": "一键注册 WARP WireGuard 配置(Mihomo 出站 YAML)。需要面板能访问 Cloudflare。",
"warpAccountSaved": "WARP 账户已保存 — 请到路由 → 服务端出站填写 WARP 域名",
"warpConfigured": "已配置",
"warpDelete": "删除 WARP 账户",
"warpDeleted": "WARP 账户已删除",
"warpNotConfigured": "尚未配置 WARP 账户 — 注册后可用于服务端出站。",
"warpRegister": "注册 WARP",
"warpWireguard": "WireGuard",
"warpMasque": "MASQUE","navOps":"系统操作","restartPanel":"重启面板","restartPanelHint":"重启 3m-ui 面板进程。systemd 会自动重新启动。用于配置变更后需要重启的场景,或面板异常时。","restartNow":"立即重启","restartConfirmTitle":"重启面板?","restartConfirmHint":"面板将退出,systemd 会自动重启。你会短暂断开连接。","restarting":"正在重启…","panelUpdate":"面板更新","updateHint":"检查最新 3m-ui 版本并一键更新。面板会自动下载最新二进制、替换自身并重启。","checkUpdate":"检查更新","updateNow":"立即更新","updateConfirmTitle":"更新面板?","updateConfirmHint":"将下载最新版本并重启面板。过程需要 30-60 秒。","updating":"更新已启动,面板将自动重启。","updateTimeout":"更新超过 2 分钟仍未完成。请通过 SSH 检查:3m-ui logs","updateAvailable":"有新版本","upToDate":"已是最新","upToDateHint":"当前已是最新版本。稍后再检查或通过 SSH 更新:3m-ui update","updateCheckFailed":"无法检查更新(GitHub API 不可达)。通过 SSH 更新:3m-ui update","currentVersion":"当前版本","latestVersion":"最新版本","releaseNotes":"更新日志","unknown":"未知","stable":"稳定版","preRelease":"预发布版","channelSwitch":"切换渠道","publicHostHint":"客户端连接的公网域名/IP(如 cdn.example.com)。留空则使用绑定地址。","publicPortHint":"客户端连接的公网端口(如 CDN 的 443)。留空则使用面板端口。","accessSniHint":"客户端 TLS 握手时发送的 SNI。必须与证书匹配。留空则使用 public_host。","clientFingerprintHint":"客户端 TLS hello 的 uTLS 指纹。推荐用 chrome 增强伪装。","botTokenHint":"从 @BotFather 获取。格式:123456789:ABCdefGHIjklMNOpqrsTUVwxyz","cpuWarnPctHint":"0 = 禁用。面板 CPU 使用率超过此百分比时告警。","trafficWarnPctHint":"0 = 禁用。用户流量超过配额的此百分比时告警。","expiryWarnHoursHint":"用户到期前多少小时发送提醒通知。","tgProxyHint":"用于 Telegram API 的 SOCKS5/HTTP 代理(GitHub/Telegram 被墙时)。如 socks5://127.0.0.1:1080","tgApiServerHint":"自定义 Telegram API 服务器(用于 Bot API 实例)。留空使用默认 api.telegram.org","subTitleHint":"用户订阅信息页显示的标题。","subSupportUrlHint":"订阅页显示的可选链接(如 Telegram 客服链接)。",