struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christoph Nenning <Christoph.Nenn...@lex-com.net>
Subject Framework provided text key resolving issue
Date Mon, 09 Sep 2013 15:04:10 GMT
Dear List,


We (that means my company) have an application with a file upload form. We 
have set struts.multipart.maxSize to 5 MB. When a user tries to upload a 
bigger file we rely on struts2 to generate an ActionError. Therefore the 
framework uses the msg key 
struts.messages.upload.error.SizeLimitExceededException from resource 
bundle struts-messages. That bundle is available in several languages.


When I test that application code on my local dev box and request the msg 
explicitly with Locale("en"), I get the text in german.
At first sight that seems like a framework bug.

But after some investigation I discovered that the JVM's resource bundle 
resolving works not as I would expect.


In this case the following happens:
- struts2's algorithm is performed (search packages hierarchically)
- for global resources the JVM tries the file 
"struts-messages_en.properties" which is not present
- then the JVM tries the language from system property "user.language" 
which is "de" in my case
- a file for that locale is present and hence I get the german text 
instead of the requested english one


We provide our application texts for english in 2 files (of course 
scripted):
- bundle.properties
- bundle_en.properties

I propose as workaround that english framework texts are provided the same 
way in 2 files.



At least I suggest to put a warning note on i18n wiki pages that 
application developers should make sure to have "user.language" set to 
"en".


Regards,
Christoph

This Email was scanned by Sophos Anti Virus

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message