Делал локализацию, получилось все очень громоздко.
Как это исправить?
if(isset($_GET['lang'])) {
if ($_GET['lang'] === "ru") $lang = "ru";
elseif ($_GET['lang'] === "ua") $lang = "ua";
else $lang = "en";
setcookie("lang", $lang, time()+30758400, "/");
} else {
if (empty($_COOKIE['lang'])) {
$b_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
if ($b_lang == "ru") $lang = "ru";
elseif ($b_lang == "uk") $lang = "ua";
else $lang = "en";
}
else {
if ($_COOKIE['lang'] === "ru") $lang = "ru";
elseif ($_COOKIE['lang'] === "ua") $lang = "ua";
else $lang = "en";
}
}
if ($lang === "ru") include("lang/ru.php");
elseif ($lang === "ua") include("lang/ua.php");
else include("lang/en.php");
Ответ
$allowedLang=array("ru","ua","en");
$needCookie=false;
if(isset($_GET['lang']))
{
$lang=$_GET['lang'];
$needCookie=true;
}
elseif(empty($_COOKIE['lang'])) $lang=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
else $lang=$_COOKIE['lang'];
if(in_array($lang,$allowedLang)) $lang='en';
if($needCookie) setcookie("lang", $lang, time()+30758400, "/");
include("lang/$lang.php");
Ну и совсем хардкорный:
Комментариев нет:
Отправить комментарий