Foros del Web » Programando para Internet » Javascript »

visualizar capas segun el idioma seleccionado en otra pagina

Estas en el tema de visualizar capas segun el idioma seleccionado en otra pagina en el foro de Javascript en Foros del Web. Hola. Tengo una página hecha en Dreamweaver en un idioma, pero tengo que añadir otros 4 idiomas. Como sólo van a cambiar los textos que ...
  #1 (permalink)  
Antiguo 17/06/2003, 07:21
 
Fecha de Ingreso: junio-2003
Mensajes: 16
Antigüedad: 21 años, 7 meses
Puntos: 0
visualizar capas segun el idioma seleccionado en otra pagina

Hola.

Tengo una página hecha en Dreamweaver en un idioma, pero
tengo que añadir otros 4 idiomas. Como sólo van a cambiar los textos que los tengo en capas, pensaba :

si hay alguna manera fácil, con alguna función Javascript de que según que idioma elegimos
en el index, en la siguiente página visualicemos las capas de
ese idioma y ocultemos las otras.

Pienso que de alguna manera tendría que pasar el dato de una
página a otra mediante variable o algo, y luego en el onload
leerlo y mediante algunos if ... elegir las capas a visualizar.

Si tengo que modificar código, necesitaría alguna muestra, ya
que en Visual Basic me arreglo bien, pero en estas cosas de
html soy muy nueva, y me pierdo.

Gracias a cualquiera que me conteste.
  #2 (permalink)  
Antiguo 17/06/2003, 07:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Hola ganbo,

si no usas frames quizás la forma más sencilla sería usando cookies de una sesión. En la cookie anotas el idioma escogido y que las páginas saquen el valor de esa variable y muestre la capa que corresponda.

Si usas frames es aún más sencillo, pues si tienes algún frame que no cambie puedes guardar ahi la variable y pasar de las cookies.

Podrías poner inicialmente todas las capas ocultas y poner un onload="capadeid(idioma).visibility='visible'" y yá
  #3 (permalink)  
Antiguo 18/06/2003, 03:52
 
Fecha de Ingreso: junio-2003
Mensajes: 16
Antigüedad: 21 años, 7 meses
Puntos: 0
Gracias tunait.
Lo de las cookies me parece bien pero se pueden tener deshabilitadas y entonces ???
No tengo frames.
Creo que en el vínculo se puede pasar una variable,
pero luego no se si puede leer en la página que se abre ???
Si no tengo otra solución, duplicaré todas las páginas haciendo una para cada idioma.
Muchas gracias.
  #4 (permalink)  
Antiguo 18/06/2003, 04:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Hola ganbo

Lo de las cookies deshabilitadas he de verificar algo, pero te cuento.

La idea es usar una cookie de sesión ¿y esto qué es? pues una cookie que se establece sin caducidad. Las cookies sin caducidad tienen una vigencia mientras dura abierta la ventana del navegador que puso la cookie y tiene vigencia también en las ventanas "familia". Osea, que si se abre una ventana nueva desde la ventana que puso la cookie, ésta también estará en la nueva ventana.

Las cookies de sesión NO se escriben en el ordenador cliente.
Es decir, es imposible poder ver una cookie de sesión en los temporales de internet. La cookie la almacena el navegador en memoria.

Esto me hace pensar que aunque el usuario las tenga deshabilitadas se pueden usar, puesto que no se está escribiendo nada en el cliente (que alguien me corrija si estoy equivocada, puesto que es una suposición mía y no he encontrado info al respecto). Simplemente la guarda en memoria el propio navegador.

La alternativa que dices de pasar la variable por url también es viable. Sólo que todos y cada uno de los links de tu sitio habrán de llevar la variable por la url. Digamos que te daría más trabajo.

Todas tus páginas habrán de llevar script de cualquier forma.

Tú dirás
  #5 (permalink)  
Antiguo 18/06/2003, 04:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola ganbo: (Hola tunait )

Puedes pasar variables con un formulario, usando el método get, y por ejemplo un campo name=idioma, y en el value el texto...
algo así:

<form action="destino.html" method="get">
<input type=text name="idioma" value="es">
<input type=submit>
<form>

De esta manera se envía en la linea de comandos algo así:
http://www.loquesea/destino.html?idioma=es

... Y desde la página destino.html tienes que leer la línea mediante location.search... que empezará con "?" seguido de idioma=es

Espero que te sirva.

Saludos
  #6 (permalink)  
Antiguo 18/06/2003, 12:18
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Buenas

Me he tirado de los pelos pero (creo) lo logré [ovación de aplausos]

El script contempla ambas posibilidades; usar cookies o usar la url para pasar el dato.

Por defecto trabajará con cookies de sesión (por cierto, yá comprobé que si están desactivadas no acepta ni lee si quiera las de una sola sesión )

En el caso de que el navegador no acepte cookies, entonces trabaja con las url.

El script se encarga en este caso de alterar los links de cada página para pasar los datos.

Colgué el ejemplo. Si te sirve, pues lo puede adaptar.

Caricatos! Para el tema de mandar la variable por url lo hice de otra forma sin usar un form, a ver qué te paíce

saludos a ambos dos

estooo el ejemplo
  #7 (permalink)  
Antiguo 18/06/2003, 12:58
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284


Muy bien

La verdad es que a mi no me gusta mucho usar formularios en enlaces normales (prefiero usarlos para contactar y cosas así... )

Saludos
  #8 (permalink)  
Antiguo 18/06/2003, 13:03
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
zenquiu....


¿probaste también desactivando las cookies?
  #9 (permalink)  
Antiguo 19/06/2003, 00:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola tunait (Hola ganbo... si estás por ahí )

La verdad es que no desactive las cookies, pero me eché (no me acuerdo si lleva "h") algunos minutos viendo el código (tampoco fueron muchos), y creo que tiene que ir bien... pero voy a probarlo y te cuento...

Saludos

Hola otra vez...

No te puedo asegurar que lo hice bien, pero en una opción sobre cookies puse "nunca" (no me acuerdo qué) y sigue bien...

Ahora tengo que irme al curro, pero mañana me ocuparé mejor.

Saludos

Hola otra vez:

Funciona bien

Saludos

Última edición por caricatos; 19/06/2003 a las 00:53
  #10 (permalink)  
Antiguo 19/06/2003, 02:49
 
Fecha de Ingreso: junio-2003
Mensajes: 16
Antigüedad: 21 años, 7 meses
Puntos: 0
Muchas gracias a Tunait y Caricatos por mirar mi tema.
Ando un poco liada y no he tenido tiempo para hacer pruebas. Además soy un poco nueva en esto de trabajar con el código y voy mucho más lenta que vosotros.

Gracias Tunait por ponerme un ejemplo, me viene muy bien, ver
como se hace, ya que como os he dicho mi experiencia no es muy amplia y así lo hago más rápido y voy aprendiendo.

Saludos.

Cuando haga las pruebas, os contaré que tal.
  #11 (permalink)  
Antiguo 20/06/2003, 06:20
 
Fecha de Ingreso: junio-2003
Mensajes: 16
Antigüedad: 21 años, 7 meses
Puntos: 0
De acuerdo

Hola a todos.

Tunait, como ya comenté antes, mis conocimientos son escasos en JavaScript,
y como estas son mis primeras funciones he buscado
una solución que entienda y pueda manejar yo misma.

El código que me dejaste me parece alucinante pero no tengo todavía los conocimientos suficientes para poder dominarlo bien,
lo guardo por si más adelante lo necesito.

O sea que mirando tu codigo, he aprendido lo de “getElementById” y lo de “location.search “, etc y lo he hecho de la siguiente forma.
He abandonado el tema de las cookies, ya que si no funciona en todos, pues he decidido pasar la variable por el vínculo.

De todos modos, se admiten criticas o posibles modificaciones. Tener en cuenta que de momento no llego a mas. Snif,

Escribo el código, por si a algún pobre infeliz como yo, le viene bien.

Gracias y saludos.

Pagina 1
En el OnMouseOver de las banderas de los idiomas,
<div id="Frances" style="position:absolute; left:139px; top:16px; width:110px; height:18px; z-index:2"><a href="#" onMouseOver="cambioTexto(1)">Idioma:Frances</a></div>
<div id="Ingles" style="position:absolute; left:261px; top:18px; width:109px; height:21px; z-index:3"><a href="#" onMouseOver="cambioTexto(2)">Idioma:Ingles</a></div>
<div id="Italiano" style="position:absolute; left:397px; top:18px; width:103px; height:20px; z-index:4"><a href="#" onMouseOver="cambioTexto(3)">Idioma:Italiano</a></div>


llamo a esta función para cambiar lo textos y vínculo de las capas

function cambioTexto(num)
{
if(num==1)
{
document.getElementById('IrPag2').innerHTML='<a href="Pagina2.htm?fr">Ale ale Pag. 2<'
}
else if(num==2)
{
document.getElementById('IrPag2').innerHTML='<a href="Pagina2.htm?in">Go to Pag. 2<'
}
else if(num==3)
{
document.getElementById('IrPag2').innerHTML='<a href="Pagina2.htm?it">Partire a Pag. 2'
}
}


Y en la Pagina 2

En el OnLoad llamo a Visualizar según Idioma

<body bgcolor="#FFFFFF" text="#000000" onLoad="visualizar(Idioma)">


a algunas capas que son tipo menú, les cambio el texto y el vínculo,
y otras capas que tienen mucho mas texto y no tienen vinculo, pues las visualizo o las escondo, dependiendo del idioma.

var Idioma = unescape(location.search).substr(1);

function visualizar(Idioma)
{
if(Idioma=="fr")
{
document.getElementById('Productos').innerHTML='<a href="Productos.htm?fr">Productes<'
document.getElementById('TextoFrances').style.visi bility = 'visible'
document.getElementById('TextoIngles').style.visib ility = 'hidden'
document.getElementById('TextoItaliano').style.vis ibility = 'hidden'
}
else if (Idioma=="in")
{
document.getElementById('Productos').innerHTML='<a href="Productos.htm?in">Products<'
document.getElementById('TextoFrances').style.visi bility = 'hidden'
document.getElementById('TextoIngles').style.visib ility = 'visible'
document.getElementById('TextoItaliano').style.vis ibility = 'hidden'
}
else if (Idioma=="it")
{
document.getElementById('Productos').innerHTML='<a href="Productos.htm?it">Productos<'
document.getElementById('TextoFrances').style.visi bility = 'hidden'
document.getElementById('TextoIngles').style.visib ility = 'hidden'
document.getElementById('TextoItaliano').style.vis ibility = 'visible'
}
}
  #12 (permalink)  
Antiguo 20/06/2003, 06:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Hola ganbo

No he mirado aún tu código, porque antes te quería decir que el script yá incluye la opción sin cookies.

El visitante ni se entera. En primer lugar mira si acepta cookies. Si las acepta, se activa el script con cookies. Si el navegador no las acepta, pasa de las cookies y se encarga de asignar a tus enlaces el parámetro adecuado.

No necesitas tocar nada de ese código, sólo copiar y pegar el script en head, agregar la llamada a la función en body y llamar a tus capas esp a la de español, fra para frances... o en su defecto cambia los valores del array de los idiomas y los values del selector de idioma.

Fíjate que en el ejemplo que te dejé colgado tú no te enteras de si usas o no cookies.

Fíjate que si acepta cookies tu navegador no pasa la variable por la url. Si desactivas las cookies y vuelves a la página seguirá funcionando normalmente, pero ahora llevará parámetros en la url.

La verdad es que lo hice contemplando (creo) todas las pobilidades y de forma que no haya que tocar nada del código
  #13 (permalink)  
Antiguo 20/06/2003, 06:42
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
--------------------------------- ... Unos minutos más tarde.... ---------------------------------

Acabo de mirar tu código. No lo he probado, pero a simple vista lo veo correcto (felicidades )

No sé cuántas páginas forman tu sitio pero... si pasas la variable por url.... ¿cómo lo vas a hacer para añadir el parámetro del idioma a todos los enlaces? a mano? Y qué pasa si el visitante quiere cambiar de idioma?
Estas fueron las preguntas que me asaltaron a medida que comencé un script que, inicialmente, había de ser sencillo

Te explico lo que hace el script:

Al cargar cualquier página que lo lleve, lo primero que hace es verificar si el navegador del visitante acepta cookies.

Si las acepta, verifica si está la cookie del idioma. Si no está, pone visible la capa de español por defecto.

Si no acepta cookies se va a mirar en la url. Si no hay parámetros, pone la capa de español por defecto.

Si el visitante decide cambiar de idioma ahí mismo:

Si acepta cookies, coloca la cookie y oculta todas las capas y muestra sólo la del idioma seleccionado.

Si no acepta cookies:
Recorre todos los links a otras páginas que encuentre en esa página les añade el parámetro a la url de su href.

Así al pinchar en cualquier enlace yá enviará el parámetro, lo recogerá en la siguiente página y mostrará la capa del idioma seleccionado. Si se decide cambiar el idioma de nuevo, vuelve a recorrer todos los enlaces y les cambia el parámetro a enviar.

Los únicos enlaces que no altera, si existen, son los que llevan la # (se supone que esos no van a otra página y no necesitan parámetros. Si usaras algún enlace al ancla de otra página entonces habría que anular la instrucción que omite el alterar los enlaces con #)

De esta forma, da igual que acepte o no cookies. Si las acepta, las url's quedan limpias. Si no, funciona igual. Permite cambiar el idioma desde cualquier página sin necesidad de tener que alterar a mano ningún enlace.

Joer, parece como si lo vendiera eh
  #14 (permalink)  
Antiguo 20/06/2003, 07:34
 
Fecha de Ingreso: junio-2003
Mensajes: 16
Antigüedad: 21 años, 7 meses
Puntos: 0
Hola Tunait

La respuesta a : Y qué pasa si el visitante quiere cambiar de idioma?
Pues : Sólo dejo cambiar el idioma en la primera página, con lo
que después de elegido voy leyendo con el location.search y cambiando los siguientes enlaces con el código.

De todos modos ya que me lo explicas tan bien y me lo vendes tan bien probare tu código.

Gracias, gracias

De todos modos, abandono el tema hasta el lunes.
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 1 personas




La zona horaria es GMT -6. Ahora son las 19:30.