From 3229c6b1eaff1b90c58ddc6d08426da8152d0e3d Mon Sep 17 00:00:00 2001 From: UserIsMH Date: Wed, 6 May 2026 22:12:19 +0200 Subject: [PATCH] i18n: Sprachumschalter DE/EN und englische Seiten unter /en/ - Neuer .lang-switcher Komponente in css/lang-switcher.css, Variante fuer dunkle Lagebild-Seiten enthalten - Sprachumschalter im Header und Mobile-Menue aller DE-Seiten (index, impressum, datenschutz, lagen/*) - Englische Seiten unter /en/index.html, /en/legal-notice.html und /en/privacy.html mit kompletter Uebersetzung; rechtliche Texte mit Hinweis "German version shall prevail" - hreflang-Tags (de/en/x-default) auf Hauptseite und rechtlichen Seiten; Lagen-Seiten ohne hreflang bis EN-Versionen existieren - og:locale + og:locale:alternate gesetzt, Schema.org bleibt - Sitemap mit xhtml:link Alternates fuer beide Sprachen ergaenzt - DE-Lagen-Toggle zeigt vorerst auf /en/ (EN-Lagen folgen Phase 3) - Cookie-Banner liest bereits selbststaendig, daher englisch auf EN-Seiten ohne weitere Aenderung Co-Authored-By: Claude Opus 4.7 (1M context) --- css/lang-switcher.css | 73 +++++ css/style.css | 2 + datenschutz.html | 23 +- en/index.html | 504 +++++++++++++++++++++++++++++++++ en/legal-notice.html | 175 ++++++++++++ en/privacy.html | 302 ++++++++++++++++++++ impressum.html | 23 +- index.html | 23 +- lagen/cyberangriffe/index.html | 12 +- lagen/deepfakes/index.html | 12 +- lagen/iran-konflikt/index.html | 12 +- sitemap-launch.xml | 36 ++- 12 files changed, 1184 insertions(+), 13 deletions(-) create mode 100644 css/lang-switcher.css create mode 100644 en/index.html create mode 100644 en/legal-notice.html create mode 100644 en/privacy.html diff --git a/css/lang-switcher.css b/css/lang-switcher.css new file mode 100644 index 0000000..cda075a --- /dev/null +++ b/css/lang-switcher.css @@ -0,0 +1,73 @@ +/* Language switcher (DE/EN) + Used on every page in the site header and inside the mobile menu. + Active language is non-clickable, inactive language is a link to the + counterpart URL. Pendant URL is hardcoded per page so the switch works + without JavaScript. */ + +.lang-switcher { + display: inline-flex; + align-items: center; + gap: 0.4em; + font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + font-size: 0.9rem; + font-weight: 600; + letter-spacing: 0.04em; + user-select: none; + line-height: 1; +} + +.lang-switcher .lang-active { + color: #C8A851; + cursor: default; +} + +.lang-switcher .lang-link { + color: #5A6478; + text-decoration: none; + transition: color 0.2s ease; + padding: 0.15em 0; +} + +.lang-switcher .lang-link:hover, +.lang-switcher .lang-link:focus-visible { + color: #C8A851; + outline: none; +} + +.lang-switcher .lang-sep { + color: #5A6478; + opacity: 0.4; +} + +/* Dark variant for the lagebild pages (dark navbar) */ +.lagebild-page .lang-switcher .lang-link, +.lang-switcher.lang-switcher-dark .lang-link { + color: rgba(255, 255, 255, 0.7); +} + +.lagebild-page .lang-switcher .lang-link:hover, +.lagebild-page .lang-switcher .lang-link:focus-visible, +.lang-switcher.lang-switcher-dark .lang-link:hover, +.lang-switcher.lang-switcher-dark .lang-link:focus-visible { + color: #C8A851; +} + +.lagebild-page .lang-switcher .lang-sep, +.lang-switcher.lang-switcher-dark .lang-sep { + color: rgba(255, 255, 255, 0.5); +} + +/* Inside mobile menus: full-width row with separator on top */ +.mobile-menu .lang-switcher, +.nav-menu-mobile .lang-switcher { + margin-top: 1rem; + padding-top: 1rem; + border-top: 1px solid rgba(0, 0, 0, 0.08); + font-size: 1rem; + justify-content: center; + width: 100%; +} + +.lagebild-page .nav-menu-mobile .lang-switcher { + border-top-color: rgba(255, 255, 255, 0.12); +} diff --git a/css/style.css b/css/style.css index 1ca9ae9..59ad1a9 100644 --- a/css/style.css +++ b/css/style.css @@ -46,6 +46,8 @@ a { color:inherit; text-decoration:none; } .nav-menu a { font-size:0.9rem; font-weight:500; color:var(--navy); transition:color 0.2s; } .nav-menu a:hover { color:var(--gold); } +.nav-extras { display:flex; align-items:center; gap:18px; } + .mobile-menu-toggle { display:none; background:none; border:none; cursor:pointer; width:32px; height:24px; position:relative; flex-direction:column; justify-content:space-between; } .mobile-menu-toggle span { display:block; width:100%; height:2px; background:var(--navy); border-radius:2px; transition:transform 0.3s,opacity 0.3s; } .mobile-menu-toggle.active span:nth-child(1) { transform:rotate(45deg) translate(7px,7px); } diff --git a/datenschutz.html b/datenschutz.html index fd3b3de..3393f20 100644 --- a/datenschutz.html +++ b/datenschutz.html @@ -9,6 +9,10 @@ + + + + @@ -17,6 +21,7 @@ + + + + + + + + +
+ +
+ +
+ + +
+
+ + +
+
+ + + + + diff --git a/en/privacy.html b/en/privacy.html new file mode 100644 index 0000000..b950f47 --- /dev/null +++ b/en/privacy.html @@ -0,0 +1,302 @@ + + + + + + Privacy policy – AegisSight + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+ + +
+
+ + + + + diff --git a/impressum.html b/impressum.html index be0e657..9a94deb 100644 --- a/impressum.html +++ b/impressum.html @@ -9,6 +9,10 @@ + + + + @@ -17,6 +21,7 @@ +