Steam client version (build number or date): 1785347151
Distribution (e.g. Ubuntu): CachyOS Linux (Arch-based), KDE Plasma 6 / Wayland
Opted into Steam client beta?: Yes (steam_client_publicbeta_ubuntu12)
Have you checked for system updates?: Yes
Locale: ru_RU.UTF-8
Please describe your issue in as much detail as possible:
The SteamUpdateUI / bootstrapper window — the small "Checking for updates…" dialog shown before the client window — renders every character as a ▯ box. The window itself works: it is drawn, the progress bar and button are in place, and the update check completes normally. Only the glyphs are missing.
This affects any locale whose alphabet is not Latin. Here the interface language is Russian, so the entire text of the dialog is unreadable. Setting LC_ALL=C makes the same dialog render fine, which points at the glyph coverage of the font the bootstrapper ends up with rather than at the window or the toolkit.
The client itself is not affected — its own UI renders Russian correctly. It is specifically the bootstrapper/update dialog.
What I checked, in case it saves you time
The host has the fonts.fc-match Arial → LiberationSans-Regular.ttf, and that file contains Cyrillic (2327 mapped characters). Noto Sans and DejaVu Sans are installed as well. So on the host side the substitution the dialog asks for resolves to a Cyrillic-capable font.
The dialog asks for Arial.resource/steamscheme.res requests "name" "Arial" for the bootstrapper fonts.
The bootstrapper runs under the scout LD_LIBRARY_PATH runtime (ubuntu12_32/steam-runtime), which ships no fonts of its own (find … -name '*.ttf' → 0 files) and therefore depends on the host's fontconfig — while using the runtime's own, much older fontconfig/freetype.
That last point is where I would look first: the host resolves Arial to a font with Cyrillic, the dialog does not, and the difference between them is which fontconfig performs the lookup. I have not verified the mechanism inside the container, so please treat the cause as a lead rather than a conclusion — the reproducible part is everything above it.
Steps for reproduction
Run Steam on a system with a non-Latin locale (LANG=ru_RU.UTF-8 here) and the interface language set to that language.
Wait for the background update check, or start the client so the bootstrapper dialog appears.
The dialog text is drawn as ▯▯▯▯▯▯ boxes.
Run the client with LC_ALL=C: the same dialog renders readable text.
Related but different reports
#1765 — the bootstrapper font being ugly. Open since 2013, but it is about aesthetics; there the text is legible.
#8832 — the SteamUpdateUI window being empty with X errors. Here the window draws correctly and no X errors are logged.
Impact
Cosmetic in normal operation: the dialog is short-lived and updates install regardless of whether its text can be read. It matters when a large client update is actually downloading — that is the one moment the dialog is on screen long enough to be read, and the user cannot tell what it says or how far along it is.
Your system information
steam_client_publicbeta_ubuntu12)ru_RU.UTF-8Please describe your issue in as much detail as possible:
The SteamUpdateUI / bootstrapper window — the small "Checking for updates…" dialog shown before the client window — renders every character as a
▯box. The window itself works: it is drawn, the progress bar and button are in place, and the update check completes normally. Only the glyphs are missing.This affects any locale whose alphabet is not Latin. Here the interface language is Russian, so the entire text of the dialog is unreadable. Setting
LC_ALL=Cmakes the same dialog render fine, which points at the glyph coverage of the font the bootstrapper ends up with rather than at the window or the toolkit.The client itself is not affected — its own UI renders Russian correctly. It is specifically the bootstrapper/update dialog.
What I checked, in case it saves you time
fc-match Arial→LiberationSans-Regular.ttf, and that file contains Cyrillic (2327 mapped characters). Noto Sans and DejaVu Sans are installed as well. So on the host side the substitution the dialog asks for resolves to a Cyrillic-capable font.resource/steamscheme.resrequests"name" "Arial"for the bootstrapper fonts.LD_LIBRARY_PATHruntime (ubuntu12_32/steam-runtime), which ships no fonts of its own (find … -name '*.ttf'→ 0 files) and therefore depends on the host's fontconfig — while using the runtime's own, much older fontconfig/freetype.That last point is where I would look first: the host resolves
Arialto a font with Cyrillic, the dialog does not, and the difference between them is which fontconfig performs the lookup. I have not verified the mechanism inside the container, so please treat the cause as a lead rather than a conclusion — the reproducible part is everything above it.Steps for reproduction
LANG=ru_RU.UTF-8here) and the interface language set to that language.▯▯▯▯▯▯boxes.LC_ALL=C: the same dialog renders readable text.Related but different reports
Impact
Cosmetic in normal operation: the dialog is short-lived and updates install regardless of whether its text can be read. It matters when a large client update is actually downloading — that is the one moment the dialog is on screen long enough to be read, and the user cannot tell what it says or how far along it is.
A screenshot is attached below.