paul: zweisprachiges web

hallo und hello,

ich möchte ein relativ umfangreiches web (mit zahlreichen dynamischen seiten,...) zweisprachig gestalten. ich möchte aber nicht unbedingt das gesamte web über eine db aufbauen.
meine frage: lässt sich das ganze ungefähr so realisieren:

ein ordner "/deutsch",
ein ordner "/englisch",

eine datei "indexde.php" im ordner "deutsch"
eine datei "indexen.php" im ordner "englisch"

einen sprachauswahlbutton, der die momentane datei ausliest und mit einer if-else anweisung die jeweils andere version reinlädt.

ist das sinnvoll? läßt sich das mit php überhaupt realisieren?

bitte um tipps, das archiv hat für mein kleinhirn irgendwie nichts inspirierendes ausgespuckt...

mfg

paul

  1. paul,

    ein ordner "/deutsch",
    ein ordner "/englisch", […]
    ist das sinnvoll?

    Würd ich nicht sagen. Wenn du die Dateien foo.html.de und foo.html.en im selben Ordner hast und der Client foo.html anfordert, können – entsprechende Serverkonfiguration vorausgesetzt – Client und Server die gewünschte Sprache gemäß den Einstellungen im Browser aushandeln (content negotiation).

    Das entbindet nicht davon, auf der einen Seite einen Link zur jeweils anderen vorzusehen.

    Gunnar

    --
    I never intended HTML source code (the stuff with the angle brackets) to be seen by users. […] To my surprise, people quickly became familiar with the tags and started writing their own HTML documents directly. (Tim Berners-Lee in Weaving the Web)
    1. Das entbindet nicht davon, auf der einen Seite einen Link zur jeweils anderen vorzusehen.

      naja, ich denke, ich brauche keinen händisch eingetragenen link.
      ich meine, dass ich mit php_self den namen der datei einlese und dann die entsprechend andere variante lade. die gemeinsam genutzten files könnte ich ja in einem unterordner lagern, dann sind die pfadangaben von beiden ordnern aus gleich.

      hab ich dich vielleicht nicht ganz verstanden, oder geht das so nicht?

      paul

  2. Moin!

    bitte um tipps, das archiv hat für mein kleinhirn irgendwie nichts inspirierendes ausgespuckt...

    Mehrsprachige Webseiten haben grundsätzlich diverse Anforderungen, darunter:

    • automatische Wahl der vom Benutzer bevorzugten Sprache
    • manuelle und haltbare Veränderung dieser Wahl
    • vernünftige Indizierbarkeit durch Suchmaschinen.

    Diese Anforderungen umzusetzen bedeutet zuallererst, sich ein dazu passendes URL-Schema zu überlegen. Später von der URL zum ausgelieferten Inhalt zu kommen ist dann nur noch ein relativ simpler Schritt.

    Als URL-Schema verwende ich folgende Aufteilung:
    1. Jede Sprache bekommt ihr eigenes Verzeichnis, dessen Name das zweibuchstabige Sprachkürzel nach ISO ist: Deutsch = /de, Englisch = /en, Französisch = /fr

    Die Startseite der Domain im Hauptverzeichnis / ist ein Skript, welches die bevorzugte Sprache des Browsers ermittelt und, falls vorhanden, zu dieser Sprache weiterleitet - andernfalls wird zu einer Sprachversion geleitet, die als Standard definiert ist.

    Auf jeder Seite existiert ein Link zu allen anderen Sprachversionen, so dass man jederzeit wechseln kann. Alle normalen Menülinks zeigen auf Seiten im gleichen Sprachverzeichnis, diese Wechsellinks zeigen auf die Seiten in den anderen Verzeichnissen - wobei man sich die Sache einfach machen und immer nur auf die Startseite verweisen kann, oder - sofern alle Sprachen mit identischen Seiten ausgestattet sind - auch auf die jeweils identische Seite der anderen Sprache.

    Hinsichtlich der Domain-Startseite könnte man sich natürlich für den Fall, dass keine passende Sprache gefunden wird (Suchmaschinen beispielsweise sprechen keine bestimmte Sprache), Alternativen überlegen, z.B. eine Auswahlseite mit Links zu den Startseiten der jeweiligen Sprachen. Auf diese Weise würden alle Sprachen vom Suchrobot gleichberechtigt indiziert, es würde kein Umweg über die Standardsprache genommen werden.

    • Sven Rautenberg
      • wobei man sich die Sache einfach machen und immer nur auf die Startseite verweisen kann, oder - sofern alle Sprachen mit identischen Seiten ausgestattet sind - auch auf die jeweils identische Seite der anderen Sprache.

      danke für deine ausführungen, genau so hab ich mir das auch vorgestellt. was mich aber eben genau interessiert,ist die frage, wie ich auf jeder einzelnen seite den link zu der passenden anderen sprachversion einbaue, ohne dass ich auf jeder seite diesen link manuell erstellen muß. ich denke da an ein ssi-file, dass die navigation enthält und auch die auswahlbox "sprache wechseln", das ich dann in jede detailseite einbinden kann. deshalb bräuchte ich so etwas wie php_self oder so, um den link zur anderen sprache dynamisch zu generieren. das geht doch sicher irgendwie, oder?

      lg

      paul

    1. so in dieser art hab ich mir das gedacht:

      <?php
      $test= basename ($_SERVER["PHP_SELF"]);
      if ($test =="indexde.php"){
      echo "<a href=indexen.php>englisch</a>";
      }
      else{
      echo "<a href=indexde.php>deutsch</a>";
      }
      ?>

      natürlich würde man, wenn dann mehrere dateien vorhanden sind, die bedinguing nicht
      if ($test =="indexde.php"){

      machen, sondern irgendwie so:

      if ($test =".de.php"){

      , die dateien heisen dann z.B. index.de.php, detailseite.de.php, sowie index.en.php und detailseite.en.php usw.

      ist das nicht gut so?

      lg

      paul