PHP изменение языковой версии

У меня есть веб-сайт, который я хочу создать на другом языке. Я не хочу создавать папки для каждого языка. Мне было интересно, что можно добавить combobox на каждую страницу или на главную, чтобы пользователь мог настроить язык, а затем с помощью php я проверил вариант и покажу нужную версию. Любой, предлагающий это сделать?

Если у вас есть combobox, когда пользователь отправляет его, сохраните язык в сеансе ( session_start(); который должен быть вызван) с $_SESSION['lang'] = $_POST['lang']; , Я бы посоветовал вам использовать белые списки как таковые:

 session_start(); // define language whitelist $allowedLangs = array('en', 'de'); // only store the new user language if it's an allowed one if (isset($_POST['lang']) && in_array($_POST['lang'], $allowedLangs)) { $_SESSION['lang'] = $_POST['lang']; } // define the user language based on session data or use 'en' as default if not available $userLang = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en'; // parse some language file according to the language $translations = // TODO load some file with $userLang here 

Конечно, вы должны настроить это на свой проект и среду. Для файлов переводов вы можете использовать простой PHP-файл, который возвращает такой массив:

 <?php // en.php return array( 'some.key' => 'Translation', ); 

Затем, если вы включите этот файл, возвращаемое значение include будет массивом, поэтому в приведенном выше коде вы можете сделать:

 $translations = include 'translations/'.$userLang.'.php'; 

Затем вы должны вывести весь текст через переменную $translations , например, echo $translations['some.key'] .

если вы хотите использовать файлы cookie … в файлах lang вы бы включили массив слов или содержимого для использования.

  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> в  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> В  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> в  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> в  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> в  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> В  <?php if($_GET['language']){ $lang = (string)$_GET['language']; setcookie("lang", $lang, time()+3600); header('Location: '.$_SERVER['PHP_SELF']); die(); }elseif(!isset($_COOKIE['lang'])){ $lang='en'; }else{$lang=$_COOKIE['lang'];} switch($lang){ case "en": include('./lang/en.php'); break; case "fr": include('./lang/fr.php'); break; case "pol": include('./lang/pol.php'); break; default: include('./lang/en.php'); break; } ?> 

вы имеете в виду что-то вроде

 if ($_GET['language']) { include $_GET['language'] . ".php"; } 

а затем сохраните языки в php-файле с именем или функцией в зависимости от того, что вы хотите с ней делать

эй для языковой версии. имеют языки в combobox. поддерживать текущий язык в сеансе. Когда вы меняете язык, вызовите ajax-вызов. Обновите измененный язык в сеансе и перезагрузите страницу.

отображение отображения страницы в отношении сохраненного языка сеанса.

это оно……..