What happened
The msgid For example, if you want to prevent edits containing the domain <code>t.co</code>, add <code>(\x08|https://|http://)t\.co</code> to the spamwords list. contains a literal backspace control character (\x08) where a regex \b (word boundary) was almost certainly intended. This is presumably a copy/paste or encoding artifact from the original English source string in Open Library, not something introduced by the translation pipeline.
Per the translation instructions, msgid entries containing control characters must be left untranslated (msgstr empty), so this entry is permanently stuck as untranslated across all locales until the source string is fixed upstream.
Impact
This single entry shows up in ./i18n untranslated <lang> for every language and can never be resolved by a translation run — it will keep reappearing as "remaining work" indefinitely.
Suggested fix
Fix the source string in Open Library (the .html template that defines this msgid) to use a literal two-character \b (backslash + b) instead of the control character, then re-sync messages.pot. Alternatively, ./i18n validate/untranslated could special-case and flag such entries distinctly from normal untranslated work so they don't inflate the untranslated count run after run.
What happened
The msgid
For example, if you want to prevent edits containing the domain <code>t.co</code>, add <code>(\x08|https://|http://)t\.co</code> to the spamwords list.contains a literal backspace control character (\x08) where a regex\b(word boundary) was almost certainly intended. This is presumably a copy/paste or encoding artifact from the original English source string in Open Library, not something introduced by the translation pipeline.Per the translation instructions, msgid entries containing control characters must be left untranslated (
msgstrempty), so this entry is permanently stuck as untranslated across all locales until the source string is fixed upstream.Impact
This single entry shows up in
./i18n untranslated <lang>for every language and can never be resolved by a translation run — it will keep reappearing as "remaining work" indefinitely.Suggested fix
Fix the source string in Open Library (the
.htmltemplate that defines this msgid) to use a literal two-character\b(backslash + b) instead of the control character, then re-syncmessages.pot. Alternatively,./i18n validate/untranslatedcould special-case and flag such entries distinctly from normal untranslated work so they don't inflate the untranslated count run after run.