У меня есть веб-сайт, который я хочу создать на другом языке. Я не хочу создавать папки для каждого языка. Мне было интересно, что можно добавить 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-вызов. Обновите измененный язык в сеансе и перезагрузите страницу.
отображение отображения страницы в отношении сохраненного языка сеанса.
это оно……..