Zum Inhalt springen

Dynamischer Sprachlink funktioniert nicht

Erstellt am 25. März 2009 · 2 Antworten · letzte Antwort am 28. März 2009

Tags: Frage

easywing ·

Hallo Leute!

Seit langem komme ich endlich wiedermal dazu ein neues Typo3-Projekt auf die Beine zu stellen und schon stolpere ich über ein Problem.

Das Projekt sollte mehrsprachig in deutsch (L=0) und englisch (L=1) sein. Dazu habe ich einen Platzhalter "sprache" im HTML-Template platziert, den ich im TypoScript setze. Zu meiner Enttäuschung wechselt allerdings der Link nicht sondern bleibt beständig auf "Deutsch" stehen, selbst wenn ich manuell L=1 als GET-Parameter in der URL mitgebe.

Ebenfalls der "Print-Link" wird nicht in in deutsch sondern nur in englisch dargestellt.

Was habe ich falsch gemacht? Wäre über jeden Tipp dankbar!

Hier mein TypoScript aus dem Template-Setup:

// Die Metanavigation (METANAV)
temp.navigation.meta = HMENU
temp.navigation.meta {
   //wrap = <div id="metanav">|</div>
   special = list
   special.value = 5,6
   1 = TMENU
   1 {
   	  NO = 1
      NO {
         linkWrap = | • |*|  | •
      }
   }
}

// Die Hauptnavigation (TOPNAV)
temp.navigation.top = HMENU
temp.navigation.top {
   wrap = <ul id="nav">|</ul>
   special=directory
   special.value = 2

   1 = TMENU
   1 {
   	  NO = 1
      NO {
         linkWrap = <li>|</li>
      }
      ACT = 1
      ACT < .NO
      ACT {
				 linkWrap = <li>|</li>
      }
   }
}

// Die Breadcrumbnavigation (BREADCRUMB)
temp.navigation.bread = COA
temp.navigation.bread {
	10 = TEXT
	10.value = Sie befinden sich hier: 
	20 = HMENU
	20 {
	special = rootline
	special.range = 2|-1
	1 = TMENU
	1.NO = 1
	1.NO.linkWrap = | > |*|  | > |*|  |
	}
}

// Der Content in der Mitte (CONTENTMIDDLE)
temp.cont.middle = CONTENT
temp.cont.middle {
    table = tt_content
    select.orderBy = sorting
    select.where = colPos = 0
    select.languageField = sys_language_uid
}


// Der Content auf der rechten Seite (CONTENTRIGHT)
temp.cont.right = CONTENT
temp.cont.right {
	table = tt_content
    select.orderBy = sorting
    select.where = colPos = 2
    select.languageField = sys_language_uid
}


// Die Datumsanzeige (DATUM)
temp.datum = TEXT
temp.datum {
            data = date : d.m.Y H:i
            }

// Die Druckversion (DRUCK)
temp.druck = COA
temp.druck {
     stylesheet = fileadmin/print.css
     10 = TEXT
	 	 10 {
			 wrap = <a target="_blank" href="index.php?id=|&type=1
		   field = uid
		 }
		 20 = TEXT
		 20 {
		 	 wrap = &L=|">Drucken</a>
                   data = GPvar:L
                   [globalVar = GP:L=1]
		 	 wrap = &L=|">Print</a>
		   [global]
     }
}

// Sprachwechsel-Link
temp.sprache = TEXT
temp.sprache {
	 	  wrap = <a href="index.php?id=|&L=1">English</a>
		  field = uid
		  [globalVar = GP:L=1]
                  wrap = <a href="index.php?id=|&L=0">Deutsch</a>
		  [global]
		     }

// Einbindung anderer Sprachen & dem GET-Parameter "L=1"
config.linkVars = L
config.sys_language_uid = 0
config.language = de
[globalVar = GP:L=1]
config.sys_language_uid = 1
config.language = en
[global]


page = PAGE
page.typeNum = 0

page {
   typeNum = 0
   stylesheet = fileadmin/style.css
   10 = TEMPLATE
   10 {
      template = FILE
      template.file = fileadmin/index.html

      workOnSubpart = DOKUMENT

      marks {
         TITLE < temp.title
         DATUM < temp.datum
         BREADCRUMB < temp.navigation.bread
         CONTENTRIGHT < temp.cont.right
         CONTENTMIDDLE < temp.cont.middle
         DRUCK < temp.druck
         SPRACHE < temp.sprache
      }

      subparts {
	 METANAV < temp.navigation.meta
	 TOPNAV < temp.navigation.top
      }
   }
}

// Definition eines zweiten PAGE Objekts für die Druckansicht
  druckversion = PAGE
  druckversion {
     typeNum = 1
     10 = CONTENT
     10.table = tt_content
     10.select.orderBy = sorting
     10.select.colPos = 0
     10.select.languageField = sys_language_uid
  }

config.simulateStaticDocuments = 1
config.simulateStaticDocuments_noTypeIfNoTitle = 1

plugin.tt_news.backPid = 35
plugin.tt_news.PIDitemDisplay = 34

Vielen Dank vorab!

Easywing

meckpo ·

Hallo,

wenn ich das gerade noch richtig weiss: Keine Conditions innerhalb von geschweiften Klammern?

easywing ·

Vielen Dank für den Tipp! Genau das war mein Denkfehler.

Hinzu kommt noch, das man natürlich die Else-Bedingung nicht außerhalb der Condition notieren sollte 😉

Hier also nun der korrekte Weg für alle, die das Thema auch interessiert:

...
// Sprachwechsel-Link
temp.sprache = TEXT
temp.sprache.field = uid
[globalVar = GP:L=1]
    temp.sprache.wrap = <a href="index.php?id=|&L=0">Deutsch</a>
[ELSE]
    temp.sprache.wrap = <a href="index.php?id=|&L=1">English</a>
[global]
...