2016-11-03 1 views
0

Ich habe eine mehrsprachige TYPO3-Website mit den folgenden Sprachen erstellt:TYPO3: Wie kann ich auf die übersetzte Seite einer nicht übersetzten Seite umleiten?

  1. Deutsch (Standard)
  2. Englisch
  3. spanisch

Es sind keine Übersetzungen für alle Seiten. Zum Beispiel habe ich zehn Seiten in Deutsch und zehn übersetzte Seiten in Englisch, aber nur vier übersetzte Seiten in Spanisch, aber der Sprachumschalter ist auf allen Seiten verfügbar. Also, wenn jemand auf eine der sechs Seiten bewegt, die in Spanisch nicht zur Verfügung stehen und versuchen, die Sprachumschalter verwenden wird er die folgende Fehlermeldung erhalten:

Page Not Found 
Reason: Page is not available in the requested language (strict). 

Das ist nicht wirklich schön und ich denke, eine bessere Lösung ist, den Benutzer auf die spanische Homepage umzuleiten, wenn es keine spanische Übersetzung einer bestimmten Seite gibt, aber wie kann ich so etwas tun?

Meine aktuelle Sprache Config sieht wie folgt aus:

config { 
    ... 
    sys_language_uid = 0 
    language = de 
    htmlTag_langKey = de-DE 
    locale_all = de_DE 
    sys_language_mode = strict 
} 

[globalVar = GP:L = 1] 
config { 
    sys_language_uid = 1 
    language = en 
    htmlTag_langKey = en 
    locale_all = en_GB 
    linkVars = L(1) 
} 
[global] 

[globalVar = GP:L = 2] 
config { 
    sys_language_uid = 2 
    language = es 
    htmlTag_langKey = es 
    locale_all = es 
    linkVars = L(2) 
} 
[global] 

Und meine Sprachumschalter sieht wie folgt aus:

obj.languageSwitcher = HMENU 
obj.languageSwitcher { 

    special = language 
    special.value = 0,1,2 
    special.normalWhenNoLanguage = 0 

    1 = TMENU 
    1 { 
     NO = 1 
     NO { 
      doNotLinkIt = 1 
      stdWrap { 
       override = DE || EN || ES 
       typolink { 
        parameter.data = page:uid 
        additionalParams = &L=0 || &L=1 || &L=2 
       } 
       outerWrap = <li>|</li> 
      } 
     } 

     ACT < .NO 
     ACT { 
      stdWrap.typolink > 
      stdWrap.outerWrap = <li class="active">|</li> 
     } 

     USERDEF1 < .NO 
     USERDEF1 { 
      stdWrap.typolink > 
     } 
    } 
} 

Wie Sie sehen, ich habe derzeit eine USERDEF1 definiert, die sich von den Link entfernt meine Sprachumschaltung, wenn es keine spanische Version der aktuellen Seite gibt, aber ich möchte den Benutzer immer noch auf die Homepage der spanischen Version umleiten. Hast du irgendwelche Vorschläge?

Antwort

1

stattdessen den Link zu entfernen Sie das Ziel ändern sollte:

USERDEF1 < .NO 
USERDEF1.stdWrap.typolink { 
    parameter.data > 
    parameter = 123   <- use your homepage id 
} 
+0

wirkt wie ein Zauber, thx. – Fox

Verwandte Themen