Eine Sprachumschaltung sollte die folgenden features umfassen: immer auf die Übersetzung der jeweiligen Seite verweisen, den Übersetzungslink nicht anzeigen, wenn die Seite nicht übersetzt ist und mit tt_news Meldungen (und Inhalten anderer Extensions) funktionieren.
Für diese Zwecke gibt es die Extension sr_language_menu
. Vor einiger Zeit habe ich darüber schrieben, dennoch vermeide ich den Einsatz, weil die Extension irgendwie kompliziert ist und ich die oben genannten Anforderungen eigentlich für einfach umsetzbar halte.
Mit folgendem TypoScript gehts:
lib.languageSwitch = COA lib.languageSwitch { 10 = HMENU 10 { special = language special.value = 0 1 = TMENU 1 { NO = 1 NO { doNotLinkIt = 1 stdWrap.typolink.parameter.data = page:uid stdWrap.typolink.additionalParams = &L=0 stdWrap.typolink.addQueryString = 1 stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache stdWrap.typolink.addQueryString.method = GET stdWrap.typolink.useCacheHash = 1 stdWrap.typolink.no_cache = 0 stdWrap.cObject = TEXT stdWrap.cObject.value = englisch } USERDEF1 = 1 USERDEF1 { doNotLinkIt = 1 stdWrap.cObject = TEXT stdWrap.cObject.value = } } } 20 < .10 20.special.value = 1 20.1.NO.stdWrap.typolink.additionalParams = &L=1 20.1.NO.stdWrap.cObject.value = dansk } |
Man beachte, dass in obigem Beispiel zwei Sprachen verwendet werden: Standard (englisch – id 0) und dansk (id 1).
Will man, dass standardmäßig alle Seiten in der jeweiligen Sprache im Menü nicht angezeigt werden, wenn keine Übersetzung vorhanden ist, so setzt man über das Installtool folgenden Wert:
$TYPO3_CONF_VARS['FE']['hidePagesIfNotTranslatedByDefault'] = '1' |
Will man tt_news dazu bringen im LIST oder LATEST Modus nur die übersetzten Meldungen anzuzeigen, so hilft folgendes:
plugin.tt_news.sys_language_mode = strict plugin.tt_news.sys_language_overlay = hideNonTranslated |
Links:
http://www.typo3.net/tsref/cobject/hmenu/
http://www.typo3-lisardo.de/home/blog-post/2010/09/01/sprachmenue.html