mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
Nothing stopped a machine translation from rewriting the identifiers the documentation is about. Measured over the catalogs, 4836 of 25166 role name mentions came back altered and 9131 of 33337 title mentions, among them `(Unbound, etc.)` turning into `(Ungebunden, etc.)` for a DNS resolver and `Snipe-IT` losing its non-breaking hyphen to an ordinary one. Emoji went the same way. The names come from the repository itself: the role directories, the first heading of each README and galaxy_info.name. A hyphenated role name is never an English phrase and holds wherever it appears. A title is protected only inside a sentence, because at a sentence start every word is capitalised and the capital stops telling a product from a common noun: the heading `Documentation` is meant to be translated, `Keycloak` in the middle of a clause is not. A dictionary cannot make that call either, since `Unbound` and `Confluence` are English words and product names at once. Masking and comparing had to be separated. German capitalises every noun and compounds a name with what it qualifies, so `shell extensions` legitimately becomes `Shell-Erweiterungen`, which a set comparison reads as a surplus span and a word boundary ending at the hyphen reads as a loss. Names are therefore masked out of the request but checked for presence rather than counted, and protected_spans keeps the equality semantics it had for the structural rules. This reports 21352 entries whose translation dropped a name or an emoji. The finding is correct and the lints that surface it stay red until `make i18n-prune` empties them for the next run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>