Foros del Web » Programando para Internet » PHP »

Web Modular en 2 idiomas

Estas en el tema de Web Modular en 2 idiomas en el foro de PHP en Foros del Web. Hola, estoy haciendo una web modular como la que explican en Zonaphp , les quería preguntarles como hacer para tener este tipo de estructuras preparadas ...
  #1 (permalink)  
Antiguo 09/06/2008, 08:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Exclamación Web Modular en 2 idiomas

Hola, estoy haciendo una web modular como la que explican en Zonaphp , les quería preguntarles como hacer para tener este tipo de estructuras preparadas para 2 idiomas...

Mi idea era la de crear 2 archivos, EN.php y ES.php y que por defecto tome el español.

Con 2 links ofrecer el pase de lenguaje y que éste se mantenga en una session 'idioma' para evitar que aparezca en la barra de direcciones.

Intente varias formas pero no funcionaba... hace poco utilizo esta estructura y no se bien como hacer para hacerla en 2 idiomas, si alguien me tiende una mano se lo agradeceria.

Saludos!
  #2 (permalink)  
Antiguo 09/06/2008, 08:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Web Modular en 2 idiomas

a caray pues como lo has echo... ??

si pones un ejemplo de idioma.php, seria suficiente....

lo demás, es un poco de sesión o cookie, y siempre.... incluir el archivo de idioma al principio de todo.... también, es preferible usar CONSTANTES y no variables....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/06/2008, 08:59
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Web Modular en 2 idiomas

Hola, gracias por la pronta respuesta...

Los archivos de lenguaje son definiciones de CONSTANTES... el tema es que no se como hacerlo funcionar correctamente...

<?php //Archivo ES.php
define("US", "Nosotros2");
define("WELLCOME","Bienvenido al Home");
define("ART","<h3>Título del Artículo</h3>");
?>

Si en index.php pongo algo como:

Cita:
$idioma=$_GET['idioma'];
if (!empty($idioma)){
if($idioma=="EN"){
setcookie("idioma","EN",time()+3600);

}
if($idioma=="ES"){
setcookie("idioma", "ES",time()+3600);
}

}
if (empty($idioma) && empty($_COOKIE["idioma"])) { include("includes/es.php");}

if($_COOKIE["idioma"] == "ES"){
include("includes/es.php");
}
if($_COOKIE["idioma"] == "EN"){
include("includes/en.php");
}
Funciona pero me genera muchas cookies, segun veo en los temporales...

Supongo que esta mal... alguna idea?

Saludos!
  #4 (permalink)  
Antiguo 09/06/2008, 09:07
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: Web Modular en 2 idiomas

¿Trabajas con cookies o con variables x url?

¿No deberias cambiar la primera linea

Código PHP:
$idioma=$_GET['idioma']; 
por

Código PHP:
$idioma=$_COOKIE['idioma']; 
?
__________________
Saludoss
Guille
  #5 (permalink)  
Antiguo 09/06/2008, 09:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Web Modular en 2 idiomas

tu idea es muy clara... solo te bastan otros retoques

idiomas.php
Código PHP:
<?php
  $lang 
'ES'// defecto

  
if (isset($_GET['idioma']))
  {
    
$lang $_GET['idioma']; // OK
  
}
  elseif (isset(
$_COOKIE['idioma']))
  { 
// recuperamos la galleta (si hay)
    
$lang $_COOKIE['idioma'];
  }

  
$idioma "idiomas/$lang.php"// por ejemplo
  
if (!is_file($idioma))
  { 
// siempre ten algo por defecto....  xD
    
$idioma 'idiomas/ES.php';
    
$lang 'ES';

    
// quiza debamos borrar la galleta
    
setcookie('idioma'nulltime()-84000);
  }

  
// guardamos la galleta?
  
if (!isset($_COOKIE['idioma']))
  {
    
setcookie('idioma'$langtime()+84000);
    
header('location: '.$_SERVER['REQUEST_URI']); // regresamos
  
}

  
// ahora si, cargamos las constantes...
  
include $idioma;
?>
ahora solo incluye el script idiomas.php antes de todos tus demás códigos...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 09/06/2008 a las 19:47 Razón: mejorar
  #6 (permalink)  
Antiguo 09/06/2008, 09:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Web Modular en 2 idiomas

Hola, pateketrueke, funciona a medias... si estoy en español y hago click en el link "English":

http://localhost/modular/index.php?m...tros&idioma=EN

No me cambia de lenguaje...
  #7 (permalink)  
Antiguo 09/06/2008, 19:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Web Modular en 2 idiomas

bueno, no reescribo el código.... pero edite el anterior, me parece que ahora si debe funcionar correctamente

sino, me avisas... suerte!

PDTA: edite el POST anterior, ojo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 09/06/2008, 21:12
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Web Modular en 2 idiomas

Hola! bueno muchas gracias...

Te comento que no se mantiene el idioma entre navegaciones...
Cambia el lenguaje pero al pasar de Link me toma el lenguaje default, osea el español ES.

Un abrazo!
  #9 (permalink)  
Antiguo 09/06/2008, 22:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Web Modular en 2 idiomas

ahora si tuve que reescribir el código... de verdad que ando distraído

Código PHP:
<?php
  $lang 
'ES'// defecto
  
if (isset($_GET['idioma']))
  {
    
$lang $_GET['idioma']; // OK
    
setcookie('idioma'$langtime()+84000);
    
    list(
$uri) = explode('?'$_SERVER['REQUEST_URI']);
    
header('location: '.$uri); // regresamos
  
}
  else if (isset(
$_COOKIE['idioma']))
  { 
// recuperamos la galleta (si hay)
    
$lang $_COOKIE['idioma'];
  }

  
$idioma "./idiomas/$lang.php"// por ejemplo
  
if (!is_file($idioma))
  { 
// siempre ten algo por defecto....  xD
    
$idioma './idiomas/ES.php';
  }
  
  
// ahora si, cargamos las constantes...
  
require $idioma;
?>
pero ahora si funciona, al menos en mi localhost ... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 09/06/2008, 22:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Web Modular en 2 idiomas

Excelente hermano!!!

Funci0ona de 10, Muchas gracias!

Era rebuscada la cosa he... te debo una.
Abrazo!
  #11 (permalink)  
Antiguo 10/06/2008, 17:17
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Web Modular en 2 idiomas

Hola ale_g! soy novato en esto de la web modular con php, y justamente necesito adaptar los dos idiomas. Podrías aclararme cómo quedó definitivamente el sistema modular con los dos idiomas? Desde ya muchas gracias!
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:20.