Zum Inhalt springen

Großes Problem mit Mehrsprachigkeit in TemplaVoila

Erstellt am 10. Dezember 2008 · 12 Antworten · letzte Antwort am 8. Juli 2009

Tags: Templates & Layouts, Frage

miajam ·

Hallo zusammen,

ich verzweifle seit mehreren Tagen an dem Problem, mit TemplaVoila die Mehrsprachigkeit meiner Seite hinzubekommen.

Viele Beiträge und "HowTos" habe ich dazu schon gelesen und angewendet, aber das Ergebnis bleibt immer gleich:
Im Frontend ändert sich NICHTS.
Ich sehe immer nur die Default-Sprache, sowohl im Menü als auch im Content.

Hier meine Arbeitsschritte und Einstellungen:

Ich arbeite mit Typo3 4.2.1 und TemplaVoila 1.3.6

1. Sprache und Seiten-Übersetzungen (Engl) sind angelegt und aktiviert

2. Folgende Extensions sind installiert.
* static_info_tables
* static_info_tables_uksorting
* sr_static_info
* ts_language_de

2. TSConfig Rootpage:
mod.SHARED {
defaultLanguageLabel = Deutsch
defaultLanguageFlag = de.gif
}
mod.web_layout.defLangBinding = 1

3. TypoScript Rootpage:

##LOCALIZATION

# defining the default language
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
#config.htmlTag_langKey = de

# Setting up the language variable "L" to be passed along with links
config.linkVars = L(0-1)

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

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

config.sys_language_overlay = hideNonTranslated
config.sys_language_mode = strict

4. XML Page-Template erste Zeilen:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<t3datastructure>
  <meta type="array" />
        <langchildren type="integer">1</langchildren>
        <langdisable type="integer">0</langdisable>
    </meta> 
	<root type="array">
...

5. Das XML des FCE sieht genauso aus.

Ich habe Punkt 4 und 5 in allen möglichen Variationen ausprobiert, v.a. Language Disabled, aber das Ergebnis war das gleiche: KEINS.

Weder Menü noch Inhalte werden übersetzt angezeigt, obwohl die Variable &L=1 in der url angehängt wird.

Im Backend kann ich innerhalb meiner Content Elemente Übersetzungen anlegen.
Ich frage mich jetzt, nachdem ich schon alles Mögliche ausprobiert habe, ob es vielleicht an meiner TV-Datenstruktur liegen kann?

Ich habe wirklich keine Ahnung mehr und komme selber keinen Schritt weiter –
deswegen hoffe ich inständig auf Eure professionelle Hilfe!!

Herzlichen Dank schon mal im Voraus,
mia

daimos ·

Habe derzeit exakt das gleiche Problem.
Hat wer eine Lösung?
Meine Installation:
TYPO3 4.2.6
TemplaVoila 1.3.7

Meine config:

config {
       metaCharset = utf-8
       doctype = xhtml_trans
       xmlprologue = xml_11
       xhtml_cleaning = all
       index_enable = 1
       index_externals = 1
       language = de
       locale_all = de_DE
       htmlTag_langKey = de
       # SprachVariable L initialisieren
       linkVars = type, L
       # Standardsprache UID 0 ---> Deutsch
       sys_language_uid = 0
       sys_language_mode = content_fallback 
       sys_language_overlay = 1
  
// Inline-CSS-Anweisungen des TYPO3-Kerns in externe Datei auslagern
inlineStyle2TempFile = 1
  
// Standard-Javascript in externe Datei auslagern
removeDefaultJS = external
}

# Englisch, sys_language.uid = 1
       [globalVar = GP:L = 1]
       config {
               language = en
               locale_all = en_EN
               htmlTag_langKey = en
               sys_language_uid = 1
               }
       [global]



[browser = msie]
config.doctypeSwitch = 1
[else]
config.doctypeSwitch = 0
[end]

Ausschnitt meiner Datenstruktur:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
		<langChildren>1</langChildren>
	</meta>

SPrache ist angelegt, hat auch id 1, sowie habe ich eine Seite zweisprachig angelegt. Funzt im Backend alles einwandfrei, ohne Fehlemeldung, hänge ich aber an die Domain dieses hier:

&L=1

wird nur die Standardsprache (Deutsch) angezeigt.
Wo muss ich noch schauen?

Danke

miajam ·

Hast du inzwischen eine Lösung gefunden?

Ich habe das Projekt auf Eis gelegt und immernoch nicht gelöst.

daimos ·

So, das ganze schaut jetzt bei mir so aus:

config {
       metaCharset = utf-8
       doctype = xhtml_trans
       xmlprologue = xml_11
       xhtml_cleaning = all
       index_enable = 1
       index_externals = 1
       language = de
       locale_all = de-DE
       htmlTag_langKey = de_DE
       # SprachVariable L initialisieren
       uniqueLinkVars = 1
       linkVars = L(0|1|)
       # Standardsprache UID 0 ---> Deutsch
       sys_language_uid = 0
       sys_language_mode = content_fallback ; 0,1
       sys_language_overlay = 1
  
// Inline-CSS-Anweisungen des TYPO3-Kerns in externe Datei auslagern
inlineStyle2TempFile = 1
  
// Standard-Javascript in externe Datei auslagern
removeDefaultJS = external
}

[globalVar = GP:L = 0]
config {
    sys_language_uid = 0
    language = de
    locale_all = de_DE
    htmlTag_langKey = de_DE


# Englisch, sys_language.uid = 1
       [globalVar = GP:L = 1]
       config {
               language = en
               locale_all = en_UK
               htmlTag_langKey = en-UK
               sys_language_uid = 1
               }
       [global]


// Reihenfolge von Doctype und XML-Prolog beim Internet Explorer tauschen (wegen Bug)
[browser = msie]
config.doctypeSwitch = 1
[else]
config.doctypeSwitch = 0
[end]

Mit dem Ergebnis, das es weiterhin nicht funktioniert.
D.h., die deutschen und englischen Flaggen sind aktiv, egal welche man anklickt, Text bleibt auf Deutsch.
Gehe ich auf eine Seite, die nicht übersetzt wurde, so ist die englische Flagge inaktiv. Das ist ja korrekt.
Die Links werden meiner Meinung nach auch korrekt gessetzt.
Für Deutsch so

index.php?id=5

und Englisch so:

index.php?id=5&L=1

Unter Web->Info werden die Übersetzten Seiten auch grün, also als Übersetzt angezeigt.

Was hab ich vergessen oder falsch gemacht?

Danke

daimos ·

Wer kann denn mal hier helfend zur Hand gehen.
Arbeite nun schon seit Tagen daran, ohne Erfolg:
Das ganze funktioniert einfach nicht.
Nutze T3 4.2.6
TemplaVoila 1.3.7
static_info_tables 2.1.0
sr_language_menu 1.5.1

Status derzeit:
Standard-Sprache Deutsch
Zweite Sprache Englisch uid 1
Dritte Sprache Französisch uid 2
Beide im Wurzelverzeichnis angeldgt als Website Sprache angelegt.

Der TS-Code dazu schaut nun so aus:

config {
       metaCharset = utf-8
       doctype = xhtml_trans
       xmlprologue = xml_11
       xhtml_cleaning = all
       index_enable = 1
       index_externals = 1
       language = de
       locale_all = de_DE
       htmlTag_langKey = de
       # SprachVariable L initialisieren
       uniqueLinkVars = 1
       linkVars = L(0|1|2|3)
       # Standardsprache UID 0 ---> Deutsch
       sys_language_uid = 0
       sys_language_mode = content_fallback ; 0,1,2,3
       sys_language_overlay = 1

  
// Inline-CSS-Anweisungen des TYPO3-Kerns in externe Datei auslagern
inlineStyle2TempFile = 1
  
// Standard-Javascript in externe Datei auslagern
removeDefaultJS = external
}



# Englisch, sys_language.uid = 1
       [globalVar = GP:L = 1]
       config {
               sys_language_uid = 1
               language = en_EN
               htmlTag_langKey = en
               }
       [global]


# French, sys_language.uid = 2
[globalVar = GP:L = 2]
  config.sys_language_uid = 2
  config.language = fr_FR
  config.htmlTag_langKey = fr
[global]

In den Seiteneigenschaften der Rootpage habe ich dieses hier im TS-Feld:

#Spracheinstellungen
mod.SHARED {
          defaultLanguageFlag=de.gif
          defaultLanguageLabel=Deutsch
      }
      
mod.web_layout.defLangBinding = 1

Die jeweilige URL zur richtigen Sprache schaut so aus:

domain.de/index.php?id=5&L=0  für Deutsch
domain.de/index.php?id=5&L=1 für Englisch
domain.de/index.php?id=5&L=2 für Französisch

Die Flaggen sind aktiv bzw. inaktive, abhängig ob eine Übersetzung vorhanden ist oder nicht.
Soweit ist alles korrekt.
Nur, egal welche Sprache ich auswähle, es wird nach wie vor immer nur die Standardsprache angezeigt im Frontend.

In der Datenstruktur meines Templates steht dieses hier (Auszug):

	<meta type="array">
        <langDisable>1</langDisable>
        <langChildren>0</langChildren>
    </meta>

In den FCE's dieses:

<meta type="array">
		<langChildren type="integer">1</langChildren>
		<langDisable type="integer">1</langDisable>
	</meta>

In den Content Elementen dieses hier:

<meta type="array">
		<langDisable type="integer">0</langDisable>
          <langChildren type="integer">1</langChildren>
	</meta>

Übersetzungen lassen sich anlegen und werden unter Web-> Info auch als Übersetzt angezeigt.
Und nun meine fast schon verzweifelte Frage:
Wie bekommt man das denn nun hin, das die Übersetzungen im FE angezeigt werden?

miajam ·

Nun krame ich seit einiger Zeit mal wieder dieses leidige Projekt aus...
und bin immernoch nicht weiter.

Kiepe, könntest du mitteilen, um welche Kleinigkeit es sich gehandelt hat?

Vielen Dank und Grüße

Kiepe ·

Ich poste die Einstellungen mal lieber.
im config

  // Spracheinstellungen
  linkVars = L (0-3)
  uniqueLinkVars = L
  sys_language_mode = default | content_fallback | strict
  sys_language_overlay = 0 | 1 | hideNonTranslated
  sys_language_mode = [<leer>|strict|content_fallback|ignore]
  sys_language_overlay = [0|1|hideNonTranslated]
  sys_language_softMergeIfNotBlank = table:column, table:column2
  
  //Standardsprache deutsch
  // Je nach Serverumgebung funktionieren verschiedene Werte:
  // de_DE, de_DE.utf8, de_DE@euro
  sys_language_uid = 0
  language = de
  htmlTag_langKey = de-DE
  locale_all = de_DE@euro    

  dateFormat = %A %e. %B %Y
  timeFormat = Uhr %H:%M Sek %S
  
  // RealURL aktivieren
  baseURL = http://xxxx.de/
  // RealURL einbinden
  tx_realurl_enable = 1
  prefixLocalAnchors = all

unter Bedingungen

//Angaben für deutsche Sprache
[globalVar = GP:L = 0]
  config {
  sys_language_uid = 0
  language = de
  htmlTag_langKey = de-DE
  locale_all = de_DE@euro
  metaCharset = iso-8859-1
  }
  [global]

//Angaben für spanische Sprache
[globalVar = GP:L = 1]
  config {
  sys_language_uid = 1
  language = es
  locale_all = es_ES
  metaCharset = iso-8859-1
  }
  [global]

//Angaben für englische Sprache
[globalVar = GP:L = 2]
  config {
  sys_language_uid = 2
  language = en
  locale_all = en_GB
  metaCharset = iso-8859-1
  }
  [global]

//Angaben für französische Sprache
[globalVar = GP:L = 3]
  config {
  sys_language_uid = 3
  language = fr
  htmlTag_langKey = fr
  locale_all = fr_FR
  metaCharset = iso-8859-1
  }
  [global]

in urltoolconf_realurl.php

        'preVars' => array (
            '0' => array (
                'GETvar' => 'no_cache',
                'valueMap' => array (
                    'nc' => '1',
                ),
                'noMatch' => 'bypass'
            ),
            '1' => array (
                'GETvar' => 'L',
                'valueMap' => array (
                    'de' => '0',
                    'es' => '1',
                    'en' => '2',
                    'fr' => '3',
                ),
               # 'noMatch' => 'bypass',
            ),
            '2' => array (
                'GETvar' => 'lang',
                'valueMap' => array (
                    'de' => 'de',
                    'es' => 'es',
                    'en' => 'en',
                    'fr' => 'fr'
                ),
               # 'noMatch' => 'bypass',
            ),
        ),

grafisches Menü

//Sprachumschalter
lib.langmenu = HMENU 
lib.langmenu {
  special = language
      special.value = 0,1,2,3
      special.normalWhenNoLanguage = 0
         1 = GMENU   
          1 {       
          NO = 1       
          NO { 
          allWrap = &nbsp;|          
          XY = 24, 16          
          backColor = white          
          5 = IMAGE          
          5.file = fileadmin/templates/flags/de.gif  || fileadmin/templates/flags/es.gif  || fileadmin/templates/flags/gb.gif || fileadmin/templates/flags/fr.gif       
          5.offset = 2,2
          }       
          ACT < .NO       
          ACT = 1       
          ACT {          

          backColor = green       
          }       
          USERDEF1 <.NO       
          USERDEF1 = 1       
          USERDEF1 {          
          file = fileadmin/templates/flags/de_d.gif  || fileadmin/templates/flags/es_d.gif  || fileadmin/templates/flags/gb_d.gif || fileadmin/templates/flags/fr_d.gif          
          noLink = 0        
          } 
          USERDEF2 <.USERDEF1
          USERDEF2 = 2
          USERDEF2 {
          backColor = green
          }   
          } 
          }

in der Root-page/TSconfig

      mod.SHARED {
              defaultLanguageFlag = de.gif
              defaultLanguageLabel = Deutsch
      }

in der Datenstruktur von Templavoila

<T3DataStructure>
<meta type="array">
	<langChildren type="integer">1</langChildren>
	<langDisable type="integer">0</langDisable>
</meta>

Ich hoffe nichts vergessen zu haben.