Inhaltsverzeichnis

Joomla - Content - Titel

Wie erstelle ich Inhalts-Titel, die sich beim ändern der Sprache automatisch ändern?

Prinzipiell ist es in Joomla möglich mehrsprachige Webseiten zu erstellen. Wenn man die Mehrsprachigkeit nach dem offiziellen Vorgehen erstellt, so erhält man mit aktivirtem SEF, URLs die sich für jede Sprache komplett unterscheiden.

Mit diesem Vorgehen ist es möglich (zumindest für com_content) eine mehrsprachige Webseite aufzubauen, dessen URLs sich nur im URL-Sprachkürzel unterscheiden.

Vorgehen

Alles wie im Blogpost von Joomlashine beschrieben, ausser Schritt 3, 7 und 8.

Overrides

Alle Ausgaben des Beitrag-Titels müssen durch die Text handling class Joomla\CMS\Language\Text (ehemals JText) geschleust werden, damit die Sprachschlüssel ersetzt werden.

/templates/MeinTemplate/html/com_content/article/default.php
use Joomla\CMS\Language\Text;
 
   // solches 
   $this->escape($this->item->title);
 
   // ändern zu
   Text::_($this->escape($this->item->title));
 
/templates/MeinTemplate/html/layouts/joomla/content/blog_style_default_item_title.php
use Joomla\CMS\Language\Text;
 
   // solches 
   $this->escape($displayData->title);
 
   // ändern zu
   Text::_($this->escape($displayData->title));
 
/templates/MeinTemplate/html/plg_content_pagenavigation/default.php
use Joomla\CMS\Language\Text;
 
   // solches 
   htmlspecialchars($rows[$location-1]->title);
   htmlspecialchars($rows[$location+1]->title);
   $row->prev_label;
   $row->next_label;
 
   // ändern zu
   Text::_(htmlspecialchars($rows[$location-1]->title));
   Text::_(htmlspecialchars($rows[$location+1]->title));
   Text::_($row->prev_label);
   Text::_($row->next_label);
 
/templates/MeinTemplate/html/mod_breadcrumbs/default.php
use Joomla\CMS\Language\Text;
 
   // solches 
   $item->name;
 
   // ändern zu
   Text::_($item->name);
 

Zuguter letzt muss noch der Seitentitel in den medataten des headers geändert werden. Dazu in der index.php des Templates folgendes einfügen. Einfügen irgendwo vor der Zeile <jdoc:include type=„head“ />.

/templates/MeinTemplate/index.php
use Joomla\CMS\Language\Text;
 
   // Change meta <title>
   $this->title = Text::_($this->title);