Found while shipping M4 (#10). G-e now allows a singular to sit beside its own plural, because Vietnamese has no inflectional plural and the pair correctly shares one rendering. That relaxation is right, but it opened a hole: nothing checks that the pair actually agrees.
Vietnamese marks plural optionally, with a classifier in front, so the legitimate difference between the two renderings of an inflectional pair is at most a leading "các" or "những". Anything more than that is a defect. Three real ones survived into the v1 curation and I only caught them by reading rows:
type parameter against type parameters, where the plural had picked up a different head noun
backward compatibility against backwards compatibility
- one comprehension row rendered a third way from its two siblings
What to build
A new rule, G-g, over the term list rather than over a catalog. For every pair of rows whose English is inflectionally related under the existing _inflected helper in glossary.py, strip a leading các or những from both renderings and fail if what is left differs.
It reuses _inflected and _bare, which already exist and are already tested, so this is a small rule. Put it beside G-e and G-f in glossary check, not in the catalog audit, since it is a statement about the contract and not about any translation.
Notes
The classifier list is exactly các and những and should not grow without evidence from the human corpus. A rule that strips anything a translator might reasonably put in front stops being a rule.
This is a check, not a fix. There is no mechanical answer to which of the two renderings is the right one, so it reports the pair and stops.
Found while shipping M4 (#10).
G-enow allows a singular to sit beside its own plural, because Vietnamese has no inflectional plural and the pair correctly shares one rendering. That relaxation is right, but it opened a hole: nothing checks that the pair actually agrees.Vietnamese marks plural optionally, with a classifier in front, so the legitimate difference between the two renderings of an inflectional pair is at most a leading "các" or "những". Anything more than that is a defect. Three real ones survived into the v1 curation and I only caught them by reading rows:
type parameteragainsttype parameters, where the plural had picked up a different head nounbackward compatibilityagainstbackwards compatibilityWhat to build
A new rule,
G-g, over the term list rather than over a catalog. For every pair of rows whose English is inflectionally related under the existing_inflectedhelper inglossary.py, strip a leadingcácornhữngfrom both renderings and fail if what is left differs.It reuses
_inflectedand_bare, which already exist and are already tested, so this is a small rule. Put it besideG-eandG-finglossary check, not in the catalog audit, since it is a statement about the contract and not about any translation.Notes
The classifier list is exactly
cácandnhữngand should not grow without evidence from the human corpus. A rule that strips anything a translator might reasonably put in front stops being a rule.This is a check, not a fix. There is no mechanical answer to which of the two renderings is the right one, so it reports the pair and stops.