mehrsprachige

Mehrsprachige Website

Auf dieser Seite finden Sie Tipps zur Erstellung, Strukturierung und Optimierung einer mehrsprachigen Website.

Sprachweiche via htaccess

http://www.htaccesstools.com/redirection-by-language/

RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (aa|ab|af|am|ar|as|ay|az|ba|be|bg|bh|bi|bn|bo|br|ca|co|cs|cy|da|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|ha|hi|hr|hu|hy|ia|ie|ik|in|is|it|iw|ja|ji|jw|ka|kk|kl|km|kn|ko|ks|ku|ky|la|ln|lo|lt|lv|mg|mi|mk|ml|mn|mo|mr|ms|mt|my|na|ne|nl|no|oc|om|or|pa|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sd|sg|sh|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|uk|ur|uz|vi|vo|wo|xh|yo|zh|zu) [NC]
RewriteRule .* http://www.franz-fertig.de/en/index.html [R,L]
RewriteCond %{HTTP:Accept-Language} (de) [NC]
RewriteRule .* http://www.franz-fertig.de/de/index.html [R,L]
======

RewriteCond %{HTTP:Accept-Language} en-au [NC]
RewriteRule .*index\.html$ www.domain.com/int/au.php
RewriteCond %{HTTP:Accept-Language} en-nz [NC]
RewriteRule .*index\.html$ www.domain.com/int/nz.php
RewriteCond %{HTTP:Accept-Language} ja [NC]
RewriteRule .*index\.html$ www.domain.com/int/jp.php
RewriteCond %{HTTP:Accept-Language} en-uk [NC]
RewriteRule .*index\.html$ www.domain.com/int/uk.php
RewriteCond %{HTTP:Accept-Language} en-gb [NC]
RewriteRule .*index\.html$ http://www.domain.com/int/uk.php

Struktur

Generell ist wichtig, die verschiedenen Sprachen klar zu trennen. Es ist nicht empfehlenswert, im Inhalt einer HTML-Seite verschiedene Sprachen zu mischen.

Prinzipiell gibt es folgende Möglichkeiten der Strukturierung:

  • Sie registrieren für jede Sprache die entsprechende Länderdomain, z.B. meinefirma.de für Deutsch, meinefirma.fr für Französisch, meinefirma.it für Italienisch, etc.
    Diese Lösung ist empfehlenswert, wenn Sie auch Kunden oder sogar Niederlassungen in den jeweiligen Ländern haben.
  • Sie trennen alle Sprachversionen über Unterverzeichnisse. Als Verzeichnisname bietet sich das Sprachkürzel an.
    Z.B. meinefirma.de/en/ für Englisch oder meinefirma.de/fr/ für Französisch. Die deutsche Version lassen Sie im Hauptverzeichnis.
  • Bei dynamischen Seiten können Sie einen Parameter an die URL der jeweiligen Seite anhängen, z.B. meinefirma.de/produkte.php?lang=en.
  • Bei Websites, die nur aus wenige Seiten bestehen, können Sie auch alle Seiten im Hauptverzeichnis ablegen und nach der Sprache benennen.
    Z.B. kontakt.html (de), contact.html (en),  coordonnees.html (fr) oder contatti.html (it).

Navigation / gegenseitige Verlinkung

Falls die Inhalte aller Sprachversionen völlig parallel aufgebaut sind, ist es empfehlenswert, auf jeder Unterseite direkt die Sprachversionen derselben Unterseite wechselseitig zu verlinken.

Falls dies nicht möglich oder zu aufwändig ist, können Sie alternativ auf jeder Unterseite die Startseite der anderen Sprachversionen verlinken.
Wichtig: Flaggen stehen für bestimmte Länder, nicht für Sprachen!
Es ist zwar leider weit verbreitet, Links zu Sprachversionen mit kleinen Flaggen hervorzuheben, aber es ist trotzdem nicht korrekt. Eine ausführliche Begründung finden Sie im Artikel Über Sprachen und Flaggen

Inhalt

Es ist darauf zu achten, dass jede Sprachversion vollständig übersetzt wird. Neben dem eigentlichen Seiteninhalt wird das Übersetzen der folgenden Textstellen gerne übersehen:

  • Seitentitel
  • Verzeichnis- und Seitennamen
  • Ankertexte von internen und externen Links
  • Meta-Description und Meta-Keywords
  • Alt-Texte von Bildern

Eine englischsprachige Seite mit deutschen Seitentiteln oder Metaangaben hat nur geringe Chancen, bei Google gefunden werden. Bei mehrsprachigen Websites besteht die Optimierung also hauptsächlich darin, alle suchmaschinenrelevanten Textstellen konsequent zu übersetzen.

Kennzeichnung

Es gibt verschiedene Möglichkeiten, die Sprache einer Webseite an den Browser oder den Suchmaschinen-Robot zu übermitteln. Dabei werden immer zweibuchstabige Sprachenkürzel nach ISO 639-1 verwendet. Die Beispiele beziehen sich auf die englische Sprache.

  • Das Attribut „lang“
    Damit können Sie den Inhalt eines HTML-Elements mit der verwendeten Sprache kennzeichnen.
    Für eine ganze HTML-Seite verwenden Sie <html lang="en">...</html>
  • Das Attribut „hreflang“
    Damit können Sie die Sprache einer verlinkten Zielseite im verweisenden Link angeben.
    So verlinken Sie z.B. eine englischsprachige Seite: <a href="..." hreflang="en" lang="de">englische Version</a>Das Beispiel verdeutlicht auch den Unterschied zum lang-Attribut, dieses bezieht sich auf die Sprache des Linktextes.
    Sie könnten auch wie folgt verlinken: <a href="..." hreflang="en" lang="en">english version</a>
  • Meta-Angaben
    Folgende Meta-Angabe kennzeichnet den Dateiinhalt als englisch: <meta name="Content-Language" content="en">
  • HTTP-Header
    Die Sprache sollte unbedingt auch per HTTP-Header übermittelt werden. PHP-Beispiel:
    header('Content-language: en');

 

Sprachweiche

Bieten Sie Ihre Homepage in mehreren Sprachen an? Dann können Sie Ihre Besucher mit der Sprachweiche direkt auf die für sie passende Seite weiterleiten.

Hierzu wird die Spracheinstellung des Browsers ausgelesen und entsprechend dieser auf die jeweiligen Seiten umgeleitet. Ist die Standardeinstellung Ihres Besuchers also „English“, kann er auf die englische Seite geführt werden, ist sie hingegen „Deutsch“, wird er von der deutschen Seitenvariante begrüßt.

Anpassung

if ($sprache == "de")
{
echo "<meta http-equiv=Refresh content=\"0; url=deutsch.htm\">";
exit;
}

Ändern Sie im Script einfach die rot gekennzeichneten Stellen Ihren Vorgaben entsprechend ab. Im Beispielcode wird bei der gefundenen Sprache Deutsch („de“) die Seite „deutsch.htm“ geladen.

Eine Liste der möglichen Spracheinstellungen finden Sie zum Beispiel im MS Internet Explorer, wenn Sie unter „Extras“-„Internetoptionen“ die Schaltfläche „Sprachen“ anklicken.

Wenn Sie weitere Unterseiten anbieten, können Sie obigen Code im Script vor der Zeile

#### Alternative Unterseite, falls keine der oben gewählten Sprachen gefunden wird

mit den entsprechenden Sprachmerkmalen einbinden.

Unterhalb dieser Zeile wird eine alternative Seite festgelegt, auf die umgeleitet werden soll, wenn keine der im Script spezifizierten Sprachen gefunden wurde. Ändern Sie hier wie oben im Beispieltext einfach  „deutsch.htm“ auf die Seite ab, die in diesem Fall geladen werden soll.

Jetzt herunterladen: Download (.zip, 547 Byte)

<?php
#### Sprachweiche
#### (C) 2003 Grammiweb.de, http://www.grammiweb.de/
#### Dieses Script kann frei verwendet werden
#### Über einen Link zum Grammiweb würden wir uns natürlich trotzdem freuen :-)
$sprache=substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
#### Deutsche Unterseite (de)
if ($sprache == "de") // Hier statt de die Sprache eintragen
 {
 echo "<meta http-equiv=Refresh content=\"0; url=deutsch.htm\">"; // Hier statt deutsch.htm die entsprechende Seite eintragen
 exit;
 }
#### Englische Unterseite (en)
if ($sprache == "en") // Hier statt en die Sprache eintragen
 {
 echo "<meta http-equiv=Refresh content=\"0; url=english.htm\">"; // Hier statt english.htm die entsprechende Seite eintragen
 exit;
 }
#### Alternative Unterseite, falls keine der oben gewählten Sprachen gefunden wird
echo "<meta http-equiv=Refresh content=\"0; url=deutsch.htm\">"; // Hier statt deutsch.htm die entsprechende Seite eintragen
exit;
?>