This commit is contained in:
2025-11-25 03:27:29 +01:00
parent caf97b016e
commit 6823488c26

View File

@@ -37,17 +37,12 @@ if (is_string($lang)) {
} else { } else {
$lang = null; $lang = null;
} }
$lang = strtolower($lang);
if (!preg_match('/^[a-z]{2}$/', $lang)) {
$lang = null;
}
// ----------------------------------------------------------- // -----------------------------------------------------------
// 2) Verfügbare JSON-Sprachen erkennen // 2) Verfügbare JSON-Sprachen erkennen
// ----------------------------------------------------------- // -----------------------------------------------------------
$i18nDir = __DIR__ . '/../public/assets/i18n'; $i18nDir = __DIR__ . '/../public/assets/i18n';
$langFiles = glob($i18nDir . '/*.json') ?: []; $langFiles = glob($i18nDir . '/*.json') ?: [];
$availableLangs = []; $availableLangs = [];
@@ -65,7 +60,7 @@ foreach ($langFiles as $file) {
]; ];
} }
// Falls Sprache ungültig → erste verfügbare Sprache wählen // Falls Sprache ungültig oder nicht vorhanden → erste verfügbare Sprache wählen
if (!$lang || !isset($availableLangs[$lang])) { if (!$lang || !isset($availableLangs[$lang])) {
$lang = array_key_first($availableLangs) ?: 'en'; $lang = array_key_first($availableLangs) ?: 'en';
} }
@@ -87,7 +82,7 @@ if (is_readable($activeLangFile)) {
// 4) Fallback-Sprache (EN) // 4) Fallback-Sprache (EN)
// ----------------------------------------------------------- // -----------------------------------------------------------
$fallbackLangData = []; $fallbackLangData = [];
$fallbackFile = $i18nDir . '/en.json'; $fallbackFile = $i18nDir . '/en.json';
if ($lang !== 'en' && is_readable($fallbackFile)) { if ($lang !== 'en' && is_readable($fallbackFile)) {
$json = json_decode(file_get_contents($fallbackFile), true); $json = json_decode(file_get_contents($fallbackFile), true);
@@ -99,7 +94,7 @@ if ($lang !== 'en' && is_readable($fallbackFile)) {
// ----------------------------------------------------------- // -----------------------------------------------------------
// 5) Globale i18n-Struktur bereitstellen // 5) Globale i18n-Struktur bereitstellen
// ----------------------------------------------------------- // -----------------------------------------------------------
$GLOBALS['lang'] = $lang; $GLOBALS['lang'] = $lang;
$GLOBALS['availableLangs'] = $availableLangs; $GLOBALS['availableLangs'] = $availableLangs;
$GLOBALS['i18n'] = [ $GLOBALS['i18n'] = [