I have set up i18n in Spring MVC 3, and it is working correctly.
There are several files, each with its own language: messages_en.properties, messages_de.properties, etc.
In one of my JSPs, I need to show the users a combo with all available languages, and I would like this list to be dynamic i.e. generated on the fly from the existing language files in the server.
Is there any built-in method to generate this list? Or do I have to resort to check the folder where the language files reside and parse them?
Thanks!
Nacho
Ok, two solutions found. For both, assume they are being executed inside a Spring MVC
@Controller-annotated class. Each will produce a HashMap (languages) in which the key is the 2-letter ISO language code, and the value the language name (in the current Locale, which in these examples is a static variable calledHSConstants.currentLocale)1.- The one submitted by @millhouse (see above/below), which works after a bit of tweaking:
This solution requires that, in each of your language .properties files, you set an entry with the language (in the example above, it would be ‘currentLanguage’). For ecample, in messages_it.properties, there must be an entry like this: currentLanguage=Italiano
2.- Raw method, i.e. accesing the folder/files directly: assuming the files languages are in /WEB-INF/languages, and have a basename of fr-messages:
And then, in your JSP, render the select box using the
languagesmap: