Zum Inhalt springen

Hilfe für Anfänger beim Einstellen der Mehrsprachigkeit

Erstellt am 20. März 2010 · 16 Antworten · letzte Antwort am 6. April 2010

Tags: Frage

LordHeruur ·

Ich betreue den Web-Auftritt eines Vereins (tuexenia.de) und habe jetzt die Aufgabe bekommen, die Seite mehrsprachig (Englisch als Zweitsprache) einzurichten.
Leider gehen meine HTML-Kenntnisse gegen null und mit dem Gestalten von Websites in Typo3 hab ich auch keine Erfahrungen (obwohl ich schon diverse Seiten mit diversen CMS-Systemen aufgesetzt habe).

Kommen wir zu meinem Problem:

Habe jetzt dieses Tutorial befolgt (sofern es möglich war, da einiges unvollständig erklärt ist). http://www.c-dev.ch/blog/2010/02/04/typo3-mehrsprachig/

Ich habe die sprachmenu.php an die vorgesehene Stelle kopiert.

Nächster Schritt: Das PHP-Script im TS-Template aufrufen. Da ich keine Ahnung habe welches TS-Template die meinen, habe ich es mit dem MAIN-Template probiert.

Habe also das:

# SprachVariable L initialisieren

 config.linkVars = L
 # Standardsprache UID 0 -> Englisch
config.sys_language_uid = 0
config.language = en
config.locale_all = english
 # Deutsch, sys_language.uid = 1
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = de
config.locale_all = de_DE
[global]

und das:

page.10 = PHP_SCRIPT
page.10.file = fileadmin/scripts/sprachmenu.php

in das Setup eingefügt.

Dann bekomme ich beim Seitenaufruf diese schöne Fehlermeldung:

Parse error: parse error, unexpected T_VARIABLE in /var/www/virtual/tuexenia.de/htdocs/fileadmin/scripts/sprachmenu.php on line 44

Und hier hänge ich. Die Mehrsprachigkeit im Backend (also übesetzte Texte etc.) habe ich schon eingerichtet.

Meine Vermutung ist, dass ich einfach das falsche Template erwische und das Template brauche, welches für die Navigation verantwortlich ist, leider hab ich keine Ahnung welches das ist, da ich die Seite nicht eingerichtet habe.

Julian.​Hofmann ·

Hallo.

LordHeruur schrieb

Leider gehen meine HTML-Kenntnisse gegen null und mit dem Gestalten von Websites in Typo3 hab ich auch keine Erfahrungen

Sind nicht gerade ideale Voraussetzung zur Administration eines CMS, oder? 😉

Das Problem liegt nämlich ganz simpel,w ie es Dir PHP auch meldet in Zeile 44 des PHP-Scripts. Dort sind - waruma uch immer - Kreuzsymbole statt Leerzeichen an einigen Stellen. Somit ist es kein syntaktisch korrekter PHP-Code mehr, was dann auch via Fehlermeldung bemängelt wird.

Viele Grüße
Julian

LordHeruur ·
Julian.Hofmann schrieb

Sind nicht gerade ideale Voraussetzung zur Administration eines CMS, oder? 😉

Ich war verwirrt, ich meinte PHP-Kenntnisse und nicht HTML. ^^
Programmieren an sich ist aber kein so großes Problem. C, C++ und VisualBasic kann ich.

Dort sind - waruma uch immer - Kreuzsymbole statt Leerzeichen an einigen Stellen

Kreuzsymbole? Wenn ich die Datei mit dem Notepad öffne, sehe ich dergleichen aber nicht.
Ist das mit dem MAIN-Template denn schon mal richtig? Ich meine vom Ort her.

Julian.​Hofmann ·

Puh, gut, wenn HTMl und generell mal Programmierkenntnisse da sind, dann bin ich beruhigter. :-)

Die Kreuzzeichen irritieren mich nun auch. Also im Texteditor meiner Wahl (BBEdit auf Mac) sind die Einrückungen in den Zeilen 44, 50-51, 53-54 keine Leerzeichen, sondern Kreuzsymbole, ebenso in TextEdit (quasi das Notepad-Pendant). In Dreamweaver hingegen sieht es korrekt aus.
Würde daher trotzdem mal raten, dass Du die ganzen Einrückungen an neu setzt (Sind ja nicht viele). Denn irgendwas ist da wohl seltsam, was wohla uch PHP so sieht...

Bild: d.imagehost.org/…/Bildschirmfoto_2010-03-22_um_17_36_32.png

Aber mal was ganz anderes dazu:
Das Tutorial bezieht sich auf eine Version 3.x von TYPO3- also eine steinalte Version. Inzwischen hat sich vieles getan und geändert. Auch ist generell die Nutzung von PHP_SCHRIPT nicht mehr so gern gesehen. Das Skript selbst arbeitet an der API vorbei (z.B. durch direkte Nutzung von PHP-mysql*-Funktionen).

Schau Dir doch mal dieses Tutorial an, das etwas zeitgemäßer mit Bordmitteln rein in TypoScript ein Sprachmenü aufbaut: http://typo3blogger.de/sprach-menu/

LordHeruur ·

OK, wenn das eine Tutorial wirklich so alt ist, nehme ich mal lieber was aktuelles. Obwohl die Seite auch noch auf Typo3 4.0 läuft...

Hab's mal mit dem TypoScript probiert (ins MAIN-Template eingefügt), aber es tut sich nichts. Keine Veränderung im Frontend.
Was mich wundert ist, dass wenn ich das MAIN-Template aufrufe, steht bei Setup NICHTS drin (nur was ich in den letzten Tagen reinkopiert habe).
Es existiert auch ein extra Unterordner für templates für die Navis oder "Last Change"-Anzeige im Seitenbaum, auch wenn ich es da unter Setup reinkopiere (und ich rede hier von stumpfem copy&paste von der Seite, die du gepostet hast), passiert rein gar nichts im Frontend. Ich habe bislang nur die Startseite des Frontends zweisprachig gemacht, daher erwarte ich nur hier Auswirkungen.

Dann hab ich mal die Extension "language Selection (sr_language_menu)" ausprobiert, aber die möchte erstens Typo3 4.0.0 (hab ich ignoriert) und zweitens mag die eine selbstprogrammierte Extension (nicht von mir) zur Erstellung von Inhaltsverzeichnissen mit Abstracts gar nicht. Wenn die Extension also installiert ist, liefert die selbst-programmierte Extension eine Fehlermeldung.

LordHeruur ·

So, ich glaube so langsam bekomme ich den Dreh raus. Habe eben per Extension (aus dem Repository) einen Counter in die Seite eingebaut. Das habe ich auch nur geschafft, weil diese Extension ENDLICH MAL eine VERNÜNFTIGE Anleitung mit Beispielen hatte!
Jedenfalls würd ich gern jetzt das Sprachmenü auch per Extension einbauen.
Und zwar diese hier:
http://typo3.org/extensions/repository/view/bb_languageselect/current/
Sie ist erfolgreich als Frontend-Extensions installiert und verträgt sich scheinbar super mit der Custom-Extension (siehe vorherigen Post).
LEIDER ist diesmal die Anleitung wieder unvollständig. Sie reden nur davon, dass man einen Marker ins Template setzten soll - das ist mir schon klar, aber wie soll der heißen? Wenn ich da ### HalloWelt ### reintippe, wird's wohl nicht laufen. Mit ### LANGUAGE ### geht's auch nicht (gerade getestet). Wie finde ich heraus, wie der Marker heißt?
Hier die Config/Anleitung:
http://typo3.org/documentation/document-library/extension-manuals/bb_languageselect/0.2.1/view/1/3/

d.​walter ·

Eine Seite vorher stand das was du suchst....

temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
}

lib.myMarker < temp.languageSelect

Du musst halt den Marker (hier myMarker) entsprechend ersetzen.

LordHeruur ·
d.walter schrieb

Eine Seite vorher stand das was du suchst....

temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
}

lib.myMarker < temp.languageSelect

Du musst halt den Marker (hier myMarker) entsprechend ersetzen.

Ah, danke!

Aber wenn ich es lib.LANGUAGE für ###LANGUAGE### nenne, geht es trotzdem nicht.

temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
}
lib.LANGUAGE < temp.languageSelect

Der Teil vom HTML-Template sieht wie folgt aus:

<!-- ###METANAVIGATION### start -->
<a href="index.php" class="topnav">Home</a> 
  | <a href="kontakt.php" class="topnav">Kontakt</a> | <a href="impressum.htm" class="topnav">Impressum</a> | ###LANGUAGE###
<!-- ###METANAVIGATION### stop -->
d.​walter ·

Dann hast du das wohl falsch ins TS eingebaut.

Du musst

lib.myMarker < temp.languageSelect

natürlich schon da reinschreiben wo du deine restlichen Marker zuweist!

Den rest könntest auch in ein separates Template schreiben und dann halt einbinden.

Daniel

LordHeruur ·
d.walter schrieb

Dann hast du das wohl falsch ins TS eingebaut.

Das was im TS steht, ist genau das, was ich oben aus Versehen als PHP zitiert hab.

Du musst

lib.myMarker < temp.languageSelect

natürlich schon da reinschreiben wo du deine restlichen Marker zuweist!

Äh, ich bin grade relativ verwirrt. Welche restlichen marker? Einer sollte doch reichen?

Den rest könntest auch in ein separates Template schreiben und dann halt einbinden.

Könnte ich, wenn ich etwas mehr Ahnung von PHP und Typo3 hätte. 😉
Steh grad voll auf dem Schlauch.

d.​walter ·

Du hast doch in deinem TS irgendwo die Zuweisung von deiner Navigation und deinem Inhalt an die entsprechenden Marker vorgenommen.

lib.myMarker < temp.languageSelect

Dort muss du jetzt auch die Zuweisung von deinem LANGUAGE-Marker vornehmen.

Die Definition von temp.lanugageSelect - also das hier

temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
}

Kannst du in ein separates Template schreiben. Ich hoffe, das ist verständlicher. Ansonsten poste mal dein TS.

LordHeruur ·

Hmm, irgendwie ist die Definition im TS ganz anders aufgebaut als bei dem Counter, den ich vorher eingebaut habe.
Hier ist jetzt mal das GANZE TS aus dem MAIN-TEMPLATE. Für die einzelnen Navis etc. wurden extra Templates angelegt. Muss also das TS vom Language-Select nicht ins MAIN-Template, sondern ins Navi-Template?

page.10.marks.COUNTER = TEXT
page.10.marks.COUNTER < plugin.tx_cscounter_pi1
plugin.tx_cscounter_pi1 = USER_INT

plugin.tx_cscounter_pi1 {
   minDigits = 1
   id = 1
   noReload = 1
   textOnly = 1
   wrap = Sie sind Besucher Nr. | 
   showSince = 1
   wrapSince = <br>seit dem |
   formatSince = %d.%m.%Y
}



temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
iconset = jacorre
cn_DE = 0
cn_GB = 1
cn_FR = 2
}

lib.LANGUAGE < temp.languageSelect
d.​walter ·

Hmm, so spontan würde ich sagen, wenn du

lib.LANGUAGE < temp.languageSelect

durch

page.10.marks.LANGUAGE < temp.languageSelect

ersetzt, sollte es funktionieren.

LordHeruur ·

Ne, leider klappt das auch nicht. Hab jetzt auch mal das TS ins separate Navi-Template für die Meta-Navigation geschrieben, aber das bringt auch nichts. Weder in deiner Variante, noch in der ursprünglichen.

PS: Vielen Dank für deine Mithilfe!

LordHeruur ·

@Daniel:
Hat jetzt doch funktioniert mit deiner letzten Idee, vielen Dank! Aber auch wirklich nur mit deiner Idee, hab's auch noch mal mit dem Standardbefehlt probiert und das ging wieder nicht.
Er mochte wohl vorher den Platz im HTML-Template nicht (die Flaggen sind etwas groß geraten für die Meta-Navi).
Jetzt muss ich es nur noch hinkriegen, dass er mir auch die Sprache umstellt, wenn ich auf die Fahne klicke. o.O

Denn wenn ich jetzt auf Englisch klicke, ändert sich die Adresse mit den Parametern (L=0 zu L=1) korrekt, aber es passiert nichts.
http://tuexenia.de/index.php?id=6&L=1&L=1
Habe für die Startseite (Home) extra zu Testzwecken in englischer Lokalisierung einen Testdatensatz (der nur aus der Überschrift "test" und dem Inhalt "test" besteht) erstellt. Als ich vorher "Standardinhalte kopieren" ausgeführt habe und alles kopiert war, sah es auch nicht anders aus, obwohl ja überall "Translate to English" drinstehen müsste.

LordHeruur ·

Hat keiner ne Idee?
Hab mal einen Screenshot vom Backend gemacht, wo ich die Startseite zweisprachig gestaltet habe:
Bild: abload.de/…/clipboard01rm7y.jpg

Die Extension erkennt das ja auch und zeigt eine farbige UK-Fahne auf der Startseite, aber wenn ich draufklicke, bleibt alles Deutsch, obwohl sich oben in der Adresse die Parameter ändern.