С помощью представления терминов таксономии коммерческих продуктов можно ли установить заголовок страницы в соответствии с переведенным названием термина?
Единственный способ указать название термина таксономии в заголовке страницы просмотра коммерческих продуктов термина таксономии, которую я нашел до сих пор, - это представление примера в теме estore (Я все еще не понимаю, как tid, который должен обозначать идентификатор термина, становится значением поля заголовка):
Проблема в том, что показанное название не переведено на многоязычных сайтах, когда термин определенно имеет правильный перевод. Есть ли как показать, что название переведено?
По какой-то причине нет Product: Has taxonomy term ID
, так как есть Content: Has taxonomy term ID
в представлении терминов таксономии по умолчанию, в котором отображается переведенный заголовок.
AFAIU {{ arguments.tid|t }}
не подходит, потому что он будет проходить через другую подсистему.
1 answers
Мне пришлось обойти это в коде, изменив пример, опубликованный djg_tram:
/**
* @file
* Workaround for taxonomy term title not being i18zed.
*/
use Drupal\views\ViewExecutable;
use Drupal\taxonomy\Entity\Term;
/**
* Implements hook_views_pre_render().
*/
function exposed_filter_workaround_views_pre_render(ViewExecutable $view) {
$view_id = 'products';
$view_display = 'page_category';
if ($view->id() == $view_id && $view->current_display == $view_display) {
$lang_id = \Drupal::languageManager()->getCurrentLanguage()->getId();
$term_id = $view->args[0];
$term = Term::load($term_id);
$term_translated = $term->getTranslation($lang_id);
$view->setTitle($term_translated->label());
}
}