language
This commit is contained in:
@@ -114,11 +114,17 @@ 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])) {
|
||||||
|
if (isset($availableLangs['en'])) {
|
||||||
|
$lang = 'en';
|
||||||
|
} else {
|
||||||
$keys = array_keys($availableLangs);
|
$keys = array_keys($availableLangs);
|
||||||
$lang = $keys[0] ?? 'en';
|
$lang = $keys[0] ?? 'en';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------
|
// -----------------------------------------------------------
|
||||||
// 3) Aktive Sprachdatei laden
|
// 3) Aktive Sprachdatei laden
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user