<#import "spring.ftl" as spring />
Justo en estos ultimos releases estamos agregando internacionalizacion
en Katari. Estamos usando una estrategia que permite:
1- Que los modulos puedan ser localizados por su autor.
2- Que un tercero pueda agregar traducciones a otro modulo,
simplemente agregando un jar.
3- Que el que empaqueta la webapp pueda redefinir cualquier mensaje en
cualquier idioma.
Tambien estamos incluyendo un mecanismo para seleccionar el locale:
* Si se postea lang=<blah>, se toma ese lenguaje para el request.
* Usamos el cookie locale resolver.
* Evitamos el uso de messages.properties sin el locale.
* Definimos un 'fallback locale', el locale que se usa si no se
encuentra la traduccion.
En estos dias voy a hacer un release que incluye la
internacionalizacion de menues.
Saludos
2011/9/5 Marianela Moras <alejand...@globant.com>:
> --
> You received this message because you are subscribed to the Google Groups
> "katari-user" group.
> To post to this group, send email to katar...@googlegroups.com.
> To unsubscribe from this group, send email to
> katari-user...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/katari-user?hl=en.
>
--
Pablo Gra\~na
Chief Architect
Globant
Arg Office: +54 (11) 4109 1743
UK Office: +44 (20) 7043 8269 int 8043
US Office: +1 (212) 400 7686 int 8043
En la version 0.36 (o 0.35, no recuerdo), hay un
FreemarkerDecoratorServlet que implementa un mecanismo similar al del
DispatcherServlet de spring. Con eso podes incluir el spring.ftl en
los decorators y usar @spring.message. Para usar esto, tenes que:
1- Actualizar a una nueva version de katari. Esto puede que no sea
trivial, porque actualizamos katari a spring 3.0. No debera ser tan
costoso, tampoco, en 1/2 dia tiene que salir. Hay que 'vigilar' las
dependencias: que no se 'cuele' alguna de spring 2.5 (mvn
dependency:tree ayuda).
2- Definir un bean KatariMessageSource en el module.xml del style module:
<!-- Message source for this module, loaded from localized "messages_xx"
files.
Note: as this message source is not named messageSource, it is not used as
the defaulte message source for the application context. -->
<bean id="decorator.messageSource"
class="com.globant.katari.core.spring.KatariMessageSource"
p:basename="classpath:/com/globant/katari/style/lang/messages"
p:debugPrefix='../katari-style/src/main/resources'
p:debug-ref='debugMode'>
<constructor-arg index='0' value='local-login'/>
<constructor-arg index='1' ref='katari.messageSource'/>
</bean>
3- Cambiar la declaracion de FreemarkerDecoratorServlet. Aca hay hay un ejemplo:
<bean
class="com.globant.katari.core.sitemesh.FreemarkerDecoratorServlet">
<constructor-arg index='0' ref='decorator.messageSource'/>
</bean>
</constructor-arg>
<constructor-arg index="1">
<map>
<entry key="TemplatePath"
value="class://com/globant/katari/style"/>
<entry key="DebugPrefix"
value="../katari-style/src/main/resources"/>
<entry key="AdditionalTemplatePaths"
value="class://com/globant/katari/core/web;class://org/springframework/web/servlet/view/freemarker"/>
<entry key="AdditionalDebugPrefixes"
value="../katari-core/src/main/resources;../katari-core/src/main/resources;"/>
<entry key="debug" value-ref="debugMode"/>
</map>
</constructor-arg>
</bean>
(lo mas importante es la referencia al messageSource)
4- Escribir las traducciones en los messages_<locale>.properties.
NOTA: los ejemplos anteriores hay que adaptarlos al proyecto concreto.
saludos
2011/9/6 Marianela Moras <alejand...@globant.com>: