From 71adcd60ef78cb943000be950a143eeecb78b6c6 Mon Sep 17 00:00:00 2001 From: im0o <0ojixueseno0@gmail.com> Date: Mon, 10 Aug 2026 13:38:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=96=87=E6=A1=88=E6=94=B9?= =?UTF-8?q?=E6=88=90=E4=B8=AD=E6=80=A7=E6=8E=AA=E8=BE=9E=EF=BC=9B=E5=BB=B6?= =?UTF-8?q?=E8=BF=9F=E6=B5=8B=E8=AF=95=E6=8A=A5=E5=87=BA=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原来那句「X 测不通」把两种要查不同地方的情况混在了一起。内核的语义是精确的 (hub/route/proxies.go:122-145):504 表示在给定超时内没有完成,503 表示连接建立失败 或测得延迟为 0。现在分开报,超时会写明是几秒,503 且内核没给具体错误时说明可能是 线路失效或本机到该服务器网络不通。 其余文案统一过一遍:「本机之外也能连」「这个名字已经被占用了」「还没做」这类口语改成 「允许来自其它主机的连接」「名称已存在」「尚未实现」。 --- web/App.vue | 8 +++--- web/api.ts | 2 +- web/components/OutboundCard.vue | 2 +- web/views/InboundDetail.vue | 18 ++++++------ web/views/InboundForm.vue | 10 +++---- web/views/RouterPage.vue | 49 +++++++++++++++++++++++++-------- web/views/TokenGate.vue | 4 +-- 7 files changed, 59 insertions(+), 34 deletions(-) diff --git a/web/App.vue b/web/App.vue index 11c561f..e9492e1 100644 --- a/web/App.vue +++ b/web/App.vue @@ -139,16 +139,16 @@ const current = computed(() => NAV.find((n) => n.key === active.value))
-

读取中

+

载入中

-

读不到配置

+

配置读取失败

{{ loadError }}

diff --git a/web/api.ts b/web/api.ts index 0ddc688..be87533 100644 --- a/web/api.ts +++ b/web/api.ts @@ -29,7 +29,7 @@ export class ApiError extends Error { readonly status: number, readonly payload: Record, ) { - super(typeof payload.message === 'string' ? payload.message : `请求失败(${String(status)})`) + super(typeof payload.message === 'string' ? payload.message : `请求失败(HTTP ${String(status)})`) this.name = 'ApiError' } diff --git a/web/components/OutboundCard.vue b/web/components/OutboundCard.vue index 14f5964..43207c8 100644 --- a/web/components/OutboundCard.vue +++ b/web/components/OutboundCard.vue @@ -54,7 +54,7 @@ function delayClass(ms: number | null): string { type="button" :class="['delay', delayClass(delay)]" :disabled="testing" - :title="delay === null ? '测这条线路的延迟' : '重新测'" + :title="delay === null ? '测试延迟' : '重新测试'" @click="emit('test')" > diff --git a/web/views/InboundDetail.vue b/web/views/InboundDetail.vue index c51d787..ea035c9 100644 --- a/web/views/InboundDetail.vue +++ b/web/views/InboundDetail.vue @@ -83,13 +83,13 @@ function isCurrentOutbound(mode: OutboundMode): boolean { } const BUILTINS: Array<{ mode: OutboundMode; label: string; sub: string }> = [ - { mode: { kind: 'rules' }, label: 'RULE', sub: '走分流规则' }, - { mode: { kind: 'direct' }, label: 'DIRECT', sub: '不经过代理' }, - { mode: { kind: 'global' }, label: 'GLOBAL', sub: '跟随全局选择' }, + { mode: { kind: 'rules' }, label: 'RULE', sub: '由规则决定' }, + { mode: { kind: 'direct' }, label: 'DIRECT', sub: '直接连接' }, + { mode: { kind: 'global' }, label: 'GLOBAL', sub: '跟随 GLOBAL 组' }, ] -const LINE_LOCKED = '订阅线路不能被入站直接引用,选中它需要自动建一个筛选组——这部分还没做' -const NO_PROXY_FIELD = '这路入站没有 proxy 字段' +const LINE_LOCKED = '订阅线路无法被入站直接引用,需要通过筛选组间接引入。该功能尚未实现。' +const NO_PROXY_FIELD = '该入站没有 proxy 字段'