Prologue-Framework доддерживает мультиязычность благодаря своей локализации. Сейчас будет рассмотрена схема использования языковых файлов.
Перейдем в /Project/lang/ эта директория содержит языковые файлы группированые по коду языка. По умолчанию в папке lang уже есть папка ru - в ней есть файл basic.php это базовый языковый файл. Нам нужно создать языковый файл для приложения к примеру по публикации книг. Создаем /Project/lang/books.php c содержимым
'Книги | лучшие книги',
'h1' => 'Каталог книг'];
Подключаем языковый файл в контроллер
Для того чтобы все необходимые языковый строки были доступны нам в нужном контроллере нам необходимо подключить нужный языковый файл.
Подключение языкового файла производится в методе index() Когда будем рассматривать работу с view, тогда будет продемонстрирован доступ языковых строк из файла.
$this -> lang('books');
Считываем языковые строки в контроллере
Для того чтобы считать строку из файла в контроллере, используется метод
message('языковый файл . строка', 'массив с переменными (необязательный параметр)');
echo $this -> message('books.title'); // выведет: Книги | лучшие книги
Передаем в языковый файл подготовленные переменные для передачи системных данных
Зачастую языковую строку необходимо дополнить и вставить в неё некоторые данные из контроллера. К примеру, есть строка textDateToDay в которой сообщение формируется на основании двух переменных #DATE# и #WEATHER#
'Книги | лучшие книги',
'h1' => 'Каталог книг',
'textIsSun' => 'солнечно',
'textIsNoSun' => 'пасмурно',
'textDateToDay' => 'Сегодня #DATE# на улице #WEATHER#', ];
Подготовим заранее информацию в контроллере
if ($sun) {
$weather = $this -> message('books.textIsSun');
} else {
$weather = $this -> message('books.textIsNoSun');
}
echo $this -> message('books.textDateToDay', [
'#DATE#' => date('Y-m-d'),
'#WEATHER#' => $weather]);
Если $sun вернет true, то контроллер выведет: Сегодня 2016-09-10 на улице солнечно
Если $sun вернет false, то контроллер выведет: Сегодня 2016-09-10 на улице пасмурно