Cambiar el idioma de WordPress automáticamente

detectar idioma wordpress

En sitios multilenguaje puede ser de gran utilidad ofrecer que, dependiendo de la configuración de idioma del usuario, detectado del navegador, WordPress cambie de idioma automáticamente.

La idea es que si el navegador del usuario está en un idioma, WordPress se muestre en ese idioma, y si el tema también está bien configurado para la traducción, que también se muestre en el idioma del usuario.

Hay un requisito, y es que tanto el tema como la instalación de WordPress dispongan de los archivos .mo de traducción necesarios, pero si eso no es problema solo tienes que hacer lo siguiente:

:: 1. Crear el archivo con las funciones de cambio de idioma automático ::

Crea un fichero, al que denominarás wp-lang.php en el mismo directorio donde esté el archivo wp-config.php con el siguiente código:

<?php 
// Inicio de sesión 
session_start(); 
 
// si hay un parámetro "lang" en la URL...  
if( isset( $_GET[ 'lang' ] ) ) { 
 
    // ... define una variable de sesión llamada WPLANG basada en el parámetro de la URL...     
    $_SESSION[ 'WPLANG' ] = $_GET[ 'lang' ]; 
 
    // ...y define la constante WPLANG con la variable de sesión WPLANG 
    define( 'WPLANG', $_SESSION[ 'WPLANG' ] ); 
 
// si no hay un parámetro "lang" en la URL...  
} else {
 
    // si la variable de sesión WPLANG ya está establecida...
    if( isset( $_SESSION[ 'WPLANG' ] ) ) {
 
        // ...define la constante WPLANG con la variable de sesión WPLANG 
        define( 'WPLANG', $_SESSION[ 'WPLANG' ] );  
 
    // si la variable de sesión WPLANG no se ha establecido...
    } else { 
         
        // establece la constante WPLANG a tu código de idioma por defecto (o lo dejas vacío si no lo necesitas)        
        define( 'WPLANG', 'es_ES' ); 
             
    } 
} 
?>

Guarda los cambios y pasa al siguiente paso.

:: 2. Modifica el archivo de configuración de WordPress ::

Abre el archivo de configuración de WordPress (wp-config.php) y sustituye la siguiente línea:

define('WPLANG', 'es_ES');

… por esta otra:

require_once( dirname( __FILE__ ) . '/wp-lang.php' );

A partir de ahora, cuando un usuario se identifique en tu sitio verá la administración de WordPress en su idioma (recuerda, si tienes el fichero de idioma correspondiente), y lo mismo para el tema si este también está internacionalizado.

Además, también puedes añadir enlaces del tipo Ver en Español para ofrecer cambios rápidos de idioma a voluntad.

Fuente: StackoverflowTutplus

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4 / 5. Total de votos: 7

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba
Ir al contenido