e66ce54d3e
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>
94 lines
4.4 KiB
Markdown
94 lines
4.4 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 ⬜
|
|
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.
|
|
|
|
### 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/
|