PHP:¿Cómo puedo hacer una web en varios idiomas mediante arrays?

De Foros del Web

Antes que nada tienes que checar la configuración del usuario:

Código PHP:

<?php  
 
if (isset ($_GET['lang'])) 
{ 
    $idioma = $_GET['lang']; 
} 
elseif (preg_match("/^es/", $_SERVER['HTTP_ACCEPT_LANGUAGE']))  
{ 
$idioma = "es"; 
} 
else  
{ 
$idioma = "en"; 
} 
?> 

Ahora, creas los arrays:

Código PHP:

<?php 
 
$idiomas = array(  
    'en' => array( 
        'idioma' => 'English', 
        'otro_idioma' => 'es', 
        'buscar' => 'Search', 
        'portada' => 'Home', //Menú 
        'foros' => 'Forums', 
        'boletin' => 'Newsletter', 
        'enlazame' => 'Link Me', 
        'acerca' => 'About', 
        'contacto' => 'Contact', 
        'faq' => 'Faq', 
        'noticias' => 'News', //Contenido 
        'copyright' => 'All Rights reserved', //Copyright 
 
    ), 
    'es' => array( 
        'idioma' => 'Espa&ntilde;ol',  
        'otro_idioma' => 'en', 
        'buscar' => 'Buscar', 
        'portada' => 'Portada', //Menú 
        'foros' => 'Foros', 
        'boletin' => 'Boletín', 
        'contacto' => 'Contacto', 
        'faq' => 'FAQ', 
        'noticias' => 'Noticias', 
        'copyright' => 'Todos los derechos reservados' //Copyright 
    ), 
); 
?> 

Para cambiar de idioma mediante un link pones:

Código PHP:

<a href="index.php?lang=<?php echo $idiomas['en']['otro_idioma']; ?>">Espa&ntilde;ol</a>  
<a href="index.php?lang=<?php echo $idiomas['es']['otro_idioma']; ?>">English</a> 

Y en los links:

Código PHP:

<a href="index.php" title="<?php echo $idiomas[$idioma]['portada'];?>">+ <?php echo $idiomas[$idioma]['portada'];?></a> 

[Eliminen los tags y junten todo el código]


--X.Cyclop 10 Mar 2006

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales