Zum Inhalt springen

Sprachumschalter für 3 Sprachen

Erstellt am 6. Januar 2010 · 10 Antworten · letzte Antwort am 6. November 2013

Tags: Frage

monaco ·

Anfängerproblem: Ich habe diesen Sprachwechsler gemäß Buch gemacht, es wird jedoch im Marker ###SPRACHE### nur ein Textlink angezeigt! Wer kann mir bitte einen Rat geben, was fehlt?
Danke im Vorraus

#Sprachwechsler 
         	SPRACHE  = COA
         	SPRACHE {
        		10.field = uid
        		wrap = <a href="index.php?id=|&L=4">english</a>
        		20.field = uid
        		wrap = <a href="index.php?id=|&L=5">italiano</> 
         		}


[globalVar = GP:L=4]
	config.sys_language_uid = 4 
    	config.language = en
    	page.10.marks.SPRACHE.wrap = <a href="index.php?id=|&L=4">ENGLISH/a>
[global]
[globalVar = GP:L=5]
	config.sys_language_uid = 5 
    	config.language = it
    	page.10.marks.SPRACHE.wrap = <a href="index.php?id=|&L=5">ITALIANO</a>
#[global]
monaco ·

danke für die Reaktion - :o da hab ich mich unglücklich ausgedrückt, natürlich Textlink aber halt 2 einmal - english und italiano - nebeneinander quasi!

Norman2k ·

Auf den 1. Blick seh ich schon 2 Tippfehler:

wrap = <a href="index.php?id=|&L=5">italiano</>
page.10.marks.SPRACHE.wrap = <a href="index.php?id=|&L=4">ENGLISH/a>

monaco ·
monaco schrieb

danke für die Reaktion - :o da hab ich mich unglücklich ausgedrückt.

Also ich hab den Marker ###SPRACHE### in welchem beide Sprachumschalter - englisch und italienisch - nebeneinander als Textlink stehen sollen.
Momnetan wird nur der italienische angezeigt, kommentiere ich diesen aus, wird der englische angezeigt. Sie verweisen jeweils auch auf die richtige Seite, d.h. die uid's sind richtig. Nur das die beiden in einem Marker stehen krieg ich nicht hin.

amador ·

Hey!
ich habe GENAU das Selbe Problem!
Konntest du es mitlerweilen lösen???

Unser Problem ist (war?) ja, dass TS immer den unteresten dieser Befehle als gültig erklärt und anzeigt...
hast du eine Lösung gefunden, wie man diese Sprachen als Link nebeneinander anfügen kann?

Gruss

monaco ·

hi amador,

nein leider nicht, und ja - du hast es genau erfasst, der unterste wird angezeigt und funzt auch einwandfrei!

Ich versuch es nun mal mit etwas anderem script aus einem anderen buch, da ich einfach nicht weiterkomme.

Falls du allerdings eine Lösung findest wäre es super wenn du es mir mitteilst , weil es mich ärgert das es nicht klappt und ich nicht weiss wieso!

gruss

Cretection ·

Versuchs mal mit Something like that:

page.10.subparts{
	SPRACHE = HMENU
	SPRACHE {
    	special = language
        special.value = 0,4,5
        1 = TMENU
        1 {
#NO ist der Standard Status eines Menus
        	NO {
        		allWrap = &nbsp;&nbsp;|
            	stdWrap.cObject = TEXT
            
            	#Folgende reihenfolge ist abhängig von der reihenfolge special.value
            	stdWrap.cObject.value = Deutsch||English||italiano
            	stdWrap.cObject.lang.en = German||English||italiano
            	stdWrap.cObject.lang.it = Tedesco||English||italiano
			}
#ACT ist der Aktive zustand eines Menupunkts
            ACT {
        		allWrap = &nbsp;&nbsp;|
            	stdWrap.cObject = TEXT
            
            	#Folgende reihenfolge ist abhängig von der reihenfolge special.value
            	stdWrap.cObject.value = DEUTSCH||English||italiano
            	stdWrap.cObject.lang.en = German||ENGLISH||italiano
            	stdWrap.cObject.lang.it = Tedesco||English||ITALIANO
            }
		}
	}
}

#Definition der Config incl. Standardsprache 
config{
	linkVars = L
	language = de
    locale_all = de_DE
    htmlTag_langKey = de-DE
    sys_language_mode = content_fallback
    sys_language_overlay = 1
}

#Definition von EN
[globalVar = GP:L=4]
config {
	language = en
    local_all = en_EN
    htmlTag_langKey = en-US
    sys_language_uid = 4
}
[global]

#Definition von IT
[globalVar = GP:L=5]
config {
	language = it
    local_all = it_IT
    htmlTag_langKey = it-IT
    sys_language_uid = 5
}
[global]

Deine erste Möglichkeit ist zwar von der Idee her ganz gut, aber man sollte immer Links über TYPO3 erzeugen lassen (Sicherheitsrelevant).
Das Script ist nur eine Möglichkeit es zu lösen. Ich habe es zur Sicherheit auch nochmal getestet.

Der Teil ACT könnte auch weg gelassen werden, da man ja jede Sprache definieren kann aber so ist es angedacht :-)

Falls Ihr noch fragen habt -> Fragt 8-)

Neofine ·

Hier mal noch eine andere Möglichkeit:

#Seitensprachen setzen
config.linkVars = L
config.uniqueLinkVars = 1
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE.UTF8
config.htmlTag_langKey = de-DE

###Sprachlinks in Objekt temp.langlink1 + temp.langlink2
temp.langlink1 = TEXT
temp.langlink1.value=Deutsch
temp.langlink1.typolink.parameter.data = page:uid
temp.langlink1.typolink.additionalParams = &L=0
temp.langlink1.typolink.ATagParams = class="first act" lang="de" xml:lang="de"

temp.langlink2 = TEXT
temp.langlink2.value=Englisch
temp.langlink2.typolink.parameter.data = page:uid
temp.langlink2.typolink.additionalParams = &L=1
temp.langlink2.typolink.ATagParams = class="first" lang="en" xml:lang="en"

[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN.UTF8
config.htmlTag_langKey = en
temp.langlink1.typolink.ATagParams = class="first" lang="de" xml:lang="de"
temp.langlink2.typolink.ATagParams = class="first act" lang="en" xml:lang="en"
[global]

#Bestehenden Marker SPRACHE füllen
page.10.marks.SPRACHE = COA
page.10.marks.SPRACHE {
wrap= <ul id="langselector">|</ul>
10 < temp.langlink1
10.wrap = <li>|</li>

20 < temp.langlink2
20.wrap = <li>|</li>
}

Klasse act kann dann dementsprechend per CSS für den jeweiligen aktiven Link gestylt werden.