The AI review on #198 caught a real terminology defect — the glossary specifies 边缘分布 for "marginal distribution" but the translation used 边际分布. #198 merged before it was fixed; #200 corrects that one lecture. Checking the scope turned up 8 more lectures with the same defect, 54 occurrences in total, and the edition is currently inconsistent with itself.
The rule
The zh-cn glossary is explicit and context-aware: "Marginal distribution" → 边缘分布 with "context": "probability", while the economics senses correctly keep 边际 — 边际产量, 边际消费倾向, 边际收入, 边际效用. 边缘分布 is the standard mathematical term for a marginal distribution; 边际 is "marginal" as in marginal cost. So not every 边际 is wrong — only the probability sense. That is why this needs reading rather than a blanket find-and-replace.
Occurrences
| Lecture |
边际分布 (check) |
边缘分布 (correct) |
prob_matrix |
25 |
35 |
finite_markov |
15 |
0 |
ak_aiyagari |
3 |
0 |
aiyagari |
2 |
0 |
ar1_turningpts |
1 |
0 |
lake_model |
1 |
0 |
mle |
1 |
0 |
multi_hyper |
1 |
0 |
inventory_dynamics |
4 |
fixed in #200 |
prob_matrix.md is the striking one: both renderings, in the same document, 25 against 35. finite_markov.md is the other priority — 15 occurrences and it includes a Marginal Distributions heading, so its heading-map value needs updating in step with the heading or the next sync will mis-map the section. That applies to any lecture where the term appears in a heading.
lecture-intro.zh-cn has one affected file too — markov_chains_I.md, 1 wrong against 2 correct — worth a matching pass there.
Why it happened
Traced upstream and filed as QuantEcon/action-translation#149. In short: translate forward (the CLI resync path used for the 2026-07-19 wave) resolves its glossary only relative to the current working directory, has no --glossary override, and logs nothing either way — so a resync run from the wrong directory silently translates with no glossary and looks identical to one that applied it.
The production signature matches. The init path honoured the glossary: all four lectures containing the term among the 37 seeded in #196 use 边缘分布, zero wrong. The forward path did not: prob_matrix.md went from 12 wrong / 28 correct before its 2026-07-19 resync to 25 wrong / 35 correct after — the resync introduced 13 new occurrences of the non-glossary rendering into a document where the correct term was already dominant.
The term also predates the engine entirely — it first appears in the March 2025 bulk translations — so this is partly inherited debt that the resync compounded rather than corrected.
Suggested approach
Lecture by lecture, not a sweep: confirm each occurrence is the probability sense, update the heading-map value wherever the term appears in a heading, and keep the PRs small enough to review. prob_matrix and finite_markov account for 40 of the 54 and are worth doing first.
Worth treating as a pilot for the audit workflow rather than just a fix: it is a concrete, bounded, glossary-anchored terminology pass over a real corpus, which is exactly the shape the human-review program's audit stage is meant to produce (QuantEcon/project-translation#15, QuantEcon/action-translation#136).
Related
The AI review on #198 caught a real terminology defect — the glossary specifies 边缘分布 for "marginal distribution" but the translation used 边际分布. #198 merged before it was fixed; #200 corrects that one lecture. Checking the scope turned up 8 more lectures with the same defect, 54 occurrences in total, and the edition is currently inconsistent with itself.
The rule
The zh-cn glossary is explicit and context-aware:
"Marginal distribution"→ 边缘分布 with"context": "probability", while the economics senses correctly keep 边际 — 边际产量, 边际消费倾向, 边际收入, 边际效用. 边缘分布 is the standard mathematical term for a marginal distribution; 边际 is "marginal" as in marginal cost. So not every 边际 is wrong — only the probability sense. That is why this needs reading rather than a blanket find-and-replace.Occurrences
prob_matrixfinite_markovak_aiyagariaiyagariar1_turningptslake_modelmlemulti_hyperinventory_dynamics4prob_matrix.mdis the striking one: both renderings, in the same document, 25 against 35.finite_markov.mdis the other priority — 15 occurrences and it includes aMarginal Distributionsheading, so its heading-map value needs updating in step with the heading or the next sync will mis-map the section. That applies to any lecture where the term appears in a heading.lecture-intro.zh-cnhas one affected file too —markov_chains_I.md, 1 wrong against 2 correct — worth a matching pass there.Why it happened
Traced upstream and filed as QuantEcon/action-translation#149. In short:
translate forward(the CLI resync path used for the 2026-07-19 wave) resolves its glossary only relative to the current working directory, has no--glossaryoverride, and logs nothing either way — so a resync run from the wrong directory silently translates with no glossary and looks identical to one that applied it.The production signature matches. The
initpath honoured the glossary: all four lectures containing the term among the 37 seeded in #196 use 边缘分布, zero wrong. Theforwardpath did not:prob_matrix.mdwent from 12 wrong / 28 correct before its 2026-07-19 resync to 25 wrong / 35 correct after — the resync introduced 13 new occurrences of the non-glossary rendering into a document where the correct term was already dominant.The term also predates the engine entirely — it first appears in the March 2025 bulk translations — so this is partly inherited debt that the resync compounded rather than corrected.
Suggested approach
Lecture by lecture, not a sweep: confirm each occurrence is the probability sense, update the heading-map value wherever the term appears in a heading, and keep the PRs small enough to review.
prob_matrixandfinite_markovaccount for 40 of the 54 and are worth doing first.Worth treating as a pilot for the
auditworkflow rather than just a fix: it is a concrete, bounded, glossary-anchored terminology pass over a real corpus, which is exactly the shape the human-review program's audit stage is meant to produce (QuantEcon/project-translation#15, QuantEcon/action-translation#136).Related
glossary-path), [action-translation] resync: mccall_model.md #133 (document-local phrase consistency — theprob_matrixsplit shows both problems at once)