Wir haben eine Anwendung, die die grundlegende JSP/Servlet verwendet, dass alle Texte derzeit in Englisch in den JSP-Seiten fest codiert ist. Wir denken über Internationalisierungen unserer App nach, also brauchen wir eine Art, den Text in die Eigenschaftendatei zu extrahieren. HierJSTL Resource Bundle für Internationalisierung und Lokalisierung
ist, was ich bisher getan haben:
1) Erstellen Sie eine Datei XXXXX-messages_en.properties
genannt, fügen Sie den Schlüssel/Wert-Paar in die Eigenschaftendatei, z.B. AAAAA = Hello World
2) Last JSTL relevant Taglibs in der 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) setBundle-Tag in der JSP-Seite hinzufügen:
<fmt:setBundle basename="XXXXX-messages" var="XXXXX"/>
Und starten Sie den Server neu, alles wird korrekt angezeigt.
jedoch meine Frage in Bezug auf die Verwendung von JSTL Internationalisierung Bibliothek ist:
FRAGE 1) Es scheint, dass ich <fmt:setBundle>
Tag in jede Seng JSP-Seiten hinzufügen müssen, die ein bisschen hässlich ist und wenn etwas muss Veränderung in der Zukunft (Namensänderung?) wird das Leben erschweren.
Ich habe darüber nachgedacht, vielleicht kann ich eine separate Seite erstellen und diese <fmt:setBundle>
darin einfügen, und dann diese Seite mit <jsp:include>
. Oder kann ich das über einen Servlet-Filter injizieren? Ich würde sagen, dass ich mit beiden Optionen nicht ganz zufrieden bin.
Gibt es einen empfohlenen Weg, dies zu tun?
FRAGE 2) Wie kann man eine Standardsprache angeben, wenn dort keine Datei mit den passenden Eigenschaften vorhanden ist? Ich habe in meinem Fall getestet, wenn ich <fmt:setLocale>
auf die JSP-Seite mit einer französischen Sprache setze, kann die Seite immer noch korrekt geladen werden. Bedeutet das, dass die englische Version immer die Standardeinstellung ist oder ist es einfach, weil mein Betriebssystem/Browser Englisch ist?
Was passiert, wenn ein chinesischer/japanischer Benutzer meine Seite öffnet und ich sowohl englische als auch französische Eigenschaftendatei habe?
ich dies auf jeden Fall lesen, wenn ich um Google, so wie kann ich es vergessen? Mein Verstand muss in diesem Moment aus meinem Kopf sein. Wie auch immer, danke für deine Antwort! –