Hallo,
ich stelle mich glaube ich grade ziemlich dämlich an ...
Ich habe eine funktionierende Typo3 Installation. Alles funtkioniert wunderprächtig.
Nur jetzt komm ich an die Stelle, dass ich für die bestehende Website eine neue Sprache angelegt habe.
Dementsprechend soll z.B. der Footer sprachenabhängig eingebunden werden.
ich habe einen <div>-container mit der id=footer und einen Marker der ###FOOTER### heißt.
Allerdings bin ich gerade warscheinlich zu unfähig per Typoscript an der Stelle ein anderes Template einbinden zu lassen.
Hier mal mein Typoscript-auszug davon:
page.40 {
temp.subtemplate = FILE
temp.subtemplate = TEMPLATE
temp.subtemplate.file = fileadmin/templates/lang/pl/footer.html
workOnSubpart = FOOTER
marks.FOOTER = syles.content.get
}
Über Hilfe wäre ich sehr dankbar...
MfG
Der_Chris
So ?
page.40 {
temp.subtemplate = TEMPLATE
temp.subtemplate {
template = FILE
template.file = fileadmin/templates/lang/pl/footer.html
marks.FOOTER < syles.content.get
}
}
Funktioniert leider nicht ...
Ich werde noch wahnsinnig. In der footer.html steht rein nur HTML Content. Gibt es ne andere Lösung, wie ich sprachenspezifisch andere Footer einbauen kann?
Lg
Der_Chris
Oh, das hab ich übersehen,
das lang hier variabel sein soll 🙂
Evtl. kannst du mit
page.40 {
temp.subtemplate = TEMPLATE
temp.subtemplate {
template = FILE
template.file = fileadmin/templates/de/pl/footer.html
marks.FOOTER < syles.content.get
}
}
[globalVar = GP:lang = en]
page.40.temp.subtemplate.template.file = fileadmin/templates/en/pl/footer.html
[global]
das aktuelle Footer-Template switchen?
Also.. Glaub du verstehst mich grad bissl falsch 😉
"lang" ist keine Variable, sondern ein Ordner im Ordner "/fileadmin/templates/".
"pl" ist der Ordner für die Polnische Sprache, in dem dann die Sprachenspezifischen Dinge liegen sollen ... z.B.: die "footer.html"
Das Problem ist, dass wenn ich deinen Code so verwende auf der Seite selber nichts rauskommt.
Ich will nur anhand von den Markern im HTML Template per Typoscript die "polnische Footer.html" einbinden. Und dies dann natürlich auch für die anderen Sprachen manuell im Typoscript anpassen.
Vielleicht ist das jetzt etwas klarer ...
Weil eine andere Möglichkeit fällt mir nicht ein, als in den verschiedenen Sprachen jeweiles den "richtig-sprachigen" Footer einzubauen ...
Muss ich in der "footer.html" noch irgendwas beachten? Nochmal Marker verwenden oder sowas?
Falls du nur anderen Text haben möchtest, dann binde den einfach über eine language-Datei ein.
Falls du ein komplett anderes Template möchtest, würde ich eine if-Abfrage in Typoscript einbauen, in der du für die zweite Sprache ein anderes Template einbaust.
[globalVar = GP:L = 1]
...
[global]
Ich möchte einen Anderen Text und andere Links einbauen, da im footer eine kleine Navigation drinsteckt. Allerdings sind da auch Seiten verlinkt, also brauche ich für jede Sprache den Footer einzeln.
Wie würde ich das mit der Language Datei machen? Bin leider totaler Anfänger in Typo3 ...
Hallo Chris,
"Anfänger" zählt nicht. Das bringen wir dir jetzt bei.
Wenn's sein muss mit sanfter Gewalt 🙂
Also ich würde das so lösen:
page = PAGE
page {
typeNum = 0
config {
linkVars = L
sys_language_uid = 0
locale_all = de_DE
language = de
}
}
[globalVar = GP:L = 1]
page.config {
sys_language_uid = 1
locale_all = pl_PL
language = pl
}
[global]
[globalVar = GP:L = 2]
page.config {
sys_language_uid = 2
locale_all = en_GB
language = gb
}
[global]
... mehr von deienem code
page.40 {
temp.subtemplate = TEMPLATE
temp.subtemplate {
template = FILE
template.file = fileadmin/templates/lang/default/footer.html
marks.FOOTER < syles.content.get
marks.FOOTER.select.languageField = sys_language_uid # damit die inhalte aus der aktuellen sprache kommen
}
}
# erste definierte sprache
[globalVar = GP:L = 1]
page.40.temp.subtemplate.template.file = fileadmin/templates/lang/pl/footer.html
[global]
# zweite definierte sprache
[globalVar = GP:L = 2]
page.40.temp.subtemplate.template.file = fileadmin/templates/lang/gb/footer.html
[global]
...
Die Werte im config-Teil sind legen die default-Werte fest, wenn keine Sprache gewählt ist, bzw.
welche GET-Variable die Sprach-ID beinhaltet ( hier: L).
Das [globalVar...] ist vereinfacht ausgedrückt eine IF/ELSE-Konstruktion:
[globalVar = GP:L = 2]
heisst soviel wie
"wenn globale variable aus (GET/POST) mit der Bezeichnung "L" den Wert 2 hat"
Du musst nur selbst wissen ob hinter der ID "1" englisch, polnisch oder sonstwas steckt.
Das funktioniert nach dem Prinzip: first come, first serve.
Soll heißen, die erste Sprache die (nach der Standardsprache) hinzugefügt wurde hat die ID 1,
die nächste bekommt die ID 2, usw.
Entsprechen musst du dann das Template bzw. (über die config) die Sprache überschreiben
Also ...
Ich will das nicht automatisch machen lassen. Ich will bei jeder Sprache (ich habe in jeder Sprache das gleiche TS-Template) einfach nur sagen, dass an dem marker im HTML Template der Inhalt der footer.html rauskommt. Alles andere übersteigt das Stunden-Kontingent was dafür noch offen ist.
Ich will einfach nur wissen, was an meinem Code falsch ist, da im FE an der Position des Markers FOOTER nichts rauskommt.
Aber danke für deine Mühe 😉
Jetzt bin ich auf jeden Fall schon mal bissl schlauer 😉