This commit is contained in:
2025-11-26 01:04:52 +01:00
parent 354bf34aa8
commit 9e483cf445
2 changed files with 26 additions and 10 deletions

View File

@@ -114,10 +114,16 @@ if (empty($availableLangs)) {
]; ];
} }
// Falls Sprache ungültig oder nicht in available → erste verfügbare Sprache wählen // Falls Sprache ungültig oder nicht in available:
// 1) Wenn 'en' existiert → nimm 'en'
// 2) Sonst: erste verfügbare Sprache
if (!$lang || !isset($availableLangs[$lang])) { if (!$lang || !isset($availableLangs[$lang])) {
$keys = array_keys($availableLangs); if (isset($availableLangs['en'])) {
$lang = $keys[0] ?? 'en'; $lang = 'en';
} else {
$keys = array_keys($availableLangs);
$lang = $keys[0] ?? 'en';
}
} }
// ----------------------------------------------------------- // -----------------------------------------------------------

View File

@@ -48,8 +48,6 @@ if ($isLoggedIn) {
// ----------------------------------------- // -----------------------------------------
// Sprachkontext direkt aus fileload.php // Sprachkontext direkt aus fileload.php
// ----------------------------------------- // -----------------------------------------
// Aktuelle Sprache und verfügbare Sprachen aus den GLOBALS
$currentLang = $GLOBALS['lang'] ?? 'en'; $currentLang = $GLOBALS['lang'] ?? 'en';
$availableLangs = $GLOBALS['availableLangs'] ?? []; $availableLangs = $GLOBALS['availableLangs'] ?? [];
@@ -76,13 +74,25 @@ $currentLangFlag = $currentLangInfo['flag'] ?? '🏳️';
$currentLangCode = strtoupper($currentLangInfo['code'] ?? $currentLang); $currentLangCode = strtoupper($currentLangInfo['code'] ?? $currentLang);
$currentLangLabel = $currentLangInfo['label'] ?? $currentLangCode; $currentLangLabel = $currentLangInfo['label'] ?? $currentLangCode;
// -----------------------------------------
// Helper: URL mit anderem ?lang=.. bauen
// -----------------------------------------
$currentPath = strtok($_SERVER['REQUEST_URI'] ?? '/', '?');
$currentQuery = $_GET ?? [];
function build_lang_url(string $code, string $path, array $query): string
{
$query['lang'] = $code;
$qs = http_build_query($query);
return $path . ($qs ? ('?' . $qs) : '');
}
?> ?>
<header class="sticky top-0 z-40 border-b border-brand-border/70 backdrop-blur bg-brand-bg/85"> <header class="sticky top-0 z-40 border-b border-brand-border/70 backdrop-blur bg-brand-bg/85">
<div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 flex items-center justify-between h-16"> <div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 flex items-center justify-between h-16">
<!-- Logo --> <!-- Logo -->
<div class="flex items-center gap-3"> <div class="flex items-center gap-3">
<a href="/?lang=<?= htmlspecialchars($currentLang) ?>" class="flex items-center gap-3"> <a href="<?= htmlspecialchars(build_lang_url($currentLang, '/', [])) ?>" class="flex items-center gap-3">
<img src="<?= $baseUrl ?>/assets/img/logo_slogan.png" <img src="<?= $baseUrl ?>/assets/img/logo_slogan.png"
alt="<?= htmlspecialchars(app_primary_domain()) ?> Logo" alt="<?= htmlspecialchars(app_primary_domain()) ?> Logo"
class="h-9 w-auto"> class="h-9 w-auto">
@@ -130,13 +140,13 @@ $currentLangLabel = $currentLangInfo['label'] ?? $currentLangCode;
$isActive = ($code === $currentLang); $isActive = ($code === $currentLang);
$flag = $info['flag'] ?? '🏳️'; $flag = $info['flag'] ?? '🏳️';
$label = strtoupper($info['code'] ?? $code); $label = strtoupper($info['code'] ?? $code);
$url = build_lang_url($code, $currentPath, $currentQuery);
?> ?>
<button type="button" <a href="<?= htmlspecialchars($url) ?>"
class="lang-pill flex items-center gap-2 w-full text-left px-3 py-1.5 uppercase tracking-[0.18em] text-brand-muted hover:text-brand-primary hover:bg-brand-bg/60 <?= $isActive ? 'bg-brand-bg/60' : '' ?>" class="lang-pill flex items-center gap-2 w-full text-left px-3 py-1.5 uppercase tracking-[0.18em] text-brand-muted hover:text-brand-primary hover:bg-brand-bg/60 <?= $isActive ? 'bg-brand-bg/60' : '' ?>">
data-lang="<?= htmlspecialchars($code) ?>">
<span class="text-base"><?= htmlspecialchars($flag) ?></span> <span class="text-base"><?= htmlspecialchars($flag) ?></span>
<span><?= htmlspecialchars($label) ?></span> <span><?= htmlspecialchars($label) ?></span>
</button> </a>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
</div> </div>