Создание мультиязычного сайта. Пример использования ini-файлов

В предыдущей статье я писал про ini-файлы и вскользь упомянул о том, что с их помощью можно сделать мультиязычный сайт. И в этой статье я хочу показать, как можно это реализовать. Все очень просто, создадим два ini-файла и назовем их ru.ini и en.ini. После этого заполним их следующим образом:
en.ini

[data]
title = Site name
h1 = Title 1
button1 = setup ru
button2 = setup en

и ru.ini

[data]
title = Название сайта
h1 = Заголовок 1
button1 = задать ru
button2 = задать en

Как вы уже наверно догадались эти файлы хранят в себе текст, который будет выводится на сайте. Но прежде, чем выводить нужно определиться из какого файла брать данные — из русского или английского. Для решения этой проблемой воспользуемся куками — будем записывать в них установленный на сайте язык.
Далее все просто — получаем из куки язык, получаем соответствующие данные из ini-файла и подставляем их в нужные места на странице.
Ниже приведен код тестовой страницы с подробными комментариями:

<?php
// проверяем наличие куки, если есть то читаем ее
if(isset($_COOKIE['lang_site'])){
    $lang = $_COOKIE['lang_site']; // получем язык сайта из куки
}else{
    $lang = 'ru'; // default значение для языка сайта
}
// проверяем, если был передан язык в урле, то записываем его в куку
if(isset($_GET['lang'])){
    // задаем язык сайту
    $lang = $_GET['lang'];
    setcookie ("lang_site", $lang, time() + 3600*24, "/"); // устанавливаем куку с языком сайта
}
$listDataIni = parse_ini_file($lang.".ini"); // получаем данные из ini-файла
?>
<!DOCTYPE HTML>
<html>
	<head>
		<title><?= $listDataIni[title]; ?></title>
		<meta charset="utf-8" />
	</head>
<body>
	<h1><?= $listDataIni[h1]; ?></h1>
    <a href="/index.php?lang=ru"><?= $listDataIni[button1]; ?></a>
    <br/>
    <a href="/index.php?lang=en"><?= $listDataIni[button2]; ?></a>
</body>
</html>

И под конец хочу заметить, что использовать ini-файлы для мультиязычных сайтов большого размера не очень удобно. Если планируется создать большой проект, то лучше хранить данные в базе данных. Все должно использоваться по назначению, так и ini-файлы — их можно использовать в простых сайтах или тех, которые работают без базы данных.

Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*