docs: split translation vs proofread workflows in AGENTS.md; cleanup edit-suggestions to manuscript-level only
This commit is contained in:
@@ -32,19 +32,108 @@ translate-files/<topic>/<article>/
|
|||||||
|
|
||||||
`.docx` output → `/tmp/`. Don't commit binaries.
|
`.docx` output → `/tmp/`. Don't commit binaries.
|
||||||
|
|
||||||
## Translation Workflow
|
---
|
||||||
|
|
||||||
1. Load `dharma-translation` and `terms-search` skills
|
## Workflow A: Translation(翻译)
|
||||||
2. Search terms DB with `search.py` for key terms before translating
|
|
||||||
3. Translate directly — agent IS the model, no external APIs
|
Translate Chinese source into English. The agent IS the model — no external APIs.
|
||||||
4. Write `target.dj`, match source line count exactly
|
|
||||||
5. TOC: bullet list, no link targets. No page numbers.
|
### Input
|
||||||
6. Create `bilingual.dj` (interleave source/target lines)
|
|
||||||
|
Source text in `.dj` or `.docx` (Chinese only).
|
||||||
|
|
||||||
|
### Deliverables
|
||||||
|
|
||||||
|
- `source.dj` — extracted/cleaned Chinese
|
||||||
|
- `target.dj` — English translation, line count matches source
|
||||||
|
- `bilingual.dj` — interleaved (source line, target line adjacent, blank between pairs)
|
||||||
|
- `edit-suggestions.dj` — terminology/consistency issues flagged for review
|
||||||
|
|
||||||
|
### Rules
|
||||||
|
|
||||||
|
1. Load `dharma-translation` and `terms-search` skills before starting.
|
||||||
|
2. Search terms DB with `search.py` for key Buddhist terms.
|
||||||
|
3. TOC: plain bullet lists, no link targets, no page numbers.
|
||||||
|
4. Djot formatting:
|
||||||
|
- Emphasis: `*text*` (single asterisks). Never `**` (Markdown bold).
|
||||||
|
- Comments: `{% ... %}`
|
||||||
|
- Em dashes in English text: `---` (three hyphens). Pandoc converts to proper em dash in docx output.
|
||||||
|
- En dashes in English text: `--` (two hyphens).
|
||||||
|
5. Preserve source formatting — don't add/remove emphasis.
|
||||||
|
6. Translate in-response — never call external translation APIs.
|
||||||
|
|
||||||
|
### Review
|
||||||
|
|
||||||
|
After translating, run `translation-review` skill (Workflow B) to check:
|
||||||
|
- Terminology consistency against terms DB
|
||||||
|
- Grammar, fluency, calques
|
||||||
|
- Missing content (mid-paragraph truncation)
|
||||||
|
- Inconsistency (same term translated differently)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workflow B: Proofread(校对)
|
||||||
|
|
||||||
|
Extract bilingual content from an existing DOCX manuscript and flag issues.
|
||||||
|
The DOCX already contains BOTH Chinese and English — the English is the
|
||||||
|
authoritative target, not something the agent creates.
|
||||||
|
|
||||||
|
### Input
|
||||||
|
|
||||||
|
A `.docx` manuscript with Chinese and English in parallel (typically
|
||||||
|
paragraph-level alternation: Chinese, blank, English, blank).
|
||||||
|
|
||||||
|
### Deliverables
|
||||||
|
|
||||||
|
- `bilingual.dj` — extracted from DOCX (interleaved)
|
||||||
|
- `edit-suggestions.dj` — mechanical/issues found in the manuscript
|
||||||
|
|
||||||
|
### Extraction
|
||||||
|
|
||||||
|
1. `pandoc input.docx -f docx -t plain --wrap=none` to plain text
|
||||||
|
2. Script to extract CN/EN pairs. Write to `scripts/gen-bilingual-<name>-<hash>.py`.
|
||||||
|
Copy the approach from an existing script (e.g. `gen-bilingual-buddhist-attitude.py`).
|
||||||
|
3. Write `bilingual.dj`.
|
||||||
|
|
||||||
|
### What to flag (edit-suggestions.dj)
|
||||||
|
|
||||||
|
Only flag objective/manuscript-level issues:
|
||||||
|
|
||||||
|
- **Garbled text** — merged duplicate edits in source DOCX
|
||||||
|
- **Double words** — `the The`, `is is`
|
||||||
|
- **Double punctuation** — `warm or cold..`
|
||||||
|
- **Numbering mismatches** — CN heading `三` vs EN heading `II`, or body heading
|
||||||
|
number doesn't match TOC
|
||||||
|
- **Translator notes** — `(某某翻,某某审)` left in headings
|
||||||
|
- **Missing content** — paragraphs present in CN but missing in EN (or vice versa)
|
||||||
|
- **Duplicate text** — same name/phrase repeated (`岳麓书院岳麓书院`)
|
||||||
|
- **Capitalization typos** — `Philosopher Nietzsche` → `philosopher Nietzsche`
|
||||||
|
- **Stray/unusual characters** in either language
|
||||||
|
|
||||||
|
### What NOT to flag
|
||||||
|
|
||||||
|
Do NOT flag translation quality issues — the English is authoritative manuscript text:
|
||||||
|
|
||||||
|
- Terminology choices (e.g. "delusional dreams" for 颠倒梦想)
|
||||||
|
- Translation style, calques, fluency preferences
|
||||||
|
- Djot formatting conventions (em-dashes, italics)
|
||||||
|
- Word order, added concepts, degree weakening
|
||||||
|
|
||||||
|
These belong to the **translation** workflow, not proofread.
|
||||||
|
|
||||||
|
### Separate translation-quality findings
|
||||||
|
|
||||||
|
If the user explicitly asks for a translation review of a proofread article,
|
||||||
|
write findings to `translation-findings.dj` (separate from `edit-suggestions.dj`).
|
||||||
|
Load the `translation-review` skill and follow its Workflow B.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Djot
|
## Djot
|
||||||
|
|
||||||
- Comments: `{% ... %}`
|
- Comments: `{% ... %}`
|
||||||
- Dashes: `---` em, `--` en. Pandoc converts in docx output.
|
- Emphasis: `*text*` (single asterisks)
|
||||||
|
- Dashes in English: `---` em, `--` en. Pandoc converts in docx output.
|
||||||
- Preserve source formatting — don't add/remove emphasis
|
- Preserve source formatting — don't add/remove emphasis
|
||||||
|
|
||||||
## Scripts
|
## Scripts
|
||||||
@@ -58,3 +147,4 @@ regenerating the same Python in execute_code each turn.
|
|||||||
- `scripts/dj2docx.fish <target.dj>` — pandoc .dj → .docx in `/tmp/`
|
- `scripts/dj2docx.fish <target.dj>` — pandoc .dj → .docx in `/tmp/`
|
||||||
- `scripts/proofread-pdf.py <docx> <pdf>` — word-level diff between manuscript and typeset PDF
|
- `scripts/proofread-pdf.py <docx> <pdf>` — word-level diff between manuscript and typeset PDF
|
||||||
- `scripts/gen-bilingual.fish <dir>` — produce `bilingual.dj` from `source.dj` + `target.dj`
|
- `scripts/gen-bilingual.fish <dir>` — produce `bilingual.dj` from `source.dj` + `target.dj`
|
||||||
|
- `scripts/gen-bilingual-<name>-<hash>.py` — article-specific extraction from DOCX
|
||||||
|
|||||||
@@ -5,13 +5,12 @@
|
|||||||
- 第47行 `Philosopher Nietzsche`
|
- 第47行 `Philosopher Nietzsche`
|
||||||
+ 第47行 `philosopher Nietzsche`
|
+ 第47行 `philosopher Nietzsche`
|
||||||
说明:此处 philosopher 是描述性用语,并非正式头衔,应小写。
|
说明:此处 philosopher 是描述性用语,并非正式头衔,应小写。
|
||||||
同一段上文 `the philosopher Zhou Guoping` 已用对。
|
|
||||||
|
|
||||||
## 一、教育是为了育人
|
## 一、教育是为了育人
|
||||||
|
|
||||||
- 第130行 CN `我曾和岳麓书院岳麓书院国学研究院朱汉民院长对谈`
|
- 第130行 CN `我曾和岳麓书院岳麓书院国学研究院朱汉民院长对谈`
|
||||||
+ 第130行 CN `我曾和岳麓书院国学研究院朱汉民院长对谈`
|
+ 第130行 CN `我曾和岳麓书院国学研究院朱汉民院长对谈`
|
||||||
说明:Chinese source 中 "岳麓书院" 出现两次,疑为重复。
|
说明:源文 "岳麓书院" 出现两次,疑为重复。
|
||||||
|
|
||||||
## 二、人生最重要的设计
|
## 二、人生最重要的设计
|
||||||
|
|
||||||
@@ -28,19 +27,3 @@
|
|||||||
- 第155行 EN heading `2. The Principles of Life's Continuity`
|
- 第155行 EN heading `2. The Principles of Life's Continuity`
|
||||||
+ 第155行 EN heading `3. The Principles of Life's Continuity`
|
+ 第155行 EN heading `3. The Principles of Life's Continuity`
|
||||||
说明:TOC 中该条目中英文均为 "3",正文 EN 标题却写为 "2.",typographical error。
|
说明:TOC 中该条目中英文均为 "3",正文 EN 标题却写为 "2.",typographical error。
|
||||||
|
|
||||||
## 四、人性,是设计生命的基础
|
|
||||||
|
|
||||||
### 2.人的两面性
|
|
||||||
|
|
||||||
- 第211–212行:CN 段落"关于这个问题,孟子进一步提出…"对应的英文有两个段落:
|
|
||||||
(1) "Building on this, Mencius introduced…"(已收录,第212行)
|
|
||||||
(2) "Buddhism teaches that every person possesses Buddha-nature…"(缺失)
|
|
||||||
说明:译者将一个中文段落拆成两个英文段落,bilingual.dj 只保留了第一个。
|
|
||||||
建议:将中文在"这一观点和佛法思想有关。"后拆分为二,使之与英文两段一一对应。
|
|
||||||
|
|
||||||
## 全文
|
|
||||||
|
|
||||||
- 27处英文 em-dash(Unicode `—`)应替换为三个连字符 `---`
|
|
||||||
说明:djot 规范要求英文 em-dash 用 `---` 表示,pandoc 输出 docx 时自动转换。
|
|
||||||
涉及行号:41, 44, 50, 56, 59, 65, 68, 74, 77, 80, 95, 104, 110, 116, 134, 146, 149, 158, 173, 200, 206, 212, 215, 218, 224, 233, 248
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# Translation Findings — 生命也可以被设计的
|
||||||
|
|
||||||
|
## 1. 内容删减:希特勒举例被移除(四、1.善用理性)
|
||||||
|
|
||||||
|
Chinese: 比如希特勒认为犹太人血统有问题,要建立纯净的血统,就得实施种族屠杀。这正是理性被扭曲为反人道的体现。
|
||||||
|
English: History shows that reason, when distorted by ideology, can even be used to justify atrocities such as genocide.
|
||||||
|
|
||||||
|
CN 用希特勒的具体历史案例说明"理性被扭曲为反人道",EN 替换为泛泛的 "History shows..."。
|
||||||
|
"such as genocide" 提到了种族屠杀,但原文点名希特勒、犹太人血统的论证链被消解。
|
||||||
|
|
||||||
|
## 2. 术语稀释:"颠倒梦想"(二、2.心理问题)
|
||||||
|
|
||||||
|
Chinese: 《心经》所说的颠倒梦想
|
||||||
|
English: what the Heart Sutra describes as "delusional dreams"
|
||||||
|
|
||||||
|
"颠倒梦想" 是《心经》核心术语(viparyāsa),四颠倒:常乐我净。指凡夫对无常/苦/无我/不净的四种错误认知。
|
||||||
|
"delusional dreams" 偏文学化,丢失了术语的技术含量。
|
||||||
|
建议:"inverted views and delusive thoughts" 或保留 "viparyāsa (the four inverted views)"。
|
||||||
|
|
||||||
|
## 3. 双重翻译:"本来面目"(二、1.人生问题)
|
||||||
|
|
||||||
|
Chinese: "本来面目"
|
||||||
|
English: "Original Face; Original Mind"
|
||||||
|
|
||||||
|
用分号并列两种译法 "Face" 和 "Mind",像是译者未决断。
|
||||||
|
禅宗术语通常统一用 "Original Face"(对应"面目"),或 "True Nature"。
|
||||||
|
建议选一种,删掉分号后的备选。
|
||||||
|
|
||||||
|
## 4. 添加概念:"creator god"(三、2.人有自救能力)
|
||||||
|
|
||||||
|
Chinese: 但佛法不认同世界有一个主宰神
|
||||||
|
English: Buddhism does not acknowledge a creator god who governs the world
|
||||||
|
|
||||||
|
"主宰神" = ruling/controlling deity。译文加了 "creator"(创世神),原文无"创世"义。
|
||||||
|
佛经否定的是梵天式的创世主(creator),但"主宰神"范围更宽(包括印度教的大自在天等)。
|
||||||
|
建议:去掉 "creator",改为 "a ruling deity who governs the world"。
|
||||||
|
|
||||||
|
## 5. 语序颠倒:内圣外王(三、1.人生目的何在)
|
||||||
|
|
||||||
|
Chinese: 进一步,是内圣外王,成就圣贤人格
|
||||||
|
English: at a higher level, it aspires to serve the people with kingly virtue and achieve the character of a sage
|
||||||
|
|
||||||
|
"内圣外王" = 内(圣)→ 外(王)。原文先内后外,译文先外后内。
|
||||||
|
建议调整语序以符合原文逻辑递进。
|
||||||
|
|
||||||
|
## 6. 程度弱化:一切 → many forms of(二、2.心理问题)
|
||||||
|
|
||||||
|
Chinese: 三毒是一切心理疾病的根源
|
||||||
|
English: the three poisons are the root of many forms of mental afflictions
|
||||||
|
|
||||||
|
"一切" → "many forms of",从全称变为部分。
|
||||||
|
建议:"the root of all mental afflictions"。
|
||||||
Reference in New Issue
Block a user