The previous commit claimed this was fixed; it was not. It hooked
UIStyleManager.GetMenuFont, GetTranslatorFont, GetShipLogFont and
GetShipLogCardFont — all four of which are dead code with no callers anywhere in
Assembly-CSharp. Fonts are assigned straight onto the Text components in the
scene data, so nothing the mod did was ever consulted.
Three further things were wrong and are fixed here:
- The language check reflected into the Localization Utility for TryGetLanguage,
which the installed version does not have, so it could only ever fail. It now
uses the utility's own definition instead: custom languages are numbered past
Language.TOTAL. No reflection, nothing to fail silently.
- The substitution was decided per label, from whether that label's own string
needed a glyph, which left menus mixing two typefaces line by line. It is now
decided per font: a face that cannot draw Slovak is replaced everywhere it is
used. Faces that can — Futura PT for dialogue, Space Mono for the translator —
are still never touched.
- The menu font was assumed to be Gill Sans MT. Logging the fonts actually in
use showed the menus are Adobe - SerifGothicStd, which had been listed as a
stylised face to leave alone. Gill Sans is the HUD prompts.
The replacement now prefers the game's own dynamic cut of the same typeface
(Adobe - SerifGothicStd_Dynamic and friends), matched by name prefix so bold
variants resolve too, which keeps the menu looking like vanilla. Bundled Cabin
is the fallback where the game ships no dynamic sibling, and the new
preferGameTypeface setting forces Cabin everywhere.
Hooks are Text.OnEnable, the Text.text setter, TextTranslation.SetLanguage and
scene load, plus a 2s sweep for menus built lazily after all of those.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Phase 2 (mod skeleton) + Phase 3 (import English source):
- manifest.json / SlovakTranslation.cs / ILocalizationAPI.cs registering
"Slovenčina" via xen.LocalizationUtility (Interplanetary Polyglot).
- SlovakTranslation.csproj / .sln building net48 against the OWML and
OuterWildsGameLibs NuGet packages — no game install needed to compile.
- assets/Translation.xml: English source template (896 KB, 2424 entries,
keys == values) to be translated into Slovak.
- Project docs (README/PLAN/CLAUDE) and .gitignore.
Build verified: dotnet build -c Release stages a loadable mod folder.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>