• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Ländererkennung bei URLs....

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Hallo zusammen!!!

Ich möchte folgendes haben:

1 Website in 2 Sprachen. Das realisiere ich mit Joomla und Joomfish! (oder kann mir jemand sagen wieso ich das nicht sollte, btw. ?)

Wenn man auf "meineseite.com" geht kommt man auf die Englische Version der Webseite.

Wenn man auf "meineseite.de" geht kommt man auf die Deutsche Version der Webseite.ABER: In der Form, dass man automatisch weitergeleitet wird auf "meineseite.com/de".

Das bekomme ich mit meinen Domains und Host-Europe usw. denke ich hin.

Aber ich möchte noch ein Special: Wenn man in Deutschland an einem Computer sitzt und man auf "meineseite.com" geht soll automatisch erkannt werden dass dieser Computer in Deutschland steht und man landet dennoch auf "meineseite.com/de"

Wie geht sowas ? Tutorials ? Links ? usw. ?

Ich danke euch vielmals und schonmal ein guten Rutsch an alle!

Kaisch0
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
Standortabfrage ist immer heikel. Das solltest du am besten vergessen. Du solltest es am besten über die Spreche des Browser (Abfrage über JS) oder über den PHP Header herauslesen (was die sinnvollste Variante ist) welche Sprache der Browser bevorzugt.

Nachtrag:
im PHP-Request Header enthalten: "User-Agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; de-de) AppleWebKit/532.8+ (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"
Da erkennst du die Sprache des Browsers über PHP, also wenn die Stringfolge "de-de" in diesem HEader steht, soll das Skript auf .com/de umleiten, wobei aber /de in den meisten Fällen eine PHP Variable ist, so wird eigentlich auf die gleiche index.php verwiesen, nur mit einer Sprachvariable
 
  • Like
Reaktionen: below

Synoxis

Sonnenwirtsapfel
Registriert
09.06.09
Beiträge
2.401
Ich hab so eine Erkennung schon bei einigen Wordpress Blogs gesehen, vielleicht schaust du dort einfach mal nach wie die das gelöst haben?
 

Sam Razr

Granny Smith
Registriert
09.11.09
Beiträge
16
Direkt am Anfang einer PHP-Seite einbinden:


Code:
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ;

if($lang == "de")
{
header('Location: http://www.domain.com/de');
}
else
{
header('Location: http://www.domain.com/int');
}

Sam
 

Pascaaal

Macoun
Registriert
14.06.09
Beiträge
122
Nur scheiße, dass $_SERVER['HTTP_ACCEPT_LANGUAGE'] nicht immer nur "de" enthält, sondern auch mal "de_DE" oder gar "de_DE; en" ;)

Wenn, dann mit strstr() bzw. strpos() arbeiten. Allerdings wird dann die Konstellation "en; de" falsch behandelt, weil in dem Fall Englisch vor Deutsch bevorzugt wird.
 
Zuletzt bearbeitet:

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Ich finde es total nervig, wenn eine Website mir vorschreibt, in welcher Sprache ich sie betrachten soll.

Was machst Du mit Leuten, die Englisch sprechen und im Urlaub in Deutschland sind? EDIT: In einem Internetcafe ist wahrscheinlich der Browser auf "DE", und ihre IP ohnehin.

Alex
 

Pascaaal

Macoun
Registriert
14.06.09
Beiträge
122
Man könnte ja noch eine manuelle Umschaltlösung anbieten? Die automatische Auswahl ist jedenfalls komfortabler als z.B. eine vorgeschaltete Seite zur Sprachauswahl, bevor man überhaupt zur Seite gelangt.
 

Sam Razr

Granny Smith
Registriert
09.11.09
Beiträge
16
Nur scheiße, dass $_SERVER['HTTP_ACCEPT_LANGUAGE'] nicht immer nur "de" enthält, sondern auch mal "de_DE" oder gar "de_DE; en" ;)

Wenn, dann mit strstr() bzw. strpos() arbeiten. Allerdings wird dann die Konstellation "en; de" falsch behandelt, weil in dem Fall englisch vor deutsch bevorzugt wird.

Ok, hab ich eben auf die schnelle nicht dran gedacht. Hatte mich nur vage an die Php Referenz erinnert, wo was von return "en" stand. Aber so müsste es klappen:
Code:
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ;

if(strpos($lang, "de") !== false)
{
header('Location: http://www.domain.com/de');
}
else
{
header('Location: http://www.domain.com/int');
}

Optimal ist das natürlich nicht. Ich würde auch immer gut sichtbar eine Britische/Amerikanische Flagge anbringen, die dann auf die Englische Seite verlinkt.
 

Pascaaal

Macoun
Registriert
14.06.09
Beiträge
122
Da ich nichts besseres zu tun habe, hab ich mich mal daran gesetzt und mir Gedanken gemacht. Ich hoffe, dass mein negatives Karma bald verschwindet ;)

Die Hauptseite ist http://www.domain.com. Diese ist Englisch. Nur wenn die Sprache Deutsch ist, wird auf www.domain.com/de weitergeleitet, ansonsten bleibt es bei http://www.domain.com.

Code:
<?php

    if(preg_match("^de",$_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        header("Location: http://www.domain.com/de");
    }

?>

Dies soll bewirkt, dass nur ein "de" am Anfang von $_SERVER['HTTP_ACCEPT_LANGUAGE'] gesucht wird. Bei der Methode mit strpos() würde jedes "de" in $_SERVER['HTTP_ACCEPT_LANGUAGE'] gefunden werden, weshalb auch eine Konstellation alà "en; de" als Deutsch interpretiert werden würde, obwohl es bedeutet, dass Englisch der Deutschen Sprache bevorzugt wird.

Das kommt einfach in die Startseite bei http://www.domain.com, da diese ja immer aufgerufen wird. http://www.domain.de könnte ja direkt auf http://www.domain.com/de zeigen oder auf http://www.domain.com, wo dann eh weitergeleitet wird, falls die Sprache Deutsch ist.

Natürlich kann auch der Fall eintreten, dass man in einem Internetcafè mit einem deutsche Browser ist, allerdings lieber Englisch hätte. Für den Fall sollte eine manuelle Auswahlmöglichkeit bestehen.
 
  • Like
Reaktionen: BobRoss

Pascaaal

Macoun
Registriert
14.06.09
Beiträge
122
Ja, aber http://www.domain.com wurde in vorherigen Beiträgen als Beispiel verwendet, weshalb ich sie weiter verwendet hab. Für dieses Unternehmen ist es natürlich gute Werbung :-D
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Ah, Sam Razr ist der Domainregistrar?

Oder sollte er vielleicht RFC 2606 lesen?

Alex
 

Pascaaal

Macoun
Registriert
14.06.09
Beiträge
122
Nein? Hab ich doch nie behauptet.

Ja, das sollte er mal lesen.
Für alle die es nicht wissen: Man soll example.org, example.net oder example.com bzw. die Domainendungen .test, .example, .invalid oder .localhost als Beispieldomains verwenden, da diese von der IANA dafür reserviert wurden ;)