Zum Inhalt springen

Alternative Multidomain / -sprache / -site Konfigurationen

Erstellt am 13. September 2010 · 9 Antworten · letzte Antwort am 13. September 2010

Tags: URLs & Routing, Frage

rpfaff ·

Hallo,

ich habe überlegt ob es möglich ist, den Ansatz einer Typo3 Seite für mehrere Länder anders zu lösen als über den Seitenbaum mit mehreren Domains.

Hintergrund ist der folgende:

Es soll eine Website für mehrere Länder in unterschiedlicher Sprachverteilung erstellt werden, die von den Benutzern in den verschiedenen Ländern bearbeitet werden können.

Zur Verdeutlichung der Sprachen:

example.de
-- deutsch
-- englisch
example.fr
-- französisch
example.se
-- englisch
example.es
-- spanisch
-- englisch

Warum gibt es jetzt dreimal englisch?

Das Ganze liegt daran, dass das zentrale Element der Seite ein Produktbaum ist, den sich die Länder unterschiedlich teilen. Ein Produkt kann in allen Ländern oder nur in n Ländern (beliebige Kombination) verkauft werden.

Meine Idee war es jetzt eine Site mit einem Baum aufzubauen und mehrere Sprachen anzulegen:

de-de
de-en
fr-fr
se-en
es-es
es-en

Diese würde ich dann per URL rewrite umleiten. Sprich, wenn jemand auf eine Seite

www.example.fr/index.php?id=12345

bekommt er per URL Rewrite die Seite

www.example.de/index.php?id=12345&L=3

angezeigt.

Die Spracheinstellungen im Typoscript lassen ja zu, dass man dann in Listungen Seiten, die keine Übersetzung für den L Parameter haben ausblenden kann, somit wäre auch garantiert, dass man in dem Land nur die Seiten (Produkte) sehen kann, die man auch sehen darf.

Klingt das nach einem handlebaren Ansatz?

Grüße
Roger

igorshmigor ·

Aber dann müsstest du die englische Übersetzung doch trotzdem dreimal anlegen, nur eben in einem Seitenbaum. Einmal als de-en, einmal als se-en und einmal als es-en. Oder sehe ich das falsch? Viel hast du damit nicht gewonnen. Im Gegenteil, die Redakteure der verschiedenen Länder würden im Backend alle Seiten sehen, selbst die, die für ihr Land nicht bestimmt sind. Und es gäbe im Seitenbaum keine Möglichkeit, zu erkennen, welche Seite für welche Länder gilt. Wohingegen du bei dem Multitree-Konzept für jeden Redakteur jeweils einen Seitenbaum freigeben kannst und jeder nur das sieht, was er braucht.

Warum bekommen die Franzosen eigentlich als einzige keine englische Übersetzung?

rpfaff ·

Das die Redakteure alle Sprachen sehen ist ok und gewünscht. Nur die Kunden bzw. Besucher der Länderseite dürfen nicht alle Produkte sehen, sondern eben nur die, für die es in Ihrer Sprache auch eine Seite gibt.

Ich bemerke aber gerade, dass ich nicht nur die tld (de, fr, es, se) brauche sondern natürlich auch noch eine Sprachkennzeichnung in der URL, so wie example.de/en oder example.de/de

Und die Franzosen bekommen keine englische Übersetzung, weil die ja alle französich können und wollen. 😉

igorshmigor ·
rpfaff schrieb

Ich bemerke aber gerade, dass ich nicht nur die tld (de, fr, es, se) brauche sondern natürlich auch noch eine Sprachkennzeichnung in der URL, so wie example.de/en oder example.de/de

Wieso, ich dachte du wolltest das mit dem L-Parameter lösen. Da du sechs Sprachen anlegst, gibt es doch für jede Kombination (de-de, de-en, es-en, es-es, ... ) einen entsprechenden Parameter.

rpfaff ·

Ja richtig, es gibt ansich immer einen L Parameter, aber im deutschen z.B. habe ich ja nur die Domainendung de, wie will ich da unterscheiden ob derjenige deutsch oder englisch sehen will bzw. wie kann man jemandem eine de-en Startseite präsentieren.

Beim URL rewrite wird ja das L in Abhängigkeit der RewriteCondition umgeschrieben und da reicht mir bei zwei Sprachen auf der Domain die Domainendung nicht als Unterscheidung.

igorshmigor ·

Naja, entweder du schaltest eine Sprachauswahl-Seite vor, oder man landet standardmäßig auf der deutschen Seite und kann dann umschalten. Ich glaube nicht, dass jemand, der die deutsche Seite auf englisch sehen will direkt domain.de/en/ eingeben wird. Ansonsten gibt es ja noch die Extension rlmp_language_detection, welche in Abhängigkeit der im Browser eingestellten Standardsprache weiterleitet. Das könnte allerdings kompliziert werden, wenn du außerdem noch eigene Weiterleitungen eingerichtet hast.

igorshmigor ·
rpfaff schrieb

Beim URL rewrite wird ja das L in Abhängigkeit der RewriteCondition umgeschrieben und da reicht mir bei zwei Sprachen auf der Domain die Domainendung nicht als Unterscheidung.

Jetzt verstehe ich gar nichts mehr.

Ich hatte das bis jetzt so verstanden:
User gibt domain.de ein und landet auf: domain.de (kein L-Parameter nötig, wenn dies die Standard-Sprache ist.)
User ist auf domain.de und möchte die Seite auf deutsch sehen: User klickt auf englische Flagge und wird auf domain.de/?L=1 geleitet.
User gibt domain.fr ein und landet auf:domain.de/L=2
User gibt domain.es ein und landet auf:domain.de/L=3
User ist auf domain.es und möchte es aber auf englisch sehen: er klickt auf die englische Flagge und landet auf domain.de/L=4

rpfaff ·

Ja, wie gesagt, die Problematik kommt dann auf, wenn der Rewrite einsetzt, der dem Besucher ja immer eine .de .fr .es .se Seite zeigt. Also die Domain, die der Besucher sieht ist immer seine Landesdomain und ein Deep Link auf

example.fr/index.php?id=12345 muss auch möglich sein und nicht dur example.de/... ausgetauscht werden.

igorshmigor ·

Das Problem sehe ich noch immer nicht, auch nicht mit Deeplinks, die kann man ja genauso weiterleiten, ohne die Seiten-ID zu verlieren. Z.B. example.fr/index.php?id=12345 auf example.de/index.php?id=12345&L=2. Du musst die Weiterleitungen halt per htaccess machen.

Abgesehen davon, warum überhaupt auf die .de umleiten? Du kannst doch auch die landesspezifische Domainendungen beibehalten und die sys_language_uid in Abhängigkeit der Kombination domain und L-Parameter setzen.
z.B.

[hostname = *.domain.es]
sys_language_uid=3
[hostname = *.domain.es] && [globalVar = GP:L=4]
sys_language_uid=4
rpfaff ·
[hostname = *.domain.es]
sys_language_uid=3
[hostname = *.domain.es] && [globalVar = GP:L=4]
sys_language_uid=4

Mensch, das ist natürlich der Tipp des Tages.

Bzgl Weiterleitung: Die soll es in dem Sinne ja auch nicht geben. Der Besucher soll auf seiner Länderkennung bleiben.