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:
@@ -648,7 +648,7 @@
|
||||
<li><a href="#filosofia">La Filosofia</a></li>
|
||||
<li><a href="#prodotti">I Prodotti</a></li>
|
||||
<li><a href="#giardino">Il Giardino</a></li>
|
||||
<li><a href="#kontakt">Kontakt</a></li>
|
||||
<li><a href="#kontakt" data-de="Kontakt" data-en="Contact">Kontakt</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -659,7 +659,7 @@
|
||||
<div class="hero-overlay"></div>
|
||||
<div class="hero-content">
|
||||
<span class="hero-ornament"></span>
|
||||
<p class="hero-sub">Hausgemachte Feinkost</p>
|
||||
<p class="hero-sub" data-de="Hausgemachte Feinkost" data-en="Homemade Fine Foods">Hausgemachte Feinkost</p>
|
||||
<h1 class="hero-brand">DaNoSi</h1>
|
||||
<p class="hero-tagline">Dal Giardino alla Tavola</p>
|
||||
</div>
|
||||
@@ -672,15 +672,15 @@
|
||||
<div class="filosofia-grid">
|
||||
<div>
|
||||
<p class="section-label">La Filosofia</p>
|
||||
<h2 class="section-title">Mit Geduld und <em>Leidenschaft</em></h2>
|
||||
<h2 class="section-title" data-de="Mit Geduld und <em>Leidenschaft</em>" data-en="With Patience and <em>Passion</em>">Mit Geduld und <em>Leidenschaft</em></h2>
|
||||
<div class="section-divider"></div>
|
||||
<p class="section-text">
|
||||
<p class="section-text" data-de="Was im eigenen Garten wächst, verdient besondere Sorgfalt. Bei DaNoSi wird jede Frucht von Hand geerntet, jedes Rezept mit Bedacht verfeinert. Keine Massenproduktion, keine Abkürzungen — nur ehrliche Handarbeit, die man schmeckt." data-en="What grows in one's own garden deserves special care. At DaNoSi every fruit is harvested by hand, every recipe refined thoughtfully. No mass production, no shortcuts — just honest craftsmanship you can taste.">
|
||||
Was im eigenen Garten wächst, verdient besondere Sorgfalt. Bei DaNoSi
|
||||
wird jede Frucht von Hand geerntet, jedes Rezept mit Bedacht verfeinert.
|
||||
Keine Massenproduktion, keine Abkürzungen — nur ehrliche Handarbeit,
|
||||
die man schmeckt.
|
||||
</p>
|
||||
<p class="section-text" style="margin-top: 1.2rem;">
|
||||
<p class="section-text" style="margin-top: 1.2rem;" data-de="Die Verbindung von deutscher Präzision und mediterraner Lebensfreude ist das Herz unserer kleinen Manufaktur. Jedes Glas erzählt eine Geschichte — von der Erde, von der Sonne, von der Hand, die es gemacht hat." data-en="The combination of German precision and Mediterranean joie de vivre is the heart of our small manufactory. Every jar tells a story — of the earth, of the sun, of the hand that made it.">
|
||||
Die Verbindung von deutscher Präzision und mediterraner Lebensfreude
|
||||
ist das Herz unserer kleinen Manufaktur. Jedes Glas erzählt eine
|
||||
Geschichte — von der Erde, von der Sonne, von der Hand, die es
|
||||
@@ -688,7 +688,7 @@
|
||||
</p>
|
||||
<p class="filosofia-quote">
|
||||
"Buon cibo nasce dalla terra e dal cuore."<br>
|
||||
<span style="font-size: 0.9rem; font-style: normal; color: var(--text-light);">
|
||||
<span style="font-size: 0.9rem; font-style: normal; color: var(--text-light);" data-de="— Gutes Essen entsteht aus Erde und Herz." data-en="— Good food comes from earth and heart.">
|
||||
— Gutes Essen entsteht aus Erde und Herz.
|
||||
</span>
|
||||
</p>
|
||||
@@ -705,9 +705,9 @@
|
||||
<section class="prodotti" id="prodotti">
|
||||
<div class="section-inner">
|
||||
<p class="section-label">I Prodotti</p>
|
||||
<h2 class="section-title">Unsere <em>Spezialitäten</em></h2>
|
||||
<h2 class="section-title" data-de="Unsere <em>Spezialitäten</em>" data-en="Our <em>Specialities</em>">Unsere <em>Spezialitäten</em></h2>
|
||||
<div class="section-divider"></div>
|
||||
<p class="section-text">
|
||||
<p class="section-text" data-de="Kleine Chargen, große Sorgfalt. Jedes Produkt entsteht in limitierter Auflage aus dem, was Garten und Saison hergeben." data-en="Small batches, great care. Every product is made in limited edition from what the garden and season offer.">
|
||||
Kleine Chargen, große Sorgfalt. Jedes Produkt entsteht in limitierter Auflage
|
||||
aus dem, was Garten und Saison hergeben.
|
||||
</p>
|
||||
@@ -718,8 +718,8 @@
|
||||
alt="Frische Erdbeeren für Konfitüren" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Confetture</p>
|
||||
<h3 class="prodotti-card-title">Konfitüren & Marmeladen</h3>
|
||||
<p class="prodotti-card-desc">Aus sonnengereiften Früchten, schonend eingekocht</p>
|
||||
<h3 class="prodotti-card-title" data-de="Konfitüren & Marmeladen" data-en="Jams & Marmalades">Konfitüren & Marmeladen</h3>
|
||||
<p class="prodotti-card-desc" data-de="Aus sonnengereiften Früchten, schonend eingekocht" data-en="From sun-ripened fruit, gently cooked">Aus sonnengereiften Früchten, schonend eingekocht</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -728,8 +728,8 @@
|
||||
alt="Eingelegtes und Chutneys" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Conserve</p>
|
||||
<h3 class="prodotti-card-title">Eingelegtes & Chutneys</h3>
|
||||
<p class="prodotti-card-desc">Würzig, süß-sauer, nach alter Tradition</p>
|
||||
<h3 class="prodotti-card-title" data-de="Eingelegtes & Chutneys" data-en="Pickles & Chutneys">Eingelegtes & Chutneys</h3>
|
||||
<p class="prodotti-card-desc" data-de="Würzig, süß-sauer, nach alter Tradition" data-en="Spicy, sweet-sour, following old tradition">Würzig, süß-sauer, nach alter Tradition</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -738,8 +738,8 @@
|
||||
alt="Kräuter und Gewürze" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Erbe & Spezie</p>
|
||||
<h3 class="prodotti-card-title">Kräuter & Gewürze</h3>
|
||||
<p class="prodotti-card-desc">Frisch aus dem Garten, schonend getrocknet</p>
|
||||
<h3 class="prodotti-card-title" data-de="Kräuter & Gewürze" data-en="Herbs & Spices">Kräuter & Gewürze</h3>
|
||||
<p class="prodotti-card-desc" data-de="Frisch aus dem Garten, schonend getrocknet" data-en="Fresh from the garden, gently dried">Frisch aus dem Garten, schonend getrocknet</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -748,8 +748,8 @@
|
||||
alt="Liköre und Essige" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Liquori & Aceti</p>
|
||||
<h3 class="prodotti-card-title">Liköre & Essige</h3>
|
||||
<p class="prodotti-card-desc">Hauseigene Ansätze, lange gereift</p>
|
||||
<h3 class="prodotti-card-title" data-de="Liköre & Essige" data-en="Liqueurs & Vinegars">Liköre & Essige</h3>
|
||||
<p class="prodotti-card-desc" data-de="Hauseigene Ansätze, lange gereift" data-en="House blends, long matured">Hauseigene Ansätze, lange gereift</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -758,8 +758,8 @@
|
||||
alt="Chili-Spezialitäten" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Peperoncini</p>
|
||||
<h3 class="prodotti-card-title">Chili-Spezialitäten</h3>
|
||||
<p class="prodotti-card-desc">Eigene Zucht, von mild bis feurig — unsere besondere Leidenschaft</p>
|
||||
<h3 class="prodotti-card-title" data-de="Chili-Spezialitäten" data-en="Chili Specialities">Chili-Spezialitäten</h3>
|
||||
<p class="prodotti-card-desc" data-de="Eigene Zucht, von mild bis feurig — unsere besondere Leidenschaft" data-en="Own cultivation, from mild to fiery — our special passion">Eigene Zucht, von mild bis feurig — unsere besondere Leidenschaft</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -768,8 +768,8 @@
|
||||
alt="Feine Backwaren" loading="lazy">
|
||||
<div class="prodotti-card-content">
|
||||
<p class="prodotti-card-cat">Dolci & Pane</p>
|
||||
<h3 class="prodotti-card-title">Feine Backwaren</h3>
|
||||
<p class="prodotti-card-desc">Innovative Kompositionen — handgebacken, kreativ, überraschend</p>
|
||||
<h3 class="prodotti-card-title" data-de="Feine Backwaren" data-en="Fine Baked Goods">Feine Backwaren</h3>
|
||||
<p class="prodotti-card-desc" data-de="Innovative Kompositionen — handgebacken, kreativ, überraschend" data-en="Innovative compositions — hand-baked, creative, surprising">Innovative Kompositionen — handgebacken, kreativ, überraschend</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -784,25 +784,25 @@
|
||||
<div class="process-step">
|
||||
<div class="process-step-num">I</div>
|
||||
<h3 class="process-step-title">Il Seme</h3>
|
||||
<p class="process-step-desc">Säen und pflegen — mit Geduld beginnt alles</p>
|
||||
<p class="process-step-desc" data-de="Säen und pflegen — mit Geduld beginnt alles" data-en="Sowing and tending — with patience everything begins">Säen und pflegen — mit Geduld beginnt alles</p>
|
||||
</div>
|
||||
<div class="process-connector"></div>
|
||||
<div class="process-step">
|
||||
<div class="process-step-num">II</div>
|
||||
<h3 class="process-step-title">Il Raccolto</h3>
|
||||
<p class="process-step-desc">Ernte zum perfekten Zeitpunkt, von Hand</p>
|
||||
<p class="process-step-desc" data-de="Ernte zum perfekten Zeitpunkt, von Hand" data-en="Harvest at the perfect moment, by hand">Ernte zum perfekten Zeitpunkt, von Hand</p>
|
||||
</div>
|
||||
<div class="process-connector"></div>
|
||||
<div class="process-step">
|
||||
<div class="process-step-num">III</div>
|
||||
<h3 class="process-step-title">L'Arte</h3>
|
||||
<p class="process-step-desc">Verarbeitung nach eigenen Rezepturen</p>
|
||||
<p class="process-step-desc" data-de="Verarbeitung nach eigenen Rezepturen" data-en="Processing according to our own recipes">Verarbeitung nach eigenen Rezepturen</p>
|
||||
</div>
|
||||
<div class="process-connector"></div>
|
||||
<div class="process-step">
|
||||
<div class="process-step-num">IV</div>
|
||||
<h3 class="process-step-title">La Tavola</h3>
|
||||
<p class="process-step-desc">Auf den Tisch — frisch und mit Liebe gemacht</p>
|
||||
<p class="process-step-desc" data-de="Auf den Tisch — frisch und mit Liebe gemacht" data-en="To the table — fresh and made with love">Auf den Tisch — frisch und mit Liebe gemacht</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -818,9 +818,9 @@
|
||||
</div>
|
||||
<div class="section-text-col">
|
||||
<p class="section-label">Il Giardino</p>
|
||||
<h2 class="section-title">Wo alles <em>beginnt</em></h2>
|
||||
<h2 class="section-title" data-de="Wo alles <em>beginnt</em>" data-en="Where everything <em>begins</em>">Wo alles <em>beginnt</em></h2>
|
||||
<div class="section-divider"></div>
|
||||
<p class="section-text">
|
||||
<p class="section-text" data-de="Der Garten ist das Herzstück von DaNoSi. Hier wachsen Beeren, Kräuter, Gemüse und Obst — ohne Eile, im Rhythmus der Jahreszeiten. Was die Natur vorgibt, bestimmt unser Sortiment. Jede Saison bringt neue Überraschungen auf den Tisch." data-en="The garden is the heart of DaNoSi. Here berries, herbs, vegetables and fruit grow — unhurried, in the rhythm of the seasons. What nature dictates determines our range. Every season brings new surprises to the table.">
|
||||
Der Garten ist das Herzstück von DaNoSi. Hier wachsen Beeren, Kräuter,
|
||||
Gemüse und Obst — ohne Eile, im Rhythmus der Jahreszeiten. Was die Natur
|
||||
vorgibt, bestimmt unser Sortiment. Jede Saison bringt neue Überraschungen
|
||||
@@ -830,19 +830,19 @@
|
||||
<div class="giardino-values">
|
||||
<div class="giardino-value">
|
||||
<h4>Naturale</h4>
|
||||
<p>Ohne künstliche Zusätze, ohne Konservierungsstoffe</p>
|
||||
<p data-de="Ohne künstliche Zusätze, ohne Konservierungsstoffe" data-en="Without artificial additives, without preservatives">Ohne künstliche Zusätze, ohne Konservierungsstoffe</p>
|
||||
</div>
|
||||
<div class="giardino-value">
|
||||
<h4>Stagionale</h4>
|
||||
<p>Nur das, was die Saison hergibt — ehrlich und frisch</p>
|
||||
<p data-de="Nur das, was die Saison hergibt — ehrlich und frisch" data-en="Only what the season offers — honest and fresh">Nur das, was die Saison hergibt — ehrlich und frisch</p>
|
||||
</div>
|
||||
<div class="giardino-value">
|
||||
<h4>Artigianale</h4>
|
||||
<p>Jedes Stück in Handarbeit, keine Massenproduktion</p>
|
||||
<p data-de="Jedes Stück in Handarbeit, keine Massenproduktion" data-en="Every piece handcrafted, no mass production">Jedes Stück in Handarbeit, keine Massenproduktion</p>
|
||||
</div>
|
||||
<div class="giardino-value">
|
||||
<h4>Locale</h4>
|
||||
<p>Vom eigenen Garten direkt in die Manufaktur</p>
|
||||
<p data-de="Vom eigenen Garten direkt in die Manufaktur" data-en="From our own garden directly to the manufactory">Vom eigenen Garten direkt in die Manufaktur</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -852,9 +852,9 @@
|
||||
|
||||
<!-- Contact -->
|
||||
<section class="contact" id="kontakt">
|
||||
<p class="section-label" style="color: var(--olive-light);">Kontakt</p>
|
||||
<p class="section-label" style="color: var(--olive-light);" data-de="Kontakt" data-en="Contact">Kontakt</p>
|
||||
<div class="contact-brand">DaNoSi</div>
|
||||
<p class="contact-sub">Hausgemachte Feinkost</p>
|
||||
<p class="contact-sub" data-de="Hausgemachte Feinkost" data-en="Homemade Fine Foods">Hausgemachte Feinkost</p>
|
||||
<div class="contact-divider"></div>
|
||||
<p class="contact-name">Norbert Siebels</p>
|
||||
<p class="contact-name" style="color: var(--text-light); margin-top: 0.2rem;">DaNoSi Feinkost</p>
|
||||
@@ -864,8 +864,13 @@
|
||||
|
||||
<!-- Footer -->
|
||||
<footer>
|
||||
<p>© 2026 DaNoSi Feinkost — Norbert Siebels. Alle Rechte vorbehalten.</p>
|
||||
<p data-de="© 2026 DaNoSi Feinkost — Norbert Siebels. Alle Rechte vorbehalten." data-en="© 2026 DaNoSi Feinkost — Norbert Siebels. All rights reserved.">© 2026 DaNoSi Feinkost — Norbert Siebels. Alle Rechte vorbehalten.</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 rgba(250,246,238,0.3);color:rgba(250,246,238,0.3);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:rgba(250,246,238,0.3);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user