'English', 'cs_CZ.UTF-8' => 'Čeština', 'zh_TW.UTF-8' => '正體中文 (Chinese traditional)', 'zh_CN.UTF-8' => '简体中文 (Chinese simplified)', 'da_DK.UTF-8' => 'Dansk', 'de_DE.UTF-8' => 'Deutsch', 'es_MX.UTF-8' => 'Español', 'fi_FI.UTF-8' => 'Finnish', 'fr_FR.UTF-8' => 'Français', 'el_GR.UTF-8' => 'Ελληνικά', 'id_ID.UTF-8' => 'Indonesian', 'it_IT.UTF-8' => 'Italiano', 'ja_JP.UTF-8' => '日本語 (Japanese)', 'ko_KR.UTF-8' => '한국어 (Korean)', 'nl_NL.UTF-8' => 'Nederlands', 'pl_PL.UTF-8' => 'Polskie', 'pt_BR.UTF-8' => 'Português', 'ru_RU.UTF-8' => 'Русский', 'ro_RO.UTF-8' => 'Română', 'sk_SK.UTF-8' => 'Slovenčina', 'sv_SE.UTF-8' => 'Svenska', 'tr_TR.UTF-8' => 'Türkçe', 'vi_VN.UTF-8' => 'Tiếng Việt (Vietnamese)' ]; } function detectBrowserLocale(): string { if (empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) || strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) < 2) { return 'en_GB.UTF-8'; } $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); return match ($lang) { 'de' => 'de_DE.UTF-8', 'fr' => 'fr_FR.UTF-8', 'it' => 'it_IT.UTF-8', 'pt' => 'pt_BR.UTF-8', 'sv' => 'sv_SE.UTF-8', 'nl' => 'nl_NL.UTF-8', 'zh' => ($_SERVER['HTTP_ACCEPT_LANGUAGE'] === 'zh_TW') ? 'zh_TW.UTF-8' : 'zh_CN.UTF-8', 'cs' => 'cs_CZ.UTF-8', 'ru' => 'ru_RU.UTF-8', 'es' => 'es_MX.UTF-8', 'fi' => 'fi_FI.UTF-8', 'da' => 'da_DK.UTF-8', 'tr' => 'tr_TR.UTF-8', 'id' => 'id_ID.UTF-8', 'ko' => 'ko_KR.UTF-8', 'ja' => 'ja_JP.UTF-8', 'vi' => 'vi_VN.UTF-8', 'el' => 'el_GR.UTF-8', 'pl' => 'pl_PL.UTF-8', 'sk' => 'sk_SK.UTF-8', default => 'en_GB.UTF-8', }; }