@aalis/plugin-webui-server 0.14.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/admin-channel.d.ts +10 -0
- package/dist/admin-channel.d.ts.map +1 -0
- package/dist/admin-channel.js +57 -0
- package/dist/admin-channel.js.map +1 -0
- package/dist/attention.d.ts +36 -0
- package/dist/attention.d.ts.map +1 -0
- package/dist/attention.js +74 -0
- package/dist/attention.js.map +1 -0
- package/dist/auth.d.ts +32 -4
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +253 -79
- package/dist/auth.js.map +1 -1
- package/dist/client-discovery.d.ts +7 -3
- package/dist/client-discovery.d.ts.map +1 -1
- package/dist/client-discovery.js +9 -3
- package/dist/client-discovery.js.map +1 -1
- package/dist/client-switch-page.d.ts +26 -2
- package/dist/client-switch-page.d.ts.map +1 -1
- package/dist/client-switch-page.js +76 -45
- package/dist/client-switch-page.js.map +1 -1
- package/dist/gate.d.ts +3 -3
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +5 -4
- package/dist/gate.js.map +1 -1
- package/dist/html.d.ts +15 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +38 -0
- package/dist/html.js.map +1 -0
- package/dist/index.d.ts +24 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +627 -1102
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +19 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +200 -0
- package/dist/layout.js.map +1 -0
- package/dist/locales/en.d.ts +191 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/en.js +191 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/localize.d.ts +24 -0
- package/dist/localize.d.ts.map +1 -0
- package/dist/localize.js +68 -0
- package/dist/localize.js.map +1 -0
- package/dist/logs.d.ts +10 -0
- package/dist/logs.d.ts.map +1 -0
- package/dist/logs.js +50 -0
- package/dist/logs.js.map +1 -0
- package/dist/page-check.d.ts +56 -0
- package/dist/page-check.d.ts.map +1 -0
- package/dist/page-check.js +376 -0
- package/dist/page-check.js.map +1 -0
- package/dist/page-files.d.ts +13 -0
- package/dist/page-files.d.ts.map +1 -0
- package/dist/page-files.js +39 -0
- package/dist/page-files.js.map +1 -0
- package/dist/pages.d.ts +62 -0
- package/dist/pages.d.ts.map +1 -0
- package/dist/pages.js +486 -0
- package/dist/pages.js.map +1 -0
- package/dist/route.d.ts +14 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +16 -0
- package/dist/route.js.map +1 -0
- package/dist/routes/files.d.ts +8 -9
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +33 -119
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/frames.d.ts +4 -0
- package/dist/routes/frames.d.ts.map +1 -0
- package/dist/routes/frames.js +103 -0
- package/dist/routes/frames.js.map +1 -0
- package/dist/routes/i18n.d.ts +20 -0
- package/dist/routes/i18n.d.ts.map +1 -0
- package/dist/routes/i18n.js +78 -0
- package/dist/routes/i18n.js.map +1 -0
- package/dist/routes/marketplace.d.ts +46 -129
- package/dist/routes/marketplace.d.ts.map +1 -1
- package/dist/routes/marketplace.js +156 -106
- package/dist/routes/marketplace.js.map +1 -1
- package/dist/routes/media.d.ts +10 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +66 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/pages.d.ts +22 -0
- package/dist/routes/pages.d.ts.map +1 -0
- package/dist/routes/pages.js +104 -0
- package/dist/routes/pages.js.map +1 -0
- package/dist/routes/pipe-to-response.d.ts +9 -0
- package/dist/routes/pipe-to-response.d.ts.map +1 -0
- package/dist/routes/pipe-to-response.js +16 -0
- package/dist/routes/pipe-to-response.js.map +1 -0
- package/dist/routes/plugins.d.ts +22 -28
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +339 -344
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/proxy.d.ts +3 -2
- package/dist/routes/proxy.d.ts.map +1 -1
- package/dist/routes/proxy.js +64 -42
- package/dist/routes/proxy.js.map +1 -1
- package/dist/session-transport.d.ts +6 -0
- package/dist/session-transport.d.ts.map +1 -0
- package/dist/session-transport.js +32 -0
- package/dist/session-transport.js.map +1 -0
- package/dist/texts.d.ts +381 -0
- package/dist/texts.d.ts.map +1 -0
- package/dist/texts.js +194 -0
- package/dist/texts.js.map +1 -0
- package/package.json +38 -32
- package/dist/protocol.d.ts +0 -113
- package/dist/protocol.d.ts.map +0 -1
- package/dist/protocol.js +0 -59
- package/dist/protocol.js.map +0 -1
- package/dist/routes/uploaded-files.d.ts +0 -20
- package/dist/routes/uploaded-files.d.ts.map +0 -1
- package/dist/routes/uploaded-files.js +0 -161
- package/dist/routes/uploaded-files.js.map +0 -1
package/dist/texts.d.ts
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
declare const SOURCE: {
|
|
2
|
+
readonly displayName: "WebUI 服务端";
|
|
3
|
+
readonly portLabel: "端口";
|
|
4
|
+
readonly portDescription: "Web 管理界面的 HTTP 端口";
|
|
5
|
+
readonly hostLabel: "监听地址";
|
|
6
|
+
readonly hostDescription: "绑定的 IP 地址,0.0.0.0 可对外访问";
|
|
7
|
+
readonly allowedHostsLabel: "主机白名单";
|
|
8
|
+
readonly allowedHostsDescription: "经反向代理或域名访问时浏览器地址栏里的主机名,不带协议与端口。IP 地址、localhost 与监听地址总是认;其余主机名的请求回 421,挡住 DNS 重绑定的网页";
|
|
9
|
+
readonly badAllowedHost: "{entry} 不是主机名:只写主机名,不带协议、用户名与路径";
|
|
10
|
+
readonly autoOpenLabel: "启动时自动打开浏览器";
|
|
11
|
+
readonly autoOpenDescription: "每次应用启动后首次监听成功时打开默认浏览器;同一应用内沿用 token 的插件重载不重复打开,重新生成 token 时再次打开以便登录。SSH/headless 环境建议关闭";
|
|
12
|
+
readonly tokenModeLabel: "Token 策略";
|
|
13
|
+
readonly tokenEphemeral: "每次启动随机生成(重启即轮换)";
|
|
14
|
+
readonly tokenPersist: "首次生成后持久化(重启不掉登录)";
|
|
15
|
+
readonly tokenFixed: "使用下方固定 token";
|
|
16
|
+
readonly tokenModeDescription: "ephemeral=每次启动随机;persist=token 写入 data:/webui/token,读取复用;fixed=使用 fixedToken 字段。所有模式都会写出便利文件 data:/webui/access.txt 含访问 URL。";
|
|
17
|
+
readonly fixedTokenLabel: "固定 Token(仅 tokenMode=fixed 生效)";
|
|
18
|
+
readonly fixedTokenDescription: "至少 {min} 个字符的随机字符串(去掉首尾空白后计),短了插件不启动;留空按 persist 处理。存进 secrets.yaml,WebUI 不回显。";
|
|
19
|
+
readonly registryLabel: "插件市场 npm 源";
|
|
20
|
+
readonly registryDescription: "插件市场检索用的 npm registry 基址。注意 npm 的 search API 并非所有镜像都支持(淘宝等国内源不支持),默认官方源;国内可填支持 search 的镜像或代理。安装走 package-manager(遵循本机 npm 配置),卡片上的最新版与可更新也按安装使用的源查。";
|
|
21
|
+
readonly registryInvalid: "marketplaceRegistry 不是有效 URL";
|
|
22
|
+
readonly tokenTooShort: "fixedToken 至少要 {min} 个字符(现在 {length} 个)";
|
|
23
|
+
readonly accessTitle: "# Aalis WebUI 访问凭据(自动生成)";
|
|
24
|
+
readonly accessGenerated: "# 生成时间:{time}";
|
|
25
|
+
readonly accessMode: "# Token 模式:{mode}";
|
|
26
|
+
readonly accessLogin: "一键登录:{url}";
|
|
27
|
+
readonly accessHint: "# 提示:将该一键登录链接粘贴到浏览器即可自动设置 cookie";
|
|
28
|
+
readonly pageLanguage: "zh-CN";
|
|
29
|
+
readonly loginTitle: "Aalis WebUI 登录";
|
|
30
|
+
readonly loginHint: "访问 token 在家目录的 state/webui/access.txt 里,启动日志「访问凭据已写入」那行给出它的完整路径;tokenMode 为 fixed 时它是配置项 fixedToken,启动后值存在家目录的 secrets.yaml 里(配置文件里是引用)。";
|
|
31
|
+
readonly tokenPlaceholder: "访问 token";
|
|
32
|
+
readonly loginButton: "登录";
|
|
33
|
+
readonly tokenWrong: "token 不正确";
|
|
34
|
+
readonly networkError: "网络错误";
|
|
35
|
+
readonly urlTokenWrong: "URL 中的 token 不正确,请手动输入。";
|
|
36
|
+
readonly tooManyFailures: "登录失败次数过多,请 {minutes, number} 分钟后再试。";
|
|
37
|
+
readonly crossOrigin: "请求来源与本服务不同源(经反向代理访问时,代理要转发原始的 Host)";
|
|
38
|
+
readonly hostNotAllowed: "请求的主机名不在本服务认的名单里(经反向代理或域名访问时,把它加进 WebUI 服务端配置里的「主机白名单」)";
|
|
39
|
+
readonly ownerRequired: "需要 owner 权限";
|
|
40
|
+
readonly unauthenticated: "未登录";
|
|
41
|
+
readonly switchTitle: "切换前端 · Aalis";
|
|
42
|
+
readonly switchHeading: "切换前端";
|
|
43
|
+
readonly switchIntro: "这是 Aalis 的前端恢复入口,由 webui-server 直接提供、独立于当前前端——即使当前前端没有切换界面,你也能在这里切回去。";
|
|
44
|
+
readonly switchLabel: "可用前端(webui-client)";
|
|
45
|
+
readonly switchLoading: "加载中…";
|
|
46
|
+
readonly switchButton: "切换并刷新";
|
|
47
|
+
readonly switchBack: "切回原来的前端:在上面选中它,再点「切换并刷新」。";
|
|
48
|
+
readonly switchListFailed: "读取服务列表失败(HTTP {status})";
|
|
49
|
+
readonly switchNoClients: "未发现任何前端(webui-client provider)。请先安装一个 aalis.client 包。";
|
|
50
|
+
readonly switchCurrent: "{name}(当前)";
|
|
51
|
+
readonly switching: "切换中…";
|
|
52
|
+
readonly switched: "已切换,正在跳转…";
|
|
53
|
+
readonly switchOwnerHint: "(需要 owner 权限:请用一键登录链接打开 WebUI 后再试)";
|
|
54
|
+
readonly switchFailed: "切换失败:{detail}{hint}";
|
|
55
|
+
readonly switchError: "切换请求出错:{error}";
|
|
56
|
+
readonly unknownApi: "未知 API: {method} {path}";
|
|
57
|
+
readonly noClient: "前端未就绪:请安装一个带 aalis.client 标记的前端包";
|
|
58
|
+
readonly serverError: "处理这个请求时出错,原因见日志";
|
|
59
|
+
readonly badRequest: "请求的写法不对";
|
|
60
|
+
readonly bodyTooLarge: "请求体太大";
|
|
61
|
+
readonly bodyNotJson: "请求体要是合法的 JSON 对象或数组";
|
|
62
|
+
readonly bodyEncoding: "请求体的字符集或内容编码不受支持";
|
|
63
|
+
readonly logFilterInvalid: "日志筛选写法不对:level 只收 debug、info、warn、error,每一项最多给一次";
|
|
64
|
+
readonly noHostLogs: "宿主未提供日志服务(host-logs),读不到日志";
|
|
65
|
+
readonly logBeforeRequired: "往前翻日志要给数字参数 before(取 seq 比它小的那几条)";
|
|
66
|
+
readonly host: "宿主";
|
|
67
|
+
readonly noProvider: "服务 {service} 没有 id 为 {id} 的提供者";
|
|
68
|
+
readonly noHostConfigPreference: "宿主未提供配置文档(host-config),无法保存偏好";
|
|
69
|
+
readonly contextIdRequired: "请求体要给 contextId:偏好的那个提供者的 id";
|
|
70
|
+
readonly refreshUnsupported: "提供者 {provider} 不支持运行时刷新模型列表(例如关闭了模型发现)";
|
|
71
|
+
readonly refreshNoModels: "提供者 {provider} 当前没有已注册的模型,无法刷新";
|
|
72
|
+
readonly dependencyInvalid: "dependency 要是条目 id <提供者实例 id>/<模型 id>";
|
|
73
|
+
readonly allGroups: "* (全部分组)";
|
|
74
|
+
readonly ungroupedTools: "不属于任何分组的工具";
|
|
75
|
+
readonly pluginMissing: "插件 {instance} 不存在";
|
|
76
|
+
readonly refused: "插件 {instance} 当前不接受{action, select, config {配置更新} enable {启用} disable {禁用} other {重载}}(停机中或正在卸载),配置未更改";
|
|
77
|
+
readonly noHostConfig: "宿主未提供配置文档(host-config),无法读写配置";
|
|
78
|
+
readonly selfDisable: "插件 {name} 提供这个界面,不能从界面停用";
|
|
79
|
+
readonly bodyNotObject: "请求体必须是对象";
|
|
80
|
+
readonly foreignKeys: "只能改核心键({allowed, list}),不收:{foreign, list}";
|
|
81
|
+
readonly configNotSaved: "未写入配置文件({error}),本次修改已撤回";
|
|
82
|
+
readonly savedRestart: "全局配置已保存,重启后生效";
|
|
83
|
+
readonly saved: "全局配置已更新并保存";
|
|
84
|
+
readonly noApp: "App 不可用";
|
|
85
|
+
readonly restartFailed: "重启失败({error}),改动在下次启动时生效";
|
|
86
|
+
readonly restarting: "正在重启应用";
|
|
87
|
+
readonly configNotObject: "config 字段必须是对象";
|
|
88
|
+
readonly noPluginManager: "插件管理服务不可用";
|
|
89
|
+
readonly configInvalid: "配置校验未通过:{issues}";
|
|
90
|
+
readonly issue: "{path}: {reason}";
|
|
91
|
+
readonly inputInvalid: "输入没过校验:{issues}";
|
|
92
|
+
readonly inputIssue: "{path} {reason}";
|
|
93
|
+
readonly stillActivating: "仍在激活(超过慢激活阈值,已转入后台),结果以插件列表为准";
|
|
94
|
+
readonly waitingOld: "等待 {instance} 的旧实例停下";
|
|
95
|
+
readonly notYetActive: "尚未激活,结果以插件列表为准";
|
|
96
|
+
readonly notYetActiveBecause: "尚未激活:{why}";
|
|
97
|
+
readonly seeLog: "详见日志";
|
|
98
|
+
readonly ignoredNote: "(已忽略未声明的配置字段:{fields})";
|
|
99
|
+
readonly removedNote: "(已从配置文件移除未声明的字段:{fields})";
|
|
100
|
+
readonly unchanged: "插件 {name} 配置无改动,已写回配置文件{ignored}{removed}";
|
|
101
|
+
readonly reactivateFailed: "插件 {name} 按新配置重新激活失败,已转为 error 态({reason})";
|
|
102
|
+
readonly disabledNewConfig: "插件已禁用,启用时按新配置激活";
|
|
103
|
+
readonly configWritten: "配置已写入配置文件{ignored}{removed}";
|
|
104
|
+
readonly configUpdated: "插件 {name} 配置已更新{ignored}{removed}";
|
|
105
|
+
readonly activateFailed: "插件 {name} 激活失败,已转为 error 态({reason})";
|
|
106
|
+
readonly markedEnabled: "配置文件已记为启用";
|
|
107
|
+
readonly enabled: "插件 {name} 已启用";
|
|
108
|
+
readonly disabledStuck: "插件 {name} 已禁用,但超过宽限仍未停下,详见日志";
|
|
109
|
+
readonly markedDisabled: "配置文件已记为禁用";
|
|
110
|
+
readonly disabled: "插件 {name} 已禁用";
|
|
111
|
+
readonly reloadDisabled: "插件 {name} 已停用,启用后才能重载";
|
|
112
|
+
readonly reloadFailed: "插件 {name} 重新激活失败,已转为 error 态({reason})";
|
|
113
|
+
readonly reloaded: "插件 {name} 已重载";
|
|
114
|
+
readonly noPluginSource: "宿主未提供插件来源,无法扫描";
|
|
115
|
+
readonly scanned: "{count, plural, =0 {无新插件} other {新加载 # 个插件}}";
|
|
116
|
+
readonly suffixRequired: "suffix 必须是非空字符串";
|
|
117
|
+
readonly suffixInvalid: "suffix 只能包含字母、数字、下划线和连字符";
|
|
118
|
+
readonly moduleMissing: "无法创建实例:模块 \"{module}\" 未找到";
|
|
119
|
+
readonly moduleNotReusable: "无法创建实例:模块 \"{module}\" 未声明 reusable";
|
|
120
|
+
readonly instanceExists: "无法创建实例:\"{instance}\" 已存在";
|
|
121
|
+
readonly instanceRefused: "实例 {instance} 未登记(停机中或被拒,见日志),配置未写入";
|
|
122
|
+
readonly instanceFailed: "已创建实例 {instance},但激活失败,已转为 error 态({reason})";
|
|
123
|
+
readonly instanceDisabled: "配置文件的 disabledPlugins 里有它,已按禁用态登记,启用后激活";
|
|
124
|
+
readonly instanceCreated: "已创建实例 {instance}{ignored}";
|
|
125
|
+
readonly cannotDelete: "无法删除(实例不存在或不允许删除主实例)";
|
|
126
|
+
readonly deleteNotSaved: "未删除实例 {instance}:未写入配置文件({error})";
|
|
127
|
+
readonly unloadFailed: "已从配置文件删除实例 {instance},但卸载失败({error});重启后不再登记";
|
|
128
|
+
readonly deletedShuttingDown: "已从配置文件删除实例 {instance};停机中,未卸载运行中的实例";
|
|
129
|
+
readonly deleted: "已删除实例 {instance}";
|
|
130
|
+
readonly noAppDir: "宿主没有提供安装集目录(host-paths),无法判断已装的包";
|
|
131
|
+
readonly noInstallSource: "无法确定安装源({error}),暂不显示最新版本与可更新";
|
|
132
|
+
readonly registryStatus: "npm registry 返回 {status}";
|
|
133
|
+
readonly searchOffline: "无法连接 npm 仓库({error}),暂时只能管理本地已装插件";
|
|
134
|
+
readonly packageNameInvalid: "name 必须是合法 npm 包名";
|
|
135
|
+
readonly nameNotString: "name 字段必须是字符串";
|
|
136
|
+
readonly removeConfigNotBoolean: "removeConfig 字段必须是布尔值";
|
|
137
|
+
readonly targetsRequired: "targets 必须是非空数组";
|
|
138
|
+
readonly noPackageManagerInstall: "没有提供 package-manager 服务的插件在运行,市场装不了插件:在插件区启用它,或在项目目录执行 npm install <包名> 后重启";
|
|
139
|
+
readonly noPackageManagerUninstall: "没有提供 package-manager 服务的插件在运行,市场卸不了插件:在插件区启用它,或在项目目录执行 npm uninstall <包名> 后重启";
|
|
140
|
+
readonly noPackageManagerUpdate: "没有提供 package-manager 服务的插件在运行,市场更新不了:在插件区启用它";
|
|
141
|
+
readonly urlRequired: "缺少 url 参数";
|
|
142
|
+
readonly upstreamStatus: "上游返回 {status}";
|
|
143
|
+
readonly notImage: "上游返回的不是能显示的图片";
|
|
144
|
+
readonly imageTooLarge: "图片过大 ({size} > {max})";
|
|
145
|
+
readonly noUpstreamBody: "上游无响应体";
|
|
146
|
+
readonly proxyFailed: "代理失败:{error}";
|
|
147
|
+
readonly invalidHandle: "文件句柄无效";
|
|
148
|
+
readonly fileGone: "文件已不在";
|
|
149
|
+
readonly readFailed: "读取文件失败";
|
|
150
|
+
readonly notStorageUri: "不是存储地址";
|
|
151
|
+
readonly notMedia: "只提供图片、视频与音频";
|
|
152
|
+
readonly fileMissing: "文件不存在";
|
|
153
|
+
readonly noStorageLayout: "存储服务不在,布局记录读写不了";
|
|
154
|
+
readonly layoutReadFailed: "读取布局记录失败";
|
|
155
|
+
readonly layoutOpInvalid: "操作要是 '{ op, page }' 或 '{ op, tab }':pin、unpin、move-up、move-down 带 page('{ instance, pageKey }'),open-tab、close-tab、tab-up、tab-down 带 tab('{ host }' 或 '{ instance, pageKey }'),remove-tab 只带插件标签 tab('{ instance, pageKey }'),宿主标签只能关闭、不能移出";
|
|
156
|
+
readonly pinPluginOnly: "只有位置为插件详情的页面能固定";
|
|
157
|
+
readonly openSessionOnly: "只有会话面板的页面能在面板里打开";
|
|
158
|
+
readonly layoutSaveFailed: "保存布局记录失败,记录没有改动";
|
|
159
|
+
readonly pinnedFull: "最多 {max} 条,先取消一些";
|
|
160
|
+
readonly tabsFull: "会话面板最多记 {max} 个标签";
|
|
161
|
+
readonly pageMissing: "页面 {page}({instance})不存在";
|
|
162
|
+
readonly extraParams: "多余的参数:{keys, list}";
|
|
163
|
+
readonly nameRequired: "{name} 要是非空字符串";
|
|
164
|
+
readonly noSessionManager: "会话管理服务不在,会话面板用不了";
|
|
165
|
+
readonly archiveAbsent: "消息存档服务不在场,这条消息没有存进 WebUI 会话的历史";
|
|
166
|
+
readonly sessionMissing: "会话 {session} 不存在";
|
|
167
|
+
readonly inputNotObject: "input 要是对象";
|
|
168
|
+
readonly inputExtraKeys: "input 里多余的键:{keys, list}";
|
|
169
|
+
readonly inputNotJsonString: "input 要是一个 JSON 字符串";
|
|
170
|
+
readonly inputBadJson: "input 不是合法的 JSON";
|
|
171
|
+
readonly breach: "数据源 {source} 返回的数据不对:{problem}";
|
|
172
|
+
readonly notJson: "不能转成 JSON:{error}";
|
|
173
|
+
readonly notJsonValue: "不能转成 JSON";
|
|
174
|
+
readonly wantRows: "要返回行的数组";
|
|
175
|
+
readonly rowNotObject: "第 {row} 行不是对象";
|
|
176
|
+
readonly rowKeyInvalid: "第 {row} 行的 {key} 要是不重复的非空字符串";
|
|
177
|
+
readonly rowFlagInvalid: "第 {row} 行的 {key} 要是布尔值";
|
|
178
|
+
readonly rowUriInvalid: "第 {row} 行的 {key} 要是存储地址";
|
|
179
|
+
readonly wantText: "要返回字符串或文字对象";
|
|
180
|
+
readonly wantInfo: "要返回 '{ label, value }' 的数组";
|
|
181
|
+
readonly wantGraph: "要返回 '{ nodes, edges }'";
|
|
182
|
+
readonly nodeInvalid: "节点要有不重复的 id 与 label";
|
|
183
|
+
readonly edgeInvalid: "边的两端要是节点 id";
|
|
184
|
+
readonly noSource: "页面 {page} 没有数据源 {source}";
|
|
185
|
+
readonly noComponent: "页面 {page} 没有组件 {component}";
|
|
186
|
+
readonly noAction: "页面 {page} 没有动作 {action}";
|
|
187
|
+
readonly requestNotObject: "请求体要是对象";
|
|
188
|
+
readonly notASentence: "动作 {action} 返回的不是一句话";
|
|
189
|
+
};
|
|
190
|
+
export type Source = typeof SOURCE;
|
|
191
|
+
export declare const t: import("@aalis/schema-i18n").TextFactory<{
|
|
192
|
+
readonly displayName: "WebUI 服务端";
|
|
193
|
+
readonly portLabel: "端口";
|
|
194
|
+
readonly portDescription: "Web 管理界面的 HTTP 端口";
|
|
195
|
+
readonly hostLabel: "监听地址";
|
|
196
|
+
readonly hostDescription: "绑定的 IP 地址,0.0.0.0 可对外访问";
|
|
197
|
+
readonly allowedHostsLabel: "主机白名单";
|
|
198
|
+
readonly allowedHostsDescription: "经反向代理或域名访问时浏览器地址栏里的主机名,不带协议与端口。IP 地址、localhost 与监听地址总是认;其余主机名的请求回 421,挡住 DNS 重绑定的网页";
|
|
199
|
+
readonly badAllowedHost: "{entry} 不是主机名:只写主机名,不带协议、用户名与路径";
|
|
200
|
+
readonly autoOpenLabel: "启动时自动打开浏览器";
|
|
201
|
+
readonly autoOpenDescription: "每次应用启动后首次监听成功时打开默认浏览器;同一应用内沿用 token 的插件重载不重复打开,重新生成 token 时再次打开以便登录。SSH/headless 环境建议关闭";
|
|
202
|
+
readonly tokenModeLabel: "Token 策略";
|
|
203
|
+
readonly tokenEphemeral: "每次启动随机生成(重启即轮换)";
|
|
204
|
+
readonly tokenPersist: "首次生成后持久化(重启不掉登录)";
|
|
205
|
+
readonly tokenFixed: "使用下方固定 token";
|
|
206
|
+
readonly tokenModeDescription: "ephemeral=每次启动随机;persist=token 写入 data:/webui/token,读取复用;fixed=使用 fixedToken 字段。所有模式都会写出便利文件 data:/webui/access.txt 含访问 URL。";
|
|
207
|
+
readonly fixedTokenLabel: "固定 Token(仅 tokenMode=fixed 生效)";
|
|
208
|
+
readonly fixedTokenDescription: "至少 {min} 个字符的随机字符串(去掉首尾空白后计),短了插件不启动;留空按 persist 处理。存进 secrets.yaml,WebUI 不回显。";
|
|
209
|
+
readonly registryLabel: "插件市场 npm 源";
|
|
210
|
+
readonly registryDescription: "插件市场检索用的 npm registry 基址。注意 npm 的 search API 并非所有镜像都支持(淘宝等国内源不支持),默认官方源;国内可填支持 search 的镜像或代理。安装走 package-manager(遵循本机 npm 配置),卡片上的最新版与可更新也按安装使用的源查。";
|
|
211
|
+
readonly registryInvalid: "marketplaceRegistry 不是有效 URL";
|
|
212
|
+
readonly tokenTooShort: "fixedToken 至少要 {min} 个字符(现在 {length} 个)";
|
|
213
|
+
readonly accessTitle: "# Aalis WebUI 访问凭据(自动生成)";
|
|
214
|
+
readonly accessGenerated: "# 生成时间:{time}";
|
|
215
|
+
readonly accessMode: "# Token 模式:{mode}";
|
|
216
|
+
readonly accessLogin: "一键登录:{url}";
|
|
217
|
+
readonly accessHint: "# 提示:将该一键登录链接粘贴到浏览器即可自动设置 cookie";
|
|
218
|
+
readonly pageLanguage: "zh-CN";
|
|
219
|
+
readonly loginTitle: "Aalis WebUI 登录";
|
|
220
|
+
readonly loginHint: "访问 token 在家目录的 state/webui/access.txt 里,启动日志「访问凭据已写入」那行给出它的完整路径;tokenMode 为 fixed 时它是配置项 fixedToken,启动后值存在家目录的 secrets.yaml 里(配置文件里是引用)。";
|
|
221
|
+
readonly tokenPlaceholder: "访问 token";
|
|
222
|
+
readonly loginButton: "登录";
|
|
223
|
+
readonly tokenWrong: "token 不正确";
|
|
224
|
+
readonly networkError: "网络错误";
|
|
225
|
+
readonly urlTokenWrong: "URL 中的 token 不正确,请手动输入。";
|
|
226
|
+
readonly tooManyFailures: "登录失败次数过多,请 {minutes, number} 分钟后再试。";
|
|
227
|
+
readonly crossOrigin: "请求来源与本服务不同源(经反向代理访问时,代理要转发原始的 Host)";
|
|
228
|
+
readonly hostNotAllowed: "请求的主机名不在本服务认的名单里(经反向代理或域名访问时,把它加进 WebUI 服务端配置里的「主机白名单」)";
|
|
229
|
+
readonly ownerRequired: "需要 owner 权限";
|
|
230
|
+
readonly unauthenticated: "未登录";
|
|
231
|
+
readonly switchTitle: "切换前端 · Aalis";
|
|
232
|
+
readonly switchHeading: "切换前端";
|
|
233
|
+
readonly switchIntro: "这是 Aalis 的前端恢复入口,由 webui-server 直接提供、独立于当前前端——即使当前前端没有切换界面,你也能在这里切回去。";
|
|
234
|
+
readonly switchLabel: "可用前端(webui-client)";
|
|
235
|
+
readonly switchLoading: "加载中…";
|
|
236
|
+
readonly switchButton: "切换并刷新";
|
|
237
|
+
readonly switchBack: "切回原来的前端:在上面选中它,再点「切换并刷新」。";
|
|
238
|
+
readonly switchListFailed: "读取服务列表失败(HTTP {status})";
|
|
239
|
+
readonly switchNoClients: "未发现任何前端(webui-client provider)。请先安装一个 aalis.client 包。";
|
|
240
|
+
readonly switchCurrent: "{name}(当前)";
|
|
241
|
+
readonly switching: "切换中…";
|
|
242
|
+
readonly switched: "已切换,正在跳转…";
|
|
243
|
+
readonly switchOwnerHint: "(需要 owner 权限:请用一键登录链接打开 WebUI 后再试)";
|
|
244
|
+
readonly switchFailed: "切换失败:{detail}{hint}";
|
|
245
|
+
readonly switchError: "切换请求出错:{error}";
|
|
246
|
+
readonly unknownApi: "未知 API: {method} {path}";
|
|
247
|
+
readonly noClient: "前端未就绪:请安装一个带 aalis.client 标记的前端包";
|
|
248
|
+
readonly serverError: "处理这个请求时出错,原因见日志";
|
|
249
|
+
readonly badRequest: "请求的写法不对";
|
|
250
|
+
readonly bodyTooLarge: "请求体太大";
|
|
251
|
+
readonly bodyNotJson: "请求体要是合法的 JSON 对象或数组";
|
|
252
|
+
readonly bodyEncoding: "请求体的字符集或内容编码不受支持";
|
|
253
|
+
readonly logFilterInvalid: "日志筛选写法不对:level 只收 debug、info、warn、error,每一项最多给一次";
|
|
254
|
+
readonly noHostLogs: "宿主未提供日志服务(host-logs),读不到日志";
|
|
255
|
+
readonly logBeforeRequired: "往前翻日志要给数字参数 before(取 seq 比它小的那几条)";
|
|
256
|
+
readonly host: "宿主";
|
|
257
|
+
readonly noProvider: "服务 {service} 没有 id 为 {id} 的提供者";
|
|
258
|
+
readonly noHostConfigPreference: "宿主未提供配置文档(host-config),无法保存偏好";
|
|
259
|
+
readonly contextIdRequired: "请求体要给 contextId:偏好的那个提供者的 id";
|
|
260
|
+
readonly refreshUnsupported: "提供者 {provider} 不支持运行时刷新模型列表(例如关闭了模型发现)";
|
|
261
|
+
readonly refreshNoModels: "提供者 {provider} 当前没有已注册的模型,无法刷新";
|
|
262
|
+
readonly dependencyInvalid: "dependency 要是条目 id <提供者实例 id>/<模型 id>";
|
|
263
|
+
readonly allGroups: "* (全部分组)";
|
|
264
|
+
readonly ungroupedTools: "不属于任何分组的工具";
|
|
265
|
+
readonly pluginMissing: "插件 {instance} 不存在";
|
|
266
|
+
readonly refused: "插件 {instance} 当前不接受{action, select, config {配置更新} enable {启用} disable {禁用} other {重载}}(停机中或正在卸载),配置未更改";
|
|
267
|
+
readonly noHostConfig: "宿主未提供配置文档(host-config),无法读写配置";
|
|
268
|
+
readonly selfDisable: "插件 {name} 提供这个界面,不能从界面停用";
|
|
269
|
+
readonly bodyNotObject: "请求体必须是对象";
|
|
270
|
+
readonly foreignKeys: "只能改核心键({allowed, list}),不收:{foreign, list}";
|
|
271
|
+
readonly configNotSaved: "未写入配置文件({error}),本次修改已撤回";
|
|
272
|
+
readonly savedRestart: "全局配置已保存,重启后生效";
|
|
273
|
+
readonly saved: "全局配置已更新并保存";
|
|
274
|
+
readonly noApp: "App 不可用";
|
|
275
|
+
readonly restartFailed: "重启失败({error}),改动在下次启动时生效";
|
|
276
|
+
readonly restarting: "正在重启应用";
|
|
277
|
+
readonly configNotObject: "config 字段必须是对象";
|
|
278
|
+
readonly noPluginManager: "插件管理服务不可用";
|
|
279
|
+
readonly configInvalid: "配置校验未通过:{issues}";
|
|
280
|
+
readonly issue: "{path}: {reason}";
|
|
281
|
+
readonly inputInvalid: "输入没过校验:{issues}";
|
|
282
|
+
readonly inputIssue: "{path} {reason}";
|
|
283
|
+
readonly stillActivating: "仍在激活(超过慢激活阈值,已转入后台),结果以插件列表为准";
|
|
284
|
+
readonly waitingOld: "等待 {instance} 的旧实例停下";
|
|
285
|
+
readonly notYetActive: "尚未激活,结果以插件列表为准";
|
|
286
|
+
readonly notYetActiveBecause: "尚未激活:{why}";
|
|
287
|
+
readonly seeLog: "详见日志";
|
|
288
|
+
readonly ignoredNote: "(已忽略未声明的配置字段:{fields})";
|
|
289
|
+
readonly removedNote: "(已从配置文件移除未声明的字段:{fields})";
|
|
290
|
+
readonly unchanged: "插件 {name} 配置无改动,已写回配置文件{ignored}{removed}";
|
|
291
|
+
readonly reactivateFailed: "插件 {name} 按新配置重新激活失败,已转为 error 态({reason})";
|
|
292
|
+
readonly disabledNewConfig: "插件已禁用,启用时按新配置激活";
|
|
293
|
+
readonly configWritten: "配置已写入配置文件{ignored}{removed}";
|
|
294
|
+
readonly configUpdated: "插件 {name} 配置已更新{ignored}{removed}";
|
|
295
|
+
readonly activateFailed: "插件 {name} 激活失败,已转为 error 态({reason})";
|
|
296
|
+
readonly markedEnabled: "配置文件已记为启用";
|
|
297
|
+
readonly enabled: "插件 {name} 已启用";
|
|
298
|
+
readonly disabledStuck: "插件 {name} 已禁用,但超过宽限仍未停下,详见日志";
|
|
299
|
+
readonly markedDisabled: "配置文件已记为禁用";
|
|
300
|
+
readonly disabled: "插件 {name} 已禁用";
|
|
301
|
+
readonly reloadDisabled: "插件 {name} 已停用,启用后才能重载";
|
|
302
|
+
readonly reloadFailed: "插件 {name} 重新激活失败,已转为 error 态({reason})";
|
|
303
|
+
readonly reloaded: "插件 {name} 已重载";
|
|
304
|
+
readonly noPluginSource: "宿主未提供插件来源,无法扫描";
|
|
305
|
+
readonly scanned: "{count, plural, =0 {无新插件} other {新加载 # 个插件}}";
|
|
306
|
+
readonly suffixRequired: "suffix 必须是非空字符串";
|
|
307
|
+
readonly suffixInvalid: "suffix 只能包含字母、数字、下划线和连字符";
|
|
308
|
+
readonly moduleMissing: "无法创建实例:模块 \"{module}\" 未找到";
|
|
309
|
+
readonly moduleNotReusable: "无法创建实例:模块 \"{module}\" 未声明 reusable";
|
|
310
|
+
readonly instanceExists: "无法创建实例:\"{instance}\" 已存在";
|
|
311
|
+
readonly instanceRefused: "实例 {instance} 未登记(停机中或被拒,见日志),配置未写入";
|
|
312
|
+
readonly instanceFailed: "已创建实例 {instance},但激活失败,已转为 error 态({reason})";
|
|
313
|
+
readonly instanceDisabled: "配置文件的 disabledPlugins 里有它,已按禁用态登记,启用后激活";
|
|
314
|
+
readonly instanceCreated: "已创建实例 {instance}{ignored}";
|
|
315
|
+
readonly cannotDelete: "无法删除(实例不存在或不允许删除主实例)";
|
|
316
|
+
readonly deleteNotSaved: "未删除实例 {instance}:未写入配置文件({error})";
|
|
317
|
+
readonly unloadFailed: "已从配置文件删除实例 {instance},但卸载失败({error});重启后不再登记";
|
|
318
|
+
readonly deletedShuttingDown: "已从配置文件删除实例 {instance};停机中,未卸载运行中的实例";
|
|
319
|
+
readonly deleted: "已删除实例 {instance}";
|
|
320
|
+
readonly noAppDir: "宿主没有提供安装集目录(host-paths),无法判断已装的包";
|
|
321
|
+
readonly noInstallSource: "无法确定安装源({error}),暂不显示最新版本与可更新";
|
|
322
|
+
readonly registryStatus: "npm registry 返回 {status}";
|
|
323
|
+
readonly searchOffline: "无法连接 npm 仓库({error}),暂时只能管理本地已装插件";
|
|
324
|
+
readonly packageNameInvalid: "name 必须是合法 npm 包名";
|
|
325
|
+
readonly nameNotString: "name 字段必须是字符串";
|
|
326
|
+
readonly removeConfigNotBoolean: "removeConfig 字段必须是布尔值";
|
|
327
|
+
readonly targetsRequired: "targets 必须是非空数组";
|
|
328
|
+
readonly noPackageManagerInstall: "没有提供 package-manager 服务的插件在运行,市场装不了插件:在插件区启用它,或在项目目录执行 npm install <包名> 后重启";
|
|
329
|
+
readonly noPackageManagerUninstall: "没有提供 package-manager 服务的插件在运行,市场卸不了插件:在插件区启用它,或在项目目录执行 npm uninstall <包名> 后重启";
|
|
330
|
+
readonly noPackageManagerUpdate: "没有提供 package-manager 服务的插件在运行,市场更新不了:在插件区启用它";
|
|
331
|
+
readonly urlRequired: "缺少 url 参数";
|
|
332
|
+
readonly upstreamStatus: "上游返回 {status}";
|
|
333
|
+
readonly notImage: "上游返回的不是能显示的图片";
|
|
334
|
+
readonly imageTooLarge: "图片过大 ({size} > {max})";
|
|
335
|
+
readonly noUpstreamBody: "上游无响应体";
|
|
336
|
+
readonly proxyFailed: "代理失败:{error}";
|
|
337
|
+
readonly invalidHandle: "文件句柄无效";
|
|
338
|
+
readonly fileGone: "文件已不在";
|
|
339
|
+
readonly readFailed: "读取文件失败";
|
|
340
|
+
readonly notStorageUri: "不是存储地址";
|
|
341
|
+
readonly notMedia: "只提供图片、视频与音频";
|
|
342
|
+
readonly fileMissing: "文件不存在";
|
|
343
|
+
readonly noStorageLayout: "存储服务不在,布局记录读写不了";
|
|
344
|
+
readonly layoutReadFailed: "读取布局记录失败";
|
|
345
|
+
readonly layoutOpInvalid: "操作要是 '{ op, page }' 或 '{ op, tab }':pin、unpin、move-up、move-down 带 page('{ instance, pageKey }'),open-tab、close-tab、tab-up、tab-down 带 tab('{ host }' 或 '{ instance, pageKey }'),remove-tab 只带插件标签 tab('{ instance, pageKey }'),宿主标签只能关闭、不能移出";
|
|
346
|
+
readonly pinPluginOnly: "只有位置为插件详情的页面能固定";
|
|
347
|
+
readonly openSessionOnly: "只有会话面板的页面能在面板里打开";
|
|
348
|
+
readonly layoutSaveFailed: "保存布局记录失败,记录没有改动";
|
|
349
|
+
readonly pinnedFull: "最多 {max} 条,先取消一些";
|
|
350
|
+
readonly tabsFull: "会话面板最多记 {max} 个标签";
|
|
351
|
+
readonly pageMissing: "页面 {page}({instance})不存在";
|
|
352
|
+
readonly extraParams: "多余的参数:{keys, list}";
|
|
353
|
+
readonly nameRequired: "{name} 要是非空字符串";
|
|
354
|
+
readonly noSessionManager: "会话管理服务不在,会话面板用不了";
|
|
355
|
+
readonly archiveAbsent: "消息存档服务不在场,这条消息没有存进 WebUI 会话的历史";
|
|
356
|
+
readonly sessionMissing: "会话 {session} 不存在";
|
|
357
|
+
readonly inputNotObject: "input 要是对象";
|
|
358
|
+
readonly inputExtraKeys: "input 里多余的键:{keys, list}";
|
|
359
|
+
readonly inputNotJsonString: "input 要是一个 JSON 字符串";
|
|
360
|
+
readonly inputBadJson: "input 不是合法的 JSON";
|
|
361
|
+
readonly breach: "数据源 {source} 返回的数据不对:{problem}";
|
|
362
|
+
readonly notJson: "不能转成 JSON:{error}";
|
|
363
|
+
readonly notJsonValue: "不能转成 JSON";
|
|
364
|
+
readonly wantRows: "要返回行的数组";
|
|
365
|
+
readonly rowNotObject: "第 {row} 行不是对象";
|
|
366
|
+
readonly rowKeyInvalid: "第 {row} 行的 {key} 要是不重复的非空字符串";
|
|
367
|
+
readonly rowFlagInvalid: "第 {row} 行的 {key} 要是布尔值";
|
|
368
|
+
readonly rowUriInvalid: "第 {row} 行的 {key} 要是存储地址";
|
|
369
|
+
readonly wantText: "要返回字符串或文字对象";
|
|
370
|
+
readonly wantInfo: "要返回 '{ label, value }' 的数组";
|
|
371
|
+
readonly wantGraph: "要返回 '{ nodes, edges }'";
|
|
372
|
+
readonly nodeInvalid: "节点要有不重复的 id 与 label";
|
|
373
|
+
readonly edgeInvalid: "边的两端要是节点 id";
|
|
374
|
+
readonly noSource: "页面 {page} 没有数据源 {source}";
|
|
375
|
+
readonly noComponent: "页面 {page} 没有组件 {component}";
|
|
376
|
+
readonly noAction: "页面 {page} 没有动作 {action}";
|
|
377
|
+
readonly requestNotObject: "请求体要是对象";
|
|
378
|
+
readonly notASentence: "动作 {action} 返回的不是一句话";
|
|
379
|
+
}>;
|
|
380
|
+
export {};
|
|
381
|
+
//# sourceMappingURL=texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMF,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwG,CAAC"}
|
package/dist/texts.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// 本插件自己的原文字典
|
|
2
|
+
import { defineTexts } from '@aalis/schema-i18n';
|
|
3
|
+
import en from './locales/en.js';
|
|
4
|
+
const SOURCE = {
|
|
5
|
+
displayName: 'WebUI 服务端',
|
|
6
|
+
portLabel: '端口',
|
|
7
|
+
portDescription: 'Web 管理界面的 HTTP 端口',
|
|
8
|
+
hostLabel: '监听地址',
|
|
9
|
+
hostDescription: '绑定的 IP 地址,0.0.0.0 可对外访问',
|
|
10
|
+
allowedHostsLabel: '主机白名单',
|
|
11
|
+
allowedHostsDescription: '经反向代理或域名访问时浏览器地址栏里的主机名,不带协议与端口。IP 地址、localhost 与监听地址总是认;其余主机名的请求回 421,挡住 DNS 重绑定的网页',
|
|
12
|
+
badAllowedHost: '{entry} 不是主机名:只写主机名,不带协议、用户名与路径',
|
|
13
|
+
autoOpenLabel: '启动时自动打开浏览器',
|
|
14
|
+
autoOpenDescription: '每次应用启动后首次监听成功时打开默认浏览器;同一应用内沿用 token 的插件重载不重复打开,重新生成 token 时再次打开以便登录。SSH/headless 环境建议关闭',
|
|
15
|
+
tokenModeLabel: 'Token 策略',
|
|
16
|
+
tokenEphemeral: '每次启动随机生成(重启即轮换)',
|
|
17
|
+
tokenPersist: '首次生成后持久化(重启不掉登录)',
|
|
18
|
+
tokenFixed: '使用下方固定 token',
|
|
19
|
+
tokenModeDescription: 'ephemeral=每次启动随机;persist=token 写入 data:/webui/token,读取复用;fixed=使用 fixedToken 字段。所有模式都会写出便利文件 data:/webui/access.txt 含访问 URL。',
|
|
20
|
+
fixedTokenLabel: '固定 Token(仅 tokenMode=fixed 生效)',
|
|
21
|
+
fixedTokenDescription: '至少 {min} 个字符的随机字符串(去掉首尾空白后计),短了插件不启动;留空按 persist 处理。存进 secrets.yaml,WebUI 不回显。',
|
|
22
|
+
registryLabel: '插件市场 npm 源',
|
|
23
|
+
registryDescription: '插件市场检索用的 npm registry 基址。注意 npm 的 search API 并非所有镜像都支持(淘宝等国内源不支持),默认官方源;国内可填支持 search 的镜像或代理。安装走 package-manager(遵循本机 npm 配置),卡片上的最新版与可更新也按安装使用的源查。',
|
|
24
|
+
registryInvalid: 'marketplaceRegistry 不是有效 URL',
|
|
25
|
+
tokenTooShort: 'fixedToken 至少要 {min} 个字符(现在 {length} 个)',
|
|
26
|
+
accessTitle: '# Aalis WebUI 访问凭据(自动生成)',
|
|
27
|
+
accessGenerated: '# 生成时间:{time}',
|
|
28
|
+
accessMode: '# Token 模式:{mode}',
|
|
29
|
+
accessLogin: '一键登录:{url}',
|
|
30
|
+
accessHint: '# 提示:将该一键登录链接粘贴到浏览器即可自动设置 cookie',
|
|
31
|
+
pageLanguage: 'zh-CN',
|
|
32
|
+
loginTitle: 'Aalis WebUI 登录',
|
|
33
|
+
loginHint: '访问 token 在家目录的 state/webui/access.txt 里,启动日志「访问凭据已写入」那行给出它的完整路径;tokenMode 为 fixed 时它是配置项 fixedToken,启动后值存在家目录的 secrets.yaml 里(配置文件里是引用)。',
|
|
34
|
+
tokenPlaceholder: '访问 token',
|
|
35
|
+
loginButton: '登录',
|
|
36
|
+
tokenWrong: 'token 不正确',
|
|
37
|
+
networkError: '网络错误',
|
|
38
|
+
urlTokenWrong: 'URL 中的 token 不正确,请手动输入。',
|
|
39
|
+
tooManyFailures: '登录失败次数过多,请 {minutes, number} 分钟后再试。',
|
|
40
|
+
crossOrigin: '请求来源与本服务不同源(经反向代理访问时,代理要转发原始的 Host)',
|
|
41
|
+
hostNotAllowed: '请求的主机名不在本服务认的名单里(经反向代理或域名访问时,把它加进 WebUI 服务端配置里的「主机白名单」)',
|
|
42
|
+
ownerRequired: '需要 owner 权限',
|
|
43
|
+
unauthenticated: '未登录',
|
|
44
|
+
switchTitle: '切换前端 · Aalis',
|
|
45
|
+
switchHeading: '切换前端',
|
|
46
|
+
switchIntro: '这是 Aalis 的前端恢复入口,由 webui-server 直接提供、独立于当前前端——即使当前前端没有切换界面,你也能在这里切回去。',
|
|
47
|
+
switchLabel: '可用前端(webui-client)',
|
|
48
|
+
switchLoading: '加载中…',
|
|
49
|
+
switchButton: '切换并刷新',
|
|
50
|
+
switchBack: '切回原来的前端:在上面选中它,再点「切换并刷新」。',
|
|
51
|
+
switchListFailed: '读取服务列表失败(HTTP {status})',
|
|
52
|
+
switchNoClients: '未发现任何前端(webui-client provider)。请先安装一个 aalis.client 包。',
|
|
53
|
+
switchCurrent: '{name}(当前)',
|
|
54
|
+
switching: '切换中…',
|
|
55
|
+
switched: '已切换,正在跳转…',
|
|
56
|
+
switchOwnerHint: '(需要 owner 权限:请用一键登录链接打开 WebUI 后再试)',
|
|
57
|
+
switchFailed: '切换失败:{detail}{hint}',
|
|
58
|
+
switchError: '切换请求出错:{error}',
|
|
59
|
+
unknownApi: '未知 API: {method} {path}',
|
|
60
|
+
noClient: '前端未就绪:请安装一个带 aalis.client 标记的前端包',
|
|
61
|
+
serverError: '处理这个请求时出错,原因见日志',
|
|
62
|
+
badRequest: '请求的写法不对',
|
|
63
|
+
bodyTooLarge: '请求体太大',
|
|
64
|
+
bodyNotJson: '请求体要是合法的 JSON 对象或数组',
|
|
65
|
+
bodyEncoding: '请求体的字符集或内容编码不受支持',
|
|
66
|
+
logFilterInvalid: '日志筛选写法不对:level 只收 debug、info、warn、error,每一项最多给一次',
|
|
67
|
+
noHostLogs: '宿主未提供日志服务(host-logs),读不到日志',
|
|
68
|
+
logBeforeRequired: '往前翻日志要给数字参数 before(取 seq 比它小的那几条)',
|
|
69
|
+
host: '宿主',
|
|
70
|
+
noProvider: '服务 {service} 没有 id 为 {id} 的提供者',
|
|
71
|
+
noHostConfigPreference: '宿主未提供配置文档(host-config),无法保存偏好',
|
|
72
|
+
contextIdRequired: '请求体要给 contextId:偏好的那个提供者的 id',
|
|
73
|
+
refreshUnsupported: '提供者 {provider} 不支持运行时刷新模型列表(例如关闭了模型发现)',
|
|
74
|
+
refreshNoModels: '提供者 {provider} 当前没有已注册的模型,无法刷新',
|
|
75
|
+
dependencyInvalid: 'dependency 要是条目 id <提供者实例 id>/<模型 id>',
|
|
76
|
+
allGroups: '* (全部分组)',
|
|
77
|
+
ungroupedTools: '不属于任何分组的工具',
|
|
78
|
+
pluginMissing: '插件 {instance} 不存在',
|
|
79
|
+
refused: '插件 {instance} 当前不接受{action, select, config {配置更新} enable {启用} disable {禁用} other {重载}}(停机中或正在卸载),配置未更改',
|
|
80
|
+
noHostConfig: '宿主未提供配置文档(host-config),无法读写配置',
|
|
81
|
+
selfDisable: '插件 {name} 提供这个界面,不能从界面停用',
|
|
82
|
+
bodyNotObject: '请求体必须是对象',
|
|
83
|
+
foreignKeys: '只能改核心键({allowed, list}),不收:{foreign, list}',
|
|
84
|
+
configNotSaved: '未写入配置文件({error}),本次修改已撤回',
|
|
85
|
+
savedRestart: '全局配置已保存,重启后生效',
|
|
86
|
+
saved: '全局配置已更新并保存',
|
|
87
|
+
noApp: 'App 不可用',
|
|
88
|
+
restartFailed: '重启失败({error}),改动在下次启动时生效',
|
|
89
|
+
restarting: '正在重启应用',
|
|
90
|
+
configNotObject: 'config 字段必须是对象',
|
|
91
|
+
noPluginManager: '插件管理服务不可用',
|
|
92
|
+
configInvalid: '配置校验未通过:{issues}',
|
|
93
|
+
issue: '{path}: {reason}',
|
|
94
|
+
inputInvalid: '输入没过校验:{issues}',
|
|
95
|
+
inputIssue: '{path} {reason}',
|
|
96
|
+
stillActivating: '仍在激活(超过慢激活阈值,已转入后台),结果以插件列表为准',
|
|
97
|
+
waitingOld: '等待 {instance} 的旧实例停下',
|
|
98
|
+
notYetActive: '尚未激活,结果以插件列表为准',
|
|
99
|
+
notYetActiveBecause: '尚未激活:{why}',
|
|
100
|
+
seeLog: '详见日志',
|
|
101
|
+
ignoredNote: '(已忽略未声明的配置字段:{fields})',
|
|
102
|
+
removedNote: '(已从配置文件移除未声明的字段:{fields})',
|
|
103
|
+
unchanged: '插件 {name} 配置无改动,已写回配置文件{ignored}{removed}',
|
|
104
|
+
reactivateFailed: '插件 {name} 按新配置重新激活失败,已转为 error 态({reason})',
|
|
105
|
+
disabledNewConfig: '插件已禁用,启用时按新配置激活',
|
|
106
|
+
configWritten: '配置已写入配置文件{ignored}{removed}',
|
|
107
|
+
configUpdated: '插件 {name} 配置已更新{ignored}{removed}',
|
|
108
|
+
activateFailed: '插件 {name} 激活失败,已转为 error 态({reason})',
|
|
109
|
+
markedEnabled: '配置文件已记为启用',
|
|
110
|
+
enabled: '插件 {name} 已启用',
|
|
111
|
+
disabledStuck: '插件 {name} 已禁用,但超过宽限仍未停下,详见日志',
|
|
112
|
+
markedDisabled: '配置文件已记为禁用',
|
|
113
|
+
disabled: '插件 {name} 已禁用',
|
|
114
|
+
reloadDisabled: '插件 {name} 已停用,启用后才能重载',
|
|
115
|
+
reloadFailed: '插件 {name} 重新激活失败,已转为 error 态({reason})',
|
|
116
|
+
reloaded: '插件 {name} 已重载',
|
|
117
|
+
noPluginSource: '宿主未提供插件来源,无法扫描',
|
|
118
|
+
scanned: '{count, plural, =0 {无新插件} other {新加载 # 个插件}}',
|
|
119
|
+
suffixRequired: 'suffix 必须是非空字符串',
|
|
120
|
+
suffixInvalid: 'suffix 只能包含字母、数字、下划线和连字符',
|
|
121
|
+
moduleMissing: '无法创建实例:模块 "{module}" 未找到',
|
|
122
|
+
moduleNotReusable: '无法创建实例:模块 "{module}" 未声明 reusable',
|
|
123
|
+
instanceExists: '无法创建实例:"{instance}" 已存在',
|
|
124
|
+
instanceRefused: '实例 {instance} 未登记(停机中或被拒,见日志),配置未写入',
|
|
125
|
+
instanceFailed: '已创建实例 {instance},但激活失败,已转为 error 态({reason})',
|
|
126
|
+
instanceDisabled: '配置文件的 disabledPlugins 里有它,已按禁用态登记,启用后激活',
|
|
127
|
+
instanceCreated: '已创建实例 {instance}{ignored}',
|
|
128
|
+
cannotDelete: '无法删除(实例不存在或不允许删除主实例)',
|
|
129
|
+
deleteNotSaved: '未删除实例 {instance}:未写入配置文件({error})',
|
|
130
|
+
unloadFailed: '已从配置文件删除实例 {instance},但卸载失败({error});重启后不再登记',
|
|
131
|
+
deletedShuttingDown: '已从配置文件删除实例 {instance};停机中,未卸载运行中的实例',
|
|
132
|
+
deleted: '已删除实例 {instance}',
|
|
133
|
+
noAppDir: '宿主没有提供安装集目录(host-paths),无法判断已装的包',
|
|
134
|
+
noInstallSource: '无法确定安装源({error}),暂不显示最新版本与可更新',
|
|
135
|
+
registryStatus: 'npm registry 返回 {status}',
|
|
136
|
+
searchOffline: '无法连接 npm 仓库({error}),暂时只能管理本地已装插件',
|
|
137
|
+
packageNameInvalid: 'name 必须是合法 npm 包名',
|
|
138
|
+
nameNotString: 'name 字段必须是字符串',
|
|
139
|
+
removeConfigNotBoolean: 'removeConfig 字段必须是布尔值',
|
|
140
|
+
targetsRequired: 'targets 必须是非空数组',
|
|
141
|
+
noPackageManagerInstall: '没有提供 package-manager 服务的插件在运行,市场装不了插件:在插件区启用它,或在项目目录执行 npm install <包名> 后重启',
|
|
142
|
+
noPackageManagerUninstall: '没有提供 package-manager 服务的插件在运行,市场卸不了插件:在插件区启用它,或在项目目录执行 npm uninstall <包名> 后重启',
|
|
143
|
+
noPackageManagerUpdate: '没有提供 package-manager 服务的插件在运行,市场更新不了:在插件区启用它',
|
|
144
|
+
urlRequired: '缺少 url 参数',
|
|
145
|
+
upstreamStatus: '上游返回 {status}',
|
|
146
|
+
notImage: '上游返回的不是能显示的图片',
|
|
147
|
+
imageTooLarge: '图片过大 ({size} > {max})',
|
|
148
|
+
noUpstreamBody: '上游无响应体',
|
|
149
|
+
proxyFailed: '代理失败:{error}',
|
|
150
|
+
invalidHandle: '文件句柄无效',
|
|
151
|
+
fileGone: '文件已不在',
|
|
152
|
+
readFailed: '读取文件失败',
|
|
153
|
+
notStorageUri: '不是存储地址',
|
|
154
|
+
notMedia: '只提供图片、视频与音频',
|
|
155
|
+
fileMissing: '文件不存在',
|
|
156
|
+
noStorageLayout: '存储服务不在,布局记录读写不了',
|
|
157
|
+
layoutReadFailed: '读取布局记录失败',
|
|
158
|
+
layoutOpInvalid: "操作要是 '{ op, page }' 或 '{ op, tab }':pin、unpin、move-up、move-down 带 page('{ instance, pageKey }'),open-tab、close-tab、tab-up、tab-down 带 tab('{ host }' 或 '{ instance, pageKey }'),remove-tab 只带插件标签 tab('{ instance, pageKey }'),宿主标签只能关闭、不能移出",
|
|
159
|
+
pinPluginOnly: '只有位置为插件详情的页面能固定',
|
|
160
|
+
openSessionOnly: '只有会话面板的页面能在面板里打开',
|
|
161
|
+
layoutSaveFailed: '保存布局记录失败,记录没有改动',
|
|
162
|
+
pinnedFull: '最多 {max} 条,先取消一些',
|
|
163
|
+
tabsFull: '会话面板最多记 {max} 个标签',
|
|
164
|
+
pageMissing: '页面 {page}({instance})不存在',
|
|
165
|
+
extraParams: '多余的参数:{keys, list}',
|
|
166
|
+
nameRequired: '{name} 要是非空字符串',
|
|
167
|
+
noSessionManager: '会话管理服务不在,会话面板用不了',
|
|
168
|
+
archiveAbsent: '消息存档服务不在场,这条消息没有存进 WebUI 会话的历史',
|
|
169
|
+
sessionMissing: '会话 {session} 不存在',
|
|
170
|
+
inputNotObject: 'input 要是对象',
|
|
171
|
+
inputExtraKeys: 'input 里多余的键:{keys, list}',
|
|
172
|
+
inputNotJsonString: 'input 要是一个 JSON 字符串',
|
|
173
|
+
inputBadJson: 'input 不是合法的 JSON',
|
|
174
|
+
breach: '数据源 {source} 返回的数据不对:{problem}',
|
|
175
|
+
notJson: '不能转成 JSON:{error}',
|
|
176
|
+
notJsonValue: '不能转成 JSON',
|
|
177
|
+
wantRows: '要返回行的数组',
|
|
178
|
+
rowNotObject: '第 {row} 行不是对象',
|
|
179
|
+
rowKeyInvalid: '第 {row} 行的 {key} 要是不重复的非空字符串',
|
|
180
|
+
rowFlagInvalid: '第 {row} 行的 {key} 要是布尔值',
|
|
181
|
+
rowUriInvalid: '第 {row} 行的 {key} 要是存储地址',
|
|
182
|
+
wantText: '要返回字符串或文字对象',
|
|
183
|
+
wantInfo: "要返回 '{ label, value }' 的数组",
|
|
184
|
+
wantGraph: "要返回 '{ nodes, edges }'",
|
|
185
|
+
nodeInvalid: '节点要有不重复的 id 与 label',
|
|
186
|
+
edgeInvalid: '边的两端要是节点 id',
|
|
187
|
+
noSource: '页面 {page} 没有数据源 {source}',
|
|
188
|
+
noComponent: '页面 {page} 没有组件 {component}',
|
|
189
|
+
noAction: '页面 {page} 没有动作 {action}',
|
|
190
|
+
requestNotObject: '请求体要是对象',
|
|
191
|
+
notASentence: '动作 {action} 返回的不是一句话',
|
|
192
|
+
};
|
|
193
|
+
export const t = defineTexts({ ns: '@aalis/plugin-webui-server', language: 'zh-CN', source: SOURCE, locales: { en } });
|
|
194
|
+
//# sourceMappingURL=texts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.js","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"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"}
|