Skip to content

fix(menubar): pin multi-argument catalog keys to positional specifiers - #1435

Merged
iamtoruk merged 1 commit into
mainfrom
fix/menubar-positional-catalog-rebased
Sep 14, 2026
Merged

iamtoruk merged 1 commit into
mainfrom
fix/menubar-positional-catalog-rebased

Conversation

@iamtoruk

Copy link
Copy Markdown
Member

#1370 by @ozymandiashh rebased onto main; only the CHANGELOG conflicted. The commit is theirs unchanged and merges with a rebase merge so authorship stays with them. Verified by rendering all 42 multi-argument strings on main and on the branch: identical output in both languages. Closes #1331.

The catalog comparison matched specifier lists, so a key whose
placeholders are all %@ passed even when the Chinese value bound the
arguments into the wrong slots — the drift that shipped in three
early-reset keys and was only caught by rendering real data bilingually
(#1331).

All 42 multi-argument keys in both tables now use positional specifiers
(%1$@, %2$lld, ...); the parity check compares slot to verb so Chinese
word order stays free while each slot keeps its type; a new test fails
on any multi-argument key that is not positional.

The source scanner closes its three expression gaps: ternary branches,
concatenated literals, and let-bound literals passed by name.
Text(verbatim:) stays the explicit opt-out; the four provider-name
fallbacks the new rules surfaced in HeatmapSection route through the
catalog as verbatim entries.

Closes #1331
@iamtoruk
iamtoruk merged commit a208c25 into main Sep 14, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

localization: catalog test cannot see argument-order drift when specifiers share a type

2 participants