JSTL Ressourcen-Bundle für Internationalisierung und Lokalisierung

Haben wir eine Anwendung, mit der basic JSP/servlet, das alle Texte, die derzeit in englischer Sprache ist hart codiert in den JSP-Seiten. Wir erwägen, über internationalizations unserer app, also brauchen wir irgendeine Art von Möglichkeiten, um zu extrahieren den text in properties-Datei.

Hier ist, was ich bisher getan habe:
1) Erstellen Sie eine Datei namens XXXXX-messages_en.properties, fügen Sie den Schlüssel/Wert-paar in der properties-Datei, z.B. AAAAA = Hello World

2) Last JSTL relevanten taglibs in die JSP-Seite

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

3) Ersetzen Sie den vorherigen text mit

<fmt:message key="AAAAA" bundle="${XXXXX}"/>

4) Hinzufügen setBundle-tag in der JSP-Seite:

<fmt:setBundle basename="XXXXX-messages" var="XXXXX"/>

Und starten Sie den server neu, alles wird korrekt angezeigt.

Aber meine Frage bezüglich der Verwendung von JSTL Internationalisierung Bibliothek:

FRAGE 1) Es scheint, dass muss ich hinzufügen <fmt:setBundle> tag in jeder einzelnen JSP-Seiten, und das ist ein bisschen hässlich und wenn etwas braucht, um sich in Zukunft ändern (Namen ändern?) dies wird das Leben schwieriger.

Muss ich denken, vielleicht kann ich eine eigene Seite anlegen und diese <fmt:setBundle> in Sie, und dann schließen Sie diese Seite mit <jsp:include>. Oder kann ich Spritzen über einen servlet-filter? Ich würde sagen, ich bin nicht ganz glücklich mit beidem.

Ist gibt es eine empfohlene Weg, dies zu tun?

FRAGE 2) Wie legen Sie eine default-Sprache, wenn es keine übereinstimmung properties-Datei gibt? Ich habe getestet, in meinem Fall, wenn ich <fmt:setLocale> in die JSP-Seite mit einem französischen Sprache, kann die Seite immer noch korrekt geladen. Bedeutet das, dass die englische version ist immer die Standard oder ist es einfach nur weil mein Betriebssystem/browser ist Englisch?

Was passiert, wenn ein Chinese/Japaner Benutzer meiner Seite und ich habe sowohl Englisch als auch Französisch properties-Datei gibt es?

InformationsquelleAutor der Frage Yudong Li | 2012-09-18

Schreibe einen Kommentar