2008-10-01 18 views
6

GWT obtiene la configuración regional de la propiedad de configuración regional o de la cadena de consulta de configuración regional. Si no se especifica ninguno, usa la configuración regional "predeterminada" (es decir, en_US).¿Por qué GWT ignora la configuración regional del navegador?

¿Por qué no lo obtiene de la configuración del navegador?

Parece que la única solución para esto es reemplazar su página de inicio de html estática con algo así como un JSP que lea las configuraciones regionales del navegador y configure la configuración regional o las redirecciones utilizando la cadena de consulta. Tiene que haber una mejor solución que esta o simplemente codificar una configuración regional, ¿no?

Respuesta

3

Si coloca una lista de idiomas disponibles en su archivo * .gwt.xml, cambiará de manera predeterminada al primer idioma de la lista.

<!-- Slovenian in Slovenia --> 
<extend-property name="locale" values="sl"/> 

<!-- English language, independent of country --> 
<extend-property name="locale" values="en"/> 
+0

Tuve esto donde tuve en_AU agregado como la única extensión-propiedad y de manera predeterminada como "predeterminada". Tomó el parámetro de consulta de configuración regional o la etiqueta para que realmente llegue a en_AU. No puedo imaginar que solo "en" sea diferente pero, incluso si lo fuera, eso no ayudaría. No quiero en_US. – cletus

6

También se puede poner este interruptor en su * .gwt.xml

<set-configuration-property name="locale.useragent" value="Y"/> 

esta selección de idioma agregará basada en el idioma seleccionado en el navegador. También puede controlar el orden de búsqueda para la configuración regional mediante el establecimiento de

<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/> 

Pero ten en cuenta que en el IE esto no funciona - usted debe desarrollar recogida lenguaje de servidor basado en cabecera 'Accept-Language' enviar por el IE.

0

Si su página de entrada es un JSP, puede inspeccionar el encabezado de la solicitud Accept-Language para establecer dinámicamente la configuración regional.

1

Se puede utilizar una cookie para guardar y enviar este valor, pero para eso hay que añadir en su * .gwt.xml primera

<set-configuration-property name="locale.cookie" value="yourCookieName"/> 
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/> 

Tenga en cuenta que "queryparam" tiene la mayor prioridad aquí , que permite establecer una nueva configuración regional utilizando la consulta http e ignorar el valor en la cookie.

0

agregar esta entrada en su archivo * .gwt.xml para ver el efecto!

¡Compruebe la siguiente línea para obtener más información!

<set-configuration-property name="locale.useragent" value="Y"/>

0

Esto funcionó para mí, espero que también funciona para usted.

Mi problema es que no he declarado ningún valor de configuración regional en el descriptor de módulo .gwt.xml. En ese caso, solo se usa la configuración regional predeterminada. GWT lo hace de esa manera porque cualquier configuración regional compatible diferente significa una nueva iteración/permutación de compilación. Por lo tanto, solo se utilizan las configuraciones regionales declaradas.

Aquí son un ejemplo:

<!-- Locales --> 
<extend-property name="locale" values="en_US"/> 
<extend-property name="locale" values="es"/>  
<set-property-fallback name="locale" value="en_US"/> 
<set-configuration-property name="locale.useragent" value="Y" /> 
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent" /> 

La primera y segunda líneas establezca los locales disponibles/compatibles (Inglés y español de los Estados Unidos sin país específico en mi ejemplo). La tercera línea establece la configuración regional predeterminada en caso de que no se detecte ninguna (esta declaración predeterminada debe establecerse después de declarar el valor predeterminado en una línea extend-property). La cuarta línea habilita la detección de la configuración regional por medio de la cabecera HTTP-Accept-Idioma enviado por el navegador (probablemente esté habilitado por defecto y no sea necesario configurarlo).La línea final establece el orden en que los diferentes mecanismos de detección tratan de detectar la configuración regional:

  1. Como parámetro de la consulta URL
  2. de las cookies
  3. Como un valor meta en la página HTML
  4. Desde el encabezado HTTP enviado por el navegador
Cuestiones relacionadas