Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 22, 2012, 02:22:30
Foro de Hispabyte.netDiseño WebHosting y Desarrollo WebHTML / XML / Javascript (Moderador: D4MR0D)Tema: Pequeña duda en JavaScript
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: Pequeña duda en JavaScript  (Leído 958 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
Aguila Negra
Grupo_Moderadores
Miembro Imprescindible
*
Mensajes: 607


Ver Perfil WWW
« : Agosto 29, 2006, 05:39:16 »


Estoy haciendo unas pruebas con un peque?o ejemplo y no me funciona.
La idea es hacer una p?gina con dos botones/links, uno que diga "Castellano" y otro que diga "Ingl?s".
Abajo se imprime "Hola" o "Hello", dependiendo del idioma. Por defecto est? en ingl?s, pero si apretas en castellano se recarga la p?gina y se muestra en castellano. Si aprietas en ingl?s, idem pero mostrando el mensaje en ingl?s.

Lo que pasa es que solo se muestra en ingl?s, y no se que estoy haciendo mal, si uso mal el link, si la variable "global" que guarda el idioma cada vez que se recarga la p?gina vuelve a valer 'EN', o que...

Código:
var Idioma = 'EN';

function Escribir() {
if (Idioma=='EN' )  {
  document.write("Hello")
} else {
  document.write("Hola")
}
}

function Cambiar_Idioma(L) {
Idioma = L;
}

Código:
<html>
<head>
<title>Probando</title>
<script language="JavaScript" src="traduccion.js"></script>

</head>
<body>
<a href="prueba.html" onclick="Cambiar_Idioma('EN')">Ingles</a><br>
<a href="prueba.html" onclick="Cambiar_Idioma('ES')">Castellano</a><br>
<script language="JavaScript">
<!--
Escribir();
//-->
</script>
</body>
</html>

PD: La idea es hacer un "Readme" para una aplicaci?n multiling?e, pero como eso de tener 4 o 5 txts es muy cutre, pues pens? en hacer un html local, con javascript y css y dem?s chorradas. Estuve buscando sobre "plantillas" del lado del cliente (porque no habr?a servidor) y encontr? algo sobre JST.
Hab?a pensado en guardar todas las cadenas de texto en un js y as? tener un solo archivo html con el "dise?o" de la p?gina... si sabeis de alguna soluci?n m?s "fina"...
« Última modificación: Junio 22, 2008, 11:28:17 por HQH » En línea

----------<===(*Aguila Negra*)===>----------
//////andres.age(arroba)gmail(punto)com\\\\\\
======================================
New days are strange, is the world insane (..)
So ask yourself is the lovin' really gone
So I could ask myself really what is goin' wrong
In this world that we livin' in people keep on givin' in (..)
Not respectin' each other, deny thy brother
A war is goin' on but the reason's undercover
The truth is kept secret, it's swept under the rug
If you never know truth then you never know love (..)
That's the reason why sometimes I'm feelin' under
That's the reason why sometimes I'm feelin' down
There's no wonder why sometimes I'm feelin' under
Gotta keep my faith alive to lovers bound
ZiTAL
Experto
****
Mensajes: 365



Ver Perfil
« Respuesta #1 : Agosto 30, 2006, 02:57:04 »

Te he hecho uno parecido haber si te gusta Gi&ntilde;ar
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; chaset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
 function Cambia_lengua()
  {
   if(document.formu.Lengua.value=="Ingles")
    {
     document.formu.Lengua.value="Espa?ol";
    }
   else
    {
     document.formu.Lengua.value="Ingles";
    }
  }
 function Write()
  {
   if(document.formu.Lengua.value=="Ingles")
    {
     document.write("Hello");
    }
   else
    {
     document.write("Hola");
    }
  }
</script>
</head>
<body>
<form name="formu">
<input type="button" name="Lengua" value="Ingles" onCLick="Cambia_lengua()" />
<input type="button" name="Escribir" value="Escribir" onClick="Write()" />
</form>
</body>
</html>

tu fallo es que la funcion Escribir() la hace solo al cargar, deberas de pulsar algun boton o algun link para hacer esa funcion, prueba a introducirle esto despues de los <a href="..

Código:
...
<a href="prueba.html" onclick="Escribir()">Escribe</a><br>
...

aunque no se, nunca he utilizado variables globales.

suerte!!!
« Última modificación: Agosto 30, 2006, 02:58:47 por ZiTAL » En línea
Aguila Negra
Grupo_Moderadores
Miembro Imprescindible
*
Mensajes: 607


Ver Perfil WWW
« Respuesta #2 : Agosto 30, 2006, 08:36:21 »

Much?simas gracias por tu ayuda Cheesy

No termino de entender porque con tu ejemplo se "recarga" la p?gina, de forma que desaparece los botones.
Adem?s se me plantea la duda de que con el document.write, si vuelves a escribir, no sustituye lo anterior, que es lo que quiero.

De todas formas googleando durante unas *cuantas* horas he encontrado una manera que "parece" ser m?s limpia que usar el document.write, y es con DHTML, modificando un DIV mediante InnerHTML. Lo bueno es que adem?s coge el contenido de un archivo, con lo que facilita much?simo la traducci?n de la p?gina  Cheesy

El c?digo lo saque de aqu?, y funciona perfectamente y parece ser muy limpio  :lol:

El HTML:
Código:
<html>
<head>
<title>Probando</title>
<script language="JavaScript" src="traduccion.js"></script>

</head>
<!-- Cargamos al principio el texto en ingl?s -->
<body onload="paginas('ingles.txt','contenidos')">


<a href="#" onclick="paginas('ingles.txt','contenidos')">Ingles</a><p>
<a href="#" onclick="paginas('castellano.txt','contenidos')">Castellano</a><p>

<div id="contenidos" >

</div>

<br>
Texto que debe ir a continuaci?n de lo anterior.
</body>
</html>

El archivo traduccion.js:
Código:
// Documento JavaScript
// Esta funci?n cargar? las paginas
function paginas (url, id_contenedor)
{
    var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versi?n antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    }
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // funci?n de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los m?todos open y send
    pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la informaci?n requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
    document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}
En línea

----------<===(*Aguila Negra*)===>----------
//////andres.age(arroba)gmail(punto)com\\\\\\
======================================
New days are strange, is the world insane (..)
So ask yourself is the lovin' really gone
So I could ask myself really what is goin' wrong
In this world that we livin' in people keep on givin' in (..)
Not respectin' each other, deny thy brother
A war is goin' on but the reason's undercover
The truth is kept secret, it's swept under the rug
If you never know truth then you never know love (..)
That's the reason why sometimes I'm feelin' under
That's the reason why sometimes I'm feelin' down
There's no wonder why sometimes I'm feelin' under
Gotta keep my faith alive to lovers bound
ZiTAL
Experto
****
Mensajes: 365



Ver Perfil
« Respuesta #3 : Agosto 30, 2006, 10:37:51 »

yo suelo estar en ese foro tambien, sobre todo en PHP y javascript, me interesa mucho el AJAX haber cuando le hecho un vistazo. Suerte con las webs!!!
En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netDiseño WebHosting y Desarrollo WebHTML / XML / Javascript (Moderador: D4MR0D)Tema: Pequeña duda en JavaScript
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de