Foros del Web » Programando para Internet » PHP »

Ayuda a Novato

Estas en el tema de Ayuda a Novato en el foro de PHP en Foros del Web. Bueno a ver si me pueden dar una manito con esto teniendo en cuenta que de programacion muy poco . . . me han pedido ...
  #1 (permalink)  
Antiguo 23/03/2004, 20:17
 
Fecha de Ingreso: enero-2002
Mensajes: 34
Antigüedad: 15 años, 11 meses
Puntos: 0
Ayuda a Novato

Bueno a ver si me pueden dar una manito con esto teniendo en cuenta que de programacion muy poco . . .

me han pedido una web la cual tiene tres idiomas
he pensado que no tengo que hacer 3 webs si no poder
usar unos archivos de idioma y me han pasado por ejemplo

ingles.inc.php
$texto['PrimerNombre']='First Name';
$texto['Direccion']='Address';
$texto['Telefono']='Telephone';
$texto['EnviarFormulario']='Submit';

espaniol.inc.php
$texto['PrimerNombre']='Nombre';
$texto['Direccion']='Direccion';
$texto['Telefono']='Telefono';
$texto['EnviarFormulario']='Enviar';

etc.

Ahora bien en la pagina coloco en vez del texto las variables:

<?= $texto['PrimerNombre']; ?>
<?= $texto['Direccion']; ?>
<?= $texto['Telefono']; ?>

Como hago el selector de idioma, para que tome la variable corespondiente?

Gracias!!
  #2 (permalink)  
Antiguo 23/03/2004, 22:07
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
No se bien

No se bien a que te refieres con eso de selector de idioma pero en PHP puedes saber el lenguaje del SO del usuario mediante la siguiente función:
Código PHP:
 $_SERVER['HTTP_ACCEPT_LANGUAGE']; 
esto te devuelve "es" en caso de Español, "en" en caso de Inglés y así mismo para otros. Si es otro lenguaje has un echo o printf para saber que te devolvió. Si no es eso lo que quieres explícate un poco mejor.

Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 24/03/2004, 06:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Se trata de usar la variable de servidor que menciona Reynier u otras funciones como get_browser() por ejemplo para determinar el lenguaje del navegador ..

Cuando tengas ese valor claro para cada idioma crea una sentencia condicional con switch() para cada caso (case) de las posibles alternativas que controles (de los idiomas que tengas ..) para los casos que no tengas tu idioma .. usa uno de los que ya usas como por defecto (default: .. en el swithc())

Un saludo,

PD: en las FAQ's hay creo un par de propuestas para sistemas multidiomas ...Revisalos.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 24/03/2004, 08:22
 
Fecha de Ingreso: enero-2002
Mensajes: 34
Antigüedad: 15 años, 11 meses
Puntos: 0
Claro lo qeu expique arriba se entendio?
cuando dije lo de selector de idioma me referia a que el usuario por ejemplo hace click en l abanderita americana y directamente el sistema toma el archivo english.inc.php
me pasaron esto:

<?php
include $_SESSION['idioma']; <--- esta variable deberia cambiar por english.inc.php o spanish.inc.php segun decida el usuario en el home de entrada.

Ahora voy a leer las faq como recomendo cluster

saludos y veremos si sale
  #5 (permalink)  
Antiguo 24/03/2004, 10:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues al hacer click tu usuario en la banderita .. tienes que pasarle como parámetro una varible y propagarla en todos tus links o bien usar cookies/sesiones para no tener que andar propagando constantemente esa variable en el URL ..

Si al parecer ya controlas el tema por sesiones .. usa el switch() mencionado para darle el nuevo valor a tu variable de sesión y para leerlo y llamar al include() del indioma que corresponda...

Ejemplo:

cambia_idioma.php

Código PHP:
<?
session_start
();
switch (
$_GET['idioma']){
case 
"espaniol":
  
$_SESSION['idioma']='espaniol';
break;
case 
"ingles":
  
$_SESSION['idioma']='ingles';
break;
default:
  
$_SESSION['idioma']='espaniol';
}
header("location: index.php");
exit;
?>
en tu banderita .. linkeas a:

cambia_idioma.php?idioma=espaniol
ó
cambia_idioma.php?idioma=ingles

Y en tus páginas verificas el valor de esa variable de sesión:

Código PHP:
<?
// si ya iniciastes el uso de sesiones .. no lo uses otra vez ..
session_start();

// Seleccionar el idioma desde la variabel de sessión

if (!empty ($_SESSION['idioma'])){

   switch (
$_SESSION['idioma']){
      case 
"espaniol":
          include (
"espaniol.inc.php");
      break;
      case 
"ingles":
          include (
"ingles.inc.php");
      break;
     default:
          include (
"espaniol.inc.php");
   }
} else {
    include (
"espaniol.inc.php");
}
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/03/2004 a las 10:24
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 23:13.