Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JSF 2 - Internationalization - Message Resources

 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

Im developing on JSF2 + Facelets and have several languages in my app

All works fine, but eclipse (Helios) shows me an annoying red X in the header.xhtml file

this is how it starts...



The RED X appears on the line of the <f:loadBundle

It says: "Resource bundle dr.messageresource.MessageResources cannot be found on classpath"

Again.. all works well , I just want to get rid of the annoying informative RED X

In my java resource i have package named "dr.messageresource" and got files like this one MessageResources_en.properties

and faces config got the needed defentions:
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Define a Class variable that references your folder location where you have the properties file and add this new classpath in the 'CLASSPATH' setting of your eclipse projects' run configuration.

 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
|Any chance that you can guide me in this?

I tried the following without any luck:

In Java Build path: Source tab : add folder (added the dr.messageresource package) : nothing helpful came out of this

In Java Build path: Libraries tab : add class folder (added the dr.messageresource package) : nothing helpful came out of this



How do i do this : "Define a Class variable that references your folder location" ?
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Okie! Here you go!

Go to your project properties-

Navigate to Resources - Linked Resources
and Create a new variable in Path Variables 'dr.messageresource.MessageResources'. Have this point to your message bundle.

Let me know if that works!
 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Not working :/

did the follwoing

http://img710.imageshack.us/img710/844/langs.png

in xhtml file did this: <f:loadBundle basename="langs" var="msg"/>

got this exception:

javax.faces.view.facelets.TagAttributeException: /WEB-INF/templates/header.xhtml @9,45 <f:loadBundle basename="langs"> Can't find bundle for base name langs, locale en
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sorry! I was kinda thinking on other lines while replying earlier ---

Just change MessageResources to MessageResources_en both in your prev implementation code.
both in faces-config as well as your jsp.

That should solve it.
 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
<f:loadBundle basename="dr.messageresource.MessageResources_en" var="msg"/>



getting this exception :

javax.faces.view.facelets.TagAttributeException: /WEB-INF/templates/header.xhtml @9,78 <f:loadBundle basename="dr.messageresource.MessageResources_en"> Can't find bundle for base name dr.messageresource.MessageResources_en, locale en

Thans ahead
 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
after some struggle i managed to get rid of the

javax.faces.view.facelets.TagAttributeException: /WEB-INF/templates/header.xhtml @9,78 <f:loadBundle basename="dr.messageresource.MessageResources_en"> Can't find bundle for base name dr.messageresource.MessageResources_en, locale en

but the problem that is that the localization stopped to work... no i got only English language and cannot switch to other languages
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah! I see where you are pointing to now. Let me set this up quickly at my end and test.
 
Daniel Reznick
Ranch Hand
Posts: 50
Eclipse IDE Google App Engine jQuery
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I got it working

i added an empty file with the name MessageResources.properties

That's it


no red X anymore

Thanks for the help dude!
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The compiler error was your issue or was it being able to pick multiple locales. So now are you able to test it for different locales?
 
Sai Hegde
security forum advocate
Ranch Hand
Posts: 210
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah, That was what it was. You need to have a default properties file with the name similar to the message bundle that you have configured.
The default file can be used as a template for your other files.
Supported locales/default locales will be configured through files appended with locale identifiers.

Cheers!!!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic