Foros del Web » Programando para Internet » Javascript »

coger idioma del navegador IE

Estas en el tema de coger idioma del navegador IE en el foro de Javascript en Foros del Web. Hola, estoy intentando coger mediante javascript el idioma de mi navegador, porque dependiendo del que sea quiero poner en mi aplicación unas librerías u otras. ...
  #1 (permalink)  
Antiguo 24/05/2011, 09:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
coger idioma del navegador IE

Hola, estoy intentando coger mediante javascript el idioma de mi navegador, porque dependiendo del que sea quiero poner en mi aplicación unas librerías u otras. He visto por internet la siguiente forma de hacerlo:

Código:
<script type="text/javascript">
			var idioma = '';
			
			if ( navigator ) 
			{
			    if ( navigator.language ) 
			    {
			        idioma = navigator.language;
			    }
			    if ( idioma == '' && navigator.browserLanguage ) 
			    {
			        idioma = navigator.browserLanguage;
			    }
			    if ( idioma == '' && navigator.systemLanguage ) 
			    {
			        idioma = navigator.systemLanguage;
			    }
			    if ( idioma == '' && navigator.userLanguage ) 
			    {
			        idioma = navigator.userLanguage;
			    }
			}
						
		</script>
Y en mi navegador, en la pestaña herramientas, opciones, idioma, le pongo dos, el inglés y el español. Se supone que el que se ponga primero es el que cogerá el navegador por defecto. De hecho si pongo el inglés las páginas me salen en inglés. El problema es que en el código javascript que he puesto más arriba, obtengo siempre como navigator.languaje el valor undefined, y para el resto de casos, el valor "es", como si estuviera siempre el español aunque esté seleccionado el idioma inglés.

¿Puede alguien ayudarme con ésto? No sé como coger el valor real. Estoy usando IE7, y también necesito que funcione para IE8. ¿Habrá algún problema de compatibilidad?
Muchas gracias, un saludo
  #2 (permalink)  
Antiguo 24/05/2011, 16:42
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 14 años, 4 meses
Puntos: 27
Respuesta: coger idioma del navegador IE

navigator.language no existe en IE, por eso hay un si(navigator.language), usalo, sino pues prueba con las demás cosas. Y el idioma del navegador depende del idioma de tu propio sistema Windows, es bastante dificil de cambiar (aunque seguramente haya algún complemente o plugin que te ayude a "simularlo" de cara al navegador)
__________________
I (L) Google
  #3 (permalink)  
Antiguo 24/05/2011, 17:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 6 meses
Puntos: 32
Respuesta: coger idioma del navegador IE

hola,
EL idioma del navegador esta asociado al idioma cual te as descargado el mismo.
caso de chrome, opera 11 te deja cambia el idioma del navegador y el código funciona, cambio de español a catalán, reinicio para aplicar cambios y me sale ca la alerta.
Pero en otros como firefox 2+ o ie7+ (los que tengo), al momento de descargarlos te preguntan en que idioma y ese idioma es el unico que tendrás, en las opciones, solo cambias (añades o quitas) la visualización de otros idiomas, ejemplo el chino, para que no te salgan los cuadrados y te salgan los símbolos de ese idioma y en las opciones agregas el chino, eso no quiere decir que el navegador se cambien a chino sino que el idioma chino(mandarin) se vera bien.

me e descargado el firefox 4 en catalan y la alerta me sale ca y mi firefox 2 que esta en español la alerta sale es.

IE tambien depende mucho del Windows, pero creo que igual respeta el idioma que te descargues el navegados independientemente de idioma del SO

para IE corre:
Código Javascript:
Ver original
  1. navigator.browserLanguage
y para los demas :
Código Javascript:
Ver original
  1. navigator.language

del codigo:
Código Javascript:
Ver original
  1. var idioma="";navigator&&(navigator.language?idioma=navigator.language:navigator.browserLanguage?idioma=navigator.browserLanguage:navigator.systemLanguage?idioma=navigator.systemLanguage:navigator.userLanguage&&(idioma=navigator.userLanguage));
  2.     alert(idioma);
  #4 (permalink)  
Antiguo 25/05/2011, 00:42
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 14 años, 4 meses
Puntos: 27
Respuesta: coger idioma del navegador IE

En lo demás navegadores si que se respeta perfectamente el lenguaje en el que te lo hayas descargado. Yo me refería a que Internet Explorer es bastante especialito a la hora de cambiar el lenguaje. Con los demas no hay problema ^^
__________________
I (L) Google
  #5 (permalink)  
Antiguo 25/05/2011, 00:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
Respuesta: coger idioma del navegador IE

Hola, gracias por responder, pero hay algo que no entiendo:
Si yo en IE como he comentado pongo como idioma por defecto el inglés, al navegar por internet, por ej. al ir a la página de google las etiquetas, los nombres de los botones, etc, salen en inglés (ej. Google Search en lugar de "Buscar con Google"). Con lo cual el idioma que yo puedo ver como usuario es el inglés. Lo que busco es una manera de conseguir ese valor desde mi aplicación, para que si el usuario ha puesto como preferente el idioma inglés vea los botones, etiquetas y demás en inglés, y si pone como preferente el español vea los botones y demás en español. Tiene que haber alguna manera de obtener el idioma utilizado. Con lo que ha comentado dukeblass obtengo el mismo resultado que con lo que yo tenía.
¿Sabéis alguna manera de obtener ese valor, de poder saber cuándo se ha puesto como preferente un idioma u otro? Muchas gracias
  #6 (permalink)  
Antiguo 25/05/2011, 05:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 6 meses
Puntos: 32
Respuesta: coger idioma del navegador IE

Una cosa el el idioma del navegador y otra es el idioma que tiene el interfaz de usuario,
en chrome y opera lo consiges con el navigator.language,
y para ie o ff y los demas con js no se puede(amenos no e encontrado) tienes que hacerlo con un lenguaje de servidor ejemplo PHP, dado que el cambio es en servidor.
y es este :
Código PHP:
Ver original
  1. getenv("HTTP_ACCEPT_LANGUAGE");
si en IE vas a opciones>idiomas, y cambias (quitaso añades), el aleman, español, ingles
el código te botara
Cita:
de,es-ES;q=0.7,en;q=0.3
maso menos
y asi tienes los tres idiomas, y listo
  #7 (permalink)  
Antiguo 25/05/2011, 06:30
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
Respuesta: coger idioma del navegador IE

Hola, e igual que se hace con php no se podría hacer con java? Con un objeto httpRequest, tiene que ser parecido. Seguiré buscando a ver si encuentro una solución, muchas gracias.
  #8 (permalink)  
Antiguo 25/05/2011, 06:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 6 meses
Puntos: 32
Respuesta: coger idioma del navegador IE

java o javascript
  #9 (permalink)  
Antiguo 25/05/2011, 06:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
Respuesta: coger idioma del navegador IE

Javascript. Estoy intentando lo siguiente:

Código:
<script type="text/javascript">			
			var urlIdioma = 'Idioma.servlet';
			jQuery.ajax({
			   type: 'GET',
			   cache: false,
			   url: urlIdioma,
			   dataType: 'text',
			   success: function (text, textstatus) {
				 alert('text'+text+', textstatus'+textstatus);
			   },
			   error: function (xhr, textEstatus, errorThrown) {
				 alert('xhr'+xhr+', textEstatus'+textEstatus+', errorThrown'+errorThrown);
				 
				
			   }
			});
		</script>
y en el servlet, lo siguiente:

Código:
package es.indra.aodb.maintenance.resources.web.action.gate;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IdiomaServlet extends HttpServlet {
	
	private static final long serialVersionUID = -7897645237016575215L;

	@Override
	public void service (HttpServletRequest request, HttpServletResponse response)
	{					
		String clientLanguage = request.getHeader("Accept-Language");
		((HttpServletResponse) request).setHeader("Accept-Language", clientLanguage);
		request.getSession().setAttribute("idioma",clientLanguage);	
	}
}
pero no llega al servlet, no sé por qué. Lo tengo definido en el web.xml:

Código:
    <servlet>
        <servlet-name>IdiomaServlet</servlet-name>
        <servlet-class>es.indra.aodb.maintenance.resources.web.action.gate.IdiomaServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
Y no hace más que darme error, el 404. Creo que debe estar mal direccionado al servlet, o que me falte algo, pero ahora no veo qué es. Si me puedes echar un cable te lo agradecería, porque creo que está ahí la solución.

Un saludo
  #10 (permalink)  
Antiguo 25/05/2011, 07:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 6 meses
Puntos: 32
Respuesta: coger idioma del navegador IE

alli ya me agarraste de java se poco...
por javascript el idioma de interfaz de usuario no lo sacas... pero si usas el XMLHttpRequest y lo pides por java. te saldrá.
te recomiendo que preguntes en la sección de java
  #11 (permalink)  
Antiguo 25/05/2011, 07:05
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
Respuesta: coger idioma del navegador IE

Muchas gracias, lo miraré. Un saludo

Etiquetas: coger, navegador, idiomas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:13.