Die Extension languagevisibility verbessert das Sprachmanagement in TYPO3: Mehr Flexibilität im Sprachhandling; hier hat Daniel Pötzinger ganze Arbeit geleistet.
Was kann das Ding eigentlich?
1. Das Problem:
1.1. Verschiedene Fallbacks nicht möglich
Standardsprache ist Englisch (L0) und zweite Sprache ist Deutsch (L1); eine weitere Sprache ist Englisch für den arabischen Raum (L2). So weit funktioniert noch alles ganz gut: Arabisch mit Fallback auf Defaultsprache.
Übel wird es dann, wenn eine weitere Sprache (L3), z.B. für den österreichischen Raum hinzukommt. Diese soll ihr Fallback natürlich auf deutsch haben.
1.2. Starre Handhabung in Seiteneinstellungen
Ein weiteres Problem stellt man fest, wenn man in den Seiteneinstellungen festlegt, dass eine Seite dann nicht angzeigt werden soll, wenn es keine Übersetzung gibt. Diese Einstellung aber nur in einer Sprache benötigt:
Die Seite „Historie“ soll in Russisch (L4) nicht sichtbar sein. In Arabisch soll es hier jedoch einen Fallback geben und damit verfügbar sein
1.3. Fallback in Content-Elemente einzeln definieren
Die Seite Kontakt in L2 soll eine Kopie der Standard Variante sein. Dumm nur, dass vielleicht ein Content Element, nämlich die E-Mail Adresse eine andere sein soll.
2. Die Lösung:
Die Extension languagevisibility löst diese Problem einfach und souverän. Zu allererst muss man in den globalen Spracheinstellungen definieren, welche Sprache welches Fallback hat. Damit funktioniert dann alles erst Mal so wie gewohnt.
Selbstverständlich kann man Seiten und Seiteninhalte und sogar tt_news Einträge einzeln einstellen.
3. Screenshots:
3.1. Globale Settings für eine Sprache
3.2. Einstellungen für ein einzelnes Content Element
4. Mögliche Probleme
- Damit der Fallback überall funktioniert, muss es eine Relation der übersetzten Elemente zur Defaultsprache geben.
- Die tt_news Tabelle wird durch languagevisibility insofern geändert, dass das Feld uid umbenannt wird. Mögliche angelegte userFuncs haben in meinem Fall Fehlfunktionen gezeigt.
Links zur Extension:
Cheers, Alex