Localise the 9.2.1 What's New title (#878) - #916
Merged
Conversation
Cutting 9.2.1 left main failing the i18n gate. appchangelog-gen.py writes the
Android title as a raw Kotlin literal:
title = "{esc_kt(wn["title"])}", # appchangelog-gen.py:60
so every release adds one hardcoded UI string, which is exactly what #878
described. That issue is closed, but the generator was never changed — 9.2.0's
title was localised by hand in #886 and the issue closed on the strength of it.
Same thing here, so the same manual fix, and #878 reopened for the generator.
Two things made it worse than a normal red check. The release workflow pushes
with GITHUB_TOKEN, and GitHub does not trigger workflows on those pushes, so no
run exists on 7054aef or 21e36a2 — main was red with nothing reporting it. And
the audit is a whole-tree gate rather than a diff, so it red-checks every open PR
on a line none of them touched; #915 hit it first.
Key follows the established convention — first six slug words plus
sha1(value)[:8], verified by reproducing 9.2.0's key from its title — and the
title is translated in all five locales alongside the English, matching how every
earlier release title is carried.
This was referenced Jul 28, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mainis currently red on the i18n gate, and every open PR inherits it. This fixes that.What happened
Cutting 9.2.1 added a hardcoded UI string.
appchangelog-gen.pywrites the Android title as a raw Kotlin literal:which is precisely what #878 described — "a raw literal fails i18n on every release and red-checks all open PRs". That issue is closed, but the generator was never changed: 9.2.0's title was localised by hand in #886 and the issue closed on the strength of that. So the same manual fix applies here, and #878 wants reopening for the generator itself.
Why nobody saw it
Two things compounded:
fork-release.ymlpushes withGITHUB_TOKEN, and GitHub does not trigger workflows on those pushes — so there is no run on7054aef8or21e36a2b. Main went red silently.The fix
Key follows the established convention — first six slug words +
sha1(value)[:8]— which I verified by reproducing 9.2.0's existing key from its title before generating this one. Translated in all five locales alongside the English, matching how every earlier release title is carried.The real fix is upstream
This is the second release in a row patched by hand. The generator should emit
uiString(R.string.<key>)plus the English resource, and warn loudly listing the locales that still need the title translated — it cannot supply translations itself, but it can turn a silent red into an explicit task. Reopening #878 with that scope rather than filing a duplicate.