Foros del Web » Programando para Internet » PHP »

crear pagina en 2 idiomas

Estas en el tema de crear pagina en 2 idiomas en el foro de PHP en Foros del Web. Buenas chicos!! Me gustaria saber como puedo hacer una pagina web por lo menos que este en Ingles y Español. Mi pagina es una pagina ...
  #1 (permalink)  
Antiguo 21/06/2011, 06:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: aun no se donde vivir
Mensajes: 112
Antigüedad: 13 años, 5 meses
Puntos: 3
crear pagina en 2 idiomas

Buenas chicos!!

Me gustaria saber como puedo hacer una pagina web por lo menos que este en Ingles y Español. Mi pagina es una pagina muy sencilla y con poco contenido y a ver si hay algun metodo para que este en dos idiomas.

Un saludo
  #2 (permalink)  
Antiguo 21/06/2011, 06:34
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: crear pagina en 2 idiomas

aca tienes doc
http://php.apsique.com/contenido/sitio_varios_idiomas
pero basicamente es que el usuario defina el idioma que quiere
y eso lo guardas en su session
luego tienes 2 archivos con las palabras a cambiar en ingles y esp.
entonces en dependencia del idioma cargas ese archivo con un include

teniendo las palabras a cambiar en tu pagina impresas con php con el valor de una constante

if ($_SESSION['sp']) include ('sp.inc');
else if if ($_SESSION['en']) include ('en.inc');

luego

echo SALUDO_USUARIO;

sp.inc
SALUDO_USUARIO = "Hola"

en.inc
SALUDO_USUARIO = "Hello"


por allí va la cosa amigo
  #3 (permalink)  
Antiguo 21/06/2011, 06:40
Avatar de solhdeck  
Fecha de Ingreso: junio-2011
Mensajes: 87
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: crear pagina en 2 idiomas

Se podría...
Primero tendrías que poner todo el contenido en un archivo a modo de variables (el archivo se llamaría, por ejemplo, espanol.php e ingles.php)
(yo haría un array con nombres descriptivos):
EJ:
$txt['titulo'] = "Título de mi página";
$txt['presentacion'] = "Bienvenido";
$txt['contenido1'] = "bla bla bla";
...

en ingles.php, el texto sería

$txt['titulo'] = "Title of my web";
$txt['presentacion'] = "Welcome";
$txt['contenido1'] = "english bla english bla english bla";
...

Después, desde el php llamas al contenido que te interesa mediante el array

<head><title> <?php echo $txt['titulo']; ?></title></head>

Y mediante un GET, le indicas el idioma

if ($_GET['idioma'] == "sp") $archivo = "espanol.php";
if ($_GET['idioma'] == "en") $archivo = "ingles.php";

Luego incluyes el archivo:

include $archivo;


Quedándote la web así estructurada:
Código PHP:
<?php
if ($_GET['idioma'] == "sp"$archivo "espanol.php";
if (
$_GET['idioma'] == "en"$archivo "ingles.php";

include 
$archivo;

?>
<html>
   <head>
      <title> <?php echo $txt['titulo']; ?></title>
   </head>
   <body>
      <h1><?php echo $txt['presentacion']; ?></h1>
<?php echo $txt['contenido1']; ?>
   </body>
</html>
Bueno... y el vínculo de cambiar idioma sería <a href="./?idioma=sp">Español</a> | <a href="./?idioma=en">Inglés</a>

Última edición por solhdeck; 21/06/2011 a las 06:45 Razón: Perfeccionamiento
  #4 (permalink)  
Antiguo 21/06/2011, 06:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: crear pagina en 2 idiomas

Verifica si este material te ayuda http://devzone.zend.com/article/4799
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 21/06/2011, 06:50
 
Fecha de Ingreso: noviembre-2010
Ubicación: aun no se donde vivir
Mensajes: 112
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: crear pagina en 2 idiomas

ok mas o menos voy entendiedo algo.
yo tengo este script que lo estuve haciendo hace unos meses pero lo deje de hacer por que me habia perdido ya y es que no soy muy experto con esto del php y me pierdo mucho.
Código PHP:
<?php
session_start
();
header('Cache-control: private'); // IE 6 FIX

if(isSet($_GET['lang'])){
$lang $_GET['lang'];

//registra sesion
$_SESSION['lang'] = $lang;

//define cookie
setcookie('lang'$langtime() + (3600 24 30));

//busca en variables cookie y session
}else if(isSet($_SESSION['lang'])){
$lang $_SESSION['lang'];
}else if(isSet(
$_COOKIE['lang'])){
$lang $_COOKIE['lang'];
}else{
$lang 'es';
}

switch (
$lang) {
case 
'en'$lang_file 'english.php'; break;

/*------------------------------------------*\
| Lenguages: |
| |
| case 'es': |
| $lang_file = 'spanishx.php'; | 
| break; |
\*------------------------------------------*/

case 'en'$lang_file 'english.php'; break;
case 
'br'$lang_file 'polish.php'; break;
case 
'br'$lang_file 'Italy.php' ; break;
/*------------------------------------------*\
| Language Default |
\*------------------------------------------*/
default:
$lang_file 'spanish.php';

}
/*------------------------------------------*\
| Carpeta Lenguages |
\*------------------------------------------*/
include_once 'languages/'.$lang_file;
?>
  #6 (permalink)  
Antiguo 21/06/2011, 07:01
Avatar de solhdeck  
Fecha de Ingreso: junio-2011
Mensajes: 87
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: crear pagina en 2 idiomas

El detector de idioma está bien. Generas la variable de sesión con el idioma en cuestión (aunque veo un fallo en el switch ($lang) y es que tienes dos veces inglés y ninguna castellano).

El resto, es aprovechar tanto en tu web (la parte que muestras) como en los archivos de idioma, lo que te dije yo o lo que te dijo iviamontes

Última edición por solhdeck; 21/06/2011 a las 07:03 Razón: No me deja poner un enlace ToT
  #7 (permalink)  
Antiguo 21/06/2011, 07:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: aun no se donde vivir
Mensajes: 112
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: crear pagina en 2 idiomas

mmm ok no me habia dado cuenta. Y otra pregunta a ver yo lo que es la pagina la tengo monta en html entonce deberia hacer un index.php para el idioma en español y un index.php para el idioma ingles y para los demas.
  #8 (permalink)  
Antiguo 21/06/2011, 07:25
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: crear pagina en 2 idiomas

1 - si vas a incluir archivos o manipular php, tienes que tener tu pag con ext php
2 - si sigues lo que te expliqué no tienes que hacer 2 pág, solo una
  #9 (permalink)  
Antiguo 21/06/2011, 07:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: crear pagina en 2 idiomas

encapsula esto en una clase:
Código PHP:
Ver original
  1. public function change($word, $language="")
  2.     {
  3.         $base_words = array("TXT_NO_DISPONIBLE");
  4.         $en_words = array("This product is not available.");
  5.         $es_words = array("Este producto no se encuentra disponible.");
  6.         if($language=="")
  7.           $language = $this->language; //lenguaje actual
  8.         eval('$replacement_words = $'.$language.'_words;');
  9.  
  10.         $translation = str_replace($base_words,$replacement_words, $word);
  11.         return $translation;
  12.  
  13.     }
  #10 (permalink)  
Antiguo 21/06/2011, 07:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: crear pagina en 2 idiomas

Les recomiendo que vayan usando lo que se llama Internationalization.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 21/06/2011, 07:57
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: crear pagina en 2 idiomas

ya me lo estoy bebiendo jaja, gracias abimaelrc
  #12 (permalink)  
Antiguo 21/06/2011, 07:59
 
Fecha de Ingreso: noviembre-2010
Ubicación: aun no se donde vivir
Mensajes: 112
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: crear pagina en 2 idiomas

muchisimas gracias chicos
ya tengo todo solucionado!!!

Etiquetas: idiomas
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 10:17.