Files
Outer-Wilds-SK-Translation-Mod/PLAN.md
T
Jaroslav Beneš 299f69ab8d Translate dialogue batch 17: Gabbro (travelers)
Gabbro's full Giant's Deep campsite conversation (204 lines): the laid-back
"time buddy" surfer-philosopher — time-loop musings, memory statues, Statue
Island (Ostrov sôch), the Orbital Probe Cannon, his quantum poem/art, the
meditation mini-lesson, and the deep-space-satellite ("Ol' Spacey" ->
Vesmírko) inspection log. Masculine voice; player as ty; Hornfels masculine
per existing SK. <i>/<Pause> markup and repeated menu blocks preserved.

Also corrects PLAN.md's scope estimate: a suffix-of-key scan shows ~1090
dialogue lines still untranslated (ID-prefixed keys hid them from the earlier
key==value check), not the ~730 previously assumed.

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

16 KiB
Raw Blame History

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:

  • manifest.jsonauthor: Homer, uniqueName: Homer.SlovakTranslation, name, version, owmlVersion, dependencies: ["xen.LocalizationUtility"].
  • ILocalizationAPI.cs — interface copied from the utility.
  • SlovakTranslation.csModBehaviour 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.
    • 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 &lt;TimeMinutes&gt;/&lt;TimeSeconds&gt; 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 (&lt;RemainingMinutes&gt;…) + \n and &lt;TimeMinutes&gt;/&lt;TimeSeconds&gt;.
    • 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 ClaryYarrow 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 11 — final Nomai batch (113 lines) — ALL NOMAI DIALOGUE DONE. The warp-window details, mining-sites/native-life (Coleus/Cycad/Oeno), the new-Vessel debate (Ilex), the memory-statue philosophy (Phlox/Daz/Cassava), the probe-cannon-origin / Eye-search debate (Avens/Cassava/Plume), the Sun Station "mission" humor (Idaea), the anglerfish-fossil study (Melorae/Coleus), and scattered scroll-wall leftovers. Privet revealed feminine ("her brother") — corrected her one masculine line in batch 3. Every speaker-prefixed Nomai line is now translated.
    • 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 / SeccaDin (Canna, Bromi, Clem, Hyssop, Neem, Escall, Filix, Din). Distant place names translated (Súmračná galaxia, Čierna skala, Jasná iskra) and flagged.
    • Nomai dialogue: complete. Remaining dialogue is the ~1725 Hearthian/player lines (villagers, the travelers, player-facing/system text).
    • Hearthian villagers — 🚧 started.
      • Batch 12 — Museum + Slate (100 lines) — the museum signs/exhibits and Slate the shipbuilder's whole launch-day conversation (ship, launch codes, ship-log markers, marshmallows, his jabs). First use of mláďa (Hatchling). Player addressed as ty; "Stars above" → Hviezdy nad nami; Hearthian names kept (Slate, Hornfels, Gossan, Hal, Mica).
      • Batch 13 — Hal + Gossan + Hornfels (204 lines) — the rest of launch day: Hal (translator inventor, the new Nomai statue), Gossan (flight coach, zero-g training), and Hornfels (curator, launch codes, the travelers' whereabouts, Feldspar, and his redshift "Observations" exhibit on the expanding universe). "Stars above" → Hviezdy nad nami; translator tool → prekladač; preserved &lt;Pause&gt;/&lt;Pause/&gt;/&lt;color=grey&gt; and \n\n. The village kids (Tephra, Galena, Marl, Rutile…) and other NPCs remain.
    • ⚠️ Scope correction (batch 17): the earlier line-counts under-counted. A proper scan (a value is untranslated iff it's a suffix of its ID-prefixed key — e.g. key MeetGabbro3F… / value ) shows ~1090 dialogue lines still untranslated, not the ~730 previously estimated. Remaining blocks (asset-ID ranges): player-self/duplicate convo (169308, 140), Gabbro 366575 , Feldspar/Chert HUD signs (800842, 13291380, 18221840), village kids (14591752, ~260), Chert campsite (19752283, 308), Signalscope kid + misc (23602421, 59), plus generic traveler responses interleaved.
    • The travelers — 🚧 started (Gabbro, Riebeck, Feldspar, Esker, Chert; each a big campsite conversation).
      • Batch 17 — Gabbro (204 lines) — the laid-back "time buddy" on Giant's Deep (Obrova hlbina): his surfer-philosopher patter about the time loop, the memory statues, Statue Island (Ostrov sôch, his coinage), the Orbital Probe Cannon breaking, his quantum poem/art, the meditation mini-lesson, and the deep-space-satellite ("Ol' Spacey" → Vesmírko) inspection log. Masculine; player as ty; Hornfels masculine (per existing SK). Preserved &lt;i&gt;/&lt;Pause&gt; markup and the many repeated menu blocks. Flag for review: the "Ol'"-is-affectionate line (465) references old-ness while the nickname Vesmírko carries affection via diminutive instead — minor disconnect. Remaining travelers: Chert (308), Esker, Riebeck/Feldspar leftovers.
      • Batch 14 — Feldspar (120 lines) — the boastful crashed ace in Dark Bramble (his crash tale, the anglerfish skeleton camp, the "space is bigger inside the seeds" theory). Masculine; heavy on mláďa; kept his swagger. Remaining travelers: Gabbro (~213), Riebeck (~125), Chert (~150), Esker (~160).
      • Batch 15 — Riebeck (69 lines) — the anxious, stammering archaeologist on Brittle Hollow: loves the Nomai ruins (the Hanging City), terrified of the "you-know-what" (black hole). Masculine; timid ehm/uf voice; kept the &lt;size=20&gt; shrinking-text asides. (His planet's HUD labels + the museum star/skeleton exhibits interleaved in this range are deferred to their own batches.) Remaining travelers: Gabbro (~213), Chert (~150), Esker (~160).
    • Batch 16 — Nomai shrines + system/HUD text & location signs (98 lines) — a sweep of the player-facing/system and Nomai-shrine text interleaved through the flat list that earlier speaker-based batches skipped: the Eye Shrine and Quantum Shrine wall-text (the Oko vesmíru signal philosophy Q&A), the Tower of Quantum Knowledge trial/pilgrimage lines ("Seek the wandering arch", quantum-imaging congratulations), the Brittle Hollow location signs (districts + directional \\n(sever/juh/…​ N m) markers — Visuté mesto, Kováreň čiernych dier, Veža kvantového poznania, etc.), the Escape Pod 2/3 flightlogs + cannon/probe/Sun-tower system readouts (&lt;NbTimeloops&gt;, &lt;TimeMinutes&gt;, &lt;MinutesSinceRedGiant&gt; tokens preserved), and scattered UI labels (RECORDING → NAHRÁVANIE, warnings/verdicts, "the Prisoner" → Väzeň). Directions localized (north→sever, below→dole, left→vľavo…); "281,042" → 281 042. Left the two ASCII-art easter eggs (LOADING/QR) unchanged. XML re-verified well-formed. Only remaining key==value entries are the 22 Hearthian/Nomai character names (kept in English) + those 2 art blocks.

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