---
title: "Sprachswitch soll nur Inaktive Sprache anzeigen"
url: "https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen"
source: "typo3.net"
tags: ["TYPO3","Mehrsprachigkeit","Frage"]
created: "2011-08-03"
last_reply: "2011-08-08"
replies: 7
solved: false
page: 1
pages: 1
lang: "de"
---

# Sprachswitch soll nur Inaktive Sprache anzeigen

TYPO3 › Mehrsprachigkeit · 7 Antworten · gestartet 2011-08-03

## Eröffnungsbeitrag

**TheJoker** · 2011-08-03 · [Beitrag #1](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/1)

Guten Tag allerseits.

Ich habe mal wieder ein kleines Problem.
Ich verwende Typo3 4.5.4
RealURL ist noch nicht installiert, soll aber bald kommen.

Die Sache ist die: Die Webseite soll in 2 Sprachen verfügbar sein:
Deutsch(Standard) und Französisch.
Das klappt auch alles wunderbar.(Manuelles Aufrufen per URL)

Nur möchte der Kunde, dass im Sprachauswahlmenü nur die Inaktive Sprache verfügbar ist.

Sprich:
Wenn ich auf der deutschen Seite bin soll Französisch stehen.
Wenn ich auf der Französischen bin soll Deutsch stehen.

Natürlich könnte ich das über ein PHP-Script lösen, allerdings habe ich mich bis jetzt noch nie wirklich mit der API von Typo3 bekannt gemacht und mich da reinzulesen würde mir zu lange dauern. Ich suche daher eine lösung über Typoscript, sofern das möglich ist.

lg
Joker

## Antworten

### [#2](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/2) · TheJoker · 2011-08-04

Sry wegen dem Doppelpost
Weiss niemand eine Lösung?

Ich habe in der Zwischenzeit schon diverse Sachen ausprobiert.

Ich habe folgenden Code, der Beide anzeigt:

```typoscript
subparts.lang = HMENU
      subparts.lang {
      special = language
### Reihenfolge und Auswahl der Sprachen im Menü
      special.value = 2,1
      special.normalWhenNoLanguage = 0
      1 = TMENU
      1 {
           noBlur = 1
           NO = 1
           NO {
                stdWrap.override = Français || &nbsp;|&nbsp;Deutsch
                doNotLinkIt = 1
                stdWrap.typolink.parameter.data = page:uid
                stdWrap.typolink.additionalParams = &L=2 || &L=1 
                stdWrap.typolink.addQueryString = 1
                stdWrap.typolink.addQueryString.exclude = L,id
                stdWrap.typolink.addQueryString.method = GET
                stdWrap.typolink.useCacheHash = 0
                stdWrap.typolink.no_cache = 0
             }
### Aktive Sprache
           ACT < .NO
           ACT.linkWrap = |

      }
   }
```

Ich habe schon probiert mit einer IF-Abfrage auf die Varibale L zu arbeite, hat leider nicht geklappt.

### [#3](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/3) · fiedomedia · 2011-08-04

Hallo Joker,

ich würde dir die Extension sr_language_menu empfehlen.
Die stell das Sprachmenü sehr gut dar, und da gibt es auch die Option "showCurrent". Wenn du diese auf 0 setzt, wird dir der Sprachselektor ohne die aktuelle Sprache angezeigt. Also genau das, was du wolltest.

Grüße Patrick

### [#4](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/4) · TheJoker · 2011-08-05

Ich habe mir die Extension runtergeladen und Konfiguriert.

Sie funktioniert auch fast so, wie ich das will. Jedoch klappt der wichtigste Teil, dass nur die Inaktive angezeigt wird, nicht.

Wenn ich auf der Deutschen Seite bin:
| Deutsch | Français

Und bei der Französischen:
| Deutsch | Français

Ich finde den Fehler einfach nicht.

```typoscript
plugin.tx_srlanguagemenu_pi1 {
 defaultLayout = 2 
 showCurrent = 0 
 defaultLanguageISOCode = ""
 languagesUidsList = 1,2
 }
```

Und innerhalb des PAGE-Object

```typoscript
subparts.lang < styles.content.getRight
```

Das Template

```html
	<h4>Text</h4>
	<!-- ###TEMPLATE_2### begin -->

		<!-- ###LINK_LIST### begin
			  This is the part of the template substituted with the list of links: 
		-->
			<!-- ###LINK_ENTRY### begin 
				Template for a single link 
			-->
				###LINK###
			<!-- ###LINK_ENTRY### end-->
		<!-- ###LINK_LIST### end -->
	<!-- ###TEMPLATE_2### end -->
```

Und die ext_typoscript_setup.txt

```typoscript
plugin.tx_srlanguagemenu_pi1 {

	templateFile = {$plugin.tx_srlanguagemenu_pi1.file.templateFile}

	useSysLanguageTitle = {$plugin.tx_srlanguagemenu_pi1.useSysLanguageTitle}
	languagesUidsList = {$plugin.tx_srlanguagemenu_pi1.languagesUidsList}
	hideIfNoAltLanguages = {$plugin.tx_srlanguagemenu_pi1.hideIfNoAltLanguages}

	target = {$plugin.tx_srlanguagemenu_pi1.target}

	defaultLayout = {$plugin.tx_srlanguagemenu_pi1.defaultLayout}

	list.showInactive = {$plugin.tx_srlanguagemenu_pi1.showInactive}
	link.INACT.stdWrap.if.isTrue = {$plugin.tx_srlanguagemenu_pi1.showInactive}
```

Ich habe nun schon so ziemlich jede Zeile zu editieren Probiert, hat allerdings nie was gebracht.

lg Joker

### [#5](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/5) · fiedomedia · 2011-08-05

Hallo Joker,

> **TheJoker schrieb:**
>
> Sie funktioniert auch fast so, wie ich das will. Jedoch klappt der wichtigste Teil, dass nur die Inaktive angezeigt wird, nicht.

Du hast alles ins Setup deines Templates geschrieben oder?

Du hast 2 Möglichkeiten:
Entweder in die Constants:

```typoscript
plugin.tx_srlanguagemenu_pi1.showCurrent = 0
```

Dann hast du im Setup:

```typoscript
plugin.tx_srlanguagemenu_pi1.link.CUR.stdWrap.if.isTrue = {$plugin.tx_srlanguagemenu_pi1.showCurrent}
```

(Du brauchst diese Zeile aber nicht, weil diese so Standard ist)

Oder gleich ins Setup:

```typoscript
plugin.tx_srlanguagemenu_pi1.link.CUR.stdWrap.if.isTrue = 0
```

Grüße Patrick

### [#6](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/6) · TheJoker · 2011-08-05

Hallo Patrick

Ich habe mir das Ganze nochmlas angeschaut.

Bei der Französischen Seite zeit es mir jetzt eigentlich Richtig an (abgesehen von "|")
| Deutsch

Bei der Deutschen Seite ist die Aktive allerdings immernoch da.
Deutsch | Français

Im Setup sieht es jetzt so aus

```typoscript
plugin.tx_srlanguagemenu_pi1 {
 defaultLayout = 2 
 defaultLanguageISOCode = ""
 languagesUidsList = 1,2
 link.CUR.stdWrap.if.isTrue = 0  
 } 
[...]
page.10 {
[...]
subparts.lang < styles.content.getRight
[...]
}
```

Und Bei den Constants:

```typoscript
plugin.tx_srlanguagemenu_pi1.useSysLanguageTitle = 1
plugin.tx_srlanguagemenu_pi1.useSelfLanguageTitle = 0
plugin.tx_srlanguagemenu_pi1.hideIfNoAltLanguages = 1
plugin.tx_srlanguagemenu_pi1.showCurrent = 0
plugin.tx_srlanguagemenu_pi1.doNotLinkInactive = 0
plugin.tx_srlanguagemenu_pi1.addSelectionListHeader = 0
plugin.tx_srlanguagemenu_pi1.defaultLayout = 2
plugin.tx_srlanguagemenu_pi1.defaultLanguageISOCode = De
plugin.tx_srlanguagemenu_pi1.defaultCountryISOCode = De
```

lg
Pascal

### [#7](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/7) · fiedomedia · 2011-08-05

Hallo,

ich hab jetzt zwar nicht ganz verstanden, wie es im Moment bei dir ausschaut, aber falls etwas nicht klappt, könntest du auch noch mit einer Condition arbeiten:

```typoscript
[globalVar = GP:L = 1]
plugin.tx_srlanguagemenu_pi1.languagesUidsList = 2
[global]

[globalVar = GP:L = 2]
plugin.tx_srlanguagemenu_pi1.languagesUidsList = 1
[global]
```

Was ist eig. deine Default-Sprache? (also die 0)

Grüße Patrick

### [#8](https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen/8) · TheJoker · 2011-08-08

Guten Morgen Patrick

Vielen dank für deine Hilfe.

Ich hab die Extension nochmals komplett Rausgeworfen.
Nach der Neuinstallation hat es komischerweise fast funktioniert.

Sprich: Es wird nur die Inatkive Sprache angeziegt. Allerdings steht anstelle von Deutsch noch German dort.
Dies habe ich gefixt, in dem ich per PhpMyAdmin in der Tabelle static_languages den Eintrag von Deutsch(ID 43) German zu Deutsch abgeändert habe.
Nun funktioniert alles so, wie es soll.

Sollte noch jemand probleme mit der Konfiguration haben, hier meine Komplette:
**Konstanten:**

```typoscript
#Namen aus der Tabelle SysLanguage verwenden
plugin.tx_srlanguagemenu_pi1.useSysLanguageTitle = 1
#Sprachnamen aus der Tabelle static_languages verwenden
plugin.tx_srlanguagemenu_pi1.useSelfLanguageTitle = 0
#Aktuelle Sprache anzeigen: 0 = Nein, 1 = ja
plugin.tx_srlanguagemenu_pi1.showCurrent = 0
#Inaktive sprache nicht verlinken
plugin.tx_srlanguagemenu_pi1.doNotLinkInactive = 0
# Bei der Liste einen Header hinzufügen
plugin.tx_srlanguagemenu_pi1.addSelectionListHeader = 0
# Iso-Code der Standardsprache
plugin.tx_srlanguagemenu_pi1.defaultLanguageISOCode = DE
# Layout auswählen: 0 = Flaggen, 1 = Dropdown, 2= Links
plugin.tx_srlanguagemenu_pi1.defaultLayout = 2
```

**Setup:**

```typoscript
### Die Sprache wird per GET-Variable "L" übergeben
config.linkVars = L
### Mehrsprachigkeit wird implementiert. Die Werte werden als globale Variable gespeichert
[globalVar = GP:L = 1]
  config {
### Die Sprache mit der ID 0 ist Deutsch
    plugin.tx_srlanguagemenu_pi1.languagesUidsList =0
### Sprache
    language =de
    locale_all = de_CH
 }
[global]
 
[globalVar = GP:L = 1]
  config {
### Sprachend ID 2 ist die ID, welche die Sprache Französisch hat.
    sys_language_uid =1
### Sprache wird auf Französisch festgelegt
    language =fr
    locale_all = fr_FR
 }
[global]
```

**Setup: Innerhalb des Page-Object:**

```typoscript
###  Dem lang-Subpart wird der Content aus der Spalte Rechts zugewiesen
subparts.lang < styles.content.getRight
```

Nochmals vielen Dank für deine Hilfe.

lg Pascal

---

Quelle: „Sprachswitch soll nur Inaktive Sprache anzeigen“, typo3.net, https://www.typo3.net/d/106647-sprachswitch-soll-nur-inaktive-sprache-anzeigen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
