3 Шага Очень Простой Многоязычный Веб-Сайт на PHP

Добро пожаловать в краткое руководство по созданию многоязычного веб-сайта на PHP.

ШАГ 1) HTML МАКЕТ САЙТА

index.php

<!DOCTYPE html>
<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

<?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

<?php
$_TXT = [
"Test Website",
"My Website",
"Welcome To My Site",
"Copyright My Site"
];
?>

Помните, что всё содержимое страницы является переменной-заполнителем <?=$_TXT[N]?>. Всё, что нам нужно сделать в языковом пакете, это создать массив и соответствующим образом сопоставить текст.

3B) ПАКЕТ РУССКОГО ЯЗЫКА

lang-ru.php

<?php
$_TXT = [
"Тестовый сайт",
"Мой веб-сайт",
"Добро пожаловать на мой сайт",
"Авторские права мой сайт"
];
?>

Это Русский перевод. Создайте столько таких «языковых пакетов», сколько потребуется в вашем собственном проекте.

Можете скачать готовый скрипт.
Скачать

Обсуждение закрыто.