28. Juni 2007

Struts & ApplicationResources FAQ

In welchem Format müssen die Properties-Files vorliegen

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
  1. System-Property -Duser.language=de -Duser.region=DE
  2. über API: Locale.setDefault()

Ein Beispiel dazu:

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.

Keine Kommentare: