Вы здесь

Не переводятся поля в Better Exposed Filters

0

Привет друзья, кто нибудь сталкивался с проблемами переводов в Better Exposed Filters?

У меня трёх язычный сайт, пыталась пепевести тут /admin/config/regional/translate/translate и в настройках самого Views. В результате переводы есть и и на странице языков и в настройках вьюса, а на сайте всё написанно на языке оригинала, ни сброс кеша, ни обновление до дев версии не спасло.

P.S.

Не могу перевести абсолютно ничего, не кнопку поиска ни Advanced Options. Создатель модуля вообще очень "интересно" отписался на эту проблему. Только на умельцев с напильником осталась надежда =)

Буду очень благодарна за любую помощь!

Версия Drupal: 
7.x
Категория: 
Multilingual
Связанные проекты: 
Better Exposed FiltersViews
Вопрос задан 30.07.2016 - 23:57

Данный модуль не поддерживает i18n об этом я оставила ссылку на автора модуля, entity_translation не срабатывает. В этом и есть суть вопроса - почему.

Комментарий оставлен 04.08.2016 - 22:21

Можно по колхозному - в самом модуле найти нужные строки и перевести. Но это до первого обновления модуля.

Комментарий оставлен 05.08.2016 - 07:14

Может в таком случае через кастомный модуль как то можно переопределить через t() ? Или через template.php?

Комментарий оставлен 15.08.2016 - 16:06

Ответы

0

В общем природа бага не ясна, на drupal.org тоже жалуются, разработчик не планирует интегрировать свой модуль с i18n ссылаясь на плохие практики кодинга.

Решается проблема довльно легко - при помощи темизации.

Я использовала такой подход - в файле template.php создала функцию:


function МОЯ_ТЕМА_form_alter(&$form, &$form_state, $form_id) { dpm($form); // помошник по поиску нужных строк if ($form_id == 'views_exposed_form') { $form['secondary']['#title'] = t('More filters'); // перевод кнопки свёрнутых вторичных фильтров $form['submit']['#value'] = t('Search'); // передод кнопки поиск $form['reset']['#value'] = t('Reset all filters'); // перевод книпки "сбросить все фильтры" $form['secondary']['field_FIELDNAME_value']['#options']['All'] = t('Select please'); // Заменить значение - Все - $form['myinput']['from']['#attributes']['placeholder'] = t('Your Name'); // Назначить плейсхолдер } }

После чего спокойно перевела необходимые значения через i18n на все 5 языков которые доступны у меня на сайте.

p.s Надеюсь кому то это сэкономит время и нервы =)

Ответ дан 15.08.2016 - 20:14