What happened
At the start of this run (batch: tl), before running any ./i18n commands, git status already showed uncommitted modifications to messages.pot and 23 of 24 locale/*/messages.po files (all except the one being worked on hadn't been touched yet by me). The diff is not new translation content — it's pybabel-style reformatting: comment/location lines re-wrapped (e.g. a single-line #: a.html b.html c.html split across multiple #: lines) and some entries reordered as a result of consolidated location comments (e.g. Loan Expires moved to sit next to its new consolidated location comment).
Example (locale/tl/messages.po, before any of my edits):
-#: account.html account/notifications.html account/privacy.html lib/nav_head.html type/user/view.html
+#: account.html account/notifications.html account/privacy.html
+#: lib/nav_head.html type/user/view.html
msgid "Settings"
This matches Babel 2.18.0's default width=76 wrapping behavior for the #: comment lines, so it looks like the checked-in .po/.pot files were last saved with a different Babel version/config than what's installed in the Actions environment (Babel 2.18.0 per pip show babel).
Command that failed
No command failed — this is ambient working-tree state observed via git status immediately after checkout, before running any ./i18n subcommand.
Impact
Because ./i18n apply/fix/compile rewrite the whole .po file for the language being translated, any agent's commit for its language ends up bundling this pre-existing cosmetic reformatting together with its actual new translations. This inflates diffs (e.g. this run's tl commit was 339 insertions / 22 deletions for only 79 new strings) and makes PRs harder to review, since reviewers can't easily tell which lines are real translation changes vs. incidental rewrapping.
It also means the working tree is never actually clean after a batch — 22 other locale files remain modified (untranslated by this run, not committed), which could confuse the next job/run that checks out the same environment or reuses state.
Suggested fix
- Regenerate
messages.pot and all locale/*/messages.po files once with the Babel version pinned in this repo's environment (2.18.0) and commit the resulting reformat as its own no-content-change commit, so future translation PRs only show real msgstr changes.
- Alternatively, pin
pybabel's wrap width / comment format explicitly in the ./i18n toolbox so it matches whatever produced the currently-committed files, avoiding the mismatch entirely.
What happened
At the start of this run (batch:
tl), before running any./i18ncommands,git statusalready showed uncommitted modifications tomessages.potand 23 of 24locale/*/messages.pofiles (all except the one being worked on hadn't been touched yet by me). The diff is not new translation content — it'spybabel-style reformatting: comment/location lines re-wrapped (e.g. a single-line#: a.html b.html c.htmlsplit across multiple#:lines) and some entries reordered as a result of consolidated location comments (e.g.Loan Expiresmoved to sit next to its new consolidated location comment).Example (
locale/tl/messages.po, before any of my edits):This matches Babel 2.18.0's default
width=76wrapping behavior for the#:comment lines, so it looks like the checked-in.po/.potfiles were last saved with a different Babel version/config than what's installed in the Actions environment (Babel 2.18.0 perpip show babel).Command that failed
No command failed — this is ambient working-tree state observed via
git statusimmediately after checkout, before running any./i18nsubcommand.Impact
Because
./i18n apply/fix/compilerewrite the whole.pofile for the language being translated, any agent's commit for its language ends up bundling this pre-existing cosmetic reformatting together with its actual new translations. This inflates diffs (e.g. this run'stlcommit was 339 insertions / 22 deletions for only 79 new strings) and makes PRs harder to review, since reviewers can't easily tell which lines are real translation changes vs. incidental rewrapping.It also means the working tree is never actually clean after a batch — 22 other locale files remain modified (untranslated by this run, not committed), which could confuse the next job/run that checks out the same environment or reuses state.
Suggested fix
messages.potand alllocale/*/messages.pofiles once with the Babel version pinned in this repo's environment (2.18.0) and commit the resulting reformat as its own no-content-change commit, so future translation PRs only show real msgstr changes.pybabel's wrap width / comment format explicitly in the./i18ntoolbox so it matches whatever produced the currently-committed files, avoiding the mismatch entirely.