如何使用Drupal 9中的entityTypeManager获得翻译的术语



这是代码。如何将$tree翻译为插入$langage的语言。

$language = Drupal::languageManager()->getCurrentLanguage()->getId();
$tree = Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree('secteur', 0, 1, TRUE);
foreach ($tree as $term) {
$id = $term->get('tid')->value;
$result[$id] = $term->get('name')->value;
}
$variables['parentterms'] = $result;

提前谢谢。

您可以使用EntityRepository::getTranslationFromContext():

获取要在给定上下文中使用的实体翻译。

这将检查所需语言的翻译是否可用,如果没有,它将回落到最合适的基于所提供的上下文进行翻译。

$entityRepository = Drupal::service('entity.repository');
foreach ($tree as $term) {
$id = $term->get('tid')->value;
$result[$id] = $entityRepository->getTranslationFromContext($term, $language)
}

此外,由于当前上下文的语言默认为当前内容语言,因此不需要设置$language

最新更新