Zum Inhalt springen

Text im Template sprachabhängig machen

Erstellt am 8. Oktober 2003 · 13 Antworten · letzte Antwort am 29. Juli 2005

Tags: Frage

CoolWater ·
           # Deutsche Labels              
           [globalVar = GP:L = 0]
               marks.L1 = TEXT
               marks.L1.value = Seitenanfang
               marks.L2 = TEXT
               marks.L2.value = ABTEILUNGEN
           [global]
           # Englische Labels
           [globalVar = GP:L = 1]
               marks.L1 = TEXT
               marks.L1.value = Top
               marks.L2 = TEXT
               marks.L2.value = DEPARTMENTS
           [global]

so kann das nicht gehen 🙂
probiers mal so:

           # Deutsche Labels              
           [globalVar = GP:L = 0]
               marks.L1 = TEXT
               marks.L1.value = Seitenanfang
               marks.L2 = TEXT
               marks.L2.value = ABTEILUNGEN
           [else]
               # Englische Labels
               marks.L1 = TEXT
               marks.L1.value = Top
               marks.L2 = TEXT
               marks.L2.value = DEPARTMENTS
           [end]

geht so halt nur für 2 Sprachen, ich ich meine mich erinnern zu können, dass du sowieso nur 2 hattest 🙂

Gruß
CW

sw-student ·

Hatte ich meines Wissens auch schon probiert. Habs nochmals überprüft:
Mit der Lösung übernimmt er jeweils die zweite Zuordnung durch die Marks,
also die englischen Labels, egal ob L=0 oder L=1 ist!

Need Help 😢

CoolWater ·

dann hast du L=0 nicht als deutsch bzw. standard definiert. füge das mal in das setup-template ein, da wo du die sprachen definiert hast:

config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE

HTH
CW

sw-student ·

Funktioniert immer noch nicht. Deutsch soll bei mir Standardsprache (L=0) sein, Englisch zweite Sprache(L=1). Der L-Parameter wird korrekt mitgeführt! Leider wird bei den Labels immer noch nicht unterschieden 🙁

Hier jetzt mal mein Sprachsetup:

### SPRACHSETUP ###

# Setting up the language variable "L" to be passed along with links
config.linkVars = L 

config.sys_language_uid = 0
config.language = de 
config.locale_all = de_DE

# German language, sys_language.uid = 0 
[globalVar = GP:L = 0] 
config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE 
[global] 

# English language, sys_language.uid = 1 
[globalVar = GP:L = 1] 
config.sys_language_uid = 1 
config.language = en 
config.locale_all = english 
[global]

Die Labelwahl erfolgt über:

page = PAGE
page.10 = TEMPLATE
page.10 {
               template = FILE
               template.file = fileadmin/templates/test_template.htm
               workOnSubpart = DOKUMENT

           [...]

           # Deutsche Labels              
            [globalVar = GP:L = 0] 
               marks.L_ABT = TEXT 
               marks.L_ABT.value = ABTEILUNGEN
               marks.L_SUB = TEXT 
               marks.L_SUB.value = UNTERMENÜ 
           [else]
           # Englische Labels 
               marks.L_ABT = TEXT 
               marks.L_ABT.value = DEPARTMENTS
               marks.L_SUB = TEXT
               marks.L_SUB.value = SUBMENU
           [end]
 }
CoolWater ·

ok, is klar 🙂 du musst diese abfrage außerhalb von page.10 machen, sprich irgendwo untendrunter und dann so:

# Deutsche Labels              
[globalVar = GP:L = 0] 
    page.10.marks.L_ABT = TEXT 
    page.10.marks.L_ABT.value = ABTEILUNGEN 
    page.10.marks.L_SUB = TEXT 
    page.10.marks.L_SUB.value = UNTERMENÜ 
[else] 
    # Englische Labels 
    page.10.marks.L_ABT = TEXT 
    page.10.marks.L_ABT.value = DEPARTMENTS 
    page.10.marks.L_SUB = TEXT 
    page.10.marks.L_SUB.value = SUBMENU 
[end]

HTH
CW

sw-student ·

GENITAL!! ES FUNKIONIERT!! 😃 Aber wieso? :o

Danke!!

... jetzt hab ich nur noch das Prob, dass er (der Typ o3 😉 ) beim Öffnen der Seite die englischen Labels anzeigt (L-Parameter noch nicht angehängt) Klick ich auf die deutsche Flagge, ändern sie sich. Wie kann ich jetzt den L-Parameter von Anfang an festlegen?

CoolWater ·

typo3 scheint die abfragen innerhalb des page-blocks nicht zu verarbeiten, daher muss sowas außerhalb gemacht werden...

Normalerweise, da deutsch ja als standardsprache eingerichtet ist, sollte typo3 autom. die deutschen labels anzeigen... o.O warum das bei dir jetzt nicht klappt, keine ahnung 🙁

PS: Statt GENITAL sollte das wohl GENIAL heißen 😉

Grüße nach BaWü
CW

sw-student ·

Uuuups :o Rofl, hast recht, an dieser nich ganz angebracht #giggle#

Sag mir doch bitte noch schnell wie genau ich die Standardsprache definiere. Vielleicht hab ich ja da was vergessen?

CoolWater ·

also eigentlich dachte ich, dass es so geht:

config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE

aber das hast du ja schon #paralyzed# komisch komisch... da kann ich dir so jetzt leider nicht weiterhelfen 🙁

Gruß

Schleuse ·

Also,

eine Frage nach der anderen:

Das eigentliche ursprüngliche Problem löst Du am elegantesten auch für mehr als zwei Sprachen so:
(Habe mal Französisch noch als drittes dran gepackt, um das Beispiel zu verdeutlichen!)

page.10.marks.L_ABT = TEXT 
page.10.marks.L_ABT.value = ABTEILUNGEN 
page.10.marks.L_SUB = TEXT 
page.10.marks.L_SUB.value = UNTERMENÜ 

[globalVar = GP:L = 1] 
    # Englische Labels 
    page.10.marks.L_ABT = TEXT 
    page.10.marks.L_ABT.value = DEPARTMENTS 
    page.10.marks.L_SUB = TEXT 
    page.10.marks.L_SUB.value = SUBMENU 

[globalVar = GP:L = 2] 
    # Französiche Labels
    page.10.marks.L_ABT = TEXT 
    page.10.marks.L_ABT.value = DEPARTMENTS (???)
    page.10.marks.L_SUB = TEXT 
    page.10.marks.L_SUB.value = Menu Deriere (???) 

[GLOBAL]

Da "L" standardmäßig nicht gesetzt ist, ging er bei Eurer letzten Lösung immer in den "ELSE"-Bereich und hat deshalb Englisch angezeigt, bis endlich einmal auf eine Fahne geklickt wurde/wird.

Solche Fallunterscheidungen (Conditions) dürfen übrigens nicht in Blöcken innerhalb der geschweiften Klammern gemacht werden "{...}". Da funktionieren die eben einfach nicht und er interpretiert die Angaben darin der Reihe nach durch, als wäre da gar keine Condition, weswegen er bei Deinem ersten Versuch auch IMMER Englisch angezeigt hat, da diese Übersetzungen zuletzt standen und die Deutschen dadurch überschrieben wurden. Hat also nichts mit dem PAGE-Bereich zu tun sondern mit den Klammern allgemein.

Folgendes musst Du aber außerdem noch beachten...
Die Config-Einstellungen zur Sprache müssen sich natürlich auch dem jeweilig gewählten "L" anpassen:

# Standardsprache Deutsch mit Index 0 (Null)
config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE

[globalVar = GP:L = 1] 
    # Englisch (Index 1)
    config.sys_language_uid = 1 
    config.language = en
    config.locale_all = en_EN

[globalVar = GP:L = 2] 
    # Französisch (Index 2)
    config.sys_language_uid = 2 
    config.language = fr
    config.locale_all = fr_FR
[GLOBAL]

Erst dann zeigt er Dir auch die Inhalte in den entsprechenden Sprachen an, da er selbst mit dem "L" ja nichts anfangen kann und nicht weiß, dass es sich dabei um den Sprach-Index handelt, den er benutzen soll.

Hope, it works!

mandel ·

hallo,

die möglichkeit der übersetzung von markern etc wie sie oben beschrieben ist, ist ja schön und gut, funktioniert auch.

aber gibt es zufällig noch andere "konzepte" wie man dies lösen kann? ich will ungern einen übersetzer auf die setup formulare loslassen, um beschriftungen/labels zu übersetzen.

kann man zB auch sprachdateien einbinden, die man "besser" editieren kann? gibt es da was?

gruss und danke
florian

jholze ·

hallo, also warum setzt ihr denn keine variablen

oben im constants feld

text1 = bndkjabchjwb

uns unten dann {$text1} in de value bereich.

jens

tantalus222 ·

Ja, sehr cool:
In template/setup z.B. so referenzieren

subparts.header = TEXT
subparts.header.value = <h1>{$headertext}</h1>

und dann in template/constants z.B. so:

headertext = deutsch
[globalVar = GP:L = 2]
headertext = englisch
[global]

Das L sollte halt noch zur Sprache passend abgeändert werden.