Outer Wilds SK Translation Mod — working notes
The project's conventions and repository layout. This page was the repository's
CLAUDE.md until 2026-08-08; nothing loads it automatically, so read it before
starting work.
Working context for Claude Code (and human contributors) in this repository.
What this repo is
An unofficial Slovak (slovenčina) translation mod for Outer Wilds — base game and the Echoes of the Eye DLC. It is primarily a data/translation project, not a conventional codebase: the bulk of the work is one large XML file of translated strings, wrapped in a thin C# mod shell.
- Not affiliated with Mobius Digital / Annapurna. Game text is © Mobius
Digital, used under their Fan Content Policy. This project's own code and
translation are MIT (see
LICENSEandREADME.md). - Roadmap and phase status live on Roadmap. Update it as phases land.
How the mod works
It is an OWML mod that depends on xen-42's
Localization Utility / Interplanetary Polyglot (xen.LocalizationUtility, MIT).
The utility does all the heavy lifting; this mod just:
- Declares the dependency in
manifest.json:"dependencies": ["xen.LocalizationUtility"]. - In its
ModBehaviour.Start(), grabs the API and registers a new language:var api = ModHelper.Interaction.TryGetModApi<ILocalizationAPI>("xen.LocalizationUtility"); api.RegisterLanguage(this, "Slovenčina", "assets/Translation.xml"); - Ships the translated strings in
assets/Translation.xml.
No game files are needed to build the mod. The English source
Translation.xml is published by the utility repo and used as the template.
Slovak is a Latin-script language, so no AddLanguageFixer (that's for RTL
scripts) is needed. A custom font via AddLanguageFont (Unity 2019.4.27f1
asset bundle) is only required if the stock game font is missing Slovak glyphs —
to be verified during in-game testing (Phase 6/7).
Planned repo layout
Outer-Wilds-SK-Translation-Mod/
├── manifest.json # OWML manifest (uniqueName, deps, entry DLL)
├── SlovakTranslation.cs # ModBehaviour: registers the language
├── ILocalizationAPI.cs # interface copied from the utility
├── SlovakTranslation.csproj # build against OWML/game refs
├── SlovakTranslation.sln
├── assets/
│ └── Translation.xml # THE translation (English keys, Slovak values)
├── README.md · LICENSE
Model the C#/manifest scaffold on the community Czech mod
(shippy/outer-wilds-czech).
Translation conventions (important)
Translation.xml is a flat <TranslationTable_XML> of repeated <entry>
blocks, each with a <key> and a <value>. Rules:
- Never edit
<key>. It is the exact English source string the game matches on — changing it silently breaks that string's translation. - Translate only
<value>. Start from a copy of the English file (key == value) and replace each value with Slovak. - Preserve inline markup verbatim, including XML-escaped tags:
<color=orange>…</color>,<i>…</i>,</color>, and raw entities< > &. Translate the words, keep the tags. - Keep speaker prefixes (e.g.
POKE:,CLARY:) and any leading labels. - Use the glossary (Glossary) for proper nouns and recurring terms so Nomai / the Eye / Ash Twin Project / etc. render identically everywhere.
- Watch text length: Nomai text walls and UI have limited space — prefer concise phrasings where the English is terse.
Translation production: machine-assisted first pass (clean-room, no third-party text) followed by a Slovak-speaking review pass. Phase by category for shippable increments: UI/menus → dialogue/text walls → ship log.
Build & test
- Toolchain present locally:
dotnet 6.0.400,git. The game and the Outer Wilds Mod Manager are NOT installed on this machine — in-game testing (Phase 7) requires installing Outer Wilds + Mod Manager + OWML first. - Build:
dotnet build(the.csprojreferences OWML/game DLLs — see the Czech mod for the exact reference setup). - Test: load via the Mod Manager, select Slovenčina, and verify menus, dialogue, and the ship log render correctly (including diacritics á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž).
Repo / process notes
- This is a standalone project repo (Gitea
Homer/Outer-Wilds-SK-Translation-Mod), independent of~/Agent/Systems. Changes here do not require a system changelog entry — unless we install system tooling (game, Mod Manager, a Unity version) to support it, in which case record that in~/Agentdocs as usual. - Commit as the Gitea identity (Homer admin@ecoposta.sk). Don't commit/push unless asked.