Content Sprachen
Website
Zunächst muss man die Standardsprache festlegen (hier: Deutsch). Alle Seiten werden in dieser Sprache angelegt. Die Seiten Titel im Seitenbaum des Backends werden auch in dieser Sprache angezeigt - was ein Problem sein kann.
Hinzufügen einer alternativen Sprache: Website root -> Neu Website Language
Anpassen des Content Renderings
Das Template muss angepasst werden:
select.languageField = sys_language_uid
Anpassen der Templates
Im HMTL Header wird der htmlTag_langKey auskommentiert
config {
//xhtml-transitional
//htmlTag_langKey = ...set in language dialog
doctype = xhtml_trans
xhtml_cleaning = all
xmlprologue = none
}
Um nicht übersetzte Seiten generell auszublenden:
# localconf.php
$TYPO3_CONF_VARS['FE']['hidePagesIfNotTranslatedByDefault'] = '1';
# User TS-Config: Option für neue Seiten als default setzen.
TCAdefaults.pages.l18n_cfg = 2
und anstelle von folgenden TypoSript gesetzt:
#--------------------------------
# Language
#--------------------------------
config {
linkVars = L
sys_language_mode = content_fallback
sys_language_overlay = hideNonTranslated
}
# Standard language UID 0 -> English
config.sys_language_uid = 0
config.language = en
config.locale_all = english.UTF-8
# Alternate language UID = 1 -> German
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = de
config.locale_all = de_DE.UTF-8
[global]
config.htmlTag_langKey < config.language
Wichtig ist das Hinzufügen von .UTF-8 after config.locale_all = english oder config.locale_all = de_DE andernfalls wird das Datum in tt_news falsch angezeigt (z.B. das "ä" in März).
Sprach Auswahl mit vhs
Mit der Extension vhs lässt sich einfach ein Sprachmenü realisieren:
{namespace v=FluidTYPO3\Vhs\ViewHelpers}
<f:section name="Language">
<v:page.languageMenu
defaultLanguageLabel="Deutsch"
defaultIsoFlag="de"
hideNotTranslated="1"
linkCurrent="0"
layout="flag"
class="language-navigation"
flagPath="/typo3conf/ext/rsystemplate_bootstrap/Resources/Public/Images/Flags/">
</v:page.languageMenu>
</f:section>
Sprach Auswahl
Html Template
Im HTML-Template wird die ###RSYS_LANGUAGE_SELECT### Sektion hinzugefügt.
Template einrichten
Um die Sprache im Frontend auswählen zu können muss folgendes in das Template aufgenommen werden:
includeLibs.languageMenu = fileadmin/scripts/language_select_news.php
page = PAGE
page {
...
marks {
...
# ---------- RSYS_LANGUAGE_SELECT ----------
RSYS_LANGUAGE_SELECT = COA
RSYS_LANGUAGE_SELECT {
1 = USER
1 {
userFunc = user_languageMenu
}
}
# --- end RSYS_LANGUAGE_SELECT
Extension
Am besten gleich mit sr_language_menu machen, oder zu Fuss wie folgt:
PHP Script
Ei Script wird angelegt mit den Namen language_select_news.php im Verzeichnis fileadmin/scripts. Das Script enthät folgenden Code:example. Es ist eine Modifikation von den Script in tt_news/res/tt_news_languageMenu.php um mit News Übersetzungen zurechtzukommen.
Formatierung
Das Beispielscript erzeugt den folgenden HTML Code der mit stylesheets formatiert werden kann:
<div id="lang_select">
<div class="langmenu">
<p>
<span class="lang_select">
<a href="91.html?&L=0" target="_top">en</a>
</span>
<span class="lang_select_active">
<a href="91.html?&L=1" target="_top">de</a>
</span>
</p>
</div>
</div>
Seiten anlegen für Mehrsprachigkeit
Auswählen der zu übersetzenden Seite im Web>Page Modul. Wählen der Funktion Languages und dort Make new translation of this page.