---
title: "Sprachauswahl Codeschnipsel"
url: "https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel"
source: "typo3.net"
tags: ["TYPO3","Mehrsprachigkeit","Frage"]
created: "2003-04-14"
last_reply: "2003-05-12"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Sprachauswahl Codeschnipsel

TYPO3 › Mehrsprachigkeit · 3 Antworten · gestartet 2003-04-14

## Eröffnungsbeitrag

**maxhb** · 2003-04-14 · [Beitrag #1](https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel/1)

Hi!
Vielleicht stört es andere Leute ja auch, dass man unter Typo bei der Feststellung der bevorzugten Sprache eines Benutzers auf Probleme stösst, wenn mehr als eine Sprache eingestellt ist.

```typoscript
[language = de]
  # Deuscthe Sprache
[else]
  # Andere Sprache, z.B. Englisch
[end]
```

Dieser Code sieht zwar sehr "sprechend" aus, produziert aber Fehler, wenn ein Benutzer z.B. Deutsch (Primäre Sprache) UND Englisch(Alternative Sprache) im Browser als Sprache eingestellt hat. Dies liegt daran, dass ein exakter Match mit $HTTP_ACCEPT_LANGUAGE gesucht wird, dieser Wert aber in meinem Beispiel mit "de,en" belegt ist. Ergebnis: Es wird der else-Zweig ausgeführt und Englisch als Sprache gewählt  :(

Um dieses "Problem" zu lösen habe ich ein kleiens PHP-Script geschrieben, dass etwas genauer mit $HTTP_ACCEPT_LANGUAGE vergleicht...

```php
function user_match($language) {
//--------------------------
// Purpose:      Detects the user-preferred languages, compares them with offered langauges and returns the best fitting language output
// Input:        Language to check for.
// Output:       Returns true if $wanted-language is the FIRST language of $array_offered_langs found, false otherwise
// Side Effects: None
//--------------------------
	global $HTTP_ACCEPT_LANGUAGE;
	// List of languages to check for
	$array_offered_langs = array("de","en");

	$array_accepted_langs = explode(",",$HTTP_ACCEPT_LANGUAGE);

	foreach ($array_accepted_langs as $str_testlang) {
	// Compares the browser-sent "accepted languages" step by step with the offered languages.
		foreach ($array_offered_langs as $tmp_off_lang) {
			if ( stristr($str_testlang,$tmp_off_lang) ) {
				$str_selected_lang = $tmp_off_lang;
				break;
			}
		}
		if (isset($str_selected_lang)) break;
	}
	return ($str_selected_lang == $language);
}
```

Dieses Scriptsucht aus den angebotenen Sprachen der Website (de,en) diejenige heraus, die laut Browsereinstellungen bevorzugt wird bzw. es überprüft ob die als Funktionsparameter übergebene Sprache gewählt werden sollt.

```typoscript
#--------------------- SPRACHSETUP START
config.linkVars = L

# Browsersprache Deutsch?
[userFunc = user_match(de) ]
  # Ja = Sprache auf Deutsch setzen
  config.sys_language_uid = 0 
  config.language = de 
  config.locale_all = de_DE
[else]
  # Nein, dann Englisch wählen
  config.sys_language_uid = 1 
  config.language = en 
  config.locale_all = english 
[global]

# Auswertung URL-Parameter
# Überschreiben Browsereinstellungen

# German language, sys_language.uid = 0 
[globalVar = GP:L = 0] 
config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE 
[global] 

# English language, sys_language.uid = 1 
[globalVar = GP:L = 1] 
config.sys_language_uid = 1 
config.language = en 
config.locale_all = english 
[global]

#--------------------- SPRACHSETUP ENDE
```

Man sieht den gewohnten Code zur Sprachauswahl nur um den Funktionsaufruf des obigen Scriptes ergänzt. Dieser Code überprüft, ob Deutsch (de) die bevorzugte Sprache ist und trifft die entsprechenden Einstellungen, wenn dies der Fall ist. Anderenfalls wird Englisch als Sprache eingestellt. Anschliessend der gewünschte Code zur Auswertung der per URL übergebenen Sprachauswahl, der ggf. die Einstellungen überschreibt.

So, viele Wort für wenig Code verschwendet, aber mir hat dieses Script geholfen und vielleicht kann es noch jemand verwerten ;)

Fragen einfach als Reply and dieses Posting...

cu
  maxhb

## Antworten

### [#2](https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel/2) · kurfuerst · 2003-04-14

Hallo!
Kann ich das auf die <http://typo3faq.net> nehmen?
Ich finde es nämlich sehr gut ;-)

Vielen Dank,
Sebastian

### [#3](https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel/3) · maxhb · 2003-04-14

Hi Sebastian!
Kannst Du gern machen, aber vielleicht sollten wir vorher noch ein paar Kommentare abwarten, denn da kommen bestimmt noch Fragen... Ist ja erst wenige Minuten online...

cu

maxhb

### [#4](https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel/4) · maxhb · 2003-05-12

Hi!
Scheinbar hat jemand die Idee der Spracherkennung aufgenommen und eine entsprechende Extension geschrieben, siehe

```plaintext
http://typo3.org/1383.0.html?&tx_extrepmgm_pi1[mode]=1&tx_extrepmgm_pi1[showUid]=565
```

---

Quelle: „Sprachauswahl Codeschnipsel“, typo3.net, https://www.typo3.net/d/2175-sprachauswahl-codeschnipsel
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
