• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zweisprachige Website?

Krobbus

Mitglied
Ich habe eine Webseite, die Englisch und Deutsch ist. Mit einem php script (siehe unten) wird überprüft, welche Sprache dem Benutzer angezeigt wird.

In Punkto Suchmaschinenfreundlichkeit ist das, glaube ich, nicht die beste Lösung, oder? Wenn ich die index.php, die die Sprache erkennt (siehe unten), verändere (title etc.), aktualisiert google diese Seite nicht, auch wenn der Rest der Seite öfters aktualisiert wird. Wie könnte ich das Ganze besser lösen?



PHP:
<?php if($sprache == "DE" OR  $sprache == "de" OR $sprache == "de_DE" ) { $lang = "ger"; } else  {$lang = "eng";}
?>

<meta http-equiv="refresh" content="0; URL=http://www.meineurl.com/<?php echo"$lang"; ?>">
<?php
//echo "$lang <br>";
$sprache = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
//echo "Lang : $sprache";

?>
</head>
<body>

<?php
$ref = $_GET["ref"];
?>
<script language="JavaScript">
<!--
name="ref";
value="<?php echo "$ref"; ?>";

  var date = new Date();
  date.setTime(date.getTime()+(7*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();

 document.cookie = name+"="+value+expires+"; path=/";

//-->
</script>
 
Unterschiedliche TLDs sind dazu nicht notwendig, aber eine gute Möglichkeit wäre eine Umleitung auf eine andere Datei oder das anhängen einer GET-Variablen an die URL. Mit ein bisschen mod_rewrite kann man so eine solche URL-Struktur aufbauen:
Code:
www.beispieldomain.de/de/start
www.beispieldomain.de/de/about
www.beispieldomain.de/en/about
…

Uuups, sorry. Lesen und verstehen hilft. Warum leitest du nicht direkt mit PHP weiter (header('location:…')?
 
Unterschiedliche TLDs sind dazu nicht notwendig

nein natürlich nicht.

hier muss man auch weiter differenzieren:

company.de/de/ -> Deutsche Seite auf deutsch
company.de/en/ -> Deutsche Seite auf englisch
company.com/de/ -> Internationale Seite aus deutsch
[...]
 
Gettext ist in jedem Fall eine schöne Sache.

statt de_DE würde ist lieber "de" wählen, Gettext wird damit umgehen können und wer will denn wirklich auch noch Unterscheidungen nach Land?

Zudem
Code:
RewriteRule ^(\w{2})/(.+)$ $2 [E=LANG:$1]
sauberer ist, da hier sie Sprache als Environment-Variablen abgelegt wird und die deshalb nicht in meiner URL hängt. Zugegriffen wird mittels getenv('LANG').
 
ich hab das grad mal ausprobiert, aber der setzt bei mir LANG nicht. Woran könnte das liegen?
 
Offensichtlich stellt mod_rewrite als Prefix REDIRECT_ voran, somit wäre die Variable mit getenv('REDIRECT_LANG') erreichbar.
Ich weiß nur nicht, ob man diese dann später in der .htaccess dann mit %{ENV:LANG} oder %{ENV:REDIRECT_LANG} arbeiten muss.
 
statt de_DE würde ist lieber "de" wählen, Gettext wird damit umgehen können und wer will denn wirklich auch noch Unterscheidungen nach Land?
Das ist, wenn du deinen Inhalt je nach Land/Kultur bzw geographischen Raum unterscheiden willst, als l10n (localization).

Audi verkauft z.B. in England Autos mit einer anderen Ausstattung als in Deutschland, z.B. ist das Lenkrad Rechts.
 
Zurück
Oben