fix(menu): translate the current controls and automatic hints #2654
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!2654
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/menu-hint-translations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What this is for: make the current controls, automatic mesh-shader and automatic button-prompt hints find their translations (current main CI). What is measured: the affected game-free check before and after, with GCC 16.2.1 and Clang 23.1.3 selected, plus one strict full-suite run, as recorded below. This check is Python-only; the two environment runs do not claim compiler coverage. Not measured: a game run or Windows execution.
Cause
#1864 imported all thirteen catalogs after #1930, #2362 and #2435 had changed those three complete English hints; runtime lookup is exact, so their old keys no longer match (
gpu/vk/menu_i18n.h,vk_menu.cpp,vk_menu_i18n.cpp).The relevant failure in main's CI log is:
What changed
Update all 39 keys and their full translations; leave English help and runtime lookup unchanged. Retain exact membership, order, count, formatting and whitespace checks, and require all three current hints in every language so deleting an entry cannot hide the mismatch.
How it was tested
Recorded on 2026-11-11, Linux kernel
7.2.15-1-omarchy, basede866017, headf9a7e70f(version and test records).a016b7a6: the affected check fails independently in both compiler environments with the diagnostic above; the branch passes independently in both (python -I -B tests/run_all.py --strict --jobs 1 tests/test_menu_i18n.pyrecords).python -I -B tests/run_all.py --strict:456 passed, 14 failed, 20 skipped in 162 s (linux, 32 at once), load 81.38 → 42.70 (complete suite output).test_wayland_libdecor_hint.py,test_display_startup_failure.py,test_texel_buffer_ownership.py,test_audio_aux.py,test_audio_biquad.py,test_dlss_checks.py,test_env_on.py,test_framegen_preset.py,test_hdr_encode.py,test_linux_docker_packages.py,test_mods_size_table.py,test_mouse_native.py,test_readback_part.py,test_rumble_menu.py(complete suite output). The companion fixture, capture-switch, PPA-parser and camera-handover branches address their separate causes; #2614 owns the HDR check and is not duplicated here.About the translations
The added clauses in the 39 entries were written with a language model, in the wording of each catalogue's existing entry (the part that was already translated is kept word for word). Nobody who speaks these languages natively has read them; corrections are welcome and will not break the check, which compares only the English keys.
Not tested / risks
No game or layout screenshot was taken, and no native-speaker review was performed; the checks establish key coverage and structural consistency, not linguistic or visual polish.
Overlaps
#2417 is an alternative localization implementation, not a repair of these catalogs; it and #2566 merge cleanly with this change in the recorded overlap comparison.
Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra [email protected]
Checked this against current main, not only the PR's base.
tests/test_menu_i18n.pywith the PR'smenu_i18n.hagainst main'svk_menu.cppandvk_menu_i18n.cpp: all 5 tests pass. With main'smenu_i18n.hand the same test,test_texts_are_the_menusand the newtest_current_hints_are_translatedboth fail on the stale key, so the new check does catch the bug.Overlap: #1864 is already merged (this repairs what it imported). #2417 is a separate localization approach; this only edits table entries and a test, so it should not collide beyond whatever #2417 does to the same header.
Nit: the
assertIntoassertTrue(... in ...)change intest_texts_are_the_menusdoes nothing useful (same check, but assertIn gives a better failure message). Fine to revert, not blocking.CI was still running when I looked. The failures listed as known on main (env_on, hdr_encode, linux_docker_packages, mouse_native, Windows psychov35 and pcache_header_read) are not this PR's. Good to merge once CI is green apart from those.
github-sync referenced this pull request2026-11-12 06:22:54 +00:00