Импортировал перевод на 6ку из сервиса импорта переводов. Все отлично, перевод встал, все работает. Но в разделе Главная › Управление › Управление пользователями задаются формы писем пользователям - они все на английском, и отображаются и отправляются юзерам на английском. Подумал - не дошли руки, не перевели еще, сделаю сам.
Но. Экспортнул файл .po из админки, посмотрел его - все формы писем есть с переводом! Переводить нечего. А выводятся то английские варианты. полез в код. Оказывается, в переводе задаются стринги для конкретных строк файла modules/user/user.module
#: modules/user/user.module:1637
msgid "An administrator created an account for you at !site"
msgstr "Администратор создал для Вас учетную "
"запись на сайте !site"
а в самом файле user.module на строке 1637 видим:
return t('An administrator created an account for you at !site', $variables, $langcode);
Не спец в PHP, но в строке по моему задается переменная $variables и $langcode которые по имхо должны определять что выводится. Поискал где определяется переменная $langcode, нашел строки:
/**
* Returns a mail string for a variable name.
*
* Used by user_mail() and the settings forms to retrieve strings.
*/
function _user_mail_text($key, $language = NULL, $variables = array()) {
$langcode = isset($language) ? $language->language : NULL;
Так может просто для $langcode неверно заданы параметры языка и поэтому выводится английский вариант? И как верно это исправить?