2011-05-20 1 views
2

Je n'arrive pas à faire fonctionner la localisation lorsque je déploie mon application sur Tomcat. J'ai cette configuration dans mon applicationContext.xml:La localisation Spring 3.0 ne fonctionne pas dans Tomcat, uniquement depuis la jetée locale

<!-- Configures Handler Interceptors -->  
<mvc:interceptors> 
    <!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de --> 
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" > 
     <property name="paramName" value="locale" /> 
    </bean> 
</mvc:interceptors> 

<!-- Saves a locale change using a cookie --> 
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
    <property name="defaultLocale" value="no" /> 
</bean> 

<!-- Application Message Bundle --> 
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="useCodeAsDefaultMessage" value="true" /> 
    <property name="basename" value="classpath:language" /> 
    <property name="cacheSeconds" value="0" /> 
</bean> 

Maintenant, la localisation fonctionne très bien quand je le lance de la jetée localement. C'est lorsque j'exécute l'application de Tomcat qu'elle affiche la langue du fichier language_en.properties, pas mon fichier par défaut language.properties. Et quand j'essaye de changer les paramètres régionaux avec? Locale = non (norvégien) rien ne se passe à la langue sur le site, mais le journal montre que les paramètres régionaux sont réellement changés en "non".

Est-ce que quelqu'un a des solutions ou des suggestions pour résoudre ce problème, ou peut-être une autre façon de configurer la localisation. Je suis ouvert à tout et n'importe quoi.

+0

Lorsque vous accédez à l'application dans Tomcat, voyez-vous le cookie de paramètres régionaux défini dans la réponse? Etes-vous sûr que tous les fichiers 'language _ *. Properties' sont en cours de déploiement sur Tomcat? –

+0

mat b: Oui, le cookie est en cours d'installation, et il stocke les paramètres régionaux corrects, mais le fichier de langue correspondant à ces paramètres régionaux n'est pas chargé. – tego

Répondre

0

Essayez

classpath *: langue

par exemple, rechercher classpaths. Selon l'endroit où vous déployez vos regroupements de ressources, ils peuvent se retrouver à différents endroits dans la hiérarchie du chargeur de classe dans tomcat et jetty.

+0

Merci, mais cela me donne une erreur. – tego

+0

Ensuite, je voudrais essayer de coder en dur à l'emplacement réel du regroupement de ressources linguistiques, comme WEB-INF/classes/langue. – pap

+0

Cela n'a pas fonctionné non plus. Ce que je pense est tellement bizarre à propos de tout cela, c'est qu'il charge le fichier language_en.properties pas le fichier language.properties par défaut. Je ne suis pas sûr comment déboguer ceci correctement ... – tego

0

FINALEMENT! Je l'ai résolu!

I had to set the JvmOptions: 
-Duser.language=no 
-Duser.region=NO 

afin tomcat d'utiliser le language.properties et non le fichier language_en.properties. Et pour une raison étrange, cela fonctionne maintenant aussi lorsque vous définissez les paramètres régionaux (? Locale = fr) en anglais aussi.

+0

Espérons que ceci aidera à l'avenir certains programmeurs de non-english-as-default-locale: P – tego

Questions connexes