Files
kantarciandClaude Opus 5.5 e15b2517b1 Translate pages, areas, menus, forms and posts field by field instead of rebuilding them
A site can have further languages (Settings → Languages). A page is built once; each language
adds only its texts, keyed by the stable block IDs, plus its own address under /en/… (ADR 111,
document schema v27, migration 20261009000100 for page_translation).

- Editor: DE | EN switch, a list of all texts with original, state (missing, translated,
  original changed) and filter; structure stays with the main language. Undo, drafts,
  publishing and revisions cover all languages at once.
- Website: /en and translated slugs, lang, canonical, hreflang with x-default, og:locale,
  sitemap; links to translated pages follow the language; a language switch block.
- Header, footer and linked sections translate the same way; menu entries carry labels per
  language; fixed template texts come from a small dictionary.
- Forms: labels, help, options, button and success message per language; messages and the
  step script speak the language, the submission and the email stay in the main language.
- Posts, archives, category names, consent text and the 404 page follow the language.
- Single-language sites see none of it and never touch the new table.

The forms administration becomes an overview with one row per form and its own edit page;
fields are one line each with details collapsed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:56:52 +02:00

19 lines
1.1 KiB
Twig

{# Weiter zum nächsten Beitrag. Die Beiträge kommen vom Renderer, nie aus gespeichertem Inhalt.
Fehlt ein Nachbar, bleibt seine Seite leer statt im Kreis zu führen. #}
{% if previous or next %}
<nav class="post-nav" aria-label="{{ 'Weitere Beiträge'|kant_t }}">
{% if previous %}
<a class="post-nav-link post-nav-previous" href="{{ previous.href }}">
<span class="post-nav-label"><span class="nav-arrow" aria-hidden="true">{% include 'blocks/icon.html.twig' with {name: 'arrow-left'} only %}</span> {{ previousLabel|default('Vorheriger Beitrag'|kant_t) }}</span>
<span class="post-nav-title">{{ previous.title }}</span>
</a>
{% else %}<span></span>{% endif %}
{% if next %}
<a class="post-nav-link post-nav-next" href="{{ next.href }}">
<span class="post-nav-label">{{ nextLabel|default('Nächster Beitrag'|kant_t) }} <span class="nav-arrow" aria-hidden="true">{% include 'blocks/icon.html.twig' with {name: 'arrow-right'} only %}</span></span>
<span class="post-nav-title">{{ next.title }}</span>
</a>
{% endif %}
</nav>
{% endif %}