From 5d31973be3df0cc5db4409658b84deae5b6a971d Mon Sep 17 00:00:00 2001 From: Clemens Hering Date: Mon, 3 Nov 2025 07:43:47 +0100 Subject: [PATCH] Added english --- README.md | 14 +++++ src/layouts/Base.astro | 50 +++++++++++++--- src/pages/en/cases.astro | 19 ++++++ src/pages/en/cases/cloud-migration.astro | 36 ++++++++++++ src/pages/en/cases/k8s-hardening.astro | 48 ++++++++++++++++ src/pages/en/datenschutz.astro | 62 ++++++++++++++++++++ src/pages/en/impressum.astro | 11 ++++ src/pages/en/index.astro | 73 ++++++++++++++++++++++++ src/pages/en/kontakt.astro | 27 +++++++++ src/pages/en/leistungen.astro | 20 +++++++ src/pages/en/sicherheit.astro | 11 ++++ src/pages/en/ueber-uns.astro | 7 +++ 12 files changed, 370 insertions(+), 8 deletions(-) create mode 100644 src/pages/en/cases.astro create mode 100644 src/pages/en/cases/cloud-migration.astro create mode 100644 src/pages/en/cases/k8s-hardening.astro create mode 100644 src/pages/en/datenschutz.astro create mode 100644 src/pages/en/impressum.astro create mode 100644 src/pages/en/index.astro create mode 100644 src/pages/en/kontakt.astro create mode 100644 src/pages/en/leistungen.astro create mode 100644 src/pages/en/sicherheit.astro create mode 100644 src/pages/en/ueber-uns.astro 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.

+