Zum Inhalt springen

Trotz korrekter URL immer Standard-Sprache!

Erstellt am 26. August 2014 · 6 Antworten · letzte Antwort am 28. August 2014

Tags: TYPO3 4, Frage

supl1an ·

Folgende Situation: Für ein nicht von mir erstelles Projekt sollen jetzt die Inhalte auch auf englisch ausgegeben werden. Die Standard-Sprache ist Deutsch.

Die Webseite-Sprache Englisch war schon angelegt.
Ich habe für alle Seiten die Alternative Seitensprache angelegt. Ich habe für alle Inhalte eine Übersetzung erstellt. Die Sprachkonfiguration und das Sprachmenü muss eigentlich auch stimmmen, habe es mit mehreren anderen Projekten mit der gleichen Typo3 Version verglichen, das Typoscript für die Sprache ist identisch.

Wenn ich jetzt im Frontend auf die englische Flagge klicke, wird zwar die korrekte URL also mit dem richtigen Sprachparameter '&L=1' aufgerufen, das Menü und die Inhalte sind aber immer noch in deutsch.
Auch bleibt die englische Flagge aktiv, also der Link wird nicht deaktiviert(was ja passieren sollte, wenn man auf der englischen Seite ist). Die ganze Seite reagiert so, als ob die Sprache noch in Deutsch ist.

Nach endlosem suchem im Netz glaube ich zwar das Problem ein wenig eingekreist zu haben, weiß aber nicht, was ich dagegen machen soll. Ich vermute das die sys_language_uid die ja die Seitensprache vorgibt, nicht geändert wird. Der URL-Parameter wird also nie von Typo3 abgefangen. Ich häng mal das TS der gesamten Seite und extra den Teil mit der Sprache und dem Sprachmenü an. (obwohl das Sprachmenü selbst ja eigentlich unabhängig von der Sprachkonfiguration sein müsste, es wird ja nur jeweils ein anderer L-Parameter angehängt).

language_ts.txt
2kB
komplettes_ts.txt
15kB
Chrissli ·

Ich habe mal in das language_ts geschaut, ich kann so spontan keine Fehler darin entdecken. Vorausgesetzt das diese Einstellungen nicht zwischendurch überschrieben wird würde ich den Fehler vermutlich auch woanders suchen.

Da Englisch bereits angelegt war, hast du mal geprüft ob Englisch auch wirklich die ID 1 hat?
Angenommen die Sprache wurde ein- zweimal angelegt und wieder gelöscht, sollte die ID bei jedem Anlegen weiter aufsteigen, d.h. die aktuell angelegte Sprache Englisch könnte eine andere sys_language_uid benötigen

supl1an ·

Hallo Chrissli, danke für deine Antwort.

Ich habe es gerade überprüft. Wenn in ich der Listenansicht auf Website-Sprache EN den Info-Button klicke, steht im sich öffnendem Fenster unter anderem folgendes:

Tabelle: Website-Sprache (sys_language) - UID: 1

Das dürfte also schon mal nicht der Fehler sein. Ich hab auch mal zum testen eine dritte Sprache angelegt (mit UID 2) und Inhalte in dieser Sprache angelegt. Wenn ich dann über den über &L=2 die Seite mit diesem Inhalt aufgerufen habe, war wieder das gleiche. Es hat einfach überhaupt nicht darauf reagiert, die Inhalte werden immer in der Standard Sprache ausgegeben.

Chrissli ·

1. Kleiner Tippfehler am Anfang, es heisst
page = PAGE
nicht
PAGE = page

2. Vielleicht setzt du deinen Sprach-TS weiter nach oben, bevor du die Inhaltselemente mit abhängig von der sys_language_uid befüllst, denn zu dem Zeitpunkt steht noch alles auf deutsch.

Bei mir ist dass immer so ziemlich das erste.

supl1an ·

Hallo,

das mit der Reihenfolge im TS habe ich probiert. Der Block Global Variable für Englisch ist jetzt direkt unter dem:

linkVars = L
htmlTag_langKey = de_DE
sys_language_uid = 0
language = de
locale_all = de_DE
sys_language_mode = content_fallback
sys_language_overlay = hideNonTranslated

Und das steht ja schon ganz oben. Leider hat das den Fehler nicht behoben 😢

Das mit dem page=PAGE habe ich gar nicht als Fehler erkannt, so steht es in so gut wie jedem Projekt von unserer Firma (hat mein Vorgänger wohl einmal so in den Typo3 Dummy geschrieben und dann immer weiterkopiert). Aber dieser Fehler scheint ja nicht wirklich Auswirkungen zu haben. Bei den anderen Projekten mit dem selben Typoscript Setup und der gleichen Typo3 Version funktioniert alles tadellos.

Der TS-Teil mit der Sprache ist in den anderen Projekten auch identisch und dort funktioniert die Sprachumschaltung. Ich bin schon am verzweifeln. Hab erst seit April mit Typo3 zu tun und hab in vielen Bereichen keine Ahnung...

Chrissli ·

Kannst du vielleicht nochmals dein aktuelles TS anhängen?
Mir ist nämlich gerade aufgefallen, dass du ein kleines Problem mit der Klammerung hast, d.h.
Conditions à la [globalVar ....]
dürfen nicht innerhalb einer Klammer stehen.
Z.b. das wäre falsch:

page {
  config {
    ...
    [globalVar = GP : L = 1]
      ...
    [global]
  }  
}

Richtig wäre dann:

page {
  config {
    ...    
  }  
}
[globalVar = GP : L = 1]
page.config {
  ...
}
[global]
supl1an ·

....jetzt komm ich mir ganz schön dämlich vor...DAS WAR ES!!! ES GEHT ENLDICH! Vielen vielen Dank Chrissli, du hast mir unheimlich viel Ärger und Zeit erspart.
Beim Ändern des TS damit die globalVar Condition weit oben steht, hab ich es innerhalb einer Klammer vom obersten page.config kopiert. Ich hab also beim Ausbessern des TS einen neuen Fehler reingekloppt🙂#giggle#

Mich würde trotzdem brennend interessieren, wieso der 1.Fehler (also die Tatsache, dass die Englisch Condition im Setup unter dem "Inhalte zuweisen" Teil war) in den anderen Projekten nicht den gleichen Fehler ergeben hat...na ja, ich bin erstmal richtig froh, dass es jetzt funktioniert.

Noch einmal Danke Chrissli und Tschüss!