Foros del Web » Programando para Internet » PHP »

Webs en Varios Idiomas

Estas en el tema de Webs en Varios Idiomas en el foro de PHP en Foros del Web. Hola, os escribo por si hay alguien que me pueda hechar una mano (o las 2). Estoy haciendo una web en un windows XP, servidor ...
  #1 (permalink)  
Antiguo 16/11/2004, 03:21
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Webs en Varios Idiomas

Hola, os escribo por si hay alguien que me pueda hechar una mano (o las 2).

Estoy haciendo una web en un windows XP, servidor Apache+ Php+ Mysql+PhpMyAdmin+phpNuke, completo verdad? Pues la duda que me surge es que quiero que la web este en varios idiomas. Lo que he pensado es que seleccione el idioma lo meta en una cookie y luego cargue en el include el valor de la cookie, lo he probado y me dice que nanai , asi que si hay alguien que le haya salido o lo tenga parecido me ayude gracias.

ej:

setcookie (nombre,valor);

el valor de la cookie solo puede ser eng.php, esp.php, fra.php

require("../includes/" valor_cookie(eng.php,esp.php,fra.php));

Me gustaria saber si se puede hacer o no? Porque a mi no me sale, y si se puede ponedme un ejemplo, y si no se puede, me podriais decir de que forma lo puedo hacer?

Mucahs Gracias.

Última edición por MeXiCaN; 16/11/2004 a las 04:30
  #2 (permalink)  
Antiguo 16/11/2004, 07:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. se supone que estás usando PHP-Nuke o es una aplicación tuya própia ...

Recuerda que PHP-Nuke, phpMyadmin por lo menos son "aplicaciones" .. lo demás "PHP", "Mysql" y Apache son el "entorno de desarrollo" de esas aplicaciones.

De todas formas . .el trabajo con cookies sería algo tipo:

1) Setcookie() para dar valor a tu cookie. Esto lo tendras que tener en un script aparte y llamarlo para pasarle el "idioma" que seleccionas y devolverte al "index" de tu sitio o donde corresponda para que puedas leer el valor de esta cookie.

idioma.php
Código PHP:
<?
// Un script aparte para esto sólo
setcookie(....,$_GET['idioma'] ...)
header ("Location: index.php");
exit;
?>
Y cambias de idioma con un link que apunte a idioma.php?idioma=nose.php
(pero, no deberías usarlo así .. fijate en el comentario de más abajo).

2) Tomar el valor de tu cookie .. si no está definida dar un valor por defecto (caso de la primera vez que entren a tu sitio o expire tu cookie)

Código PHP:
if (isset($_COOKIE['idioma'])){
// Esto no es recomendable hacerlo así .. pero sólo es un ejemplo. Usa arrays para almacenar almenos las páginas que se pueden incluir y validalo con in_array() u otros métodos .. switch() .. etc.
   
require("../includes/".$_COOKIE['idioma']);  
} else {
   
requiere("../includes/idiomapordefecto.php");

Un saludo,
  #3 (permalink)  
Antiguo 16/11/2004, 08:32
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Lo siento CLUSTER

Perdona Cluster pero no entiendo nada de lo que me has puesto, yo lo tengo asi y no me va, pero lo digo par que me pongas un ejemplillo mas parecido a mi situacion:

index.html (con tres banderitas) (español, frances, ingles)

home_esp.php (para declarar la cookie e incluyo el menu para navegar)
<?php
setcookie (lang,['esp.php']);
require("../includes/esp.php");
?>

noticias.php
<?php
require('../includes/'$_COOKIE['lang'];
?>

Como ves soy un poco melón, y estoy aprendiendo en esto del PHP, y la verdad hay muy pocas paginas buenas de PHP en internet, por lo menos las que yo he visitado.

En cuanto al PhpMyAdmin y el PhpNuke, el unico que he usado es el PhpMyadmin el PhpNuke lo tengo instalado pero aun no se como va. Y por cierto la aplicacion es mia, no esta hecha con nada de PhpNuke.

gracias de nuevo.

Última edición por MeXiCaN; 16/11/2004 a las 08:36
  #4 (permalink)  
Antiguo 16/11/2004, 09:59
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 14 años, 1 mes
Puntos: 4
Bueno la verdad mi pagina esta en 3 idiomas... cuando a abres aparece en ingles... pero ahy en el header 3 banderitas (ingles, frances, español) para hacer el cambio es mucho mejor.. me evito muchas complicaciones... aunque la verdad me gustaria probar este sistema que dicen.. pero nunca dejand fuera la posibilidad de hacer manual..
  #5 (permalink)  
Antiguo 16/11/2004, 10:02
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 14 años, 1 mes
Puntos: 4
Asi como dicen con codigo puede hacerce algo asi
Fijense..

Mi pagina esta casi toda escrita en php, ahy muchas cosas que las he escrito en archivos apartes... osea todo es llamdo, cada noticia etc esta escrita en una carpeta especial y todas son llamadas desde alli... osea tengo una carpeta donde escribo las noticias en ingles, otra donde las escribo en español, otra donde las escribo en frances, dependiendo el idioma. Puedo hacer que haga eso automaticamente pidendo el Get:languaje con el cookei
  #6 (permalink)  
Antiguo 16/11/2004, 10:27
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 15 años, 3 meses
Puntos: 3
Yo prefiero usar algo asi no me gusta meterme con las cookies......

Código PHP:
<?
switch ($_SERVER["HTTP_ACCEPT_LANGUAGE"]) {

         case 
"es":
              
$idioma 'esp.php'// En español
              
break;

         case 
"en":
              
$idioma 'ing.php'// En ingles
              
break;

         case 
"pt":
              
$idioma 'ing.php'// En Portugués
              
break;
              
         default: 
// Este es el idioma por default
              
$idioma 'esp.php'// En español
              
break;

}
?>
Esto lo que hace es que detecta el lenguaje de la maquina del usuario y muestra el idioma del usuario...
__________________
Saludos a [email protected] :adios:
  #7 (permalink)  
Antiguo 16/11/2004, 11:41
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
//session.php
<?php
session_start();
if (!$sitestyle) $sitestyle ="es";
include ("VarsMM.php");
dbconnect();
?>

//en cualquier pagina, colocar los 2 idiomas
<?php
if ($sitestyle == "es") echo "NUEVO" ;
if ($sitestyle == "en") echo "NEW" ;
?>

//cambiar idioma.php

<?php
// $set = $_GET['set'];
$set=$HTTP_GET_VARS["set"];
$set = preg_replace('#[^a-zA-Z0-9_-]#', '', $set);
setcookie ('sitestyle', $set, time()+31536000, '/', 'sitio.com', '0');
header("Location: $HTTP_REFERER");
?>

//script cambiar idioma
<?php
/*
$set = $_GET['set']; // no funciona en php 4.0.6, si en php 4.3.2
$set=$HTTP_GET_VARS["set"];
$set = preg_replace('#[^a-zA-Z0-9_-]#', '', $set);
setcookie ('sitestyle', $set, time()+31536000, '/', '.es', '0');
header("Location: $HTTP_REFERER");
*/
echo $set;
?>
__________________
Ignacio
  #8 (permalink)  
Antiguo 20/11/2004, 13:48
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Creo que no me explique bien

Creo que no me habeis entendido bien, lo unico que quiero es que cargue el menu en diferentes idiomas, que ya los tengo hecho (esp.php, fra.php, eng.php), las paginas lo unico que hacen es recoger el valor de la cookie y segun sea el valor me imprime la pagina llamada (que siempre esta en español) + el menu en el idoma que indique la cookie (ingles, frances o español), pero la cookie me da por saco porque o no la creo bien o no recoge bien el valor.

Gracias de nuevo.
  #9 (permalink)  
Antiguo 20/11/2004, 22:39
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 15 años, 3 meses
Puntos: 3
Código PHP:
<? 
switch ($_SERVER["HTTP_ACCEPT_LANGUAGE"]) { 

         case 
"es"
              
$idioma 'esp.php'// En español 
              
break; 

         case 
"en"
              
$idioma 'ing.php'// En ingles 
              
break; 

         case 
"pt"
              
$idioma 'ing.php'// En Portugués 
              
break; 
               
         default: 
// Este es el idioma por default 
              
$idioma 'esp.php'// En español 
              
break; 


include (
$idioma);
?>
__________________
Saludos a [email protected] :adios:
  #10 (permalink)  
Antiguo 21/11/2004, 05:23
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 13 años, 6 meses
Puntos: 0
Gracias, pero no

Gracias por todo, pero este no es el metodo que debo utilizar, ya qeu no tengo que mirar el lenguaje de la maquina, sino que es el usuario el que debe seleccionar el idioma.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:01.