Foros del Web » Programando para Internet » PHP »

¿Como incorporar multi-lenguaje en mi sitio web?

Estas en el tema de ¿Como incorporar multi-lenguaje en mi sitio web? en el foro de PHP en Foros del Web. Buenas a todos. He leido alrrededor de 5 mensajes en este foro que hablan sobre mi tema, tambien 3 faqs y mucha informacion de internet, ...
  #1 (permalink)  
Antiguo 15/12/2008, 02:44
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años, 2 meses
Puntos: 188
¿Como incorporar multi-lenguaje en mi sitio web?

Buenas a todos.

He leido alrrededor de 5 mensajes en este foro que hablan sobre mi tema, tambien 3 faqs y mucha informacion de internet, pero no he conceguido una el multilenguaje compatible con la estructura de mi sitio web

Recientemente fabrique un pequeño sistema en PHP sin usar bases de datos, ahora deseo incorporar multilenguaje a mi sitio pero no puedo hacerlo de la manera que yo planeaba.

Explico, mi sitio web actualmente tiene esta sintaxis

Misitio
Código HTML:
/includes/   
         /config.php
        /language/spanish.php
       /language/english.php
index.php
contact-us.php
Lo anteriro es un ejemplo de la estructura usada en la creacion de mi sitio, includes y language son directorios.

mis archivos estan mas o menos asi:

includes/config.php
Código PHP:
<?php
$style 
"themes/default/style.css";

$lang "spanish";

?>
includes/language/spanish.php
[PHP]
<?php

$lang['title'] = 'Mi titulo';
$lang['text1'] = 'Cualquier texto en español';
$lang['text2'] = 'Cualquier otro texto en español';

$lang['name'] = 'Introdusca su nombre:';
$lang['lastname'] = 'Introdusca su apellido:';
$lang['email'] = 'Introdusca su email:';

?>
[/PHP

includes/language/english.php
Código PHP:
<?php

$lang
['title'] = 'My title';
$lang['text1'] = 'Any text in English';
$lang['text2'] = 'Any other text in English';

$lang['name'] = 'Enter your name:';
$lang['lastname'] = 'Enter your lastname:';
$lang['email'] = 'Enter your email:';

?>

index.php
Código PHP:
<?php include('includes/config.php');?>
<?php 
include('includes/language/'.$lang.'.php');?>
<html>
<head>
<title> <?php echo $lang['title'];?> </title>
<style link="rel" type="text/css" href='<?php echo "$style";?>'>
</head>
<body>
<?php echo $lang['text1'];?>
</body>
</html>
contact-us.php
Código PHP:
<?php include('includes/config.php');?>
<?php 
include('includes/language/'.$lang.'.php');?>
<html>
<head>
<title> <?php echo $lang['title'];?> </title>
<style link="rel" type="text/css" href='<?php echo "$style";?>'>
</head>
<body>
<?php echo $lang['text2'];?>
<form>
<?php echo $lang['name'];?><input type="text">
<?php echo $lang['lastname'];?><input type="text">
<?php echo $lang['email'];?><input type="text">
</form>
</body>
</html>
En este script se puede cambiar el lenguaje al ingles si se cambia el valor de "$lang" en config.php

Pero lo que necesito es:

*Cambiar el idioma de la página al dar click en por ejemplo:
view in english | ver en español

*Conservar el idioma seleccionado al navegar entre links.
He visto que las paginas utilizan por ejemplo:

index.php?lang=en
contact-us.php?lang=en

*Establecer un idioma por defecto si el usuario no selecciona ninguno.

Muchas gracias por la ayuda.
Saludos!
  #2 (permalink)  
Antiguo 15/12/2008, 02:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: ¿Como incorporar multi-lenguaje en mi sitio web?

Lo unico que necesitas es poder cambiar ese valor de $lang que defines en config.php. Para ello puedes recibir la variable por una variable $_GET. Prueba esto:

Código PHP:
<?php include('includes/language/'.$_GET['lang'].'.php');?>
Y podras llamar la página con index.php?lang=spanish o index.php?lang=english. Si no se define ningun valor puedes hacer que te tome el valor que desees, comprobando que la variable $_GET['lang'] está vacia.

Para poder cambiar el idioma en tu página solo añade los links con el URL dinamico correspondiente.

Saludos.
  #3 (permalink)  
Antiguo 15/12/2008, 23:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años, 2 meses
Puntos: 188
Respuesta: ¿Como incorporar multi-lenguaje en mi sitio web?

Muchisimas gracias amigo, una pregunta más, como puedo hacer esto que mensionas. ya que si el usuario no teclea ?lang=idioma acompañando a la url tira error.

Cita:
Iniciado por seedcode
Si no se define ningun valor puedes hacer que te tome el valor que desees, comprobando que la variable $_GET['lang'] está vacia.
Muchas gracias.
  #4 (permalink)  
Antiguo 16/12/2008, 02:44
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 16 años
Puntos: 3
Respuesta: ¿Como incorporar multi-lenguaje en mi sitio web?

Para que no te de error asignas a $lang el valor de pasado por GET o el de configuración si no está pasado:
Código PHP:
<?php 
include('includes/config.php');
$lang$_GET['lang']? $_GET['lang'] : $lang;
include(
'includes/language/'.$lang.'.php');
?>
<html>
<head>
<title> <?php echo $lang['title'];?> </title>
<style link="rel" type="text/css" href='<?php echo "$style";?>'>
</head>
<body>
<?php echo $lang['text2'];?>
<form>
<?php echo $lang['name'];?><input type="text">
<?php echo $lang['lastname'];?><input type="text">
<?php echo $lang['email'];?><input type="text">
</form>
</body>
</html>
...y guardas el valor en una variable de sesión para que no la vuelva a pedir (o en una cookie).
  #5 (permalink)  
Antiguo 16/12/2008, 04:09
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años, 2 meses
Puntos: 188
Respuesta: ¿Como incorporar multi-lenguaje en mi sitio web?

me va perfecto amigo. Muchas gracias.

Saludos!
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




La zona horaria es GMT -6. Ahora son las 12:45.