Make site multilingual: add English (EN) alongside German #4

Closed
opened 2026-05-31 05:49:37 +00:00 by Phil · 0 comments
Owner

Ziel

Die ganze Seite zweisprachig machen (DE + EN). Englische URLs als Unterverzeichnis (philflow.io/en/...), Deutsch bleibt auf Root.

Craft 5 native Multi-Site im bestehenden Site-Group — kein Plugin.

Schichten

  1. Config — neue Site en (Sprache en, Base-URL mit /en-Pfad), alle 4 Sections für en aktivieren
  2. Content-Model — Prosa-Felder translationMethod: none → site (articleLead, articleTldr, articleBody, articleFootnotes, articleHeroCaption, articleStats, seo, Globals address/contactInformation)
  3. Template-i18n
    • statische DE-Strings → translations/{de,en}/site.php + |t('site')
    • hreflang in _system/seo.twig
    • Language-Switcher (_components/core/langSwitcher.twig)
    • locale-aware Datumsformat (meta.twig, card.twig, macros.twig)
    • dynamische Feed-/Schema-Sprache (feed.twig, schema.twig)
  4. Content — EN-Varianten im CP befüllen (Globals, Singles, Unterseiten, Blog)

Acceptance

  • philflow.io/ = DE, philflow.io/en/ = EN
  • Felder pro Sprache getrennt editierbar; hreflang + x-default ausgegeben; Switcher ohne 404
  • docker compose up from scratch baut 2-Site-Struktur ohne manuelle Schritte

Plan: ~/.claude/plans/compressed-nibbling-squirrel.md

## Ziel Die ganze Seite zweisprachig machen (DE + EN). Englische URLs als Unterverzeichnis (`philflow.io/en/...`), Deutsch bleibt auf Root. Craft 5 native Multi-Site im bestehenden Site-Group — kein Plugin. ## Schichten 1. **Config** — neue Site `en` (Sprache `en`, Base-URL mit `/en`-Pfad), alle 4 Sections für `en` aktivieren 2. **Content-Model** — Prosa-Felder `translationMethod: none → site` (`articleLead`, `articleTldr`, `articleBody`, `articleFootnotes`, `articleHeroCaption`, `articleStats`, `seo`, Globals `address`/`contactInformation`) 3. **Template-i18n** - statische DE-Strings → `translations/{de,en}/site.php` + `|t('site')` - hreflang in `_system/seo.twig` - Language-Switcher (`_components/core/langSwitcher.twig`) - locale-aware Datumsformat (`meta.twig`, `card.twig`, `macros.twig`) - dynamische Feed-/Schema-Sprache (`feed.twig`, `schema.twig`) 4. **Content** — EN-Varianten im CP befüllen (Globals, Singles, Unterseiten, Blog) ## Acceptance - `philflow.io/` = DE, `philflow.io/en/` = EN - Felder pro Sprache getrennt editierbar; hreflang + x-default ausgegeben; Switcher ohne 404 - `docker compose up` from scratch baut 2-Site-Struktur ohne manuelle Schritte Plan: `~/.claude/plans/compressed-nibbling-squirrel.md`
Phil closed this issue 2026-05-31 06:10:31 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Phil/philflow.io#4
No description provided.