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.
Alles wie im Blogpost von Joomlashine beschrieben, ausser Schritt 3, 7 und 8.
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.
use Joomla\CMS\Language\Text; // solches $this->escape($this->item->title); // ändern zu Text::_($this->escape($this->item->title));
use Joomla\CMS\Language\Text; // solches $this->escape($displayData->title); // ändern zu Text::_($this->escape($displayData->title));
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);
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“ />.
use Joomla\CMS\Language\Text; // Change meta <title> $this->title = Text::_($this->title);