Java Enterprise Turbine
Client based Localization
The normal thing is that a server provides you a page in a special language and if you choose an other language he browser fetches the hole page gain from the server witgh the new language given.

With the following simple command you can define a client message:
<@jet.m key="lbl.firstname"/>
For inserting the language selection with flags, just put the following command in your freemarker template: