GWT UIBinder + i18n

1) Hay que hacer es modificar el module.gwt.xml y agregar los locales que van a ser soportados en la aplicación


<!--Defines all possible locales we'll use-->
<extend-property name="locale" values="en,ru"/>   
<!--Defines default locale-->
<set-property-fallback name="locale" value="en"/>

2) Luego hay que poner las etiquetas dentro del archivo .ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
             xmlns:g='urn:import:com.google.gwt.user.client.ui'

             ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat"
             ui:generateKeys="com.google.gwt.i18n.server.keygen.MD5KeyGenerator"
             ui:generateLocales="en,ru">
    <g:HTMLPanel>
        <ui:msg key="msg2" description="test description2">Test2!</ui:msg>
        <ui:msg key="msg1" description="test description">Test!</ui:msg>
        <ui:msg>Test3!</ui:msg>
    </g:HTMLPanel>
</ui:UiBinder>
3) Compilar el proyecto con el parámetro -extra /tmp/gwt. Esto lo que va a hacer es generar los archivos .properties. Genera uno por cada ui.xml por cada idioma.

4) Hay que copiar los archivos generados en la misma carpeta en la cual se encuentra la vista.

5) Renombrar el archivo y eliminar el nombre del paquete.

6) Realizar la traducción de los archivos.

7) Recompilar el proyecto.

8) Ahora se pueden probar los diferentes locales agregando ?locale=es (por ejemplo) en la url.