Zum Inhalt springen

sprachumschalter mit TMENU

Erstellt am 19. Juni 2007 · 3 Antworten · letzte Antwort am 19. Juni 2007

Tags: Frage

wini2 ·

hallo,

ich habe eine zweisprachige seite (0=deutsch/1=englisch). ich habe mich am "Frontend Localization Guide" orientiert. klappt alles soweit ganz gut.

mit dem muster des tutorials funktioniert der umschalter wunderbar.

temp.LangMenu = HMENU
temp.LangMenu {
special = language
special.value = 0,1
special.normalWhenNoLanguage = 0
1 = TMENU
1 {
# Normal link to language that exists:
NO = 1
NO.allWrap = |*| | * |*| |
NO.linkWrap = <b style="background-color : #fff"> | </b>
NO.stdWrap.setCurrent = De || En
NO.stdWrap.current = 1

# Current language selected:
ACT < .NO
ACT.linkWrap = <b style="background-color : blue"> | </b>

# Language that is NOT available:
USERDEF1 < .NO
USERDEF1.linkWrap = <span style="background-color : grey"> | </span>
USERDEF1.doNotLinkIt = 1
}
}

im gegensatz zum tutorial, soll mein sprachumschalter aber nur die jeweils andere sprache zeigen (also auf deutschen seiten nur das kürzel en und auf englischen nur de). es ist egal, ob der text für eine nicht vorhandene seite in der anderen sprache angezeigt wird.

bin dankbar für jeden tipp.

wini2

jenses ·

entweder per CSS, indem du die aktive Sprache per visibility:hidden; ausblendest,
oder per condition (sinngemäß):

wenn aktuelle Sprache = 1:
special.value = 0
wenn aktuelle Sprache = 0:
special.value = 1

wini2 ·

hallo jenses,

vielen dank! der tipp mit den aktuelle sprache 0... klappt, css wahrscheinlich auch (hab ich nicht mehr probiert).

manchmal macht man es sich zu kompliziert. es geht - falls es nochmal jemand braucht- mit

temp.LangMenu= TEXT
temp.LangMenu {
field = uid
wrap = <a href="index.php?id=|&L=1"> en </a>
}

[globalVar = GP:L=1]
temp.LangMenu.wrap = <a href="index.php?id=|&L=0"> de </a>
[global]

trotzdem danke für deine guten tipps
wini2

jenses ·

Sobald du allerdings bei der Sprachumschaltung vielleicht auch noch andere Parameter übergeben willst (z.B. eine News-Uid),
kommst du mit dieser Simpel-Lösung nicht weiter.
Das language-menu geht übrigens genau so gut mit einer condition zu kombinieren. 😉

...
temp.LangMenu.special.value = 1
...

[globalVar = GP:L=1]
temp.LangMenu.special.value = 0
[global]