Zum Inhalt springen

Mehrsprachigkeit und Menü

Erstellt am 23. Juni 2003 · 22 Antworten · letzte Antwort am 29. November 2005 · Seite 1 von 2

Tags: Frage

jweiland ·

Wenn du magst, schick mir mal die admin login-Daten für das BE, dann schau ich mir das mal an.

Jochen Weiland

jweiland ·

Falls jemand die gleichen Probleme hat, hier ein paar Tipps zur Fehlersuche:

Wenn die Sprachumschaltung manuell funktioniert (Klick auf Flaggen oder Anhängen des L-Parameters an die URL), aber der L-Parameter bei den Links im Menü fehlt:

Mit dem Objekt Browser prüfen, ob die Linkvariable richtig definiert ist:

config.linkVars = L

(linkVars direkt unterhalb von config definieren, nicht unterhalb des PAGE Objekts (also nicht page.config.linkVars = L))

Wenn sonst alles richtig funktioniert, aber die Fähnchen grau bleiben (obwohl fremdsprachiger Content vorhanden und sichtbar ist):

Dann liegt es meist in einer fehlerhaften Anpassung der example_languageMenu.php Datei.

Jochen Weiland

Lingnet ·
gecko schrieb

Hallo Jochen,

ich habe das gleiche Problem. Alle erzeugten Links im Menu haben keinen L-Parameter.

Ich erzeuge das Menu folgendermassen:

temp.menu_1 = HMENU
 # First level menu-object, textual
temp.menu_1.1 = TMENU
temp.menu_1.1 {
    # Normal state properties
  NO.allWrap = <HR>|<BR>
    # Enable active state and set properties:
  ACT = 1
  ACT.allWrap = <HR>|<BR>
}
  # Second level menu-object, textual
temp.menu_1.2 = TMENU
temp.menu_1.2 {
    # Normal state properties
  NO.allWrap = &nbsp;&nbsp;|<BR>
    # Enable active state and set properties:
  ACT = 1
  ACT.allWrap = &nbsp;&nbsp;|<BR>
}
  # Third level menu-object, textual
temp.menu_1.3 = TMENU
temp.menu_1.3 {
    # Normal state properties
  NO.allWrap = &nbsp;&nbsp;&nbsp;&nbsp;|<BR>
    # Enable active state and set properties:
  ACT = 1
  ACT.allWrap = &nbsp;&nbsp;&nbsp;&nbsp;|<BR>
}

über

subparts.FOOTERMENU < temp.footermenu

bekomme ich es dann in die Seite.

Funktioniert auch gut, allerdings wird immer nur das Menu der default-Sprache erzeugt.
D.h.
default: english
id1: deutsch

Das erzeugte Menu hat allerdings nur Links zu den jeweiligen id's aber ohne L=...

dadurch springe ich aus einer deutschen Seite beim anklicken des Menüs wieder in die default-Language (english) zurück.

Kann ich bei der Menüerstellung irgendwo eintragen, dass im href der L-Parameter der angezeigten Seite beibehalten wird?

Gruß
harald
(gecko)

Hallo Harald,

wohin soll ich der Code einkonfiguriert?

Danke,
Lyn

Lingnet ·
gecko schrieb

welchen teil das codes meinst du?

die config vars?

Die ganzen Code. Wohin soll ich alles config? Ich sehe kein Flaggen.

Gruß,
Lyn

gecko ·

hi lyn,

ich habe hier noch eine zweite site, die ich mehrsprachig machen will.
ich werde das jetzt gelich anfengen, dabei werde ich schritt für schritt alles aufschreiben, was ich gemacht habe.
Das hilft dir hoffentlich.

gecko ·

Also hier die kurze Beschreibung von dem was ich gemacht habe:

Im html-template eine Sektion LANGUAGEMENU einbauen.
Name ist eigentlich egal.

<!-- ###LANGUAGEMENU### begin -->
<!-- ###LANGUAGEMENU### end -->

Im setup des templates:

temp.language = PHP_SCRIPT
temp.language.file = fileadmin/templates/scripts/my_languageMenu.php

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

config.sys_language_uid = 0 
config.language = en 
config.locale_all = english 

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

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

page.10 {
  template = FILE
  template.file = fileadmin/templates/template.tmpl

  workOnSubpart = DOCUMENT_BODY
  subparts.MENU < temp.menu_1
  subparts.LANGUAGEMENU < temp.language
  subparts.TITEL < temp.ctitel

  subparts.CONTENT < styles.content.get
  subparts.FOOTERMENU < temp.footermenu 
  subparts.LASTUPDATESEC < temp.LETZTEAENDERUNG

}

eintragen.

In Zeile 51 und 52 des scripts die Angaben für die Flaggen eintragen:

// Set each icon. If the language is the current, red arrow is printed to the left. If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.
$flags = array();
$flags[] = ($GLOBALS["TSFE"]->sys_language_uid==0?$pointer:"").'<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=0" target=_top><img src="fileadmin/templates/images/flag_ie.gif" hspace=5 border="0"align=middle></a>';
$flags[] = ($GLOBALS["TSFE"]->sys_language_uid==1?$pointer:"").'<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=1" target=_top><img src="fileadmin/templates/images/flag_de'.($langArr[1]?"":"_d").'.gif" hspace=5 border="0" align=middle></a>';

Das script habe ich extra in fileadmin... kopiert, damit es beim update nicht überschrieben wird, genau wie die flaggen.
Das originalscript liegt unter media/scripts und heisst example_languageMenu.php.

Hoffe das hilft weiter.

Unbekannter Benutzer ·

Hi gecko,

danke erstmal für den hilfreichen Post. Das Problem mit der grauen Flagge hab ich so in den Griff bekommen, aber funktioniert bei dir jetzt auch die zweitsprachige Menüführung? Oder hab ich was überlesen?

gruß timbo

gecko ·

die zweisprachige menuführung funktioniert.

kannst hier sehen

http://www.fiddlers-bonn.com

wenn du auf den englischen seiten bist bekommst du ein englisches menü auf den deutschen ein deutsches....

besaonders gut bei den speisekarten zu sehen.

der inhalt wird noch vom wirt überarbeitet....

gecko ·

.... bei mir war der fehler, dass ich den cache nicht geleert habe, bevor ich neu nachgeschaut habe.... :-)

Zerwas ·
jweiland schrieb

Also, wenn ich das Problem richtig verstehe:

- der Link auf den Flaggen enthält die Variable L=... und die Sprachumschaltung funktioniert
- die Links beim Menü enthalten die Variable L=... nicht?

Ich habe genau das gleiche Problem: Die richtigen Bilder werden für das englische Menü genommen und auch die Sprachumschaltung funktioniert, aber die Links im englischen Menü bekommen haben keinen '&L=2' Parameter! Ich verwende nicht das example_languageMenu.php Script, da ich den Umschaltbutton ohne PHP gelöst habe. Brauche ich denn aus dem PHP Skript noch irgendwas, damit die Vererbung des '&L=2' Parameters funktioniert?

Mein Typoscript code könnt Ihr hier finden:

#14683

Ich bin ziemlich ratlos und sitze schon das ganze letzte Wochenende daran...

gecko ·

versuchs mal hiermit

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

Zerwas ·
gecko schrieb

versuchs mal hiermit

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

Aaaaaargh *ächz*...

es war (mal wieder) nur ein Buchstabe - ich hatte immer 'config.LinkVars = L' da stehen... aber es muss vor dem = natürlich ein kleines L sein:

config.linkVars = L

Und dafür so viele Stunden... :o

flashswin ·

hallo zusammen,

wenn man in seinem menu folgendes stehen hat, dann geht das mit der übertragung der variable L auch nicht:

doNotShowLink = 1

denn dann wird L nicht übertragen.

ich habe noch ein problem mit meiner suche. ich habe ein suchfeld, dass auf jeder seite (also im template) vorhanden ist:

<form action="IDsuche.html?tx_indexedsearch[sword]" method="get">
<input name="tx_indexedsearch[sword]" type="text" />		  					
<!--Suche nach Wortteil-->
<input type="hidden" name="tx_indexedsearch[type]" value="1" />
<!--Suchwörter UND-->
<input type="hidden" name="tx_indexedsearch[defOp]" value="0" />
</form>

IDsuche ist hierbei die ID der suchseite.

problem: es wird immer zu meiner suchseite mit der defaultsprache verlinkt. also kein L übertragen.
wenn ich auf der suchseite selbst bin, dann kann ich problemlos über die flaggen umschalten.

hat jemand eine idee?

gruß
swinda