Zum Inhalt springen

Sprachumschaltung der hinzugefügten Sprache funktioniert nicht

Erstellt am 4. September 2010 · 4 Antworten · letzte Antwort am 7. September 2010

Tags: Frage

Keegan ·

Hallo,

ich bin was Web-Programmierung und Typo3 betrifft blutiger Anfänger und soll mich ab jetzt in unserer Firma um die Typo3-Webs kümmern (Weiterentwicklung und Administration).

Habe mir Gestern das Buch 'Praxiswissen TYPO3' gekauft und mich darin gleich mit dem Kapitel über 'Mehrsprachige Webseiten' beschäftigt, weil ich nämlich in einem bestehenden Web eine weitere Sprache hinzufügen will.

Hier habe ich nun auch mein erstes Problem:
Das hinzufügen der neuen Web-Site-Sprache war ja nicht schwierig.
Ich habe auch bereits bestehende Seiten in die neue Sprache übersetzt.
Was aber bisher nicht funktioniert, ist das Umschalten auf die neue Sprache, obgleich ich folgende Template-Anpassungen vorgenommen habe:

# Template: Globale Konfiguration #

:
# war schon vorhanden - funktioniert
# Norwegisch language, sys_language.uid = 6
[globalVar = GP:L = 6]
 config.sys_language_uid = 6
 config.language = no
 config.locale_all = no_NO
 config.htmlTag_langKey = no
[global]

# von mir hinzugefügt - funktioniert nicht
# Niederländisch language, sys_language.uid = 7
[globalVar = GP:L = 7]
 config.sys_language_uid = 7
 config.language = nl
 config.locale_all = nl_NL
 config.htmlTag_langKey = nl
[global]

# Template: subpart header #

temp.header = COA

temp.header.20 = HTML
temp.header.20.value = <table cellspacing="0" border="0" cellpadding="0" id="table_all"><tr><td id="td_sprache" onMouseOver="sprache_MouseOver();">

##### akt sprache
temp.header.21 = HTML
temp.header.21.value = <div id="pulldown_sprache" onMouseOver="sprache_MouseOver();">Deutsch

temp.header.25 = HTML
temp.header.25.value = <div id="pm_sprache" onMouseOut="sprache_MouseOut();"><img hspace="0" vspace="0" src="fileadmin/img/bg/bg_sprache_over.gif" width="103" height="22" border="0" /><br /><div id="pm_sprache_menu">
              
#### je Sprache ####
temp.header.27 = HTML
temp.header.27.value = <div class="pm_sprache_menu_zeile"> <a href="/de/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Deutsch</a> </div>
                 
temp.header.28 = HTML
temp.header.28.value = <div class="pm_sprache_menu_zeile"> <a href="/en/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">English</a> </div>

temp.header.29 = HTML
temp.header.29.value = <div class="pm_sprache_menu_zeile"> <a href="/fi/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Suomi</a> </div>

temp.header.30 = HTML
temp.header.30.value = <div class="pm_sprache_menu_zeile"> <a href="/se/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Svenska</a> </div>

temp.header.31 = HTML
temp.header.31.value = <div class="pm_sprache_menu_zeile"> <a href="/no/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Norsk</a> </div>

### von mir ergäntzt, für die neue Sprache
temp.header.32 = HTML
temp.header.32.value = <div class="pm_sprache_menu_zeile"> <a href="/nl/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Nederlands</a> </div>
################################            
         
### Conditon war schon vorhanden - funktioniert ###
[globalVar = GP:L = 3]
    temp.header.21 = HTML
    temp.header.21.value = <div id="pulldown_sprache" onMouseOver="sprache_MouseOver();">English

    temp.header.25 = HTML
    temp.header.25.value = <div id="pm_sprache" onMouseOut="sprache_MouseOut();"><img hspace="0" vspace="0" src="fileadmin/img/bg/bg_sprache_over.gif" width="103" height="22" border="0" /><br /><div id="pm_sprache_menu">
              
    #### je Sprache ####
    temp.header.27 = HTML
    temp.header.27.value = <div class="pm_sprache_menu_zeile"> <a href="/en/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">English</a> </div>
    
    temp.header.28 = HTML
    temp.header.28.value = <div class="pm_sprache_menu_zeile"> <a href="/de/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Deutsch</a> </div>
    
    temp.header.29 = HTML
    temp.header.29.value = <div class="pm_sprache_menu_zeile"> <a href="/fi/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Suomi</a> </div>

    temp.header.30 = HTML
    temp.header.30.value = <div class="pm_sprache_menu_zeile"> <a href="/se/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Svenska</a> </div>

    temp.header.31 = HTML
    temp.header.31.value = <div class="pm_sprache_menu_zeile"> <a href="/no/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Norsk</a> </div>           

    ### von mir ergäntzt, für die neue Sprache
    temp.header.32 = HTML
    temp.header.32.value = <div class="pm_sprache_menu_zeile"> <a href="/nl/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Nederlands</a> </div>
[global]
:
:
### Conditon von mir hinzugefügt - funktioniert nicht ###
[globalVar = GP:L = 7]
    temp.header.21 = HTML
    temp.header.21.value = <div id="pulldown_sprache" onMouseOver="sprache_MouseOver();">Nederlands

    temp.header.25 = HTML
    temp.header.25.value = <div id="pm_sprache" onMouseOut="sprache_MouseOut();"><img hspace="0" vspace="0" src="fileadmin/img/bg/bg_sprache_over.gif" width="103" height="22" border="0" /><br /><div id="pm_sprache_menu">
              
    #### je Sprache ####
    temp.header.27 = HTML
    temp.header.27.value = <div class="pm_sprache_menu_zeile"> <a href="/nl/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Nederlands</a> </div>
    
    temp.header.28 = HTML
    temp.header.28.value = <div class="pm_sprache_menu_zeile"> <a href="/de/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Deutsch</a> </div>

    temp.header.29 = HTML
    temp.header.29.value = <div class="pm_sprache_menu_zeile"> <a href="/en/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">English</a> </div>
    
    temp.header.30 = HTML
    temp.header.30.value = <div class="pm_sprache_menu_zeile"> <a href="/fi/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Suomi</a> </div>

    temp.header.31 = HTML
    temp.header.31.value = <div class="pm_sprache_menu_zeile"> <a href="/se/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Svenska</a> </div>

    temp.header.32 = HTML
    temp.header.32.value = <div class="pm_sprache_menu_zeile"> <a href="/no/home.html" target="_self" onfocus="blurLink(this);" class="pm_a">Norsk</a> </div>           
[global]

Für alle bisherigen Sprachen funktioniert die Sprachumschaltung.
Wird also eine andere Sprache im Auswahlfeld ausgewählt (nicht die von mir hinzugefügte), so ändert sich auch entsprechend die URL.
Bsp. von Deutsch nach Englisch:
http://www.firma.com/de/home.html --> http://www.firma.com/en/home.html
Wird die von mir hinzugefügte Sprache ausgewählt, so passiert nichts bzw. es wird auf die Default-Sprache (Deutsch) umgeschaltet.
Als URL erscheint dann: http://www.firma.com/

Vielleicht noch zur Info:
Das Sprachen-Auswahlfeld befindet sich im statischen Header, oberhalb der horizontalen Menüleiste. Die Seiteninhalte erscheinen unterhalb dieser Menüleiste.

Kann mir da jemand helfen bzw. einen Tipp geben, ich wäre echt dankbar.

Gruß
Keegan

Julian.​Hofmann ·

Hallo Keegan.

Von Deiner (guten und ausführlichen) Problembeschreibung her tippe ich drauf, dass zwar TYPO3 ansich auch in niederländisch funktionieren würde (Hat Du mal via URL-Parameter getestet? www.example.com/index.php?id=1&L=7).

Euer Sprachmenü baut auf festgelegten, lesbaren (real)URLs auf. Aber hast Du auch dran gedacht, der Extension realURL zu sagen, was "nl" in der URL heißt bzw. was die Extension damit tun soll?
Direkt im Ordner /typo3conf/ sollte hierzu eine realurl-Konfigurationsdatei liegen, die in einem großen PHP-Array das Mapping von URL-Teilen auf TYPO3-Parameter festlegt. Schau dort einfach mal rein,w ie das schon für die anderen Sprachen definiert ist.

Viele Grüße
Julian

Keegan ·

Hallo Julian,

das war genau die Ursache.
Vielen Dank.

Noch eine Frage:
Ich habe mich über ssh auf den Server unseres Typo3-Hosters verbunden, mich zum Ordner /typo3conf/ durchgehangelt und dort anschließend die entsprechende Datei modifiziert. Als Shell-Editor wählte ich Emacs (musste mich erst noch mit ihm etwas vertraut machen).

Geht das auch einfacher ?
Im Install-Tool gibt es z. B. den Punkt 'Edit files in typo3conf'. Sollte man derartige Änderungen vielleicht besser hierüber vornehmen ?

Vielen Dank nochmal.

Gruß
Matthias

Julian.​Hofmann ·
Keegan schrieb

Geht das auch einfacher ?

Kommt drauf an, was für Dich "einfach" ist. Unser Sysadmin fühlt sich pudelwohl in monochromen Editoren, andere mögen die webbasierten Möglichkeiten von TYPO3, andere wie ich bevorzugen den clientseitigen Editor mittels FTP- oder SVN-Integration (womit man auch Syntaxhighlighting usw. hat).

Keegan ·

Danke für die prompte Antwort und den Infos.
Ich denke ich werde dann jetzt ein bisschen Testen.

Gruß
Matthias