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.
<html>
  <head>
    <@jet.js_cm/> 
    <@jet.css_lang/> 

  </head>
...
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:
<@jet.languages/>