Repository navigation
feat(menu): the start-up screen and the FPS counter in the menu's language, English where no font draws a script - #2679
Conversation
…guage, English where no font draws a script The Insert menu speaks 13 languages since NotRexed#1864, but the start-up screen (the first thing a player sees after an update, minutes long) and the FPS counter's labels stayed English, and a Japanese, Korean or Chinese menu on a PC without a CJK font drew boxes. - The start-up screen's texts (steps, titles, notes, "n / m shaders", the time left) and the FPS counter's ("game 60", "1% low", the breakdown's names, which had entries that were never looked up) go through the same tables. - A language whose script no font on the PC draws falls back to English, and the log says so. - test_menu_i18n reads the texts of vk_progress.h and fps_stats.h too. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
I checked The source-extracted I can carry that fixture adjustment when rebasing the second package to land. Neither public branch was changed; this is source/helper validation, not a combined backend build or game run. |
Joey-Magnus
left a comment
There was a problem hiding this comment.
I merged this into current main and ran tests/run_all.py i18n startup fps menu utf8 declarations: 29 passed, 1 skipped (dotnet). I checked the risky parts by hand. tr() matches "game 60" and "1% low 58" against the new format entries, and the lone % in "1% low", "1% pior", "下位1% %.0f" and the others is read as plain text by conversion(), so no translation picks up a stray conversion. The fallback in vk_imgui.cpp:179 skips the * wildcard, and lang_now() is used only by drawing, plural() and script_fonts, so falling back to English changes nothing outside the menu's text.
Two things are left before this can go in:
- The start-up screen and the FPS counter are on-screen changes, and the description says screenshots will follow. Please post one of the start-up screen in a non-English language, plus the English fallback for ja/ko/zh on a PC with no CJK font (with the log line).
- #2600 adds a test fixture built from
script_fonts, and that fixture needs ani18n::font_missingadapter once both PRs are in, as Arkex-ai found. Whichever PR merges second has to carry that adapter.
|
Here are the requested captures of the localized start-up preparation screen ( Localized Start-up Screen Captures
CJK Missing Font FallbackWhen running on a system without installed CJK glyph fonts for Japanese, Korean, or Chinese ( Instead of rendering tofu / missing-glyph boxes across the start-up screen, menu, and FPS overlay, Coordination with #2600Thanks @Arkex-ai and @Joey-Magnus for verifying the merge alongside #2600. If #2600 lands first, we'll happily rebase and carry the |



The Insert menu speaks 13 languages since #1864, but the start-up screen (what a player watches for minutes after an update) and the FPS counter's labels stay English, and a Japanese, Korean or Chinese menu on a PC without a CJK font draws boxes. This finishes what #1864 left out.
Changes
vk_progress.hnow builds the count line from a format, so a language can put it in its order; the text it makes is unchanged).script_fontsfinds no font for a language's letters, the menu stays in English for that run (the log line says so) instead of drawing boxes.test_menu_i18nreads the texts ofvk_progress.handfps_stats.htoo, and checks the fallback is wired.menu_i18n.h), tables kept sorted.en-GB, fr-CA and es-419: es-419 is its own table already; en-GB and fr-CA follow English and French, as the Auto rule in
lang_nowsays.Checks
python -I -B tests/run_all.py i18n startup fps menu utf8 declarations→ 30 passed, 0 failed (Windows, llvm-mingw clang++).vk_menu.cppandvk_menu_i18n.cppcompile as syntax-only; not run in the game yet (screenshots of the start-up screen in another language will follow).