Я создаю многоязычный веб-сайт на PHP и прекрасно его использую в моем блоке Vagrant, меняя тексты в соответствии с переменной $ SESSION [lang], загружаю сайт на живой сервер, и вдруг язык не меняется более того, он просто придерживается языка по умолчанию.
Вот код, который я использовал для предоставления сайту соответствующих языковых файлов, которые включают связанные массивы с текстами, которые я хочу использовать на каждом языке:
<?php
ob_start();
if(!isset($_SESSION)) {
session_start();
}
// language switch
if (!isset($_SESSION['lang']))
$_SESSION['lang'] = "en";
else if (isset($_GET['lang']) && ($_SESSION['lang'] != $_GET['lang']) && !empty($_GET['lang'])) {
if ($_GET['lang'] == "en")
$_SESSION['lang'] = "en";
else if ($_GET['lang'] == "es")
$_SESSION['lang'] = "es";
else if ($_GET['lang'] == "de")
$_SESSION['lang'] = "de";
}
require_once ('content/language/' . $_SESSION['lang'] . '.php');
У меня есть два разных сервера в разработке и производстве, я не знаю, идеально. Мой бродячий ящик:
Ubuntu Xenial 64 с PHP 7.0.32 и Apache 2.4.18
Я обновил свой Live Server сегодня, чтобы:
Centos 6.10 с PHP 7.1 и Apache 2.4
После обновления я перезапустил сервер apache, потому что подумал, что это может помочь, но безуспешно. Как уже упоминалось, он просто придерживается языка по умолчанию и не обновляется, когда я нажимаю на любую из кнопок переключения языка. В среде разработки он работал точно так, как ожидалось. Я был бы очень признателен за любые идеи, что может пойти не так, я не уверен, где искать.
Спасибо заранее !! Сара.