Struppi: Mehrsprachige Seiten entwickeln

Beitrag lesen

a) ich kann alle Seiten kopieren und auf Englisch anlegen, was das natürlich heisst wenn sich an der Logik etwas ändert ist klar, da die Logik leider direkt in den JSPs liegt und nicht über Servlets gelöst wird.

Das ist Unsinn.

b) Ich könnte in den aktuellen Seiten bei jedem Tag abfragen ob Englisch oder Deutsch und dann den entsprechenden Text ausgeben, was aber denke auch nicht ideal ist, vor allem aus Performance-technischen Gründen.

Das ist das übliche Prinzip, aber nicht so wie du es schilderst.

Du musst ja, um mehrsprachige Anwendungen entwickeln zu können, jede Ausgabe von Text entsprechend vorbereiten. eigentlich sollte es für jede Programmiersprache entsprechende Möglichkeiten/Module geben soetwas zu realisieren, denn das ganze ist nicht unbedingt trivial, denn was ist z.b. mit sowas:

Du hast 1 neue Nachricht bzw. Du hast 2 neue Nachrichen
You got 1 new message -> you got 2 new messages
(man verzeihe mir falls das nicht sauber ist, ist nur exemplarisch)

Du brauchst also eine Funktion, der du mitteilst welche Nachricht du ausgeben möchtest, gleichzeitig müssen auch evtl. einzelne Parameter eingefügt werden und zwischen Ein- und Mehrzahl unterschieden werden (evtl. auch noch null Werte)

Der einfach Weg ist einen Hash (gibt es sowas in Java?) zu benutzen und je nach Sprache den aus einer anderen Datei zu laden:

ich kann nur Perl:

Datei: de.lang
%LANG = {
'new msg' => 'Du hast %s neue Nachricht(en)'
};

Datei: en.lang
%LANG = {
'new msg' => 'you got %s new message(s)'
};

und die Ausgabe erfolgt dann so:
printf $LANG{new_msg}, $number_of_new_msg;

Du kannst aber auch das ganze in eine DB packen. Ich benutze beides, eine DB macht die Übersetzung bzw. Pflege leichter, da du jederzeit neue Werte einfügen kannst und sofort jede Sprache mit eingeben kannst. Dürfte aber langsamer sein, zumal die Daten schnell einen gewissen Umfang erreichen (was durch Modularität sich verbessern liesse - also nicht alle Texte immer laden, sondern je nach Modul nur einige).

Aber wie gesagt, ich würd mal schauen ob es nicht fertige Lösungen gibt.

Struppi.