{% else-1 %}
Anvar * 3.33
(28 фев 2017, 14:27) (0/0) [0]
Берём к примеру файл https://github.com/vcmssu/VCMS/blob/master/app/controllers/ActiveController.php

Текст локализации на русском:

[code]Cms::header('Темы на форуме пользователя ' . Functions::esc($row['login']));
Cms::header('Посты на форуме пользователя ' . Functions::esc($row['login']));
Cms::header('Файлы в загрузках пользователя ' . Functions::esc($row['login']));[/code]

и так далее.

Можно же создать файл например language/ru/common.php

и хранить все переменные с текстом в нём.

[code]
$theme_in_forum = 'Темы на форуме пользователя';
$post_in_forum = 'Посты на форуме пользователя';
$files_in_download = 'Файлы в загрузках пользователя';[/code]

Следовательно ваш код изменится
[code]Cms::header($theme_in_forum . Functions::esc($row['login']));
Cms::header($post_in_forum . Functions::esc($row['login']));
Cms::header($files_in_download . Functions::esc($row['login']));[/code]

как и весь основной. Далее если будет желание сделать перевод, достаточно изменить текст в одном или нескольких файлах, размещённых в понятной папке.


Конечно с помощью переменных это просто, но наглядно достаточно понятно. В phpBB есть возможность дополнять своими файлами локализации, не трогая код ядра, по этому записано в массив:

<?php

if (!defined('IN_PHPBB'))
{
exit;
}

if (empty($lang) || !is_array($lang))
{
$lang = array();
}

$lang = array_merge($lang, array(
'CONTROLLER_ARGUMENT_VALUE_MISSING' => 'Не задано значение аргумента #%1$s: <strong>%3$s</strong> класса <strong>%2$s</strong>',
'CONTROLLER_NOT_SPECIFIED' => 'Не указан контроллер.',
'CONTROLLER_METHOD_NOT_SPECIFIED' => 'Не указан метод для данного контроллера.',
'CONTROLLER_SERVICE_UNDEFINED' => 'Служба контроллера «<strong>%s</strong>» не указана в файле ./config/services.yml.',
));
?>
Anvar * 3.33
(27 фев 2017, 20:23) (0/0) [0]
Есть же репозиторий, смотри код там.

По движку..
1. нужно кириллицу убирать из кода, локализация должна быть в отдельных файлах, в отдельной папке.

2. Супер глобальные массивы тоже лучше закинуть в отдельный файл. Использовать универсальные функции с фильтрацией. А лучше всего использовать фреймворк, например Symfony, где всё уже давно придумано.


Далее по движку всё идёт в нужном русле, лишь бы оно не пересохло..
  • 1 из 1