TYPO3 Donation

24 Reaktionen zu “Sprach-Menü”

Kommentare abonnieren (RSS) oder TrackBack URL

schön schön, das sollte aber doch bisschen kürzer sein, beim stdwrap ändert sich ja nicht allzuviel?!?

peter hat das mal für tipafriend online gestellt hier

lg georg
ps: umschlaten im text is falsch ;)
PPS: nichts destotrotz sehr schön, werd ich mir gleich kopieren

Georg Ringer (just2b) am 16. September 2007 um 17:27

Hi Georg,

sicherlich ändert sich beim stdWrap nicht viel. Doch da der standard Link des HMENU eben die zusätzlichen GET-Parameter in der URL verliert muss der Link eben mit stdWrap neu aufgebaut werden. Wenn dieser Link auch noch normal gecached werden soll ist da soweit ich sehe jede Zeile des Codes nötig. Kannst ja mal vorschlagen wie Du es kürzer hinbekommen willst.

beste Grüße

Sareen

Sareen Millet am 16. September 2007 um 19:10

Aehm – ich bin jetzt nicht der TS-Profi; aber wenn ich die Anzahl der “{” gegen die Anzahl der “}” gegenueberstelle, muesste die doch gleich sein, oder? 8-) Hier steht es 6:9 – da stimmt doch was nicht. Und hiermit oute ich mich sicher gaenzlich zum Schnellmerker: beim “_CSS_DEFAULT_STYLE” gehoert ans Ende sicher auch ein “)” statt “}” – gelle?

Oder ist das Ding bewusst so gestaltet, dass man es nicht einfach kopieren und ausprobieren kann???

Bitte macht ein Update…

Martin am 05. November 2007 um 09:58

Ich selber bin nicht der TS Guru… Deshalb habe ich eine kurze Info Mail an Sareen geschickt. Werden den Fehler in kürze beheben.

Beste Grüße,
Tim

Tim Lochmüller am 06. November 2007 um 10:14

Hallo Martin, Hallo Tim,

in der Tat haben sich da ein paar Zeilen im TS verdoppelt. Die habe ich jetzt gelöscht und schön eingerückt. – So müsste es aber jetzt passen.

stimmts?

liebe Grüße

Sareen

Sareen Millet am 07. November 2007 um 18:35

Habe soeben festgestellt, dass dieser Language Switch mit dem Cache ein Problem hat. L=0 wird an die URL übergeben und damit doppelt gecached. Diese Änderung behebt das Problem teilweise:

stdWrap.typolink.additionalParams = &L=1 || &L=0&no_cache=1 || &L=2

schöner wäre natürlich

stdWrap.typolink.additionalParams = &L=1 || || &L=2

doch trotz

stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache

wird L übergeben also funktioniert der Switch nicht mehr zur Default-Sprache

… vielleicht hat ja jemand noch eine bessere Idee. …

Sareen Millet am 10. Januar 2008 um 21:07

Danke für das Umstellen des Codes…. Ich habe das Menü auf zwei Seiten im Einsatz und konnte das Cache Problem bisher noch nicht nachvollziehen… :-(

Tim Lochmüller am 11. Januar 2008 um 09:46

Vielen dank. Konnte den Hinweis für meinen Druckansicht-Link verwenden. Die fragliche Seite wird von einer Extension dynamisch generiert wobei der Inhalt von der GET-Variable year abhängt. Hier mein TS:

marks.PRINTBUTTON = TEXT
marks.PRINTBUTTON {
value = Druckansicht 
stdWrap.typolink.parameter.data = page:uid
stdWrap.typolink.additionalParams = &type=98
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache,type
stdWrap.typolink.addQueryString.method = GET
stdWrap.typolink.ATagParams = class=”menu1″
}

Thomas am 24. Januar 2008 um 00:05

Super klasse! Hat mir gut geholfen! thx

brennA am 28. Februar 2008 um 10:19

Hallo,

bekomme ich eigentlich bei USERDEF1 den Link wieder weg ?
Wen keine Übersetzung vorhanden ist soll der Text eine andere Farbe bekommen, aber ohne den Link.

Björn Reichert am 03. März 2008 um 16:12

Funktioniert einwandfrei, wenn RealURL deaktiviert ist. Ist es aktiviert, wird immer nur ein Link mit der Default-Sprache erzeugt – für alle Menüeinträge.

Wie kann ich das ändern?

desiser am 10. Januar 2009 um 11:52

Bei mir geht auch mit RealURL alles bestens. Prüfe mal deine special values und diese hier “&L=1 || &L=0 || &L=2″. vielleicht stimmen die ID´s nicht?!?!

Grüße,
Tim

Tim Lochmüller am 10. Januar 2009 um 12:09

Ich habe das nur verdreht mit den IDs (Absicht).
Ich habe es mittlerweile auch mit fertigen Extensions versucht, das Problem scheint nicht der TS zu sein, da die Problematik überall auftritt. Kann das darin liegen, dass meine TS Bedingung
“[globalVar = GP:L = 1]” immer greift?
Hier mal ein Link zu meinem Problem, was vielleicht zusammenhängt: http://www.typo3.net/forum/list/list_post//85626/

desiser am 10. Januar 2009 um 16:12

Ich habe das Problem nun gelöst. Lang daran, dass ich Kommentare im TypoScript hatte und TS damit nicht klar kam.

desiser am 15. Januar 2009 um 19:24

Hi und vielen Dank für das coole Script. Ich möchte es gerne in einer grösseren TYPO3 installation einbauen. Leider habe ich auch das Prob, dass die nicht übersetzte Sprache trotzdem angezeigt wird (das flag wird mit dem link zur default-sprache gerendert). habe nun schon sämtliche spracheinstellungen überprüft, hast du evtl. noch eine Idee? anbei mein TS:

temp.languagenav = HMENU
temp.languagenav {
special = language
special.value = 0,2,3
special.normalWhenNoLanguage = 0
wrap = |
1 = TMENU
1 {
noBlur = 1

NO = 1
NO {
linkWrap = |
stdWrap.override = {$flag.us} || {$flag.de} || {$flag.fr}
doNotLinkIt = 1

stdWrap.typolink.parameter.data = page:uid
stdWrap.typolink.additionalParams = &L=0 || &L=2 || &L=3
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache
stdWrap.typolink.addQueryString.method = GET
stdWrap.typolink.useCacheHash = 1
stdWrap.typolink.no_cache = 0
}
ACT < .NO
ACT.linkWrap = |

USERDEF1 = 1
USERDEF1 < .NO
USERDEF1.linkwrap = –|–

USERDEF2 = 1
USERDEF2 < .ACT
USERDEF2.linkwrap = oo|oo
}
}

ich krieg den zustand userdef1 oder -2 einfach nicht hin (btw. die oo und — sind nur als nonsense output), special.normalWhenNoLanguage = 0 scheint auch nicht zu helfen.

danke im voraus
hagi

Hagi am 20. Februar 2009 um 18:34

Danke für den tollen Code, hat mir sehr geholfen :)

@ Björn Reichert
das liegt dann höchstwahrscheinlich an deiner RealUrl Configuration, musst Du dann noch um die entsprechen Sprachen erweitern.

Cody am 08. April 2009 um 22:25

also ich versuche grade krampfhaft herauszufinden wie ich die Sprachnavigation mit bei der Sprachauswahl per Domain zum laufen bekomme.

meine realurlconfig sieht so aus:

// Host abfragen und getVar setzen:
switch(t3lib_div::getIndpEnv(‘HTTP_HOST’)){
case ‘www.domain.de’;
$_GET['L'] = 0;
break;
case ‘www.domain.es’;
$_GET['L'] = 1;
break;
case ‘www.domain.co.uk’;
$_GET['L'] = 2;
break;
case ‘www.domain.nl’;
$_GET['L'] = 3;
break;
case ‘www.domain.it’;
$_GET['L'] = 4;
break;
case ‘www.domain.fr’;
$_GET['L'] = 5;
break;
}

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
‘_DEFAULT’ => array(
‘init’ => array(
‘enableCHashCache’ => 1,
‘appendMissingSlash’ => ‘ifNotFile’,
‘enableUrlDecodeCache’ => 1,
‘enableUrlEncodeCache’ => 1,
),
‘preVars’ => array(
array(
‘GETvar’ => ‘L’,
‘valueMap’ => array(),
‘noMatch’ => ‘bypass’,
),
),
‘pagePath’ => array(
‘type’ => ‘user’,
‘userFunc’ => ‘EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main’,
‘spaceCharacter’ => ‘-’,
‘languageGetVar’ => ‘L’,
‘expireDays’ => 7,
‘disablePathCache’ => 0,
‘rootpage_id’ => 130,
),
),
);

und ich teile den Domains im TS die entsprechenden Sprachen zu:

config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de

# English language, sys_language.uid = 2
[globalString = ENV:HTTP_HOST=www.domain.co.uk]
page.config{
baseURL = http://www.domain.co.uk/
sys_language_uid = 2
language = en
locale_all = en_EN
htmlTag_langKey = en
}
[global]

# French language, sys_language.uid = 5
[globalString = ENV:HTTP_HOST=www.domain.fr]
page.config{
baseURL = http://www.domain.fr/
sys_language_uid = 5
language = fr
locale_all = fr_FR
htmlTag_langKey = fr
}
[global]

# Spain language, sys_language.uid = 1
[globalString = ENV:HTTP_HOST=www.domain.es]
page.config{
baseURL = http://www.domain.es/
sys_language_uid = 1
language = es
locale_all = es_ES
htmlTag_langKey = es
}

[global]

# Italian language, sys_language.uid = 4
[globalString = ENV:HTTP_HOST=www.domain.it]
page.config{
baseURL = http://www.domain.it/
sys_language_uid = 4
language = it
locale_all = it_IT
htmlTag_langKey = it
}
[global]
# Niederländisch language, sys_language.uid = 3
[globalString = ENV:HTTP_HOST=www.domain.nl]
page.config{
baseURL = http://www.domain.nl/
sys_language_uid = 3
language = nl
locale_all = nl_NL
htmlTag_langKey = nl
}
[global]

ich komme an der Stelle grade einfach nicht weiter… Bin für jeden Tip sehr dankbar

neuz8 am 30. Juli 2009 um 22:54

Der USERDEF1-Zustand “greift” ja nur nicht, weil das so konfiguriert ist.

Links auf unübersetzte Seiten können so ganz einfach abgeschaltet werden (oder anderweitig angepasst)

USERDEF1
}

Vielen Dank für den tollen Schnipsel!

Urs am 21. September 2009 um 16:33

Danke, habe ich 1.1. übernommen und hat für vier Sprachen wunderbar funktioniert.

Martin Terber am 23. November 2009 um 01:18

Spannendes Stück Code… dazu aber die Frage bevor ich das einbaue: ist denn das Problem gelöst, dass bei Seiten die in eine bestimmte Sprache nicht übersetzt sind eben diese Sprache dennoch im Menü erscheint?
Der Vorschlag von neuz8 vom 30. Juli 2009 ist mir leider nicht zugänglich… (fehlt da was?)
Vielen Dank für jede Art von Hilfe!

Peter am 06. April 2010 um 12:45

Haudey,

ich war auf der Suche nach einer besseren Lösung, als die mit der “languageMenu.php” bekannten Version 1.6. Dein Codeschnipsel habe ich ein wenig verändert, da ich kein Textbasierendes Manü benutzen wollte, sondern direkt ein Grafisches mit den bekannten Fahnen. Das ganze läuft bei mir mit realURL und zwei Sprachen.

lib.langmenu = HMENU
lib.langmenu {
# Ein Sprach-Menü wird erzeugt
special = language
# Reihenfolge und Auswahl der Sprachen im Menü
special.value = 0,1
special.normalWhenNoLanguage = 0

# Grafisches Menü anstelle eines Textbasierten
1 = GMENU
1 {
# Hauptwrap
wrap = |
NO = 1
NO {
wrap = |
# XY = Breite,Höhe
XY = 20,12
5 = IMAGE
# Wenn es mehrere Sprachen gibt, dann durch ein weiteres logisches Oder mit || verknüpfen
5.file = fileadmin/templates/images/de.gif || fileadmin/templates/images/gb.gif
}
# Hier kommt der bekannte Pfeil :)
# “ACT” erbt von “NO” und “wrap” wird überschrieben
ACT < .NO
ACT = 1
ACT {
wrap = |
}
}
}

Beste Grüße
Damian

Damian am 12. April 2010 um 18:43

Hallo an Alle,
ich versuche gerade ein Sprachwechsler als dropdown zu bauen.
Das muß nichts besonderes sein.
Kann mir jemand helfen :-) ?
Ich habe keinen Lösungsansatz ;-(
Danke und Grüße

Ralph am 13. April 2010 um 13:30
Trackbacks & Pingbacks

[...] Lochmüller hat auf seinem TYPO3-Blog ein paar interessante Zeilen TypoScript veröffentlicht, die ein Sprachmenü realisieren, das bis auf die Sprach-Variable alle Variablen, die der [...]

Pingback von Sprachmenü für TYPO3 | TYPO3 Metablog am 16. September 2007 um 21:31

[...] Typo3 Wiki [2] Frontend Localization Guide auf Typo3.org [3] TSref – TypoScript Reference [4] Sprachmenü in Typo3 Voraussetzungen: Typo3 4.x Einsatz von TemplaVoila für das [...]

Ein Kommentar hinterlassen


 Name


 Mail (wird nicht veröffentlicht)


 Website

Bitte beachten sie, dass ihr Kommentar möglicherweise erst freigeschaltet werden muss.

Kategorien

Archiv (Quick)

September 2010
M D M D F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
27282930