Compare commits

...

28 Commits

Author SHA1 Message Date
Jaroslav Beneš 59ff1bf86a Review fixes: reword flags, gender cross-check vs Czech mod, catch 12 more leaks
- Reword per review: "an eye or four" -> Maj oko, aj štyri; fishing rhyme 1567
  -> ...návnadička (keeps rhyme + "bait is wrong").
- Gender: cross-checked every gendered self-reference against shippy/
  outer-wilds-czech. Only 3 disagreements file-wide -> Arkose (feminine),
  Porphy (feminine), and the hide-and-seek kid at 1627 (feminine) corrected;
  Filix kept feminine (EN "her note" beats Czech's masculine). All other
  Hearthians confirmed masculine.
- Definitive leak detection: quote-normalized suffix-of-key test caught 12 more
  untranslated values the heuristics missed (curly/straight-quote drift) -
  duplicate Eye-shrine walls (1167-1170), Nomai locator, traveler arrival,
  hide-and-seek + ghost-matter kid lines. Now 0 English leaks in the flat list.
- Consistency: "The Good Stuff" standardized to Tá Dobrota.
- glossary.md + review-notes.md updated with the gender findings. Build OK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 21:05:23 +02:00
Jaroslav Beneš 26435c05ec Add docs/review-notes.md: consolidated review checklist
Compiles the wordplay/puns, coined & provisional terms, gender guesses, and
register/length flags scattered across PLAN.md batch notes and the glossary
into one checklist for the Slovak-speaking human review pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 20:43:39 +02:00
Jaroslav Beneš 9935bf68fb Translate dialogue batches 19-22: finish the flat list (villagers, Chert/Esker, signs, stragglers)
Completes the machine-assisted first pass of the entire flat dialogue list,
produced in parallel (three translator subagents each emitting a JSON of
translations, applied race-free in the main thread) plus a large main-thread
block:

- Batch 19 - Hearthian village kids/villagers (271): Marl, Tephra, Galena,
  Rutile, Tuff, Spinel, Arkose, Gneiss, Porphy, Mica, model-rocket kid,
  hide-and-seek, ghost-matter kids. Player as mláďa.
- Batch 20 - Chert + Esker + Feldspar's jellyfish journal + Gabbro extras
  (359): Chert the astronomer's supernova breakdown, Esker's Mesačná základňa
  on the Skalka, Ember-Twin research signs, Gneiss the instrument-maker.
- Batch 21 - Giant's Deep signs, Signalscope-kid endgame, credits/epitaph
  signs (backer names kept), museum Nomai-writing signs. ASCII-art left as art.
- Batch 22 - straggler sweep (22): lines the suffix-of-key detector missed due
  to curly/straight-quote drift, found via an English-word heuristic (Gabbro
  bright-flash variants, sap-wine labels, ghost-matter Signáloskop game, ATP
  masks readout at 1964, Tektite's scout note).

Consistency: Hollow's Lantern -> Lampáš (glossary note added), ghost matter ->
prízračná hmota, Hanging City -> Visuté mesto. Whole-file English-leak scan: 0
across flat list, ship log, and UI. dotnet build -c Release succeeds and stages
the loadable mod folder. The entire Translation.xml first pass is now complete;
only the Slovak human review pass remains.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 19:20:46 +02:00
Jaroslav Beneš ea50c6dfa6 Translate dialogue batch 18: the "two of you" duplicate conversation
The 125-line conversation between the two copies of the player created by the
black-hole/white-hole jump inside the Ash Twin Project: confused-memory banter,
the dating jokes (Gossan/Slate), the "figment of my imagination" bit, the "we
are the Feldspar of weird time stuff" line, the panic-scream sequence, and the
post-intro bragging menu. Both speakers are the player -> masculine, mutual ty.
The 15 pure-scream onomatopoeia lines left verbatim as language-neutral.
<i>/<b>/<Pause/>/<pause> markup and \\n\\n preserved; XML re-verified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 18:44:26 +02:00
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
Jaroslav Beneš 03783a1528 Translate dialogue batch 16: Nomai shrines + system text & location signs
Sweep of the player-facing/system and Nomai-shrine text interleaved through
the flat dialogue list that earlier speaker-based batches skipped (98 lines):
Eye Shrine + Quantum Shrine signal-philosophy walls, Tower of Quantum
Knowledge trial/pilgrimage lines, Brittle Hollow location/direction signs,
Escape Pod 2/3 flightlogs, cannon/probe/Sun-tower system readouts, and
scattered UI labels. Glossary terms applied; template tokens, markup, \\n
direction markers and multiline whitespace preserved; XML re-verified.

The entire flat dialogue list is now translated apart from the 22 character
names (kept in English) and 2 language-neutral ASCII-art easter eggs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 18:28:24 +02:00
Jaroslav Beneš c4ffd505c0 Translate dialogue batch 15: Riebeck (travelers)
69 lines: Riebeck, the anxious, stammering archaeologist camped on
Brittle Hollow -- passionate about the Nomai ruins (dreamed of seeing
the Hanging City since a hatchling) but terrified of space and of the
"you-know-what" (the black hole below). His reactions to each Nomai
discovery, building to the giddy panic of "you talked to a LIVING Nomai".

Masculine (genderless default); timid ehm/uf voice; Hearthian ->
Kozubčan; "Stars above" -> Hviezdy nad nami; "on my own four eyes"
kept. Preserved <size=20> shrinking-text asides and
<Pause>/<Pause />/<Pause/>/<i> markup.

Scoped to Riebeck's character dialogue; the interleaved Brittle Hollow
HUD labels, museum star/skeleton exhibits, and system logs are deferred.

Verified: XML well-formed; keys identical; markup/token parity; ship log/
UI/rest byte-unchanged; mod builds. (1753 "Riebeck" label kept.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 15:52:04 +02:00
Jaroslav Beneš 161ec1bab3 Translate dialogue batch 14: Feldspar (travelers)
Start the travelers. 120 lines: Feldspar, the boastful "greatest pilot
in Hearthian history," camped in Dark Bramble after crashing -- his
(reluctantly admitted) crash story, the anglerfish-skeleton camp, and
his theory that space expands inside the Dark Bramble seeds. Warm,
folksy, cocky voice.

Masculine (genderless default); heavy use of mláďa (Hatchling);
Hearthian -> Kozubčan; "Stars above" -> Hviezdy nad nami; kept his vanity
("my very handsome head"). Preserved <Pause>/<Pause=3>/<color=grey> and
<i> markup.

Verified: XML well-formed; keys identical; markup/token parity; ship log/
UI/rest byte-unchanged; mod builds. (680 "Feldspar" and 753 "Hm..." kept.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 15:24:48 +02:00
Jaroslav Beneš bc1b3f0cb1 Translate dialogue batch 13: Hal + Gossan + Hornfels (villagers)
204 lines finishing launch day on Timber Hearth: Hal (translator
co-inventor, gushing over the new Nomai statue), Gossan (the tough-but-
caring flight coach, zero-g training on the "satellite"), and Hornfels
(curator/ground control -- launch codes, where the travelers are,
Feldspar's story, and the redshift "Observations" exhibit deducing the
expanding universe).

All genderless Hearthians -> masculine default; travelers masculine.
"Stars above" -> Hviezdy nad nami; "hatchlings" -> mláďatá; translator
tool -> prekladač. Preserved <Pause>/<Pause/>/<color=grey>/<color=orange>
markup and the \n\n signature in 1419.

Verified: XML well-formed; keys identical; markup/token parity; ship log/
UI/rest byte-unchanged; mod builds. (3 name labels intentionally kept.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 15:04:01 +02:00
Jaroslav Beneš 446e1d6934 Translate dialogue batch 12: Museum + Slate (Hearthian villagers)
Start the Hearthian villager category. 100 lines: the museum signs and
exhibits (radio tower, deep space satellite, museum expansion) and Slate
the shipbuilder's entire launch-day conversation -- the ship, launch
codes, ship-log destination markers, marshmallows, and Slate's gruff,
sarcastic jabs.

First use of "mláďa" (Hatchling, 673). Player addressed informally (ty);
"Stars above" -> "Hviezdy nad nami"; Hearthian names kept (Slate,
Hornfels, Gossan, Hal, Mica). Preserved <i> emphases and \n / \n\n tokens.

Verified: XML well-formed; keys identical; markup/token parity; ship log/
UI/rest byte-unchanged; mod builds. (588 "Slate" intentionally unchanged.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 14:52:59 +02:00
Jaroslav Beneš 4fab56c983 Translate final Nomai batch — all Nomai dialogue complete (Phase 5)
113 Nomai lines: 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), Sun Station "mission" humor (Idaea), the
anglerfish-fossil study (Melorae/Coleus), and scroll-wall leftovers.

Privet revealed feminine ("her brother") -- corrected her one masculine
line in batch 3. Kept the Nomai anatomical jokes ("pulling my locomotive
limb", "going gelatinous", "a-core-dingly" pun) and the neutron-star
density gag. Every speaker-prefixed Nomai line is now translated.

Verified: XML well-formed; keys identical; markup parity on all 114
changed values; ship log/UI/rest byte-unchanged; mod builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 14:34:05 +02:00
Jaroslav Beneš 1d151c8e8e Translate dialogue batch 10: Bells scrolls + kids' game + Escall myth
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>
2026-07-20 14:23:29 +02:00
Jaroslav Beneš d97f9e109e Translate dialogue batch 9: Brittle Hollow clan saga (Phase 5)
94 Nomai lines: the Escape Pod 1 clan's story on Brittle Hollow -- the
crash, the volcanic-moon danger, the quantum-grove wandering trees and
shard, the Eye-signal locator, the migration to the northern glacier,
and the grief for lost loved ones (Plume, Thatch, Filix, Lami, Annona,
Rhus, Ilex, Spire, Coleus, Cassava, Kousa).

Gender cues resolved: Filix feminine ("her note"), Melorae feminine
("Aunt Melorae") -- retroactively corrected batch 7's 7 Melorae lines
from masculine to feminine. Recorded in glossary. Poems (Ilex's
gravity-hole rhyme) flagged for review.

Verified: XML well-formed; keys identical; markup parity on all changed
values; ship log/UI/rest byte-unchanged; mod builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:58:29 +02:00
Jaroslav Beneš 4828a450ea Translate dialogue batch 8: Interloper shuttle + scroll-wall (Phase 5)
25 Interloper lines: the comet crew (Pye, Poke, Clary) descending into
the ice, finding the spherical stone casing of volatile exotic/ghost
matter under immense pressure, and Pye ordering Poke to flee and warn
the clan. All three feminine (Poke & Clary are sisters). Plus 18
leftover White Hole Station / warp-tower scroll-wall lines that finish
the batch-4 conversations (Clary/Poke/Root/Yarrow, incl. the
Clary-Yarrow romance and Clary's "core is finished / she'll be finished"
pun). Uses renamed Kováreň čiernych dier.

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:48:56 +02:00
Jaroslav Beneš 363f7ac93b Translate dialogue batch 7: Quantum caves (Phase 5)
48 Nomai 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 masculine (no English gender cue). Kept the
pre-discovery moon names (putujúci / prízračný mesiac), the potulný
kameň / Jaskyňa na dne jazera glossary terms, and Melorae's "my
sedimentary friend" geologist humor. Picked up the deferred line 1224.

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:43:29 +02:00
Jaroslav Beneš 96864b88b7 Translate dialogue batch 6: High Energy Lab (Phase 5)
42 Nomai lines: the negative-time-interval experiments (Pye & Ramie),
the white/black-hole-core setup mimicking the White Hole Station, the
22-minute-interval hypothesis and its exponential energy cost, plus the
High Energy Lab / Sunless City labels and HUD distance markers.

Pye & Ramie feminine, Conoy/Root/Bur masculine. Kept the "gas/aeriform"
state-of-matter puns (flagged for review) and Conoy's "lose his own
head" Nomai joke. Preserved <i> emphases and the \n in the distance
markers (1884-1892). Deferred line 1224 to the Coleus/Melorae batch.

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:34:23 +02:00
Jaroslav Beneš e7645d0f72 Glossary: lock Hatchling -> mláďa (neuter, gender-neutral)
The player's affectionate Hearthian nickname (and common noun for young
Hearthians), used ~52x in dialogue. "mláďa" is neuter, so it stays
gender-neutral for the genderless protagonist, and works as both a
vocative ("Jasné, mláďa!") and a plural ("odkedy sme boli mláďatá").
No re-pass needed — no Hatchling lines are translated yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:29:38 +02:00
Jaroslav Beneš ab028a0a98 Translate dialogue batch 5: Sun Station + memory statues (Phase 5)
61 Nomai lines: the Sun Station build debate (Idaea, Pye, Ramie, Poke),
Pye's supernova/"gas" humor, the firing/activation orders, the failure
aftermath (Yarrow, Pye), and the memory statues + masks (Phlox, Daz,
Yarrow, Ramie, Oeno, Root). Idaea masculine. Preserved the countdown
tokens in 1304 (<RemainingMinutes>, <MinutesToRedGiant>, ...) plus \n,
and <TimeMinutes>/<TimeSeconds> in 1962; kept the "third eye" Nomai
detail and the gas/supernova jokes.

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:28:08 +02:00
Jaroslav Beneš 07d9818a91 Dialogue batch 4 (Ash Twin warp mechanism) + rename Black Hole Forge
Batch 4 — 53 Nomai lines: warp-tower alignment lore, White Hole Station
tutorial, tower designs, ore/shell construction, and the warp-core-source
debate (Yarrow, Clary, Poke, Root, Phlox, Oeno, Cycad, Annona, Ramie,
Ilex). Pye feminine, Plume masculine. Preserved <MinutesSinceRedGiant>/
<SecondsSinceRedGiant> tokens and \n in entry 359; kept Poke's "cervical
spine" Nomai joke. "Twilight Twin" rendered provisionally as Súmračné
dvojča (flagged for review).

Terminology change (user): Black Hole Forge -> Kováreň čiernych dier
(was Zlieváreň čiernej diery), applied file-wide — 15 occurrences across
ship log + dialogue; real "čiernej diery" (black holes) left untouched.

Verified: XML well-formed; all keys identical; markup/token parity;
UI/ship-log byte-consistent except the forge rename; mod builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:21:17 +02:00
Jaroslav Beneš bfd46ab5e4 Translate dialogue batch 3: Orbital Probe Cannon (Phase 5)
50 Nomai lines: Construction Yard cyclones (Conoy, Spire, Cassava),
building and firing the cannon (Cassava, Daz, Mallow, Privet, Avens,
Yarrow), the "search for the Eye -> send a probe" decision, and the
cannon's damage-report / launch-log system text. Excluded the Hearthian
cyclone/island dialogue (belongs to the travelers batch).

Avens masculine, Ramie feminine (recorded in glossary). Preserved
<TimeMinutes>/<TimeSeconds> tokens, the hugging color tag in 1293, and
the "on the other appendage" Nomai hand-joke. Glossary terms applied
(Orbitálne delo sondy, Stavenisko, Modul sledovania sondy, ...).

Verified: XML well-formed; keys identical; only these 50 values changed;
markup/token parity on all; ship log/UI/rest byte-unchanged; mod builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 13:11:25 +02:00
Jaroslav Beneš 3d667b7013 Translate dialogue batch 2: Vessel / warp-core debate (Phase 5)
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, and the Vessel's escape-pod launch /
crash computer log. Poke & Clary feminine, Annona masculine (recorded in
glossary). Glossary terms applied (Projekt Dvojčaťa Popolu, Plavidlo,
Zlieváreň čiernej diery, Únikový modul); markup, speaker prefixes, and
entry 42's internal newline preserved.

Verified: XML well-formed; keys identical; only these 29 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 13:04:21 +02:00
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
Jaroslav Beneš 8100adec75 Translate ship log to Slovak (Phase 5, first pass)
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>
2026-07-20 12:40:09 +02:00
Jaroslav Beneš 3dc47474e3 Glossary: keep Outer Wilds / Outer Wilds Ventures in English
Lock brand/title handling: the game title "Outer Wilds", the space
program "Outer Wilds Ventures", and "the Outer Wilds" on the chart poster
stay verbatim (named brand, like a company name); only surrounding Slovak
is inflected. UI already matches this — no string changes needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 11:28:38 +02:00
Jaroslav Beneš b36d17f9c4 Lock place-name glossary decisions & re-pass UI (Phase 4/5)
Reviewed the place names "risky" — translate them all:
- Timber Hearth -> Drevený kozub (Hearthian -> Kozubčan/Kozubčania)
- The Attlerock -> Skalka ("a little rock" pun)
- Ash Twin -> Dvojča Popolu (Ash Twin Project -> Projekt Dvojčaťa Popolu)
- Ember Twin -> Dvojča Uhlíka; Brittle Hollow -> Krehká dutina;
  Hollow's Lantern -> Lampáš; Black Hole Forge -> Zlieváreň čiernej diery
- Owlks -> Soví ľudia; Nomai -> indeclinable
- Signalscope -> Signáloskop; Scout -> Skaut; Scout Launcher -> Odpaľovač Skauta

Applied a consistency re-pass across the already-translated <table_ui>
section (45 entries) so the UI matches the locked terms. XML re-verified
well-formed; no stale terms remain; mod still builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 11:18:49 +02:00
Jaroslav Beneš 1082d91e3b Translate UI/menus category to Slovak (Phase 5, first pass)
Machine-assisted first pass over the entire <table_ui> section — all 814
UI/menu strings translated to Slovak. Integer <key> IDs left untouched;
preserved \n newline markers, <!> input-prompt tokens, <Profile Name>
placeholder, and color/italic markup verbatim. Casing mirrors the source
(ALL-CAPS button labels stay caps). Uses the glossary's tone (informal ty)
and term renderings. XML re-verified well-formed; mod still builds.

Still needs the Slovak review pass, especially the place-name renderings
flagged in docs/glossary.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 10:32:45 +02:00
Jaroslav Beneš ffd6bbe6b5 Add first-draft glossary (Phase 4)
docs/glossary.md: lock tone/register (informal ty) and propose Slovak
renderings for proper nouns and recurring terms — peoples, celestial
bodies, story/artifacts, and UI/tools. Confident rows marked locked;
debatable ones flagged for the Slovak review pass. Mark Phase 4 in
progress in PLAN.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 10:15:23 +02:00
Jaroslav Beneš e66ce54d3e Add OWML mod skeleton and import English translation template
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>
2026-07-20 10:12:10 +02:00
13 changed files with 16957 additions and 1 deletions
+11
View File
@@ -0,0 +1,11 @@
# Build output
bin/
obj/
# User-specific project files
*.user
# IDE
.vs/
.vscode/
.idea/
+99
View File
@@ -0,0 +1,99 @@
# CLAUDE.md — Outer Wilds SK Translation Mod
Working context for Claude Code (and human contributors) in this repository.
## What this repo is
An **unofficial Slovak (slovenčina) translation mod for *Outer Wilds*** — base
game **and** the *Echoes of the Eye* DLC. It is primarily a **data/translation
project**, not a conventional codebase: the bulk of the work is one large XML file
of translated strings, wrapped in a thin C# mod shell.
- **Not affiliated with Mobius Digital / Annapurna.** Game text is © Mobius
Digital, used under their Fan Content Policy. This project's own code and
translation are MIT (see [`LICENSE`](LICENSE) and [`README.md`](README.md)).
- Roadmap and phase status live in [`PLAN.md`](PLAN.md). Update it as phases land.
## How the mod works
It is an [OWML](https://github.com/ow-mods/owml) mod that depends on **xen-42's
Localization Utility / Interplanetary Polyglot** (`xen.LocalizationUtility`, MIT).
The utility does all the heavy lifting; this mod just:
1. Declares the dependency in `manifest.json`:
`"dependencies": ["xen.LocalizationUtility"]`.
2. In its `ModBehaviour.Start()`, grabs the API and registers a new language:
```csharp
var api = ModHelper.Interaction.TryGetModApi<ILocalizationAPI>("xen.LocalizationUtility");
api.RegisterLanguage(this, "Slovenčina", "assets/Translation.xml");
```
3. Ships the translated strings in `assets/Translation.xml`.
**No game files are needed to build the mod.** The English source
`Translation.xml` is published by the utility repo and used as the template.
Slovak is a Latin-script language, so **no `AddLanguageFixer`** (that's for RTL
scripts) is needed. A custom font via `AddLanguageFont` (Unity **2019.4.27f1**
asset bundle) is only required if the stock game font is missing Slovak glyphs —
to be verified during in-game testing (Phase 6/7).
## Planned repo layout
```
Outer-Wilds-SK-Translation-Mod/
├── manifest.json # OWML manifest (uniqueName, deps, entry DLL)
├── SlovakTranslation.cs # ModBehaviour: registers the language
├── ILocalizationAPI.cs # interface copied from the utility
├── SlovakTranslation.csproj # build against OWML/game refs
├── SlovakTranslation.sln
├── assets/
│ └── Translation.xml # THE translation (English keys, Slovak values)
├── docs/
│ └── glossary.md # fixed SK terms for proper nouns
├── README.md · CLAUDE.md · PLAN.md · LICENSE
```
Model the C#/manifest scaffold on the community Czech mod
([`shippy/outer-wilds-czech`](https://github.com/shippy/outer-wilds-czech)).
## Translation conventions (important)
`Translation.xml` is a **flat** `<TranslationTable_XML>` of repeated `<entry>`
blocks, each with a `<key>` and a `<value>`. Rules:
- **Never edit `<key>`.** It is the exact English source string the game matches
on — changing it silently breaks that string's translation.
- **Translate only `<value>`.** Start from a copy of the English file (key == value)
and replace each value with Slovak.
- **Preserve inline markup verbatim**, including XML-escaped tags:
`&lt;color=orange&gt;…&lt;/color&gt;`, `&lt;i&gt;…&lt;/i&gt;`, `&lt;/color&gt;`,
and raw entities `&lt; &gt; &amp;`. Translate the words, keep the tags.
- **Keep speaker prefixes** (e.g. `POKE:`, `CLARY:`) and any leading labels.
- **Use the glossary** (`docs/glossary.md`) for proper nouns and recurring terms so
Nomai / the Eye / Ash Twin Project / etc. render identically everywhere.
- Watch text length: Nomai text walls and UI have limited space — prefer concise
phrasings where the English is terse.
**Translation production:** machine-assisted first pass (clean-room, no third-party
text) followed by a Slovak-speaking review pass. Phase by category for shippable
increments: **UI/menus → dialogue/text walls → ship log**.
## Build & test
- Toolchain present locally: `dotnet 6.0.400`, `git`. **The game and the Outer
Wilds Mod Manager are NOT installed on this machine** — in-game testing (Phase 7)
requires installing *Outer Wilds* + Mod Manager + OWML first.
- Build: `dotnet build` (the `.csproj` references OWML/game DLLs — see the Czech
mod for the exact reference setup).
- Test: load via the Mod Manager, select **Slovenčina**, and verify menus,
dialogue, and the ship log render correctly (including diacritics
á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž).
## Repo / process notes
- This is a **standalone project repo** (Gitea `Homer/Outer-Wilds-SK-Translation-Mod`),
independent of `~/Agent/Systems`. Changes here do **not** require a system
changelog entry — unless we install system tooling (game, Mod Manager, a Unity
version) to support it, in which case record that in `~/Agent` docs as usual.
- Commit as the Gitea identity (Homer <admin@ecoposta.sk>). Don't commit/push
unless asked.
+42
View File
@@ -0,0 +1,42 @@
using OWML.ModHelper;
using System;
using System.Collections.Generic;
using UnityEngine;
// Interface copied from xen-42's Localization Utility (MIT), so this mod can
// resolve the utility's API through OWML's TryGetModApi<T>. Keep in sync with
// https://github.com/xen-42/outer-wilds-localization-utility.
namespace SlovakTranslation
{
public interface ILocalizationAPI
{
#region Add new language
void RegisterLanguage(ModBehaviour mod, string languageName, string translationPath);
void RegisterLanguage(ModBehaviour mod, string languageName, string translationPath, string languageToReplace);
void AddLanguageFont(ModBehaviour mod, string languageName, string assetBundlePath, string fontPath, out Font font);
void AddLanguageFixer(string languageName, Func<string, string> fixer);
void SetLanguageDefaultFontSpacing(string languageName, float defaultFontSpacing);
void SetLanguageFontSizeModifier(string languageName, float fontSizeModifier);
#endregion
#region Add translations to new/existing languages
void AddTranslation(ModBehaviour mod, string languageName, string translationPath);
void AddTranslation(string languageName, KeyValuePair<string, string>[] regularEntries, KeyValuePair<string, string>[] shipLogEntries, KeyValuePair<int, string>[] uiEntries);
void AddRegularTranslation(string languageName, string key, string value);
void AddRegularTranslation(string languageName, string commonKeyPrefix, params string[] entries);
void AddRegularTranslation(string languageName, params KeyValuePair<string, string>[] entries);
void AddShiplogTranslation(string languageName, string key, string value);
void AddShiplogTranslation(string languageName, string commonKeyPrefix, params string[] entries);
void AddShiplogTranslation(string languageName, params KeyValuePair<string, string>[] entries);
void AddUITranslation(string languageName, int key, string value);
void AddUITranslation(string languageName, params KeyValuePair<int, string>[] entries);
#endregion
#region obsolete
[Obsolete] void AddLanguageFont(ModBehaviour mod, string languageName, string assetBundlePath, string fontPath);
#endregion
}
}
+304
View File
@@ -0,0 +1,304 @@
# 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 complete; human review pending)
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.
**All three categories now have a complete first-pass translation** (UI 814,
ship log 483, dialogue 2423). Whole-file English-leak scan: 0. Remaining work is
the **Slovak-speaking human review pass** (puns, register, Nomai text-wall length,
the review-flagged lines noted per batch).
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) — ✅ COMPLETE.**
Every `<value>` is translated; the only remaining `value==key` entries are
proper names (kept in English), the panic-scream onomatopoeia, sick-noises,
Kickstarter backer credits, and the ASCII-art easter eggs — all intentional.
A whole-file English-leak heuristic (English function-words present, no Slovak
diacritics/markers) reports **0** leaks in the flat list, ship log, and UI.
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.
- **Player / self dialogue — 🚧 started.**
- **Batch 18 — the "two of you" black-hole duplicate convo (125 lines) ✅**
— the meeting between the two copies of the player created by the
black-hole/white-hole jump (Ash Twin Project): the confused-memories
banter, the dating jokes (Gossan/Slate, "Gossan's eye"), the "are you a
figment of my imagination" bit, the *"we are the Feldspar of weird time
stuff"* line, the panic-attack screaming sequence, and the post-intro
bragging menu (first solo trip, Sun-Station landing, "even Riebeck
survived their first launch"). Both speakers are the player → **masculine**;
they address each other as *ty*. The 15 pure-scream onomatopoeia lines
(AAAH, with `&lt;b&gt;`/`&lt;size=50&gt;` markup) left verbatim as
language-neutral. Preserved `&lt;i&gt;`/`&lt;b&gt;`/`&lt;Pause/&gt;`/`&lt;pause&gt;`
markup and `\\n\\n`.
- **Final dialogue sweep (batches 1922) — ✅ done in parallel (subagents +
main), 770 + 22 lines.** The rest of the flat list, produced by three
translator subagents (each writing a JSON of translations, applied
race-free in the main thread) plus a large main-thread block:
- **Batch 19 — Hearthian village kids / villagers (271 lines) ✅** — Marl,
Tephra, Galena, Rutile, Tuff (the sick miner), Spinel, Arkose, Gneiss,
Porphy (sap-wine maker), Mica, the model-rocket kid, hide-and-seek, mayor
Rutile, the ghost-matter kids. Player as *mláďa*; casual kid register.
- **Batch 20 — Chert + Esker + Feldspar's jellyfish journal + Gabbro extras
(359 lines) ✅** — Chert the jittery astronomer on the *Presýpacie
dvojčatá* (star charts, supernovae, his end-of-universe breakdown, the
stargazing campfire finale), **Esker**'s lonely *Mesačná základňa* on the
*Skalka*, Feldspar's jellyfish tasting notes, and Gabbro's statue/"I died"
variant conversations + band-reunion ending. Also the Ember-Twin research
signs, Esker's Signáloskop log, and Gneiss the instrument-maker.
- **Batch 21 — signs, Signalscope kid, endgame + Nomai-writing signs (138
lines) ✅** — Giant's-Deep HUD/observation signs, the Signalscope-kid
endgame scene, the credits/epitaph signs (backer names kept), and the
museum Nomai-writing exhibit signs. ASCII-art easter eggs left as art
(only embedded words like LOADING→*NAČÍTAVA SA* translated).
- **Batch 22 — straggler sweep + consistency (22 lines) ✅** — a whole-file
English-heuristic scan caught 22 lines the *suffix-of-key* detector missed
(curly-vs-straight-quote drift between key and value: Gabbro "bright flash"
variants, the sap-wine labels, the ghost-matter kids' Signáloskop game, two
museum signs, the ATP **masks data-readout** at idx 1964, Tektite's scout
note). **Detection lesson:** "value is a suffix of its ID-prefixed key" is
necessary but not sufficient — always follow up with an English-word / no-
Slovak-diacritic heuristic to catch copied-but-drifted values.
- **Consistency fixes this pass:** Hollow's Lantern → **Lampáš** (not
*Dutinin lampáš*; glossary note added), ghost matter → **prízračná hmota**
(was one *duchová hmota*), Hanging City → **Visuté mesto** (was *Visiace*).
- **Toolchain:** installed `dotnet-sdk` (10.0.110) locally; `dotnet build -c
Release` now **succeeds** (0 warnings/errors) and stages the loadable mod
folder in `bin/Release/` (DLL + manifest + config + assets/Translation.xml).
- **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
- 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/
+69 -1
View File
@@ -1,2 +1,70 @@
# Outer-Wilds-SK-Translation-Mod
# Outer Wilds — Slovenský preklad / Slovak Translation Mod
> **Neoficiálny slovenský preklad hry Outer Wilds** (základná hra + rozšírenie
> *Echoes of the Eye*). Pridáva do hry jazyk **Slovenčina**.
>
> *An unofficial Slovak (slovenčina) translation mod for Outer Wilds, covering
> the base game and the Echoes of the Eye DLC.*
**Stav / Status:** 🚧 **Work in progress** — the mod scaffold and translation are
being built. See [`PLAN.md`](PLAN.md) for the roadmap.
Outer Wilds officially ships in 12 languages; Slovak is not one of them. This mod
adds it as a new selectable language using the community localization framework —
no changes to the game's own files are required.
---
## How it works
The mod is a small [OWML](https://github.com/ow-mods/owml) mod that registers a
new language through **[Interplanetary Polyglot / Localization Utility](https://outerwildsmods.com/mods/interplanetarypolyglot/)**
(`xen.LocalizationUtility`). All translated text lives in a single
`assets/Translation.xml`; the utility swaps the game's strings for the Slovak ones
at runtime.
## Installation
1. Install the **[Outer Wilds Mod Manager](https://outerwildsmods.com/mod-manager/)**.
2. Install this mod through the Mod Manager. Its dependency **Interplanetary
Polyglot** (`xen.LocalizationUtility`) will be pulled in automatically.
3. Launch the game via the Mod Manager.
4. In **Settings → Language**, choose **Slovenčina**.
- Tip: the optional [Language Swap](https://outerwildsmods.com/mods/languageswap/)
mod lets you switch language in-game with `Ctrl+L`.
> Until the first release is published, the mod is not yet in the Mod Manager
> database — see [`PLAN.md`](PLAN.md) for how to build it from source.
## Contributing / Prispievanie
Translation fixes are very welcome — the goal is natural, consistent Slovak.
- **Report** mistranslations or awkward phrasing as an issue.
- **Edit** only the `<value>` of each entry in `assets/Translation.xml`.
**Never change the `<key>`** — it is the English identifier the game matches on.
- Preserve all inline formatting exactly, e.g. `&lt;color=orange&gt;…&lt;/color&gt;`,
`&lt;i&gt;`, and speaker prefixes like `POKE:`.
- Follow the terminology in `docs/glossary.md` so names (Nomai, the Eye, Ash Twin
Project, …) stay consistent across the whole game.
See [`CLAUDE.md`](CLAUDE.md) for the full conventions and repo layout.
## License & disclaimer
The **original mod code and the Slovak translation** in this repository are
released under the [MIT License](LICENSE).
This is an **unofficial** fan project. It is **not affiliated with, approved by, or
endorsed by Mobius Digital or Annapurna Interactive.** *Outer Wilds*, its story,
dialogue, characters, and other assets are **© Mobius Digital / Annapurna
Interactive**; the underlying game text remains their property and is used here
under **Mobius Digital's Fan Content Policy**. The MIT license covers only this
project's own contributions, not the source material.
## Credits
- **Mobius Digital / Annapurna Interactive** — *Outer Wilds*.
- **[xen-42](https://github.com/xen-42)** — the Localization Utility /
Interplanetary Polyglot framework this mod is built on.
- The Outer Wilds modding community.
+35
View File
@@ -0,0 +1,35 @@
using OWML.Common;
using OWML.ModHelper;
namespace SlovakTranslation
{
/// <summary>
/// Registers Slovenčina as a selectable language via xen-42's Localization
/// Utility (xen.LocalizationUtility). All the heavy lifting lives in the
/// utility; this mod just points it at our translated strings.
/// </summary>
public class SlovakTranslation : ModBehaviour
{
public static SlovakTranslation Instance;
/// <summary>Path (relative to the mod folder) to the translated strings.</summary>
public static string translationFile = "assets/Translation.xml";
private void Start()
{
Instance = this;
var api = ModHelper.Interaction.TryGetModApi<ILocalizationAPI>("xen.LocalizationUtility");
if (api == null)
{
ModHelper.Console.WriteLine(
"Could not find xen.LocalizationUtility — is Interplanetary Polyglot installed?",
MessageType.Error);
return;
}
api.RegisterLanguage(this, "Slovenčina", translationFile);
ModHelper.Console.WriteLine("Registered language: Slovenčina", MessageType.Success);
}
}
}
+39
View File
@@ -0,0 +1,39 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<LangVersion>default</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
<RootNamespace>SlovakTranslation</RootNamespace>
<AssemblyName>SlovakTranslation</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugType>none</DebugType>
</PropertyGroup>
<ItemGroup>
<!-- Lets net48 build on machines without the .NET Framework targeting pack
(e.g. Linux / dotnet SDK only). Build-time only. -->
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
<PackageReference Include="HarmonyX" Version="2.10.0" />
<PackageReference Include="OWML" Version="2.5.2" />
<!-- Provides the Outer Wilds / Unity reference DLLs from NuGet, so no game
install is needed to compile. -->
<PackageReference Include="OuterWildsGameLibs" Version="1.1.12.168" />
</ItemGroup>
<ItemGroup>
<None Update="manifest.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="default-config.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="assets/Translation.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
+22
View File
@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30114.105
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SlovakTranslation", "SlovakTranslation.csproj", "{227A7B9F-9B05-4AE7-BDB9-1DE031C15853}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{227A7B9F-9B05-4AE7-BDB9-1DE031C15853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{227A7B9F-9B05-4AE7-BDB9-1DE031C15853}.Debug|Any CPU.Build.0 = Debug|Any CPU
{227A7B9F-9B05-4AE7-BDB9-1DE031C15853}.Release|Any CPU.ActiveCfg = Release|Any CPU
{227A7B9F-9B05-4AE7-BDB9-1DE031C15853}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
+16019
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
{
"enabled": true
}
+206
View File
@@ -0,0 +1,206 @@
# Glossary / Slovník — Outer Wilds SK
Fixed Slovak renderings for proper nouns and recurring terms, so names stay
**identical everywhere** in `assets/Translation.xml`. Follow this file when
translating; propose changes here (not ad-hoc in the XML).
> **Status:** place names & proper nouns reviewed and **locked** (2026-07-20,
> the "go risky" pass — planet names are translated, not kept in English). Rows
> still marked `❓ review` need the Slovak-speaking review pass before they are
> final; `🔒 locked` rows are settled unless there's a strong reason. The UI/menus
> translation in `Translation.xml` has been re-passed to match the locked terms.
---
## 0. Tone & register (locked)
- **Address the player informally — *ty*, not *vy*.** Outer Wilds has a warm,
around-the-campfire tone; the Hearthians are your friends. Use *ty* / informal
imperatives (e.g. *"Pozri sa"*, not *"Pozrite sa"*) throughout menus, prompts,
and dialogue.
- **UI casing mirrors the source.** The game bakes capitalization into the
strings (many buttons are ALL-CAPS in the data), so ALL-CAPS English → ALL-CAPS
Slovak; otherwise sentence case. Fixed proper names (Skaut, Signáloskop, Dvojča
Popolu, …) keep the capitalization given in this glossary.
- **Keep the source's voice per speaker.** Nomai text is formal and precise;
Hearthian dialogue is casual. Register can shift by *speaker*, but the
player is always addressed as *ty*.
- **Diacritics always** — á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž. Never strip them.
- **Narrator gender (locked):** the player-character is canonically genderless, but
Slovak past tense forces a gender. Use **masculine** for the player's first-person
log/dialogue voice (*Našiel som*, *Videl som*, *Vypustil som*). Named characters
take their English gender where given (**Solanum** = feminine; **Coleus** =
masculine); the singular-*they* travelers (Riebeck, Feldspar, Gabbro, Esker,
Chert) default to **masculine**.
## 1. General rules
- **Never edit `<key>`.** Translate only `<value>`. (See `CLAUDE.md`.)
- **Preserve inline markup verbatim:** `&lt;color=…&gt;…&lt;/color&gt;`,
`&lt;i&gt;…&lt;/i&gt;`, entities `&lt; &gt; &amp;`. Translate the words, keep
the tags and the exact color names (`lightblue`, `orange`, …).
- **Keep speaker prefixes verbatim:** `POKE:`, `CLARY:`, `SOLANUM:`, etc. — do
not translate or reorder the label.
- **Declension:** Slovak inflects. A glossary entry gives the base (nominative)
form; decline it naturally in context (*na Drevenom kozube*, *z Temného tŕnia*,
*do Krehkej dutiny*). Keep the **stem/spelling** from this table so
search-and-replace stays reliable. **Nomai** is the one exception — see below.
- **Brand / title names stay in English (verbatim):** the game title **Outer
Wilds**, the space program **Outer Wilds Ventures**, and "the Outer Wilds" on
the *Planetary Chart* poster. They're the actual named brand in the game (like
a company name — you wouldn't translate "SpaceX"). Inflect the *surrounding*
Slovak, not the name: *v hre Outer Wilds*, *podporuješ Outer Wilds Ventures*.
- **Character names are kept in English** (they're geology terms — Hornfels,
Slate, Gabbro, Riebeck, Feldspar, Chert, Esker, Hal, Gossan, Marl, Tuff,
Tephra, Galena, Moraine, Rutile, Spinel, Mica, Porphy, Arkose…). Decline
where natural: *Gabbrovi*, *s Riebeckom*, *Hala*.
---
## 2. Peoples & beings
| English | Slovak | Status | Notes |
|---|---|---|---|
| Nomai (species & individual) | **Nomai** | 🔒 | **Indeclinable** — keep spelling *Nomai* in every case (sg. = pl.). It's an alien species name; leave it as-is. |
| Hearthian(s) | **Kozubčan** (sg.), **Kozubčania** (pl.) | 🔒 | From *kozub* (→ Drevený kozub). Adj. *kozubčiansky*. |
| the Owlks *(DLC, fan term)* | **Soví človek** (sg.), **Soví ľudia** (pl.) | 🔒 | The game never names them; "owl-people". |
| Hatchling *(the player; a young Hearthian)* | **mláďa** (neuter) | 🔒 | Affectionate address from other Hearthians *and* a common noun. Neuter → **gender-neutral** (fits the genderless protagonist). Pl. *mláďatá* (*odkedy sme boli mláďatá*); address *"Jasné, mláďa!"*. |
## 3. Celestial bodies & places
Decision (locked, "go risky"): **place names are translated**, including the home
planet and moons — not kept in English.
| English | Slovak | Status | Notes |
|---|---|---|---|
| the Sun | **Slnko** | 🔒 | |
| Sun Station | **Slnečná stanica** | 🔒 | |
| Timber Hearth (home planet) | **Drevený kozub** | 🔒 | Home planet. Demonym *Kozubčania* derives from *kozub*. |
| The Attlerock (moon) | **Skalka** | 🔒 | Diminutive of *skala* — mirrors the "a little rock" pun. |
| Brittle Hollow | **Krehká dutina** | 🔒 | |
| Hollow's Lantern (moon) | **Lampáš** | 🔒 | Just **Lampáš** — do **not** form a possessive from *Krehká dutina* (never *Dutinin lampáš*). Decline the noun itself: *na Lampáši*, *k Lampášu*. |
| Hourglass Twins | **Presýpacie dvojčatá** | 🔒 | Ember + Ash together. |
| Ember Twin | **Dvojča Uhlíka** | 🔒 | Matched pair with *Dvojča Popolu* (uhlík ↔ popol). |
| Ash Twin | **Dvojča Popolu** | 🔒 | Drives *Projekt Dvojčaťa Popolu* (§4). |
| Giant's Deep | **Obrova hlbina** | 🔒 | |
| Dark Bramble | **Temné tŕnie** | 🔒 | *bramble* = tŕnie. |
| The Interloper (comet) | **Votrelec** | 🔒 | |
| Quantum Moon | **Kvantový mesiac** | 🔒 | |
| White Hole / Black Hole | **biela diera / čierna diera** | 🔒 | Lowercase (common noun). |
| Black Hole Forge | **Kováreň čiernych dier** | 🔒 | Forge/smithy of the black holes. Note the **plural** *čiernych dier*. Decline: gen *Kovárne*, loc *Kovárni*. (Superseded earlier *Zlieváreň čiernej diery*.) |
| The Stranger *(DLC)* | **Cudzinec** | 🔒 | |
| Echoes of the Eye *(DLC title)* | **Ozveny Oka** | ❓ | Translate in prose; may keep English as a store/product title. |
## 4. Story, projects & artifacts
| English | Slovak | Status | Notes |
|---|---|---|---|
| the Eye of the Universe | **Oko vesmíru** | 🔒 | Short form: **Oko**. Keep any color markup around "Eye". |
| the Eye (short) | **Oko** | 🔒 | |
| Eye Signal | **signál Oka** | 🔒 | |
| Ash Twin Project | **Projekt Dvojčaťa Popolu** | 🔒 | Matches *Dvojča Popolu* (§3). |
| the Vessel (Nomai ship) | **Plavidlo** | 🔒 | |
| Warp Core | **warpové jadro** | 🔒 | |
| Advanced Warp Core | **pokročilé warpové jadro** | 🔒 | |
| Ghost Matter | **prízračná hmota** | 🔒 | |
| the Nomai statue | **socha Nomai** | 🔒 | |
| supernova | **supernova** | 🔒 | |
| the time loop | **časová slučka** | 🔒 | |
## 5. Tools, UI & systems
| English | Slovak | Status | Notes |
|---|---|---|---|
| ship log | **lodný denník** | 🔒 | |
| Rumor Mode (ship log) | **režim fám** | 🔒 | |
| Map Mode (ship log) | **režim mapy** | 🔒 | |
| Signalscope | **Signáloskop** | 🔒 | Device name (treated as a proper name, capital S). |
| Little Scout / Scout | **Malý Skaut** / **Skaut** | 🔒 | The camera probe; capital S. Decline *Skauta*, *Skautom*. |
| Scout Launcher | **Odpaľovač Skauta** | 🔒 | |
| the Translator (Nomai) | **Prekladač** | 🔒 | |
| Autopilot | **autopilot** | 🔒 | |
| Landing Camera | **pristávacia kamera** | 🔒 | |
---
## 5b. Ship-log locations & DLC terms (locked, 2026-07-20)
Named places and recurring terms from the ship log. Descriptive location names not
listed here are translated literally (River Lowlands → *Riečne nížiny*, Northern
Glacier → *Severný ľadovec*, Fire Chamber → *Ohňová komora*, …).
| English | Slovak | Notes |
|---|---|---|
| The Hanging City | **Visuté mesto** | Brittle Hollow's Nomai city. |
| The Sunless City | **Bezslnečné mesto** | Ember Twin's Nomai city. |
| Orbital Probe Cannon | **Orbitálne delo sondy** | Modules: *Riadiaci / Štartovací modul*, *Modul sledovania sondy*. |
| Cinder Isles *(DLC)* | **Vyhorené ostrovy** | |
| High Energy Lab | **Vysokoenergetické laboratórium** | |
| White Hole Station | **Stanica bielej diery** | |
| Gravity Cannon | **Gravitačné delo** | |
| Tower of Quantum Knowledge / Trials | **Veža kvantového poznania** / **Veža kvantových skúšok** | |
| Quantum Shrine | **Kvantová svätyňa** | *Quantum X**kvantový/-á/-é X* throughout. |
| Construction Yard | **Stavenisko** | |
| Nomai Mines / Grave / Shipwreck | **Bane / Hrob / Vrak lode Nomai** | *X Nomai* (indeclinable). |
| Escape Pod (1/2/3) | **Únikový modul (1/2/3)** | |
| the Vessel | **Plavidlo** | |
| anglerfish | **udicovka** (pl. *udicovky*) | The Dark Bramble monster fish. |
| Nomai shuttle | **raketoplán Nomai** | |
| astral body | **nebeské teleso** | |
| slide reel *(DLC)* | **kotúč diapozitívov** | |
| vault *(DLC)* | **trezor** | vault seal → *pečať trezoru*. |
| the Prisoner *(DLC)* | **Väzeň** | An Owlk (*Soví človek*). |
| Vision Torch / Artifact *(DLC)* | **Fakľa vízií** / **Artefakt** | |
| mural | **nástenná maľba** | |
| memory statue | **pamäťová socha** | Nomai statue that records memories. |
| storage unit / mask | **úložná jednotka** / **maska** | Ash Twin Project memory components. |
| clan | **klan** | Nomai social group. |
| star system | **hviezdna sústava** | vs. *slnečná sústava* = solar system. |
| pilgrimage | **púť** | Solanum's journey to the Quantum Moon. |
| Nomai character names | *kept in English* | Solanum, Poke, Clary, Coleus, Melorae, Cassava, Yarrow, Pye, Conoy, Bells, … Decline the surrounding Slovak, not the name. |
**Character genders** (from English pronoun cues; drives Slovak verb/possessive
gender): **feminine** — Solanum, Poke, Clary (Poke's sister), Ramie, Pye, Filix
("her note"), Melorae ("Aunt Melorae"), Privet ("her brother"). **masculine**
Annona, Coleus, Avens (Daz's brother), Plume (has a brother). Everyone else defaults to **masculine**
until an English cue says otherwise.
**Hearthian genders (cross-checked against the Czech mod, 2026-07-20).** Outer
Wilds uses *they/them* for all Hearthians, so we defaulted **masculine** and
verified against `shippy/outer-wilds-czech` (Czech is also grammatically
gendered). Confirmed **masculine**: Chert, Esker, Gabbro, Riebeck, Feldspar,
Gneiss, Marl, Mica, Spinel, Tektite, Tuff, Hornfels, Hal, Gossan, Slate.
Corrected to **feminine** (Czech + English cues): **Arkose** (the ghost-matter
kid — *"Slyšela jsem"*), **Porphy** (the sap-wine maker — *"dolila… dávku"*),
and the **hide-and-seek kid** at idx 1627 (*"Chtěla jsem… otravná"*). **Filix**
stays **feminine** (English "her note") even though the Czech mod rendered her
masculine — English canon wins. Undetermined (no gendered self-reference either
side; left masculine): Galena, Rutile, Tephra, Moraine. (Possessive of names in *-a*: *Annonov/-a/-o*,
*Cassavov/-a/-o*, e.g. *Cassavovo Stavenisko*.) **Note:** Melorae was initially
translated masculine in batch 7, then corrected to feminine once "Aunt Melorae"
surfaced.
**Nomai voice tics:** "My gratitude" (their formal thanks) → **Moja vďaka**;
"on the other appendage" (a hand-joke — Nomai have appendages, not hands) →
**Na druhej končatine**. Keep this dry, precise, courteous register for Nomai.
## 6. Resolved decisions (2026-07-20 review)
1. **Planet names → translated** (not kept in English). ✅
2. **Nomai → indeclinable**, kept as-is (alien species name). ✅
3. **UI length** — not a concern: the text display supports variable lengths. ✅
4. **DLC titles** — translate in prose (*Ozveny Oka*, *Cudzinec*); keep English
only where a string functions as a store/product title. ✅ (`Echoes of the Eye`
the DLC title still `❓` in §3 for that reason.)
## 7. Still open
- **`Twilight Twin`** (Nomai dialogue, warp-tower lines) — rendered provisionally as
*Súmračné dvojča*. Unusual term; confirm meaning/rendering in review.
- **`Echoes of the Eye`** as a product/menu title — translate everywhere, or keep
English on title/store strings? (Prose already uses *Ozveny Oka*.)
- Terms that will surface in the **dialogue** and **ship log** phases and aren't
fixed yet: the Vessel interior locations, the Hanging City, the Sunless City,
the High Energy Lab, the Quantum Shrine, DLC props (Slide Reel → *Kotúč
diapozitívov*, Vision Torch → *Fakľa vízií*, the Artifact → *Artefakt*), etc.
I'll raise these as we hit each category.
+97
View File
@@ -0,0 +1,97 @@
# Review notes — things to check in the Slovak human review pass
Consolidated list of wordplay, coined terms, gender guesses, and register calls
that the machine-assisted first pass flagged. Work through these with a
Slovak-speaking eye. Grouped by type; `idx` = position in the flat `<entry>`
list where useful. See [`glossary.md`](glossary.md) and [`../PLAN.md`](../PLAN.md)
for the locked terms and per-batch context.
---
## 1. Puns & wordplay (hardest to get right)
| Where | English | Current SK | Note |
|---|---|---|---|
| Gabbro, satellite (idx ~460466) | "Ol' Spacey" (the deep-space satellite; "Ol'" = affectionate "old") | **Vesmírko** | Nickname folded to a diminutive that carries affection via form, not oldness. Line 465 ("'Ol'' is more a term of affection") therefore explains *starký/old* while the name is *Vesmírko* — mild disconnect. Consider a nickname that keeps the "old" beat, e.g. *Starký* / *Vesmírko starký*. |
| Gabbro (idx 1353) | "you just got **Feldsparred**" | *...práve ťa **Feldsparovalo*** | Invented verb from a name; keep or rework. |
| Gabbro (idx 399 etc.) | "**Statue Island** ...Get it?" (it's the *island* with the *statue*) | **Ostrov sôch** ...Chápeš? | The "get it?" gag barely lands in SK since the wordplay is thin even in EN. OK, but confirm. |
| Chert (idx 1979) | "Keep **an eye or four** on the stars" (Hearthians have >2 eyes) | *Maj oko, aj štyri, na hviezdach* | ✅ reworded per review (was *Maj oči — pokojne aj štyri —*). |
| Player self (idx 252) | "we are the **Feldspar** of weird time stuff" | *sme **Feldsparom** čudných časových vecí* | Idiom "the X of Y"; fine but review. |
| Ghost-matter kid (idx 1702) | "All **pew pew pew**!" | *Také **pyu pyu pyu**!* | Onomatopoeia choice. |
| Feldspar note (idx 1350) | "Hornfels, **ya burnt marshmallow**" (insult) | *Hornfels, ty **pripálený marshmallow*** | Insult + the kept loanword *marshmallow* (see §2). |
| Porphy, sap wine (idx 1476, 1478, 1490) | "**The Good Stuff**"; bottles labeled "structural collapse" / "house fire" | **Tá Dobrota** (standardized; was mixed *To Pravé*/*Tá Dobrota*); „zrútenie konštrukcie" / „požiar domu" | Bar/booze humor; Porphy is **feminine** (§3). |
| Chert (idx 1994) | "On a **scale of one to dead**, I'd give it a seven or eight" | *Na škále **od jeden po smrť**...* | Keep the deadpan. |
| Feldspar jellyfish journal (idx 2181) | "Boring crashes: 0 (a personal best!)" / "entry #... 'not 1'" | translated literally | Feldspar's swagger; check voice. |
| Fishing rhymes (idx 1540, 1567, 1576) | fishing rhyme/song/tune couplets (the 3rd deliberately fails to rhyme) | rendered **loosely to keep a rhyme** | ✅ 1567 reworked to *…ech, asi mi nesedí táto **návnadička*** (rhymes *pesnička/návnadička*, keeps "bait is wrong"). 1576 intentionally drops the rhyme (matches the EN joke). |
| Nomai, Pye/Ramie (batch 56) | "gas / aeriform" state-of-matter puns; Pye's supernova/"gas" humor | flagged in batch notes | Physics/gas double meaning — verify it survives. |
| Nomai, Conoy (batch 6) | "lose his head" joke | flagged | Idiom. |
| Nomai, Melorae (batch 7) | "my **sedimentary** friend" (geologist pun) | flagged | Rock pun on "sedentary". |
| Nomai idiom (glossary) | "on the other **appendage**" (hand-joke; Nomai have appendages) | **Na druhej končatine** | Locked, but re-read in context. |
| Idaea (batch 11) | Sun Station "mission" humor | flagged | Deadpan Nomai humor. |
**Character names are themselves geology/rock puns** (Slate, Feldspar, Gabbro,
Chert, Gneiss, Tuff, Tephra, Porphy, Arkose, Mica, Moraine, Hornfels, …) — kept
in English by design (see glossary §1). No action unless we ever localize names.
---
## 2. Coined / provisional terms (no prior canon — confirm rendering)
| English | Current SK | Status |
|---|---|---|
| Ol' Spacey | **Vesmírko** | provisional (see §1) |
| Statue Island (Gabbro's coinage) | **Ostrov sôch** | provisional |
| Lunar Outpost (Esker's, on the Attlerock) | **Mesačná základňa** | provisional |
| Youngbark Crater | **Kráter Mladej kôry** | provisional (blockC) |
| Quantum Grove Crater | **Kráter Kvantového hája** | provisional (blockC) |
| The Good Stuff (sap wine) | **Tá Dobrota** | standardized this pass |
| marshmallow | **marshmallow** (kept) | decide: keep loanword or *sladká pena*? Be consistent. |
| Twilight Twin (Nomai warp-tower lines) | **Súmračné dvojča** | ❓ unusual term — confirm meaning/rendering |
| Echoes of the Eye (DLC title) | **Ozveny Oka** in prose | ❓ keep EN on store/menu title strings? |
| Distant Nomai places (batch 10) | **Súmračná galaxia**, **Čierna skala**, **Jasná iskra** | flagged |
---
## 3. Gender — cross-checked against the Czech mod ✅
Outer Wilds uses **they/them for all Hearthians**; Slovak forces a gender, so the
first pass **defaulted masculine**. We then cross-checked every gendered
self-reference against `shippy/outer-wilds-czech` (Czech is also grammatically
gendered) — only **3** disagreements surfaced across the whole file, now resolved:
- **Arkose** (ghost-matter kid) → **corrected to feminine** (*Slyšela jsem*).
- **Porphy** (sap-wine maker) → **corrected to feminine** (*dolila dávku*).
- **Filix** — Czech has her masculine, but English says *"her note"*, so she
**stays feminine** (English canon wins).
- Also flipped the **hide-and-seek kid** at idx 1627 to feminine (*Chtěla
jsem… otravná*).
**Confirmed masculine** (Czech agrees): Chert, Esker, Gabbro, Riebeck, Feldspar,
Gneiss, Marl, Mica, Spinel, Tektite, Tuff, Hornfels, Hal, Gossan, Slate.
**Undetermined** (no gendered self-reference either side; left masculine): Galena,
Rutile, Tephra, Moraine — worth a glance in-game but low-risk.
**Locked female (EN cues):** Solanum, Poke, Clary, Ramie, Pye, Filix, Melorae,
Privet. **Locked male:** Annona, Coleus, Avens, Plume, Idaea.
---
## 4. Register & length
- **Nomai text walls** — keep the formal, precise, courteous voice; watch length
vs. the in-game panels (utility supports variable length, but very long walls
should stay tight).
- **Chert's panic stammer** (idx 20292031, 20762077) — rendered as
*a-a-ale / d-d-dúfam / m-možno*. Check it reads as anxious, not broken.
- **Kids' register** — playful, casual *ty*; player often *mláďa*. Make sure the
kid voices don't sound adult.
- **Player self-talk** (the "two of you" convo, idx 169308) — both speakers are
the player, masculine, mutual *ty*; screams left verbatim.
---
## 5. Left verbatim on purpose (not for translation)
Panic-scream onomatopoeia (idx 174, 267286), sick-noises (*Hurgh…*, idx
1666/1685), shy-kid silences (`…`), Kickstarter backer credit **names** (idx
24082415), and the ASCII-art easter eggs (idx 24162418, only embedded words
like LOADING → *NAČÍTAVA SA* were translated). Leave these as-is.
+11
View File
@@ -0,0 +1,11 @@
{
"filename": "SlovakTranslation.dll",
"author": "Jaroslav Beneš",
"name": "Slovak Localization / Slovenčina",
"uniqueName": "Homer.SlovakTranslation",
"version": "0.1.0",
"owmlVersion": "2.5.2",
"dependencies": [
"xen.LocalizationUtility"
]
}