Graal comment modifier les paramètres régionaux en cours
Comment puis-je modifier les paramètres régionaux en cours ?
- J'ai essayé de mettre
controller/action?lang=de
mais mes paramètres régionaux est encoreen_US
-
J'ai essayé de remplacer la valeur à l'aide de ce morceau de code:
def key = "org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER" def localeResolver = request.getAttribute(key) localeResolver.setLocale(request, response, new Locale("de","DE"))
Rien n'a changé.
-
J'ai essayé de remplacer la valeur à l'aide de ce morceau de code:
import org.springframework.web.servlet.support.RequestContextUtils as RCU; RCU.getLocaleResolver(request).setLocale(request, response, new Locale("de","DE"))
Et... rien ne s'est passé. j'ai toujours mes paramètres régionaux définis à en_US
.
Une idée pour modifier les paramètres régionaux ?
Vous devez vous connecter pour publier un commentaire.
Selon le chapitre 10. L'internationalisation de le Graal de la documentation, Graal prend en charge i18n hors de la boîte et vous devriez en effet être en mesure de modifier le paramètre à l'aide de la
lang
paramètre:Mais parfois, vous pouvez régler la langue par défaut parce que toutes vos applications seront en anglais. Pour ce faire, tout ce que vous avez à faire est de définir votre
localeResolver
dans votreresources.groovy
printemps fichier de configuration comme indiqué ci-dessous:Maintenant, sans plus de détails, je ne peux pas dire pourquoi à l'aide de la
lang
paramètre ne fonctionne pas dans votre cas. Juste au cas où, comment savez-vous que les paramètres régionaux est encore en_US?.Accept-Language
en-tête est réglé? Quelle est la version du graal utilisez-vous?2.4.3
et ce travail est à définir le lieu de départ de paramètres régionaux. J'avais besoin de cette fonction pour définir NL comme langue par défaut.Avez-vous essayez de modifier les paramètres régionaux en application de l'url de la racine (par exemple.
http://localhost:8080/myapp/?lang=de
)?Dans Graal de base, le programme d'installation essaie de changer les paramètres régionaux en application de la racine de l'url ne fonctionne pas. Graal modifier les paramètres régionaux dans
localChangeInterceptor
qui est appelée avant que tous les contrôleurs sont appelés. Lorsque vous accédez à l'application de la racine de l'url, pas de contrôleur est appelé comme on peut le voir en défaut UrlMappings.C'est pourquoi en changeant les paramètres régionaux en application de la racine de l'url ne fonctionne pas. Si vous essayez de changer l'url dans certains contrôleur, il fonctionne.
Paramètres régionaux en cours est stocké sous clé
org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME
dans la session http. Vous pouvez le vérifier il.Bonne solution est de cartographier l'url de la racine de certains contrôleur dans UrlMappings.
C'est probablement trop tard, mais pour la référence, je le fais dans ma page index de contrôleur:
Autant je comprends la façon dont vous contrôlez les paramètres régionaux "demande.paramètres régionaux" est mauvais, il donne les paramètres régionaux du navigateur, les paramètres régionaux du graal d'application.
Vous devez utiliser "LocaleContextHolder.paramètres régionaux".
Dans 2.0.3 il modifie les paramètres régionaux par un simple passage de paramètre
lang=someLocale
.J'ai eu un problème similaire, et c'était à cause d'un espace. J'ai eu:
[space]messages_de.properties
au lieumessages_de.properties
J'ai eu un problème avec ce temps de retour lors de la proxy-ing par le biais d'une ancienne version de Apache2.2 et en utilisant le graal (2.3.9) fichier war. J'ai eu plus de chance en utilisant mod_proxy_html (3.1) /Apache 2.4. Peut-être d'autres versions plus évoluées de graal résoudre ce problème.