> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 更新日志

待更新功能：对翻译后的字幕内容进行 AI 润色。

- 2026.09.28: Design QA 一轮——无障碍与视觉一致性。
  - **键盘焦点环找回**：antd 的 reset 把浏览器自带的 focus-visible 环压成浅蓝，现在焦点重新看得见
  - **暗色主题下的强调色文字**：卡片底上的小号强调色文字改用量子蓝，够到 WCAG AA；Waline 评论区行内代码字色接回正文色（此前亮色主题下几乎看不清）
  - **设置抽屉的服务芯片**去掉与 antd 自带 role 冲突的覆盖（axe 判 critical）；规则表空表头补上视觉隐藏的列名；「回到顶部」由圆形改方形，归入全站直角语言
  - 文本分割的预设按钮行在 390px 窄屏允许换行，消除横向溢出；反馈页标题升为 h1
- 2026.09.27: 字幕翻译首屏更轻。
  - **「翻译耗时」「复核面板」「多语言设置」改为按需加载**：不打开就不下载对应代码，首屏 JS 明显变小
  - 「更多工具」里的 365 系列链接现在按当前界面语言传参
- 2026.09.26: Azure OpenAI 迁到 v1 GA 接口。
  - **设置里删掉了 `apiVersion`（部署版本）这一项**：请求地址 = 你填的资源根 + 固定的 `/openai/v1` 后缀，模型栏仍填部署名
  - Azure 并入 openai-compat 工厂，手写 service 与专用请求体构造函数一并删除，`reasoning_effort` 随接口目录正常下发
  - 导航新增「365 Open Source Plan」入口；「更多工具」移除《千世书》
- 2026.09.24: 界面新增匈牙利语（Magyar），界面语种增至 19 种。
- 2026.09.22: Custom (OpenAI-compatible) 的端点快捷项新增 **9Router**（默认 20127）与 **OmniRoute**（默认 20128，9Router 的 TypeScript 分支），选中即填地址。
- 2026.09.18: 首屏继续瘦身。
  - 抽屉与弹窗改为**按需挂载 / 关闭即销毁**，不再常驻 DOM
  - 第三方脚本与路由预取延后，生产构建移除 `console`
- 2026.09.17: 收录 **OpenCode Go**（OpenCode Zen 的订阅套餐线）。
  - 与 Zen 同 host、同账号、同一把 API Key，只有请求路径（`/zen/go/v1` 与 `/zen/v1`）、在售 SKU 集合、计费形态三处不同：**Go 是 $10/月的订阅额度**（官方按每个模型的月限额换算：跑满 5 小时 ≈ 20%、一周 ≈ 50%、一个月 ≈ 100%），Zen 是充值余额；官方限定一个 workspace 只能有一人订阅 Go
  - 上游不发 CORS 头，「中转 API」**默认开启**
- 2026.09.15: 两个订阅套餐端点（火山 Coding Plan、阿里 Bailian Token Plan）收进接口目录，但**默认不在下拉里显示**——它们是按量线之外的独立产品线，知道自己在做什么的用户可在设置里自行开启。
- 2026.08.31: 导出与缓存设置更自由。
  - **指定下载目录**：支持 File System Access API 的浏览器（Chrome / Edge）可选定一个导出目录，此后所有导出直接落进去；浏览器不允许把「桌面 / 文档 / 下载」本身选为目标，请选子文件夹
  - **单文件模式与缓存设置可自由配置**，两项不再互相牵连
- 2026.08.24: RTL 语言逐行判定书写方向；阿拉伯字母语言补齐 ASS 字体。
  - **书写方向改为逐行判定**：中英夹阿拉伯语的文件里每一行各按自己的首个强方向字符排版，不再因整块被判成 LTR 而让 RTL 行的标点跑到错误一侧（源文本框、结果区、实时面板、失败面板、术语表抽屉全部生效）
  - **波斯语 fa、乌尔都语 ur、普什图语 ps、达里语 prs、索拉尼库尔德语 ckb、维吾尔语 ug 登记为阿拉伯字母**：此前它们回落到拉丁，与中文配对导出双语 ASS 时会被指派没有阿拉伯字形的中文字体，播放器里就是一屏豆腐块。希伯来语也从阿拉伯桶里拆出来单列
  - ASS 样式抽屉的预览改为按目标文字系统显示对应语种的示例句（此前希伯来语用户看到的是一句阿拉伯语）
- 2026.08.22: 新增本地翻译模型 MiLMMT；修复多行值被截半。
  - **新增 MiLMMT-46**（小米开源的翻译专用模型，1B / 4B / 12B）：与 TranslateGemma 同类的本地自托管服务，支持 46 种语言。**含粤语**（TranslateGemma 不支持），但不含乌克兰语与塞尔维亚语。需在服务列表里**直接选「MiLMMT」**：官方已说明该模型后训练阶段剔除了指令跟随能力，走 Custom (OpenAI-compatible) 会把系统提示词当正文喂进去。无术语表、无上下文翻译、必须指定源语言
  - **修复：本地翻译模型把多行内容截成一行**（TranslateGemma 一直存在此问题）。字幕与 Markdown 不受影响（上游就是逐行切的）；**JSON 翻译受影响** —— 值里带换行的多行描述会只剩第一行，且无任何提示。现在只在源文本自身单行时才做候选折叠
  - **本地运行时快捷地址新增 koboldcpp**（5001 端口），且 Custom / TranslateGemma / MiLMMT 三处的四个快捷项完全一致；选中任一项都会显示该运行时的官方文档链接
- 2026.08.21: 服务目录大换血——新增 5 家、下线 3 家、模型清单全面刷新。
  - **新增**：StepFun（阶跃星辰）、OpenCode Zen（带 `(free)` 后缀的 SKU 免费）、TokenHub（腾讯混元迁移后的新平台，另转售 DeepSeek / GLM / Kimi / MiniMax / MiMo）、Cerebras（gpt-oss-120b 官方标称约 3000 tokens/s，另有每日 100 万免费 token）、Atlas Cloud
  - **下线**：GitHub Models（2026-07-30 官方整家退役）、Perplexity Sonar（chat/completions 提前下线）、Tencent Hunyuan 旧端点（迁至 TokenHub）
  - **LiteLLM 并入 Custom**：不再占用独立服务条目，改为 Custom (OpenAI-compatible) 的 URL 快捷项，与新增的 Together AI / Fireworks AI 并列；原有用法（URL 即凭证、API Key 可选、模型名可留空）一字未改
  - **模型清单全面刷新**：各家清掉失效 id、按官方清单重列；模型输入框改为「下拉 + 自由输入」，每条显示友好名与真实 SKU 两行，该接口的默认模型带 `default` 标签
  - **思考档位改为逐 SKU 判定**：厂商压根没给关闭值的模型，最低档由 Off 改标 **Min**——它照常推理、照常计费，标 Off 是撒谎。涉及 Gemini 3.x、Grok 4.5 / 4.6、Groq 与 Cerebras 上的 GPT-OSS、Kimi K3 / K2.6，以及单个 SKU Claude Fable 5（官方标 Always on）；同门的 Opus 5 / Sonnet 5 / Haiku 4.5 仍关得掉
  - **中转 API 覆盖面扩大到 22 个接口**：OpenCode Zen 与 TokenHub 默认开启（两家的跨域预检分别返回 404 / 405，浏览器直连必败），其余默认关闭、遇 CORS 时按提示自行开启
- 2026.08.12: 字幕翻译逐行实时上屏；ASS / LRC 识别修复。
  - **实时结果面板**：每译完一行立刻显示在进度条正下方（原文在上、译文在下，左侧标原文件里的物理行号），不必等整批跑完才知道效果；未译出的行标琥珀色「未译出」，细节归下方失败面板；面板只保留最近窗口、跑完自动收起，中途上滚阅读不会被拽回底部
  - 修复：`.ass` / `.lrc` 在部分内容形态下被误判成其他格式，导致整份字幕被"翻译吃掉"
- 2026.08.09: 整段翻译的分块逐行营救；凭据失败整轮快停。
  - **分块行数不符改为逐行营救**：整段机器翻译（GTX / DeepL / DeepLX / Azure）整段发出、按行拆回，服务一旦并行或拆行就会从分歧点起整段错位。现在按**块**校验行数，不符时清掉该块缓存并**逐行重发**（一行进一行出，错位物理上不可能），只有单独重发仍失败的行才保留原文并记入失败面板——不再把一次服务抖动放大成一大段未翻译
  - **凭据失败快停只认 401 / 403**：一把坏 Key 会让之后每个语言、每个文件同样失败，所以整轮直接停下。判据收紧为数值状态码——一段含 "Forbidden" 字样的代理页 / 挑战页不会再误掐整批
  - **编码识别收紧**：无 BOM 的 UTF-16 / UTF-32 不再被当成 UTF-8 读进来（那会把一份 NUL 夹花的垃圾逐行计费翻译、写出、还报成功）
- 2026.08.02: 新增命令行翻译（CLI）；进度条内联化 + 取消按钮 + 运行中锁定设置。
  - **命令行入口**：翻译引擎抽成平台无关模块，`yarn cli` 与网页端共用**同一条流水线和同一份格式解析 / 装配代码**——批处理、并发、重试、429 冷却、术语表、上下文翻译、逐行缓存行为完全一致；字幕 / Markdown / JSON 三种格式全带，可直接读网页端导出的设置 JSON。用法见 [命令行翻译](/guide/translation/cli.md)
  - **进度条从弹窗改为内联**：显示已处理行数 / 总行数、当前语言、当前文件，右侧就是取消按钮；取消 **1 秒内落定**并转为「已停止」，已译内容全在缓存里，再点「翻译」从断点继续、不重复扣费
  - **运行中锁定设置与输入**：语言、Provider、prompt、导出格式、上传区、源文本框在跑的时候一律锁定——整轮跑在点「翻译」那一刻的快照上，运行中改要么结构上不生效（而控件会翻转，界面等于在撒谎），要么真会坏结果（清掉正在写的译文、或让导出变成"新源文配旧译文"）。只读动作（提取纯文本、复制、导出）不受影响
- 2026.07.11: 模型阵容更新；部分接口不再暴露温度参数。
  - **模型更新**：OpenAI 升级到 GPT-5.6 家族（sol / terra / luna，reasoning effort 新增 `max` 档，luna 为默认的低成本高并发档），Claude 换为 Opus 4.8 / Sonnet 5 / Fable 5（adaptive thinking）+ Haiku 4.5（extended thinking），Qwen 默认改为 3.7 Plus，Kimi、Gemini 等同步跟进
  - **温度控件按 provider 隐藏**：OpenAI（GPT-5.x 全系推理模型，非默认温度返回 400）、Claude（adaptive 世代拒绝 temperature）、Gemini（3.x 官方建议保持默认 1.0）、Moonshot Kimi（k2.x 锁定）、Azure OpenAI —— 这几家不再发送该参数，UI 输入框自动隐藏，改用系统提示词或思考强度控制文风
- 2026.06.30: 失败面板可定位、可精准重试。
  - **真实源文件行号**：失败面板显示的是原文件里的实际行号（此前是批次内序号），字幕 / Markdown / JSON 都能直接跳回去核对
  - **仅重译失败语言**：多语言批量翻译中某几种语言整体失败时，可只对失败语言重试，已成功的语言不重复扣费
  - 修复：GTX 返回长度不足或有空洞的 translations 数组时直接抛错，不再静默把整行译成空白；上下文模式的抽取增加跨行原文回声防护
- 2026.06.29: 字幕 ASS 样式可视化配置；缓存命中大幅提速。
  - **ASS 样式设置抽屉**：4 套预设（默认 / 大字号 / 电影感 / 底框）+ 自定义并持久保存；可调字体（支持读取系统字体）、字号、字色、描边色、描边、阴影、对齐、垂直边距；底框样式的框色与透明度独立可调
  - **原生 ASS 双语新增「重新排版」**：可选放弃源文件样式、用自己的 ASS 样式重建头部并剥离所有行内覆盖标签（仅适合纯对白字幕）；`.ssa` 源在重新排版后统一输出 `.ass`
  - **智能导出文件名**：默认改为干净的 `{name}.{ext}`，仅在一次翻译多种语言且模板未含 `{lang}` 时自动补 `_{lang}`，单语言导出不再带冗余后缀
  - **缓存命中重跑提速**：IndexedDB 改批量读取、自适应自动重试，命中缓存时跳过限流节流
  - **上下文行数默认 100 → 50**：过长上下文反而更容易诱发模型把上下文当正文的串行错位
  - 修复：TranslateGemma 按输入长度限制输出，避免本地模型无限重复导致超时；本地模型（llm / translategemma）超时给出针对性提示
- 2026.06.11: 新增 LiteLLM 自建网关；中转 API 全面可控、支持自建中转。
  - 新增 **LiteLLM** 接入：一个 OpenAI 协议代理背后聚合 100+ 上游模型，独立配置槽位（不必占用 Custom）。URL 即凭证（默认 `127.0.0.1:4000`）、API Key 可选（master key）；`litellm --model` 启动时模型名可留空跟随服务端默认
  - **Tencent Hunyuan 恢复浏览器可用**：官方端点目前拒绝跨域预检（直连必败），现默认经「中转 API」转发、开箱即用；开关保留，官方修复后可切回直连
  - **中转 API 全面可控**：YandexGPT 由强制中转改为「默认开、可关闭」；12 个支持中转的接口现在都可改填**自建中转地址**——优先级固定为 自定义 URL > 中转开关 > 官方直连，URL 已填时开关置灰并提示
  - 中转通道透传服务器的 `Retry-After` 响应头——经中转的限流自动降速与直连一样精确
  - 修复：Firefox / Safari 遇 CORS 失败现在同样显示「请开启中转 API」的可行动提示（此前只识别 Chrome 的报错文案，会白白重试 3 次）；中转相关提示全部本地化为 18 种界面语言
- 2026.06.10: 免费机器翻译升级——GTX 迁移网关 + 新增 Edge (Free) + 并发治理。
  - **GTX 迁移到新网关**：旧版 `translate.googleapis.com/translate_a` 端点被 Google 收紧反滥用策略（很多 IP 被跳转验证页，浏览器报 CORS），改用其网页翻译组件同款网关 `translate-pa.googleapis.com`——跨域规范、可用性更好。原端点保留为 **Legacy gtx** 备选；也支持填自建镜像 URL（按地址形态自动识别协议）
  - **新增 Edge API (Free)**：微软 Edge 浏览器内置翻译后端（Azure 引擎），零配置免费、链路与 GTX 完全不同——一个连不上换另一个即可。至此免费机器翻译有三选：GTX / Edge / DeepLX
  - **GTX 并发治理**：改为整批分块翻译（约 5000 字符/块、一块一请求），请求数相比逐行翻译大幅减少，日常使用基本不再触发限流；银幕式进度预览在分块模式下同样实时显示
  - 修复：TranslateGemma 删除多余的 `/models` 健康检查——部分 LM Studio 版本不路由该端点，导致「测试连接正常、实际翻译被阻断」；现与测试按钮走完全相同的请求路径
- 2026.06.10: 限流自适应 + 报错提示全面 i18n。
  - **429 自适应降速**：任一服务触发限流时，自动暂停该服务的全部请求、稍后自动恢复（优先按服务器的 `Retry-After` 等待，否则 1s→60s 指数退避，恢复时刻随机错峰防二次突发），并提示「请求过于频繁，已自动暂停片刻后重试」。GTX Free 因此得以保留高并发默认值——平时全速，被限流时自动减速
  - **报错提示全面 i18n**：HTTP 状态码（密钥无效、余额不足、模型不存在、参数不支持、限流、配额用尽、服务器错误等 11 类）映射为 18 种界面语言的可行动提示；失败面板、工具报错、测试按钮统一显示「原始原因 + 提示」；网络错误与超时也改为本地化文案，不再出现 "Failed to fetch" 黑话
  - **「测试连接」超时跟随「超时时间」设置**（原固定 30 秒）：慢速本地思考模型不再出现"测试失败、翻译却能跑"的误报；测试超时单独归类显示
  - 修复：TranslateGemma 预检与翻译服务统一 URL 规范化——局域网裸地址（如 `http://192.168.x.x:1234`）不再出现「设置页测试通过、实际翻译被阻断」的矛盾
- 2026.06.10: 新增**术语表（Glossary）**&#x529F;能。
  - 为人名 / 专有名词指定固定译法，按目标语言生效；支持多套预设（按剧名 / 项目名建库）、TSV 批量导入导出（可选第 3 列目标语言代码，一个文件导入多语言术语）、编辑器搜索 / 重复词警示 / 分页
  - 多层生效保障：LLM 按请求注入命中词条（不浪费 token）；Qwen-MT 走官方原生 `translation_options.terms` 参数；译文未采用指定译法时自动对违规行加强重译一次；最后还有译后兜底替换，确保术语一定生效
  - 适用范围：全部 LLM 服务 + Qwen-MT；纯 MT 接口（GTX / Google / DeepL / Azure / TranslateGemma）无模型内术语通道，不显示术语表卡片
  - 主页面 API 状态徽章旁新增术语表状态芯片，显示启用状态与词条数，点击直达设置
- 2026.06.09: 稳定性与可访问性加固。
  - 对翻译引擎、字幕 / Markdown / JSON / 文本各工具组做了一轮对抗式审查加固：占位符与代码围栏保护、格式边界处理、无效路径 / 正则给出明确报错而非静默跳过
  - 字幕翻译错位修复：批次内标记丢失时不再按行号猜测位置，避免译文串行
  - 可访问性：新增跳转正文链接与导航 landmark，工具控件全部支持键盘操作
- 2026.06.06: 新增 YandexGPT (AI Studio)。
  - 新增 LLM 提供商 **YandexGPT (AI Studio)**：API Key + Folder ID 鉴权，内置 YandexGPT 5.1 / Alice AI / Qwen3 / DeepSeek / GPT-OSS 等 SKU，也可直接粘贴完整 `gpt://` 模型 URI；官方接口无 CORS 头，默认经内置代理转发
  - TranslateGemma 新增**可选 API Key**：适配 LM Studio "require API key"、vLLM `--api-key`、反向代理鉴权等加锁部署
- 2026.06.01: 新增 GitHub Models；思考控制全面化。
  - 新增 LLM 提供商 **GitHub Models**：用 GitHub PAT（`models:read` 权限）鉴权，免费额度按模型分级（GPT-4.1 / 4.1 Mini / 4o Mini、Mistral Medium 3、Phi-4、Llama 3.3 70B），适合没有付费 Key 的入门用户；该网关不支持 reasoning 参数，故不显示思考开关
  - 思考控制全面化：Mistral（Medium 3.5 / Small 4）、Cohere Command A Reasoning 由「选了即开启」改为 **off / on** 开关；Perplexity Sonar Deep Research 支持 **off / low / medium / high** 三档
  - 自定义（未列出）模型在支持思考的 provider 上新增 **三态控制 off / on / auto**：off 显式关闭、on 开启、auto 省略参数跟随模型默认（严格 provider 对非思考模型会报错时的兜底）；默认 off
  - 修复：provider 选择守卫改为纯派生，避免旧 bundle 静默覆盖用户的选择
- 2026.05.26: 翻译引擎深度调优。
  - Custom (OpenAI-compatible) 新增可选 maxTokens 上限，防止本地小模型陷入重复输出循环；Claude / Gemini / OpenAI-compat 同步加上 `finish_reason=length` 截断检测
  - Custom 本地 LLM 默认 contextWindow 从 100 降到 30，适配 14B 以下的小模型
  - 失败处理升级：单行失败自动回填原文（保证输出可用）；多语言批量翻译中整语言失败聚合到独立面板，可一键复制语言代码重试
  - SRT / VTT 双语模式新增 **ASS 输出** 选项，原文 / 译文走独立样式（Default / Secondary），方便后期独立调整字体颜色大小
  - 友好错误提示：NetworkError / 超时 / 级联中止给出可读文案，不再 "Failed to fetch" 一刀切
  - Thinking 模式按模型独立保存开关状态；UI 自动区分三档（off/low/med/high）/ 二档（off/on）/ 仅 low-high 三种 effort 形态；intrinsic-thinking SKU 不再误显示 toggle
  - 语言选择器升级：122 种语言按地理 + 使用人数分组；多语言模式新增 "Top 10 / 欧洲 / 东亚 / 印度次大陆" 4 个预设，单语言场景记忆最近 5 个选过的语言；移动端单列布局
  - DeepLX 在服务下拉中下移到 DeepL 后面（品牌成组，稳定版在前）
- 2026.05.06: 服务目录 v2 大版本更新。
  - 新增 MT 服务 **TranslateGemma**（Google 翻译专用 Gemma 衍生模型，本地自托管）
  - 新增 LLM 提供商：MiniMax、Tencent Hunyuan（混元）、Baidu ERNIE（千帆）、Cohere
  - 各提供商支持区域端点快速切换（Mainland CN / International / US 等）
  - DeepSeek、NVIDIA NIM、Claude 等支持 Thinking 模式 + 推理强度（low / medium / high）
  - Custom (OpenAI-compatible) 新增不发送 system 消息开关，兼容 Gemma 系列 chat template
  - URL 字段 onBlur 自动补全 `/v1/chat/completions`，避免误用 Responses / 旧 completions API
  - 新增独立的 Prompt 预设管理（与 LLM API 预设解耦，可自由组合）
  - 主页面新增 API Status 状态徽章 + 一键源/目标语言互换
  - 修复：关闭缓存时仍在写入 IndexedDB；LLM-backed MT (Qwen-MT / TranslateGemma) retry 行为对齐 LLM
- 2025.07.29：支持 AI 模式下的上下文关联翻译。
- 2025.03.20：完成 i18n 化；修复缓存 key 等已知 bug；项目开源。
- 2025.02.28：LLM 模型翻译时支持自定义系统提示词和用户提示词。
- 2025.02.27: 增强双语字幕的时间轴兼容性，支持省略默认小时、超过 100 小时的时间格式，以及 1 至 3 位数的毫秒显示。
- 2025.02.21: 支持一次性批量翻译成多种语言。
- 2025.02.08：修复多文件模式下的编码识别问题；新增 OpenAI 和 Groq 的 接口（有其他接口可反馈）。
- 2025.02.06：新增 Siliconflow API；为 LLM 模型添加 temperature 设置，控制 AI 翻译随机性。
- 2025.02.05: 修复分块翻译时忽略空行和 DeeplX 换行符错误的问题；为不同 API 单独设置分块翻译参数。
- 2025.01.18: 支持自动识别上传文件的编码；可以设置翻译内容显示在原字幕的上一行或下一行。
- 2025.01.13：新增 DeepLX 自部署接口；将翻译 API 设置改为独立组件，简化前端设置逻辑。
- 2025.01.10：新增 DeepSeek 翻译接口。修复 DeepLX 字幕换行问题；优化翻译语言搜索识别（中英搜索支持）。
- 2024.12.19：自动识别单文件与多文件模式；新增自动识别源语言；优化单文件翻译后的文件导出命名规则。
- 2024.12.12: 使用 pLimit 限制并发模式，大幅减少免费 API 的报错问题。
- 2024.10.12：为 GTX API 添加了自定义延迟设置。（根据反馈，原设置在超过 150 次后容易达到上限，数量较低时则无需调整）
- 2024.09.08：增加 GTX API 的分批翻译限制，确保翻译的稳定性。新增繁体中文支持。
- 2024.09.07：优化对 webvtt 格式的识别；默认双语字幕格式为 .ass，并兼容多行字幕的双语处理。
- 2024.09.06：为翻译结果添加本地缓存，提升重复内容的翻译速度。
- 2024.09.05：跳过纯数字或字符内容，避免不必要的翻译。
- 2024.08.13：新增双语字幕输出功能。
- 2024.07.11：在单文件模式下，自动匹配字幕格式。
- 2024.07.06：新增对 vtt 和 ass 格式字幕的支持。
- 2024.07.05：字幕翻译语言支持扩展至 35 种。
- 2024.06.26：新增仅提取字幕内容的功能。
