How to Build a Localization Glossary & Style Guide

A build guide organised around the property that decides whether these documents survive: which rules a machine can enforce, which it can only flag, and which are pure judgement. Every tool here was executed against Translate Toolkit 3.20.0. Opens by killing the blank page — poterminology reads your existing PO catalogs and writes a ranked candidate glossary in one command, and pointed at translated files rather than POTs it does something better: it marks a term fuzzy and lists every variant with the file it came from, so “dashboard” comes back as “dashboard {admin.de.po}; übersicht {billing.de.po}”. That is a terminology audit of everything you have already shipped, for every language at once. Then the do-not-translate list and the trap inside its checker: pofilter’s notranslatewords splits on whitespace and requires identical casing, so a German translation that correctly kept “Workspace” gets flagged because the source said “workspace” — and capitalising the list entry silences the false positive while creating a false negative on a genuine violation, verified all three ways. The honest conclusion is that the check works for brand names and acronyms and is structurally wrong for common nouns, which motivates the forty-line replacement shown running: case-insensitive, phrase-aware DNT plus approved and forbidden terms, built on translate.storage.po so contexts and plurals parse correctly. Plus the guidance that belongs in the file rather than a wiki (#. TRANSLATORS comments, msgctxt, source references, and which of the three to reach for), the formality decision that has no neutral option in German, French, Spanish, Japanese or Korean, Microsoft’s free style guides for 97 languages as a base to write deltas against, the csv2tbx column order and hardcoded xml:lang="xx" that each cost an hour, Weblate’s read-only/forbidden/terminology flags mapped onto the same rules, and a CI job that hard-gates format and terminology while leaving the subjective checks as a review queue.

Back to the PO-File blog