feat: i18n annotations — data-de/data-en + toggle for all 54 custom sites

Phase 2 of i18n rollout:
- All 54 static custom sites now have data-de/data-en attributes on
  visible text elements with English translations
- i18n.js script tag injected into all sites
- Language toggle button with machine-translation disclaimer added
  to every site's footer area
- Brand names / domain wordplay preserved unchanged in both languages
- 2 dynamic sites (dasbes.de, dumusst.com) skipped — no static HTML
This commit is contained in:
m
2026-04-01 13:19:40 +02:00
parent 846fc04444
commit 5c92a7b021
53 changed files with 1850 additions and 1475 deletions

View File

@@ -170,17 +170,17 @@
<div class="icon">🚀</div>
<h1>Mach es doch <em>einfach</em>.</h1>
<h1 data-de="Mach es doch &lt;em&gt;einfach&lt;/em&gt;." data-en="Just &lt;em&gt;do&lt;/em&gt; it.">Mach es doch <em>einfach</em>.</h1>
<div class="rule"></div>
<div class="prose">
<p>
<p data-de="Du denkst schon zu lange darüber nach. Du planst, du wägst ab, du wartest auf den richtigen Moment. Aber der richtige Moment ist &lt;em&gt;jetzt&lt;/em&gt;." data-en="You've been thinking about it for too long. You plan, you weigh things up, you wait for the right moment. But the right moment is &lt;em&gt;now&lt;/em&gt;.">
Du denkst schon zu lange darüber nach. Du planst, du wägst ab,
du wartest auf den richtigen Moment. Aber der richtige Moment
ist <em>jetzt</em>.
</p>
<p>
<p data-de="Nicht morgen. Nicht wenn du bereit bist. Nicht wenn alles perfekt ist. Denn perfekt wird es nie sein — und das ist der Punkt. &lt;strong&gt;Es muss nicht perfekt sein. Es muss nur anfangen.&lt;/strong&gt;" data-en="Not tomorrow. Not when you're ready. Not when everything is perfect. Because it will never be perfect — and that's the point. &lt;strong&gt;It doesn't need to be perfect. It just needs to start.&lt;/strong&gt;">
Nicht morgen. Nicht wenn du bereit bist. Nicht wenn alles
perfekt ist. Denn perfekt wird es nie sein — und das ist
der Punkt. <strong>Es muss nicht perfekt sein. Es muss nur anfangen.</strong>
@@ -188,7 +188,7 @@
</div>
<div class="highlight">
<p>
<p data-de="„Die meisten Menschen scheitern nicht am Können. Sie scheitern am Anfangen."" data-en="&quot;Most people don't fail at ability. They fail at starting.&quot;">
„Die meisten Menschen scheitern nicht am Können.
Sie scheitern am Anfangen."
</p>
@@ -196,33 +196,38 @@
<div class="steps">
<div class="step">
<p>Hör auf zu googeln, ob es eine gute Idee ist.</p>
<p data-de="Hör auf zu googeln, ob es eine gute Idee ist." data-en="Stop googling whether it's a good idea.">Hör auf zu googeln, ob es eine gute Idee ist.</p>
</div>
<div class="step">
<p>Mach den ersten Schritt. Egal wie klein.</p>
<p data-de="Mach den ersten Schritt. Egal wie klein." data-en="Take the first step. No matter how small.">Mach den ersten Schritt. Egal wie klein.</p>
</div>
<div class="step">
<p>Erzähl jemandem davon. Dann gibt es kein Zurück.</p>
<p data-de="Erzähl jemandem davon. Dann gibt es kein Zurück." data-en="Tell someone about it. Then there's no turning back.">Erzähl jemandem davon. Dann gibt es kein Zurück.</p>
</div>
<div class="step">
<p>Akzeptiere, dass es am Anfang schlecht sein wird.</p>
<p data-de="Akzeptiere, dass es am Anfang schlecht sein wird." data-en="Accept that it will be bad at first.">Akzeptiere, dass es am Anfang schlecht sein wird.</p>
</div>
<div class="step">
<p>Mach weiter. Jeden Tag ein bisschen besser.</p>
<p data-de="Mach weiter. Jeden Tag ein bisschen besser." data-en="Keep going. A little better every day.">Mach weiter. Jeden Tag ein bisschen besser.</p>
</div>
</div>
<div class="closing">
<p>
<p data-de="Du kannst das. Und du weißt es." data-en="You can do this. And you know it.">
Du kannst das. Und du weißt es.
</p>
</div>
<footer>
<p>machesdocheinfach.de</p>
<div style="text-align:center;margin-top:16px;">
<button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted,#444);color:var(--text-muted,#444);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button>
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
</div>
</footer>
</div>
<script src="/shared/i18n.js"></script>
</body>
</html>