---
title: "Deutsch für deutschen Browser"
url: "https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser"
source: "typo3.net"
tags: ["TYPO3","Mehrsprachigkeit","Frage","RealURL"]
created: "2009-03-18"
last_reply: "2009-03-19"
replies: 4
solved: false
page: 1
pages: 1
lang: "de"
---

# Deutsch für deutschen Browser

TYPO3 › Mehrsprachigkeit · 4 Antworten · gestartet 2009-03-18

## Eröffnungsbeitrag

**holo** · 2009-03-18 · [Beitrag #1](https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser/1)

Hallo,

meine Seite hat zwei Spachen. Deutsch ist ist Standardsprache im Backend, Englisch ist die zusätzliche Sprach mit der id=1.

Zur Zeit bekommt jeder beim Aufruf der Seite die englische Seite. Die Sprache kann aber auch explizit per Realurl-Parameter in der URL gesetzt werden (so funktioniert auch mein Sprachwahlmenü).

Also ich hätte das gerne so:

www.seite.com/ -> englisch / oder deutsch, wenn der Browser deutsch ist
www.seite.com/en/ -> englisch
www.seite.com/de/ -> deutsch

Ich habe heute schon mal ein bisschen mit **rlmp_language_detection** und **static_info_tables** (oder so ähnlich) gespielt, bin aber zu keinem Ergebnis gekommen. Viel schlimmer: Es ist mir zweimal passiert, dass sich beide Extensions einfach ungefragt wieder deinstalliert haben  :o

Hier mal mein TScript:

```typoscript
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1 
config.baseURL = http://www.seite.com/

config.linkVars = L

# Standard Sprache ist Englisch
config.sys_language_uid = 1
config.language = en
config.locale_all = english

# deutsch
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]

# Englisch
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = english
[global]
```

und der localconf.php Schnipsel:

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

Sind die obigen Einstellungen eine gute Grundlage?
Und wie bekomme ich das mit der Sprache je nach Browser am besten hin?

MfG, holo

## Antworten

### [#2](https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser/2) · Julian.​Hofmann · 2009-03-19

Hallo.

Der bisherige Code sollte passen (wenn die sys_language_uid-Werte in Deiner Installation auf entsprechend sind).

Für die Weiche via Browsersprache hilft Dir eine [language-Condition](https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html#condition-function-request-getheaders)

Viele Grüße
Julian

### [#3](https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser/3) · holo · 2009-03-19

Das funktioniert auch fast. Ich habe das dann so geschrieben:

```typoscript
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1
config.baseURL = http://www.seite.com/
 
config.linkVars = L
 
# Standard Sprache ist Englisch
config.sys_language_uid = 1
config.language = en
config.locale_all = english
 
# deutsch
[globalVar = GP:L = 0]  || [language = *de*]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]
 
# Englisch
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = english
[global]
```

Soweit funktioniert alles. Wenn ich mit einem deutschen Browser komme, ist seite.de/eineSeite/ deutsch, wenn ich mit einem anderen Browser komme, ist seite.de/eineSeite/ englisch.

Allerdings gibt es dann Probleme wenn ich die Sprache umschalten will. Der Umschalter hängt einfach /de( oder /en/ vor die URL. Auf der Seite direkt nach dem Umschalten sind jetzt aber die Links falsch, d.h. die haben das Sprachkürzel nicht mehr drin.

Beispiel: Cache wird gelöscht. Ich rufe mit einem deutschen Browser seite.de/einSeite auf. Diese wird in deutsch angezeigt und allen Links auf der Seite fehlt das Sprachen-Prefix auf der Seite.
Dann kommt ein englischer Browser auf seite.de/einSeite. Er bekommt die Seite mit der obigen Konfiguration auf englisch angezeigt. Jetzt wählt er im Sprachmenü 'deutsch' aus, und wird auf seite.de/de/einSeite geleitet. Die wird jetzt auch deutsch angezeigt. Allerdings kommt die Seite aus dem Cache und allen Links fehlt das Sprachen-Prefix. (Denn als die Seite im Cache erstellt wurde (das hat der deutsche Browser gemacht) brauchte man die ja nicht).

Was kann man da machen?
Es würde schon helfen, dass wenn ein deutscher Browser kommt einfach gleich allen Links das Sprachen-Prefix (also das /de/ in der URL) mitgegeben wird. Wie schafft man das?

### [#4](https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser/4) · Julian.​Hofmann · 2009-03-19

Das ist jetzt ein Logik-Problem:
Du setzt die Sprache via Browser-Sprache. Wenn nun ein User die Sprache per Sprachwechsler umschaltet, dann greift dennoch die language-Condition. D.h. Du müsstest TYPO3 dazu bringen, sich eine explizite Entscheidung des Users gegen die browserabhängige Defaultsprache zu merken (z.B. indem ein Cookie im Sprachwechsler gesetzt wird, das in der Condition mit abgefragt wird).

Für die Defaultsprache (sys_language_uid=0) stetzt realurl nichts an die URL - da es ja keine Unterscheidung braucht. Jedoch *kann* die URL auch mit Sprachzusatz aufgerufen werden.
Insofern dürfte das Verhalten richtig sein.

### [#5](https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser/5) · holo · 2009-03-19

So ich habs jetzt gelöst:

1. static_info_tables und rlmp_language_detection installiert
(dass die sich gestern von selbst deinstalliert haben, lag daran dass ich aus versehen eine alte localconf.php hochgeladen hatte)
2. den Parameter debug = 1 für plugin.tx_rlmplanguagedetection_pi1 entdeckt. Der gibt ein paar hilfreche Sachen aus
3. rlmp_language_detection so angepasst, dass die verfügbaren Sprachen nicht mehr aus der Datenbank gelesen werden (funktionierte irgendwie nicht richtig). Jetzt isses halt hardcoded, aber so viel ändert sich ja an den Sprachen auch nicht.
4. rlmp_language_detection so angepasst, dass der Fallback (Browser spricht eine Sprache, die die Seite nicht hat) auf Sprachen-UID = 1 geschieht (tja, deutsch war mal Ausgangsprache, aber die englische Übersetzung ist jetzt der Standard)

=> Deutsche Browser werden jetzt beim Aufruf von seite.de auf seite.de/de/home umgeleitet, englische Browser und anderweitige Ausländer dürfen auf seite.de/ verbleiben. seite.de/en/ funktioniert auch noch, falls man jemandem mit einem deutschen Browser mal was auf einer englischen Seite zeigen will

---

Quelle: „Deutsch für deutschen Browser“, typo3.net, https://www.typo3.net/d/88079-deutsch-fuer-deutschen-browser
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
