Foros del Web » Programando para Internet » PHP »

hacer una web en 2 idiomas con PhP !! AYUDA !!!

Estas en el tema de hacer una web en 2 idiomas con PhP !! AYUDA !!! en el foro de PHP en Foros del Web. Hola amigos! necesito ayuda para realizar una página web en 2 idiomas.., inglés y español. No se mucho php, pero mi idea es la siguiente: ...
  #1 (permalink)  
Antiguo 23/02/2008, 11:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
hacer una web en 2 idiomas con PhP !! AYUDA !!!

Hola amigos! necesito ayuda para realizar una página web en 2 idiomas.., inglés y español.

No se mucho php, pero mi idea es la siguiente:

Crear algun tipo de función, que según la variable que yo le pase desde un enlace de selección de idioma, visualice una parte del código fuente con un echo "<html></html>" donde la web esté escrita en español, u otra parte del código, con otro echo "<html></html>" , donde la página esté escrita en inglés.

Lo que no sé es como escribir esa función, será con un "if else", y que el "if" contenga la web en un idioma y el "else" contenga la web en el otro...

Me ayuda alguien porfavor??? No se la sintaxis ni escribirlo!!!
  #2 (permalink)  
Antiguo 23/02/2008, 12:38
Avatar de zick  
Fecha de Ingreso: mayo-2007
Ubicación: Los Angeles - Chile
Mensajes: 168
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Hola..
No entendí mucho lo que deseas, pero veamos si puedo ayudarte.

supongamos que los enlaces son asi:

Código PHP:
<a href="index.php?idioma=ES">Español</a>|<a href="index.php?idioma=EN">English</a
A mi gusto, tendrias que tener las dos paginas por separado, una como espanol.html y la otra ingles.html, de manera de poder vincularlas por separado sin cargar tanto una sola pagina:

Código PHP:
<?php 
if($_GET['idioma'] == "ES" || $_GET['idioma'] == NULL || $_GET['idioma'] == ""){
include(
"idiomas/espanol.html");
}elseif(
$_GET['idioma'] == "EN"){
include(
"idiomas/ingles.html");
}
?>
Esto lo guardas en el archivo index.php, entonces cuando la pagina se carge, abrirá el idiomas/espanol.html (por que no hay variables GET defindas, o sea que español queda por defecto). Ahora bien, al hacer click en el enlace English, pasamos la variable Idioma "EN" por GET e index nos reconoce que se establece la variable, por lo que carga la pagina idiomas/ingles.html .

Espero haber acertado en lo que querías.

Salud!!
  #3 (permalink)  
Antiguo 23/02/2008, 15:56
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

El problema es que tendría que repetir esta función en todas las páginas... :-/

Quizá lo mas interesante sería crear la web de tipo modular, a base de includes para los menus y cabecera y pie, y... luego..., solo crear funciones de if else con echos para el texto en sí que apareciese en el cuerpo...

No sería muy incomodo... si se crea un codigo limpio...

Me imagino que podría utilizar la funcion que me has propuesto:

Cita:
<?php
if($_GET['idioma'] == "ES" || $_GET['idioma'] == NULL || $_GET['idioma'] == ""){
echo "Texto de la pagina.";
}elseif($_GET['idioma'] == "EN"){
echo "Text page.";
}
?>
  #4 (permalink)  
Antiguo 24/02/2008, 01:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

si no hases un include que contenga los dos idiomas y lo puedes poner en cookie o db como quieras el cual seria asi

_BIENVENIDO'user';

espanol.php
_BIENVENIDO = Bienvenido

Ingles.php
_BIENVENIDO = Welcome
  #5 (permalink)  
Antiguo 24/02/2008, 03:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Cita:
Iniciado por Edig Ver Mensaje
si no hases un include que contenga los dos idiomas y lo puedes poner en cookie o db como quieras el cual seria asi

_BIENVENIDO'user';

espanol.php
_BIENVENIDO = Bienvenido

Ingles.php
_BIENVENIDO = Welcome
Sí, para mí es la mejor idea. El costo de mantener dos plantillas para cada idioma es demasiado. Yo en general suelo cargar un arreglo $translations y siempre que necesite un literal me refiero directamente a una clave común a todos.
Por ejemplo:
$translations['strWelcome'];

Algo importante es que a veces necesitas construir el literal con variables. Por ejemplo que tengas que poner hace cuanto se publicó algo:
En inglés:
$translations['strPublished'] = '%s ago'
En castellano
$translations['strPublished'] = 'hace %s'

Y luego te vales de sprintf($translations['strPublished'],$timestamp) para escupir la cadena en la plantilla.

Si quieres ver más detalles fijate en el código de phpmyadmin que se valen de esta técnica.

Saludos.
__________________
programación php
  #6 (permalink)  
Antiguo 24/02/2008, 11:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Si pero las traducciones no son muy utiles por que te transladan textualmente no con el contexto. Sau2
  #7 (permalink)  
Antiguo 24/02/2008, 12:36
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Hola de nuevo, lo de trasladar del español a ingles de manera automatica, no puedo, pues los textos vienen dados de antemano... Y tienen que estar redactados perfectamente...

De todas formas, creo que la mejor opción puede ser utilizar el if else con echos que contengan la parte de la web donde aparezca el texto ya sea en uno u otro idioma... mientras que todo lo demás, sea comun...

De todas formas, hay algun metodo para q en los enlaces, <a> vayan a la misma página en la que están?

<a href="veaestamismapagina?idioma=ES">Español</a>|<a href="veaestamismapagina?idioma=EN">English</a>

Así sería muchisimo mas facil de implementar todo esto...

Saludos!
  #8 (permalink)  
Antiguo 24/02/2008, 13:11
Avatar de RedFox  
Fecha de Ingreso: noviembre-2007
Ubicación: mAdRiD - sPaiN
Mensajes: 49
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

yo lo tengo mas o menos asi:

Código:
<?php 
if($_GET['lang'] == "spa" || $_GET['lang'] == NULL || $_GET['lang'] == ""){
include("langs/es/");
}if($_GET['lang'] == "fr"){
include("langs/fr/");
}elseif($_GET['lang'] == "eng"){
include("langs/eng/");
}
?>
Es igual que el de zick lo que pasa que con un idioma mas, el problema es que hay que implementarlo en todas las paginas, yo lo que hago es crear una carpeta para cada idioma, duplico todos los archivos y los traduzco.
  #9 (permalink)  
Antiguo 24/02/2008, 15:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Hola de nuevo, he estado pensando... Y creo que tengo una solución muy interesante para no tener que repetir el if else en cada página...

A ver os cuento mi idea...

Creamos una página PHP con una funcion que contenga el if else, y según el idioma, creamos un echo para el if que visualice una variable..., y otro echo para el else que visualice otra variable.

Solo tendríamos que crear dos variables y hacer in link a la pagina PHP creada, en cada página donde quisieramos aplicar el sistema este para cambiar de idioma, cada variable contendría el código html necesario y el texto propiamente dicho, para que dicho texto se viese en uno u otro idioma... Así se ahorrarían muchas páginas duplicadas, y lineas repetidas de código php...

Que opináis?

Sería algo así?? No se si está escrito bien o puede funcionar pero la idea parece realizable:

Código:
<?php
function cambiaIdioma () 

{

if($_GET['idioma'] == "ES" || $_GET['idioma'] == NULL || $_GET['idioma'] == "")
{
echo $esp;
}

elseif($_GET['idioma'] == "EN")
{
echo $eng;
}

$esp = $contenido;
$eng = $contenido;
?>

}
en las páginas sería algo así:

Código HTML:
<html>
<title></title>
[B]<link a nuestra página php con la funcion>[/B]
<metas y tal>

<body>
<include menus y esas cosas>

<?php
$esp="<h1>Cosas buenas</h1><p class='textoazul'>Hola amigos.</p>";
$eng="<h1>Good things</h1><p class='textoazul'>Hello my friends.</p>";

echo $contenido;
?>

</body>


</html> 
No se si entendéis mi idea... basicamente seria crear al final una variable q mostrase lo q sea q se haya elegido en el if else...


Es que no se escribirlo, pero esa es mi idea.. epero que me ayudeis !!!
  #10 (permalink)  
Antiguo 24/02/2008, 16:15
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Es una buena idea, pienso que lo mejor sería guardar en una archivo cada idioma:
ingles.php y spanish.php y ejecutarlo como tu haces en el ejemplo.

Que bueno lo importante es que lo estas haciendo y así se te abren otras ideas .
  #11 (permalink)  
Antiguo 24/02/2008, 16:28
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: hacer una web en 2 idiomas con PhP !! AYUDA !!!

Hola cfranco, lo malo es que hay una parte que cojea en mi idea, almenos yo no se como escribirlo en php...

La cuestión es:

- Cómo puedo lograr, que la variable $esp y la variable $ eng, sean iguales a la variable $contenido al mismo tiempo, (que es la que luego muestra lo que se tenga que mostrar según elección de idioma)...

Alguien me ayuda con este punto?

Y una pregunta que tengo sin resolver, en un enlace html, (el tipico <a href="">), ¿como puedo decirle que recargue la página en la q está sin tener que escribir la url en el "href"?
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




La zona horaria es GMT -6. Ahora son las 22:15.