Skip to content

Translate the documentation into German - #32

Merged
helmihyo merged 6 commits into
mainfrom
feat/i18n-german
Aug 4, 2026
Merged

Translate the documentation into German#32
helmihyo merged 6 commits into
mainfrom
feat/i18n-german

Conversation

@helmihyo

@helmihyo helmihyo commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Adds German as a fourth language. All 21 pages translated.

Read this before reviewing

Nobody who reads German has read this. Same decision as French: the question was put before any page was translated and the answer was to publish without a reviewer. Flagging it here so it is visible to whoever merges.

Everything below is a mechanical check. None of it can tell you whether a sentence says the right thing, and the pages carry fuse ratings, voltages, current limits and polarity instructions.

Terminology

carrier boardTrägerplatine, the accurate term, matching French (carte porteuse) and unlike Finnish (emolevy, literally motherboard, chosen there for familiarity). All three glossaries now record the divergence so nobody harmonises them.

Two German rules are stated explicitly in german-glossary.md because the sibling glossaries would actively mislead:

  • German puts no space before ; : ! ? — the French rule is the opposite, and it cost a 334-site correction on its own branch. Verified: 0 such spaces in German, and the 334 non-breaking ones in French untouched.
  • Multi-word proper names compound with hyphens throughoutNMEA-2000-Netzwerk, not NMEA 2000 Netzwerk. A missing hyphen there is the clearest marker of machine-translated German.

Quotation marks are „…", not «…» — 28 in the pages, 0 French guillemets.

Anchors

18 broke, fewer than French's 20. The German heading for the HALPI daemon happens to slugify to the same string as the English one, so that link survived untouched. That is luck rather than structure — the same coincidence made the Finnish pass look easier than it was — and the checker is what makes it safe either way.

Verified

  • uv run mkdocs build --strict passes
  • 3900 anchors resolve across all four languages
  • Structure compared page by page: headings, list items, numbered steps, images, admonitions, table rows and code fences match on all 21 pairs
  • Code fences byte-identical — no command, config snippet or terminal output drifted
  • No numeric value invented: no number appears only in the German text. Numbers appearing only in English are English repeating a term where German uses a reference — 3.3V rail … from the 3.3V rail becomes 3,3-V-Schiene … dieser Schiene — or a numeral spelled out as a word
  • All 21 pages stamped and reporting current; Finnish and French unaffected

🤖 Generated with Claude Code

helmihyo and others added 5 commits August 4, 2026 15:51
Sets up German as a fourth language and fixes its terminology before any
page is translated.

carrier board is Trägerplatine — the accurate term, as in French and
unlike the Finnish emolevy. All three glossaries now record the
divergence so nobody harmonises them.

Two German-specific rules stated explicitly because the sibling
glossaries would mislead: German puts no space before ; : ! ? (the
French rule is the opposite and cost a 334-site correction), and
multi-word proper names compound with hyphens throughout —
NMEA-2000-Netzwerk, not NMEA 2000 Netzwerk.

Nothing is translated yet: every German URL serves the English page and
the status report lists all 21 as missing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
12 of 21. None of these link into other pages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 of 21.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ces into German

18 of 21.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The last pages, plus the anchor pass and stamps for all 21.

18 anchors broke — fewer than French, because the German heading for the
HALPI daemon happens to slugify identically to the English one. That
coincidence is luck, not structure; the checker is what makes it safe
either way. All 3900 anchors in the built site resolve.

The German glossary's warning about not carrying the French
space-before-punctuation rule across held: zero spaces before ; : ! ? in
the German pages, and the 334 non-breaking ones in French are untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@helmihyo

helmihyo commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review

I wrote this branch and I do not read German, so this is a mechanical pass. It cannot tell you whether a sentence says the right thing.

One real defect, found the same way as on the French branch: by testing a claim I made rather than re-reading it.

The German quotation marks are half-applied

german-glossary.md, added in this same PR, says:

German uses „…“ — low opening, high closing. Not "…", and not the French « … ».

The pages open correctly with (U+201E) and close with a straight ASCII quote " (U+0022) instead of (U+201C). All 28 quotations across 6 files are mismatched — „Normal", „3.3V off", „Abnormal".

Same shape as the French problem on #31: a typography rule written in one file and half-followed in the others. It is visible to any German reader — a low opening quote paired with a vertical closing one looks broken.

The fix is scripted but not blind: straight quotes also appear as markdown syntax in !!! type "Titel" and inside code fences, and those must stay straight. Only the quote that closes a pair changes.

The rule that mattered more did hold

The glossary's other German-specific rule — hyphenating multi-word proper names throughout — is applied consistently: 50 NMEA-2000-, 26 RS-485-, 18 CAN-FD-, 14 Signal-K-, 11 Raspberry-Pi-, 48 HALPI2-. Zero unhyphenated German compounds.

The eleven apparent violations a naive search turns up are all English product names — Raspberry Pi Imager, Raspberry Pi Connect, Raspberry Pi Compute Module 5 — which the glossary keeps untranslated and which must not take German hyphens. Worth stating because the obvious grep flags them.

And the rules did not leak between languages

This was the specific risk of adding a fourth language next to French:

  • German: 0 spaces before ; : ! ? — correct for German
  • French: 334 non-breaking spaces, 0 plain — untouched by this branch

The glossary warning was written precisely because the French rule is the opposite. It held.

Everything else is clean

  • Trägerplatine used consistently. The single Hauptplatine is not a slip: the English source itself says "the carrier board is the computer mainboard", and the German renders both words distinctly in the same sentence — arguably clearer than the original.
  • Footnotes survived[^ssh] and [^rs422], reference and definition.
  • ## CAN FD / NMEA 2000 and ## RS-485 (NMEA 0183) kept their English form, so links to them resolve unchanged.
  • No en/, fi/, fr/ or de/ segment leaked into any in-page path.
  • Two bare !!! note admonitions left bare, so admonition_translations supplies "Hinweis".
  • WLAN in prose (23 uses); WiFi appears exactly once, in **WiFi (wlan0)** — the Cockpit menu label, which must stay English because that is what the screen says.

Still unverified

The German prose. No one who reads German has looked at it, by decision.

🤖 Generated with Claude Code

This branch added the rule and then half-applied it: all 28 quotations
opened with „ (U+201E) and closed with a straight ASCII quote instead of
“ (U+201C). A low opening quote paired with a vertical closing one looks
broken to any German reader.

Same failure as the French spacing rule on #31 — a typography rule
written in one file and not followed in the others.

The replacement is scoped, not blind: straight quotes also carry meaning
as markdown syntax in `!!! type "Titel"` and inside code fences. Only the
quote closing a „ pair changed; 34 admonition titles and every code
fence are untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@helmihyo
helmihyo merged commit a5d5537 into main Aug 4, 2026
1 check passed
@helmihyo
helmihyo deleted the feat/i18n-german branch August 4, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant