Publié le

Traduire le titre du segment de la page d'accueil du module Drupal Easy Breadcrumb

Drupal

Le module Easy Breadcrumb est un des modules de construction de fil d'Arianne pour Drupal les plus populaires.

Lors de son utilisation avec un site multilingue cependant, j'ai constaté que le titre du segment de la page d'accueil (typiquement Accueil en français) n'était pas traduisible dans d'autres langues. Une issue Drupal.org marqué comme Fixed existe à ce sujet mais le fix ne semble pas fonctionner de mon côté sous Drupal 10.3.1.

Dans mon cas, j'ai simplement créé un patch qui ajoute la traduction de cette chaîne de caractère via la fonction $this->t() là où cela était nécessaire. Je peux maintenant retrouver la chaîne Accueil dans l'onglet Traduction de l'interface utilisateur de Drupal.

diff --git a/src/EasyBreadcrumbBuilder.php b/src/EasyBreadcrumbBuilder.php
index 7790b32..15bedc7 100644
--- a/src/EasyBreadcrumbBuilder.php
+++ b/src/EasyBreadcrumbBuilder.php
@@ -339,7 +339,7 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface {
         || (!$is_regex && $internal_path == $custom_path)
       ) {
         if ($this->config->get(EasyBreadcrumbConstants::INCLUDE_HOME_SEGMENT)) {
-          $links[] = Link::createFromRoute($this->config->get(EasyBreadcrumbConstants::HOME_SEGMENT_TITLE), '<front>');
+          $links[] = Link::createFromRoute($this->t($this->config->get(EasyBreadcrumbConstants::HOME_SEGMENT_TITLE)), '<front>');
         }

         if ($is_regex && count($regex_group_matches) > 1) {
@@ -680,7 +680,7 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface {
       }

       if (!$this->config->get(EasyBreadcrumbConstants::USE_SITE_TITLE)) {
-        $links[] = Link::createFromRoute($this->normalizeText($this->config->get(EasyBreadcrumbConstants::HOME_SEGMENT_TITLE)), $home_route_name);
+        $links[] = Link::createFromRoute($this->normalizeText($this->t($this->config->get(EasyBreadcrumbConstants::HOME_SEGMENT_TITLE))), $home_route_name);
       }
       else {
         $links[] = Link::createFromRoute($this->siteConfig->get('name'), $home_route_name);