mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
translate.py appends its marker to a message's user comments, so it ends up on the line closest to the msgid. Under `same or above`, which reads exactly one line, that pushes any older marker out of reach: a suppression stops working the moment the entry gets translated, silently. The marker also becomes an annotation, `translated-by: libretranslate` instead of a bare word, so a reader can tell what the line asserts and a second annotation can join it without ambiguity. `is_suppressed_at` gains `block-above` for that shape: the construct's own line, or any comment line above it inside the same blank-line-delimited block. The block boundary matters because a catalog entry carries the URL in both msgid and msgstr, and only the msgid follows the comments; stopping at the first non-comment line would leave the translation unguarded. Only `.po` selects it, by file suffix; every other file keeps `same or above`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>