3 Шага Очень Простой Многоязычный Веб-Сайт на PHP
Добавить в избранноеДобро пожаловать в краткое руководство по созданию многоязычного веб-сайта на PHP.
ШАГ 1) HTML МАКЕТ САЙТА
index.php
<html>
<head>
<title><?=$_TXT[0]?></title>
<meta charset="utf-8">
</head>
<body lang="<?=$_SESSION["lang"]?>">
<!-- (A) УСТАНОВИТЬ ЯЗЫК -->
<form method="post">
<input type="submit" name="lang" value="en">
<input type="submit" name="lang" value="ru">
</form>
<!-- (B) СОДЕРЖАНИЕ САЙТА -->
<header><?=$_TXT[1]?></header>
<main><?=$_TXT[2]?></main>
<footer><?=$_TXT[3]?></footer>
</body>
</html>
Правильно, это всего лишь ваш «обычный макет HTML».
A. Форма переключения языка. Я пошёл ленивым путём вы захотите создать свою собственную красивую форму.
B. Обратите внимание, что вместо этого весь текст и содержимое заменены переменными PHP — <?=$_TXT[N]?>.
ШАГ 2) МЕНЕДЖЕР ЯЗЫКОВ PHP
index.php
// (C) УСТАНОВИТЬ ЯЗЫК В СЕССИИ
session_start();
if (!isset($_SESSION["lang"])) { $_SESSION["lang"] = "en"; }
if (isset($_POST["lang"])) { $_SESSION["lang"] = $_POST["lang"]; }
// (D) ЗАГРУЗИТЬ ФАЙЛ ЯЗЫКА
require "lang-" . $_SESSION["lang"] . ".php";
?>
Сессию нужно писать перед <!DOCTYPE html>
• Чтобы зарегистрировать выбранный язык, мы должны сначала запустить сессию — session_start().
• Если язык не выбран, мы установим его на английский по умолчанию — if (!isset($_SESSION["lang"])) { $_SESSION["lang"] = "en"; }
• Когда форма переключит язык, мы переключаемся на выбранный язык — if (isset($_POST["lang"])) { $_SESSION["lang"] = $_POST["lang"]; }
• Наконец, загрузите языковой файл — require "lang-" . $_SESSION["lang"] . ".php";
ШАГ 3) ЯЗЫКОВЫЕ ПАКЕТЫ
3A) ПАКЕТ АНГЛИЙСКОГО ЯЗЫКА
lang-en.php
$_TXT = [
"Test Website",
"My Website",
"Welcome To My Site",
"Copyright My Site"
];
?>
Помните, что всё содержимое страницы является переменной-заполнителем <?=$_TXT[N]?>. Всё, что нам нужно сделать в языковом пакете, это создать массив и соответствующим образом сопоставить текст.
3B) ПАКЕТ РУССКОГО ЯЗЫКА
lang-ru.php
$_TXT = [
"Тестовый сайт",
"Мой веб-сайт",
"Добро пожаловать на мой сайт",
"Авторские права мой сайт"
];
?>
Это Русский перевод. Создайте столько таких «языковых пакетов», сколько потребуется в вашем собственном проекте.
Можете скачать готовый скрипт.
Скачать