Files
kaiser-natron/dist/assets/i18n-CJQl3WLC.js

1 line
40 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{o as e,z as t}from"./runtime-core.esm-bundler-BD0e4RlP.js";var n={"nav.shop":`Shop`,"nav.cook":`Kochen`,"nav.clean":`Reinigen`,"nav.care":`Pflege`,"nav.applications":`Anwendungen`,"nav.bundles":`Bundles`,"nav.revitalization":`Revitalisierung`,"nav.about":`Über uns`,"nav.contact":`Kontakt`,"shop.eyebrow":`Unser Sortiment`,"shop.headline":`Kaiser-Natron`,"shop.headline.em":`für jeden Bereich`,"shop.sub":`Vom Kochen über das Reinigen bis zur Pflege: drei Sammlungen, ein Rohstoff.`,"shop.section.cook.headline":`Backen, kochen,`,"shop.section.cook.headline.em":`gesund verdauen.`,"shop.section.cook.sub":`Pulver und Tabletten — die Basis für Teig, Gerichte und guten Geschmack.`,"shop.section.clean.headline":`Schrubben, waschen,`,"shop.section.clean.headline.em":`alles sauber.`,"shop.section.clean.sub":`Natron-basierte Reiniger und Waschhelfer, die auch bei hartnäckigem Schmutz überzeugen.`,"shop.section.care.headline":`Baden, pflegen,`,"shop.section.care.headline.em":`durchatmen.`,"shop.section.care.sub":`Bade- und Pflegeprodukte, abgestimmt auf den Alltag und den Sport.`,"shop.feature.cook":`Für die Küche`,"shop.feature.clean":`Für den Haushalt`,"shop.feature.care":`Für Körper & Pflege`,"shop.feature.cta":`Zur Kategorie`,"cart.open":`Warenkorb öffnen`,"cart.label":`Warenkorb`,"cart.subtotal":`Zwischensumme`,"cart.checkout":`Zur Kasse`,"cart.remove":`Entfernen`,"cart.qty.increase":`Menge erhöhen`,"cart.qty.decrease":`Menge verringern`,"cart.empty.title":`Dein Warenkorb ist leer`,"cart.empty.subtitle":`Leg Produkte aus dem Shop hinzu sie erscheinen direkt hier.`,"cart.added":`Zum Warenkorb hinzugefügt`,"menu.open":`Menü öffnen`,"menu.close":`Menü schließen`,"language.label":`Sprache`,"search.open":`Suche öffnen`,"search.label":`Produkte durchsuchen`,"search.placeholder":`Produkte suchen …`,"search.clear":`Löschen`,"search.results":`Suchergebnisse`,"search.noResults":`Keine Produkte gefunden`,"search.noResultsHint":`Probiere eine andere Schreibweise oder einen allgemeineren Begriff.`,"search.emptyHint":`Tippe, um Produkte zu finden z. B. „Natron Pulver" oder „Entkalker".`,"search.suggested":`Vorschläge`,"search.hint.navigate":`Navigieren`,"search.hint.select":`Auswählen`,"search.hint.close":`Schließen`,"ds.sidebar.brand":`Marke`,"ds.sidebar.tokens":`Tokens`,"ds.sidebar.components":`Komponenten`,"ds.sidebar.sections":`Sektionen`,"ds.sidebar.back":`← Zurück zur Website`,"ds.mobile.currentPage":`Aktuelle Seite`,"ds.mobile.selectPage":`Seite auswählen`,"ds.nav.logo":`Logo`,"ds.nav.colors":`Farben`,"ds.nav.typography":`Typografie`,"ds.nav.radii":`Radien`,"ds.nav.shadows":`Schatten`,"ds.nav.motion":`Motion`,"ds.nav.icons":`Icons`,"ds.nav.buttons":`Buttons`,"ds.nav.badges":`Badges`,"ds.nav.inputs":`Eingabefelder`,"ds.nav.cards":`Karten`,"ds.nav.products":`Produktkarten`,"ds.nav.bundleCard":`Bundle-Karte`,"ds.nav.hero":`Hero`,"ds.nav.navbar":`Navigation`,"ds.nav.search":`Suche`,"ds.nav.qtyStepper":`Mengenwähler`,"ds.nav.cartDrawer":`Warenkorb`,"ds.nav.language":`Sprachwahl`,"ds.nav.bundles":`Bundles-Sektion`,"ds.nav.revitalization":`Revitalization`,"ds.nav.about":`Über uns`,"ds.search.title":`Suche`,"ds.search.description":`Volltextsuche über den Produktkatalog mit Bildvorschau. Mobil als Vollbild-Overlay, am Desktop als zentrierte Kommando-Palette. Tastaturbedienbar und standardmäßig in der primären Markenfarbe.`,"ds.search.label":`Produkte durchsuchen`,"ds.search.placeholder":`Produkte durchsuchen…`,"ds.search.noResults":`Keine Produkte gefunden.`,"ds.search.suggested":`Vorschläge`,"ds.search.results":`Ergebnisse`,"ds.search.open":`Suche öffnen`,"ds.search.picked":`Ausgewählt`,"ds.search.tryHint":`Tipp: probier „natron", „kalk", „wäsche" oder „bad".`,"ds.search.integrationHint":`Die Suche läuft über den im API-Layer (src/api/) exportierten Produktkatalog. Sobald das Backend steht, bleibt die Komponenten-Signatur unverändert.`,"ds.search.hint.navigate":`Navigieren`,"ds.search.hint.select":`Auswählen`,"ds.search.hint.close":`Schließen`,"ds.eyebrow.brand":`Marke`,"ds.eyebrow.tokens":`Tokens`,"ds.eyebrow.components":`Komponenten`,"ds.eyebrow.designSystem":`Design System`,"ds.heading.variants":`Varianten`,"ds.heading.sizes":`Größen`,"ds.heading.states":`Zustände`,"ds.heading.withIcons":`Mit Icons`,"ds.heading.onBrandSurface":`Auf Markenfläche`,"ds.heading.block":`Block`,"ds.heading.usage":`Verwendung`,"ds.heading.default":`Standard`,"ds.heading.tones":`Töne`,"ds.heading.interactive":`Interaktiv`,"ds.heading.withoutPadding":`Ohne Innenabstand`,"ds.heading.scale":`Skala`,"ds.heading.display":`Display`,"ds.heading.body":`Fließtext`,"ds.heading.nonUppercase":`Ohne Großbuchstaben`,"ds.heading.onDifferentSurfaces":`Auf verschiedenen Flächen`,"ds.heading.greenOnPaper":`Grün auf Papier`,"ds.heading.creamOnBrand":`Creme auf Markengrün`,"ds.logo.title":`Logo`,"ds.logo.description":"Ein einzelnes SVG, das die Farbe über CSS `color` erbt. Verwende das grüne Wortbild auf hellen Flächen und das cremefarbene auf dem Markengrün.","ds.logo.usageIntro":`Farbe über Utility-Klassen setzen:`,"ds.colors.title":`Farben`,"ds.colors.description":`Pinie-Grün auf Creme mit warmem Gelb als Akzent. Alle UI-Farben fließen aus diesen Tokens — niemals Werte in Komponenten hartkodieren.`,"ds.colors.group.brand":`Marke`,"ds.colors.group.accent":`Akzent`,"ds.colors.group.surface":`Fläche`,"ds.colors.group.ink":`Schrift`,"ds.colors.group.line":`Linie`,"ds.colors.group.semantic":`Semantisch`,"ds.typography.title":`Typografie`,"ds.typography.description":`Fraunces für Display — warm, organisch, mit optischen Größen. DM Sans für Fließtext und UI — klar und geometrisch.`,"ds.typography.serifDesc":`Serife mit optischer Skalierung. Für Hero-Bereiche, Section-Titel und Produktnamen.`,"ds.typography.sansDesc":`Klare geometrische Sans-Serif. Für Fließtext, UI, Navigation und Labels.`,"ds.typography.sample":`Der schnelle braune Fuchs`,"ds.radii.title":`Radien`,"ds.radii.description":`Von dezenten 6px an kleinen Elementen bis hin zu vollen Pillen auf Buttons. Passend zum weichen, organischen Gefühl der Referenzseite.`,"ds.shadows.title":`Schatten`,"ds.shadows.description":`Alle Schatten sind grünlich statt neutral schwarz getönt — sie wirken warm und sind Teil der Palette.`,"ds.shadows.sm.note":`Dezent — Nav beim Scrollen, ruhende Karten`,"ds.shadows.md.note":`Mittel — Hover des primären Buttons`,"ds.shadows.lg.note":`Groß — schwebende Karten, Overlays`,"ds.motion.title":`Motion`,"ds.motion.description":`Bewegung dient dem Verständnis, nicht der Dekoration. Drei UI-Dauern plus eine szenische Schleife, eine Standard-Kurve, und klare Regeln für Nutzer mit reduzierter Bewegung.`,"ds.motion.philosophy.title":`Philosophie`,"ds.motion.principle.purpose":`Nur animieren, wenn Hierarchie, Zustand oder Kontinuität erklärt werden. Dekorative Bewegung wird weggelassen.`,"ds.motion.principle.cadence":`Drei Dauern, eine Kurve: 120ms für Zustand, 200ms für UI-Übergänge, 320ms für größere Reveals. --ease-out als Standard — Ankünfte wirken gesetzt, nicht schnippisch.`,"ds.motion.principle.scenic":`Szenische Schleifen (Orbit, weiche Pulse) laufen linear über 1020 s. Lang genug, um als Atmosphäre zu lesen, nie als tickende Uhr.`,"ds.motion.principle.reduced":`prefers-reduced-motion wird immer respektiert. Schleifen einfrieren, Übergänge zusammenfallen lassen — wer Bewegung ablehnt, wird dafür nicht bestraft.`,"ds.motion.durations.title":`Dauern`,"ds.motion.duration.fast.note":`Zustand — Hover, Focus, Press.`,"ds.motion.duration.base.note":`Standard-UI — Farbwechsel, Öffnen/Schließen.`,"ds.motion.duration.slow.note":`Größere Reveals — Drawer, Overlays, Karten.`,"ds.motion.duration.scene.note":`Szenische Wechsel — ganze Sektion, Route-Wechsel.`,"ds.motion.duration.orbit.note":`Umgebungsschleifen — Orbit-Ringe, weiche Pulse.`,"ds.motion.easings.title":`Kurven`,"ds.motion.ease.out.note":`Standard. Ankünfte landen weich.`,"ds.motion.ease.inOut.note":`Nur wenn ein Element kommen und wieder gehen muss.`,"ds.motion.ease.linear.note":`Für mechanische Schleifen — Orbit, Spinner.`,"ds.motion.animations.title":`Benannte Animationen`,"ds.motion.animate.orbit.note":`Ring rotiert um ein zentriertes Icon. Verwendet im Revitalization-Abschnitt.`,"ds.motion.animate.fadeInUp.note":`Einblenden mit 8 px Versatz — für Eintrittsmomente.`,"ds.motion.animate.pulseSoft.note":`Ruhiger Opazitäts-Puls — für Live-Indikatoren.`,"ds.motion.reduced.title":`Reduzierte Bewegung`,"ds.motion.reduced.body":`Globale Regel in motion.css: bei prefers-reduced-motion: reduce kollabieren alle Animations- und Transition-Dauern auf ~0 ms. Komponenten brauchen keine eigenen Weichen dafür.`,"ds.motion.replay":`Neu abspielen`,"ds.motion.fadePreview":`Einblenden`,"ds.icons.title":`Icons`,"ds.icons.description":`Ein kuratiertes strich-basiertes Icon-Set im 24x24-Raster. Wird über die Icon-Komponente gerendert — erbt die Farbe von currentColor.`,"ds.icons.search":`Icons suchen…`,"ds.icons.copyHint":`Klick auf eine Kachel kopiert das Snippet.`,"ds.icons.copied":`Kopiert!`,"ds.icons.noMatch":`Keine Icons stimmen mit`,"ds.icons.sizeDefault":`20 (Standard)`,"ds.icons.addHint":`Neue Icons in %s hinzufügen. Nutze eine 24×24-viewBox, strichbasierte Pfade ohne Füllungen — die Komponente übernimmt die Farbe per %s. Gib %s für Screenreader an; weglassen bei dekorativen Icons.`,"ds.icons.group.commerce":`Commerce`,"ds.icons.group.navigation":`Navigation`,"ds.icons.group.actions":`Aktionen`,"ds.icons.group.contact":`Kontakt`,"ds.icons.group.feedback":`Feedback`,"ds.icons.group.devices":`Geräte`,"ds.buttons.title":`Buttons`,"ds.buttons.description":`Pillenförmig. Pinie-grüner Primary mit warmgelbem Label für die wichtigste Aktion, warmgelber Accent auf Markenflächen, plus Secondary-, Ghost- und Danger-Varianten.`,"ds.buttons.primary":`Primary`,"ds.buttons.accent":`Accent`,"ds.buttons.secondary":`Secondary`,"ds.buttons.ghost":`Ghost`,"ds.buttons.danger":`Danger`,"ds.buttons.small":`Klein`,"ds.buttons.medium":`Mittel`,"ds.buttons.large":`Groß`,"ds.buttons.disabled":`Deaktiviert`,"ds.buttons.loading":`Lädt`,"ds.buttons.addToCart":`In den Warenkorb`,"ds.buttons.learnMore":`Mehr erfahren`,"ds.buttons.save":`Merken`,"ds.buttons.confirm":`Bestätigen`,"ds.buttons.continueShopping":`Weiter einkaufen`,"ds.badges.title":`Badges`,"ds.badges.description":`Kleine Großbuchstaben-Labels für Metadaten, Status und Eyebrows über Überschriften.`,"ds.badges.neutral":`Neutral`,"ds.badges.brand":`Marke`,"ds.badges.accent":`Akzent`,"ds.badges.subtle":`Dezent`,"ds.badges.success":`Erfolg`,"ds.badges.warning":`Warnung`,"ds.badges.danger":`Fehler`,"ds.badges.newRelease":`Neu veröffentlicht`,"ds.badges.featured":`Empfohlen`,"ds.inputs.title":`Eingabefelder`,"ds.inputs.description":`Papier-Fläche mit dünnem grün getöntem Rahmen. Großbuchstaben-Labels. Der Fokus vertieft den Rahmen zu Markengrün.`,"ds.inputs.email":`E-Mail`,"ds.inputs.emailHint":`Wir teilen dies nie.`,"ds.inputs.password":`Passwort`,"ds.inputs.required":`Pflichtfeld`,"ds.inputs.requiredError":`Dieses Feld ist erforderlich`,"ds.inputs.disabled":`Deaktiviert`,"ds.inputs.disabledPlaceholder":`Hier geht nichts`,"ds.cards.title":`Karten`,"ds.cards.description":`Flächen zum Gruppieren von Inhalten. Drei Töne — Papier, Creme, Marke — und ein optionales interaktives Anheben beim Hover.`,"ds.cards.paper":`Papier`,"ds.cards.cream":`Creme`,"ds.cards.brand":`Marke`,"ds.cards.paperTitle":`Standardfläche`,"ds.cards.paperBody":`Die erste Wahl für die meisten Inhalte. Hoher Kontrast auf dem cremefarbenen Seitenhintergrund.`,"ds.cards.creamTitle":`Warme Fläche`,"ds.cards.creamBody":`Eine weichere Alternative für sekundäre Bereiche oder Callouts.`,"ds.cards.brandTitle":`Dunkle Fläche`,"ds.cards.brandBody":`Für Feature-Panels, CTAs und Momente, die auffallen wollen.`,"ds.cards.hoverMe":`Hover mich`,"ds.cards.hoverMeToo":`Mich auch`,"ds.cards.hoverBody":`Hebt sich beim Hover mit weichem grün getönten Schatten. Für klickbare Items im Raster.`,"ds.cards.hoverBodyAlt":`Gleiches Verhalten auf der warmen Fläche.`,"ds.cards.mediaTitle":`Media-Karte`,"ds.cards.mediaBody":`Wenn die Karte ein randloses Bild oder einen Header braucht, übergib`,"ds.product.title":`Produktkarte`,"ds.product.description":`Zusammengesetzt aus Karte, Badge, Button und Icon. Cutout-Bild auf einer Creme-Medienfläche, Titel mit Größe, Preis in der Markenfarbe und ein blockweiter „In den Warenkorb"-Primary.`,"ds.product.outOfStock":`Nicht verfügbar`,"ds.product.added":`Hinzugefügt`,"ds.hero.title":`Hero`,"ds.hero.description":`Ganzflächiger Bühnenbereich für die Startseite und Kategorie-Auftakte. Eyebrow, Display-Headline mit optionaler Kursiv-Hervorhebung, Unterzeile, Produkt-Cutout auf dekorativer Scheibe und ein Primary/Secondary-CTA-Paar. Responsiv von 390 bis 1280 px, drei Flächen­töne, zwei Layouts.`,"ds.hero.variant.label":`Layout`,"ds.hero.variant.split":`Split`,"ds.hero.variant.centered":`Zentriert`,"ds.hero.eyebrow":`Neu im Shop`,"ds.hero.headline.a":`Kaiser-Natron`,"ds.hero.headline.em":`für alles`,"ds.hero.headline.b":`was glänzen soll.`,"ds.hero.sub":`Reinigt, backt und neutralisiert Gerüche. Die 250-g-Großpackung für den Haushalt, der sich auf das Original verlässt.`,"home.banner.eyebrow":`Vielseitig einsetzbar`,"home.banner.headline.a":`Ein Pulver,`,"home.banner.headline.em":`hundert Anwendungen`,"home.banner.headline.b":`im Haushalt.`,"home.banner.sub":`Vom Kuchen über das Bad bis zur Wäsche Kaiser-Natron leistet überall still und zuverlässig seine Arbeit.`,"home.categories.clean":`Putzen`,"home.categories.cook":`Kochen`,"home.categories.care":`Pflege`,"bundles.headline.a":`Bundles &`,"bundles.headline.em":`Vorteile`,"bundles.sub":`Als Mitglied sparst du durch Staffelrabatte, exklusive Bundle-Deals und Frühzugang auf neue Produkte.`,"bundles.benefit.1.title":`Staffelrabatt bis 25 %`,"bundles.benefit.2.title":`Exklusive Bundle-Deals`,"bundles.benefit.3.title":`Frühzugang & Neuheiten`,"bundles.joinCta":`Mitglied werden`,"bundles.card.priceLabel":`Verkaufspreis`,"bundles.card.memberPrefix":`Mitglieder:`,"bundles.card.moreItems":`weitere`,"ds.bundles.carousel.label":`Bundle-Karussell`,"ds.bundles.carousel.prev":`Vorheriges Bundle`,"ds.bundles.carousel.next":`Nächstes Bundle`,"ds.bundles.carousel.goToSlide":`Zu Bundle`,"ds.bundleCard.title":`Bundle-Karte`,"ds.bundleCard.description":`Zusammengesetzte Karte für kuratierte Produktpakete. Medien mit optionalem Badge, Nutzungs-Label, Titel, bis zu drei Artikeln, Preisblock (inkl. Mitgliederpreis) und Primär-CTA. Zwei Layouts — vertikal für Raster, horizontal für Karussell-Slides von md aufwärts.`,"ds.bundles.title":`Bundles-Sektion`,"ds.bundles.description":`Kompound-Sektion mit fixer Sidebar (Headline + drei Vorteile + Mitglieder-CTA) und einem Scroll-Snap-Karussell mit horizontalen Bundle-Karten von md aufwärts. Tastatur und Touch-Swipe funktionieren out of the box; die Pfeile loopen am Ende zurück zum Anfang.`,"ds.revitalization.title":`Revitalization Center`,"ds.revitalization.description":`Zentrierte Feature-Teaser-Sektion auf Markengrün. Eyebrow-Badge, Display-Headline mit italic-Highlight, Unterzeile, bis zu drei Pillar-Punkte mit Akzent-Dots und ein einzelner CTA. Gedacht für „Demnächst"-Ankündigungen.`,"ds.about.title":`About / Geschichte`,"ds.about.description":`Zentrierte Intro-Zone plus drei Meilenstein-Karten in den drei Flächentönen (Papier / Creme / Marke) von links nach rechts. Fortlaufende Tonabfolge gibt der Zeitachse visuelle Progression.`,"revit.eyebrow":`Demnächst`,"revit.headline.a":`Revitalization`,"revit.headline.em":`Center`,"revit.sub":`Ein eigenes Wissens-Universum für NaHCO₃ Wissenschaft, Therapiekonzepte und professionelle Anwendungsguides. Mehr als ein Shop.`,"revit.feature.1.title":`Wissenschaft`,"revit.feature.2.title":`Therapie`,"revit.feature.3.title":`Natürlich heilen`,"revit.notifyCta":`Early Access sichern`,"about.eyebrow":`Geschichte & Wissenschaft`,"about.headline":`Über Kaiser-Natron®`,"about.sub":`Mehr als 140 Jahre Tradition, Reinheit und die Wissenschaft hinter dem Unterschied.`,"about.milestone.1.year":`1881`,"about.milestone.1.title":`Die Gründung`,"about.milestone.1.text":`Arnold Holste gründet in Bielefeld das Unternehmen, das Kaiser-Natron® zur Welt bringt reines Natriumhydrogencarbonat in Lebensmittelqualität, zu einer Zeit, als Chemie noch Handwerk war.`,"about.milestone.2.year":`Früh 1900er`,"about.milestone.2.title":`Die Ikone entsteht`,"about.milestone.2.text":`Kaiser-Natron® wird zum Haushalts-Klassiker im deutschsprachigen Raum. Großmütter schwören auf seine universelle Kraft vom Backen bis zum Reinigen.`,"about.milestone.3.year":`Heute`,"about.milestone.3.title":`Premium-Standard E500(ii)`,"about.milestone.3.text":`Kaiser-Natron® trägt die Lebensmittelzulassung E500(ii) extra gereinigt, standardisiert und chargenweise geprüft. Das Original bleibt unverändert gut.`,"ds.search.title":`Produktsuche`,"ds.search.description":`Suchknopf rechts in der Navbar (links der Sprachwahl) und links unten als Floating-Button auf dem Telefon. Klick öffnet ein Full-Screen-Overlay auf Mobilgeräten bzw. ein zentriertes Panel auf dem Desktop. Eingabefeld ist autofokussiert, Ergebnisliste aktualisiert sich beim Tippen, Pfeiltasten / Enter / Esc werden unterstützt.`,"ds.search.demo.label":`Demo öffnen`,"ds.search.demo.hint":`Probiere „Natron", „Pulver", „Entkalker" oder „Spray".`,"ds.navbar.title":`Navigation`,"ds.navbar.description":`Logo + Nav + Warenkorb, in drei Flächentönen. Auf Mobilgeräten behält die obere Leiste das Logo, Menü + Warenkorb wechseln in ein ergonomisches bodennahes rechtes Floating-Cluster. Das Menü öffnet ein vollflächiges markengrünes Overlay.`,"ds.navbar.tone":`Navigation-Ton`,"ds.navbar.tone.paper":`Papier`,"ds.navbar.tone.cream":`Creme`,"ds.navbar.tone.brand":`Marke`,"ds.navbar.layout":`Layout`,"ds.navbar.layout.standard":`Standard`,"ds.navbar.layout.floating":`Schwebend`,"ds.language.title":`Sprachwahl`,"ds.language.description":`Kompakte Pille zum Umschalten zwischen DE, AT und EN. Zwei Töne — Papier für helle Flächen, Marke für das Markengrün — plus ein schwebender Modus, der sich oben rechts an die Ecke heftet.`,"ds.language.paperNote":`Standardton für helle UI-Flächen wie Karten oder Toolbars.`,"ds.language.creamNote":`Stärkerer Rahmen, damit die Pille auf warmen Cremflächen Definition behält.`,"ds.language.brandNote":`Für Einsätze auf dem Markengrün — z. B. im mobilen Menü-Overlay.`,"ds.language.floating":`Schwebend`,"ds.language.floatingNote":"Mit dem Prop `floating` dockt die Pille rechts oben im Viewport an (24px Abstand). Genau so wird sie im Design-System oben rechts eingesetzt.","ds.qtyStepper.title":`Mengenwähler`,"ds.qtyStepper.description":"Kompaktes Plus/Minus-Steuerelement zur Auswahl einer Menge. Pillenförmig, passend zu Buttons und Input-Rahmen, erbt Ton und Radius aus den Tokens. Unterstützt `min`/`max`-Grenzen und einen deaktivierten Zustand.","ds.qtyStepper.minBoundary":`Untergrenze`,"ds.qtyStepper.maxBoundary":`Obergrenze`,"ds.cartDrawer.title":`Warenkorb-Panel`,"ds.cartDrawer.description":`Seitlich einfahrendes Panel auf Creme-Fläche. Zeigt die Positionen mit Bild, Größe, Mengen-Stepper und Zeilensumme; darunter Zwischensumme und ein breiter Zur-Kasse-Button. Auf Mobilgeräten nimmt das Panel die volle Breite ein, ab 440 px fixiert es rechts an. Scroll-Lock, ESC zum Schließen, Klick auf den Hintergrund schließt ebenfalls.`,"ds.cartDrawer.demoLabel":`Warenkorb befüllen & öffnen`,"ds.cartDrawer.demoHint":`Legt zwei Beispielartikel an und öffnet das Panel.`,"ds.cartDrawer.integrationTitle":`Backend-Integration`,"ds.cartDrawer.integrationBody":"Die Komponente kennt kein Backend direkt sie emittiert `update-quantity`, `remove` und `checkout`. Ihr Zustand kommt aus dem API-Layer in `src/api/cart.js`, der heute lokal arbeitet und später 1:1 auf die dokumentierten Endpunkte (siehe `docs/api/cart.md`) umgestellt wird, ohne dass oben etwas anzupassen ist."},r={"cart.open":`Einkaufstasche öffnen`,"cart.label":`Einkaufstasche`,"cart.empty.title":`Deine Einkaufstasche ist leer`,"cart.empty.subtitle":`Leg Produkte aus dem Shop dazu sie erscheinen gleich hier.`,"cart.added":`Zur Einkaufstasche dazugelegt`,"ds.buttons.addToCart":`In die Einkaufstasche`,"ds.buttons.continueShopping":`Weiter einkaufen gehen`,"ds.buttons.save":`Vormerken`,"ds.cartDrawer.title":`Einkaufstasche-Panel`,"ds.sidebar.back":`← Retour zur Seite`},i={"nav.shop":`Shop`,"nav.cook":`Cook`,"nav.clean":`Clean`,"nav.care":`Care`,"nav.applications":`Uses`,"nav.bundles":`Bundles`,"nav.revitalization":`Revitalisation`,"nav.about":`About`,"nav.contact":`Contact`,"shop.eyebrow":`Our range`,"shop.headline":`Kaiser Natron`,"shop.headline.em":`for every corner`,"shop.sub":`From cooking to cleaning to care — three collections, one ingredient.`,"shop.section.cook.headline":`Bake, cook,`,"shop.section.cook.headline.em":`digest well.`,"shop.section.cook.sub":`Powders and tablets — the quiet foundation under bread, cakes and good digestion.`,"shop.section.clean.headline":`Scrub, wash,`,"shop.section.clean.headline.em":`all clean.`,"shop.section.clean.sub":`Natron-based cleaners and laundry helpers that hold up against stubborn grime.`,"shop.section.care.headline":`Bathe, soften,`,"shop.section.care.headline.em":`breathe easy.`,"shop.section.care.sub":`Bath and care products tuned for daily life and sport.`,"shop.feature.cook":`For the kitchen`,"shop.feature.clean":`For the home`,"shop.feature.care":`For body & care`,"shop.feature.cta":`Shop category`,"cart.open":`Open cart`,"cart.label":`Cart`,"cart.subtotal":`Subtotal`,"cart.checkout":`Checkout`,"cart.remove":`Remove`,"cart.qty.increase":`Increase quantity`,"cart.qty.decrease":`Decrease quantity`,"cart.empty.title":`Your cart is empty`,"cart.empty.subtitle":`Add products from the shop — they will appear right here.`,"cart.added":`Added to cart`,"menu.open":`Open menu`,"menu.close":`Close menu`,"language.label":`Language`,"search.open":`Open search`,"search.label":`Search products`,"search.placeholder":`Search products…`,"search.clear":`Clear`,"search.results":`Search results`,"search.noResults":`No products found`,"search.noResultsHint":`Try a different spelling or a broader term.`,"search.emptyHint":`Type to find products — e.g. "Natron powder" or "descaler".`,"search.suggested":`Suggested`,"search.hint.navigate":`Navigate`,"search.hint.select":`Select`,"search.hint.close":`Close`,"ds.sidebar.brand":`Brand`,"ds.sidebar.tokens":`Tokens`,"ds.sidebar.components":`Components`,"ds.sidebar.sections":`Sections`,"ds.sidebar.back":`← Back to site`,"ds.mobile.currentPage":`Current page`,"ds.mobile.selectPage":`Select a page`,"ds.nav.logo":`Logo`,"ds.nav.colors":`Colors`,"ds.nav.typography":`Typography`,"ds.nav.radii":`Radii`,"ds.nav.shadows":`Shadows`,"ds.nav.motion":`Motion`,"ds.nav.icons":`Icons`,"ds.nav.buttons":`Buttons`,"ds.nav.badges":`Badges`,"ds.nav.inputs":`Inputs`,"ds.nav.cards":`Cards`,"ds.nav.products":`Product cards`,"ds.nav.bundleCard":`Bundle card`,"ds.nav.hero":`Hero`,"ds.nav.navbar":`Navbar`,"ds.nav.search":`Search`,"ds.nav.qtyStepper":`Quantity stepper`,"ds.nav.cartDrawer":`Cart`,"ds.nav.language":`Language`,"ds.nav.bundles":`Bundles section`,"ds.nav.revitalization":`Revitalization`,"ds.nav.about":`About`,"ds.search.title":`Search`,"ds.search.description":`Full-text search across the product catalog with image previews. Full-screen overlay on mobile, centered command palette on desktop. Keyboard-navigable and brand-green by default.`,"ds.search.label":`Search products`,"ds.search.placeholder":`Search products…`,"ds.search.noResults":`No products found.`,"ds.search.suggested":`Suggestions`,"ds.search.results":`Results`,"ds.search.open":`Open search`,"ds.search.picked":`Picked`,"ds.search.tryHint":`Try: "natron", "limescale", "laundry", or "bath".`,"ds.search.integrationHint":`Search queries the catalog exported from the project API layer (src/api/). When the real backend lands, the component signature stays the same.`,"ds.search.hint.navigate":`Navigate`,"ds.search.hint.select":`Select`,"ds.search.hint.close":`Close`,"ds.eyebrow.brand":`Brand`,"ds.eyebrow.tokens":`Tokens`,"ds.eyebrow.components":`Components`,"ds.eyebrow.designSystem":`Design system`,"ds.heading.variants":`Variants`,"ds.heading.sizes":`Sizes`,"ds.heading.states":`States`,"ds.heading.withIcons":`With icons`,"ds.heading.onBrandSurface":`On brand surface`,"ds.heading.block":`Block`,"ds.heading.usage":`Usage`,"ds.heading.default":`Default`,"ds.heading.tones":`Tones`,"ds.heading.interactive":`Interactive`,"ds.heading.withoutPadding":`Without padding`,"ds.heading.scale":`Scale`,"ds.heading.display":`Display`,"ds.heading.body":`Body`,"ds.heading.nonUppercase":`Non-uppercase`,"ds.heading.onDifferentSurfaces":`On different surfaces`,"ds.heading.greenOnPaper":`Green on paper`,"ds.heading.creamOnBrand":`Cream on brand green`,"ds.logo.title":`Logo`,"ds.logo.description":"A single SVG component that inherits its fill from CSS `color`. Use the green wordmark on light surfaces and the cream wordmark on the brand green.","ds.logo.usageIntro":`Use color utilities to set the fill:`,"ds.colors.title":`Colors`,"ds.colors.description":`Pine green on cream, with a warm yellow accent. All UI color flows from these tokens — never hand-pick values in components.`,"ds.colors.group.brand":`Brand`,"ds.colors.group.accent":`Accent`,"ds.colors.group.surface":`Surface`,"ds.colors.group.ink":`Ink`,"ds.colors.group.line":`Line`,"ds.colors.group.semantic":`Semantic`,"ds.typography.title":`Typography`,"ds.typography.description":`Fraunces for display — warm, organic, optical-sized. DM Sans for body and UI — clean and geometric.`,"ds.typography.serifDesc":`Serif with optical sizing. Use for hero, section titles, product names.`,"ds.typography.sansDesc":`Clean geometric sans. Use for body, UI, navigation, labels.`,"ds.typography.sample":`The quick brown fox`,"ds.radii.title":`Radii`,"ds.radii.description":`From subtle 6px rounding on small elements to full pills on buttons. Matches the reference site's soft, organic feel.`,"ds.shadows.title":`Shadows`,"ds.shadows.description":`All shadows are tinted green rather than neutral black — they feel warm and part of the palette.`,"ds.shadows.sm.note":`Subtle — nav on scroll, resting cards`,"ds.shadows.md.note":`Medium — primary button hover`,"ds.shadows.lg.note":`Large — floating cards, overlays`,"ds.motion.title":`Motion`,"ds.motion.description":`Motion serves comprehension, not decoration. Three UI durations plus one scenic loop, one default curve, and a clear rule for reduced-motion users.`,"ds.motion.philosophy.title":`Philosophy`,"ds.motion.principle.purpose":`Only animate when it teaches hierarchy, state, or continuity. Decorative motion gets cut.`,"ds.motion.principle.cadence":`Three durations, one curve: 120ms for state, 200ms for UI transitions, 320ms for larger reveals. --ease-out is the default — arrivals feel settled, not snappy.`,"ds.motion.principle.scenic":`Scenic loops (orbit, soft pulses) run linear over 1020s. Long enough to read as atmosphere, never as a ticking clock.`,"ds.motion.principle.reduced":`prefers-reduced-motion is always honoured. Freeze loops, collapse transitions — never punish a user for opting out.`,"ds.motion.durations.title":`Durations`,"ds.motion.duration.fast.note":`State — hover, focus, press.`,"ds.motion.duration.base.note":`Standard UI — colour change, open/close.`,"ds.motion.duration.slow.note":`Larger reveals — drawer, overlays, cards.`,"ds.motion.duration.scene.note":`Scenic changes — full section, route transitions.`,"ds.motion.duration.orbit.note":`Ambient loops — orbit rings, soft pulses.`,"ds.motion.easings.title":`Easings`,"ds.motion.ease.out.note":`Default. Arrivals land softly.`,"ds.motion.ease.inOut.note":`Only when an element must come and go.`,"ds.motion.ease.linear.note":`For mechanical loops — orbit, spinners.`,"ds.motion.animations.title":`Named animations`,"ds.motion.animate.orbit.note":`Ring rotates around a centered icon. Used in the Revitalization section.`,"ds.motion.animate.fadeInUp.note":`Fade with an 8px rise — for entrance moments.`,"ds.motion.animate.pulseSoft.note":`Quiet opacity pulse — for live indicators.`,"ds.motion.reduced.title":`Reduced motion`,"ds.motion.reduced.body":`Global rule in motion.css: under prefers-reduced-motion: reduce, all animation and transition durations collapse to ~0ms. Components do not need their own switch.`,"ds.motion.replay":`Replay`,"ds.motion.fadePreview":`Fade in`,"ds.icons.title":`Icons`,"ds.icons.description":`A curated stroke-based icon set on a 24x24 grid. Rendered via the Icon component — inherits color from currentColor.`,"ds.icons.search":`Search icons…`,"ds.icons.copyHint":`Click a tile to copy its snippet.`,"ds.icons.copied":`Copied!`,"ds.icons.noMatch":`No icons match`,"ds.icons.sizeDefault":`20 (default)`,"ds.icons.addHint":`Add new icons in %s. Use a 24×24 viewBox, stroke-based paths, no fills — the component handles color via %s. Pass %s for screen readers; omit it for decorative icons.`,"ds.icons.group.commerce":`Commerce`,"ds.icons.group.navigation":`Navigation`,"ds.icons.group.actions":`Actions`,"ds.icons.group.contact":`Contact`,"ds.icons.group.feedback":`Feedback`,"ds.icons.group.devices":`Devices`,"ds.buttons.title":`Buttons`,"ds.buttons.description":`Pill-shaped. Pine-green primary with warm-yellow label for the main call to action, warm-yellow accent on brand surfaces, plus secondary, ghost, and danger variants.`,"ds.buttons.primary":`Primary`,"ds.buttons.accent":`Accent`,"ds.buttons.secondary":`Secondary`,"ds.buttons.ghost":`Ghost`,"ds.buttons.danger":`Danger`,"ds.buttons.small":`Small`,"ds.buttons.medium":`Medium`,"ds.buttons.large":`Large`,"ds.buttons.disabled":`Disabled`,"ds.buttons.loading":`Loading`,"ds.buttons.addToCart":`Add to cart`,"ds.buttons.learnMore":`Learn more`,"ds.buttons.save":`Save`,"ds.buttons.confirm":`Confirm`,"ds.buttons.continueShopping":`Continue shopping`,"ds.badges.title":`Badges`,"ds.badges.description":`Small uppercase labels for metadata, status, and eyebrows above headings.`,"ds.badges.neutral":`Neutral`,"ds.badges.brand":`Brand`,"ds.badges.accent":`Accent`,"ds.badges.subtle":`Subtle`,"ds.badges.success":`Success`,"ds.badges.warning":`Warning`,"ds.badges.danger":`Danger`,"ds.badges.newRelease":`New release`,"ds.badges.featured":`Featured`,"ds.inputs.title":`Inputs`,"ds.inputs.description":`Paper surface with a thin green-tinted border. Uppercase eyebrow labels. Focus deepens the border to brand green.`,"ds.inputs.email":`Email`,"ds.inputs.emailHint":`We never share this.`,"ds.inputs.password":`Password`,"ds.inputs.required":`Required field`,"ds.inputs.requiredError":`This field is required`,"ds.inputs.disabled":`Disabled`,"ds.inputs.disabledPlaceholder":`Can't type here`,"ds.cards.title":`Cards`,"ds.cards.description":`Surfaces for grouping content. Three tones — paper, cream, brand — and an optional interactive lift on hover.`,"ds.cards.paper":`Paper`,"ds.cards.cream":`Cream`,"ds.cards.brand":`Brand`,"ds.cards.paperTitle":`Default surface`,"ds.cards.paperBody":`The go-to card for most content. High contrast on the cream page background.`,"ds.cards.creamTitle":`Warm surface`,"ds.cards.creamBody":`A softer alternative for secondary sections or callouts.`,"ds.cards.brandTitle":`Dark surface`,"ds.cards.brandBody":`For feature panels, CTAs, and moments that want to stand out.`,"ds.cards.hoverMe":`Hover me`,"ds.cards.hoverMeToo":`Hover me too`,"ds.cards.hoverBody":`Lifts on hover with a soft green-tinted shadow. Use for clickable items in a grid.`,"ds.cards.hoverBodyAlt":`Same behavior on the warm surface.`,"ds.cards.mediaTitle":`Media card`,"ds.cards.mediaBody":`When the card needs a full-bleed image or header, pass`,"ds.product.title":`Product card`,"ds.product.description":`Composed from Card, Badge, Button, and Icon. Cutout image on a cream media surface, title + size, price in brand, and a full-width primary "Add to cart".`,"ds.product.outOfStock":`Out of stock`,"ds.product.added":`Added`,"ds.hero.title":`Hero`,"ds.hero.description":`Full-bleed stage for the home page and category tops. Eyebrow, display headline with optional italic emphasis, subheadline, product cutout on a decorative disc, and a primary/secondary CTA pair. Responsive from 390 to 1280px, three surface tones, two layouts.`,"ds.hero.variant.label":`Layout`,"ds.hero.variant.split":`Split`,"ds.hero.variant.centered":`Centered`,"ds.hero.eyebrow":`New in shop`,"ds.hero.headline.a":`Kaiser Natron`,"ds.hero.headline.em":`for everything`,"ds.hero.headline.b":`that should shine.`,"ds.hero.sub":`Cleans, bakes, and neutralises odours. The 250 g large pack for the household that trusts the original.`,"home.banner.eyebrow":`Truly versatile`,"home.banner.headline.a":`One powder,`,"home.banner.headline.em":`a hundred uses`,"home.banner.headline.b":`around the home.`,"home.banner.sub":`From baking to bathing to laundry — Kaiser Natron quietly does its work wherever you need it.`,"home.categories.clean":`Clean`,"home.categories.cook":`Cook`,"home.categories.care":`Care`,"bundles.headline.a":`Bundles &`,"bundles.headline.em":`Benefits`,"bundles.sub":`Members save with tiered discounts, exclusive bundle deals, and early access to new products.`,"bundles.benefit.1.title":`Tiered discount up to 25%`,"bundles.benefit.2.title":`Exclusive bundle deals`,"bundles.benefit.3.title":`Early access & new releases`,"bundles.joinCta":`Become a member`,"bundles.card.priceLabel":`Retail price`,"bundles.card.memberPrefix":`Members:`,"bundles.card.moreItems":`more`,"ds.bundles.carousel.label":`Bundle carousel`,"ds.bundles.carousel.prev":`Previous bundle`,"ds.bundles.carousel.next":`Next bundle`,"ds.bundles.carousel.goToSlide":`Go to bundle`,"ds.bundleCard.title":`Bundle card`,"ds.bundleCard.description":`Composed card for curated product bundles. Media with optional badge, usage label, title, up to three line items, a price block (retail + member price) and a primary CTA. Two layouts — vertical for grid use and horizontal for carousel slides from md up.`,"ds.bundles.title":`Bundles section`,"ds.bundles.description":`Compound section combining a sticky sidebar (headline + three benefits + member CTA) with a scroll-snap carousel of horizontal bundle cards from md up. Keyboard and touch swipe work natively; the arrow controls loop past the ends.`,"ds.revitalization.title":`Revitalization Center`,"ds.revitalization.description":`Centered feature-teaser section on brand green. Eyebrow badge, display headline with an italic highlight, subheadline, up to three pillar bullets with accent dots and a single CTA. Designed for "coming soon" announcements.`,"ds.about.title":`About / history`,"ds.about.description":`Centered intro plus three milestone cards running the Card primitive's tones left-to-right (paper / cream / brand). The continuous tonal step gives the timeline a clear sense of visual progression.`,"revit.eyebrow":`Coming soon`,"revit.headline.a":`Revitalization`,"revit.headline.em":`Center`,"revit.sub":`A dedicated knowledge universe for NaHCO₃ — science, therapy concepts, and professional application guides. More than a shop.`,"revit.feature.1.title":`Science`,"revit.feature.2.title":`Therapy`,"revit.feature.3.title":`Natural healing`,"revit.notifyCta":`Get early access`,"about.eyebrow":`History & science`,"about.headline":`About Kaiser-Natron®`,"about.sub":`More than 140 years of tradition, purity, and the science behind the difference.`,"about.milestone.1.year":`1881`,"about.milestone.1.title":`The founding`,"about.milestone.1.text":`Arnold Holste founds the company in Bielefeld that brings Kaiser-Natron® into the world — pure sodium bicarbonate at food grade, at a time when chemistry was still a craft.`,"about.milestone.2.year":`Early 1900s`,"about.milestone.2.title":`The icon emerges`,"about.milestone.2.text":`Kaiser-Natron® becomes a household staple across German-speaking countries. Grandmothers swear by its universal power — from baking to cleaning.`,"about.milestone.3.year":`Today`,"about.milestone.3.title":`Premium E500(ii) standard`,"about.milestone.3.text":`Kaiser-Natron® carries the E500(ii) food-grade approval — extra purified, standardised, and batch-tested. The original, as good as ever.`,"ds.search.title":`Product search`,"ds.search.description":`Search trigger on the right of the navbar (left of the language switcher) and bottom-left as a floating button on mobile. Tapping it opens a full-screen overlay on mobile and a centered panel on desktop. The input auto-focuses, the results list updates as you type, and arrow keys / Enter / Esc are supported.`,"ds.search.demo.label":`Open demo`,"ds.search.demo.hint":`Try "Natron", "pulver", "entkalker" or "spray".`,"ds.navbar.title":`Navbar`,"ds.navbar.description":`Logo + nav + cart, in three surface tones. On mobile, the top bar keeps the logo and the menu + cart move to an ergonomic bottom-right floating cluster. The menu opens a full-screen brand-green overlay.`,"ds.navbar.tone":`Navbar tone`,"ds.navbar.tone.paper":`Paper`,"ds.navbar.tone.cream":`Cream`,"ds.navbar.tone.brand":`Brand`,"ds.navbar.layout":`Layout`,"ds.navbar.layout.standard":`Standard`,"ds.navbar.layout.floating":`Floating`,"ds.language.title":`Language switcher`,"ds.language.description":`Compact pill for switching between DE, AT, and EN. Two tones — paper for light surfaces, brand for the brand-green — plus a floating mode that pins to the top-right corner.`,"ds.language.paperNote":`Default tone for light UI surfaces like cards or toolbars.`,"ds.language.creamNote":`Stronger border so the pill keeps definition on warm cream surfaces.`,"ds.language.brandNote":`For use on the brand green — e.g. inside the mobile menu overlay.`,"ds.language.floating":`Floating`,"ds.language.floatingNote":"The `floating` prop docks the pill to the top-right of the viewport (24px offset). This is the exact placement used by the design system chrome.","ds.qtyStepper.title":`Quantity stepper`,"ds.qtyStepper.description":"Compact plus/minus control for picking a quantity. Pill-shaped to sit next to Buttons and Input borders, inherits tone and radius from tokens. Supports `min`/`max` bounds and a disabled state.","ds.qtyStepper.minBoundary":`At min`,"ds.qtyStepper.maxBoundary":`At max`,"ds.cartDrawer.title":`Cart drawer`,"ds.cartDrawer.description":`A side-drawer that slides in from the right on a cream surface. Lists each line with image, size, quantity stepper, and line total; below that, a subtotal and a full-width checkout CTA. Edge-to-edge on mobile, pinned to the right at 440px from md up. Scroll-locks the page, closes on ESC, and dismisses when the backdrop is clicked.`,"ds.cartDrawer.demoLabel":`Populate & open cart`,"ds.cartDrawer.demoHint":`Adds two sample items and opens the drawer.`,"ds.cartDrawer.integrationTitle":`Backend integration`,"ds.cartDrawer.integrationBody":"The component owns no network code — it emits `update-quantity`, `remove`, and `checkout`. Its state comes from the API boundary in `src/api/cart.js`, which is a local implementation today and swaps to the documented endpoints (see `docs/api/cart.md`) without changes above this line."},a={de:n,at:{...n,...r},en:i},o=`kn-locale`,s=`de`,c=[{code:`de`,label:`DE`,name:`Deutsch`},{code:`at`,label:`AT`,name:`Österreich`},{code:`en`,label:`EN`,name:`English`}],l=c.map(e=>e.code),u=typeof localStorage<`u`?localStorage.getItem(o):null,d=t({locale:l.includes(u)?u:s});typeof document<`u`&&(document.documentElement.lang=d.locale);function f(e){!l.includes(e)||d.locale===e||(d.locale=e,typeof localStorage<`u`&&localStorage.setItem(o,e),typeof document<`u`&&(document.documentElement.lang=e))}typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key!==o||!l.includes(e.newValue)||(d.locale=e.newValue,typeof document<`u`&&(document.documentElement.lang=e.newValue))});function p(){return{locale:e({get:()=>d.locale,set:f}),setLocale:f,t:e=>(a[d.locale]||a[s])[e]??a[s][e]??e,availableLocales:c}}export{p as t};