A glossary is a list of pairs: this source term, that target term. Enforcement turns the list into law: if the term appears and the approved translation is missing, the translation is corrected rather than flagged. We still think that is the right default. A list of violations that somebody else has to fix is not quality assurance.
The weakness is that a list has no idea where each pair applies. A detailed error report from a public-sector healthcare client made that concrete, one screenshot at a time.
What a list does without a scope
- A generic entry for “time” turned a sentence about a monthly premium into one about an hourly rate.
- An entry that translates “contact” as a verb landed inside the name of a contact center and produced a phrase nobody would write.
- “Health → salud” translated a program name that has to stay in English.
- “Health authority → autoridad de salud” fired inside the name of a state agency that was on the do-not-translate list, and won.
- An acronym entry, written to expand the acronym on first mention, expanded it on every mention, including inside the name of another program.
Every one of those substitutions was the glossary being obeyed. That is what made them hard to see from our side: the checks that ask “was the approved term used?” all passed.
Three rules about where a term applies
Do-not-translate wins. If a span is protected, no glossary entry is enforced inside it. The protected text is also restored exactly as written, case included, even if the model rewrote it along the way. It used to be checked, retried once, and then let through.
The longest match wins. When “health authority” and “health” both match, the shorter entry never fires inside the longer one. Terminology is usually most specific at its longest, and a short generic entry should not be able to reach into a term that was defined on purpose.
Proper names are names. A capitalized multi-word name is not a target for a generic entry that happens to match one of its words.
Two smaller rules came out of the same report. An acronym entry that expands on first mention is now satisfied by the acronym on later mentions, which is how every style guide that asks for the expansion actually wants it. And enforcement only acts on segments we translated. It used to reach into approved 100% matches as well, which is how five approved segments came back changed in that delivery.
Quotation marks are a locale decision
We had one block of rules for every Spanish target, and it asked for angle quotes. Spain uses them. Most US and Latin American Spanish does not, and a US healthcare notice full of « » reads as translated from somewhere else. Quotation marks now follow the source’s convention for every Spanish locale except Spain, where they follow Spain’s.
Some of it was the list
Not every problem was ours to fix in code. A single common word like “time” is not terminology, and no enforcement rule can make it behave like terminology. That entry is gone. The rules above mean the next entry like it will do much less damage when it arrives, and one always does.
We re-ran the same delivery with the new rules. The hourly premium and the translated agency name did not come back, the program names stayed in English, and no approved match was touched.
Want this in your workflow? Try Fily with one file — no card, no demo form.
