Как заставить функцию _T() брать перевод на основном языке сайта?

Как известно, SPIP позволяет в PHP коде использовать функцию _T(), которая выводит перевод слова на текущий язык пользователя. Однажды я столкнулся с интересной проблемой. Мне нужно было в одном обработчике отправлять письмо администратору и пользователю. Естественно для поддержки мультиязычности я использовал функцию _T(). Благодаря использованию этой функции пользователь получал письмо на своем языке, и все было OK. Но зачем администратору получать письмо на языке пользователя?

Для решения проблемы я решил отправлять администратору письмо на основном языке сайта. Чтобы сделать это надо применить один трюк. Так как функция _Т() для перевода использует текущий язык, то запоминаем его, заменяем на основной язык сайта, пользуемся функцией, и возвращаем начальное значение. Делаем это с помощью массива $GLOBALS, так как эти значения SPIP хранит в виде глобальных переменных.

Пример:

// Запоминаем текущий язык, и изменяем его на основной
$spip_lang = $GLOBALS['spip_lang'];
$GLOBALS['spip_lang'] = $GLOBALS['meta']['langue_site'];

// Пользуемся функцией _T()

// Возвращаем текущий язык в исходное состояние
$GLOBALS['spip_lang'] = $spip_lang;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>