Es wird viel Zeit dafür aufgewendet, eine Webseite ansprechend, benutzerfreundlich und intuitiv bedienbar zu gestalten. Wenn denn das Zielpublikum nicht nur aus dem deutschen Sprachraum kommt, ist es natürlich unmöglich, eine benutzerfreundliche Seite zu kreieren, wenn der Benutzer kein Wort vom Inhalt versteht.
Für kleine bis mittlere Webseiten kann eine mehrsprachige Webseite recht einfach aufgebaut werden.
Die zwei einfachsten Möglichkeiten sind 1) alle Webseiten mehrmals anzulegen, für jede Sprache einmal, oder 2) Alle Texte nicht im HTML/PHP-File zu speichern, sondern in einer Datenbank. Erstere Variante hat den grossen Nachteil, dass viele Redundanzen entstehen und sämtliche strukturelle Anpassungen mehrmals ausgeführt werden müssen. Deshalb hier einige Erklärungen zum zweiten Ansatz.
Da nur selten weitere Sprachen zu einer Webseite hinzugefügt werden, ist es nicht weiter ein Problem, für jede Sprache eine Tabellenspalte fix vorzusehen. Es ist zwar nicht schön, wenn für das Hinzufügen einer weiteren Sprache die Datenbankstruktur verändert werden muss, dafür ist diese Lösung einiges pragmatischer, also einfacher einzubauen und zu verstehen.
Die Übersetzungsdatenbank besteht lediglich einer Tabelle. Als Spalten werden natürlich je eine für jede Sprache benötigt, und dazu genug Informationen, um die Datensätze eindeutig zu finden. Es würde theoretisch ausreichen, eine numerische ID zu vergeben. Da es aber sehr mühsam ist, beim Bauen der Webseite für jeden Text die ID nachzuschlagen, und es das PHP/HTML-File sehr unleserlich macht, ist es weitaus vernünftiger, eine erklärende ID zu vergeben. Aber Achtung: Diese muss dennoch eindeutig sein! In diesem Beispiel wurde zusätzlich angegeben, zu welcher Seite der Text gehört. Dies hat zwei Vorteile: Es müssen immer nur die relevanten Texte geladen werden und nicht alle, und es ist möglich, eine erklärende ID mehrmals zu vergeben (z.B. "page-title"), aber halt einfach nur einmal pro Seite.
Eine Datei "trans.php" dient dazu, die richtigen Texte aus der Datenbank aus der Datenbank zu laden und diese in eine Liste (Array) abzufüllen, aus welchem die Texte dann auf die Seite gesetzt werden.
Zudem detektiert dieser Code, welche Sprache der Benutzer auf seinem Browser eingestellt hat. Wenn dies Deutsch ist, werden die deutschen Texte geladen, sonst die englischen.
Auf der eigentliche Webseite müssen die folgenden Dinge angepasst werden: