Files
Outer-Wilds-SK-Translation-Mod/PLAN.md
T
Jaroslav Beneš e3f562273b Translate dialogue batch 1: Solanum (Phase 5)
Start the dialogue category, batched by content type (the flat <entry>
list is asset-ID ordered, not planet-ordered, so true per-planet batches
aren't in the data — grouping Nomai lore by speaker instead).

Batch 1 = Solanum, all 70 lines: the Quantum Moon pilgrim's astronomy-
museum wall text, Tower of Quantum Knowledge / Quantum Shrine scrolls,
and Eye-of-the-universe philosophy. Feminine voice (locked); player
addressed as ty. Preserved <color=…>/<i> markup, speaker prefix, and
per-entry wrapping whitespace; Nomai names kept (Conoy, Bells).

Verified: XML well-formed; keys identical; only these 70 values changed;
markup tokens intact; ship log/UI/rest byte-unchanged; mod builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 12:59:00 +02:00

126 lines
6.6 KiB
Markdown

# PLAN.md — Slovak translation of Outer Wilds
Roadmap for building the mod. Status markers: ✅ done · 🚧 in progress · ⬜ todo.
## Goal
Add **Slovenčina** as a fully selectable language to *Outer Wilds*, covering the
**base game and the *Echoes of the Eye* DLC**, distributed as an Outer Wilds Mod
Manager mod. Quality target: natural, consistent Slovak — not literal machine
output.
## Approach
- Built on **xen-42's Localization Utility / Interplanetary Polyglot**
(`xen.LocalizationUtility`) — register a new language from one `Translation.xml`.
No game files needed to build.
- **Translation:** machine-assisted first pass (clean-room, no third-party
translation text reused), then a **Slovak-speaking human review pass**. Phased by
category so partial releases are usable: **UI/menus → dialogue/text walls →
ship log**.
- **Scope:** the single ~896 KB `Translation.xml` already contains base game + DLC
strings together, so scope is "everything," sequenced internally by category.
## Phases
### Phase 1 — Repo scaffold & docs ✅
`README.md`, `CLAUDE.md`, `PLAN.md`, and MIT `LICENSE` in place.
### Phase 2 — Mod skeleton ✅
Created the OWML mod shell, modelled on
[`shippy/outer-wilds-czech`](https://github.com/shippy/outer-wilds-czech):
- `manifest.json``author: Homer`, `uniqueName: Homer.SlovakTranslation`,
`name`, `version`, `owmlVersion`, `dependencies: ["xen.LocalizationUtility"]`.
- `ILocalizationAPI.cs` — interface copied from the utility.
- `SlovakTranslation.cs``ModBehaviour` calling
`api.RegisterLanguage(this, "Slovenčina", "assets/Translation.xml")`.
- `SlovakTranslation.csproj` / `.sln`, `.gitignore`, empty `assets/`.
- Optional: GitHub/Gitea release workflow.
### Phase 3 — Import English source ✅
Imported the base English `Translation.xml` (896 KB, 2424 entries, keys == values)
from the utility repo into `assets/`. This is the file to translate.
> Build verified: `dotnet build -c Release` compiles against the `OWML` /
> `OuterWildsGameLibs` NuGet packages (no game install needed) and stages a
> loadable mod folder (`SlovakTranslation.dll` + `manifest.json` +
> `default-config.json` + `assets/Translation.xml`) in `bin/`.
### Phase 4 — Glossary 🚧
First draft of `docs/glossary.md` in place: tone/register locked (informal *ty*),
and SK renderings proposed for the proper nouns and recurring terms below. Rows
marked `❓ review` still need the Slovak-speaking review pass to finalize.
Write `docs/glossary.md` fixing SK renderings (or keep-in-English decisions) for
proper nouns and recurring terms, e.g.: Nomai, Hearthian, the Eye / Eye of the
Universe, Ash Twin Project, Vessel, Black Hole Forge, Quantum Moon, Sun Station,
ship log, Nomai statue, Ember Twin, Ash Twin, Timber Hearth, Brittle Hollow,
Giant's Deep, Dark Bramble, Interloper, Stranger (DLC), Owlk/"Owlks" (DLC).
Decide tone/register (informal *ty* vs. formal) and lock it here.
### Phase 5 — Translate `<value>` entries 🚧
Machine-assisted pass → human review, by category (UI/menus → dialogue → ship log),
base + DLC. Preserve all `&lt;color=…&gt;`/`&lt;i&gt;` markup, entities, and speaker
prefixes. Track progress and any hard-to-translate lines here or in issues.
Progress by category (source has 3 sections — the flat `<entry>` list = dialogue/
text walls, `<table_shipLog>` = ship log, `<table_ui>` = UI/menus):
- **UI/menus (`<table_ui>`, 814 entries) — ✅ machine-assisted first pass done,
place-name terms reviewed & locked.** All values translated; integer `<key>`
IDs untouched; `\n`, `&lt;!&gt;` input-prompt tokens, `&lt;Profile Name&gt;`
placeholder, and color/italic markup preserved; XML re-verified well-formed.
Casing mirrors the source (ALL-CAPS button labels stay caps). A consistency
re-pass applied the locked glossary terms (Scout → *Skaut*, Signalscope →
*Signáloskop*, Timber Hearth → *Drevený kozub*, Ash/Ember Twin → *Dvojča
Popolu / Dvojča Uhlíka*, etc.). Remaining: a general Slovak review of the
non-proper-noun phrasings.
- **Ship log (`<table_shipLog>`, 483 entries) — ✅ machine-assisted first pass done.**
All values translated (location names + rumor/fact entries); string `<key>`
lookups untouched; plain text (no markup). Narrator voice locked to masculine;
ship-log place names locked in the glossary (§3, §5b). XML re-verified
well-formed; mod builds. **Still needs the Slovak review pass.**
- **Dialogue / text walls (flat `<entry>` list, 2423 entries) — 🚧 in progress.**
Batched by **content type** (not planet — the flat list is asset-ID ordered):
Nomai lore/wall-text (by speaker) → Hearthian villagers → travelers →
player/system/DLC. Preserve `&lt;color=…&gt;`/`&lt;i&gt;`/`&lt;size=…&gt;` markup,
template tokens (`&lt;Pause/&gt;`, `&lt;TimeMinutes&gt;`, `&lt;NbTimeloops&gt;`,
`&lt;…SinceRedGiant&gt;`), `\n`, speaker prefixes, and per-entry whitespace.
- **Batch 1 — Solanum (70 lines) ✅** — Quantum Moon pilgrim: astronomy-museum
walls, Tower of Quantum Knowledge / Quantum Shrine, Eye philosophy. Feminine
voice. Applied by key; XML re-verified; builds.
- Remaining: ~593 other Nomai speaker lines + ~1760 Hearthian/player lines.
### Phase 6 — Diacritic / font check ⬜
Verify the stock game font renders all Slovak glyphs
(á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž). Only if any are missing: build a font asset
bundle in **Unity 2019.4.27f1** and wire `api.AddLanguageFont(...)`.
### Phase 7 — Build & in-game test ⬜
**Prerequisite:** install *Outer Wilds* + Outer Wilds Mod Manager + OWML (none are
on this machine yet). Then `dotnet build`, load via the Mod Manager, select
Slovenčina, and verify menus, dialogue, and ship log render correctly.
### Phase 8 — Release ⬜
Tag a Gitea release; optionally submit to the Outer Wilds mod database so the mod
appears in the Mod Manager for everyone.
## Open items / risks
- **Font coverage** for Slovak-specific glyphs (ľ ĺ ŕ ô ä) is unverified until
in-game testing (Phase 6/7).
- **Translation volume is the real cost** — ~896 KB of source text. A
Slovak-speaking review pass is essential, especially for DLC/dialogue nuance,
puns, and Nomai text-wall length constraints.
- **In-game testing is blocked** until the game + Mod Manager are installed locally.
- Confirm the tone/register decision (Phase 4) early — reworking it later is costly.
## References
- Localization Utility / Interplanetary Polyglot (framework, MIT, source template):
https://github.com/xen-42/outer-wilds-localization-utility
- Czech mod (structure reference): https://github.com/shippy/outer-wilds-czech
- OWML: https://github.com/ow-mods/owml
- Mod Manager: https://outerwildsmods.com/mod-manager/