Страницы

Поиск по вопросам

понедельник, 3 июня 2019 г.

Локализация php

Делал локализацию, получилось все очень громоздко.
Как это исправить?
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");
Ну и совсем хардкорный:

Комментариев нет:

Отправить комментарий