Die Dateien müssen wie im ISO-8859-1 Format gespeichert werden (NICHT IN UTF-8!!!). Zeichen die über diesen Zeichensatz hinausgehen müssen in Unicode Escapes gespeichert werden.
Wie findet Struts die Default-Sprache bei ApplicationResource Sprache?
Der Default für Struts bei ApplicationResources (also das File, das genommen wird, wenn die Browsersprache nicht gefunden) ist nicht das Property-File ohne Sprachendung, sondern das Property-File mit der Endung der Locale, die als System-Property der JVM gesetzt ist.
Diesen Werte kann man setzen über
- System-Property -Duser.language=de -Duser.region=DE
- über API: Locale.setDefault()
Die System-Locale ist auf de_DE gesetzt.
Es existieren folgende Property-Files:
myfile.properties (enthält englische Texte)
myfile.properties_de (enthält deutsche Texte)
myfile.properties_it (enthält italienischeTexte)
Ein Benutzer kommt mit der Browser-Sprache russisch in die Applikation. Er bekommt nicht die
englischen Texte aus myfile.propertiesm sondern die deutschen Texte aus myfile.properties_de!
html locale
Um JSPs mit den bean:message - Tags lokalisiert darzustellen, muss der Tag
<html:html locale="true"/>
nur gesetzt werden, wenn der Aufruf der JSP direkt erfolgt (http://myserver/person.jsp) und nicht über die Action (http://myserver/person.do). Über die Action sorgt Struts selbst dafür.
Achtung: Ist seit Struts 1.29 deprecated
Stattdessen muss
<html:html lang="true"/>
verwendet werden.