diff --git a/partials/structure/fileload.php b/partials/structure/fileload.php deleted file mode 100644 index c85c2b9..0000000 --- a/partials/structure/fileload.php +++ /dev/null @@ -1,124 +0,0 @@ - 0, - 'path' => '/', - 'domain' => '', - 'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'), - 'httponly' => true, - 'samesite' => 'Lax', - ]); - - session_start(); - } -} - -// ----------------------------------------------------------- -// 1) Sprache bestimmen (vor dem Laden der JSON-Dateien!) -// ----------------------------------------------------------- -$lang = $_GET['lang'] ?? null; - -if (is_string($lang)) { - $lang = strtolower($lang); - if (!preg_match('/^[a-z]{2}$/', $lang)) { - $lang = null; - } -} else { - $lang = null; -} - -// ----------------------------------------------------------- -// 2) Verfügbare JSON-Sprachen erkennen -// ----------------------------------------------------------- -$i18nDir = __DIR__ . '/../public/assets/i18n'; -$langFiles = glob($i18nDir . '/*.json') ?: []; - -$availableLangs = []; - -// Alle vorhandenen JSONs einsammeln -foreach ($langFiles as $file) { - $json = json_decode(@file_get_contents($file), true); - if (!is_array($json) || !isset($json['meta'])) { - continue; - } - - $meta = $json['meta']; - $code = strtolower($meta['code'] ?? basename($file, '.json')); - - $availableLangs[$code] = [ - 'code' => $code, - 'label' => $meta['label'] ?? strtoupper($code), - 'flag' => $meta['flag'] ?? '🏳️', - ]; -} - -// Falls keine Sprachdateien gefunden wurden → Minimal-Fallback -if (empty($availableLangs)) { - $availableLangs = [ - 'en' => [ - 'code' => 'en', - 'label' => 'English', - 'flag' => '🇬🇧', - ], - ]; -} - -// Falls Sprache ungültig oder nicht in available → erste verfügbare Sprache wählen -if (!$lang || !isset($availableLangs[$lang])) { - // erste Sprache aus dem Array, ohne array_key_first (falls ältere PHP-Version) - $keys = array_keys($availableLangs); - $lang = $keys[0] ?? 'en'; -} - -// ----------------------------------------------------------- -// 3) Aktive Sprachdatei laden -// ----------------------------------------------------------- -$activeLangFile = $i18nDir . '/' . $lang . '.json'; -$activeLangData = []; - -if (is_readable($activeLangFile)) { - $json = json_decode(@file_get_contents($activeLangFile), true); - if (is_array($json)) { - $activeLangData = $json; - } -} - -// ----------------------------------------------------------- -// 4) Fallback-Sprache (EN) -// ----------------------------------------------------------- -$fallbackLangData = []; -$fallbackFile = $i18nDir . '/en.json'; - -if ($lang !== 'en' && is_readable($fallbackFile)) { - $json = json_decode(@file_get_contents($fallbackFile), true); - if (is_array($json)) { - $fallbackLangData = $json; - } -} - -// ----------------------------------------------------------- -// 5) Globale i18n-Struktur bereitstellen -// ----------------------------------------------------------- -$GLOBALS['lang'] = $lang; -$GLOBALS['availableLangs'] = $availableLangs; - -$GLOBALS['i18n'] = [ - 'current' => $activeLangData, - 'fallback' => $fallbackLangData, -]; - -// ----------------------------------------------------------- -// 6) Rest des Systems laden -// ----------------------------------------------------------- - -require_once __DIR__ . "/../db.php"; -require_once __DIR__ . '/../src/functions.php';