--- name: qkeymapper-readme-en-sync description: 将 QKeyMapper 中文版 README.md 的新增和变更内容同步翻译到英文版 README_en.md,比对章节与更新日志差异,沿用英文版固定术语,先展示完整草稿供审阅,批准实施后仅更新并本地提交 README_en.md。支持全量核对模式与指定目标/Build 的定向高效同步模式。用于英文 README 同步、英文更新日志补齐、按键对照表维护。 --- # QKeyMapper README English Sync 以仓库根目录 `README.md`(中文版)为准,将其新增和变更内容翻译补充到 `README_en.md`(英文版)的对应现有章节中。翻译沿用英文版当前使用的固定 QKeyMapper 专用英文名词。遵守仓库指令,不增加脚本、依赖或全局配置。 ## 先审阅,再实施 - 首次调用只读比对并展示完整翻译草稿(含差异清单),不写文件、不暂存、不提交。用户已明确批准当前草稿并要求实施时,直接进入实施阶段,不重复索要确认。 - 建议用户在计划模式调用 `$qkeymapper-readme-en-sync` 或 `/qkeymapper-readme-en-sync`;处于计划模式时展示计划等待批准,普通模式下展示同样的草稿,等待明确批准。 - **支持指定范围调用**:当用户传入参数指定范围时(例如 `/qkeymapper-readme-en-sync 仅同步v1.3.8(Build 20260920)的内容`、`Build 20260920` 或指定章节名称),直接进入**定向同步模式**,仅定位并同步该目标段落,不进行其他无关章节或历史 Build 的全局扫描与比对,显著提升检索效率与响应速度。 - 草稿批准同时授权本次 README_en.md 本地提交,计划中必须明确这一点。用户明确要求仅草稿、不提交或调整范围时,遵从其要求。 - 需要等待审阅时,引用本技能路径及"首次调用只读比对并展示完整翻译草稿,不写文件、不暂存、不提交。",简短说明这是用户要求的审阅步骤。 ## 固定同步策略 - **章节集合固定**:英文版章节以当前状态为准(含 📣 Known Issues)。原则上不对英文版新增章节;中文版出现英文版没有的章节时,先列出差异并向用户确认后再决定是否翻译补充。 - **永不补充**:Wiki 链接、Bilibili 教学视频、QQ 群三个中国特有资源链接章节;「正则表达式匹配规则说明」整章(英文版名词表 RegexMatch 行已引用软件目录下的 PDF 文档)。 - **英文版独有不动**:⭐ Star Trend 章节;截图、XBox 布局图(英文版仅引英文布局图)、VirScan 章节保持英文版现状。 - **错位随修**:发现英文版老旧条目日期或内容错位、整条缺失、要点遗漏时,随本次同步一并修复,不只补最新段。先例:2024 年初条目整体错位一版、20241124 整条缺失、20250926 漏 2 个要点。 - **单向同步**:只以 README.md 为准更新 README_en.md,不反向修改 README.md。发现中文版自身笔误时不传播到英文版,按正确含义翻译。先例:中文版名词表"抬起映射"重复行(英文版用 KeyUpMapping + SendTiming 两行)、20260212 条目 `vJoy-RT-Max[50]` 说明误写"左扳机键"(应为 Right trigger)。 ## 比对收集差异 0. **确认 Git 状态与工作区检查**(前置防呆,全模式必做): - 确认 Git 仓库根目录、分支、HEAD 完整哈希、工作区与暂存区状态。 - 检查并记录 `README_en.md` 是否存在已有修改(staged/unstaged),并在草稿审阅阶段明确展示其状态与提交处理边界;若有未提交的中文版源码或文档变动仅作提示,不夹带。 ### 分支 A:定向同步模式(用户指定了具体 Build、版本或章节) 当用户调用指定了具体范围(如“仅同步 v1.3.8(Build 20260920)的内容”、“Build 20260920”或“仅同步特殊映射按键对照表”): 1. **提取目标标识并直接检索定位**: - **指定 Build/版本**:从参数中提取目标 Build 号或版本标识,直接定位 `README.md` 中对应的更新段落(从该条目的 `* v...` 开始至下一条 `* v...` 或段落结束),提取其完整要点。 - **指定章节/表格**:直接读取 `README.md` 中对应章节,无需扫描其余无关部分。 2. **在 `README_en.md` 中核对并生成草稿**: - 若为 Build 条目: - 若英文版**尚未包含**该 Build:整段翻译后按日期降序插入至对应位置(紧接下一条,不空行)。 - 若英文版**已存在**该 Build:仅对该条目内部的各个 bullet 要点比对补漏。 - 若为指定章节:将提取内容翻译后,精准替换或更新英文版对应章节。 3. **收敛检索范围,跳过无关扫描**: - 严禁执行其他历史 Build 号的全量提取比对。 - 严禁扫描核对清单中未指定的其他数十个历史表格与说明,将 Token 消耗与检索范围完全收敛在目标范围内。 ### 分支 B:全量同步模式(未指定具体范围) 1. **增量线索定位(日常增量同步推荐先做)**: - 查看自上次英文版同步提交以来,中文版 `README.md` 有哪些具体变动,秒级定位修改段落与表格: ```powershell $lastEnCommit = git log -1 --format="%h" -- README_en.md git diff "$lastEnCommit..HEAD" -- README.md ``` 2. **Build 号全量比对**: ```powershell $cn = rg -o "Build 20\d{6}" README.md | Sort-Object -Unique $en = rg -o "Build 20\d{6}" README_en.md | Sort-Object -Unique Compare-Object $cn $en ``` 中文版多出的每个 Build 号都是一个待翻译条目;英文版多出的需人工判断(历史原因)。 若比对后发现双向完全一致且内容完整无更新,直接向用户说明“README_en.md 与 README.md 已完全同步,无需更新”,不生成空计划,不执行写操作或空提交。 3. **条目级逐 bullet 比对**:Build 号相同不代表内容一致。对每个共有条目逐要点核对,补译遗漏要点。 4. **章节与表格清单核对**(固定核对表,逐项过): - 软件简介 / 免责声明 / 功能特性表 / 常用名词解释列表 / Release 下载说明 / 使用须知(注意1~4)/ 使用建议 / Known Issues - 特殊原始按键对照表、特殊映射按键对照表(逐行对,含表下 ##### 附注) - Xbox 手柄表及 @0~9 附注、特殊物理手柄按键表、特殊功能手柄原始按键表(含下方 Gyro2Mouse/GamepadTouchpad 映射键小表)、扩展手柄按键表、PS4-Dualshock 表、Xbox360 虚拟手柄表及 @0~3 与 20ms 两条附注、特殊功能虚拟手柄表(含下方 Mouse2vJoy 小表) - PS4 表曾整表过期(旧 Joy-Key14~18 错误映射),按键映射变化时整表替换而非局部修补。 ## 翻译规则 1. **术语以英文版现有用词为准**:翻译新内容前先通读 README_en.md 挖掘既有固定译法;拿不准的界面词优先在英文版中找先例。核心固定术语: - 原始按键 Original Key|映射按键 Mapped Key|抬起映射 Key Release Mapping(名词表用 KeyUpMapping)|发送时机 Send Timing|连发 Burst|锁定 Lock|长按 Long Press|双击 Double Click|连发按下/抬起时间 Burst Press/Release Time - 映射项设定窗口 Mapping Item Settings window|映射表设定窗口 Mapping Table Settings window|通用设定标签页 General Settings tab|映射设定标签页 Mapping Settings tab|映射高级设定 Advanced Mapping Settings|通用高级设定 General Advanced Settings|窗口信息标签页 Window Info tab - 悬浮按钮 Floating Button|悬浮按钮设定窗口 Floating Button Settings window|虚拟按钮面板 Virtual Button Panel|共通映射表 Common Mapping Table|映射宏列表 Macro List|通用宏 Universal Macro|序列编辑 Sequence Edit - 显示切换 Display Switch|筛选键 Filter Keys|鼠标穿透 Mouse Through|轻推/重推 Light/Hard Push|轻按/重按 Light/Hard Press|阈值 Threshold|回中延时 Recenter Delay|直控模式 Direct Control Mode|缩放比例 Scaling Ratio|保存设定 Save Settings 2. **不翻译**:所有按键名、映射键名(含参数形式,如 `vJoy-Key11(LT)_BRAKE[INIT=150,THR=2.0]`、`KeySequenceToggle(OriginalKey)`、`{{CLIPBOARD_TEXT}}`)、命令行、文件路径、驱动和库名称。 3. **示例本地化**:示例中的中文窗口标题、中文说明文字翻译为英文;示例命令本身保持原样。先例:ahk 工具示例 `title="工作"` → `title="work"`、`记事本` → `Notepad`。 4. **格式约定**(与中文版不同点,必须遵守): - 条目标题 `* v1.3.8 (Build YYYYMMDD)` —— 英文版 Build 前有空格(中文版无空格) - 要点 4 空格缩进 `*`;子项 6 空格 `-`;示例标题 6 空格前缀加 `##### `;示例代码块 10 空格缩进;注意事项 `**※ ...**` - 每个 Build 条目之间不空行,紧接下一条(沿用英文版现有紧凑排版,与中文版一致) 5. **日志条目写法**:每条通常一两句话,写操作、效果、必要限制;合并同一功能的多次修复;不暴露函数、宏、线程等实现细节。 ## 写入和本地提交 1. 只有当前草稿获批准且实际处于允许写入的模式,才能实施。写入前复核两个 README 与暂存区;内容变化会影响草稿或提交范围时重新展示修订稿等待批准。 2. 只改批准的同步内容,保留其他内容、UTF-8 无 BOM 编码和换行风格。README_en.md 原有 staged/unstaged 修改必须先展示并明确处理边界,不默认包含在本次提交中,不 stash、reset 或覆盖用户改动。 3. 执行"验证清单"全部通过后提交。README_en.md 原先无用户改动时,使用限定路径的提交:单次指定版本同步推荐使用 `git commit --only -m "docs: sync README_en.md for Build YYYYMMDD" -- README_en.md`;单次指定章节同步推荐使用 `git commit --only -m "docs: sync in README_en.md" -- README_en.md`;多版本合并或全量校对同步使用 `git commit --only -m "docs: sync README_en.md with README.md" -- README_en.md`。避免夹带其他已暂存文件;严禁使用 `git add .`、`git commit -a` 或不限定范围的提交。 4. 不 push、不打 tag、不创建远端 release、不 amend。提交后检查提交实际只含批准的 README_en.md 修改,并核对其他文件的 staged/unstaged 状态未被改变。报告 commit ID 和检查结果。 ## 验证清单 写入后必做,全部通过才可提交: 1. 运行 `git diff --check`,确认无行尾空白错误或合并冲突标记。 2. **范围与内容核对**: - 定向模式下:核对 `git diff README_en.md`,确认改动严格限定在用户指定的 Build 或章节内,无其他未指定的修改。 - 全量模式下:Build 号双向比对无差异(命令同"全量同步模式"第 2 步)。 3. 本次新增按键名在英文版中可检索到(若涉及按键新增,用 `rg -c "按键名1|按键名2|..." README_en.md` 抽查)。 4. Markdown 表格列数一致性检查(若涉及表格修改,逐表比对 `|` 计数,新增行列数与表头一致)。 5. 文件仍为 UTF-8 无 BOM(前 3 字节非 EF BB BF)。 6. 抽查新旧条目衔接处与表格上下文,确认无格式破坏且各条目间无多余空行。 ## 验收要点 - 正常调用:草稿前零写入;批准实施后只有 README_en.md 的一个本地 commit。 - 定向模式:精准定位并仅改动指定目标,提交信息与目标对应,不扩大范围、不进行全局无关检索。 - 全量模式:不重复条目、不空提交;共有 Build 逐要点补漏。 - 重复调用/无差异:不重复条目、不空提交。 - 中文版笔误:不传播,按正确含义翻译;中文版缺章节:先确认再补充,永不补充清单内章节直接跳过。 - README_en.md 有用户改动:先确定边界;审阅后两个 README 或暂存区改变:复核,影响草稿则重新审阅。