Здравствуйте!
Есть небольшой плагинчик подстановки перевода текста из ini файла вместо текста, расположенного между {lang}{/lang}. Написан под Joomla 2.5
defined( '_JEXEC' ) or die( 'Прямой доступ запрещен' );
$language = JFactory::getLanguage();
$currentTag = $language->getTag();
$language->load('plg_translate', JPATH_SITE, $currentTag, true);
class plgContentTranslate extends JPlugin {
var $translate_count = 0;
function onContentPrepare($context, &$row, &$params, $page = 0)//onContentBeforeDisplay
{
$regex = "#{lang}(.*?){/lang}#s";
$row->text = preg_replace_callback( $regex, array($this,'translater'), $row->text );
return true;
}
function translater ( $matches )
{
if (!$this->translate_count)
$this->translate_count++;
$html = '';
$regex1 = "#{lang}#s";
$regex2 = "#{/lang}#s";
$spoilertext = preg_replace($regex2, '', (preg_replace($regex1, '', $matches[0])));
$html .= JText::_($spoilertext);
return $html;
}
}
Все работает хорошо с большинством языков. Но с четырьмя (Белорусский, Испанский, Чешский и Румынский) плагин начинает подставлять текст из языка по умолчанию (Английский). Другими словами я выбираю на сайте язык Белорусский, и все тексты начинают отображаться на английском.
Что уже проверил: Язык контента указан верно (заголовок Беларускiй (BY), на родном языке - Беларускiй, код и перфикс - be, тег языка be-BY), путь к языковому файлу верный (/language/be-BY/be-BY.plg_translate.ini) и название и кодировка файла верные, языковой пакет сайта установлен, главная страница для языка создана (иначе язык и не отражался бы в модуле выбора языка).
Что еще посмотреть? Даже не могу предположить, в чем загвоздка. Еще с 11 языками все работает, а с 4 языками работать не хочет. Подскажите, пожалуйста, куда смотреть?