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:
@@ -279,16 +279,24 @@
|
||||
|
||||
<div class="icon">🫖</div>
|
||||
|
||||
<h1>Warte bitte.</h1>
|
||||
<h1 data-de="Warte bitte." data-en="Please wait.">Warte bitte.</h1>
|
||||
|
||||
<div class="rule"></div>
|
||||
|
||||
<div class="prose">
|
||||
<p>
|
||||
<p data-de="Ich weiss, du wartest. Und Warten fuehlt sich manchmal an wie
|
||||
Stillstand. Wie verlorene Zeit. Wie etwas, das nicht sein muesste." data-en="I know you're waiting. And waiting sometimes feels like
|
||||
standing still. Like lost time. Like something that shouldn't have to be.">
|
||||
Ich weiss, du wartest. Und Warten fuehlt sich manchmal an wie
|
||||
Stillstand. Wie verlorene Zeit. Wie etwas, das nicht sein muesste.
|
||||
</p>
|
||||
<p>
|
||||
<p data-de="Aber manche Dinge brauchen genau diese Zeit. Nicht weil jemand
|
||||
troedelt, sondern weil <em>gute Ergebnisse nicht gehetzt werden koennen</em>.
|
||||
Ein Gedanke muss reifen. Eine Loesung muss stimmen. Nicht nur schnell,
|
||||
sondern richtig." data-en="But some things need exactly this time. Not because someone
|
||||
is dawdling, but because <em>good results cannot be rushed</em>.
|
||||
A thought must ripen. A solution must be right. Not just fast,
|
||||
but correct.">
|
||||
Aber manche Dinge brauchen genau diese Zeit. Nicht weil jemand
|
||||
troedelt, sondern weil <em>gute Ergebnisse nicht gehetzt werden koennen</em>.
|
||||
Ein Gedanke muss reifen. Eine Loesung muss stimmen. Nicht nur schnell,
|
||||
@@ -299,7 +307,11 @@
|
||||
<div class="dots"><span></span><span></span><span></span></div>
|
||||
|
||||
<div class="highlight">
|
||||
<p>
|
||||
<p data-de="Zeit ist unser kostbarstes Gut. Wer sie gibt, gibt das Wertvollste,
|
||||
was er hat. Und wer sie bekommt, sollte wissen: Da arbeitet jemand
|
||||
daran, dass es sich lohnt." data-en="Time is our most precious asset. Whoever gives it, gives the most valuable
|
||||
thing they have. And whoever receives it should know: someone is working
|
||||
to make it worthwhile.">
|
||||
Zeit ist unser kostbarstes Gut. Wer sie gibt, gibt das Wertvollste,
|
||||
was er hat. Und wer sie bekommt, sollte wissen: Da arbeitet jemand
|
||||
daran, dass es sich lohnt.
|
||||
@@ -307,12 +319,17 @@
|
||||
</div>
|
||||
|
||||
<div class="prose">
|
||||
<p>
|
||||
<p data-de="Es ist okay, ungeduldig zu sein. Ungeduld zeigt, dass dir etwas
|
||||
wichtig ist. Aber lass sie nicht den Blick trueben fuer das,
|
||||
was gerade im Hintergrund passiert." data-en="It's okay to be impatient. Impatience shows that something matters to you.
|
||||
But don't let it cloud your view of what's happening in the background right now.">
|
||||
Es ist okay, ungeduldig zu sein. Ungeduld zeigt, dass dir etwas
|
||||
wichtig ist. Aber lass sie nicht den Blick trueben fuer das,
|
||||
was gerade im Hintergrund passiert.
|
||||
</p>
|
||||
<p>
|
||||
<p data-de="Gute Dinge brauchen Raum. Einen ruhigen Moment.
|
||||
Einen zweiten Blick. Manchmal einen dritten." data-en="Good things need space. A quiet moment.
|
||||
A second look. Sometimes a third.">
|
||||
Gute Dinge brauchen Raum. Einen ruhigen Moment.
|
||||
Einen zweiten Blick. Manchmal einen dritten.
|
||||
</p>
|
||||
@@ -324,10 +341,10 @@
|
||||
<span class="breath-label" id="breathLabel">start</span>
|
||||
</div>
|
||||
<div class="breath-timer-select">
|
||||
<button onclick="setTimer(1)" id="t1">1 min</button>
|
||||
<button onclick="setTimer(2)" id="t2" class="active">2 min</button>
|
||||
<button onclick="setTimer(5)" id="t5">5 min</button>
|
||||
<button onclick="setTimer(0)" id="t0">endlos</button>
|
||||
<button onclick="setTimer(1)" id="t1" data-de="1 min" data-en="1 min">1 min</button>
|
||||
<button onclick="setTimer(2)" id="t2" class="active" data-de="2 min" data-en="2 min">2 min</button>
|
||||
<button onclick="setTimer(5)" id="t5" data-de="5 min" data-en="5 min">5 min</button>
|
||||
<button onclick="setTimer(0)" id="t0" data-de="endlos" data-en="endless">endlos</button>
|
||||
</div>
|
||||
<div class="breath-countdown" id="countdown"></div>
|
||||
</div>
|
||||
@@ -407,7 +424,9 @@
|
||||
</script>
|
||||
|
||||
<div class="closing">
|
||||
<p>
|
||||
<p data-de="Du bekommst, was du brauchst. Nur nicht genau jetzt.
|
||||
Und das ist voellig in Ordnung." data-en="You'll get what you need. Just not right now.
|
||||
And that's perfectly fine.">
|
||||
Du bekommst, was du brauchst. Nur nicht genau jetzt.
|
||||
Und das ist voellig in Ordnung.
|
||||
</p>
|
||||
@@ -415,9 +434,14 @@
|
||||
|
||||
<footer>
|
||||
<p>wartebitte.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>
|
||||
|
||||
Reference in New Issue
Block a user