language
This commit is contained in:
@@ -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 (isset($availableLangs['en'])) {
|
||||
$lang = 'en';
|
||||
} else {
|
||||
$keys = array_keys($availableLangs);
|
||||
$lang = $keys[0] ?? 'en';
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------
|
||||
|
||||
@@ -48,8 +48,6 @@ if ($isLoggedIn) {
|
||||
// -----------------------------------------
|
||||
// Sprachkontext direkt aus fileload.php
|
||||
// -----------------------------------------
|
||||
|
||||
// Aktuelle Sprache und verfügbare Sprachen aus den GLOBALS
|
||||
$currentLang = $GLOBALS['lang'] ?? 'en';
|
||||
$availableLangs = $GLOBALS['availableLangs'] ?? [];
|
||||
|
||||
@@ -76,13 +74,25 @@ $currentLangFlag = $currentLangInfo['flag'] ?? '🏳️';
|
||||
$currentLangCode = strtoupper($currentLangInfo['code'] ?? $currentLang);
|
||||
$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">
|
||||
<div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 flex items-center justify-between h-16">
|
||||
|
||||
<!-- Logo -->
|
||||
<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"
|
||||
alt="<?= htmlspecialchars(app_primary_domain()) ?> Logo"
|
||||
class="h-9 w-auto">
|
||||
@@ -130,13 +140,13 @@ $currentLangLabel = $currentLangInfo['label'] ?? $currentLangCode;
|
||||
$isActive = ($code === $currentLang);
|
||||
$flag = $info['flag'] ?? '🏳️';
|
||||
$label = strtoupper($info['code'] ?? $code);
|
||||
$url = build_lang_url($code, $currentPath, $currentQuery);
|
||||
?>
|
||||
<button type="button"
|
||||
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) ?>">
|
||||
<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' : '' ?>">
|
||||
<span class="text-base"><?= htmlspecialchars($flag) ?></span>
|
||||
<span><?= htmlspecialchars($label) ?></span>
|
||||
</button>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user