Foros del Web » Programando para Internet » PHP »

Web site en varios idiomas

Estas en el tema de Web site en varios idiomas en el foro de PHP en Foros del Web. Hola gente. La consulta es lo siguiente: Deseo hacer un website en tres idiomas, y quiero usar la misma máscara para los tres idiomas y ...
  #1 (permalink)  
Antiguo 02/12/2006, 17:21
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 10 meses
Puntos: 0
Web site en varios idiomas

Hola gente.
La consulta es lo siguiente:
Deseo hacer un website en tres idiomas, y quiero usar la misma máscara para los tres idiomas y con un menu desplegable que me permita seleccionar el resto de idiomas, como las paginas de HP o de moodle. Por ejemplo en moodle, la unicación y el menu es uno solo, en la cual se carga el las palabras segun el idioma seleccionado, y las traducciones se encuentran en archivos diferentes.

Alguna idea de como se puede hacer?. Agradezco su respuesta anticipadamente.
  #2 (permalink)  
Antiguo 03/12/2006, 13:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 10 meses
Puntos: 0
Alguna idea, alguien que pueda sugerir alguna alternativa de solucion.
  #3 (permalink)  
Antiguo 03/12/2006, 17:46
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 9 meses
Puntos: 67
Eso normal mente se hace un archivo "estandar" y en los lugares donde tiene que salir los textos los toma de un archivo aparte.

Por ejemplo:

comun.php
Código PHP:
<?php
$idioma 
$_POST['Idioma']; //Recoge el idioma desde un formulario (como ejemplo, aunque hay muchas maneras de seleccionar el idioma)
include ('$idioma');
echo 
$frase1 ."<BR>";
echo 
$frase2;
?>
espaniol.php
Código PHP:
<?php
$frase1 
"Español";
$frase2 "Seleccionar idioma";
?>
ingles.php
Código PHP:
<?php
$frase1 
"English";
$frase2 "Select language";
?>
O también puedes hacer los idioma en bases de datos, eso ya depende de como lo quieras hacer.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #4 (permalink)  
Antiguo 04/12/2006, 03:27
Avatar de lcervantes  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 22 años, 7 meses
Puntos: 0
Yo normalmente trabajo con la traducción de los textos en Base de Datos, al igual que los idiomas.
Tengo una variable global que es el idioma y una vez cambia de idioma cambia la variable.
De tal manera que todas las consultas que realizo asi bien sea de textos o de selects de contenidos tienen asociada esta variable, permitiendome mostrar el contenido que quiero en el idioma respectivo.
Saludos
  #5 (permalink)  
Antiguo 04/12/2006, 06:04
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años, 5 meses
Puntos: 2
puedes usar gettext para hacer la internacionalización del sitio.
Aqui hay un tutorial para que te des una idea de lo que se tiene que hacer.

http://www.aota.net/forums/showthrea...threadid=10615
__________________
Saludos!
Mty-NL..
  #6 (permalink)  
Antiguo 05/12/2006, 12:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 10 meses
Puntos: 0
Gracias por las respuestas. Este es un archivo de idiomas en moodle, como podrian explicar su funcionamiento.

espanol.php
Código PHP:
<?PHP // $Id$ 
      // book.php - created with Moodle 1.5 UNSTABLE DEVELOPMENT (2004093001)
$string['adminseesallevents'] = 'Los administradores ven todos los eventos';
$string['adminseesownevents'] = 'Los administradores son como los demás usuarios';
$string['availablelangs'] = 'Paquetes de idioma disponibles';
$string['backgroundcolour'] = 'Color Transparente';
$string['badwordsconfig'] = 'Escriba su lista de palabras censuradas, separadas por comas';
$string['badwordsdefault'] = 'Si la lista personalizada está vacía, se usará una lista por defecto contenida en el paquete de idioma.';
$string['badwordslist'] = 'Lista personalizada de palabras censuradas';
$string['blockinstances'] = 'Ejemplos';
$string['blockmultiple'] = 'Múltiples';
?>
ingles.php
Código PHP:
<?PHP // $Id$ 
      // book.php - created with Moodle 1.5 UNSTABLE DEVELOPMENT (2004093001)
$string['adminseesallevents'] = 'Administrators see all events';
$string['adminseesownevents'] = 'Administrators are just like other users';
$string['allowrenames'] = 'Allow renames';
$string['availablelangs'] = 'Available Language Packs';
$string['backgroundcolour'] = 'Transparent Colour';
$string['badwordsconfig'] = 'Enter your list of bad words separated by commas.';
$string['badwordsdefault'] = 'If the custom list is empty, a default list from the language pack will be used.';
$string['badwordslist'] = 'Custom Bad Words List';
$string['blockinstances'] = 'Instances';
$string['blockmultiple'] = 'Multiple';
?>
Gracias.
  #7 (permalink)  
Antiguo 05/12/2006, 22:28
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
bookmaster ya te explicó de manera simple:

De acuerdo a la configuración del lenguaje llama o a la página ingles.php o a espanol.php

Las dos tienen definidas las mismas variables pero con su respectiva traducción.

Saludos
  #8 (permalink)  
Antiguo 06/12/2006, 12:01
Avatar de sergejzr  
Fecha de Ingreso: diciembre-2006
Ubicación: Osnabrück (Alemania)
Mensajes: 12
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: Web site en varios idiomas

Cita:
Iniciado por edcala Ver Mensaje
Gracias por las respuestas. Este es un archivo de idiomas en moodle, como podrian explicar su funcionamiento.
Hola edcala!
Casi como bookmaster te explicó.
index.php
Código PHP:
$idioma $_GET['idioma']; //Recoge el idioma desde un formulario (como ejemplo, aunque hay muchas maneras de seleccionar el idioma)
$idioma_file=$idioma.".php";
include (
$idioma_file);
echo 
$string['adminseesallevents']; 
Intenta:
index.php?idioma=espanol
index.php?idioma=english


Ademas tienes que controlar el nombre de idioma para evitar los hacks.
Código PHP:
$possibleidiomas=array();
$possibleidiomas['english']=true;
$possibleidiomas['espanol']=true;
if(!isset(
$possibleidiomas[$idioma]))
die(
'No hay file por esta idioma. Traducir no es posible.'); 

PS:
Una posibilidad mas es usar PEAR Translation2:
http://pear.php.net/manual/en/package.internationalization.translation2.php Pero todavía no he trabajado con este..
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:34.