Zum Inhalt springen

3 Sprachen, aber nur 2 funktionieren

Erstellt am 31. März 2007 · 11 Antworten · letzte Antwort am 20. August 2007

Tags: Frage

steffenk ·

kann es sein, das Du Übersetzungen angelegt hast und danach die Konfiguration verändert hast ? Dann ist Chaos vorprogrammiert.

lemon ·

Sorry, stimmt natürlich, ein bisschen Code muss sein.

Also, zur Übersicht:
- ich habe unter Typo3 3.8 eine mehrsprachige Seite angelegt
- deutsch: uid 0
- italienisch: uid 1
- englisch: uid 3

Kürzlich habe ich dann die Seite auf Typo3 4.0.3 geupdatet, die Probleme sind allerdings erst vor zwei Tagen aufgetreten, und das Update liegt schon ein paar Wochen zurück.

Im TS- Template steht folgendes:

  config.linkVars = L
  config.sys_language_uid = 0
  config.language = de
  config.locale_all = de_DE

[globalVar = GP:L=1]
  config.sys_language_uid = 1
  config.language = it
[global]

[globalVar = GP:L=3]
  config.sys_language_uid = 3
  config.language = en
[global]

Mit diesem Setup hab ich das Problem, dass beim Aufrufen der Seite mit dem Parameter L=1 die deutsche Seite angezeigt wird, während bei L=3 richtigerweise die englische Version erscheint.

Nun bin ich nach Anlegen einer neuen Sprache (uid 5) zufällig auf diese "Lösung" gekommen:

[globalVar = GP:L=1]
  config.sys_language_uid = 1
  config.language = it
[global]

[globalVar = GP:L=5]
  config.sys_language_uid = 1
  config.language = it
[global]

Nun wird, obwohl ich für die Sprache 5 keinerlei Inhalte angelegt habe, beim Aufruf mit L=5 die richtige, italienische Seite angezeigt.
Achtung: wenn ich die Einträge für "GP:L=1" auskommentiere, klappt das Ganze wieder nicht, d.h. ich bekomme bei L=5 wieder die deutsche Seite.

Chaos, Chaos, Chaos...

Muss ich alles nochmal neu machen?

Viele Grüße

Lemon

just2b ·

Hallo,

ich hatte irgendwann mal was ähnliches, mach doch mal in phpmyadmin ein

repair table pages;
repair table tt_content;

georg

steffenk ·

ich bleibe dabei, das es an den Übersetungen liegt.

Schau Dir mal die Tabelle pages_language_overlay genau an, welche id's dort vermerkt sind, insbesonders

SELECT title, sys_language_uid FROM `pages_language_overlay` order by sys_language_uid
lemon ·

@just2b:
Hi Georg, das hat leider nichts verändert.

@steffenk:
Bei allen Datensätzen steht "1" als uid, also vollkommen richtig.

Ich weise nochmal auf die "Unlogik" in dieser Konfiguration hin:

[globalVar = GP:L=1]
  config.sys_language_uid = 1
  config.language = it
[global]

[globalVar = GP:L=5]
  config.sys_language_uid = 1
  config.language = it
[global]

Ich meine, wo ist da der Sinn? Es klappt nur, wenn ich L=5 angebe. Klammere ich aber die L=1-Angaben aus, dann klappt auch L=5 nicht mehr.

Viele Grüße

Lemon

steffenk ·

wenn überall 1 steht, ist das auch der korrekte Wert. Bearbeite Deine sys_language + Tabelle und vergeb für it auch die uid 1

lemon ·

Hi Leute,

hab jetzt die Lösung gefunden. Das hier fehlte in den Conditions:

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

Ich hatte nicht gewusst, dass man auch die Standardsprache zuweisen muss, und bis vor ein paar Tagen hat's ja auch geklappt.

Na ja, Ende gut, alles gut :-D

Viele Grüße

Lemon

hamburg ·

Hallo zusammen.

Diese Beschreibung passte exakt auf mein Problem. Ich habe drei Sprachen auf der Webseite: Deutsch, Englisch, Dänisch.

Deutsch und Englisch gingen, Dänisch nicht. Nachdem ich die o.a. Lösung umgesetzt habe funcktioniert nun Dänisch ... dafür kommt bei Deutsch und Englisch eine leere Seite :-(

Den ganzen Tag habe ich nun mit dem Suchen einer Lösung verbracht - ohne Erfolg.

Hat einer von Euch eine Idee oder vielleicht sogar eine Lösung ?

Gruß,
Malte

key cee ·

Hallo,

ich habe bis jetzt keine wirklichen Probleme mit der Mehrsprachigkeit gehabt.
Habe heute zwei neue Sprachen(französisch&italienisch)
aufgenommen und das wollte erst nicht klappen.

Aber nachdem ich die uid in der Datenbank

Tabelle: sys_language
uid  |  pid  |    tstamp    | hidden |  title   |  flag   |  static_lang_isocode
  2  |   0   |  1161065968  |    0   | Englisch | gb.gif  |  0
  4  |   0   |  1187264742  |    0   | Italian  | it.gif  |  0
  5  |   0   |  1187264771  |    0   | French   | fr.gif  |  0

mit der uid aus dem TypoScript-Fetzen verglichen und angeglichen hatte,
hat es funktioniert:

config.linkVars = L
config.sys_language_uid = 1
config.language = de

[globalVar = GP:L=2]
        config.sys_language_uid = 2
        config.language = en
[global]

[globalVar = GP:L=3]
        config.sys_language_uid = 5
        config.language = fr
[global]

[globalVar = GP:L=4]
        config.sys_language_uid = 4
        config.language = it
[global]

Nun sieht man unter:
.../index.php?id=1
.../index.php?id=1&L=0
.../index.php?id=1&L=1
die deutschen Seiten

unter:
.../index.php?id=1&L=2
die englischen Seiten

unter:
.../index.php?id=1&L=3
die französischen Seiten

und unter:
.../index.php?id=1&L=4
sieht man die italienischen Seiten

also könnte es sein, dass die uid nicht genau übereinstimmen.

lg
key cee