Die aktualiserten SS4 Versionen brauchen ein neues "Translation"-Modul.
https://github.com/tractorcow-farm/silverstripe-fluent
composer require tractorcow/silverstripe-fluent ^5
Fluent wird SiteTree-Objekte automatisch lokalisieren. Wenn Sie andere DataObjects lokalisieren möchten, müssen Sie die entsprechende Erweiterung selbst hinzufügen.
Um die einzelnen Seiten einem Sprachraum hinzuzufügen müssen erst welche erstellt werden. (Beispiel: Deutsch / Englisch)
Nach de Installation müssen zuerst Sprachräume durch hinzufügen von "Gebietsschema"erstellt werden
Es werden die Sprachen "Deutsch" (default) und "Englisch" vorbereitet. Die URL-Segmente klassisch mit "de_DE", "en_EN" gesetzt
Über die Sprachwahl-Buttons kann der Seitenbaum gewechselt weden und bestehende oder neue Seiten einem Sprachraum zugeordnet werden.
Wird die Seite in "Deutsch" erstellt, entsteht eine Kopie in "Englisch". Das Duplikat wurde erstellt, aber es ist nicht aktiv. Sie kann übersetzt und veröffentlicht werden oder einfach gelöscht.
Mit dem Button "Übersetzungen" können die einzelnen Inhalte jederzeit editiert, kopiert oder gelöscht werden.
Die Installation des "Translaters" liegt im Verzeichnis: vendor/tractorcow/silverstripe-fluent/templates
Darin befindet sich die Datei: LocaleMenu.ss
Sie kann einfach aufgerufen werden mit:
<% include LocaleMenu %>
Das Menu zeigt die Sprachen und wechselt jeweils zur gewünschten Sprache.
<% if $Locales %>
<div class="left">Locale <span class="arrow">→</span>
<nav class="primary">
<ul>
<% loop $Locales %>
<li class="$LinkingMode">
<a href="$Link.ATT" <% if $LinkingMode != 'invalid' %>rel="alternate" hreflang="$HrefLang"<% end_if %>>$Title.XML</a>
</li>
<% end_loop %>
</ul>
</nav>
</div>
<% end_if %>
... oder kann durch eine eigenes LocalMenu überschrieben werden.