separador punto por moneda idioma decimales cómo configuración configuracion coma cambiar grails internationalization locale

grails - punto - configuracion regional windows 10 decimales



Grails cómo cambiar la configuración regional actual (6)

¿Cómo puedo cambiar la configuración regional actual?

  • Traté de poner el controller/action?lang=de pero mi configuración regional sigue siendo en_US
  • Traté de anular el valor usando este fragmento de código:

    def key = "org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER" def localeResolver = request.getAttribute(key) localeResolver.setLocale(request, response, new Locale("de","DE"))

Nada ha cambiado.

  • Traté de anular el valor usando este fragmento de código:

    import org.springframework.web.servlet.support.RequestContextUtils as RCU; RCU.getLocaleResolver(request).setLocale(request, response, new Locale("de","DE"))

Y ... no pasó nada. todavía tengo mi configuración regional en en_US .

Alguna idea de cambiar la configuración regional?


¿Intenta cambiar la configuración regional en la URL raíz de la aplicación (por ejemplo, http://localhost:8080/myapp/?lang=de )?

En la configuración básica de Grails, intentar cambiar la configuración regional en la URL raíz de la aplicación no funciona. Grails cambia la configuración regional en localChangeInterceptor que se llama antes de llamar a todos los controladores. Cuando accede a la URL raíz de la aplicación, no se llama a ningún controlador, como se puede ver en UrlMappings por defecto.

Es por eso que cambiar la configuración regional en la URL raíz de la aplicación no funciona. Si intentas cambiar la URL en algún controlador, funciona.

La configuración regional actual se almacena en la clave org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME en la sesión http. Puedes verificarlo allí.

La solución correcta es asignar la url raíz a algún controlador en UrlMappings.


De acuerdo con el capítulo 10. Internacionalización de la documentación de Grails, Grails admite i18n de fábrica y, de hecho, usted debería poder cambiar la configuración regional utilizando el parámetro lang :

Por defecto, la configuración regional del usuario se detecta desde el encabezado Accept-Language entrante. Sin embargo, puede proporcionar a los usuarios la capacidad de cambiar configuraciones regionales simplemente pasando un parámetro llamado lang a Grails como parámetro de solicitud:

/book/list?lang=de

Grails cambiará automáticamente la configuración regional del usuario y la almacenará en una cookie para que las solicitudes posteriores tengan el nuevo encabezado.

Pero a veces es posible que desee preestablecer el idioma predeterminado porque no todas sus aplicaciones estarán en inglés. Para hacer esto, todo lo que tiene que hacer es configurar su localeResolver en su archivo de configuración de resources.groovy spring como se muestra a continuación:

beans = { localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) { defaultLocale = new Locale("de","DE") java.util.Locale.setDefault(defaultLocale) } }

Ahora, sin más detalles, no puedo decir por qué usar el parámetro lang no funciona en su caso. Por si acaso, ¿cómo sabes que la configuración regional todavía está en_US ?.


Por lo que entiendo, la forma en que está revisando la configuración regional "request.locale" es incorrecta, le da la configuración regional del navegador, no la configuración regional de la aplicación de griales.

Debería usar " LocaleContextHolder.locale ".

En 2.0.3 , cambia la configuración regional simplemente pasando el parámetro lang=someLocale .


Probablemente es demasiado tarde, pero como referencia, hago esto en mi controlador de página de índice:

session[''org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE''] = new Locale("es", "PR")


Tuve un problema con este tiempo al usar proxy en una versión anterior de Apache2.2 y al usar el archivo war de griales (2.3.9). He tenido mejor suerte usando mod_proxy_html (3.1) / Apache 2.4. Tal vez versiones más avanzadas de Grails solucionen esto.


Tuve un problema similar, y fue porque un espacio. Tuve:

[space]messages_de.properties vez de messages_de.properties