JavaScript - [Solucionado] Detectar idioma del navegador y redirigir al visitante

 
Vista:
sin imagen de perfil

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Vega (16 intervenciones) el 19/03/2014 07:57:40
Hola a todos, les comparto este código que no encontré aquí, ésto para que en un futuro les sirva a los demás, se trata de un código Javascript, que detecta el idioma del navegador y redirige al usuario a un index diferente (esto sirve para mostrar nuestro sitio en varios idiomas).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>titulo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
 
<script type="text/javascript">
window.onload = function() {
 
var ln = x=window.navigator.language||navigator.browserLanguage;
if(ln == 'en'){
window.location.href = 'index_en.html';//si esta en inglés va a ingles
}else if(ln == 'es'){
window.location.href = 'index_es.html'; // si es es va a español
}else{
window.location.href = 'index_es.html'; // si no es ninguna de los dos va a español
}
}
</script>
</body>
</html>

Pueden agregar otros idiomas como PT, FR, DE, JP, etc,etc sólo necesitan saber el código de éste y agregarlo en otro else if. O elegir otra ruta remplazando "index_es.html" por lo que tu quieras :P

Código por: emprear

Espero que les sirva.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por xve (2100 intervenciones) el 19/03/2014 09:06:45
Muy bueno Vega... muchas gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Gerardo (1 intervención) el 07/08/2015 01:46:25
Seria mucho mejor de esta forma y te ahorras todos los if


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>titulo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
 
<script type="text/javascript">
window.onload = function() {
 
var ln = x=window.navigator.language||navigator.browserLanguage;
 
window.location.href = 'index_" + ln[0] + ln[1] + ".html';//
 
}
</script>
</body>
</html>

asi solo utilizas pocas lineas para detectar cualquier lenguaje y claro el ln[0] y ln[1] solo toma los primeros 2 caracteres de la cadena ya que algunos navegadores en vez de tomar solo "es" te dan "es-mx" o "es-es" como ejemplo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Krupper (1 intervención) el 12/09/2015 01:45:49
Hola!,
Cómo se aplicaría la estructura en mi caso, de contar con la siguiente estructura de html5:

www.dominio.com/es/inicio.html
www.dominio.com/en/home.html


Gerardo! como debería colocarse el script que sugieres para éste caso?.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html>
<html lang="es">
<head>
 
	<meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1,requiresActiveX=true">
 
 
	<title> Inicio :: Pagina </title>
	<meta name="description" content=" add description  ... ">
 
</head>
 
<body class="sticky-header">
 
<script type="text/javascript">
window.onload = function() {
 
var ln = x=window.navigator.language||navigator.browserLanguage;
 
window.location.href = '/es/inicio" + ln[0] + ln[1] + ".html';//
 
}
</script>
 
</body>
</html>


Que definición tendría ln[0] y ln[1] ?
ln[0] = Español?
ln[1] = Ingles?

gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por ScriptShow (692 intervenciones) el 24/02/2023 19:48:08
Saludos,

una variante posible, entre otras...

1
2
3
4
5
6
<script type="text/javascript">
window.onload = function() {
var ln = window.navigator.language || navigator.browserLanguage;
window.location.href = "index-" + ln + ".html";
}
</script>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por florenzo (1 intervención) el 18/09/2015 20:46:16
El Post de Vega el primero el mas sencillo para mi el mejor, muchas gracias muy bueno y facil de adaptar funciona al 100% muy bien explicado y con notas muy aclaratorias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Pablo (2 intervenciones) el 24/06/2016 16:06:46
Sobra un x=, quedaría:
1
var lang = window.navigator.language || navigator.browserLanguage;

Notar que si se pone en una única home entra en loop, en mi caso tuve que revisar el path de la URI con una regex:
1
if ( ! /(^\/EN|^\/ES)/.test(window.location.pathname) ) { ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Pablo (2 intervenciones) el 24/06/2016 17:14:41
Más aún, en realidad esa es una forma obsoleta de proceder, desde 2014 conviene usar el Accept-Language' del header http, que usa la configuración de idiomas preferidos del browser en vez de .su interfaz. Quedaría:

1
var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage)

Ver respuesta de Tim Babych acá.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por henry (1 intervención) el 04/07/2022 21:58:59
exelente, facil , simple se agraga directo al html.
un lujo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Juan (4 intervenciones) el 24/02/2023 16:44:55
Hola tengoun problema con el codigo me genera un bucle

la version en español es
https://datahosting.com.pe/index.html

y la version en ingles es
https://datahosting.com.pe/en/index.html

agregue este codigo en mi body y me genera un bucle alguien puede ayudarme a crear el codigo perfecto para la redireccion de acuerdo al idioma ingles o español


CODIGO QUE AGREGUE
--------------------------------------------------------------------------------------------
<script type="text/javascript">
window.onload = function() {

var ln = x=window.navigator.language||navigator.browserLanguage;
if(ln == 'en'){
window.location.href = '/en/index.html';//si esta en inglés va a ingles
}else if(ln == 'es'){
window.location.href = 'index.html'; // si es es va a español
}else{
window.location.href = '/en/index.html'; // si no es ninguna de los dos va a español
}
}
</script>
--------------------------------------------------------------------------------------------

NECESITO AYUDA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Yamil Bracho (2 intervenciones) el 24/02/2023 16:52:51
Como se llama la pagina donde estas colocando el codigo ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Juan (4 intervenciones) el 24/02/2023 19:16:53
Hola Yamil se llama index.html en la url principal

https://datahosting.com.pe/index.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por ScriptShow (692 intervenciones) el 24/02/2023 20:42:36
Saludos,

se puede afinar el resultado según el país, etc...

General:

1
2
3
4
5
6
7
8
<script type="text/javascript">
window.onload = function() {
var ln = window.navigator.language || navigator.browserLanguage;
 
if (ln.match("es")) {window.location.href = "./es/index.html"};
if (ln.match("en")) {window.location.href = "./en/index.html"};
}
</script>

Concreto:

1
2
3
4
5
6
7
8
<script type="text/javascript">
window.onload = function() {
var ln = window.navigator.language || navigator.browserLanguage;
 
if (ln == "en-UK") {window.location.href = "/en/index.html";}
if (ln == "es-ES") {window.location.href = "/es/index.html";}
}
</script>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Solucionado] Detectar idioma del navegador y redirigir al visitante

Publicado por Juan (4 intervenciones) el 24/02/2023 22:34:19
Hola Scriptshow, buen dia gracias por tu solucion y si funciono tuve que colocar la parte en español en una carpeta /es/ y el ingles a una carpeta /en/.

y cree un index.html en la raiz principal y agregue el codigo
https://datahosting.com.pe/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="en">
<head>
<title>DDoS Protected Hosting - Datahosting</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
 
<script type="text/javascript">
window.onload = function() {
var ln = window.navigator.language || navigator.browserLanguage;
 
if (ln.match("es")) {window.location.href = "./es/index.html"};
if (ln.match("en")) {window.location.href = "./en/index.html"};
}
</script>
</body>
</html>

Ahora mi pregunta es Scriptshow si mi carpeta principal root tiene la version por defecto en español y la version en ingles en una carpeta /en/

como seria el codigo ejemplo para la version en español que esta en el root osea en el /public_html/index.html
y la version en ingles /public_html/en/index.html

Pregunto esto porque quiero saber si no perfudica el SEO organico de la pagina principal que es español ya que es un dominio con extension .com.pe (PERU)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="en">
<head>
<title>DDoS Protected Hosting - Datahosting</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
 
<script type="text/javascript">
window.onload = function() {
var ln = window.navigator.language || navigator.browserLanguage;
 
if (ln.match("es")) {window.location.href = "./index.html"};
if (ln.match("en")) {window.location.href = "./en/index.html"};
}
</script>
</body>
</html>

Este codigo me genera un bucle en la raiz o root del hosting
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar