Pregunta

Tengo que externalizar el paquete MessageSources resorte por un soporte de i18n (archivos de propiedades) fuera de la ruta de clases con el fin de modificar las propiedades más fácilmente. ¿Cómo puedo hacer eso?

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="test-messages"/>

Gracias!

¿Fue útil?

Solución

Hemos construido una implementación de código de mensaje que mira hacia arriba mensajes en el PP. Lo que tienes que hacer es crear una implementación MessageSource que hereda de AbstractMessageSource de la primavera (con el fin de obtener todas las características, ver javadoc).

Hay que aplicar al mínimo el método abstracto 'resolveCode (String, Locale)' (pero 'resolveCodeWithoutArguments (String, Locale)' ejecución aumentarán sus actuaciones), que delega en un puntero que DAO para así de simple mesa, con una definición como la siguiente:

table translation (
  translation_id number pk
  code varchar(20)
  locale varchar(5)
  translation varchar(100)
)

código y la configuración regional forman un índice único.

Y ya está. Por supuesto, va a agregar algunas capacidades de caché, y proporcionar un comportamiento "degradación local" (es decir, si no se encuentra "en_US", intentan "en"), ya sea a nivel MessageSource dao- o.

Esto funciona perfectamente.

Otros consejos

para obtener información con respecto a este tema, pero creo que no es una buena práctica tener los archivos fuera del contexto de Tomcat como nunca se sabe dónde va a ser desplegado su aplicación.

Sin embargo, en caso de que necesite, encontrará algunas soluciones bastante agradables allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top