memento2008
Usuario Novato
Usuario Novato

Buenas,

Estoy realizando un ejercicio con html y javascript. Tengo una web con tres frames (izquierdo:menú, top:título, y principal:texto)

Quiero incluir en el menú dos enlaces que permitan cambiar el idioma del texto(sustituir) mostrado en el frame principal mediante javascript (objetos del DOM).

He creado el contenido del texto en una página html con los dos idiomas, pero no sé como vincular el archivo javascript con la función sustituir texto. De hecho no sé bien bien como realizar dicho script.

Agradecería cualquier ayuda o consejo aportado.

gracias.

document.getElementById


Avatar Image
@man / @woman
@man / @woman

Hola, parece sencillo. Te animás a hacer una versión reducida del html, que incluya en el body con un par de párrafos con los 2 idiomas (como los tengas) más lo que tengas de javascript y postearlo acá?

memento2008
Usuario Novato
Usuario Novato

Gracias por responder. Intentaré explicarme lo mejor posible.

Tengo la página en tres frames. En el principal (dónde se muestra el texto) esto es lo que tendría(resumido)

<body  >

<div id="english" >
You have changed to english .
</div>
<div id="español" >
Has cambiado el idioma a español.
</div>


</body>

En el frame izquierdo tengo un indice con dos enlaces para seleccionar el idioma y al clickar debería cambiar el texto del frame principal por el texto con el idioma seleccionado.

<li>Elije Idioma</li>
                <ol>
                    <li><a href="d-frame.html" target="der"><img name="english" src="../imagenes/eng3.gif" alt=""
onClick="cambiar()" " style="cursor: pointer"  /></a></li>
                    <li><a href="d-frame.html" target="der"><img src="../imagenes/esp.gif" alt="" name="español" width="31" " style="cursor: pointer"
onclick="cambiar()"  /></a></li>
                </ol>

Y estoy intentando crear la función en javascript que la tengo en el documento idioma.js y sería:

no lo tengo claro....estoy indagando por internet pero no lo soluciono. Sé que debo usar getElementById para obtener y que me muestre sólo el texto que está dentro de la id pasada como parámetro.

Cualquier ayuda será bien recibida y agradecida.

Avatar Image
@man / @woman
@man / @woman

Te muestro como funciona esa instrucción (el resto es que corrijas):

Spoiler:
<html>
<head>
<script language= "JavaScript">
function cambiar_a(lenguaje){
  document.getElementById('english').style.display= (lenguaje=='english')? 'inline' : 'none';
  document.getElementById('español').style.display= (lenguaje=='español')? 'inline' : 'none';
}
</script>
</head>
<body>

<div id="english">
You are looking english (bahh).
</div>

<div id="español">
Ud. está viendo el mejor idioma: español.
</div>

<p>Elije Idioma</p>
<p style="cursor: pointer;" onClick="cambiar_a('english');">Inglés</p>
<p style="cursor: pointer;" onclick="cambiar_a('español');">Español</p>
</body>
</html>

Salu2

memento2008
Usuario Novato
Usuario Novato

Gracias por tu inestimable ayuda!

Pero lo que no consigo es como hacer que desde el frame izquierdo donde tengo el menú, que al seleccionar idioma me sustituya el texo que hay en el frame principal.

En el frame izquierdo tengo:

<li>Elije Idioma</li>
                <ol>
                    <li><a href="d-frame.html" target="der" onClick="cambiar('english');"></a>Ingles</li>
                <ol>

y en el d-frame(principal):

<SCRIPT language="JavaScript" src="../script/idioma.js"></SCRIPT> archivo .js con la función

y luego:

</head>

<body onLoad="javascript:cambiar_a(lenguaje)" >

<div id="english">
texto en ingles.
</div>

<div id="español">
texto en español.
</div>

</body>
</html>

No sé si me he explicado muy bien, pero estoy aprendiendo desde hace poquito...

Gracias de nuevo por robar tu tiempo.

saludos

Avatar Image
@man / @woman
@man / @woman

No te funciona xq cada frame es un html, entonces deberías poner la selección de idiomas (lista) + scripts + divs en el mismo html.

Hay forma de manejar elementos desde un frame a otro (veré si lo busco).

Ya lo encontré, cambiá estas líneas:

esto:      document.getElementById('english').style.display= (lenguaje=='english')? 'inline' : 'none';

por:        top.frames['principal'].document.getElementById('english').style.display= (lenguaje=='english')? 'inline' : 'none';

y ajustá el resto

memento2008
Usuario Novato
Usuario Novato

Buenas,

Un millón de gracias por tu ayuda...al final resolví el problema del idioma.

Ahora estoy tratando de hacer que el idioma seleccionado se guarde en una cookie del navegador para que cuando el usuario entre le muestre la información con  el idioma que eligió en otra sesión.

La verdad es   que no sé por donde empezar...estoy mirando por internet pero no lo acabo de entender.

tengo creada la función cambiar idioma en el script:

function cambiar(idioma){
  top.frames['der'].document.getElementById('catala').style.display= (idioma=='catala')? 'inline' : 'none';
  top.frames['der'].document.getElementById('español').style.display= (idioma=='español')? 'inline' : 'none';
}

desde el frame izquierdo tengo los links para cambiar el idioma por el usuario:

<li><a  href="javascript:cambiar('español')" >

Si alguien me puede echar un cable.

Gracias por adelantado.

benatr
Usuario Novato
Usuario Novato

Hola, buenas. Estoy probando la misma función pero yo como no trabajo con frames yo tengo la siguiente:

<head>

<script language= "JavaScript">

function cambiar_a(lenguaje){
  document.getElementById('euskara').style.display= (lenguaje=='euskara')? 'inline' : 'none';
  document.getElementById('español').style.display= (lenguaje=='español')? 'inline' : 'none';
}
</script>
</head>
<body>

<div id='top'></div>

<div id='left'>
    <ol>
<p style="cursor: pointer;" onClick="cambiar_a('euskara');">Euskara</p>
<p style="cursor: pointer;" onclick="cambiar_a('español');">Español</p>
                </ol>
</div>

<div id='right'>
    <div id="euskara" >
    Euskarara aldatu duzu .
    </div>
    <div id="español" >
    Has cambiado el idioma a español.
    </div>

</div>

</body>

Mi pregunta es  que si no pinchas en ningún enlace me supongo que saldrían los dos idiomas. Hay alguna forma de poner por defecto un idioma en el onload del body? algo así:

<body Onload="cambiar_a('español')">

Avatar Image
@man / @woman
@man / @woman

En la etiqueta del div que no quieres que salga por defecto añade que salga oculto,

<div id="ejemplo" style="display: none;">

benatr
Usuario Novato
Usuario Novato

Gracias. todo bien.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 28/May/2011, 17:11
e-juanky GestionXls412kMay/11