Typo3 - Probleme mit mehrsprachigen Seiten lösen

Aus Wikizone
Wechseln zu: Navigation, Suche

Zweisprachige Datensätze

Extensions müssen die Language ID mit dem Datensatz speichern damit Sie einer Sprache zugeordnet werden. Viele Extensions sind dafür nicht ausgelegt.

Variable L=0 für Standardsprache immer setzen

Nehmen wir an Deutsch ist Default und Englisch die Alternativsprache. Wenn jemand als Standardsprache im Browser Englisch einstellt dann bekommt er automatisch die Englischen Seiten (wenn richtig konfiguriert). Klickt er jetzt auf die Deutsche Flagge kommt auch eine deutsche SEite. Wenn er dann aber auf einen neuen Navipunkt klickt kommt automatisch wieder die englische Version.

Um das zu verhindern müssen wir auch der Defaultsprache immer den Sprachparameter L mitgeben. Dazu muß für alle Sprachen eine Sprachvereinbarung getroffen werden also auch für die Default-Sprache:

[globalVar = GP:L = 0]
 config.sys_language_uid = 0
 config.language = de
 config.locale_all = de_DE
[global] 
...

dann das PHP-Skript anpassen damit auch hier der Parameter L=0 übergeben wird. Wenn jetzt das erste mal auf die deutsche Flagge geklickt wird dann sollte die Sprache bei deutsch bleiben auch wenn ein "englischer" Browser benutzt wird.

Mehrsprachige Suche

Die Ergebnisse sind zwar in der richtigen Sprache (z.B. englisch) aber die Überschriften sind die der Standardsprache (z.B. deutsch)

Hier eine Lösung aus dem Netfielders Forum vom 27.4.2005.

 Zunächst gehe ich davon aus, dass Du die Methode "one Tree fits all" benutzt und nicht für jede   Sprache einen eigenen Seitenbaum erstellt hast- anderfalls brauchst Du ab hier nicht mehr  weiterlesen ;-)
Das Problem liegt darin, dass für jede Seite nur ein DB Eintrag in der Tabelle "pages" gemacht  wird. In der Std.Suche wird der Titel dieser Seite verwendet, der in unseren Fällen in deutsch ist.   Die Seitenelemente sind dann aber in der Tabelle tt_content sprachabhängig.
Das Resultat: die Suchergebnisse kommen in der richtigen Sprache aber immer mit der default Sprache  als Überschrift.
Ein Workaround sähe wie folgt aus:
Für jede Sprache einen Titel im Element angeben.
Dann die Datei /DeinRootPath/typo3/ext/css_styled_content/static/setup.txt
öffnen. Suche den CType:search (bei mir Zeile 649)
# ******************
# CType: search
# ******************
tt_content.search = COA
tt_content.search.10 = < lib.stdheader
# Result:
tt_content.search.20 = SEARCHRESULT
tt_content.search.20 {
allowedCols = pages.title-subtitle-keywords-description : tt_content.header-bodytext-imagecaption :  tt_address.name-title-address-email-company-city-country : tt_links.title-note-note2-url :  tt_board.subject-message-author-email : tt_calender.title-note : tt_products.title-note-itemnumber
renderObj = COA
renderObj {
10 = TEXT
10.field = pages_title
Die letzte Zeile ist der Schlüssel! Geändert in
10.field = header
kommt ab sofort der Name des Seitenelementes als Überschrift.
Hoffe das klappt bei Dir auch!
Bei Fragen meld Dich!
Grüße Zwomble

Eine andere Lösung findet sich hier:

[1]

Man kann z.B. statt pages_title tt_content_header benutzen oder die Erweiterung simple search localization verwenden (für Typo 3.7)

Mehrsprachiges Gästebuch

Das Plugin Modern Guestbook (tx_veGuestbook)unterstützt mehrere Sprachen. Bei der Listenansicht muß allerdings "Alle Sprachen zeigen" angeklickt sein sonst zeigt es immer nur die Einträge der aktuellen Sprache.

Mehrsprachige Formulare mit mailformplus

Damit mehrsprachige Formulare funktionieren muß im Template der Sprachen folgendes verstecktes Feld eingefügt werden:

<input type="hidden" name="L" value="###value_L###">

Sonst wird der Sprachparameter nicht weitergegeben (L) und man landet nach dem Ausfüllen auf der Standardsprache.

Pagebrowser

Der Pagebrowser ist die Navigation bei mehreren Einzelseiten: vorige 1|2|3 nächste

Er wird z.B. von älteren Newsplugins benutzt. Leider gibt es in Typo bis 3.7 (3.8?) keine Übersetzung dafür. Deshalb muß man die selbst machen. Dazu modifiziert man z.B.im tt_news extension Unterordner die locallang mit dieser Zeile:

'pi_list_browseresults_displays' => 'News ###SPAN_BEGIN###%s bis %s von ###SPAN_BEGIN###%s',

Dann sieht Sie ungefähr so aus (Ausschnitt)

Kategorie anzeigen:',
           'altTextCatShortcut' => 'Gehe zu:',
           'pi_list_browseresults_displays' => 'News ###SPAN_BEGIN###%s bis %s 
von  ###SPAN_BEGIN###%s', 

Es geht aber auch mit TypoScript im Setup:

plugin.tt_news.de.pi_list_browseresults_displays ='News ###SPAN_BEGIN###%s bis %s 
von ###SPAN_BEGIN###%s'  

Das hat den Vorteil daß bei einem Update von Typo nicht wieder alles futsch ist.

andere Spracheinstellungen

News - more übersetzen:

plugin.tt_news {
  _LOCAL_LANG.de {
       more = weiter lesen
  }
}



Hint: If you want to change the default texts like “previous” to something else, you can do this with the TS var “_LOCAL_LANG” (see example at the end of this table). For the names of the language markers see: pi/locallang.xml but don't change the values in this file – they will be overwriiten when you update tt_news. You can change the language labels with the extension “llxmltranslate”.

Link To Top (linkToTop) übersetzen

Im Prinzip sieht das TypoScript aus wie bei z.B. der Suchfunktion. Normalerweise passt man den linkToTop - Text im Constant Editor an (z.B. content.linkToTop = nach oben). Das funktioniert aber für die Mehrsprachigkeit nicht weil die Konstante längst an ein anderes Objekt übergeben wurde nämlich tt_content.stdWrap.innerWrap2

Im Setup kann man daher z.B. schreiben:

tt_content.stdWrap.innerWrap2 = |

<a href="#top">nach oben</a>