Zum Inhalt springen
ThreadSonstige

Internationalisierung von Seiten

Kategorie
Sonstige
Gelesen
1801
Antworten
9
Erstellt von: gelöschter Benutzer Datum: 21.09.2013, 08:53 Uhr

Startbeitrag

Originaler Foreninhalt in modernisierter Darstellung.

Zur Kategorie
gelöschter Benutzer
Threadstart · Sonstige 1801 mal gelesen · 21.09.2013, 08:53 Uhr

Hallo liebe Forenmitglieder,

seit kurzer Zeit verfolge ich interessiert eure Postings und Tipps. Toll ist, dass hier besonders kompetent und freundlich gepostet wird und im Gegensatz zu anderen Foren niemand beschimpft oder beleidigt wird.

Nach langem erfolglosen Googeln - ich weiss nicht wonach ich suchen soll bzw. welche Suchphrase hilfreich ist - hoffe ich hier auf Tipps, Hinweise oder gar eine Lösungsmöglichkeit.

Nun zu meiner Frage:
Ich versuche auf einer noch nicht veröffentlichten Homepage eine automatische Weiterleitung auf die entsprechende Sprache bzw. das Land.
Mittels der IP-Adresse des Besuchers soll das Land erkannt werden. Dann soll die entsprechende Seite (anstatt der üblichen Startseite mit Flaggen) auf unserer Homepage angezeigt werden.
Beispiel:
Besucher aus Deutschland: www. meine-neue-seite .com/deu
Besucher aus Österreich: www. meine-neue-seite . com/aut
Besucher aus Frankreich: www. meine-neue-seite . com/fra

Die nächste Frage ist natürlich, wie sich die Bots in diesem Fall verhalten, die kommen ja selten aus Deutschland/ Österreich/ Frankreich. Sind Sie verwirrt und finden dann die erstellten Seiten nicht? Indexieren und besuchen sie dann nur die englisch-sprachigen Seiten?

Herzlichen Dank für eure Postings

Lara

Antworten

9 Beiträge
Kauffrau Content Halbgott (862 Beiträge)
am 21.09.2013, 09:26 Uhr schrieb winelady
Antwort

Hallo Lara,

willkommen im Forum. Stimmt, hier herrscht meist ein sehr freundlicher und umgänglicher Ton, und wenn sich jemand ganz arg daneben benimmt, bekommt er/sie eher keine als eine giftige Antwort.

Die Weiterleitung der Besucher nach IP ist grundsätzlich ein interessanter Gedanke – allerdings sehe ich darin auch einige Schwierigkeiten:

1. Was machst Du mit Besuchern aus Ländern, deren Sprache Du nicht anbietest? Du könntest sie z.B. grundsätzlich auf die engl. Version leiten, aber wer dann kein Englisch kann, sollte zu einer Sprache seiner Wahl wechseln können.

2. Was machst Du mit mehrsprachigen Ländern? Schau z.B. mal in die Schweiz oder nach Belgien, wo es mehrere offizielle Sprachen gibt, deren Sprecher ggf. auch unwillig reagieren können, wenn Du ihnen die "falsche" Sprache servierst.

Du wirst also um eine Lösung mit Fähnchen oder sonstwie um den Sprachwechsel nicht herumkommen.

Die Bots könntest Du mittels ihrer IP eventuell von der Weiterleitung ausschließen, vielleicht reicht aber auch die sitemap.xml, um die Suchmaschinen zu steuern.

Gruß
winelady


Weinvielfalt aus dem Weingut Fuchs
Fremdsprachensatz
gelöschter Benutzer
am 21.09.2013, 10:08 Uhr schrieb
Antwort

Hallo winelady,

vielen Dank für die schnelle Reaktion und weiteren Hinweise.

zu Frage1: diese kommen auf die Startseite www. meine-neue-seite . com
zu Frage2: diese sollen auf die Seite: www. meine-neue-seite . com/sui
geleitet werden (die erstmal in deutsch erstellt wird, Inhalt wird aber anders sein als die Seite für Besucher aus Deutschland).

Ob für die bots eine sitemap.xml ausreicht, weiss ich leider nicht.

Gruß
Lara


Foren Moderator Evil Genius Content Halbgott (973 Beiträge)
am 21.09.2013, 13:03 Uhr schrieb matthes
Antwort

Dieser Weg ist mMn relativ unzuverlässig. Verwende stattdessen lieber den Accept-Language-HTTP-Header. Das spart auch zeitraubende Abfragen der Herkunft der IP.

Bots würde ich eine Sitemap vorlegen und direkte Aufrufe einer Sprachversion nicht umleiten.
D.h. wenn jemand example.com aufruft, über Accept-Language z.B. auf example.com/en/ umleiten, wenn aber jemand direkt example.com/de/ aufruft, nichts ändern, selbst wenn die Sprache anders ist.

Und denk daran, die lang-Attribute zu setzen, damit Bots auch wissen, welche Sprache sie gerade sehen.

Habe ich so für einen internationalen Immobilienhändler gelöst und es klappt hervorragend.


Make Seitenreport great again!
gelöschter Benutzer
am 21.09.2013, 13:15 Uhr schrieb
Antwort

Hallo Matthes,

das klingt super. Aber was ist der Accept-Language-HTTP-Header?

Foren Moderator Evil Genius Content Halbgott (973 Beiträge)
am 21.09.2013, 20:13 Uhr schrieb matthes
Antwort

Das ist eine Information, die der Browser beim Abruf einer Seite an den Server überträgt und in der die akzeptierten Sprachen nach einer Gewichtung vorhanden sind. Also genau das, was für solche Zwecke wie den Deinen verwendet werden sollte.

Ist im Server-Array verfügbar:
$_SERVER[\'HTTP_ACCEPT_LANGUAGE\']


Make Seitenreport great again!
gelöschter Benutzer
am 21.09.2013, 21:14 Uhr schrieb
Antwort

Okay, das habe ich jetzt verstanden. Vielen Dank für die Erklärung. Nun konnte ich besser recherchieren und erreiche hoffentlich bald das Ziel.

Wenn ich das jetzt (beim googlen) richtig verstanden habe, muss ich einen php-code auf die Startseite einbauen und so auf die verschiedenen länderspezifischen Seiten weiterleiten?

<?php
$sprache = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
switch($sprache) { case \'de-de\':
$weiterleitung = \'/deu/index.php\';break;

case \'de-at\':
$weiterleitung = \'/aut/index.php\';break;

case \'de-ch\':
$weiterleitung = \'/sui/index.php\';break;

case \'fr-fr\':
$weiterleitung = \'/fra/index.php\';break;


default:
$weiterleitung = \'/deu/index.php\'; }
header ("location: $weiterleitung");
?>


Einen Zugriff auf den Server und Änderungen der Einstellungen kann ich aufgrund eines normalen Grundtarifes wohl nicht.

Ist das so richtig? Oder bin ich auf dem Holzweg?

Vielen Dank und einen schönen Sonntag

Foren Moderator Evil Genius Content Halbgott (973 Beiträge)
am 23.09.2013, 14:44 Uhr schrieb matthes
Antwort

Wie d_spaete schreibt, ist der Ansatz ganz ok, aber so noch unbrauchbar.
Lies mal ein wenig über die Variable, dann siehst du, wie sie aufgebaut ist.

Generell nach dem Schema:
Sprachkürzel[;Gewichtung],Sprachkürzel[;Gewichtung]

D.h. du musst den String am besten per explode in ein Array laden und es dann sortieren. Ich bin mir gerade nicht sicher, ob die Reihenfolge der Gewichtung entsprechen muss, daher würde ich eine Sortierung vornehmen. Wenn keine Gewichtung vorhanden ist, beträgt sie 1, ansonsten irgendwas kleiner gleich 1.

Bei mir ist es folgender String:
de,en;q=0.5

Also bevorzuge ich die Sprache deutsch, akzeptiere aber auch englisch.

Ganz grob und ungetestet runtergetippt:
<?php
$vorhandeneSprachen = array (
\'de\'=>\'/deu/\',
\'de-CH\',\'/sui/\',
\'de-AT\'=>\'/aut/\',
\'fr\'=>\'/fra/\'
);
$akzeptierteSprachen = explode(\',\',$_SERVER[\'HTTP_ACCEPT_LANGUAGE\']);
$sortierteSprachen=array();
foreach($akzeptierteSprachen as $sprache) {
list($kuerzel,$gewichtung) = array_pad(explode(\';\', $sprache, 2), 2, null);
if (empty($gewichtung)) {
$gewichtung=1;
}
else {
$gewichtung=str_replace(\'q=\',\'\',$gewichtung);
}
$sortierteSprachen[$kuerzel]=$gewichtung;
}
arsort($sortierteSprachen);
foreach($sortierteSprachen as $key => $value) {
if (in_array($key,array_keys($vorhandeneSprachen))) {

header(\'Location: www.example.com\'.$vorhandeneSprachen[$key]);


die;
}
}
//default

header(\'Location: www.example.com/\');


die;
?>

Du musst aber mehrere Punkte beachten.

Wenn jemand direkt auf example.com/sprachvariante/ surft, sollte das als Entscheidung für eine Sprache gewertet werden und keine Weiterleitung erfolgen. Sonst könnten auch Bots die Sprachvarianten nicht crawlen.
D.h. diese Abfrage der Benutzersprache erfolgt eigentlich nur ein einziges Mal, nämlich wenn jemand frisch auf deine Startseite kommt.

Das musst du auch bei der Struktur der Seite berücksichtigen. Wenn der Standard example.com/ wäre, muss z.B. eine Überprüfung über Sessions dazu, damit erkannt wird, ob der Benutzer nun frisch auf example.com zugreift, oder sich dafür entschieden hat, die Standardsprache zu verwenden.

Auf Flaggen oder eine andere Variante zur Sprachauswahl würde ich nicht verzichten, man kann nicht immer davon ausgehen, dass der HTTP_ACCEPT_LANGUAGE korrekt ist. Außerdem soll der Benutzer selbst entscheiden können, was er sehen will.

Und nicht zuletzt müssen dann auch Sitemaps korrekt erstellt und den Suchmaschinen präsentiert werden. Eine Notierung wie <link rel="alternate" hreflang="xy" href="andereSprachVariante"> für jede Sprache ist auch nicht verkehrt. Bläht den Quellcode etwas auf, dürfte aber förderlich sein.

[Edit 23.09, 16:21 - Wort ergänzt, Satz ergab wenig Sinn. ]
Make Seitenreport great again!