# 线程协作规范

## 目标

- 用于多线程并行推进国际化翻译时共享上下文
- 避免多个线程翻译同一页面、重复新增同一批 key、或互相覆盖进度
- 作为 `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 的协作补充

## 文档定位

- 本文件只负责协作规则、认领顺序、线程状态、交接写法与经验沉淀
- 主要路由的完整父子级结构、路由别名、路径、入口文件与优先检查顺序，统一看 `docs/i18n/主要路由.md`
- 阶段成果、构建验证、时间线进展，统一看 `docs/i18n/翻译进度.md`
- 文件级待办、进行中、已完成与认领清单，统一看 `docs/i18n/翻译清单.md`
- 新线程起手提示与首条消息模板，统一看 `docs/i18n/线程模板.md`
- 除本文件外，其他文档尽量不重复维护完整协作规则，避免规则更新时多处不一致

## 适用范围

- 线程一、线程二、线程三等并行翻译线程
- 页面翻译、组件翻译、语言文件补充、展示适配修正、文档同步更新

## 协作原则

- 每个线程开始工作前，先读取以下 3 个文件：
  - `docs/i18n/线程协作.md`
  - `docs/i18n/翻译进度.md`
  - `docs/i18n/翻译清单.md`
- 自 2026-04-17 起，领取新任务前还必须额外读取：
  - `docs/i18n/主要路由.md`
- 每次准备领取新任务前，都要重新读取一次以上 3 份协作文档 + `docs/i18n/主要路由.md`，先确认最新认领状态已经落盘，避免两个线程在 md 尚未更新时重复认领同一文件
- 所有线程统一领取优先级：
  - 已完成 `src/views` 页面私有组件复查任务
  - 首页 `Dashboard`
  - `docs/i18n/主要路由.md` 中列出的主要路由页面
  - 其他路由页面
- 临时规则补充：
  - 在“已完成 `src/views` 页面私有组件复查任务”完成前，暂不继续领取新的未完成普通页面
  - 这里的“私有组件”仅指 `src/views/**` 目录下、随页面一同渲染或由页面局部引用的组件，不包含公共组件目录 `src/components/**`
- 当首页或 `主要路由.md` 中仍有未完成页面时，不应优先领取其他普通路由页面
- `主要路由.md` 中具体先领取哪一个页面，仍可按原来的灵活方式分配，只要遵守“不重复认领、不与其他线程冲突”
- 每次正式认领任务时，必须先把认领结果写入 md，再开始修改源码；不要先改代码、后补文档
- 写入认领记录前，要先检查 3 份协作文档 + `docs/i18n/主要路由.md` 是否已有其他线程认领同一任务；写入完成后，要立刻再读一次同样的文档集合，确认没有新的冲突后再开工
- 每个线程一次只认领明确的一组文件，避免交叉编辑
- 只翻译展示文本，不修改功能逻辑、接口参数、路由路径、权限码、后端依赖值
- 如果文本依赖接口返回且当前无法可靠推断，先跳过，并记录到 `docs/i18n/翻译清单.md`
- 每完成一轮修改后，必须同步更新：
  - `docs/i18n/翻译进度.md`
  - `docs/i18n/翻译清单.md`
- 自 2026-04-20 起，`src/views` 页面标记“已完成”时，还必须单独记录该页面私有组件状态：
  - `无私有组件`
  - `已随页面同步完成`
  - `历史已完成，已复核通过`
  - `历史已完成，但仍待复核`

## 新线程启动速记

- 在 PowerShell 中读取 `docs/i18n/*.md` 或源码文件时，优先使用 `Get-Content -Raw -Encoding UTF8 <path>`，否则终端可能出现乱码，但源码本身通常仍是 UTF-8。
- 不是只有“新线程启动”才需要读 md；每次准备领取新文件前，也要再读一遍 3 份协作文档 + `docs/i18n/主要路由.md`，确认其他线程的认领状态已经同步到文档
- 领取任务时，顺序固定为：先重读 3 份协作文档 + `docs/i18n/主要路由.md` -> 确认无人认领 -> 先写 md 认领 -> 再读一次同样的文档集合复查无冲突 -> 最后开始改代码
- 本项目当前没有 `npm run build` 脚本；需要做构建验证时，统一使用 `npm run build:prod`。
- 2026-04-17 当前环境补充：
  - 优先直接执行 `npm run build:prod`
  - 不要默认再用 `$env:NODE_OPTIONS='--openssl-legacy-provider'`
  - 线程二已验证：当前 Node 会直接报 `--openssl-legacy-provider is not allowed in NODE_OPTIONS`
  - 若直接执行 `npm run build:prod` 仍出现 `ERR_OSSL_EVP_UNSUPPORTED`，再退回使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod`
- 新线程开始前，除了读 3 份协作文档 + `docs/i18n/主要路由.md`，还要先读最新的：
  - `src/lang/messages/pages/en.js`
  - `src/lang/messages/pages/zh.js`
  这样可以避免多线程同时追加 key 时互相覆盖。
- 认领页面时，不要只看 `index.vue`。如果同目录还有页面私有子组件或抽屉组件，也要顺手扫描一遍是否仍有中文展示文案，例如：
  - `src/views/team/diamond-policy/props-form-edit.vue`
- 历史上已经标记“已完成”的 `src/views` 页面，也不能默认其私有组件已完成；如果当时 md 只登记了入口页，后续必须补做一次目录级复核，并把组件状态补回 `翻译进度.md`
- 如果是“模块入口页 + tab/component 动态切换子页”结构，不能只按当前先看到的 1-2 个子页面认领；必须先把同一模块下所有会被入口页渲染到界面的子页面一起盘清
- 如果页面里的私有子组件和现有模块语义一致，优先复用已有 key 体系，避免重复造轮子。本轮已验证可复用的 key 范围：
  - `pages.propsSourceGroupForm`
- 快速扫描单文件中文展示文本时，可使用：
  - `Select-String -Path <file> -Pattern '[\u4e00-\u9fa5]' -Encoding UTF8`
- 如果确认只是注释中的中文，可以不处理；只有模板可见文案、按钮、表格列名、弹窗、placeholder、校验提示等属于必翻范围。

## 文件分工

### `docs/i18n/翻译进度.md`

- 记录全局进展
- 记录已完成页面、已完成组件、已做过的公共适配
- 记录构建验证结果
- 记录当前下一步目标
- 自 2026-04-20 起，页面完成记录必须额外写明“页面私有组件状态”

### `docs/i18n/翻译清单.md`

- 记录待办、进行中、已完成
- 记录哪些页面已被认领，哪些页面仍待处理
- 记录哪些内容因接口返回数据暂时跳过

### `docs/i18n/主要路由.md`

- 记录主要路由父子级结构
- 记录路由中文名、英文名、路由别名、路径、入口文件与完成状态
- 作为首页之后的主要检查与验收清单

### `docs/i18n/线程模板.md`

- 记录新线程起手模板
- 记录读取文档顺序与首条消息模板
- 用于减少新线程重复漏读规则

### `docs/i18n/线程协作.md`

- 记录线程协作规则
- 记录线程认领关系
- 记录交接规范

## 模块级最优检查方案

适用场景：

- `src/views/**/index.vue` 内通过 `el-tabs`、`<component :is>`、`import Xxx from './xxx'`、抽屉、弹窗、局部组件等方式串起多个可见子页面

执行顺序：

1. 先读入口页源码，找出所有 `import` 的同级页面、私有子组件、抽屉组件、弹窗组件
2. 再对目标目录执行一次目录扫描：
   - `Get-ChildItem -Recurse -File <模块目录>`
3. 把“入口页 import 到的文件”和“目录里实际存在的文件”做交叉核对
4. 只要该文件会被入口页直接渲染到界面中，就要纳入同一轮检查范围
5. 如果确实因为范围过大不能同轮处理，也必须先写入 `docs/i18n/翻译清单.md`：
   - 哪个可见文件被暂时排除
   - 为什么排除
   - 下一个线程建议接手哪个文件
6. 开工前，至少对“本次认领模块目录”执行一次递归中文扫描，确认没有漏掉同目录可见文件
7. 完成后，必须再次对整个模块目录做递归中文扫描，而不是只扫本轮实际修改过的单个文件

最低检查清单：

- 是否读取了入口页
- 是否读取了模块目录文件列表
- 是否核对了入口页里所有可见 tab / 动态组件 / 局部组件
- 是否把故意跳过的可见文件写入 `翻译清单.md`
- 是否在完成后对整个模块目录重新扫描

本轮复盘案例：

- `src/views/game/egg/index.vue`
- 问题：上一轮只认领了
  - `egg-exchange-record/index.vue`
  - `egg-lottery-record/index.vue`
- 漏掉了：
  - `egg-lottery-cnf/index.vue`
- 原因：虽然入口页 tab 中实际会展示该页，但上一轮仅在认领记录中写了“暂未纳入本次范围，避免一次认领过大”，没有同步把它作为“可见但待处理文件”明确写入 `翻译清单.md`，也没有把“入口页 import 列表”和“目录实际文件列表”做完整交叉核对
- 后续要求：凡是模块入口页能直接切换到的子页面，不允许只凭主观缩小范围；若要拆轮次，必须先在 md 中显式登记遗漏文件

## 线程认领表

| 线程 | 当前状态 | 认领范围 | 说明 |
| --- | --- | --- | --- |
| 线程一 | 待分配 | 未认领 | 2026-04-20 已完成 `src/views/props/props-source-group/index.vue`、`src/views/sys/country-code/index.vue`、`src/views/user/app-manager/index.vue`、`src/views/sys/notice-message/index.vue` 与 `src/views/sys/start-page/index.vue` 国际化收口；当前无进行中任务 |
| 线程二 | 待分配 | 未认领 | 2026-04-17 已完成 `src/views/message/push/index.vue`、`src/views/message/push/new-push-form.vue`、`src/views/message/push/push-log.vue`、`src/views/message/push/push-task.vue` 的国际化收口、语言 key 补充、中文残留扫描、构建验证与 md 同步；`push-text-store.vue` 已登记为当前未纳入入口渲染链的排除项 |
| 线程三 | 待分配 | 未认领 | 2026-04-20 已完成 `src/views/tools/redis/index.vue` 与 `src/views/tools/upload/index.vue` 国际化收口、语言 key 补充、中文残留扫描、构建验证与 md 同步；当前无进行中任务，后续按临时规则优先处理“已完成 views 页面私有组件复查” |
| 线程四 | 待分配 | 未认领 | 避免和其他线程同时编辑同一语言模块 |

## 最新认领记录

- 2026-04-20
  - 全线程临时任务更新：
    - 暂停继续领取新的未完成普通页面
    - 先检查 `src/views` 下所有已标记完成页面的私有组件是否已完成国际化
    - 后续在 `docs/i18n/翻译进度.md` 中，页面完成记录必须额外带上“页面私有组件状态”
  - 当前优先复核的历史已完成页面目录包括：
    - `src/views/team/policy`
    - `src/views/team/diamond-policy`
    - `src/views/team/business-development`
    - `src/views/room/profile`
    - `src/views/activity/template-cnf`
    - `src/views/cnf/lottery`
  - 当前已发现但尚未补齐到已完成记录的私有组件示例：
    - `src/views/team/policy/props-form-edit.vue`
    - `src/views/team/diamond-policy/props-form-edit.vue`
    - `src/views/team/business-development/add-bd.vue`
    - `src/views/room/profile/user-drawer.vue`
    - `src/views/activity/template-cnf/form-edit.vue`
    - `src/views/cnf/lottery/select-prize.vue`
- 2026-04-20
  - 线程三已完成：`src/views/tools/upload/index.vue`
  - 完成范围包括：
    - 页面开关标签、拖拽上传提示、失败状态文案与文件大小超限提示国际化
    - 新增 `pages.uploadFile` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/tools/upload/index.vue` 执行中文残留扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前目录仅存在单一入口文件，无额外页面私有子组件
    - 直接执行 `npm run build:prod` 构建通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程一已完成：`src/views/sys/start-page/index.vue`
  - 完成范围包括：
    - `src/views/sys/start-page/index.vue`
    - `src/views/sys/start-page/form-edit.vue`
    - 筛选区、状态下拉、活动类型本地映射、表格列头、按钮、删除确认、弹窗标题、表单标签、placeholder、保存/取消按钮与校验提示国际化
    - 新增 `pages.startPage` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/sys/start-page/**/*.vue` 执行递归中文扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - `appStartPagePlanTypes` 的提交值与常量本身未改动，仅在页面展示层按值映射为国际化文案
    - 当前模块残余中文仅存在模板注释与“删除”代码注释中，不属于可见展示文案
    - 直接执行 `npm run build:prod` 构建通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程三已新认领：`src/views/tools/upload/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/tools/upload/index.vue`
    - 已读取 `src/views/tools/upload` 目录文件列表
    - 已确认当前目录仅存在单一入口文件，无额外私有子页
    - 已确认当前没有其他线程认领该页面
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面开关标签、上传提示、失败状态文案与超限提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程三已完成：`src/views/tools/redis/index.vue`
  - 完成范围包括：
    - 页面入口快捷标签、空态文案、打卡缓存查询弹窗标题/按钮/校验提示国际化
    - 新增 `pages.redisTools` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/tools/redis/index.vue` 执行中文残留扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前源码中未发现剩余中文可见文本
    - 直接执行 `npm run build:prod` 先触发 `ERR_OSSL_EVP_UNSUPPORTED`，随后使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程三已新认领：`src/views/tools/redis/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/tools/redis/index.vue`
    - 已读取 `src/views/tools/redis` 目录文件列表
    - 已确认当前目录仅存在单一入口文件，无额外私有子页
    - 已确认当前没有其他线程认领该页面
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面入口标签、下拉项、空态文案、输入弹窗标题/按钮/校验提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程一已新认领：`src/views/sys/start-page/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/sys/start-page/index.vue`
    - 已读取 `src/views/sys/start-page/form-edit.vue`
    - 已读取 `src/views/sys/start-page` 目录文件列表
    - 已对 `src/views/sys/start-page/**/*.vue` 执行递归中文扫描
    - 已按模块级最优检查方案核对入口页与目录实际文件
    - 已确认当前没有其他线程认领该模块
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - `src/views/sys/start-page/index.vue`
    - `src/views/sys/start-page/form-edit.vue`
    - 筛选区、表格列头、按钮、状态文案、弹窗标题、表单标签、placeholder、确认提示与校验提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程一已完成：`src/views/sys/notice-message/index.vue`
  - 完成范围包括：
    - 页面筛选区、表格列头、类型文案、按钮、发布/上架确认提示、成功提示、弹窗标题、表单标签、placeholder 与校验提示国际化
    - 新增 `pages.noticeMessage` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/sys/notice-message/**/*.vue` 执行递归中文扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前源码残余中文仅存在字段行尾注释与“删除”注释，不属于可见展示文案
    - 直接执行 `npm run build:prod` 先触发 `ERR_OSSL_EVP_UNSUPPORTED`，随后使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程一已新认领：`src/views/sys/notice-message/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/sys/notice-message/index.vue`
    - 已读取 `src/views/sys/notice-message` 目录文件列表
    - 已对 `src/views/sys/notice-message/**/*.vue` 执行递归中文扫描
    - 已确认当前目录仅存在单一入口文件，无额外私有子页
    - 已确认当前没有其他线程认领该页面
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面筛选区、表格列头、类型文案、按钮、发布/上架确认提示、成功提示、弹窗标题、表单标签、placeholder 与校验提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程一已完成：`src/views/user/app-manager/index.vue`
  - 完成范围包括：
    - `src/views/user/app-manager/index.vue`
    - `src/views/user/app-manager/administrator/index.vue`
    - `src/views/user/app-manager/administrator/auth.vue`
    - `src/views/user/app-manager/administrator-auth-resource/index.vue`
    - 入口页 tab 标题、管理员列表页、权限管理页与权限设置弹窗的静态展示文案国际化
    - 新增 `pages.appManager` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/user/app-manager/**/*.vue` 执行递归中文扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前模块残余中文仅存在注释“去除校验”和注释掉的“管理房间”代码块，不属于可见展示文案
    - 直接执行 `npm run build:prod` 先触发 `ERR_OSSL_EVP_UNSUPPORTED`，随后使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程一已新认领：`src/views/user/app-manager/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/user/app-manager/index.vue`
    - 已读取 `src/views/user/app-manager` 目录文件列表
    - 已读取 `src/views/user/app-manager/administrator/index.vue`
    - 已读取 `src/views/user/app-manager/administrator/auth.vue`
    - 已读取 `src/views/user/app-manager/administrator-auth-resource/index.vue`
    - 已对 `src/views/user/app-manager/**/*.vue` 执行递归中文扫描
    - 已按模块级最优检查方案核对入口页 tab 与目录实际文件
    - 已确认当前没有其他线程认领该模块
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - `src/views/user/app-manager/index.vue`
    - `src/views/user/app-manager/administrator/index.vue`
    - `src/views/user/app-manager/administrator/auth.vue`
    - `src/views/user/app-manager/administrator-auth-resource/index.vue`
    - tab 标题、筛选区、表格列头、状态文案、按钮、弹窗标题、表单标签、确认提示与校验提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程一已完成：`src/views/sys/country-code/index.vue`
  - 完成范围包括：
    - 页面筛选区 placeholder、表格列头、状态文案、弹窗标题、表单标签、按钮、上传按钮与校验提示国际化
    - 新增 `pages.countryCode` 页面级语言 key，并同步写入 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/sys/country-code/index.vue` 执行中文残留扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前源码残余中文仅存在注释“去除校验”，不属于可见展示文案
    - 使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程一已新认领：`src/views/sys/country-code/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/sys/country-code/index.vue`
    - 已确认该页面当前无同目录私有子页需要一并纳入
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面筛选区、表格列头、状态文案、弹窗标题、表单标签、按钮、上传按钮与校验提示国际化
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-20
  - 线程一已完成：`src/views/props/props-source-group/index.vue`
  - 完成范围包括：
    - 入口页筛选区 placeholder、搜索与添加按钮、表格列头、时间展示、编辑按钮与 loading 文案国际化
    - 复用 `common.search` 与既有 `pages.propsSourceGroupForm`，新增 `pages.propsSourceGroup`
    - 对 `src/views/props/props-source-group/**/*.vue` 执行递归中文扫描
    - 执行构建验证
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前 `src/views/props/props-source-group/index.vue` 源码残余中文仅存在注释与行尾注释中，不属于可见展示文案
    - `src/views/props/props-source-group/form-edit.vue` 仍保留接口返回名称类文本与注释类中文；其中接口返回名称待后续样例数据支持后再决定是否补翻
    - `src/views/props/props-source-group/select-propsr-popover.vue` 当前未被入口页或 `form-edit.vue` 引用，不纳入本轮完成口径
    - 本轮直接执行 `npm run build:prod` 先触发 `ERR_OSSL_EVP_UNSUPPORTED`，随后使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-20
  - 线程一已新认领：`src/views/props/props-source-group/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/props/props-source-group/index.vue`
    - 已读取 `src/views/props/props-source-group` 目录文件列表
    - 已对 `src/views/props/props-source-group/**/*.vue` 执行递归中文扫描
    - 已确认当前没有其他线程认领 `src/views/props/props-source-group/index.vue`
    - 已按模块级最优检查方案核对入口页 import 列表与目录实际文件列表
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - `src/views/props/props-source-group/index.vue` 内筛选区、按钮、表格列头、时间展示与操作文案国际化
    - 优先复用 `pages.propsSourceGroupForm`、通用语言项与既有 key；必要时再补充页面级语言 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
    - 未接入入口渲染链的样例文件
  - 排除说明：
    - `src/views/props/props-source-group/form-edit.vue` 已于前序轮次完成静态展示文案国际化
    - `src/views/props/props-source-group/select-propsr-popover.vue` 当前未被入口页或 `form-edit.vue` 引用，不纳入本轮完成口径；如后续接入渲染链，再单独认领

- 2026-04-17
  - 线程三已完成：首页 `Dashboard` 模块
  - 同步完成：
    - `src/views/dashboard/index.vue`
    - `src/views/dashboard/dashboard.vue`
    - `src/views/dashboard/dashboard-charts/index.vue`
    - `src/views/dashboard/quick-link/index.vue`
    - `src/views/dashboard/introduction/user-account-info/index.vue`
    - `src/views/dashboard/introduction/user-navigation/index.vue`
    - `src/views/dashboard/introduction/waiting-processing/index.vue`
    - `src/views/dashboard/components/active-index/index.vue`
    - `src/views/dashboard/components/daily-currency/index.vue`
    - `src/views/dashboard/components/daily-currency/line-graph-charts.vue`
    - `src/views/dashboard/components/daily-currency-gold/index.vue`
    - `src/views/dashboard/components/daily-currency-gold/line-graph-charts.vue`
    - `src/views/dashboard/components/daily-currency-gold-origin-top/index.vue`
    - `src/views/dashboard/components/daily-currency-gold-origin-top/bar-graph-charts.vue`
    - `src/views/dashboard/components/daily-purchase/index.vue`
    - `src/views/dashboard/components/daily-purchase/line-graph-charts-general.vue`
    - `src/views/dashboard/components/daily-purchase/line-graph-charts.vue`
    - `src/views/dashboard/components/daily-register-user/index.vue`
    - `src/views/dashboard/components/daily-register-user/line-graph-charts.vue`
    - `src/views/dashboard/components/monthly-purchase/index.vue`
    - `src/views/dashboard/components/monthly-purchase/line-graph-charts.vue`
    - `src/views/dashboard/components/user-daily-currency-gold-top/index.vue`
    - `src/views/dashboard/components/user-daily-currency-gold-top/bar-graph-charts.vue`
    - `src/views/dashboard/components/user-daily-currency-recharge-top/index.vue`
    - `src/views/dashboard/components/user-daily-currency-recharge-top/bar-graph-charts.vue`
    - `src/components/data/PropsSalesOverviewCharts/index.vue`
    - `src/components/data/PropsSalesOverviewCharts/dialog.vue`
    - `src/components/data/PropsSalesOverviewCharts/bar-graph-charts.vue`
  - 完成范围包括：
    - 首页入口欢迎区、tab 标题、账号区、系统时间、快捷入口、首页卡片、图表 tab 与首页直接依赖数据组件的可见静态文案国际化
    - 补充 `pages.dashboard` 到 `src/lang/messages/pages/en.js` 与 `src/lang/messages/pages/zh.js`
    - 对 `src/views/dashboard/**/*` 与 `src/components/data/PropsSalesOverviewCharts/**/*` 执行中文残留扫描
    - 执行 `npm run build:prod`
    - 同步更新 `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md`
  - 补充说明：
    - 本轮一并处理了首页模块内实际渲染的私有图表子组件，避免只认领入口页导致子组件遗漏
    - `npm run build:prod` 通过，仍保留项目既有 `22` 条 warning，未新增阻塞错误
  - 线程一已完成：`src/views/sys/region-config/index.vue`
  - 同步完成：
    - `src/views/sys/region-config/assist/index.vue`
    - `src/views/sys/region-config/region/index.vue`（本轮仅复用既有国际化并完成入口联动收口）
  - 完成范围包括：
    - 区域配置入口页 tab 标题国际化
    - 辅助配置页中的筛选区、表单标签、placeholder、按钮、表格列头、确认弹窗、拼接展示文案与校验提示国际化
    - 扩展 `src/lang/messages/pages/en.js` 对应 key
    - 扩展 `src/lang/messages/pages/zh.js` 对应 key
    - 对 `src/views/sys/region-config/index.vue` 与 `src/views/sys/region-config/assist/index.vue` 执行中文残留扫描
    - 执行 `npm run build:prod`
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 本轮新增并复用 `pages.regionConfig.tabs` 与 `pages.regionConfig.assist`
    - 当前源码残余中文仅存在于注释中，不属于可见展示文案
    - 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
- 2026-04-17
  - 线程二已完成：`src/views/message/push/index.vue`
  - 同步完成：
    - `src/views/message/push/new-push-form.vue`
    - `src/views/message/push/push-log.vue`
    - `src/views/message/push/push-task.vue`
  - 完成范围包括：
    - 入口页 tab 标题国际化
    - 新建 Push 表单中的标签、placeholder、选项、按钮、确认弹窗、成功提示与校验提示国际化
    - Push 日志页中的筛选区、时间范围、表格列头与状态筛选文案国际化
    - 复用并扩展 `pages.messagePushTask`，新增 `pages.messagePush` 与 `pages.messagePushLog`
    - 中文残留扫描
    - 执行 `npm run build:prod`
    - 同步更新 `docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`
  - 补充说明：
    - 当前模块残余中文仅存在于注释中，不属于可见展示文案
    - `src/views/message/push/push-text-store.vue` 仍未被 `index.vue` 入口 import 或切入 tab，本轮继续保留为排除项
    - 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
  - 线程一已完成：`src/views/user/freight/index.vue`
  - 同步完成：
    - `src/views/user/freight/form-edit.vue`
    - `src/views/user/freight/running-water.vue`
    - `src/views/user/freight/seller-info.vue`
    - `src/views/user/freight/freight-seller-running-water.vue`
  - 完成范围包括：
    - 筛选区、按钮、表格列头、弹窗标题、表单标签、placeholder、校验提示、确认弹窗与收支展示文案国际化
    - 补充 `src/lang/messages/pages/en.js` 对应 key
    - 补充 `src/lang/messages/pages/zh.js` 对应 key
    - 对 `src/views/user/freight/**/*.vue` 执行递归中文扫描
    - 执行 `npm run build:prod`
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 新增 `pages.userFreight`
    - 模块内残余中文仅保留在注释、后端依赖提交值或当前非可见数据结构中，未改动逻辑、接口参数、路由路径与权限码
    - 构建通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
  - 线程一已新认领：`src/views/sys/region-config/index.vue`
  - 同步纳入范围：
    - `src/views/sys/region-config/assist/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认首页 `Dashboard` 模块已被线程三认领，`message/push` 已被线程二认领
    - 已确认当前没有其他线程认领 `src/views/sys/region-config/index.vue`
    - 已核对 `src/views/sys/region-config/index.vue` 的 tab 入口与同目录可见子页关系
    - 已确认当前入口页实际渲染 `region/index.vue`、`assist/index.vue`，其中 `region/index.vue` 已完成，本轮仅处理剩余未完成可见子页与入口联动文案
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 区域配置入口页 tab 标题、辅助配置页中的筛选区、表单标签、placeholder、按钮、表格列头、确认弹窗与校验提示国际化
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-17
  - 线程二已新认领：`src/views/message/push/index.vue`
  - 同步纳入范围：
    - `src/views/message/push/new-push-form.vue`
    - `src/views/message/push/push-log.vue`
    - `src/views/message/push/push-task.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已读取 `src/views/message/push/index.vue` 与同目录文件列表，确认入口直接渲染 `new-push-form.vue`、`push-log.vue`、`push-task.vue`
    - 已确认当前没有其他线程认领 `src/views/message/push/index.vue` 模块
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面入口 tab 标题国际化
    - `new-push-form.vue` 内静态展示文本国际化
    - `push-log.vue` 内静态展示文本国际化
    - 复核 `push-task.vue` 已有国际化并补齐入口联动文案
    - `src/lang/messages/pages/en.js` 对应 key 复用或补充
    - `src/lang/messages/pages/zh.js` 对应 key 复用或补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - `src/views/message/push/push-text-store.vue`
  - 排除说明：
    - 当前 `src/views/message/push/index.vue` 只直接渲染 `new-push-form.vue`、`push-log.vue`、`push-task.vue`
    - `push-text-store.vue` 目前未被该入口 import 或切入 tab，可后续按独立页面/死代码复核后再单独认领
  - 线程三已新认领：首页 `Dashboard` 模块
  - 同步纳入范围：
    - `src/views/dashboard/index.vue`
    - `src/views/dashboard/dashboard.vue`
    - `src/views/dashboard/dashboard-charts/index.vue`
    - `src/views/dashboard/quick-link/index.vue`
    - `src/views/dashboard/introduction/index.vue`
    - `src/views/dashboard/introduction/user-account-info/index.vue`
    - `src/views/dashboard/introduction/user-navigation/index.vue`
    - `src/views/dashboard/introduction/waiting-processing/index.vue`
    - `src/views/dashboard/components/active-index/index.vue`
    - `src/views/dashboard/components/daily-currency/index.vue`
    - `src/views/dashboard/components/daily-currency-gold/index.vue`
    - `src/views/dashboard/components/daily-purchase/index.vue`
    - `src/views/dashboard/components/daily-register-user/index.vue`
    - `src/views/dashboard/components/monthly-purchase/index.vue`
    - `src/views/dashboard/components/user-daily-currency-gold-top/index.vue`
    - `src/views/dashboard/components/user-daily-currency-recharge-top/index.vue`
    - `src/components/data/PropsSalesOverviewCharts/index.vue`
    - `src/components/data/PropsSalesOverviewCharts/dialog.vue`
    - `src/components/data/PropsSalesOverviewCharts/bar-graph-charts.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `docs/i18n/主要路由.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领首页模块
    - 已读取 `src/views/dashboard/index.vue`、`src/views/dashboard/dashboard.vue` 与首页模块目录文件列表
    - 已按首页模块目录整包认领，避免 tab、入口页与图表组件拆开后遗漏
    - 已补充核对首页直接依赖组件 `src/components/data/PropsSalesOverviewCharts/*`
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 首页入口页、tab 标题、欢迎区、图表模块标题、筛选项、按钮、统计卡片、空态提示与说明文案国际化
    - 首页直接依赖的 `PropsSalesOverviewCharts` 组件内可见静态文案国际化
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 首页模块中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 已更新全线程统一领取优先级：
    - 首页 `Dashboard`
    - `docs/i18n/主要路由.md` 中的主要路由页面
    - 其他路由页面
  - 规则说明：
    - 该优先级适用于所有线程，不只线程三
    - `主要路由.md` 中具体先领哪一个页面，仍可按原有方式灵活分配
    - 只有当首页与 `主要路由.md` 中页面全部完成后，才进入其他路由页面
  - 线程三已补记完成：`src/components/data/EditUserDiamondRewardForm/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成钻石奖励弹窗标题、字段标签、placeholder、按钮与校验提示国际化
    - `userId`、`quantity`、`remarks` 提交字段与接口调用保持原样
    - 表单标签“钻石”复用 `pages.propsSourceGroupForm.resourceType.diamond`
    - 新增 `pages.editUserDiamondRewardForm`
    - 当前源码中未发现剩余中文展示文本
    - `npm run build:prod` 已通过，仍保留项目既有 `22` 条 warning，未新增阻塞错误
  - 线程二已完成：`src/components/data/EditUserGameCouponDeductionForm/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成扣除用户游戏券弹窗标题、表单标签、placeholder、按钮与校验提示国际化
    - 新增 `pages.editUserGameCouponDeductionForm`
    - 当前源码中未发现剩余中文展示文本
    - 2026-04-17 当前环境直接执行 `npm run build:prod` 已通过，仍为项目既有 `22` 条 warning，未新增阻塞错误
    - 线程二已验证 `$env:NODE_OPTIONS='--openssl-legacy-provider'` 在当前 Node 下会报 `--openssl-legacy-provider is not allowed in NODE_OPTIONS`，后续线程应优先直接执行构建命令
  - 线程一已新认领：`src/views/user/freight/index.vue`
  - 同步纳入范围：
    - `src/views/user/freight/form-edit.vue`
    - `src/views/user/freight/running-water.vue`
    - `src/views/user/freight/seller-info.vue`
    - `src/views/user/freight/freight-seller-running-water.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已核对 `src/views/user/freight/index.vue` 的入口页 import 与同目录可见子页
    - 已确认 `seller-info.vue` 继续渲染 `freight-seller-running-water.vue`
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 筛选区、按钮、表格列头、弹窗标题、表单标签、placeholder、校验提示与确认弹窗国际化
    - 补充 `src/lang/messages/pages/en.js` 对应 key
    - 补充 `src/lang/messages/pages/zh.js` 对应 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-16
  - 线程一已完成：`src/views/game/egg/egg-lottery-cnf/index.vue`
  - 补充复核：
    - 已对 `src/views/game/egg/**/*.vue` 执行递归中文扫描
    - 已确认 `src/views/game/egg/index.vue`、`src/views/game/egg/egg-exchange-record/index.vue`、`src/views/game/egg/egg-lottery-record/index.vue`、`src/views/game/egg/egg-lottery-cnf/index.vue` 当前无剩余中文可见文本
    - 已补充 `pages.eggLotteryCnf` 中英文字段
    - 已执行 `npm run build:prod`
    - 构建通过，仍为项目既有 warning，未新增阻塞错误
- 2026-04-16
  - 线程一已补领：`src/views/game/egg/egg-lottery-cnf/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按“模块级最优检查方案”复核 Egg 目录入口页与可见子页范围
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 配置页筛选区、按钮、表格列头、占位文案、下拉选项、弹窗提示、校验提示国际化
    - 补充 `src/lang/messages/pages/en.js` 对应 key
    - 补充 `src/lang/messages/pages/zh.js` 对应 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-16
  - 线程一已新认领：`src/views/game/egg/index.vue`
  - 同步纳入范围：
    - `src/views/game/egg/egg-exchange-record/index.vue`
    - `src/views/game/egg/egg-lottery-record/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已确认同目录下 `egg-lottery-cnf/index.vue` 暂未纳入本次范围，避免一次认领过大
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - Egg 模块页签标题静态展示文本翻译
    - 兑换记录页与抽奖记录页中的筛选区、按钮、表格列标题等静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
- 2026-04-15
  - 线程二已新认领：`src/components/data/EditUserGameCouponDeductionForm/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已新认领：`src/components/data/EditUserDiamondRewardForm/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已新认领：`src/views/game/lucky-box/fortune-config/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已按最新规则先更新 md，再开始下一轮源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 2026-04-16 线程一复核补充：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认 `src/views/game/lucky-box/fortune-config/` 目录当前仅存在 `index.vue`
    - 已确认 `index.vue` 中无剩余中文展示文本，`pages.luckyBoxFortuneConfig` 中英文字段已存在
    - 已使用 `$env:NODE_OPTIONS='--openssl-legacy-provider'; npm run build:prod` 完成构建验证
    - 构建通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
    - 已同步最终状态到 md，避免其他线程继续查找不存在的 `edit.vue`、`details.vue`
  - 线程二已完成：`src/components/data/AccountInput/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成账号输入组件中类型选择 placeholder、类型选项与平台选择 placeholder 的国际化
    - 新增 `pages.accountInput`
    - 当前源码中未发现剩余中文展示文本
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
    - 线程二本轮完成后暂停认领，等待下一次任务
  - 线程一已完成：`src/views/sys/region-config/region/index.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已完成：`src/components/data/UserInfo/AccountStatusLatestLog/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 新增 `pages.accountStatusLatestLog`
    - `item.approvalUserName`、`item.statusName` 与 `item.createTime` 属于动态数据，按原值展示
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程二已完成：`src/views/game/lottery-config/index.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 新增 `pages.gameLotteryConfig`
    - `lotteryGameTypes` 中 `EGG` 的展示名称继续复用 `pages.gameLotteryConfigForm.gameType.egg`
    - `showcaseTypes` 已改为复用 `pages.propsSourceGroupForm.word.onShelf/offShelf`
    - 当前源码残留中文仅在注释掉的“上/下架”筛选块中，不属于可见展示文案
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程二已新认领：`src/components/data/UserInfo/AccountStatusLatestLog/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已新认领：`src/components/data/InappPurchaseApple/index.vue`
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成核查：`src/components/data/InappPurchaseApple/index.vue`
  - 核查结论：
    - 当前组件已接入 `pages.inappPurchaseApple`
    - 源码中未发现剩余中文展示文本
    - 本轮无需重复修改源码，仅同步认领状态
  - 线程一按当时规则重新读取 3 个 md 后确认：
    - `src/components/data/InAppPurchaseDetails/index.vue` 已被线程二认领
    - 线程一不再认领该文件，避免冲突
  - 线程一已新认领：`src/components/data/InappPurchaseGoogle/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成：`src/components/data/InappPurchaseGoogle/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已新认领：`src/views/game/lucky-box/standard-config/gift-details.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成：`src/views/game/lucky-box/standard-config/gift-details.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - 礼物类型展示映射本地化处理
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 保持礼物类型实际值、接口参数与页面逻辑不变
    - `npm run build:prod` 通过，沿用项目原有 `22` 条 warning，未新增阻塞错误
  - 线程一已新认领：`src/views/game/lucky-box/standard-config/index.vue`
  - 同步纳入范围：
    - `src/views/game/lucky-box/standard-config/edit.vue`
    - `src/views/game/lucky-box/standard-config/probability.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与概率配置弹窗静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成：
    - `src/views/game/lucky-box/standard-config/index.vue`
    - `src/views/game/lucky-box/standard-config/edit.vue`
    - `src/views/game/lucky-box/standard-config/probability.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与概率配置弹窗静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 当前残留中文仅存在代码注释中，不属于可见展示文案
    - `npm run build:prod` 通过，沿用项目原有 `22` 条 warning，未新增阻塞错误
  - 线程一已新认领：`src/views/game/lucky-box/award-config/index.vue`
  - 同步纳入范围：
    - `src/views/game/lucky-box/award-config/edit.vue`
    - `src/views/game/lucky-box/award-config/details.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与奖励配置弹窗静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成：
    - `src/views/game/lucky-box/award-config/index.vue`
    - `src/views/game/lucky-box/award-config/edit.vue`
    - `src/views/game/lucky-box/award-config/details.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与奖励配置弹窗静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 当前残留中文仅存在代码注释中，不属于可见展示文案
    - `propsType` 等本地常量值采用“值不变、展示翻译”方式处理
    - `npm run build:prod` 通过，沿用项目原有 `22` 条 warning，未新增阻塞错误
  - 线程一已新认领：`src/views/game/lucky-box/bounty-config/index.vue`
  - 同步纳入范围：
    - `src/views/game/lucky-box/bounty-config/edit.vue`
    - `src/views/game/lucky-box/bounty-config/details.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已按最新规则先更新 md，再开始下一轮源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与道具配置弹窗静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程一已完成：
    - `src/views/game/lucky-box/bounty-config/index.vue`
    - `src/views/game/lucky-box/bounty-config/edit.vue`
    - `src/views/game/lucky-box/bounty-config/details.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有编辑弹窗与道具配置弹窗静态展示文本翻译
    - 礼物类型与道具类型本地映射国际化
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - `DAILY`、`WEEKLY`、`giftTab`、`propsType`、`propsId`、`targetQuantity`、`validDays` 等实际提交值与接口参数保持原样
    - `giftConfigTabs` 与 `propsTypes` 采用“值不变、展示翻译”的方式在页面层本地映射
    - 当前三份源码中已无剩余中文展示文本
    - `npm run build:prod` 通过，沿用项目原有 `22` 条 warning，未新增阻塞错误
  - 线程三已新认领：`src/components/data/RoomInfo/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/RoomInfo/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 文件内剩余中文来自注释掉的“装饰道具”代码块，不属于可见展示文案，本轮按协作规范保留
  - 线程三已新认领：`src/components/data/UserAuthForm/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/UserAuthForm/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成抽屉标题、卡片标题、手机号绑定操作、placeholder、校验提示、确认弹窗与成功提示国际化
  - 线程三已新认领：`src/components/data/UserInfo/BankCardDrawer/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成认领复查：`src/components/data/UserInfo/BankCardDrawer/index.vue`
  - 复查动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已确认认领信息已落盘，随后开始翻译与验证
  - 线程三已完成：`src/components/data/UserInfo/BankCardDrawer/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成抽屉标题、卡片标签、审核状态、使用状态、操作按钮、表单标签、placeholder、校验提示与确认弹窗国际化
    - `cardType`、银行卡类型枚举值与接口返回字段保持原样
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程三已新认领：`src/components/data/UserInfo/BaseInfo/AssociatedDeviceTimeline.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 优先复用 `pages.userBaseInfo.labels` 既有 key，必要时再补充语言项
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/UserInfo/BaseInfo/AssociatedDeviceTimeline.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - 复用 `pages.userBaseInfo.labels` 与 `pages.userBaseInfo.words.activeIp` 既有 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成语言、时区、IP、客户端、设备信息、Push 信息与注册时间等标签国际化
    - `item.latestDevice.*` 与 `item.userProfile.createTime` 等动态数据保持原样
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程三已新认领：`src/components/data/SearchRoomInput/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/SearchRoomInput/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成输入框 placeholder、类型选项、搜索弹窗文案与失败提示国际化
    - 新增 `pages.searchRoomInput`
    - 当前源码残留中文仅在注释中，不属于可见展示文案
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
    - 按当前要求，线程三本轮完成后暂停，等待下次认领
  - 线程三已新认领：`src/components/data/GiftHistoryDetailsDrawer/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 优先复用现有 `pages.userBaseInfo` 与通用语言项，必要时再补充页面级语言 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/GiftHistoryDetailsDrawer/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - 复用 `pages.userBaseInfo.labels.anchor` 与 `pages.userBaseInfo.words.yes/no`
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成抽屉标题、发送人/房间、礼物信息快照、接收用户标签、日志事件与单据 ID 按钮国际化
    - 新增 `pages.giftHistoryDetailsDrawer`
    - 当前源码残留中文仅在注释中，不属于可见展示文案
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程三已新认领：`src/components/data/EditUserForm/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 优先复用现有 `pages.userBaseInfo.labels`，必要时再补充页面级语言 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/EditUserForm/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - 复用 `pages.userBaseInfo.labels.age/country` 与 `pages.userBaseInfo.words.male/female`
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成抽屉标题、昵称/性别表单项、出生日期 placeholder、关闭/提交按钮与校验提示国际化
    - 性别选项采用按值映射翻译，未改动全局 `genders` 常量本身
    - 新增 `pages.editUserForm`
    - 当前源码中未发现剩余中文展示文本
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程三已新认领：`src/components/data/EditUserGoldCoinRewardForm/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 奖励类型仅做展示层本地映射翻译，不改动原常量值与提交内容
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程三已完成：`src/components/data/EditUserGoldCoinRewardForm/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - 奖励类型展示层本地映射国际化，未改动原常量值与提交内容
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成标题、表单标签、placeholder、按钮与校验提示国际化
    - `currencyRewardReasons` 相关提交值与备注拼接内容保持原样，仅对页面展示名称做本地映射翻译
    - 新增 `pages.editUserGoldCoinRewardForm`
    - 当前源码残留中文仅在模板注释中，不属于可见展示文案
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
    - 线程三本轮完成后切回待分配，暂不继续认领新任务
  - 线程二已认领并完成：`src/components/data/AccountHanle/index.vue`
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 特殊说明：
    - 默认“警告”描述文案会直接写入提交表单，属于提交内容，不纳入本轮静态展示翻译
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已认领并完成：`src/views/team/diamond-policy/index.vue`
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已新认领：`src/components/data/InAppPurchaseDetails/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已完成：`src/components/data/InAppPurchaseDetails/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充
    - `src/lang/messages/pages/zh.js` 对应 key 补充
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 已完成抽屉标题、信息分组标题、字段标签、状态映射、元数据表头与事件通知标题国际化
    - `createNickname`、`productDescriptor`、商品名称/内容/描述、原因、事件类型与通知数据属于接口返回内容，按原值展示
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程二已新认领：`src/views/game/lottery-config/form-edit.vue`
  - 同步纳入范围：
    - `src/views/game/lottery-config/select-propsr-popover.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领上述文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有组件静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充或复用现有 key
    - `src/lang/messages/pages/zh.js` 对应 key 补充或复用现有 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已完成：`src/views/game/lottery-config/form-edit.vue`
  - 同步完成：
    - `src/views/game/lottery-config/select-propsr-popover.vue`
  - 完成范围包括：
    - 页面内静态展示文本翻译
    - 同目录私有组件静态展示文本翻译
    - `src/lang/messages/pages/en.js` 对应 key 补充与现有 key 复用
    - `src/lang/messages/pages/zh.js` 对应 key 补充与现有 key 复用
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 新增 `pages.gameLotteryConfigForm`
    - 资源类型名称优先复用 `pages.propsSourceGroupForm.resourceType`
    - `lotteryGameTypes` 中 `EGG` 的展示名称在页面内本地映射翻译，未改动共享常量值
    - `specialIdTypes`、`pItem.name`、`badgeName` 等动态或接口返回内容保持原样
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
  - 线程二已新认领：`src/views/game/lottery-config/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 页面内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已新认领：`src/components/data/UserInfo/UserTableExhibit/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 优先复用 `pages.userBaseInfo.labels` 既有 key，必要时再补充语言项
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值
  - 线程二已完成：`src/components/data/UserInfo/UserTableExhibit/index.vue`
  - 完成范围包括：
    - 组件内静态展示文本翻译
    - 复用 `pages.userBaseInfo.labels.specialIdSuffix` 既有 key
    - 中文残留扫描
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 补充说明：
    - 特殊 ID 账号后缀改为复用现有国际化 key，未新增页面级语言项
    - `npm run build:prod` 通过，当前仍保留项目原有 `22` 条 warning，未新增阻塞错误
    - 线程二按用户要求在本任务完成后暂停，不继续认领新任务

  - 线程二已新认领：`src/components/data/AccountInput/index.vue`
  - 领取前动作：
    - 已重新读取 `docs/i18n/线程协作.md`
    - 已重新读取 `docs/i18n/翻译进度.md`
    - 已重新读取 `docs/i18n/翻译清单.md`
    - 已重新读取 `src/lang/messages/pages/en.js`
    - 已重新读取 `src/lang/messages/pages/zh.js`
    - 已确认当前没有其他线程认领该文件
    - 已按最新规则先更新 md，再开始源码改动
  - 认领范围包括：
    - 组件内静态展示文本翻译
    - 复用或补充 `src/lang/messages/pages/en.js` 对应 key
    - 复用或补充 `src/lang/messages/pages/zh.js` 对应 key
    - 构建验证
    - `docs/i18n/翻译进度.md` 与 `docs/i18n/翻译清单.md` 同步更新
  - 不包含：
    - 接口参数
    - 路由路径
    - 权限码
    - 后端依赖值

## 推荐分工方式

### 方案一：按页面拆分

- 线程一：`src/views/sys/region-config/region/index.vue`
- 线程二：`src/views/team/diamond-policy/index.vue`
- 线程三：`src/components/data/AccountHanle/index.vue`
- 线程四：`src/components/data/RoomInfo/index.vue`

适合场景：

- 页面之间相互独立
- 各线程都能单独完成“页面文本 + 对应 i18n key + 文档更新”

### 方案二：按类型拆分

- 线程一：处理 `views` 页面
- 线程二：处理 `components/data` 组件
- 线程三：专门补语言文件与整理 key
- 线程四：专门做构建验证、文档同步、展示适配修正

适合场景：

- 线程较多
- 需要有人专门收口语言文件和文档

## 强烈建议的执行顺序

1. 新线程启动后，先读取 3 份协作文档 + `docs/i18n/主要路由.md`
2. 先检查“已完成 `src/views` 页面私有组件复查任务”是否仍有待处理目录；若有，优先从这批目录中认领
3. 每次准备领取新任务前，再读取一次同样的文档集合，确认认领状态已更新到文档
4. 确认无人认领后，先在 md 中写明自己认领的文件
5. 写完认领记录后，立刻再读取一次同样的文档集合，确认没有其他线程同时写入冲突
6. 确认认领信息已落盘后，再改自己认领范围内的页面、组件和对应翻译 key
7. 如果需要新增公共 key，优先使用已有命名体系，避免同义重复 key
8. 修改完成后先本地构建验证
9. 把结果同步写入 `翻译进度.md` 和 `翻译清单.md`
10. 在线程认领表里把状态改为“已完成”或“阻塞”

## 线程之间如何“保持联系”

- 通过 md 文件共享状态，而不是靠记忆
- 通过“认领表”避免重复工作
- 通过“阻塞记录”说明哪些地方因为接口返回数据暂时不能翻
- 通过“已完成记录”告诉其他线程哪些文件不要再碰
- 通过“页面私有组件状态”明确区分：页面本身已完成，还是页面连同私有组件都已复核完成

## 阻塞记录写法

- 文件：
- 阻塞原因：
- 是否依赖接口返回：
- 当前处理策略：
- 后续需要补充什么数据：

## 交接写法

- 本线程已完成：
- 本线程未完成：
- 新增的语言 key 范围：
- 未处理原因：
- 下一个线程建议接手文件：

## 注意事项

- 多线程时，最容易冲突的是：
  - `src/lang/messages/pages/en.js`
  - `src/lang/messages/pages/zh.js`
  - `docs/i18n/翻译进度.md`
  - `docs/i18n/翻译清单.md`
- 因此建议每个线程只处理自己页面对应的一段 key，并在合并前先读取最新版本
- 每次领取新任务前，先重读 `docs/i18n/线程协作.md`、`docs/i18n/翻译进度.md`、`docs/i18n/翻译清单.md` 与 `docs/i18n/主要路由.md`，确认别人已经把认领状态写入 md，再决定是否认领
- 认领任务不是“看到没人做就直接开改”，而是“先写 md 锁定任务，再开始源码修改”
- 写入认领记录前后都要复查 3 份协作文档 + `docs/i18n/主要路由.md`；如果发现同一文件被别的线程抢先认领，先停止代码修改并重新分配任务
- 对“目录型模块”不能只看当前准备修改的 1 个文件；必须先核对入口页 `import` 列表和模块目录文件列表，确认是否还存在同级可见页面
- 对 `src/views` 已完成页面，后续还要区分“页面完成”与“私有组件已复核完成”，不要只因为 `index.vue` 已翻译就直接把整个目录视为完成
- 如果多个线程同时改语言文件，优先按页面模块分块追加，避免把同一对象区域改乱
- 如果多个线程同时更新 md，优先追加“新增记录”而不是重写整个文档
- 如果线程内发现了“后续线程大概率还会重复踩”的信息，优先补到本文件或 `docs/i18n/线程模板.md`，不要只留在会话里
