1d151c8e8e
87 Nomai lines: the Tower of Quantum Knowledge pilgrimage scrolls (Bells), the Fossil Fish Cave anglerfish blindfold game and short "who was it" answers (Laevi, Taget, Ilex, Lami), and the ancient "Disappearance of Escall" myth told among distant clans + the Escape Pod 3 / Secca-Din thread (Canna, Bromi, Clem, Hyssop, Neem, Escall, Filix, Din). Bells masc; Taget masc; Filix feminine (same crew member). "Aunt Pye" reconfirms Pye feminine. Distant place names translated and flagged for review (Gloaming Galaxy -> Súmračná galaxia, Blackrock -> Čierna skala, Bright Spark -> Jasná iskra). Verified: XML well-formed; keys identical; only these 87 values changed; markup parity; ship log/UI/rest byte-unchanged; no stray chars; builds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
180 lines
11 KiB
Markdown
180 lines
11 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 `<color=…>`/`<i>` 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`, `<!>` input-prompt tokens, `<Profile Name>`
|
||
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 `<color=…>`/`<i>`/`<size=…>` markup,
|
||
template tokens (`<Pause/>`, `<TimeMinutes>`, `<NbTimeloops>`,
|
||
`<…SinceRedGiant>`), `\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.
|
||
- **Batch 2 — Vessel / warp-core debate (29 lines) ✅** — the Nomai clan
|
||
debating how to obtain the advanced warp core for the Ash Twin Project
|
||
(Oeno, Clary, Poke, Idaea, Avens, Cassava, Spire, Mitis) + Poke's personal
|
||
reflections + the Vessel's escape-pod launch / crash computer log. Poke &
|
||
Clary feminine, Annona masculine.
|
||
- **Batch 3 — Orbital Probe Cannon (50 lines) ✅** — Construction Yard cyclones
|
||
(Conoy, Spire, Cassava), building/firing the cannon (Cassava, Daz, Mallow,
|
||
Privet, Avens, Yarrow), the "let's send a probe" decision, and the cannon's
|
||
damage-report / launch-log system text. Avens masc, Ramie fem. Preserved
|
||
`<TimeMinutes>`/`<TimeSeconds>` tokens and the "on the other
|
||
appendage" Nomai joke.
|
||
- **Batch 4 — Ash Twin Project warp mechanism (53 lines) ✅** — warp-tower
|
||
alignment lore, White Hole Station tutorial, tower designs, ore/shell
|
||
construction, warp-core-source debate (Yarrow, Clary, Poke, Root, Phlox,
|
||
Oeno, Cycad, Annona, Ramie, Ilex). Pye fem, Plume masc. (Sun Station debate,
|
||
firing, failure + memory statues still to come.)
|
||
- **Batch 5 — Sun Station + memory statues (61 lines) ✅** — the Sun Station
|
||
build debate (Idaea/Pye/Ramie/Poke), Pye's supernova/"gas" humor, the firing
|
||
orders, the failure aftermath, and the memory statues + masks (Phlox, Daz,
|
||
Yarrow, Ramie, Oeno, Root). Idaea masc. Preserved the 1304 countdown tokens
|
||
(`<RemainingMinutes>`…) + `\n` and `<TimeMinutes>`/`<TimeSeconds>`.
|
||
- **Batch 6 — High Energy Lab (42 lines) ✅** — the negative-time-interval
|
||
experiments (Pye & Ramie), the white/black-hole-core setup, the 22-minute
|
||
hypothesis, and the High Energy Lab / Sunless City labels + distance markers.
|
||
Kept Pye/Ramie's "gas / aeriform" state-of-matter puns (flagged for review)
|
||
and Conoy's "lose his head" joke.
|
||
- **Batch 7 — Quantum caves (48 lines) ✅** — the quantum shard, the Quantum
|
||
Moon locator, the wandering-rock / quantum-travel experiments, Coleus's
|
||
disappearance and the search for him, and the Ember Twin shelter-path
|
||
directions (Coleus, Melorae, Bur, Annona, Thatch, Plume). Coleus/Melorae
|
||
masc. Kept the pre-discovery moon names (*putujúci / prízračný mesiac*) and
|
||
Melorae's "my sedimentary friend" geologist humor.
|
||
- **Batch 8 — Interloper shuttle + warp-tower scroll-wall (43 lines) ✅** — the
|
||
comet crew discovering the exotic/ghost matter in the ruptured stone (Pye,
|
||
Poke, Clary — all feminine; Poke & Clary are sisters), plus the leftover
|
||
White Hole Station / warp-tower scroll-wall lines that finish the batch-4
|
||
conversations (Clary/Poke/Root/Yarrow, incl. the Clary–Yarrow romance).
|
||
- **Batch 9 — Brittle Hollow / Escape Pod 1 clan saga (94 lines) ✅** — the
|
||
crash, the volcanic-moon danger, quantum-grove wandering trees/shard, the
|
||
Eye-signal locator, the migration to the northern glacier, and the loss of
|
||
loved ones (Plume, Thatch, Filix, Lami, Annona, Rhus, Ilex, Spire, Coleus,
|
||
Cassava, Kousa). Filix & Melorae revealed **feminine** ("her note", "Aunt
|
||
Melorae") — corrected batch 7's Melorae lines to feminine here.
|
||
- **Batch 10 — Bells scrolls + kids' game + Escall's clan history (87 lines) ✅**
|
||
— the Tower of Quantum Knowledge pilgrimage scrolls (Bells), the Fossil Fish
|
||
Cave anglerfish blindfold game (Laevi/Taget/Ilex/Lami), and the ancient
|
||
"Disappearance of Escall" myth + Escape Pod 3 / Secca–Din (Canna, Bromi,
|
||
Clem, Hyssop, Neem, Escall, Filix, Din). Distant place names translated
|
||
(*Súmračná galaxia*, *Čierna skala*, *Jasná iskra*) and flagged.
|
||
- Remaining: ~108 other Nomai speaker lines + ~1760 Hearthian/player lines
|
||
(mining/native-life, memory-statue debate, new-Vessel debate, probe-cannon
|
||
origin debate, and scattered leftovers).
|
||
|
||
Terminology change (applied file-wide): **Black Hole Forge → Kováreň čiernych
|
||
dier** (was *Zlieváreň čiernej diery*) — 15 occurrences across ship log + dialogue.
|
||
|
||
### 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/
|