Zum Inhalt springen

Alternativsprache springt wieder auf Defaultsprache

Erstellt am 6. August 2004 · 28 Antworten · letzte Antwort am 9. Februar 2006 · Seite 1 von 2

Tags: Frage

lyso ·

Hallo,
habe ein kleines Problem mit meiner mehrsprachigen Webseite. Wenn ich mich auf einer englischsprachigen Seite (alternativ) befinde und einen Menüpunkt anklicke (ist auch in Englisch verfügbar) lädt das Typo nicht die englische Seite, sondern die deutsche Seite. Habe hier mal mein Setup -Code:

config.linksVars = L
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = en
config.locale_all = english
[global]

page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/Template/main.css
page.config {
  admPanel = 1
  spamProtectEmailAddresses = 2
  spamProtectEmailAddresses_atSubst = (at)
  }

page.20 = PHP_SCRIPT
page.20.file = fileadmin/Template/sprachmenu.php

page.10 = TEMPLATE
page.10 {
  template = FILE
  template.file = fileadmin/Template/index.html
  }

includeLibs.pagetitle = typo3conf/ext/mf_pagetitle/pagetitle.php
plugin.mf_pagetitle.title = Meine Homepage - {page:title}
config.titleTagFunction = user_pagetitle_class->changetitle

page.10.workOnSubpart = DOCUMENT_BODY

page.10.subparts.CONTENT < styles.content.get

page.10.subparts{
  DATUM < styles.content.lastUpdate
  DATUM = TEXT
  DATUM {
    if.isTrue.data = page:lastUpdated
    date = d.m.Y
    wrap = Ge&auml;ndert am:&nbsp;| 
    data = register : SYS_LASTCHANGED
    if >
    }
  }
[globalVar = GP:L = 2]
page.10.subparts.DATUM.date = F j, Y
page.10.subparts.DATUM.wrap = Last change:&nbsp;| 
[global]
 
page.10.subparts {
  IMPRESSUM = TEXT
  IMPRESSUM.value = <a href="/fg_nt/index.php?id=20" tabindex="401">Impressum</a>
  }
[globalVar = GP:L = 2]
page.10.subparts.IMPRESSUM.value =<a href="/fg_nt/index.php?id=20&L=2" tabindex="401">Imprint</a>
[global]
  
page.10.subparts {
  MENU = HMENU
  MENU.excludeUidList = 20
  MENU.1 = TMENU
  MENU.1.NO.allWrap = <li>|</li>
  MENU.2 = TMENU
  MENU.2 {
    expAll = 0
    NO.allWrap = <li><ul><li>|</li></ul></li>
    }
  }
  
page.10.subparts {  
  ROOTLINE = COA
  ROOTLINE {
    1 = HMENU
    1 {
      special = rootline
      special.range = 0|-1
      1 = TMENU
      1.wrap =  |
      1.noBlur = 1
      1.CUR = 1
      1.NO {
        linkWrap = | >&nbsp;
        ATagParams =
        }
      1.CUR < 1.NO
      1.CUR {
        doNotLinkIt = 1
        linkWrap = <span id="location">|</span>
        }
      }
    }
  }

Die PHP-Datei zur Sprachwahl ist richtig angepasst. Habe dort im Grunde nur die Sprach-IDs und die Beschriftungen verändert, sonst nichts.

Danke schon mal für eure Hilfe.

Viele Grüße,
Marc

Dander ·

Tag hab ich was überlesen oder hast du nichts zu den sprachen im setup drinnen?

# SprachVariable L initialisieren
config.linkVars = L

# Standardsprache UID 0 -> Deutsch
config.sys_language_uid = 0
config.language = de
config.locale_all = Deutsch

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

# francais, sys_language.uid = 4
[globalVar = GP:L = 4]
config.sys_language_uid = 4
config.language = fr
config.locale_all = francais
[global]

#russich, sys_language.uid = 7
[globalVar = GP:L = 7]
config.sys_language_uid = 7
config.language = ru
config.locale_all = russian
[global]

# chinese, sys_language.uid = 5
[globalVar = GP:L = 5]
config.sys_language_uid = 5
config.language = ch
config.locale_all = chinese
[global]

so was da in der art

MFG

Dander

doku ·

@dander:
fang beim durchlesen doch einfach mal mit der zeile 1 an.
nur so als kleiner tipp... 😉

@lyso:

lyso schrieb

Die PHP-Datei zur Sprachwahl ist richtig angepasst. Habe dort im Grunde nur die Sprach-IDs und die Beschriftungen verändert, sonst nichts.

jaja, das sagen sie alle... 😉
der fehler liegt mit sicherheit trotzdem dort, wetten?
der sprachparameter wird betsimmt einfach nicht übergeben, und das ist dort hardcodiert.

doku ·
Dander schrieb

hä???
und jetzt??
wofür ist der link??

bist heute aber echt gut drauf! 🙂

[edit]
aber die sprachconfig-zeilen aus dem obigen code von lyso jetzt hierhinzukopieren ist mir echt zu anstrengend... 😉
[/edit]

doku ·

sorry, hatte mein posting editiert, während du drauf geantwortet hattest.
das was ich gelöscht hatte, hab ich wieder reingeschrieben.

du vermißt also die sprachkonfiguration und ich hatte dir den tip gegeben den code von lyso ab zeile 1 durchzulesen, mehr kann ich jetzt echt nich mer dazu sagen...

es is halt einfach lustig, und schon gar kein drama! 😉

Dander ·

Also entweder ich bin total blind oder was weis ich
zum thema sprache sehe ich nur

page.20 = PHP_SCRIPT 
page.20.file = fileadmin/Template/sprachmenu.php

Die erste zeile:
page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/Template/main.css
...

MFG

Dander

Dander ·

autsch
dohhhhhhhhhhh
:o

ein anzeige fehler von mozilla #evil#

und dafür so eine diskussion.....

MFG

Dander

doku ·
Dander schrieb

autsch
dohhhhhhhhhhh
:o

ein anzeige fehler von mozilla #evil#

jaja... hab schon bessere ausreden gehört... 🙂

Dander schrieb

...und dafür so eine diskussion.....

weiß gar nicht, was du hast?
mir hat´s jedenfalls tierischen spaß gemacht... 😃 😃 😃

Dander ·

ein anzeige fehler von mozilla

war das beste was mir in der kurzen zeit eingefallen ist :p
und nebenbei auch noch die wahrheit 😃

lyso ·

Hallo,
habe hier noch meine PHP-Datei eingefügt. Habe auch schon die ursprüngliche Datei ausprobiert (natürlich mit angepssten IDs) -> gleiches Verhalten der Seite.

// Für die aktuelle Seite werden alle all pages_language_overlay records geholt. Jeder Record entspricht einer Sprache
$query = "SELECT * FROM pages_language_overlay WHERE pid=".$GLOBALS["TSFE"]->id.$GLOBALS["TSFE"]->sys_page->enableFields("pages_language_overlay")." GROUP BY sys_language_uid";

$res = mysql(TYPO3_db,$query);
$langArr=array();
while($row=mysql_fetch_assoc($res)) {
     $langArr[$row["sys_language_uid"]]=$row["title"];
}


$flags = array();
if ($GLOBALS["TSFE"]->sys_language_uid==2) {
    // Deutsch ist aktiv - Englisch anzeigen
    $flags[] = '<span id="s-dex"><a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=0" target=_top>deutsch</a></span>';
    $flags[] = '<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=0" target=_top><img src="fileadmin/Template/images/s-de.png" alt="" id="s-en" title=""></a>';
} elseif ($GLOBALS["TSFE"]->sys_language_uid==0) {
    // Englisch ist aktiv - Deutsch anzeigen
    $flags[] = '<span id="s-enx"><a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=2" target=_top>english</a></span>';
    $flags[] = '<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=2" target=_top><img src="fileadmin/Template/images/s-en.png" alt="" id="s-de" title=""></a>';
}

// Macht die Ausgabe. Das Menü transferitert die page-id und die "L" variable zur Sprachsteuerung
$content = implode("",$flags);
doku ·

tja, 1:0 für dich, da hab ich meine wette wohl verloren... 😢
da muß ich jetzt nochmal überlegen...

p.s.:
cache gelöscht ? (altes hausmittel)
englische seiteninhalte nicht versteckt? (aber dann würdest du die menüpunkte wahrscheinlich erst gar nicht sehen...)
schmeiß doch testweise mal alles, was mit page.10 zu tun hat in die sprachconditions, also nicht nur impressum etc.

tomww ·

Ich bin zwar trotz Brille manchmal etwas blind - aber in meinem Code muss ich expliziet einschränken welchen content ich sehen will:

   subparts.contentarea = CONTENT
   subparts.contentarea {
     table = tt_content
     select.orderBy = sorting
     select.where = colPos=0
     select.languageField = sys_language_uid
   }

So was fehlt doch da oben - oder nicht ?

Tom

Dander ·

Ich hab einen schreibfehler entdeckt

config.linksVars = L

müsste doch

config.linkVars = L

heißen

oder nicht
???

doku ·

gratuliere zur lösung! nachdem du es erst gar nicht gesehen hast, haste jetzt wohl umso besser hingeguckt... 😉

xela04 ·

Kann mir das jemand noch näher erklären? Mir ist es nach der obigen Diskussion noch nicht klar.

Ich habe nämlich auch das Problem, dass die Zweitsprache immer wieder auf default <b>zurückspringt.</b> Abgesehen davon funktioniert es eigentlich ganz gut.

Mein Setup:

# table = tt_content
   select.orderBy = sorting
   select.where = colPos=0
   select.languageField = sys_language_uid
page.10 {  
   marks.SPRACHE = PHP_SCRIPT
   marks.SPRACHE {
      file = fileadmin/template1/my_languageMenu.php
   }
# Variablen für Sprachmodul 
config.linkVars = L 

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

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