Добрый вечер!
Есть туристический сайт на 3-х языках (EN - основной). Основным типом материалов являются туры, типы туров - термины словаря, каждый из которых переведен на 3 языка. Туры вывожу на 2-x страницах, созданных через views. На первой все, а на другой в зависимости от типа тура. Проблема заключается в том, что заголовки страниц созданных через views при смене языка не меняются. На первой странице можно перевести через поиск на странице переводов, а для второй так уже не получится, так как там заголовок создается через контекстный фильтр, путем переопределения основного через аргумент %1, в зависимости от выбранного термина. Это возможно как-нибудь реализовать, потому что переводить все заголовки через поиск не есть хорошо, терминов могут быть десятки???
P.S. пробовал ставить i18nviews, но он не помог...
Спасибо!
Вложение | Размер |
---|---|
issue_titles.jpg | 112.35 КБ |
Комментарии
а мне помог
термины локализованы?
у меня термины тоже локализованы. А вот заголовки страниц views остаются неизменными, т.е. на английском языке.
Я ставил i18nviews и он помог решить эту проблему, но сильно испортил мне в других местах: там где во вьюсах мне приходилось переводить строки через стандартный перевод интерфейса переводиться перестало. Так что быстренько его удалил.
Немного покумекав я набросал простенький сниппет для перевода заголовков терминов таксономии:
<?php
if ($term = taxonomy_term_load($argument)) {
if (function_exists('i18n_taxonomy_term_name')) {
global $language;
$handler->validated_title = i18n_taxonomy_term_name($term, $language->language);
}
return true;
}
return false;
?>
Использовать так:
1. Во вьюхе открываем настройки контекстного фильтра "Содержимое: Has taxonomy term ID".
2. Отмечаем "Заменить заголовок" и в поле пишем %1
3. Отмечаем "Specify validation criteria" и выбираем "PHP-Код".
4. В поле "PHP-код для проверки" вставляем приведенный выше сниппет (без открывающего и закрывающего тегов php).
5. Все готово.
Лучше всего сделать хук на препроцесс страницы.
Проверить является заголовок термином таксономии и перевести используя tt(), если не является перевести испольуя t().
Я уже описывал это тут.
я делал перевод заголовков через модуль views PHP
с его помощью реализовывал простой снипет который делает проверку на язык и в зависимости от этого возвращает нужную строку