Foros del Web » Programando para Internet » PHP »

Traducir página

Estas en el tema de Traducir página en el foro de PHP en Foros del Web. Hola, siempre he tenido la duda de cómo hacen para que una página esté en varios idiomas. Lo único que se me ocurre es que ...
  #1 (permalink)  
Antiguo 03/01/2008, 09:32
 
Fecha de Ingreso: julio-2006
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 0
Traducir página

Hola, siempre he tenido la duda de cómo hacen para que una página esté en varios idiomas.
Lo único que se me ocurre es que cada frase sea una función con dos parámetros, el idioma y el ID de la frase.

De esta forma el texto

"Tiene $50.000 en su banco, señor Ahmed"
quedaría como

Código PHP:
echo frase(1,"es")." $ $dinero"frase(2,"es")." ".$nombre
Lo cual es bastante enredado. Alguien lo ha hecho/pensado de otra forma?

Porque escribir cada página en idiomas distintos sería luego imposible hacer una modificación.

Saludos
  #2 (permalink)  
Antiguo 03/01/2008, 10:20
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Re: Traducir página

lo puedes hacer con una lista de variables en la que cada cual contenga el valor de una frase, o por xml pero cualquiera que uses va a resultarte algo bastante enredado.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 03/01/2008, 10:29
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Re: Traducir página

algo sencillo y rapido
Código PHP:
$lenguaje=$_GET['lang'];

if(
$lenguaje == "es"){
define('HOLA',"Hola señor $nombre como esta usted hoy?");
}else if(
$lenguaje == "ing"){
define('HOLA',"Hi Mister $nombre how are you today?");
}

echo 
""._HOLA_.""; (algo asi
;
  #4 (permalink)  
Antiguo 03/01/2008, 10:45
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Re: Traducir página

Lo que te plantea MoDoRro es una buena idea si no tienes mucho contenido o no quieres muchos idiomas. pero si tienes una página demasiado grande (en cuanto a la cantidad de texto o la quieres traducir a muchos idiomas se hace tedioso de todas formas.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 03/01/2008, 11:06
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: Traducir página

De hecho la forma de modorro es la forma mas utilizada por sistemas grandes como este vBulletin o phpbb, pero debes de ver más alla de lo que simplemente planteo el.. podrias hacer varios archivos de idiomas.. todos con la misma estructura.. de variables y usar arrays asociativos.. Ejemplo...


archivo es.php
Código PHP:
$frase['HolaMundo'] = 'Hola Mundo';
$frase['MensajeError'] = 'A ocurrido un error mientras se procesaba';
$frase['MensajeBienvenida'] = 'Hola Bienvenido a la pagina'
archivo en.php
Código PHP:
$frase['HolaMundo'] = 'Hello World';
$frase['MensajeError'] = 'An exception has ocurred';
$frase['MensajeBienvenida'] = 'Hi, Welcome to our site'
y en tus paginas lo usarias asi..

Código PHP:
<?php
$lenguaje
=$_GET['lang']; 
if(!isset(
$lenguaje))
{
include(
'es.php');
}else
{
include(
$languaje.'.php');
}
?>
Código PHP:
<h1><?php echo $frase['HolaMundo']; ?></h1>
 <p><?php echo $frase['MensajeBienvenida']; ?></p>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 03/01/2008, 11:17
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Re: Traducir página

bueno a eso me referia con "lista de variables en la que cada cual contenga el valor de una frase" pero en verdad no lo habia pensado como lo planteas tu _ssx, en verdad tienes toda la razon.

saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #7 (permalink)  
Antiguo 04/01/2008, 09:13
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Re: Traducir página

si no quieres complicartela con ARRAYS o con funciones complicadas
haz esto

espanol.php
Código PHP:
$bienvenida="Que hay, Bienvenido a la Pagina de la Traduccion";
$frase="todo mundo busca la manera de hacer mas";
$despedida="Sigue visitandonos, somosla numero 1"
ingles.php
Código PHP:
$bienvenida="What, Welcome to the position of the Translation";
$frase="Everybody's looking for ways to make more";
$despedida="Continue to visit, we are the number 1"
y en tu archivo

bienvenida.php
Código PHP:
$idioma=$_GET['idiona'];

if(empty(
$idioma)){
include(
"espanol.php");
}else{
include(
"$idioma.php");
}

echo 
$bienvenida;
echo 
$frase;
echo 
$despedida
y listo! incluyes el archivo donde vienen las variables en ingles o español

Saludos
  #8 (permalink)  
Antiguo 20/02/2008, 15:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Re: Traducir página

hola wenas !! perdonen que les pregunte..
pero como se cambiaria de un idioma a otro.
es decir en algunos script se cambia asi: pagina.php?idioma=nombre_idioma
en esta como seria?¿
es q no tengo mucha idea de php.
muchas gracias.
  #9 (permalink)  
Antiguo 20/02/2008, 15:52
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Traducir página

Para mi tendrias que hacer esto:

primero preguntarle a un usuario que idioma habla y guardarlo en una variable de cookie..

if ($i=e)
{
Hola!
}
else
{
Hi!
}

Y si quieres mas de dos idiomas:

if ($i=e)
{
Hola
}
else
{
if ($i=f)
{
Bonjour
}
else
{
Hi
}


Espero haberte ayudado

Última edición por lauchalp95; 20/02/2008 a las 15:55 Razón: Editado
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 02:10.