apache – Multilingualism of the Internet page / site

Question:

It became interesting how it is possible to implement the multilingualism of the Internet page / site, I "googled" for a while, but I didn’t come across a sensible explanation … Could you comrades poke your noses in the direction where you need to dig?

Answer:

You need to make a file containing the declaration of constants, which will contain lines to be displayed in different places on the site.

For example (I have already given it somewhere) …

Main file:

<?php

  //объявляем константу содержащую путь до файлов языков
  define('LANGAGE_DIR', $_SERVER['DOCUMENT_ROOT']."/language/", false);
  //тоже, путь до шаблона вывода
  define('TEMPLATE_DIR', $_SERVER['DOCUMENT_ROOT']."/template/", false);

  //получаем переменную языка
  $language = $_GET['lang'];
  //не обязательно получать переменную гет-ом
  //можно брать ее откуда угодно, например - из базы данных, или из сессии

  //загружаем файл перевода
  include_once(LANGUAGE_DIR . $language . '.php');

  //загружаем файл шаблона, начинаем вывод
  include_once(TEMPLATE_DIR . 'default.php');

?>

Russian language file:

<?php
  define('LANG_TITLE', 'Главная страница');
  define('LANG_H1', 'Добро пожаловать!');
  define('LANG_MESSAGE1', 'Рады приветствовать вас на нашем сайте.');
?>

English file:

<?php
  define('LANG_TITLE', 'Main page');
  define('LANG_H1', 'Welcome!');
  define('LANG_MESSAGE1', 'Welcome to our site.');
?>

Template file:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title><?=LANG_TITLE?></title>
</head>
<body>
    <h1><?=LANG_H1?></h1>
    <p>
        <?=LANG_MESSAGE1?>
    </p>
</body>
</html>

You just need to put the name of the language file in $ language, for convenience without the extension. You should also provide for the output of the page in the default language if nothing is assigned to $ language. Now, that's the idea. If anything is not clear, write! Have a good day 🙂

Scroll to Top