31

JAN09

Webseiten mehrsprachig programmieren

Trackback URIVon Peppie in PHP, Programmierung

Wie programmiert man Webseiten mehrsprachig? Diese Frage wird oft im Internet gestellt und es gibt eine vielzahl an Möglichkeiten. Unsere Frage dazu, wir programmiert man eine Webseite effizient mehrpsrachig, was sollte man beachten bei Webseiten die viele feste Textpositionen haben und gleichzeitig noch viel Traffic verbuchen? Diese Fragen werden wir hier in diesem Beitrag näher unter die Lupe nehmen.

Ausgangsposition

Wir besitzen eine Webseite wie eBay, hab somit viel Traffic auf der Seite (gut besucht) und viele kleine Textpositionen die mehrsprachig gehalten werden müssen aber wie machen wir das ganze schnell und ohne großen Speicherverbrauch? In unseren Beispielen testen wir das ganze für 10.000 Testpositionen. Folgende Möglichkeiten stehen uns zur Verfügung:

  1. Sprache in der Datenbank (MySQL)
  2. Sprache in einem Array (Zahlenindex)
  3. Sprache in einem assoziativen Array
  4. Sprache in einzelnen Variablen
  5. Sprache mit Konstanten definieren

1. MySQL

Fangen wir mir der 1. Möglicheit an, MySQL. Eine Seite mehrsprache über das ablegen der Testpositionen in der Datenbank ist meiner Meinung nach die sauberste Möglichkeit. Weitere Sprachen können einfach über eine Eingabemaske eingepflegt und gepflegt werden. Wenn es aber um ein Projekt wie z.B. eBay geht dann glaub ich kaum das diese Variante am effizientesten ist, auch wenn es viele Möglichkeiten des Cachens gibt (QueryCache, Memcache & Co) für kleiner Webseiten ist diese Variante vollkommend ausreichend.

Seite:
1 2 3

Peppie
Über den Autor:
Vor mehr als 6 Jahren habe ich mein Hobby zum Beruf gemacht. Seit her bekommt mich kein Problem so schnell in die Knie, ich bin sehr verbissen und arbeite solange an einem Problem bis es gelöst ist.

Ähnliche Artikel:

9 Kommentare

ArSeN

Keeewl… danke, dass des mal jemand getestet hat, zum Glück gehts mit Konstanten am besten :D

Zu der Editierungsmöglichkeit die ja für den fiktiven Kunden am besten bei MySQL gegeben ist. Hier könnte man mit ein bisschen regexen sicherlich auch eine Bearbeitungsmaske für eine Konstanten definierende Datei schaffen, oder aber einen Spiegel des ganzen in MySQL lagern, und dann daraus die zu inkludierende Datei mit den Konstanten generieren, so hätte man von beiden Varianten die Vorteile ausgeschöpft :)

Greetz


Peppie

Hey Kolja,
ja die Idee mit der Eingabe der Konstanten über die MySQL hört sich nett an ;-)

coole Sache


Markus

Wenn man aber alle Einträge erst aus der MySQL Datenbank ausliest und dann in eine Konstante setzt, könnte ich mir vorstellen, dass auch viel Zeit und Speicher dabei drauf geht.

Ich sitze im moment auch vor dem Problem, ein mehrsprachiges System zu erstellen, und bin mir au ch noch unschlüssig wie ich es mache. Im Moment tendiere ich aber zu gettext, was du übrigens nicht erwähnt hast ;)


Peppie

Hi Markus,

wenn man dieses auslesen dann nur einmalig macht und nicht bei jedem Seitenaufruf dann wäre dies die Lösung für die Theorie von Kolja und mir :-)


Markus

Willst du dann dynamisch ne PHP Datei generieren, die dies dann übernimmt? Die Lösung würd mir nicht so wirklich gefallen :-|


Peppie

Naja das ganze würde nur richtig sinn machen bei großen Seiten die dynamisch die Texte pflegen wollen wie im Beispiel, bei kleineren Seiten kannst es auch von der DB aus zur Laufzeit immer in defines packen.

Ich meine nur, der SQL Query wäre an dieser Stelle unnötig denn man könnte es ja anderster machen. :)


Markus

Es geht um ein großes Projekt, deswegen is mir die Optimierung sehr wichtig ;)


Peppie

Schau mal, angenommen wir haben eine Seite mit etwa 200-300 Textpositionen die dann in der Datenbank stehen würden. Du hättest zunächst einen Query der dir ein ResultSet von diesen 200-300 Rows zurück gibt (nicht grad wenig) Als nächstes müsstest du eine Schleife machen die dir alle Werte in eine Konstante packt. Meiner Meinung nach sind das gleich 2 dicke negative Punkte es nicht auf diesen Weg zu machen. Selbst wenn du an dieser Stelle dann QueryCache oder Memcache benutzt haben wir ein Array mit der Anzahl der Textpositionen, dieses müsstest du dennoch schleifen um die Konstanten zu bekommen, dass ist aber dann gleich doppelt gemobbelt, da kannste ja gleich die Sprachsteuerung über Arrays machen :D


Patrick

Hast Du schon mal gettext probiert?


Kommentar schreiben

;) :( :) :D :P :o :| ^^ :> :< :cry: :S xD


Blogverzeichnis - Blog Verzeichnis bloggerei.de frisch gebloggt Blog Top Liste - by TopBlogs.de Bloggeramt.de Add to Technorati Favorites Dennis bei Xing Wikio - Top Blog UrlFan.com