Files
Outer-Wilds-SK-Translation-Mod/CLAUDE.md
T
Jaroslav Beneš e66ce54d3e Add OWML mod skeleton and import English translation template
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>
2026-07-20 10:12:10 +02:00

4.8 KiB

CLAUDE.md — Outer Wilds SK Translation Mod

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 LICENSE and README.md).
  • Roadmap and phase status live in PLAN.md. 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:

  1. Declares the dependency in manifest.json: "dependencies": ["xen.LocalizationUtility"].
  2. 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");
    
  3. 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)
├── docs/
│   └── glossary.md            # fixed SK terms for proper nouns
├── README.md  ·  CLAUDE.md  ·  PLAN.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: &lt;color=orange&gt;…&lt;/color&gt;, &lt;i&gt;…&lt;/i&gt;, &lt;/color&gt;, and raw entities &lt; &gt; &amp;. Translate the words, keep the tags.
  • Keep speaker prefixes (e.g. POKE:, CLARY:) and any leading labels.
  • Use the glossary (docs/glossary.md) 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 .csproj references 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 ~/Agent docs as usual.
  • Commit as the Gitea identity (Homer admin@ecoposta.sk). Don't commit/push unless asked.