10 KiB
10 KiB
| name | description |
|---|---|
| wiki-sync-translate | 同步英文 MediaWiki 页面变更到中文翻译文档。当用户需要更新中文 Wiki页面、同步英文变更、或翻译 Wiki 内容时触发。适用于 Project Diablo 2 Wiki 的中英双语同步维护场景。 |
Wiki 同步翻译
同步英文 Wiki 页面变更到中文翻译文档,保持行号一致。
使用方法
- 用户请求更新中文 Wiki 页面
- 用户请求同步英文 Wiki 变更
- 用户指定某个页面需要进行翻译更新
- 用户执行
/wiki-sync-translate <页面名称>
工作目录
脚本位于:.claude/skills/wiki-sync-translate/scripts/wiki_sync.py
执行步骤
Step 1: 运行同步脚本
使用 skill 目录下的专用脚本获取变更:
cd /mnt/d/code/sync-pd2-wiki
source venv/bin/activate
python .claude/skills/wiki-sync-translate/
scripts/wiki_sync.py --title "<页面名称>" --since <上次同步时间> --run
参数说明:
--title: 指定要同步的页面名称--since: 起始时间,格式如2026-01-02T12:07:05Z--run: 必须提供此参数才会执行
Step 2: 读取输出文件
脚本会在 wiki_sync_output/<时间戳>/changed_pages/ 目录下生成:
| 文件 | 说明 | 用途 |
|---|---|---|
*.comparison.json |
结构化变更信息 | AI 读取,包含行号和变更内容 |
*.full.txt |
英文最新版本 | 参考对照 |
*.cn.txt |
中文原文 | 基于此文件进行修改 |
*.old.txt |
英文历史版本 | 参考对照 |
Step 3: 解析 comparison.json
comparison.json 格式:
{
"title": "页面标题",
"has_cn_translation": true,
"summary": {
"total_changes": 1,
"replaced": 1,
"added": 0,
"removed": 0
},
"changes": [
{
"type": "replaced",
"old_line": 66,
"new_line": 66,
"old_content": "旧内容",
"new_content": "新内容"
}
]
}
变更类型:
replaced: 替换,old_line表示需要修改的行号added: 新增,new_line表示插入位置removed: 删除,old_line表示要删除的行
Step 4: 更新中文文档
核心原则:行号必须完全一致
- 创建
wiki_sync_output/<时间戳>/result_pages/目录(如不存在) - 复制
*.cn.txt内容到result_pages/<页面名>.cn.txt - 根据
changes中的行号定位对应行 - 智能更新:
- 仅同步变更的内容
- 保留中文翻译(如 "赛季 12" 不改为 "Season 12")
- 新增的英文内容智能翻译成中文,可以用
grep命令在references/PatchString.txt搜索技能或物品的中文名称,搜索不到的则智能翻译按照暗黑破坏神2的常用命名。 - 保持 MediaWiki 语法正确,语法可以参照
mediawiki-wikitestskill.
- 保存到
wiki_sync_output/<时间戳>/result_pages/<页面名>.cn.txt
Step 5: 输出结果
将更新后的文档保存到 wiki_sync_output/<时间戳>/result_pages/<页面名>.cn.txt,用户可直接复制到 Wiki。
示例
输入 - comparison.json:
{
"changes": [{
"type": "replaced",
"old_line": 66,
"old_content": "| style=\"...\"| 2025-11-25<br>(Season 12)",
"new_content": "| style=\"...\"| 2026-01-25<br>(Season 12)"
}]
}
中文原文第66行:
| style="color:#3f6e2d; background-color:#161f0c; border-color:#0d1709"| 2025-11-25<br>(赛季 12)
更新后第66行:
| style="color:#3f6e2d; background-color:#161f0c; border-color:#0d1709"| 2026-01-25<br>(赛季 12)
变更说明: 日期 2025-11-25 → 2026-01-25,但 赛季 12 保持中文不变。
注意事项
- 行号一致性:确保中英文文档行号完全对应,这是长期维护的基础
- 保留翻译:只同步变更内容,不替换已有的中文翻译
- MediaWiki 语法:
- 表格分隔符
|-位置保持一致 - 链接格式
[[页面名|显示文本]]不变 - 样式属性
style="..."不变
- 表格分隔符
- 特殊字符:注意
<br>、 等 HTML 实体
错误处理
- 如果
has_cn_translation为 false,提示用户该页面无中文翻译 - 如果
is_new_page为 true,说明是新页面,需要全新翻译 - 如果找不到对应行,可能是中英文版本不同步,需要人工确认