translate: check after first pass

This commit is contained in:
iacore
2026-06-18 08:35:40 +08:00
parent fafe1e0148
commit b1f21d3a47
7 changed files with 329 additions and 7 deletions
+23 -1
View File
@@ -127,7 +127,29 @@ Finding N — Title (line numbers)
Surgical string replacement. Verify every patch with `cat` — never rely on `read_file` (session dedup).
### 5. Final sweep
### 5. Add inline translation notes to bilingual.dj
After findings are written, insert djot comments (`{% ... %}`) into `bilingual.dj` after translation pairs to document non-obvious translation decisions. This serves as a durable reference for future editors and bilingual readers.
What to annotate:
- **Terminology choices**: why a particular rendering was chosen (e.g. 人生佛教 → "Buddhism for Human Life" vs "Humanistic Buddhism")
- **Cultural bridges**: how an idiom or reference was adapted for English readers (e.g. 天龙八部 → expanded to "devas, nāgas, and the rest of the eight classes of beings")
- **Structural decisions**: heading patterns, name handling, parallelism preservation
- **Sanskrit handling**: which terms get diacritics, which get glosses, why
Format:
```
source line
target line
{% explanation of translation choice %}
(blank)
```
The comment sits on its own line between the target line and the blank separator. Use `execute_code` to insert comments programmatically — key by source line number (1-indexed), build new file line by line. Verify with `head`/`tail`.
Do NOT annotate literal/obvious translations (names, dates, simple connectives). Aim for ~1 comment per significant pair.
### 6. Final sweep
Run `python3 scripts/sweep.py <source.dj> <target.dj> [--stale term1,term2] [--new term1,term2]`. This runs all mechanical checks in one call: line parity, heading parity, Unicode em/en-dashes, Markdown bold, Chinese punctuation, TOC link artifacts, unbalanced quotes, and stale/new term assertions. Run even when no content patches were needed — it serves as final validation.
@@ -4,6 +4,31 @@ Patterns found in CN→EN translation review. Add to this file as new patterns e
## Terminology conflation
### 人生佛教/人间佛教 — distinct concepts
人生佛教 (Taixu's "Buddhism for Human Life") and 人间佛教 (Yinshun's "Humanistic Buddhism")
are distinct doctrinal positions in modern Chinese Buddhism. Do not conflate both into
"Humanistic Buddhism." When the source uses 人生佛教, render as "Buddhism for Human Life"
or "Human Life Buddhism."
### 心性论 → buddha-nature (WRONG)
心性 (mind-nature) is broader than 佛性 (buddha-nature / tathāgatagarbha).
When a text discusses 心性 in the context of Confucian self-cultivation or general
Buddhist psychology, use "mind-nature" or "nature of mind." Reserve "buddha-nature"
only when the text explicitly references tathāgatagarbha doctrine.
### 恨 → resentment (WRONG)
恨 means "hatred," not "resentment." In the triad 羡慕嫉妒恨 (envy, jealousy, hatred),
the force is strong. "Resentment" is too mild.
### 感悟 → conversant / heartfelt (WRONG)
感悟 means experiential insight or realization. It is not intellectual familiarity
("conversant") or emotional warmth ("heartfelt"). Render as "insight," "realization,"
or "deep understanding."
### 关爱/关怀 → compassion (WRONG)
Chinese 关爱 and 关怀 mean "care" or "loving care." They are NOT 慈悲 (compassion / karuṇā).
@@ -27,7 +52,36 @@ Check every occurrence of "compassion" in a translation against the source:
"continuously elevate our life" loses the Dharma meaning entirely.
→ "continuously elevate our life, life after life"
## False implication
## Degree / register shifts
### 学部委员 → Member (UNDERSTATES)
学部委员 is CASS's highest academic title, equivalent to "Academician."
"Member" understates the prestige significantly. → "Academician" or
"Member of the Academic Divisions."
### 文明 → culture (WRONG)
文明 is "civilization," not 文化 "culture." When a text discusses 文明传播
(civilizational transmission), do not substitute "cultural transmission."
### 教制建设 → reforming (ADDS CONNOTATION)
教制建设 means "developing/building monastic institutions." Adding "reforming"
introduces a connotation of fixing something broken that is not in the source.
→ "developing monastic institutions" or "institutional development."
### 一荣俱荣、一损俱损 → too loose
This idiom has a conditional structure: "if one prospers, all prosper; if one
suffers, all suffer." Rendering as "thrived together and suffered together"
loses the mutual-dependence logic. → "shared prosperity and adversity alike"
or "rose and fell together."
### 成圣成贤 collapsing
圣 (sage) and 贤 (worthy) are distinct Confucian categories. Collapsing both
to "a sage" loses the distinction. → "sagehood and worthiness" or "a sage or worthy."
#### 因病返贫 → "back into poverty"
"返贫" means becoming poor due to illness, not returning to previous poverty. Use "into poverty" or "driven into poverty."
+20 -1
View File
@@ -37,7 +37,26 @@ Four registers observed, useful as style targets:
4. **Voice**: Direct address ("you"), concrete images, and oral rhythm make Dharma land in English. Abstract noun chains (common in Chinese→English translationese) kill it.
5. **Sutra quotes**: Use standard English Buddhist idiom. Check terse-idiom conventions (e.g., Diamond Sutra "lives" not "bodies").
For register decisions: consult the register table above (scanning MB articles is optional).
## Pitfalls
### 1:1 line mapping
Each physical source line maps to exactly one physical target line. Never merge
continuation lines (lines ending with ` ` soft breaks) into a single
translation entry. The bilingual format preserves the original line structure —
breaking this destroys alignment.
### Blank lines in bilingual
When creating an initial bilingual template from source only: blank source
lines pass through as-is. Only non-blank lines get an empty target placeholder.
Treating blank lines as content lines (adding target+separator) creates
excessive blank clusters. See `references/bilingual-format.md`.
### Soft break markers
Trailing ` ` (two spaces) on source lines indicate soft line breaks (paragraph
continuations). Preserve these markers on both source and target lines.
## Quick-Find in MB Corpus
@@ -21,7 +21,8 @@ target-line
## Creating initial bilingual from source only
Every source line gets an empty target placeholder + blank separator:
Only non-blank source lines get an empty target placeholder. Blank lines in the
source pass through as-is and serve as natural pair separators.
```
source-A
@@ -29,8 +30,12 @@ source-A
source-B
```
(2 blank lines between consecutive source lines: empty target + separator.)
The blank line between source-A and source-B is an original blank from the
source — do NOT add an extra target+separator for it.
Pitfall: treating blank source lines as content lines creates 3+ consecutive
blank lines (source-blank → target-blank → separator-blank). This is wrong.
## Verification
Source line count × 3 1 = bilingual line count (before trailing newline strip).
`non_blank_source_lines × 2 + total_source_lines = bilingual_line_count`