Quiero hacer mi soporte de aplicaciones Grails un solo idioma, que pueda definir en algún lugar, ignorando por completo las cabeceras del cliente o el parámetro "lang". ¿Hay alguna manera de que pueda hacerlo? Gracias.¿Cómo puedo obligar a Grails a usar solo un idioma?
Respuesta
Defina un bean LocaleResolver
en su config/spring/resources.groovy
para establecer la configuración regional predeterminada.
beans = {
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("de","DE")
java.util.Locale.setDefault(defaultLocale)
}
}
Esto es útil si usted no tiene que lidiar con el parámetro lang
- de lo contrario sería conseguir reemplazado. Incluso a ignorar el valor lang
parámetro puede ajustar la configuración regional en un Filter
sobre cada solicitud:
import org.springframework.web.servlet.support.RequestContextUtils as RCU
...
def filters = {
all(controller:'*', action:'*') {
before = {
def locale = new Locale("sv","SV")
RCU.getLocaleResolver(request).setLocale(request, response, locale)
}
}
}
Este enfoque parece un poco repetitiva como Locale es re-establece en cada petición. Sería más elegante deshabilitar la detección de la configuración regional de los navegadores a través de una opción de configuración.
quitar todos los archivos messages_xx.properties
y mantener sólo los archivos messages.properties
. Este es el paquete de mensajes predeterminado al que el sistema siempre retrocederá si no puede encontrar el paquete de mensajes correcto.
De esta manera puede seguir utilizando mensajes (y por lo tanto mantener la opción de nacionalizar su aplicación), pero los usuarios tendrán siempre el mismo idioma.
El valor predeterminado LocaleResolver
de Grails es SessionLocaleResolver
. Si desea utilizar siempre de_DE puede cambiar esto a FixedLocaleResolver
.
beans {
localeResolver(FixedLocaleResolver) {
locale = new Locale("de", "DE")
}
}
Si desea restringir a un conjunto de locales, entonces necesitará un filtro, y utilizar el método SessionLocaleResolver#setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale)
.
Tengo problemas con la solución "La configuración regional de la propiedad de frijol no es modificable o tiene un método de configuración no válido". ... " 'locale' no válido de propiedad de la clase bean [org.springframework.web.servlet.i18n.FixedLocaleResolver]" – Rafael
Esto parece funcionar -> localResolver (FixedLocaleResolver, Locale.US) – Rafael
- 1. ¿Cómo puedo obligar a GDB a desmontar?
- 2. ¿Cómo puedo obligar a mercurial a aceptar un commit vacío
- 3. ¿Cómo puedo obligar a Tor a usar una nueva identidad sin usar Vidalia?
- 4. ¿Cómo puedo obligar a Vaadin a actualizar la pantalla?
- 5. ¿Hay alguna manera de obligar a Jetty a usar solo HTTPS?
- 6. MediaElement.js: ¿obligar a Chrome a usar Flash Player?
- 7. Obligar a CUDA a usar el registro para una variable
- 8. ¿Por qué obligar a hibernar SessionFactory a un recurso JNDI?
- 9. ¿Cómo puedo obligar a nuestros desarrolladores a ingresar notas cuando se comprometen a través de TortoiseSVN?
- 10. Obligar a linq a realizar uniones internas
- 11. Griales un solo a un solo relación
- 12. Obligar a un objeto a desasignar bajo ARC
- 13. Obligar a ConfigurationManager a volver a cargar todas las secciones
- 14. ¿Cómo puedo obligar a XmlWriter a manejar espacios de nombres correctamente?
- 15. ¿Cómo puedo obligar a GCC a compilar funciones que no se utilizan?
- 16. ¿Cómo llamo a un servicio de Grails desde un gsp?
- 17. ¿Cómo puede obligar al navegador a descargar un archivo xml?
- 18. ¿Puedo usar Grails en software propietario?
- 19. ¿Cómo puedo obligar a los usuarios a acceder a mi página a través de HTTPS en lugar de HTTP?
- 20. ¿Cómo puedo vincular un FormView ASP.NET a un solo registro?
- 21. ¿Cómo puedo obligar a iOS Safari a ignorar la rotación EXIF?
- 22. ¿Cómo puedo obligar a Doxygen a mostrar la ruta completa de inclusión?
- 23. Grails: cómo usar createLink en un filtro?
- 24. ¿Cómo puedo obligar a asp.net webapi a decodificar siempre los datos POST como JSON
- 25. Obligar a gcc a compilar el archivo .cpp como C
- 26. Obligar a Eclipse a generar makefiles estándar de Unix
- 27. ¿Cómo acceder a la configuración de Grails en Grails 2.0?
- 28. Sintaxis del filtro de Grails, o, Cómo llamar a un filtro de Grails fuera de Grails
- 29. Visual Studio 2005/2008: ¿Cómo puede compartir/obligar a todos los desarrolladores a usar las mismas reglas de formato?
- 30. ¿Cómo puedes obligar a IE a renderizar en modo estándar si solo tienes control del contenido del cuerpo?
Esta no es una respuesta a la pregunta anterior. ArmlessJohn solicita específicamente la posibilidad de * anular * la configuración de idioma del usuario. Esto solo establece el valor predeterminado. Lea la respuesta a la que se vinculó nuevamente. – OverZealous
Gracias por el aviso: actualicé mi respuesta en consecuencia. – david
CUIDADO! java.util.Locale.setDefault (DefaultLocale) va a cambiar la configuración regional predeterminada para toda la JVM, que puede ser muy malo, ya que una gran cantidad de código piensa que "i" (.toUpperCase). equals ("I") en todas las configuraciones regionales . No ... Muchas utilidades inteligentes hacen suposiciones como esa. – JesperSM