diff --git a/README.md b/README.md index 5842a9a..bdf4b5b 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,17 @@ podman play kube deploy/podman-kube.yaml Hinweise: - Das Image ist zweistufig: Build in Node 22 Alpine, Runtime in NGINX Alpine. - Die Seite ist rein statisch (Astro output: static) und benötigt keinen Server‑Side‑Code. + +## Lokalisierung (DE/EN) + +- Standard-Sprache ist Deutsch unter `/`. +- Englische Inhalte liegen unter `/en` (z. B. `/leistungen` ↔ `/en/leistungen`). +- Die Navigationsleiste und der Footer passen sich automatisch an die Sprache an. +- Ein Sprachschalter (EN/DE) in der Kopfzeile verlinkt auf die jeweils entsprechende Route. +- Hreflang‑Alternates (`de`, `en`) werden pro Seite ausgegeben. + +Neue Seite hinzufügen: +- Deutsch: `src/pages/.astro` +- Englisch: `src/pages/en/.astro` + +Hinweis: Slugs sind aktuell in beiden Sprachen identisch (deutsche Slugs unter `/en/...`). Für vollständig lokalisierte Slugs kann optional ein Mapping ergänzt werden. diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 2bb097e..cda9877 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -1,9 +1,40 @@ --- import "../styles/globals.css"; const { title = "Valtrix – Struktur schafft Wert", description = "Cloud, Security & AI Consulting aus Berlin", path = "/" } = Astro.props; +// Language & routing helpers +const pathname = Astro.url.pathname; +const isEn = pathname.startsWith('/en'); +const lang = isEn ? 'en' : 'de'; +const prefix = isEn ? '/en' : ''; +const stripEn = (p) => p.replace(/^\/en(?=\/|$)/, ''); +const altHref = isEn ? (stripEn(pathname) || '/') : ('/en' + (pathname === '/' ? '' : pathname)); +// Canonical/alternate URLs (use provided path when present for og/link tags) +const canonicalPath = path || pathname; +const deHref = stripEn(canonicalPath) || '/'; +const enHref = canonicalPath.startsWith('/en') ? canonicalPath : ('/en' + (canonicalPath === '/' ? '' : canonicalPath)); +// Nav labels per language +const labels = isEn ? { + services: 'Services', + security: 'Security', + cases: 'Case Studies', + about: 'About', + contact: 'Contact', + imprint: 'Imprint', + privacy: 'Privacy', + langShort: 'DE', +} : { + services: 'Leistungen', + security: 'Sicherheit', + cases: 'Referenzen', + about: 'Über uns', + contact: 'Kontakt', + imprint: 'Impressum', + privacy: 'Datenschutz', + langShort: 'EN', +}; --- - + @@ -15,20 +46,23 @@ const { title = "Valtrix – Struktur schafft Wert", description = "Cloud, Secur + +
@@ -40,7 +74,7 @@ const { title = "Valtrix – Struktur schafft Wert", description = "Cloud, Secur
Valtrix · Precision. Power. Purpose.
- © {new Date().getFullYear()} Valtrix · Impressum · Datenschutz + © {new Date().getFullYear()} Valtrix · {labels.imprint} · {labels.privacy} + diff --git a/src/pages/en/leistungen.astro b/src/pages/en/leistungen.astro new file mode 100644 index 0000000..aa4529b --- /dev/null +++ b/src/pages/en/leistungen.astro @@ -0,0 +1,20 @@ +--- +import Base from "../../layouts/Base.astro"; +--- + +

Services

+
+
+

Security & Compliance

+

Zero-Trust, IAM, hardening, audits, processes aligned with BSI/ISO 27001, policies-as-code.

+
+
+

Cloud & DevOps

+

Landing zones, GitOps, observability, cost control – reproducible & scalable.

+
+
+

AI & Automation

+

RAG/agents, automation of operations processes, secure integration into existing platforms.

+
+
+ diff --git a/src/pages/en/sicherheit.astro b/src/pages/en/sicherheit.astro new file mode 100644 index 0000000..412ade5 --- /dev/null +++ b/src/pages/en/sicherheit.astro @@ -0,0 +1,11 @@ +--- +import Base from "../../layouts/Base.astro"; +--- + +

Security & Compliance

+
    +
  • Data sovereignty: EU hosting, GDPR compliant
  • +
  • Processes aligned with BSI/ISO 27001
  • +
  • Security-by-design, regular audits
  • +
+ diff --git a/src/pages/en/ueber-uns.astro b/src/pages/en/ueber-uns.astro new file mode 100644 index 0000000..24cf707 --- /dev/null +++ b/src/pages/en/ueber-uns.astro @@ -0,0 +1,7 @@ +--- +import Base from "../../layouts/Base.astro"; +--- + +

About

+

We are a team of cloud, security and AI engineers. We build robust systems – pragmatic and measurable.

+