Zum Inhalt springen

Sprachauswahl tt_news single view

Erstellt am 21. Juni 2008 · 5 Antworten · letzte Antwort am 18. November 2008

Tags: tt_news, Frage

ric1893 ·

Hallo,

ich habe Probleme bei der Sprachumschaltung in tt_news. Die Lösung dafür habe ich auch hier gefunden und ich weiß, dass man in "typolink.additionalParams" eingreifen muss, aber wie es aussieht, funzt das nicht mit meinem Sprachmenü:

temp.lang = COA
temp.lang {
	10 = TEXT
	10 {
		value = <span>language selection: </span>
		lang.de = <span>Sprachauswahl: </span>
	}
	20 = IMAGE
	20 {
		file = flag-us_off.png
		altText = flag us
		title = english
		imageLinkWrap = 0
		imageLinkWrap {
			enable = 1
			typolink {
				parameter.data = page:uid
				additionalParams = &lang=0

			}
		}
		wrap = <span>|</span>
	}
	30 = IMAGE
	30 {
		file = flag-de_on.png
		altText = flag de
		title = deutsch
		imageLinkWrap = 1
		imageLinkWrap {
			enable = 1
			typolink {
				parameter.data = page:uid
				additionalParams = &lang=1
			}
		}
		wrap = <span>|</span>
	}
}

Und folgendermaßen schalte ich das dann um:

[globalVar = GP:lang = 1]
temp.lang.20.file = flag-us_on.png
temp.lang.20.imageLinkWrap = 1

temp.lang.30.file = flag-de_off.png
temp.lang.30.imageLinkWrap = 0
[global]

Im Moment habe ich die Sprachumschaltung in der single view ausgeschaltet, das ist aber auch nur ne Behelfslösung und nicht so schön.

Ich vermute ja mal, dass es am "IMAGE" oder am "imageLinkWrap" liegt, weshalb die "Standard-Lösung" nicht funzt...

Hat jemand speziell für diese Art von Menü den Rat, wie man die tt_news ?

ric1893 ·

Ja,

habe ich etwas ungenau beschrieben, sorry... ;-)

Ich muss bei der Sprachumschaltung die Variablen von tt_news so mitnehmen, dass die url auch so aussieht wie vorher.

Wenn meine url so aussah:
http://www.mein-server.de/news/artikel/2008/06/24/thema.html

Wird sie nach der Sprachumschaltung in Folgendes umgesetzt:
http://www.mein-server.de/en/news/artikel/14/14/14/thema.html

Und das mach ich mit:

additionalParams.cObject = COA
additionalParams.cObject {
     10 = TEXT
     10.wrap = |&lang=0
     60 = TEXT
     60.data = GPvar : tx_ttnews|backPid
     60.wrap = &tx_ttnews[backPid]=|
     60.required = 1

     62 = TEXT
     62.data = GPvar : tx_ttnews|tt_news
     62.wrap = &tx_ttnews[year]=|
     62.required = 1

     64 = TEXT
     64.data = GPvar : tx_ttnews|tt_news
     64.wrap = &tx_ttnews[month]=|
     64.required = 1

     66 = TEXT
     66.data = GPvar : tx_ttnews|tt_news
     66.wrap = &tx_ttnews[day]=|
     66.required = 1

     70 = TEXT
     70.data = GPvar : tx_ttnews|tt_news
     70.wrap = &tx_ttnews[tt_news]=|
     70.required = 1

     80 = TEXT
     80.data = GPvar : cHash
     80.wrap = &cHash=|
     80.required = 1
}

Ist doch nicht normal, oder?

Nehm ich nur die 60, 70 und 80 kommt das dann raus:
http://www.mein-server.de/news/artikel////thema.html
was ja auch nicht so richtig ist.

Mopps ·

Ah, ok. Jetzt ist es schon klarer. Das Problem hatte ich auch. Also ich geb dir einfach mal meine Einstellungen. Ich habe folgendes:
- Default-Sprache Deutsch (L=0)
- zusätzliche Sprachen: Englisch (L=1) und Italienisch (L=2)
- Sprachmenü ohne Bilder

Meine Spracheinstellungen und das Sprachmenü im SETUP:

config {
  # SprachVariable L initialisieren
  linkVars = L
  uniqueLinkVars = 1
	
  # Standardsprache UID 0 -> Deutsch
  sys_language_uid = 0
  language = de
  locale_all = de_DE.ISO8859-1
  htmlTag_langKey = de_DE
	
  # Verhalten beim Umschalten der Sprache
  sys_language_mode = content_fallback
  sys_language_overlay = hideNonTranslated
}

# Sprachlinks
temp.langlink1 = TEXT
temp.langlink1 {
  value = {$italienisch}
  typolink {
    parameter.data = page:uid
    additionalParams = &L=2
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="it" xml:lang="it"
    wrap = <li class="it"> | </li>
  }
}

temp.langlink2 = TEXT
temp.langlink2 {
  value = {$englisch}
  typolink {
    parameter.data = page:uid
    additionalParams = &L=1
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="en" xml:lang="en"
    wrap = <li class="en"> | </li>
  }
}


# --- wenn English gewählt ist --- #
[globalVar = GP:L = 1]
config {
  sys_language_uid = 1
  language = en
  locale_all = en_EN.ISO8859-1
  htmlTag_langKey = en_EN
}

# Sprachlinks
temp.langlink1 = TEXT
temp.langlink1 {
  value = {$italienisch}
  typolink {
    parameter.data = page:uid
    additionalParams = &L=2
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="it" xml:lang="it"
    wrap = <li class="it"> | </li>
  }
}

temp.langlink2 = TEXT
temp.langlink2 {
  value = {$deutsch}
  typolink {
    parameter.data = page:uid
    additionalParams = &L=0
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="de" xml:lang="de"
    wrap = <li class="de"> | </li>
  }
}
[global]


# --- wenn Italienisch gewählt ist --- #
[globalVar = GP:L = 2]
config {
  sys_language_uid = 2
  language = it
  locale_all = it_IT.ISO8859-1
  htmlTag_langKey = it_IT
}

# Sprachlinks
temp.langlink1 = TEXT
temp.langlink1 {
  value = {$deutsch}
  typolink {
     parameter.data = page:uid
    additionalParams = &L=0
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="de" xml:lang="de"
    wrap = <li class="de"> | </li>
  }
}

temp.langlink2 = TEXT
temp.langlink2 {
  value = {$englisch}
  typolink {
    parameter.data = page:uid
    additionalParams = &L=1
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
    useCacheHash = 1
    no_cache = 0
    ATagParams = lang="en" xml:lang="en"
    wrap = <li class="en"> | </li>
  }
}
[global]


# --- Menü zur Sprachauswahl erstellen --- #
temp.language = COA
temp.language {
  10 < temp.langlink1
  20 < temp.langlink2
}

Der Teil:

typolink {
...
    addQueryString = 1
    addQueryString.exclude = L,id,cHash,no_cache
    addQueryString.method = GET
...
  }
...

sorgt dafür, dass Parameter (z.B. die von tt_news) mit angehängt werden.

Dann habe ich noch die üblichen realurl-Einstellungen. Hoffe das hilft dir weiter.

ric1893 ·

Hi Mopps,

Du hast meine ungeteilte Begeisterung.
Funzt tadellos.

Super vielen Dank von meiner Seite aus.

jpsy ·

Jesses Leute, Ihr habt ja recht - erlaubt ist, was funktioniert. Aber elegant is doch anders. Anbei mal ein Gegenvorschlag mit weitgehend gleicher Funktionalität, zusätzlich noch Icons in den Sprachlinks.

Übrigens auch ganz wichtig:
In die Werte von htmlTag_langKey gehört ein Bindestrich rein, kein Unterstrich.

config {
  # SprachVariable L initialisieren
  linkVars = L(int)
  uniqueLinkVars = 1
       
  # Standardsprache UID 0 -> Deutsch
  sys_language_uid = 0
  language = de
  locale_all = de_DE
  htmlTag_langKey = de-DE
       
  # Verhalten beim Umschalten der Sprache
  sys_language_mode = content_fallback
  sys_language_overlay = hideNonTranslated
}

# --- wenn English gewählt ist --- #
[globalVar = GP:L=1]
config {
  sys_language_uid = 1
  language = en
  locale_all = en_EN
  htmlTag_langKey = en-EN
}
[global]

# --- wenn Italienisch gewählt ist --- #
[globalVar = GP:L=2]
config {
  sys_language_uid = 2
  language = it
  locale_all = it_IT
  htmlTag_langKey = it-IT
}
[global]


temp.language = HMENU
temp.language {
  special = language
  special.normalWhenNoLanguage = 0
  special.value = 0,1,2
  
  addQueryString = 1
  addQueryString.exclude = id, L, cHash

  1 = TMENU
  1 {
    NO = 1
    NO {
      stdWrap.setCurrent = <li class="de"><img src="/fileadmin/templates/img/langflag-DE.gif" alt="Deutsch" title="Deutsch"> Deutsch </li> || <li class="en"><img src="/fileadmin/templates/img/langflag-EN.gif" alt="English" title="English"> English </li> || <li class="it"><img src="/fileadmin/templates/img/langflag-IT.gif" alt="Italiano" title="Italiano"> Italiano </li>
      stdWrap.current = 1
    }
    ACT < .NO
    ACT{
      stdWrap.setCurrent = <li class="de"><img src="/fileadmin/templates/img/langflag-DEact.gif" alt="Deutsch" title="Deutsch"> Deutsch </li> || <li class="en"><img src="/fileadmin/templates/img/langflag-ENact.gif" alt="English" title="English"> English </li> || <li class="it"><img src="/fileadmin/templates/img/langflag-ITact.gif" alt="Italiano" title="Italiano"> Italiano </li>
      doNotLinkIt = 1
    }
    USERDEF1 < .NO
    USERDEF1{
      stdWrap.setCurrent = <li class="de"><img src="/fileadmin/templates/img/langflag-DEoff.gif" alt="Deutsch" title="Deutsch"> Deutsch </li> || <li class="en"><img src="/fileadmin/templates/img/langflag-ENofft.gif" alt="English" title="English"> English </li> || <li class="it"><img src="/fileadmin/templates/img/langflag-IToff.gif" alt="Italiano" title="Italiano"> Italiano </li>
      doNotLinkIt = 1
    }
  }
}

Reduziert deutlich die Tastaturabnutzung, und vermutlich auch die TS-Renderzeit. 8-)