##Локализация
###Основы
Локализация — процесс перевода приложения на другие языки. Иногда требуется создать несколько версий сайта, например русскоязычную и англоязычную. Для достижения этой цели класс Lang
предлагает простой механизм организации и запроса текста мультиязычного приложения.
Файлы с текстами приложения должны храниться в директории /app/languages/
, каждый язык должен иметь свою папку, например для русских текстов это будет папка /app/languages/ru/
.
Каждая такая папка может иметь название, состоящее только из символов латинского алфавита и цифр.
Папка с текстами языка не может иметь вложенные папки, а точнее интерфейс класса Lang
не дает возможности к ним обратиться.
Доступ к тексту осуществляется "точечным путем" file.key1.key2
. Файл локализации должен возвращать массив настроек.
###Доступ
Для примера возьмем файл локализации system.php
из директории /app/languages/ru/
.
Для начала нужно установить язык приложения по умолчанию. Сделать это можно в файле /app/settings.php
. На данный момент значение уже установлено и языком по умолчанию Knee является русский.
Lang::setLocale('ru');
Узнать текущее значение выбранного языка, можно воспользовавшись методом getLocale()
.
$lang = Lang::getLocale();
Получить необходимую текстовую строку можно следующим образом.
$error404_title = Lang::get('settings.error.e404-title');
Так же класс Lang
дает возможность вносить изменения в существующие тексты.
Lang::set('settings.error.e404-title', 'Произошло невероятное!');