it-swarm.com.de

Mehrsprachige Brotkrume

Ich muss einen Breadcrumb auf meiner Client-Website anzeigen, aber er muss in zwei Sprachen vorliegen. Ich habe verschiedene Ansätze und Module ausprobiert, aber alle zeigen den Breadcrumb nur in einer Sprache.

Bitte, wenn jemand eine Idee dazu hat, schätze ich Ihre Hilfe.

Könnten Sie bitte mehr über die Verwendung von default drupal Breadcrumb) erklären? Was hätte ich installieren müssen, um Breadcrumb richtig zu verwenden? Brauche ich Breadcrumb + ein anderes Modul?

Grüße,

7
fadifannoun

Angenommen, Sie möchten Ihre Semmelbrösel wie folgt:

  Home/La Casa >> Node/Nodo >> Friends/Amigos

Sie können template_preprocess_breadcrumb folgendermaßen überschreiben:

  function MY_THEME_preprocess_breadcrumb(&$variables)
  {
     $breadcrumbs = &$variables['breadcrumb'];
     foreach($breadcrumbs as &$breadcrumb)
     {
         $breadcrumb .= '/' . locale($breadcrumb, null, 'SP');
     }
   }

Zitieren Sie mich nicht in den Langcodes, und dies würde erfordern, dass Sie das Gebietsschemamodul installiert und aktiviert haben, aber es sollte den obigen Beispiel-Breadcrumb ausgeben.

1
GWPROD

Ich habe Custom Breadcrumbs Modul verwendet, es hat die Fähigkeit, Breadcrumb für jede Sprache hinzuzufügen ... Für Breadcrumbs, die automatisch generiert werden, kann die Übersetzung in der String Translation Table erfolgen. Ich denke, mehrsprachige Breadcrumbs können auch mit Path Breadcrumbs erstellt werden

1
Pravin Ajaaz

Hoffe das hilft:

<?php
    //breadcrumb fix
        function THEME_NAME_menu_breadcrumb_alter(&$active_trail, $item) {
            global $language ;
            $lang_name = $language->language;
            $i = 0;
            foreach (array_keys($active_trail) as $key) {
                if($i!=0){
                    $translatedValue = i18n_string_translate(array('menu', 'item', $active_trail[$key]['mlid'], 'title'), $active_trail[$key]['title'], array('langcode' => $lang_name, 'sanitize' => FALSE));
                    $active_trail[$key]['title'] = $translatedValue;
                }
               $i++;
            }
        } 
    ?>
0
RaulMuroc

Drupal verfügt über einige Mainstream-Module, die in den meisten Fällen damit umgehen können. Mit der integrierten Schnittstellenübersetzung und i18n_string können Sie Übersetzungen für viele der wichtigsten Breadcrumbs unter Konfiguration -> Regional & Sprache -> Schnittstelle übersetzen -> Übersetzen hinzufügen.

Mehrere Module können Ihnen dabei helfen, diese Zeichenfolgen zu erhalten. Mit dem Potx-Modul können Sie alle integrierten Schnittstellenzeichenfolgen aus Ihren anderen installierten Modulen abrufen, wodurch die Zeichenfolgen in die Tabelle locales_source eingefügt werden. Anschließend können Sie das Modul l10n_update verwenden, um nach von der Community bereitgestellten Übersetzungen für diese Zeichenfolgen zu suchen.

Für den letzten Teil eines Breadcrumbs, der von einem Knoten stammt, zeigt beispielsweise Drupal den übersetzten Titel des Knotens an, wenn er ihn findet. Für die Inhaltsübersetzung (knotenbasiert) der Knoten Zeigt den Titel im Breadcrumb an. Für die Entitätsübersetzung (feldbasiert) können Sie das Titelmodul aktivieren, um die title-Eigenschaft in ein Feld zu konvertieren, das dann übersetzt und im Breadcrumb angezeigt werden kann.

0
Rob Bailey

Angenommen, Sie verwenden das i18n Modul, einschließlich Submodul i18n_menu, dann wäre die zuverlässigste Art, Ihre Brotkrumen zu übersetzen, die Implementierung von hook_menu_breadcrumb_alter und Renn _i18n_menu_link_title Funktion für jeden Artikel.

Das sollte funktionieren:

/**
 *   Implements hook_menu_breadcrumb_alter()
 */
function YOURMODULE_menu_breadcrumb_alter(&$active_trail, $item) {
  foreach ($active_trail as $index => $breadcrumb_item) {
    if (isset($breadcrumb_item['mlid'])) {
      $active_trail[$index]['title'] = _i18n_menu_link_title($breadcrumb_item);
    }
  }
}
0
bmunslow