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:
@@ -437,32 +437,32 @@
|
||||
<nav>
|
||||
<div class="container">
|
||||
<div class="logo">k<span class="ai">AI</span>nstress</div>
|
||||
<a href="#waitlist">Zugang anfragen</a>
|
||||
<a href="#waitlist" data-de="Zugang anfragen" data-en="Request access">Zugang anfragen</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-badge">
|
||||
<span class="dot"></span>Coming Soon
|
||||
<span class="dot"></span><span data-de="Coming Soon" data-en="Coming Soon">Coming Soon</span>
|
||||
</div>
|
||||
<h1>k<span class="ai">AI</span>n<span class="stress">stress</span>.</h1>
|
||||
<p>
|
||||
<p data-de="Dein <strong>KI-Assistent</strong>, der Alltagschaos in Ruhe verwandelt. E-Mails, Termine, Aufgaben — automatisch sortiert, priorisiert, erledigt." data-en="Your <strong>AI assistant</strong> that transforms everyday chaos into calm. Emails, appointments, tasks — automatically sorted, prioritised, done.">
|
||||
Dein <strong>KI-Assistent</strong>, der Alltagschaos in Ruhe verwandelt.
|
||||
E-Mails, Termine, Aufgaben — automatisch sortiert, priorisiert, erledigt.
|
||||
</p>
|
||||
<div class="cta-group">
|
||||
<a href="#waitlist" class="btn btn-primary">Zugang anfragen</a>
|
||||
<a href="#features" class="btn btn-ghost">Mehr erfahren</a>
|
||||
<a href="#waitlist" class="btn btn-primary" data-de="Zugang anfragen" data-en="Request access">Zugang anfragen</a>
|
||||
<a href="#features" class="btn btn-ghost" data-de="Mehr erfahren" data-en="Learn more">Mehr erfahren</a>
|
||||
</div>
|
||||
|
||||
<div class="terminal">
|
||||
<div class="terminal-dots"><span></span><span></span><span></span></div>
|
||||
<div><span class="prompt">$</span> <span class="cmd">kainstress status</span></div>
|
||||
<div><span class="out">Inbox: 47 Mails verarbeitet, 3 brauchen dich</span></div>
|
||||
<div><span class="out">Kalender: Doppelbuchung um 14:00 geloest</span></div>
|
||||
<div><span class="out">Tasks: 2 erledigt, 1 Erinnerung um 17:00</span></div>
|
||||
<div><span class="dim">Alles im Griff. Kein Stress.</span></div>
|
||||
<div><span class="out" data-de="Inbox: 47 Mails verarbeitet, 3 brauchen dich" data-en="Inbox: 47 mails processed, 3 need you">Inbox: 47 Mails verarbeitet, 3 brauchen dich</span></div>
|
||||
<div><span class="out" data-de="Kalender: Doppelbuchung um 14:00 geloest" data-en="Calendar: double booking at 14:00 resolved">Kalender: Doppelbuchung um 14:00 geloest</span></div>
|
||||
<div><span class="out" data-de="Tasks: 2 erledigt, 1 Erinnerung um 17:00" data-en="Tasks: 2 done, 1 reminder at 17:00">Tasks: 2 erledigt, 1 Erinnerung um 17:00</span></div>
|
||||
<div><span class="dim" data-de="Alles im Griff. Kein Stress." data-en="Everything under control. No stress.">Alles im Griff. Kein Stress.</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -471,9 +471,9 @@
|
||||
|
||||
<section id="features">
|
||||
<div class="container">
|
||||
<div class="section-label">Was kAInstress kann</div>
|
||||
<h2>Dein unsichtbarer Assistent.</h2>
|
||||
<div class="section-desc">
|
||||
<div class="section-label" data-de="Was kAInstress kann" data-en="What kAInstress can do">Was kAInstress kann</div>
|
||||
<h2 data-de="Dein unsichtbarer Assistent." data-en="Your invisible assistant.">Dein unsichtbarer Assistent.</h2>
|
||||
<div class="section-desc" data-de="Kein neues Tool lernen. Kein Dashboard checken. kAInstress arbeitet im Hintergrund — du merkst nur, dass alles laeuft." data-en="No new tool to learn. No dashboard to check. kAInstress works in the background — you just notice that everything runs.">
|
||||
Kein neues Tool lernen. Kein Dashboard checken.
|
||||
kAInstress arbeitet im Hintergrund — du merkst nur, dass alles laeuft.
|
||||
</div>
|
||||
@@ -481,8 +481,8 @@
|
||||
<div class="features-grid">
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">M</div>
|
||||
<h3>E-Mail auf Autopilot</h3>
|
||||
<p>
|
||||
<h3 data-de="E-Mail auf Autopilot" data-en="Email on autopilot">E-Mail auf Autopilot</h3>
|
||||
<p data-de="Liest, sortiert, priorisiert. Entwirft Antworten in deinem Stil. Du sagst nur noch Ja oder Nein." data-en="Reads, sorts, prioritises. Drafts replies in your style. You just say yes or no.">
|
||||
Liest, sortiert, priorisiert. Entwirft Antworten in deinem Stil.
|
||||
Du sagst nur noch Ja oder Nein.
|
||||
</p>
|
||||
@@ -490,8 +490,8 @@
|
||||
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">K</div>
|
||||
<h3>Kalender-Tetris</h3>
|
||||
<p>
|
||||
<h3 data-de="Kalender-Tetris" data-en="Calendar Tetris">Kalender-Tetris</h3>
|
||||
<p data-de="Erkennt Konflikte, schlaegt Alternativen vor, koordiniert mit anderen. Schluss mit Terminchaos." data-en="Detects conflicts, suggests alternatives, coordinates with others. No more scheduling chaos.">
|
||||
Erkennt Konflikte, schlaegt Alternativen vor, koordiniert mit anderen.
|
||||
Schluss mit Terminchaos.
|
||||
</p>
|
||||
@@ -499,8 +499,8 @@
|
||||
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">V</div>
|
||||
<h3>Sprachnachrichten? Erledigt.</h3>
|
||||
<p>
|
||||
<h3 data-de="Sprachnachrichten? Erledigt." data-en="Voice messages? Done.">Sprachnachrichten? Erledigt.</h3>
|
||||
<p data-de="Transkribiert, fasst zusammen, extrahiert To-Dos. Die 5-Minuten-Audio wird zum Dreizeiler." data-en="Transcribes, summarises, extracts to-dos. The 5-minute audio becomes three lines.">
|
||||
Transkribiert, fasst zusammen, extrahiert To-Dos.
|
||||
Die 5-Minuten-Audio wird zum Dreizeiler.
|
||||
</p>
|
||||
@@ -508,8 +508,8 @@
|
||||
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">A</div>
|
||||
<h3>Aufgaben im Griff</h3>
|
||||
<p>
|
||||
<h3 data-de="Aufgaben im Griff" data-en="Tasks under control">Aufgaben im Griff</h3>
|
||||
<p data-de="Sammelt To-Dos aus allen Kanaelen. Priorisiert nach Kontext. Erinnert zum richtigen Zeitpunkt." data-en="Collects to-dos from all channels. Prioritises by context. Reminds at the right moment.">
|
||||
Sammelt To-Dos aus allen Kanaelen. Priorisiert nach Kontext.
|
||||
Erinnert zum richtigen Zeitpunkt.
|
||||
</p>
|
||||
@@ -522,9 +522,9 @@
|
||||
|
||||
<section id="how">
|
||||
<div class="container">
|
||||
<div class="section-label">So funktioniert es</div>
|
||||
<h2>Einrichten. Zuruecklehnen.</h2>
|
||||
<div class="section-desc">
|
||||
<div class="section-label" data-de="So funktioniert es" data-en="How it works">So funktioniert es</div>
|
||||
<h2 data-de="Einrichten. Zuruecklehnen." data-en="Set up. Lean back.">Einrichten. Zuruecklehnen.</h2>
|
||||
<div class="section-desc" data-de="kAInstress laeuft auf deiner eigenen Infrastruktur. Deine Daten bleiben bei dir — keine Cloud, kein Mithoeren." data-en="kAInstress runs on your own infrastructure. Your data stays with you — no cloud, no eavesdropping.">
|
||||
kAInstress laeuft auf deiner eigenen Infrastruktur.
|
||||
Deine Daten bleiben bei dir — keine Cloud, kein Mithoeren.
|
||||
</div>
|
||||
@@ -533,22 +533,22 @@
|
||||
<div class="step">
|
||||
<div class="step-num">1</div>
|
||||
<div class="step-content">
|
||||
<h3>Accounts verbinden</h3>
|
||||
<p>E-Mail, Kalender, Messenger — kAInstress dockt an deine bestehenden Systeme an. Standard-Protokolle, keine Vendor-Lock-ins.</p>
|
||||
<h3 data-de="Accounts verbinden" data-en="Connect accounts">Accounts verbinden</h3>
|
||||
<p data-de="E-Mail, Kalender, Messenger — kAInstress dockt an deine bestehenden Systeme an. Standard-Protokolle, keine Vendor-Lock-ins." data-en="Email, calendar, messenger — kAInstress connects to your existing systems. Standard protocols, no vendor lock-ins.">E-Mail, Kalender, Messenger — kAInstress dockt an deine bestehenden Systeme an. Standard-Protokolle, keine Vendor-Lock-ins.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-num">2</div>
|
||||
<div class="step-content">
|
||||
<h3>Stil lernen</h3>
|
||||
<p>Die KI lernt wie du schreibst, was dir wichtig ist, wer Prioritaet hat. Kein generisches Modell — dein persoenlicher Assistent.</p>
|
||||
<h3 data-de="Stil lernen" data-en="Learn your style">Stil lernen</h3>
|
||||
<p data-de="Die KI lernt wie du schreibst, was dir wichtig ist, wer Prioritaet hat. Kein generisches Modell — dein persoenlicher Assistent." data-en="The AI learns how you write, what matters to you, who has priority. No generic model — your personal assistant.">Die KI lernt wie du schreibst, was dir wichtig ist, wer Prioritaet hat. Kein generisches Modell — dein persoenlicher Assistent.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-num">3</div>
|
||||
<div class="step-content">
|
||||
<h3>Stress weg</h3>
|
||||
<p>Mails beantworten, Termine jonglieren, Aufgaben abarbeiten. Im Hintergrund, in deinem Namen, unter deiner Kontrolle.</p>
|
||||
<h3 data-de="Stress weg" data-en="Stress gone">Stress weg</h3>
|
||||
<p data-de="Mails beantworten, Termine jonglieren, Aufgaben abarbeiten. Im Hintergrund, in deinem Namen, unter deiner Kontrolle." data-en="Answering emails, juggling appointments, working through tasks. In the background, in your name, under your control.">Mails beantworten, Termine jonglieren, Aufgaben abarbeiten. Im Hintergrund, in deinem Namen, unter deiner Kontrolle.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -559,13 +559,13 @@
|
||||
|
||||
<section id="waitlist" class="cta-section">
|
||||
<div class="container">
|
||||
<div class="section-label">Early Access</div>
|
||||
<h2>Stress war gestern.</h2>
|
||||
<div class="section-desc">
|
||||
<div class="section-label" data-de="Early Access" data-en="Early Access">Early Access</div>
|
||||
<h2 data-de="Stress war gestern." data-en="Stress is so yesterday.">Stress war gestern.</h2>
|
||||
<div class="section-desc" data-de="kAInstress ist in der Entwicklung. Meld dich an und gehoer zu den Ersten, die ihren Alltag auf Autopilot setzen." data-en="kAInstress is in development. Sign up and be among the first to put your daily life on autopilot.">
|
||||
kAInstress ist in der Entwicklung. Meld dich an und gehoer zu den Ersten,
|
||||
die ihren Alltag auf Autopilot setzen.
|
||||
</div>
|
||||
<a href="mailto:mail@msbls.de?subject=kAInstress%20—%20Interesse" class="btn btn-primary">
|
||||
<a href="mailto:mail@msbls.de?subject=kAInstress%20—%20Interesse" class="btn btn-primary" data-de="Zugang anfragen" data-en="Request access">
|
||||
Zugang anfragen
|
||||
</a>
|
||||
</div>
|
||||
@@ -573,9 +573,14 @@
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>k<span style="color: var(--accent);">AI</span>nstress.de — ein Projekt von <a href="https://msbls.de" target="_blank" rel="noopener">msbls.de</a></p>
|
||||
<p>k<span style="color: var(--accent);">AI</span>nstress.de — <span data-de="ein Projekt von" data-en="a project by">ein Projekt von</span> <a href="https://msbls.de" target="_blank" rel="noopener">msbls.de</a></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>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user