SECTION
SECTION
Раздел
Многоязычность
Основная задача класса - перевод интерфейса на различные языки. Но с помощью этого класса можно еще и склонять слова в различных падежах. Переводы хранятся в каталоге language. Основной язык системы - русский, поэтому файл language/ru/ru.php почти пуст, а language/ru/ru.js и вовсе отсутствует.
Файлы с переводами содержат только ассоциативный массив с переводами и ничего более. Этот массив имеет следующие ключи.
Для примера см. файл language/en/en.php.
Этот класс выполнен по шаблону Singleton.
getInstance() : \Language
Возвращает единственный экземпляр класса
Единственный экземпляр
$T = Language::getInstance();
echo $T->t('Перевести эту фразу');
setLanguage(string$language_code) : void
Поменять текущий язык
При смене языка интерфейс не перерисовывается. Этот метод используется ядром для выбора языка сразу после входа в систему.
string | $language_code | Код языка. Должен совпадать с названием каталога в language. Необязательный параметр. По умолчанию используется язык, указанный в сессии. |
t(string$message, string$section, string$type, int$section_type) : string
Выполнить перевод фразы на текущий язык
string | $message | Сообщение, которое необходимо перевести |
string | $section | Необязательный параметр. Код раздела или справочника, в котором необходмио выполнить перевод. Если перевод для этого раздела не найден, то будет выполнен поиск фразы среди общих переводов. Регистр важен.
|
string | $type | Необязательный параметр. Уточнение, где именно искать перевод. Регистр важен.
|
int | $section_type | Необязательный параметр.
|
Переведенная строка. Если перевод не был найден, то возвращается исходная строка.
$T = Language::getInstance();
echo $T->t('Перевести эту фразу');
echo $T->t('Перевести эту фразу для раздела Компании', 'Account');
echo $T->t('Для карточки компании', 'Account', 'Card');
echo $T->t('Для справочника типов компаний',
'iris_accounttype', null, Language::DICTIONARY);
echo $T->t('Для справочника типов компаний в фильтрах',
'iris_accounttype', 'Filter', Language::DICTIONARY);