['name' => 'Deutsch', 'locale' => 'de_DE', 'flag' => '๐ฉ๐ช', 'show_in_menu' => true, 'dir' => 'ltr'],
'en' => ['name' => 'English', 'locale' => 'en_GB', 'flag' => '๐ฌ๐ง', 'show_in_menu' => true, 'dir' => 'ltr'],
'ru' => ['name' => 'ะ ัััะบะธะน', 'locale' => 'ru_RU', 'flag' => '๐ท๐บ', 'show_in_menu' => true, 'dir' => 'ltr'],
];
$language = 'en';
$locale = 'en_GB';
$dir = 'ltr';
if(isset($_REQUEST['lang']) && isset(LANGUAGES[$_REQUEST['lang']])){
$locale = LANGUAGES[$_REQUEST['lang']]['locale'];
$language = $_REQUEST['lang'];
$dir = LANGUAGES[$_REQUEST['lang']]['dir'];
setcookie('language', $_REQUEST['lang'], ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => ($_SERVER['HTTPS'] ?? '' === 'on'), 'httponly' => true, 'samesite' => 'Strict']);
}elseif(isset($_COOKIE['language']) && isset(LANGUAGES[$_COOKIE['language']])){
$locale = LANGUAGES[$_COOKIE['language']]['locale'];
$language = $_COOKIE['language'];
$dir = LANGUAGES[$_COOKIE['language']]['dir'];
}elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$prefLocales = array_reduce(
explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']),
function (array $res, string $el) {
list($l, $q) = array_merge(explode(';q=', $el), [1]);
$res[$l] = (float) $q;
return $res;
}, []);
arsort($prefLocales);
foreach($prefLocales as $l => $q){
$lang = locale_lookup(array_keys(LANGUAGES), $l);
if(!empty($lang)){
$locale = LANGUAGES[$lang]['locale'];
$language = $lang;
$dir = LANGUAGES[$lang]['dir'];
setcookie('language', $lang, ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => ($_SERVER['HTTPS'] ?? '' === 'on'), 'httponly' => true, 'samesite' => 'Strict']);
break;
}
}
}
putenv('LC_ALL='.$locale);
setlocale(LC_ALL, $locale);
bindtextdomain('main-website', __DIR__.'/locale');
bind_textdomain_codeset('main-website', 'UTF-8');
textdomain('main-website');
function menu(string $title = ''): void
{
global $global_style, $language;
echo "";
echo '';
echo "$title
'.LANGUAGES[$language]['flag'].'
';
foreach(LANGUAGES as $lang => $data) {
if($lang === $language || !$data['show_in_menu']){
continue;
}
echo '';
}
echo '';
echo '