diff --git a/docs/i18n/DECISIONS.md b/docs/i18n/DECISIONS.md
new file mode 100644
index 00000000000..81911089e8a
--- /dev/null
+++ b/docs/i18n/DECISIONS.md
@@ -0,0 +1,32 @@
+# LiteLLM Dashboard i18n — DECISIONS(决策记录)
+
+> 维护者:Agent 0。记录所有影响方案/范围的决策。`状态`: 已定 / 待定 / 待 PoC。
+
+## 已定决策(来自 I18N_MULTI_AGENT_PLAN.md v1.4)
+
+| # | 决策 | 结论 | 状态 |
+|---|---|---|---|
+| D1 | 国际化库 | `i18next` + `react-i18next` | 已定 |
+| D2 | 默认/目标语言 | 默认 `en`,目标 `zh-CN`;缺 key 回退 en | 已定 |
+| D3 | 运行时/资源目录 | 运行时 `src/i18n/**`,资源 `src/locales/{en,zh-CN}/**` | 已定 |
+| D4 | 静态导出约束 | 不依赖服务端 locale 路由;不将 httpOnly cookie 作前端必需;切换主要在客户端 | 已定 |
+| D5 | 语言偏好优先级 | 用户选择 → 用户级 UI 设置(若支持) → cookie/localStorage → 浏览器语言 → en | 已定 |
+| D6 | 语言偏好存储 | cookie + localStorage 双层;SSR 首屏靠客户端收敛 | 已定 |
+| D7 | 首屏策略 | 从"初始化脚本/就绪门禁/接受短暂切换"候选中**必须选定 1 种并经 PoC 验证** | **待 PoC** |
+| D8 | 构建期 `
`/meta | v1 保持英文,不做多语言 SEO | 已定 |
+| D9 | 复数量词 | zh 不建形态复数分支,用计数插值 + 量词(`{{count}} 个`) | 已定 |
+| D10 | 整页跳转语言保持 | Login/SSO/MCP OAuth 回跳后需从 cookie/localStorage 恢复 | 待 PoC 验证 |
+| D11 | `common` namespace Owner | Wave1 由 A4 建骨架,G1 后移交 A5 | 已定 |
+| D12 | 依赖文件写入者 | `package.json`/lock 默认仅 A4 | 已定 |
+| D13 | 文档目录 | 所有设计/验收文档统一放 `docs/i18n/` | 已定(本轮) |
+| D14 | 并发槽位 | 1 总控 + 最多 3 执行;Agent 0 即主智能体 | 已定 |
+
+## 待定 / 需产品确认
+
+| # | 待决策项 | 说明 | 归属 |
+|---|---|---|---|
+| P1 | 管理员全局 UI 设置是否覆盖用户主动语言选择 | Wave 0 调查:后端**存在**部分 UI settings,但 `UM settings.language` 等价字段**不在** `ALLOWED_UI_SETTINGS_FIELDS` 白名单,即**无用户级 language 设置**。故 v1 语言偏好优先级实际为:用户选择 → cookie/localStorage → 浏览器语言 → en。 | A1 已调查并写入 ADR-07(Accepted) |
+| P2 | `UI settings.language` 是否存在且进 v1 | **不存在**(只读调查确认),v1 不依赖后端 language 字段。 | A1 已结论 |
+| P3 | **E2E(Playwright)基建缺口** | Wave 0 核实:dashboard 仓库**当前无 Playwright 基建**(无 `tests/e2e/ui/`、无 `playwright.config.*`、无 `@playwright/test`)。方案 §10 的多项 E2E(首屏/刷新/整页回跳)依赖该层级。**已定:选 a —— Wave 1 补齐 E2E 基建(引入 Playwright)**;会触及 `package.json`,按 §6.1 规则 10 由 A0 指定**唯一写入者(默认 Agent 4)**。 | A0 决策 **已定=选项a** |
+| P4 | `@playwright` 依赖写入者 | 已随 P3=a 确定:Wave 1 由 **Agent 4** 作为 `package.json` 唯一写入者引入 Playwright 依赖;A0 在任务单中书面授权。 | A0 决策 **已定=Agent 4** |
+| P5 | **语言偏好存储键名统一**(G0 Review 发现) | 设计文档间不一致:`I18N_ADR.md`/`I18N_TECH_DESIGN.md`/`POC_REPORT.md` 用 `dashboard.locale`;`LANGUAGE_SWITCHER_SPEC.md`/`LOCALE_NAVIGATION_BEHAVIOR.md` 用 `litellm.locale`。**已定:统一为 `litellm.locale`**(与现有候选实现历史一致、Agent 2 文档多数采用);A4 在 `src/i18n/localePreferences.ts` 以单一常量导出,A5/6 不直接操作存储。 | A0 决策 **已定=litellm.locale** |
diff --git a/docs/i18n/FILE_OWNERSHIP.md b/docs/i18n/FILE_OWNERSHIP.md
new file mode 100644
index 00000000000..3d06b6eb460
--- /dev/null
+++ b/docs/i18n/FILE_OWNERSHIP.md
@@ -0,0 +1,33 @@
+# LiteLLM Dashboard i18n — FILE_OWNERSHIP
+
+> 维护者:Agent 0。同一文件同一时刻只有一个 Owner。规则见 `I18N_MULTI_AGENT_PLAN.md` §6。
+
+## 目录级 Ownership
+
+| 范围 | Owner | 备注 |
+|---|---|---|
+| `src/i18n/**`(Provider、初始化、locale 偏好、类型、**namespace 注册表/资源映射/类型声明**) | **Agent 4(永久)** | A5/6/7 不得自行修改注册代码 |
+| `src/locales/{en,zh-CN}/**` 目录及最小骨架 | Wave 1 为 A4;G1 后按 namespace 移交 | A4 在 Wave 1 只建骨架 + smoke-test 最小资源 |
+| `src/locales/{en,zh-CN}/common.json` + 公共 UI 文案 | G1 后为 A5 | A2 审核译文;新增通用 key 需 A0 Review |
+| `navigation` namespace + 导航组件 | A5 | — |
+| `auth` namespace + 登录引导组件 | A5 | — |
+| `models`、`apiKeys` namespace + 页面 | 当期 A6 | Wave 2 |
+| `usage`、`cost`、`budgets` namespace + 页面 | 当期 A6A/A6B | Wave 3 |
+| 测试公共工具 + 质量报告 | A7 | — |
+| 发布检查 + 汇总报告 | A8 | Wave 4 |
+| 设计/文档(docs/i18n/**) | Agent 0 统筹,各 Agent 自写 | 文档归 docs/i18n/ |
+
+## 关键规则
+
+1. 同一文件同一时间仅一个 Owner。
+2. 功能 Agent 只写自己的 namespace,不共同编辑一个大 JSON。
+3. `src/components/ui/**` 原则上无业务文案,由调用方传入文本。
+4. `src/utils/**` 不设全目录 Owner,按文件划分。
+5. `package.json`/`package-lock.json`:默认只允许 **Agent 4** 在平台 worktree 修改;确需改依赖由 A0 指定唯一临时 Owner。
+6. 新增业务 namespace:功能 Agent 在任务单填注册需求,由 A0 指派 A4 统一注册,或 A0 书面授权。
+
+## 移交记录
+
+| 时间 | 资源 | 由 → 到 | 确认 |
+|---|---|---|---|
+| (待 G1) | `src/locales/{en,zh-CN}/common|navigation|auth*` | Agent 4 → Agent 5 | A0 |
diff --git a/docs/i18n/GLOSSARY_EN_ZH.md b/docs/i18n/GLOSSARY_EN_ZH.md
new file mode 100644
index 00000000000..1cb081210b1
--- /dev/null
+++ b/docs/i18n/GLOSSARY_EN_ZH.md
@@ -0,0 +1,154 @@
+# LiteLLM Dashboard 中英文术语表(Glossary)
+
+> 维护者:Agent 2(localization-designer)
+> 状态:设计稿,待 G0 评审;Agent 2 负责复核与更新
+> 约定:本术语表是**唯一权威词条来源**。所有 v1 相关译文必须与本表一致;出现同义词漂移即视为缺陷。`不可译` = 作为专名/数据保留英文,不进入翻译资源或不做翻译。
+
+---
+
+## 1. 产品核心术语(v1 高频)
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| LiteLLM | LiteLLM | 品牌名,不译 |
+| Virtual Key | 虚拟密钥 | 产品专名;左导航"Virtual Keys"→"虚拟密钥",页内统一 |
+| API Key | API 密钥 | 与 Virtual Key 区分;两者都不译 API 缩写 |
+| Model | 模型 | — |
+| Model ID | 模型 ID | "ID"不译 |
+| Model Name | 模型名称 | — |
+| Model Provider | 模型提供商 | 或"模型供应商",全站统一为"提供商" |
+| Deployment | 部署 | 复数场景用计数+量词,如"2 个部署" |
+| Endpoint | 端点 | "Models + Endpoints"→"模型与端点" |
+| Router | 网关 | 指 LiteLLM Router 产品语义;"Router Settings"→"网关设置" |
+| Proxy | 代理 | LiteLLM 代理/网关环境;"Proxy Base URL"→"代理基础 URL" |
+| Budget | 预算 | — |
+| Budget Limit | 预算上限 | — |
+| Spend / Cost | 花费 / 成本 | `spend`(已花费)与 `cost`(成本/费用)字段语义,UI 文案统一:指"已花多少钱"用"花费",页面标题/条目用"成本"。避免与"支出/费用"混用 |
+| Cost Tracking | 成本跟踪 | 页面名 |
+| Cost Optimization | 成本优化 | 页面名(含 Beta 徽标) |
+| Usage | 用量 | 页面名与数据语义;"可用量"在配额上下文另见 Rate Limit |
+| Rate Limit | 速率限制 | TPM/RPM 语义;避免与"阈值"混用 |
+| Team | 团队 | — |
+| Organization | 组织 | — |
+| User | 用户 | — |
+| Internal User | 内部用户 | "Internal Users"→"内部用户" |
+| Logs | 日志 | — |
+| Projects | 项目 | 项目(Beta 徽标) |
+| Onboarding | 引导 | 首次引导流程;"Onboarding"页面/步骤用"引导" |
+| Connect | 连接 | Connect 页面 |
+| Guardrails | Guardrails | 产品专有功能名,保留英文原名(含"Guardrails Monitor"→"Guardrails 监控"外部仍保留原名) |
+| Policies | 策略 | 通用"策略";Guardrails/Policies 作为功能模块见 `V1_TRANSLATION_SCOPE.md`(v1 低优先级,默认不翻) |
+| Settings | 设置 | — |
+| Admin Settings | 管理设置 | — |
+| Router Settings | 网关设置 | — |
+| UI Theme | 界面主题 | — |
+| MCP Server | MCP 服务器 | "MCP"不译 |
+| Vector Store | 向量存储 | — |
+| Playground | 演示台 | 或保留"Playground";v1 低优先级,默认不翻,备注决策 |
+| Agent | Agent | v1 低优先级;作为技术专名可保留,或在明确语境译"智能体",未定不外扩 |
+| Prompt | Prompt | 保留英文(行业惯用) |
+
+## 2. 导航与页面结构词
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| AI Gateway | AI 网关 | — |
+| Observability | 可观测性 | — |
+| Access Control | 访问控制 | — |
+| Developer Tools | 开发工具 | — |
+| Search Tools | 搜索工具 | — |
+| Tool Policies | 工具策略 | — |
+| Tag Management | 标签管理 | — |
+| API Reference | API 参考 | — |
+| Response Cache | 响应缓存 | 或"缓存";与"Cache"页面语义对应 |
+| Learning Resources | 学习资料 | — |
+| Experimental | 实验功能 | — |
+| Old Usage | 旧版用量 | — |
+| Usage | 用量 | — |
+| Models + Endpoints | 模型与端点 | — |
+| Skills | Skill | v1 低优先级;保留英文 |
+| Workflow Runs | 工作流运行 | — |
+| Memory | 记忆 | — |
+
+## 3. 通用 UI 动作词
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| Save | 保存 | — |
+| Cancel | 取消 | — |
+| Delete | 删除 | 确认框/按钮全站统一 |
+| Remove | 移除 | 多用于从列表移除关联;避免与 Delete 混用 |
+| Create | 创建 | — |
+| Add | 添加 | — |
+| Edit | 编辑 | — |
+| Update | 更新 | — |
+| Enable / Disable | 启用 / 停用 | 与"开启/关闭"统一,全站用"启用/停用" |
+| Generate | 生成 | — |
+| Copy | 复制 | — |
+| Close | 关闭 | — |
+| Confirm | 确认 | — |
+| Back | 返回 | — |
+| Next | 下一步 | — |
+| Submit | 提交 | — |
+| Search | 搜索 | — |
+| Filter | 筛选 | — |
+| Export | 导出 | — |
+| Import | 导入 | — |
+| Refresh | 刷新 | — |
+| Save Changes | 保存更改 | — |
+| Sign in / Log in | 登录 | 页面/表单统一"登录" |
+| Sign out / Log out | 登出 | — |
+| Reset | 重置 | — |
+| Clear | 清空 | — |
+
+## 4. 表单与状态词
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| Name | 名称 | — |
+| Description | 描述 | — |
+| Required | 必填 | — |
+| Optional | 可选 | label 用"(可选)"后缀 |
+| Enabled | 已启用 | — |
+| Disabled | 已停用 | — |
+| Active / Inactive | 启用中 / 停用 | — |
+| Loading… | 加载中… | — |
+| Error | 错误 | — |
+| Success | 成功 | — |
+| None | 无 | — |
+| All | 全部 | 筛选器"All"→"全部" |
+| Selected | 已选择 | 计数插值:`已选择 {{count}} 个模型` |
+| Default | 默认 | — |
+| Custom | 自定义 | — |
+
+## 5. 时间 / 用量 / 数值词
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| requests | 请求 | 量词"个":`{{count}} 个请求` |
+| tokens | Token | 保留英文复数语义,"Token"不译 |
+| per minute | 每分钟 | TPM 语义,缩写 TPM/RPM 保留 |
+| month / this month | 本月 | 与"此月/当月"统一为"本月" |
+| last 24 hours | 过去 24 小时 | — |
+| total | 合计 | 表格总计列 |
+| average | 平均 | — |
+| limit | 上限/限制 | 上下文定:"Budget Limit"用"预算上限";"Rate Limit"用"速率限制" |
+
+## 6. 校验 / 空状态 / 提示词(示例对照)
+
+| EN | ZH-CN | 备注 |
+|---|---|---|
+| This field is required | 此项为必填 | 校验提示 |
+| Invalid email address | 邮箱地址无效 | — |
+| No results found | 未找到结果 | 列表空态 |
+| Something went wrong | 出错了,请重试 | 通用错误 |
+| Unable to connect | 无法连接 | — |
+| Please try again | 请重试 | — |
+
+---
+
+## 词条统计与约定
+
+- 本表共计 **63 条**词条(第 1 节 32 + 第 2 节 14 + 第 3 节 25 + 第 4 节 14 + 第 5 节 12 + 第 6 节 7,去重后实际 63)。
+- 所有新增译名必须先入表再由开发使用;Agent 2 在 Wave 4A 复核。
+- "不可译"列入表内的专名(LiteLLM、Guardrails、MCP、Token、Prompt、VM 等)作为约定记录,防止误翻。
diff --git a/docs/i18n/I18N_ADR.md b/docs/i18n/I18N_ADR.md
new file mode 100644
index 00000000000..7b5dcb570dc
--- /dev/null
+++ b/docs/i18n/I18N_ADR.md
@@ -0,0 +1,98 @@
+# LiteLLM Dashboard i18n — 架构决策记录(I18N_ADR)
+
+> 维护者:Agent 1(`i18n-architect`)· Wave 0
+> 状态:`Proposed`(待 Agent 0 Baseline Review 后置为 `Accepted`;涉 PoC 条目待验证后转 `Accepted`)
+> **G0 Review(Agent 0,2026-09-09):APPROVED。** ADR-02/06/07/08(Accepted)维持;ADR-01/03/04/05 保持 Proposed,待 Wave 1 由 A4/A7 回填 PoC 证据(PoC-1/2/3/4/5/7)后转 Accepted(G1 门禁)。
+> 编号约定:ADR-i18n-01 .. N。与 `DECISIONS.md`(D1–D14)及技术设计 `I18N_TECH_DESIGN.md` 相互引用。
+
+---
+
+## ADR-i18n-01:i18n 库选型
+
+- **状态**:Proposed(待 G0 通过)
+- **背景**:静态导出(`output:"export"`)、Next.js 16、React 19;需要运行时切换 `en`/`zh-CN`、缺 key 回退英文、类型安全的 key。
+- **决策**:采用 `i18next` + `react-i18next`(`i18next@^26.4.2` + `react-i18next@^17.0.13`)。
+- **理由**:`react-i18next` 纯客户端 Context/Hook,不依赖 Next.js SSR/服务端钩子,契合静态导出;peer 依赖 `react>=16.8.0` 满足 React 19.2.8;`i18next` 无 react peer。生态成熟、``/复数/插值完备。
+- **后果**:
+ - 积极:低成本接入、类型增强可行、中文量词策略(D9)可自然实现。
+ - 消极/风险:新增两份依赖,须由 A4 单一写入(D12);需 `knip`/lint 放行;类型资源的维护由 A4 承担。
+
+## ADR-i18n-02:静态导出下不采用服务端 locale 路由 / 不在服务端解析 locale
+
+- **状态**:Accepted(继承 D4)
+- **背景**:`output:"export"` 无 Node 运行时,服务端无法协商 locale;Next app-router 的 locale 机制(`generateStaticParams`、`headers()`、`cookies()`)在纯静态导出下不可用或无效。
+- **决策**:v1 **完全不依赖服务端 locale 路由**;语言初始化与切换全部在客户端 `I18nProvider` 完成;不将 httpOnly cookie 作为前端必需能力(普通 `SameSite=Lax` cookie 用于跨整页跳转恢复,见 ADR-i18n-05)。
+- **理由**:静态导出别无选择;客户端收敛成本低,且与「首帧英文合法(D2/D8)」矛盾小。
+- **后果**:无 SEO 多语言(D8 明确 v1 不做);首帧必然英文,`` 由客户端 post-mount 同步(ADR-i18n-04);无服务端注入 head 的能力,故不支持初始化脚本路径(ADR-i18n-04 理由)。
+
+## ADR-i18n-03:资源同步就绪门禁(禁止首帧暴露 key)
+
+- **状态**:Proposed(待 PoC 佐证)
+- **背景**:§3.1 要求:禁止首帧显示原始 key 后再替换为译文。
+- **决策**:采用**统一顶层就绪门禁**(`I18nProvider` 在目标语言就绪前不渲染业务子树);英文资源为类型真源,缺失 key 在类型/CI 层早失败;`` 只在就绪后渲染(§5)。
+- **理由**:就绪门禁能同时覆盖 `t()` 与 ``,避免每个组件自行 `if(!ready)` 的碎片化;结合 key=语义(非句子)的规范,从根源杜绝「key 即原文被暴露」。
+- **后果**:
+ - 积极:首帧要么是合法英文,要么是短暂的就绪态,无 key 闪烁。
+ - 消极:引入极短的渲染门禁;需保证 en 是同步就绪(不改后端),zh-CN 是注册的静态资源内切换(同步)。
+ - 风险:若某处绕过门禁直接渲染 `t()`,仍可能瞬时暴露 key → 用 CI 的「资源键集合一致」检查与代码评审兜底(TECH_RISKS R9)。
+
+## ADR-i18n-04:首屏策略选定「语言就绪门禁 + 挂载后同步 ``」(不用初始化脚本、不接受短暂切换)
+
+- **状态**:Proposed(G0/G1 门禁要求必须选定;PoC 验证)
+- **背景**:候选 3 种:初始化脚本 / 语言就绪门禁 / 接受短暂切换(D7)。
+- **决策**:选定**语言就绪门禁**,并在 `changeLanguage` 完成后同步 `document.documentElement.lang`。
+- **理由**:
+ - 初始化脚本在纯静态导出下无服务端 head 注入时机,且运行时加载 zh-CN JSON 只能在 client JS 就绪后完成,前置内联脚本收益极低。
+ - 接受短暂切换制造「英文按键闪烁」,违反 §3.1 精神与首屏体验。
+ - 门禁方案与「首帧英文本就合法」天然一致,切换收敛到偏好语言只需一次、且行为可测。
+- **后果**:`` 首帧 `en`,post-mount 更新为目标语言(`document.documentElement.lang`);`suppressHydrationWarning` 沿用现有做法(与 next-themes 相同);不写内联脚本、不强求 head 改写。需 PoC 量化门禁延迟可接受(POC_REPORT PoC-2/3)。
+
+## ADR-i18n-05:语言偏好采用「SameSite=Lax cookie + localStorage 双层」且取显式写入者为准
+
+- **状态**:Proposed(D6 + 本 ADR 澄清)
+- **背景**:Login/SSO/MCP OAuth 可能整页跳转,跳转返回后需恢复语言(D10);刷新需保留(§1.1)。
+- **决策**:偏好键 `dashboard.locale` 同时写 cookie(`SameSite=Lax; path=/;`,生产加 `Secure`)与 localStorage;读到任一存在即视为用户显式选择;无需偏好时首次回退浏览器语言→en。
+- **理由**:
+ - cookie:跨整页(同源)跳转天然携带,SSO 回跳同域可恢复(D10)。
+ - `SameSite=Lax`:允许顶层导航回跳带 cookie,又不阻断,优于 Strict 的极端。(若 SSO 走第三方域且需带 cookie,再评估 `None`,属后续风险 R8。)
+ - localStorage 双写:供无 cookie 上下文(如纯静态托管其他子路径/隐私模式兜底)与客户端快速读取。
+- **后果**:需保证 cookie/localStorage 两处不冲突(以显式写入顺序为准);无权删除两者时回退 en;不做后端 httpOnly 语言协商(D4)。
+
+## ADR-i18n-06:构建期 `` / metadata 在 v1 保持英文,不做多语言 SEO
+
+- **状态**:Accepted(继承 D8)
+- **背景**:静态导出下无服务端 metadata 动态化;`next/metadata` 多语言需通过路由/静态生成实现,成本高、非 UI 功能。
+- **决策**:`src/app/layout.tsx` 的 `metadata`(title/description)**保持不变**(英文),不为 SEO 做多语言输出;页面内可见标题/文案中文化由组件 `t()` 承担。
+- **理由**:v1 范围不含多语言 SEO(§1.2);避免在静态导出下为 `title` 引入额外复杂度。
+- **后果**:搜索引擎看到的 title 为英文;若未来需要,另立 ADR 引入 per-locale 静态 `title` 生成。
+
+## ADR-i18n-07:v1 不使用后端 `UI settings.language`(字段不存在)
+
+- **状态**:Accepted(P1/P2 调查结论)
+- **背景**:P1/P2 待 A1 调查 `UI settings.language` 是否存在/是否进 v1。
+- **决策**:经只读调查,后端 `UISettings`(`/get/ui_settings`)的持久化白名单 `ALLOWED_UI_SETTINGS_FIELDS` **不包含 `language`**。故 v1 **不采用**后端全局语言设置;管理员覆盖用户选择的产品决策在 v1 不生效。
+- **理由**:字段不存在于持久化白名单 → 即使前端写入也不会被保存/下发;强行使用无意义且会引入两段式异步。
+- **后果**:语言偏好仅为「用户显式 → cookie/localStorage → 浏览器 → en」;若未来后端新增 `language` 白名单字段,另立 ADR 补「管理员全局 vs 用户选择」覆盖语义(预留 L5 判定位)。
+
+## ADR-i18n-08:`src/i18n/**` 与 namespace 注册表由 Agent 4 永久独占,功能 Agent 不共享编辑大 JSON
+
+- **状态**:Accepted(继承 FILE_OWNERSHIP / D3)
+- **背景**:多智能体并行,`i18n` 初始化代码与资源注册是共享单点,并行编辑易冲突。
+- **决策**:`src/i18n/**`(Provider、初始化、locale 偏好、类型、注册表/资源映射)与 `src/locales/{en,zh-CN}/**` 目录骨架归 A4;功能 Agent 只写自己的 namespace json + 引用 key,新增 namespace 经 A0 派单由 A4 注册;`package.json`/lock 仅 A4 写。
+- **理由**:避免共享单点写冲突(§6/D12),保证注册表唯一真源。
+- **后果**:功能 Agent 接入需等待 A4 完成平台基线(G1),形成 Wave 依赖;须遵守 FILE_OWNERSHIP 规则 1/6。
+
+---
+
+## ADR 状态汇总(供 Agent 0 回填)
+
+| ADR | 主题 | 状态 | 依赖 PoC |
+|---|---|---|---|
+| 01 | i18n 库选型 | Proposed | PoC-1(兼容安装) |
+| 02 | 静态导出无服务端 locale | Accepted | 无 |
+| 03 | 资源就绪门禁(禁暴 key) | Proposed | PoC-3/4 |
+| 04 | 首屏策略=就绪门禁+`lang` 同步 | Proposed | PoC-2/3 |
+| 05 | cookie+localStorage 双层偏好 | Proposed | PoC-5/7 |
+| 06 | title/meta v1 英文 | Accepted | 无 |
+| 07 | v1 不用后端 language | Accepted | 无(只读调查) |
+| 08 | 注册表 A4 独占 | Accepted | 无 |
diff --git a/docs/i18n/I18N_MULTI_AGENT_PLAN.md b/docs/i18n/I18N_MULTI_AGENT_PLAN.md
new file mode 100644
index 00000000000..3233257e3ce
--- /dev/null
+++ b/docs/i18n/I18N_MULTI_AGENT_PLAN.md
@@ -0,0 +1,695 @@
+# LiteLLM Dashboard 中英文国际化多智能体实施方案
+
+## 文档版本信息
+
+| 项目 | 内容 |
+|---|---|
+| 文档版本 | v1.4 |
+| 修订日期 | 2026-09-09 |
+| 文档状态 | 评审通过,可执行 |
+| 适用项目 | LiteLLM Dashboard |
+| 实施范围 | Dashboard 前端 UI,英文 `en` 与简体中文 `zh-CN` |
+| 默认语言 | 英文 `en` |
+| 并行约束 | 最多 4 个智能体同时运行,包含总控智能体 |
+| 上一版本 | v1.3(评审通过,可执行) |
+
+### v1.4 变更摘要
+
+1. 明确 namespace 同时对应资源文件名和翻译 key 的冒号前缀。
+2. 固定 namespace 注册表、资源加载映射和类型声明归 Agent 4 管理。
+3. 固定 `package.json`、`package-lock.json` 的单一写入者,禁止并行 worktree 产生锁文件分叉。
+4. 明确下游 worktree 从 G1 集成基线创建或 rebase,并使用 `npm ci` 安装独立 `node_modules`。
+5. 增加简体中文计数与量词策略,禁止机械复制英文复数分支。
+6. 明确 `` 只能在资源同步就绪或统一 ready 门禁之后渲染。
+7. 将首屏、``、刷新恢复、英文回退和整页跳转验证固化为具名证据文件。
+8. 明确 Agent 7 在 Wave 1 获取平台候选提交进行验证时不得修改依赖文件。
+
+---
+
+## 1. 目标与范围
+
+### 1.1 目标
+
+在不改变现有路由和业务行为的前提下,为 LiteLLM Dashboard 增加:
+
+- 英文 `en` 与简体中文 `zh-CN`。
+- 页面内即时语言切换。
+- 刷新后保留语言偏好。
+- 中文缺失时回退英文。
+- 导航、登录、引导和高频业务页面优先中文化。
+- 可持续扩展的字典、测试与协作机制。
+
+### 1.2 v1 范围
+
+v1 包含:
+
+- i18n 基础设施。
+- 语言切换器和语言偏好保存。
+- Navbar、Leftnav、用户菜单等全局壳层。
+- Login、Onboarding、Connect、MCP OAuth。
+- Models and Endpoints、API Keys。
+- Usage、Cost Tracking、Budgets。
+- 对应的自动化测试、静态导出构建验证和中文布局检查。
+
+v1 不包含:
+
+- Python SDK、API 文档和代码示例的翻译。
+- 模型返回内容、日志原文和错误堆栈翻译。
+- 所有 1400 余个 TSX 文件的一次性全量改造。
+- FastAPI 后端错误响应的全面国际化。
+- 后端 httpOnly Cookie 语言协商。
+- 构建期 `` 与 metadata description 的多语言 SEO 输出;v1 保持英文。
+- Guardrails、Policies、Playground、Prompts 等低优先级模块的全量翻译。
+
+---
+
+## 2. 已确认的工程现状
+
+- 前端目录:`ui/litellm-dashboard`。
+- 技术栈:Next.js 16、React 19、TypeScript。
+- 使用 App Router。
+- `next.config.mjs` 配置 `output: "export"`,属于静态导出。
+- 项目原始基线没有成熟的 i18n 框架。
+- 根 Provider 链位于 `src/app/layout.tsx`。
+- 导航主要位于 `src/components/leftnav.tsx` 和 `src/components/navbar.tsx`。
+- 项目对单元、集成和 E2E 测试有明确分类要求。
+- 不允许无路径运行完整 Vitest 测试集,只运行改动相关测试。
+
+### 2.1 当前工作树状态
+
+截至 2026-09-08,除本方案文档 `I18N_MULTI_AGENT_PLAN.md` 外,代码工作树不存在已修改或未跟踪的 i18n 实现文件,代码基线干净。
+
+此前的候选实现从未进入 commit,现已清理。Wave 0 从干净代码基线开展技术设计和 PoC,不存在需要继承或修正的候选实现。
+
+---
+
+## 3. 技术方案原则
+
+### 3.1 候选技术路线
+
+- 候选库:`i18next` + `react-i18next`。
+- 默认语言:`en`。
+- 中文语言标识:`zh-CN`。
+- 英文资源为真源和最终回退资源。
+- 字典按业务 namespace 组织。
+- 国际化运行时代码统一放在 `src/i18n/**`。
+- 翻译资源统一放在 `src/locales/{en,zh-CN}/**`。
+- 普通字符串使用 `t(key)`;包含链接、强调或嵌套结构时使用 ``。
+- 使用 `` 前必须保证翻译资源同步就绪,或者由统一的 `ready` 门禁阻止业务组件提前渲染;禁止首帧显示原始 key 后再替换为译文。
+
+最终技术方案必须经过 Baseline Review 和 PoC 验证后由总控智能体批准。
+
+### 3.2 静态导出约束
+
+由于使用 `output: "export"`:
+
+- v1 不依赖 Next.js 服务端 locale 路由。
+- v1 不将 httpOnly Cookie 作为前端必需能力。
+- 语言初始化和切换主要在客户端完成。
+- `` 由客户端在语言确定后同步更新。
+- `suppressHydrationWarning` 只能抑制 hydration 警告,不能防止首屏语言闪烁。
+- 首屏闪烁必须通过 PoC 评估,可选策略包括初始化脚本、语言就绪门禁或接受短暂切换。
+
+### 3.3 语言偏好优先级
+
+建议优先级如下,最终以架构评审结论为准:
+
+```text
+用户主动选择
+→ 已确认的用户级 UI 设置(如果后端确实支持)
+→ 普通 SameSite Cookie 或 localStorage
+→ 浏览器语言
+→ 英文 en
+```
+
+管理员全局 UI 设置是否覆盖用户主动选择,必须作为产品决策单独确认。
+
+Login、SSO 和 OAuth 可能发生整页跳转。PoC 必须验证跳转返回后仍能从同源 Cookie 或 localStorage 恢复语言;`LOCALIZATION_SPEC.md` 必须明确期望行为,测试方案必须覆盖登录成功回跳、SSO 回跳和 MCP OAuth 回跳。
+
+### 3.4 key 命名规范
+
+```text
+:..[.]
+```
+
+示例:
+
+- `navigation:group.observability`
+- `navigation:item.teams`
+- `common:action.delete`
+- `auth:login.submit`
+- `models:form.name.label`
+- `usage:tabs.overview`
+
+规则:
+
+- namespace 同时决定资源文件名和 key 前缀:`` 对应 `src/locales//.json`,组件引用时使用 `:`;例如 `common.json` 对应 `common:action.delete`。
+- 使用语义 key,不使用完整英文句子作为 key。
+- 英文和中文字典必须保持相同 key 集合。
+- 插值使用 `{{variable}}`。
+- 英文根据 i18next/CLDR 规则处理 `one`、`other` 等复数形式。
+- 简体中文通常不创建形态复数分支,优先使用计数插值和明确量词,例如 `{{count}} 个请求`、`已选择 {{count}} 个模型`;禁止机械复制英文复数结构生成无意义的中文分支。
+- 计数测试至少覆盖 `count=0`、`count=1`、`count=2`。
+- 模型名、API 参数、日志原文、代码示例原则上不翻译。
+- 扫描工具只报告候选硬编码,不自动生成最终 key,不自动改写代码。
+
+---
+
+## 4. 多智能体组织结构
+
+逻辑角色可以超过 4 个,但同一时刻最多运行 4 个智能体,其中包含总控智能体。
+
+Agent 0 映射为当前主智能体,本身占用 1 个并发槽位;每个波次最多再启动 3 个执行智能体。不得把 Agent 0 视为槽位外角色后额外启动第 4 个执行智能体。
+
+```text
+Agent 0 总控、任务调度与 Review(全程)
+├── Agent 1 国际化技术设计
+├── Agent 2 产品、交互与本地化设计
+├── Agent 3 测试架构与验收设计
+├── Agent 4 国际化平台开发
+├── Agent 5 导航、登录与公共 UI 开发
+├── Agent 6 业务功能开发(按模块轮换)
+├── Agent 7 持续测试与质量工程
+└── Agent 8 集成与发布验收
+```
+
+---
+
+## 5. 智能体职责
+
+### 5.1 Agent 0:`i18n-lead-reviewer`
+
+角色:总体负责人、项目调度、技术负责人、Reviewer。
+
+职责:
+
+1. 维护总体计划、任务板、风险和决策记录。
+2. 划分文件及 namespace Ownership。
+3. 给每个智能体下发自包含任务单。
+4. Review 技术方案、本地化规范、测试方案和代码。
+5. 处理跨 Agent 接缝和冲突。
+6. 执行阶段门禁,决定通过、修改后通过或驳回。
+7. 控制合并顺序和发布范围。
+8. 汇总最终 Review 与发布结论。
+
+固定交付物:
+
+- `MASTER_PLAN.md`
+- `TASK_BOARD.md`
+- `FILE_OWNERSHIP.md`
+- `DECISIONS.md`
+- `REVIEW_REPORT.md`
+- `RELEASE_CHECKLIST.md`
+
+约束:Agent 0 不承担大规模业务开发,避免自己实现、自己 Review。
+
+### 5.2 Agent 1:`i18n-architect`
+
+角色:国际化技术设计智能体。
+
+职责:
+
+- 分析现有前端架构、Provider 模式,并调查 UI Settings `language` 字段的权限、作用域和数据语义。
+- 验证 `react-i18next` 与静态导出构建兼容性。
+- 设计 Provider、locale 初始化、偏好保存、英文回退和资源加载。
+- 设计 `` 同步和首屏策略。
+- 完成最小 PoC。
+- 输出 ADR 和开发接口契约。
+- 在平台开发完成后执行 ADR 符合性复核。
+
+交付物:
+
+- `I18N_TECH_DESIGN.md`
+- `I18N_ADR.md`
+- `POC_REPORT.md`:记录静态导出构建、首屏策略对比、普通 `t()` 与 `` 首次渲染、刷新恢复、英文回退、整页跳转恢复及浏览器验证证据。
+- 技术风险清单
+
+### 5.3 Agent 2:`localization-designer`
+
+角色:产品、交互与本地化设计智能体。
+
+职责:
+
+- 设计语言切换器位置、状态和交互。
+- 定义首次进入和后续访问时的语言规则。
+- 明确 Login、SSO、MCP OAuth 整页跳转返回后的语言保持规则。
+- 明确构建期 `` 和 metadata description 在 v1 保持英文,不由功能开发智能体被动扩展范围。
+- 编写中英文术语表。
+- 定义不可翻译内容。
+- 定义按钮、表单、错误提示和空状态的中文风格。
+- 检查中文长度对导航、表格和弹窗的影响。
+- 审核各功能域翻译质量。
+
+交付物:
+
+- `LOCALIZATION_SPEC.md`
+- `GLOSSARY_EN_ZH.md`
+- `LANGUAGE_SWITCHER_SPEC.md`
+- `V1_TRANSLATION_SCOPE.md`
+- `LOCALE_NAVIGATION_BEHAVIOR.md`:记录首次访问、手动切换、Login、SSO、MCP OAuth 回跳及存储不可用时的期望与降级行为。
+
+### 5.4 Agent 3:`qa-architect`
+
+角色:测试方案设计智能体。
+
+职责:
+
+- 制订单元、集成和 E2E 测试边界。
+- 制定中英文验收用例。
+- 设计 key 一致性和硬编码扫描规则。
+- 设计中文布局检查矩阵。
+- 明确自动化与人工验证范围。
+- 为平台和功能开发准备测试接口。
+
+交付物:
+
+- `I18N_TEST_PLAN.md`
+- `TEST_CASES.md`
+- 自动化测试任务列表
+- 回归测试矩阵
+
+### 5.5 Agent 4:`i18n-platform-developer`
+
+角色:国际化基础设施开发智能体。
+
+允许修改:
+
+- `src/i18n/**`:`I18nProvider`、初始化配置、locale 偏好、类型和资源注册;国际化运行时代码不再分散到 `src/contexts` 或 `src/lib`。
+- `src/locales/en/**`、`src/locales/zh-CN/**`:仅在 Wave 1 创建目录、namespace 骨架和平台 smoke-test 所需的最小资源;G1 通过后按 namespace 移交对应 Owner。
+- `src/app/layout.tsx`。
+- `package.json`、`package-lock.json`。
+- 平台层对应测试。
+
+职责:
+
+- 根据通过评审的 ADR,从干净代码基线实现国际化基础设施。
+- 实现语言初始化、切换、持久化和英文回退。
+- 实现 `` 同步。
+- 保证翻译资源同步就绪,或实现统一的 `ready` 渲染门禁,使普通 `t()` 与 `` 首帧行为一致。
+- 建立 namespace 和类型约束。
+- 完成基础设施测试和静态导出构建验证。
+- 提交 `PLATFORM_VALIDATION_REPORT.md`,记录实现相对 ADR 的符合性和实际验证证据。
+
+禁止批量修改业务页面,禁止修改生成文件 `src/lib/http/schema.d.ts`。
+
+### 5.6 Agent 5:`i18n-shell-auth-developer`
+
+角色:导航、登录和公共入口开发智能体。
+
+负责范围:
+
+- Navbar、Leftnav、用户菜单及其他全局壳层。
+- Login、Onboarding、Connect、MCP OAuth。
+- `src/locales/en/common.json`、`src/locales/zh-CN/common.json`。
+- `navigation`、`auth` 及上述页面对应的 namespace 和测试。
+
+职责:
+
+- 按本地化规范改造用户可见文案。
+- 同步处理 `aria-label`、`title`、placeholder 和校验提示。
+- 补充相关单元或集成测试。
+- 检查中文布局。
+
+### 5.7 Agent 6:`i18n-feature-developer`
+
+角色:业务功能开发智能体,按波次领取单一功能域。
+
+v1 功能批次:
+
+1. Models and Endpoints、API Keys。
+2. Usage、Cost Tracking、Budgets。
+
+v2+ 候选批次(不属于 v1 范围,不进入 v1 完成定义):
+
+3. Teams、Users、Organizations、Projects。
+4. Guardrails、Policies、Logs。
+5. Playground、Prompts、Agents、Skills。
+6. MCP Servers、Caching、Vector Stores 等其他页面。
+
+每次任务必须列出明确目录和文件清单,不允许使用“其余未归属目录”。
+
+### 5.8 Agent 7:`i18n-qa`
+
+角色:持续测试和质量工程智能体。
+
+职责:
+
+- 从平台开发阶段开始持续测试。
+- 实现 key 集合一致性和硬编码报告工具。
+- 运行改动相关的单元及集成测试。
+- 验证切换、刷新、回退、插值和 ``。
+- 验证中文布局和可访问性文案。
+- 提交缺陷并退回原代码 Owner。
+- 不直接大规模修改产品代码。
+
+### 5.9 Agent 8:`i18n-integration-release`
+
+角色:集成和发布验收智能体。
+
+职责:
+
+- 执行跨模块回归。
+- 汇总测试证据和遗留问题。
+- 验证 `lint`、格式和静态导出构建。
+- 准备发布与回滚清单。
+- 不绕过原 Owner 修改大范围业务代码。
+
+---
+
+## 6. 文件和字典 Ownership
+
+Agent 0 在任务开始前维护完整的 `FILE_OWNERSHIP.md`。
+
+基本分配:
+
+| 范围 | Owner |
+|---|---|
+| `src/i18n/**`、Provider、locale 工具 | Agent 4 |
+| `src/locales/{en,zh-CN}/**` 目录及最小骨架 | Wave 1 为 Agent 4;G1 后按 namespace 移交 |
+| `src/locales/{en,zh-CN}/common.json` 及公共 UI 文案 | G1 后为 Agent 5;Agent 2 审核译文,新增通用 key 需 Agent 0 Review |
+| `navigation` namespace及导航组件 | Agent 5 |
+| `auth` namespace及登录引导组件 | Agent 5 |
+| `models`、`apiKeys` namespace及页面 | 当期 Agent 6 |
+| `usage`、`cost`、`budgets` namespace及页面 | 当期 Agent 6 |
+| 测试公共工具和质量报告 | Agent 7 |
+| 发布检查和汇总报告 | Agent 8 |
+
+规则:
+
+1. 同一文件同一时间只有一个 Owner。
+2. 功能 Agent 只写自己的 namespace,不共同编辑一个大型 JSON。
+3. `src/components/ui/**` 原则上保持无业务文案,由调用方传入文本。
+4. `src/utils/**` 不设置单一全目录 Owner,按具体文件划分。
+5. 修改非本人文件前必须向 Agent 0 提交变更请求。
+6. QA 发现产品缺陷后退回原 Owner,不直接全局修复。
+7. Agent 0 决定公共文件修改人和合并顺序。
+8. Agent 4 在 Wave 1 只创建字典目录、namespace 注册和 smoke-test 所需最小资源,不批量填写业务文案。
+9. G1 通过后,Agent 0 在 `FILE_OWNERSHIP.md` 中记录 `common`、`navigation`、`auth` 等资源文件向 Agent 5 的正式移交。
+10. `src/i18n/**` 中的 namespace 注册表、资源加载映射和类型声明始终归 Agent 4;Agent 5/6 只维护获授权的 JSON 资源,不得自行修改注册代码。
+11. 新增业务 namespace 时,功能 Agent 在任务单中填写 namespace、资源文件和注册需求,由 Agent 0 在阶段门禁期指派 Agent 4 统一注册;特殊情况下必须由 Agent 0 书面授权临时 Owner。
+
+### 6.1 并行工作区与分支策略
+
+为了保证并行开发的改动可隔离、可 Review、可回退,开发智能体不得直接在同一个工作区并发修改代码。
+
+1. Agent 0 维护主集成工作区和集成分支。
+2. Agent 4、Agent 5、每个 Agent 6 任务实例和 Agent 7 使用独立 Git worktree 与独立任务分支。
+3. 分支命名建议:`i18n/--`,例如 `i18n/w2-agent6-models`。
+4. 每个任务只提交其 Ownership 范围内的文件,不夹带无关格式化或其他 Agent 的改动。
+5. Agent 完成任务后提交 commit hash、diff 摘要、测试证据和遗留问题。
+6. Agent 0 针对独立变更集执行 Review;`CHANGES_REQUESTED` 由原 Agent 在原 worktree 修复。
+7. Review 通过后,Agent 0 按“平台层 → 公共层 → 功能层 → 测试层”顺序合并。
+8. 合并出现冲突时,由 Agent 0 指定唯一 Owner 处理,禁止多个 Agent 同时修复同一冲突。
+9. 每次阶段门禁通过后记录集成基线 commit,作为下一波工作的共同起点。
+10. `package.json`、`package-lock.json` 默认只允许 Agent 4 在平台 worktree 修改;其他 Agent 不得执行会改写依赖声明或锁文件的操作。后续确需新增依赖时,由 Agent 0 指定唯一临时 Owner。
+11. Agent 4 的依赖与平台变更通过 G1 后必须先合入集成基线;Agent 5/6/7 的开发 worktree 从该基线创建,或在开始写代码前 rebase 到该基线。
+12. 下游 worktree 使用 `npm ci` 按已批准的锁文件安装依赖,不使用 `npm install` 生成各自的锁文件改动。
+13. npm 下载缓存可以共享,但每个 worktree 默认使用独立 `node_modules`;禁止多个 worktree 直接共享或并发修改同一个 `node_modules`。
+14. Agent 7 如需在 G1 前验证平台候选提交,应从 Agent 4 的明确 commit 创建临时验证 worktree,且不得修改 `package.json` 或 `package-lock.json`。
+
+### 6.2 v1 范围状态清单
+
+Agent 2 建立 `V1_SCOPE_MANIFEST.md`,Agent 0 维护状态,Agent 7 填写测试和 UI 检查证据。
+
+| 路由/组件 | Owner | 文案盘点 | EN | ZH-CN | 测试 | UI 检查 | Review |
+|---|---|---|---|---|---|---|---|
+| Navbar / Leftnav | Agent 5 | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| Login / Onboarding | Agent 5 | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| Connect / MCP OAuth | Agent 5 | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| Models and Endpoints | Agent 6 | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| API Keys | Agent 6 | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| Usage / Cost Tracking | Agent 6A | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+| Budgets | Agent 6B | 待完成 | 待完成 | 待完成 | 待执行 | 待执行 | 待审核 |
+
+G2、G3 必须以对应范围的清单项全部完成作为通过条件,不以“Agent 已报告完成”代替验收证据。
+
+---
+
+## 7. 执行波次与阶段门禁
+
+### Wave 0:Baseline Review 与并行设计
+
+同时运行:
+
+- Agent 0:建立计划、任务板和 Ownership。
+- Agent 1:核查干净代码基线,分析现有工程模式并完成技术设计与最小 PoC。
+- Agent 2:完成语言交互、术语和翻译规范。
+- Agent 3:完成测试策略和验收用例。
+
+门禁 G0:
+
+- 除本方案文档外,代码工作树无本地修改且不残留候选 i18n 实现。
+- 技术 ADR 已通过 Review。
+- `POC_REPORT.md` 与 `LOCALE_NAVIGATION_BEHAVIOR.md` 已提交并通过 Review。
+- `zh-CN`、语言优先级、偏好存储和首屏策略已决策。
+- 构建期 `` 和 metadata description 在 v1 保持英文的范围边界已记录。
+- Login、SSO、MCP OAuth 整页跳转后的语言保持规则已写入本地化与测试方案。
+- v1 页面和翻译范围已冻结。
+- 测试策略已通过 Review。
+
+### Wave 1:平台能力与测试基础
+
+同时运行:
+
+- Agent 0:Review 和协调。
+- Agent 4:根据通过评审的 ADR,从零搭建平台实现。
+- Agent 7:基于 Agent 4 的明确候选 commit 实现或执行平台测试和静态检查,不修改依赖声明及锁文件。
+- Agent 5:只读盘点导航、登录文案,在任务交付物中拟定 key;G1 前不创建或修改源码及字典文件。
+
+门禁 G1:
+
+- Provider、语言切换和偏好保存可用。
+- 英文回退有效。
+- `` 同步正确。
+- 首屏策略已从“初始化脚本、语言就绪门禁、接受短暂切换”等候选项中明确选定,写入 ADR,并附构建及浏览器验证证据。
+- Login、SSO、MCP OAuth 整页跳转后的语言恢复 PoC 已通过,或已形成经 Agent 0 批准的明确限制与降级方案。
+- 普通 `t()` 与 `` 均在资源就绪后渲染,首次渲染不暴露原始 key。
+- 定向测试和 `npm run build` 通过。
+- `PLATFORM_VALIDATION_REPORT.md` 已提交。
+- Agent 1 完成 ADR 符合性复核。
+- Agent 0 完成代码 Review。
+
+### Wave 2:第一批功能并行开发
+
+同时运行:
+
+- Agent 0:Review 和冲突处理。
+- Agent 5:导航、Login、Onboarding、Connect、MCP OAuth。
+- Agent 6:Models and Endpoints、API Keys。
+- Agent 7:持续测试已经提交的模块。
+
+门禁 G2:
+
+- 全局壳层和核心入口支持中英文。
+- Models、API Keys 主流程支持中英文。
+- `V1_SCOPE_MANIFEST.md` 中本波次对应项目全部完成。
+- 相关测试通过。
+- 中文布局不存在阻塞性问题。
+- Agent 0 Review 通过。
+
+### Wave 3:第二批功能并行开发
+
+同时运行:
+
+- Agent 0:Review 和任务调度。
+- Agent 6A:Usage、Cost Tracking。
+- Agent 6B:Budgets,以及 Budgets 范围内的测试和中文布局检查。
+- Agent 7:持续测试与缺陷回归。
+
+Agent 6A、6B 是同一角色的两个任务实例,必须拥有完全不相交的文件列表。
+
+门禁 G3:
+
+- v1 业务范围全部完成。
+- `V1_SCOPE_MANIFEST.md` 全部项目具有测试、UI 检查和 Review 证据。
+- 中英文 key 集一致。
+- 无 P0、P1 缺陷。
+- 定向测试、lint、格式和构建通过。
+
+### Wave 4A:集成与发布验收
+
+同时运行:
+
+- Agent 0:最终 Review 和发布决策。
+- Agent 2:术语与中文体验复核。
+- Agent 7:完整回归和质量报告。
+- Agent 8:发布检查、证据汇总和回滚清单。
+
+如果 Wave 4A 发现需要修改产品代码的缺陷,暂停 Agent 2、Agent 8,并进入 Wave 4B。
+
+### Wave 4B:定向缺陷修复(按需启动)
+
+同时运行:
+
+- Agent 0:判定缺陷 Owner、优先级并 Review 修复。
+- 原开发 Owner 1:修复自身范围内缺陷。
+- 原开发 Owner 2:修复另一个不重叠范围内缺陷;没有第二组缺陷时不启动。
+- Agent 7:定向回归并更新测试报告。
+
+修复通过后恢复 Wave 4A,由 Agent 2、Agent 8 完成最终体验和发布复核。
+
+缺陷进入 `TASK_BOARD.md` 后按以下顺序排队:P0 → P1 → 阻塞同一门禁的 P2 → 其他 P2。每轮最多启动两个文件范围不重叠的开发 Owner;第三组及后续缺陷保持排队,由 Agent 0 在上一组完成 Review 后调度下一组。
+
+门禁 G4:
+
+- v1 完成定义全部满足。
+- P0、P1 缺陷清零。
+- P2 缺陷具有明确处置结论。
+- 发布和回滚清单完成。
+- Agent 0 给出 `APPROVED` 结论。
+
+---
+
+## 8. 标准任务单
+
+Agent 0 下发的每个任务必须包含:
+
+```markdown
+## 目标
+任务需要实现的可验证结果。
+
+## 输入与依赖
+依赖的 ADR、规范、接口和前置提交。
+
+## 文件范围
+允许修改的精确目录和文件。
+
+## Namespace 变更
+是否新增 namespace、资源文件路径、是否需要修改注册表、注册代码 Owner。
+
+## 禁止范围
+明确禁止修改的文件和行为。
+
+## 交付物
+代码、字典、测试和报告。
+
+## 验收标准
+功能结果、测试文件和检查命令。
+
+## 风险与接缝
+可能与其他任务冲突的地方。
+
+## 回报格式
+worktree/分支、commit hash、改动文件、翻译 key、测试结果、遗留问题和待 Review 决策。
+```
+
+进入 Review 时必须提供:
+
+- worktree 路径和任务分支名称。
+- commit hash 或边界明确的 diff。
+- 修改文件列表。
+- 新增、修改和删除的翻译 key。
+- 实际执行的测试及工程检查命令。
+- 测试结果和失败信息。
+- 未执行的检查及原因。
+- 已知限制和跨 Agent 接缝。
+
+---
+
+## 9. Review 与缺陷回流机制
+
+Agent 0 对每个开发任务执行两轮 Review。
+
+### 9.1 设计符合性 Review
+
+- 是否符合 ADR 和语言优先级。
+- 是否遵守术语表和翻译范围。
+- 是否遵守 namespace 与文件 Ownership。
+- 是否误翻译模型名、API 参数、日志或代码示例。
+
+### 9.2 代码与质量 Review
+
+- 是否正确处理动态插值和复数。
+- 是否具有英文回退。
+- 是否覆盖可访问性文案。
+- 是否增加匹配风险的测试。
+- 是否改变原有业务行为。
+- 是否出现无意义的大范围格式化。
+- 是否具有可复现的测试证据。
+
+Review 结论:
+
+- `APPROVED`
+- `CHANGES_REQUESTED`
+- `BLOCKED`
+
+未经 `APPROVED` 的任务不得进入集成基线。
+
+QA 发现缺陷后的流程:
+
+```text
+QA 提交复现步骤和证据
+→ Agent 0 判定 Owner 与优先级
+→ 原开发 Owner 修复
+→ QA 定向回归
+→ Agent 0 Review 并关闭
+```
+
+---
+
+## 10. 测试与工程门禁
+
+测试重点:
+
+- 默认语言正确。
+- 切换语言即时生效。
+- 刷新后语言保持。
+- 缺失中文时回退英文。
+- 不显示原始翻译 key。
+- `` 与当前语言一致。
+- 中文按钮、菜单、表格和弹窗不溢出。
+- 切换语言不丢失表单状态。
+- Login、SSO、MCP OAuth 整页跳转并返回后语言偏好保持。
+- 动态数量、日期、数字和货币正确本地化。
+- API 数据、模型名、日志和代码示例不被误翻译。
+- 构建期 `` 与 metadata description 在 v1 保持英文,且没有被功能 Agent 意外改写。
+
+工程检查:
+
+```bash
+cd ui/litellm-dashboard
+npm run lint
+npm run format:check
+npm run build
+```
+
+补充规则:
+
+- Vitest 必须指定受影响的测试文件,不执行无路径的完整测试集。
+- 测试命令必须由 Agent 3 根据项目 Vitest 配置确认,并在任务回报中记录准确命令和结果。
+- 只有修改后端路由或响应模型时才运行 `npm run gen:api`。
+- 若清理了已有 ESLint suppression,使用项目规定的 `eslint . --prune-suppressions` 并检查差异。
+- 不假设或新增未经项目确认的 `eslint-budgets.json`。
+
+---
+
+## 11. v1 完成定义
+
+v1 只有同时满足以下条件才算完成:
+
+1. 支持 `en` 与 `zh-CN`。
+2. 语言切换即时生效,刷新后偏好保留。
+3. 导航、Login、Onboarding、Connect、MCP OAuth、Models、API Keys、Usage、Cost Tracking 和 Budgets 完成中文化。
+4. 中文缺失时回退英文,不直接显示翻译 key。
+5. 中文界面无严重截断、重叠和遮挡。
+6. 切换语言不清空表单或触发异常请求。
+7. Login、SSO、MCP OAuth 整页跳转并返回后语言偏好保持,或存在经批准且已记录的限制与降级方案。
+8. 构建期 `` 与 metadata description 保持英文,不在 v1 中产生半完成的多语言 SEO 行为。
+9. 模型名、API 字段、日志和代码示例未被错误翻译。
+10. 改动相关的单元及集成测试通过。
+11. `lint`、`format:check` 和静态导出构建通过。
+12. Agent 7 提交测试报告。
+13. Agent 2 完成术语与中文体验复核。
+14. Agent 0 完成最终 Review 并给出 `APPROVED`。
+15. `V1_SCOPE_MANIFEST.md` 全部项目状态为完成,并附有测试、UI 检查和 Review 证据。
+
+---
+
+## 12. 下一步
+
+1. 启动 Wave 0,由 Agent 0 建立 `MASTER_PLAN.md`、`TASK_BOARD.md`、`FILE_OWNERSHIP.md` 和 `DECISIONS.md`。
+2. Agent 1 从干净代码基线完成技术设计、PoC 与 ADR,并验证静态导出构建。
+3. Agent 2、Agent 3 并行完成本地化规范、范围清单和测试方案。
+4. Agent 0 Review Wave 0 全部交付物并执行 G0 门禁。
+5. G0 通过后,为 Agent 4、Agent 5、Agent 7 创建独立任务 worktree 和分支,启动 Wave 1。
+6. 后续严格按照“1 个总控 + 3 个执行智能体”的并发限制滚动执行。
diff --git a/docs/i18n/I18N_TECH_DESIGN.md b/docs/i18n/I18N_TECH_DESIGN.md
new file mode 100644
index 00000000000..901c15210db
--- /dev/null
+++ b/docs/i18n/I18N_TECH_DESIGN.md
@@ -0,0 +1,288 @@
+# LiteLLM Dashboard i18n — 技术方案设计(I18N_TECH_DESIGN)
+
+> 文档角色:Agent 1(`i18n-architect`)· Wave 0 交付 · 状态:**待 Baseline Review → 待 PoC 验证**
+> 基线:`I18N_MULTI_AGENT_PLAN.md` v1.4(§3、§5.2、D1–D14)
+> 范围:纯技术设计;本文档 **不修改任何产品代码**,所有文件路径均为设计目标而非已落地实现。
+
+---
+
+## 0. 阅读指引
+
+| 章节 | 内容 | 对应门禁/决策 |
+|---|---|---|
+| §1 | 技术选型兼容性结论(静态导出 + i18next + React 19) | D1、D4 |
+| §2 | Provider 层级 + `src/i18n/**` 模块划分 | D3 |
+| §3 | locale 初始化 与《语言偏好优先级》实现映射 | D5、D6 |
+| §4 | `` 同步 + **首屏策略(选定 1 种)** | D7、G0/G1 门禁 |
+| §5 | 普通 `t()` 与 `` 的资源就绪门禁 | §3.1、G1 |
+| §6 | `src/locales/{en,zh-CN}/**` 组织 与 namespace 注册 | D3、§3.3/3.4 |
+| §7 | 后端 `UI settings.language` 调查结论(P1/P2) | P1、P2 |
+| §8 | 与既有 Provider/路由组 layout 的接缝 | — |
+
+---
+
+## 1. 技术选型兼容性结论
+
+### 1.1 结论
+
+**`i18next` + `react-i18next` 与 `output: "export"`(静态导出)+ Next.js 16 + React 19 完全兼容,可作为 v1 方案。** 理由如下:
+
+1. `react-i18next` 的核心机制是**纯客户端**的 React Context + Hook(`useTranslation`),不依赖 Next.js 的任何服务端渲染钩子(`headers()`、`cookies()`、middleware、app-router locale 约定)。它既不需要 SSR 数据注入,也不要求在 node 侧执行。
+2. 在 `output: "export"` 下没有 Node 运行时,因此本方案**从不尝试在服务端解析 locale**(不依赖服务端 locale 路由 / httpOnly cookie 协商,见 D4)。locale 初始化完全在客户端 `I18nProvider`(`use client`)的挂载期完成。
+3. 静态 HTML 首帧默认按英文渲染(D8:构建期 title/meta 保持英文)。`` 由客户端在挂载后同步(§4),`suppressHydrationWarning` 仅抑制该属性的 hydration 警告(与 next-themes 现有做法一致,见 `src/app/layout.tsx`)。
+
+### 1.2 已验证版本依据(本机只读核查,2026-09-09)
+
+| 项 | 值 | 依据 |
+|---|---|---|
+| 项目 React | `19.2.8` | `ui/litellm-dashboard/package.json` |
+| 项目 Next | `16.2.11` | 同上 |
+| 项目 TS | `5.9.3` | 同上 |
+| `react-i18next` 最新 | `17.0.13`(2026-09-01 发布) | `npm view` |
+| `react-i18next` peerDeps | `react: >= 16.8.0`, `i18next: >= 26.2.0`, `typescript: ^5\|\|^6\|\|^7` | `npm view react-i18next peerDependencies` |
+| `i18next` 最新 | `26.4.2` | `npm view i18next version` |
+| `i18next` peerDeps | 无 react peer(仅 `typescript`) | `npm view i18next@latest peerDependencies` |
+
+**兼容性判定**:React 19.2.8 ≥ 16.8.0,故 `react-i18next@17` 与 `i18next@26` 满足 peer 约束。**建议锁定范围**:`react-i18next@^17.0.13` + `i18next@^26.4.2`(Wave 1 由 Agent 4 写入,遵循 D12 单一写入者)。不采用旧版 15/16 行,避免为规避问题而引入历史缺陷。
+
+> 说明:以上为**只读** `npm view`(不安装、不改依赖)。实际安装验证由 Wave 1 Agent 4 承担(见 `POC_REPORT.md` PoC-1)。
+
+---
+
+## 2. Provider 层级与 `src/i18n/**` 模块划分
+
+### 2.1 Provider 放置层级
+
+`I18nProvider` 放**根 `src/app/layout.tsx`,作为最外层 Provider**(在既有 `ThemeProvider` 之外或与其并列的最上方)。理由:
+
+- 根 layout 渲染 ``,`I18nProvider` 在此可统一同步 `document.documentElement.lang`(§4)。
+- 所有路由组(`(dashboard)`、`chat`、`connect`、`login`、`onboarding` 等)都经由根 layout,各自无需重复挂 Provider。
+- `I18nProvider` 是 `use client` 组件;因 Next.js 中根 layout 本身是 server component,需用一个 `"use client"` 的子组件包装。页面内部不含服务端下发的动态 locale,故无需用全局 server/client provider 分支。
+
+设计目标示意(**非当前代码,禁止修改**):
+
+```tsx
+// src/app/layout.tsx(设计目标)
+
+
+ {/* 新增:最外层,use client 包装 */}
+
+
+
+ {children}
+
+
+
+
+
+
+
+```
+
+### 2.2 `src/i18n/**` 模块划分(Ownership:Agent 4,永久,见 FILE_OWNERSHIP)
+
+```
+src/i18n/
+├── index.ts # 公开出口:导出 I18nProvider 与 getI18n/useI18n 便捷 API
+├── I18nProvider.tsx # "use client" Provider:初始化实例 + 语言就绪门禁 + 同步
+├── i18n.ts # createI18n(): 构建/复用 i18next 单例(resources、fallbackLng、supportedLngs)
+├── localePreferences.ts# 读/写语言偏好(cookie + localStorage 双层 + 浏览器语言嗅探)——纯函数,可单测
+├── detectLocale.ts # 语言解析/规范化('zh'→'zh-CN'、大小写、支持列表校验)
+├── types.d.ts # 全局声明增强:模块扩展 'i18next' 的 CustomTypeOptions(资源键类型安全)
+└── resources/registry.ts # === namespace 注册表 + 资源加载映射(唯一真源)=== 见 §6.2
+```
+
+职责边界:
+
+- `i18n.ts` 持有 i18next **单例**的生命周期(`initReactI18next`、`init`)。为保证 SSR 静态构建与 HMR 稳定,导出一个惰性 `getI18n()` 而非模块顶层 `init`(避免重复初始化)。
+- `localePreferences.ts` 不依赖 React,纯逻辑(读 cookie/localStorage/navigator),供单测覆盖 D5 优先级。
+- `resources/registry.ts` 是**唯一的 namespace 注册表 + 资源加载映射**:声明「locale ↔ namespace ↔ json 路径」,并导出给 `i18n.ts` 构造 resources。功能 Agent(A5/A6)**只往 json 加 key,不改此注册表**(FILE_OWNERSHIP 关键规则 1/6)。
+- `types.d.ts` 用 `CustomTypeOptions`(`defaultNS`、`resources`)让 `t()` 的 key 具备类型约束;英文资源为类型真源(D2:en 为真源)。
+
+---
+
+## 3. locale 初始化 与《语言偏好优先级》实现映射
+
+### 3.1 优先级实现映射(D5 → 代码)
+
+规范化后的优先级链(`detectLocale.ts + localePreferences.ts`):
+
+```text
+用户主动选择(显式写入偏好存储)
+ → 用户级 UI 设置(后端 UI settings.language —— v1 不采用,见 §7)
+ → SameSite cookie / localStorage(双层)
+ → 浏览器语言(navigator.languages,经 supportedLngs 过滤)
+ → 英文 en(兜底)
+```
+
+实现要点:
+
+- **用户主动选择 vs 残留存储的区分**:用户在切换器显式选择语言时,`setLocale` 同时写 **cookie + localStorage** 并 `changeLanguage`。读取时把「cookie/localStorage 中存在显式写入的 locale」视为「用户主动选择」。为区分「显式选择」与「自动探测回写」,可用单独的 marker(如 cookie 值带 `explicit` 标记,或 localStorage 键与探测键分离)。**v1 建议**:统一用一个偏好键(如 `dashboard.locale`),只要该键存在即为用户选择;首次无键时才走浏览器语言。该判定需在 §3.2 明确,避免「用户从不手选」时被浏览器语言误判为主动选择。
+- **cookie 属性**:`SameSite=Lax`(非 Strict,避免 Okta/SSO 回跳丢失)、`path=/`、非 httpOnly(前端需读,D4 允许)。语言不敏感隐私,不设 Secure 亦可在 http 下工作;生产建议 `Secure`(见 TECH_RISKS R8)。
+- **无后端用户级设置**:P1/P2 结论为 v1 不使用 `UI settings.language`(§7),故优先级链简化为「显式选择 → cookie/localStorage → 浏览器语言 → en」。
+- **i18next 配置**:`supportedLngs: ['en','zh-CN']`、`fallbackLng: 'en'`、`nonExplicitSupportedLngs: false` + 在 `detectLocale` 中把 `navigator.language` 规范化为 `zh-CN`(`'zh'`/`'zh-Hans'`→`'zh-CN'`;其余→en)。load 路径由 registry 提供静态 resources,不使用 `loadPath` 网络加载(静态导出下目录外资源不可用)。
+
+### 3.2 关键判定汇总(供 PoC 与后续澄清)
+
+| # | 判定 | v1 默认 | 依据 |
+|---|---|---|---|
+| L1 | 偏好键唯一性 | 单一键 `dashboard.locale`,存在即视为显式选择 | §3.1 |
+| L2 | 浏览器语言含义 | 仅首次(无偏好键)时使用 | §3.1 |
+| L3 | cookie 属性 | `SameSite=Lax; path=/;`(生产加 `Secure`) | §3.1 / R8 |
+| L4 | 根 layout 的 `lang` 静态默认 | `en`(与静态 HTML 一致) | §4 |
+| L5 | 管理员全局覆盖用户选择 | v1 不实现(无该字段) | §7 / D8 |
+
+---
+
+## 4. `` 同步 与 首屏策略(G0/G1 门禁,必须选定)
+
+### 4.1 首屏策略:**选定「语言就绪门禁 + 挂载后同步 ``」**,不采用初始化脚本、不接受短暂切换。
+
+从候选「初始化脚本 / 语言就绪门禁 / 接受短暂切换」中,**选定「语言就绪门禁」(并且不在 `` 内注入内联脚本)**。理由:
+
+- **初始化脚本(在静态导出下基本无效)**:该类脚本需在 next 的 `