Zum Inhalt springen

Alles ausprobiert, nichts geht...

Erstellt am 21. Juli 2003 · 4 Antworten · letzte Antwort am 22. Juli 2003

Tags: Frage

Lore ·

Hallo,

ich bin ein typo3-Newbie. Bin auch alle Beiträge zur Mehrsprachigkeit durchgegangen. Nur funktioniert die zweite Sprache (hier: English) nicht. o.O

Ich habe Typo3 mit dem Dummy-Package installiert und alle Einstellungen unter ../typo3/install/ durchgeführt. Dann habe ich mein Template unter fileadmin/.. kopiert und eine Root-Seite angelegt. Ein alternative Sprache "English" gibt es auch dazu. "CSS Styled Content" ist auch vorhanden.

Mein Template für die Seite:

# Default PAGE object:
page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/template/css/style.css

page.10 = TEMPLATE
page.10 {
  # Read the template file:
  template = FILE
  template.file = fileadmin/template/normal/index.tmpl
  #template.file = fileadmin/template/test.tmpl
  workOnSubpart = DOCUMENT_BODY

  ################################################## LANGUAGE
  #Standard-Definition:
  config.linkVars = L
  config.sys_language_uid = 0
  config.language = de
  config.locale_all = de_DE

  # German ############################################
  [globalVar = GP:L = 0]
    config.sys_language_uid = 0
    config.language = de
    config.locale_all = de_DE
    #styles.content.lastUpdate.strftime = %e. %B %Y
  [global]
  # English ############################################
  [globalVar = GP:L = 1]
    config.sys_language_uid = 1
    config.language = en
    config.locale_all = english
    #styles.content.lastUpdate.strftime = %B %e, %Y
  [global]
  subparts.language = PHP_SCRIPT
  subparts.language.file = fileadmin/scripts/my_languageMenu.php

  ################################################## MENU
  subparts.menu = HMENU
  subparts.menu.special = directory
  # Constants: special.value = id
  subparts.menu.entryLevel = 0
  subparts.menu.1 = TMENU
  subparts.menu.1 {
    # Normal state properties
    NO.allWrap = <table><tr><td class="menu_item">|</td></tr></table>
    # Enable active state and set properties:
    ACT = 1
    ACT.allWrap = <table><tr><td class="menu_item_selected">|</td></tr></table>
 }
  
  ################################################## CONTENT
  # at the first: install the extension: "css_styled_content"
  subparts.content < styles.content.get
}

Es gibt zwei Texte (Standard=Deutsch, English), nur sehe ich immer den Standardtext, nie den anderen, wenn ich an die URL &L=x (x entspricht einer beliebigen Zahl ab Null) anhänge.

Was habe ich vergessen? Welche Voraussetzungen für die Mehrsprachigkeit müssen noch erfühlt werden?

Brauche dringend Hilfe.

malk ·

L=x entspricht nciht einer beliebigen Zahl über 0, sondern muss für die zweite Sprache auf 1 gestezt werden (laut Deinem TypoScript).
Wichtig ist aber auch, dass Du in Typo3 eine 2. Sprache definiert hast, deren uid '1' ist.

Ist das denn gegeben? Findest Du unter Liste->Webseite (Wurzel.. also ganz oben) einen Punkt 'Website Sprache', wo Du die 2. Sprache definiert hast? Und hat diese auch die uid '1'?

Lore ·

Danke Malk.

(I)

malk schrieb

Ist das denn gegeben? Findest Du unter Liste->Webseite (Wurzel.. also ganz oben) einen Punkt 'Website Sprache', wo Du die 2. Sprache definiert hast? Und hat diese auch die uid '1'?

Bild: dai-labor.de/…/forum01.gif
...das sollte reichen?

(II)
Dann ist mir aufgefallen, dass in dem Tutorials http://typo3.org/1220.0.html > 2: The new "one-tree-fits-all-languages" concept > Step2 mehrere "Static templates" aufgeführt sind. Wie weit sind diese wichtig für die Mehrsprachigkeit?

(III)
Weiterhin ist mir gestern ein Hinweis in der /typo3/install/index.php in der php.ini aufgefallen:
Bild: dai-labor.de/…/forum02.gif
Könnte der Register "register_globals" das Problem sein? - Hatte jemand damit schon Probleme?

malk ·

@ III
Wenn Du das 'example_languageMenu.php' benutzt, ja. Darin verwendet Kasper das $GLOBALS-Array, welches bei Deiner Config ja nicht funktioniert.

@ II
Ich benutze für 'One-Tree-Fits-All...' auch nur ein Template. Darin steht für Language nur folgender Code bei TypoScript:

config.linkVars = L

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

[GLOBAL]

@ I
Das sollte reichen. Geh mal mit der Maus über das Icon vor 'English'. Dann sollte im Tooltip die UID erscheinen. Überprüf nur mal, ob das auch '1' ist.

Lore ·

Ich habe eine Lösung gefunden. Der Fehler lag im Template.

# Default PAGE object:
page = PAGE
page.typeNum = 0

####################################### LANGUAGE
config.linkVars = L
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
page.stylesheet = fileadmin/template/css/style.css

# German
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
#styles.content.lastUpdate.strftime = %e. %B %Y
[end]
# English
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = english
#styles.content.lastUpdate.strftime = %B %e, %Y
[end]

page.10 = TEMPLATE
page.10 {
# Read the template file:
template = FILE
template.file = fileadmin/template/normal.tmpl
workOnSubpart = DOCUMENT_BODY

subparts.language = PHP_SCRIPT
subparts.language.file = fileadmin/scripts/my_languageMenu.php

######################################### MENU
subparts.menu = HMENU
subparts.menu.special = directory
# Constants: special.value = id
subparts.menu.entryLevel = 0

# First level menu-object
subparts.menu.1 = TMENU
subparts.menu.1 {
# Normal state properties
NO.allWrap = <table><tr><td class="menu_item">|</td></tr></table>
# Enable active state and set properties:
ACT = 1
ACT.allWrap = <table><tr><td class="menu_item_selected">|</td></tr></table>

####################################### CONTENT
# at the first: install the extension: "css_styled_content"!
subparts.content < styles.content.get

######################################## FOOTER
#styles.content.lastUpdate.strftime = %e. %B %Y
#subparts.footer < styles.content.lastUpdate
}

page.10.subparts.footer = TEXT
[globalVar = GP:L = 1]
page.10.subparts.footer {
data = page:lastUpdated
if.isTrue.data = page:lastUpdated
date = Y-m-d
wrap = Last update on:&nbsp; |
data = register : SYS_LASTCHANGED
if >
}
[else]

page.10.subparts.footer {
data = page:lastUpdated
if.isTrue.data = page:lastUpdated
date = d.m.Y
wrap = Letzte Aktualisierung:&nbsp; |
data = register : SYS_LASTCHANGED
if >
}
[end]

Die GlobalVar-Blöcke (hier rot) müssen außerhalb jeglicher Objektdefinition liegen. Ich mußte nur noch an einigen Stellen das "page.10." (hier blau) wiederhinzufügen.

Alles andere ist geblieben wie beschrieben.

Danke für die Hilfe! ENDE