mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
A table cell holding only a link has nothing to translate, yet it became a msgid like any sentence: 2999 of the docs domain's 25742 messages, 11.7 percent. They can never be filled, so they count as pending for good and skew every completeness figure. The messages come from sphinx's own extract_messages, which is what the gettext builder collects. That is not cosmetic: sphinx takes a paragraph's rawsource, so judging astext() would read 'e2e/' out of [`e2e/`](e2e/), find a word in it and let the markup through. A test now pins that difference, because the first version of the test could not see it. The predicate is has_words, the one the translation client already applies before it sends a batch, so extraction and translation share one definition rather than two that drift. Measured: 25742 messages fall to 22745, no surviving msgid loses its translation, and 2924 of the 2948 removed entries carried their own source as their translation. The import is guarded because the site builds arbitrary refs and one older than utils/i18n/ cannot supply the predicate; the transform then does nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>