Многоязычная веб-страница с PHP MYSQL, не может установить язык сессии по умолчанию

Я разрабатываю многоязычную веб-страницу с php и mysql в моей локальной среде разработки. Все хорошо, пока сессия по умолчанию значение языка.

Мой скрипт обнаружения языка выглядит так:

<?php
ob_start();
session_start();
header('Cache-control: private');
if(isset($_GET["lang"]))
    {
    $lang = $_GET["lang"];
    $_SESSION["lang"] = $lang;
    setcookie("lang", $lang, time() + (3600 * 24 * 30));
    }
elseif(isset($_SESSION["lang"])) {
    $lang = $_SESSION["lang"];
}
elseif(isset($_COOKIE["lang"])) {
    $lang = $_COOKIE["lang"];
}
else {
    $lang = "tr";
}
switch ($lang) {

  case "tr":
  break;

  default:
  $lang = "tr";

}
ob_end_flush();
?>

Когда я пытаюсь вызвать страницу

локальный / производство /sample.php? =1

он не вызывал значения из mysql, потому что не может определить язык по умолчанию.

Но когда я пытаюсь позвонить

локальный / производство /sample.php? =1& LANG = тр

Работает отлично. Что мне не хватает? Что не так с моим скриптом определения языка? Любая помощь сильно ценится.

1 ответ

Если вы хотите получить язык по умолчанию из браузера клиента, вы можете проверить этот вопрос: Самый простой способ определения языкового стандарта клиента в PHP

Убедитесь, что у вас есть множество приемлемых языков, которые поддерживает ваш сайт. Если язык клиента браузера отсутствует в вашем списке, вы должны использовать свой собственный язык по умолчанию.

Если вы заинтересованы в использовании Zend Framework (v1), я написал несколько статей о многоязычной поддержке в своем блоге.

Другие вопросы по тегам