8100adec75
Machine-assisted first pass over the entire <table_shipLog> section — all 483 entries (115 location/entry names + 368 rumor/fact paragraphs). String <key> lookups left untouched; plain text, no markup. Locked decisions applied: - Narrator voice = masculine (genderless protagonist); Solanum feminine, Coleus masculine, other "they" travelers masculine by default. - New place names: Hanging City -> Visuté mesto, Sunless City -> Bezslnečné mesto, Orbital Probe Cannon -> Orbitálne delo sondy, Cinder Isles -> Vyhorené ostrovy, plus High Energy Lab, White Hole Station, Gravity Cannon, the Quantum towers/shrine, anglerfish -> udicovka, etc. (recorded in docs/glossary.md §3, §5b). XML re-verified well-formed; keys identical; UI/rest byte-unchanged; no English place names remain in values; mod still builds. Still needs the Slovak review pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
117 lines
5.9 KiB
Markdown
117 lines
5.9 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, 2424 entries) — ⬜ todo.**
|
|
|
|
### 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/
|