Zum Inhalt springen

Pro Sprache eine eigene Domain

Erstellt am 11. Januar 2007 · Noch keine Antworten

Tags: Frage

tstening ·

Hallo zusammen,

ich adminsitriere eine Webseite mit 5 Sprachen (Typo3 3.8, RealUrl 0.3.0). Derzeit ist es so gelöst, dass beim Aufruf von "www.domain.de" die deutsche Seite angezeigt wird (Standardsprache), bei Aufruf von "www.domain.it" die italienische Version, usw. Was mir nun auffällt ist folgendes:

Gebe ich "www.domain.it" ein, erhalte ich zwar die italienischen Texte und Menüs, aber die Links sind in deutsch. Gebe ich hingegen "www.domain.it/it/" ein, sind auch die Links in italienisch. Dies gilt analog auch für die anderen Sprachen. Nun hätte ich ja die Möglichkeit, in der .htaccess die Konfiguration so zu gestalten:

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.it
RewriteRule ^$ /it [R=301,L]

Mir wäre es aber lieb, wenn ich das ins TypoScript des Templates verlagern könnte. Hier mal meine aktuelle Konfiguration:

localconf.php

$TYPO3_CONF_VARS['EXTCONF']['realurl']['www.kyowa.it'] = array(
     'init' => array(  
          'enableCHashCache' => 'TRUE',  
     ),  
        'preVars' => array(  
                array(  
                        'GETvar' => 'L',  
                        'valueMap' => array('en' => '3', 'de' => '4', 'fr' => '5', 'it' => '6', 'es' => '7' ),  
               'valueDefault' => 'it',  
                        'noMatch' => 'bypass',  
                ),  
        ),  
        'pagePath' => array(  
                'type' => 'user',  
                'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',  
                'rootpage_id' => 404,  
                'spaceCharacter' => '-',  
                'languageGetVar' => 'L',  
                'expireDays' => 1,  
        ),  
        'fileName' => array (
                'index' => array(  
                        '_DEFAULT' => array( 'keyValues' => array( ) ),  
                ),  
        ),
	 '_DEFAULT' => array(
                'type' => 'notfound'    // If key was not found in index, throw "404" not found.
        ),
);

Die anderen Sprachen haben jeweils eine anloge Konfiguration.

Weiter gehts im Template der Seite. Dort sieht der TypoScript-Code folgendermaßen aus:

page.config.linkVars = L
page.config.sys_language_uid = 3
page.config.language = en_IE
page.config.locale_all = en_IE@euro

[globalString = HTTP_HOST= *domain.nl]
  page.config {
    sys_language_uid = 3
    language = en_IE
    locale_all = en_IE@euro
  }
[global] 
[globalString = HTTP_HOST= *domain.pl]
  page.config {
    sys_language_uid = 3
    language = en_IE
    locale_all = en_IE@euro
  }
[global] 
[globalString = HTTP_HOST= *domain.de]
  page.config {
    sys_language_uid = 4
    language = de_DE
    locale_all = de_DE@euro
  }
[global]
[globalString = HTTP_HOST= *domain.at]
  page.config {
    sys_language_uid = 4
    language = de_DE
    locale_all = de_DE@euro
  }
[global]
[globalString = HTTP_HOST= *domain.ch]
  page.config {
    sys_language_uid = 4
    language = de_DE
    locale_all = de_DE@euro
  }
[global]
[globalString = HTTP_HOST= *domain.be]
  page.config {
    sys_language_uid = 5
    language = fr_FR
    locale_all = fr_FR@euro
  }
[global]
[globalString = HTTP_HOST= *domain.es]
  page.config {
    sys_language_uid = 7
    language = es_ES
    locale_all = es_ES@euro
  }
[global]
[globalString = HTTP_HOST= *domain.it]
  page.config {
    sys_language_uid = 6
    language = it_IT
    locale_all = it_IT@euro
  }
[global]

[globalVar = GP:L = 3]
  page.config {
    sys_language_uid = 3
    language = en_IE
    locale_all = en_IE@euro
  }
[global]

[globalVar = GP:L = 4]
  page.config {
    sys_language_uid = 4
    language = de_DE
    locale_all = de_DE@euro
  }
[global]

[globalVar = GP:L = 5]
  page.config {
    sys_language_uid = 5
    language = fr_FR
    locale_all = fr_FR@euro
  }
[global]

[globalVar = GP:L = 6]
  page.config {
    sys_language_uid = 6
    language = it_IT
    locale_all = it_IT@euro
  }
[global]

[globalVar = GP:L = 7]
  page.config {
    sys_language_uid = 7
    language = es_ES
    locale_all = es_ES@euro
  }
[global]

Der obere Teil des TypoScript-Codes sorgt dafür, dass je nach Domain die richtige Sprache eingestellt wird. Der untere Teil schaltet je nach dem Wert des URL-Parameters L die Sprache um.

Kann ich den oberen Code so erweitern, dass ich innerhalb von Typo3 z.B. schon bei Eingabe von "www.domain.it" das selbe erreiche, wie bei "www.domain.it/it/"?

Wenn ich meinen Code noch richtig verstehe, dann sorgt doch der TypoScript-Code dafür, dass bei Verfügbarkeit des URL-Parameters L die Locale gesetzt wird. Habe ich L nicht zur Verfügung, greift zumindest der Block davor, der anhand der Domain die Sprache setzt.

Da es trotzdem ein Unterschied darstellt, ob ich nun "www.domain.it" oder "www.domain.it/it/ eingebe, schließe ich daraus, dass da RealURL nicht ganz das macht, was ich erwarte. Gebe ich übrigens z.B. "www.domain.de/it/" erhalte ich erwartungsgemmäß auch die italienischen Seiten inkl. italinischen Links.

Hat jemand eine Idee, was ich anpassen muss, um in den Genuss von landessprachlichen Links zu kommen?

Viele Grüße,
Tobias :-)