• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Publicaciones / Obtener el idioma del navegador con PHP
Obtener idioma navegador con PHP

Publicaciones, Tutoriales, Wordpress / 12 de septiembre de 2020

Obtener el idioma del navegador con PHP

En PHP podemos obtener facilmente el idioma en el que nuestro usuario tiene configurado su navegador web, para en base a esto, poder tomar decisiones.

Imagina que tienes una web en WordPress y quieres traducirla a varios idiomas. Puedes valerte de plugins como Loco Transtale para traducir cadenas de texto de tus plugins y temas.

Y puedes usar Polylang para duplicar tus páginas y entradas en los nuevos idiomas y hacer el «switch» entre ellos.

Pero, ¿y si tienes textos escritos directamente en tu plantilla? ¿Cómo traducirlos sin duplicar la web?

Aquí en donde entra PHP…

Crea una función para obtener el código de idioma del navegador

<?php
    $idioma = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    echo $idioma;
?>

$_SERVER es una variable PHP desde la que podemos obtener bastantes datos del servidor, entre ellos el idioma del navegador que realiza las peticiones HTTP.

Si ejecutamos el código anterior y nuestro navegador está configurado en español de España, obtendremos algo como:

es-ES,en;q=0.5

Lo que nos interesa son los 2 primeros caracteres de la respuesta «es» con los que rápidamente identificamos el idioma:

  • es: español
  • en: inglés
  • fr: francés…
<?php
    function obtenerIdioma(){
        $idioma = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
        return $idioma;
    }
?>

La función substr() extrae el número de caracteres que indiquemos como segundo parámetro de la función, en nuestro caso, 2 caracteres.

Ahora podemos pasar el resultado a una variable para la comprobación posterior:

$idioma_usuario = obtenerIdioma();

Y hacemos la comprobación con if:

<?php
    if($idioma_usuario == "es"){
        //Ejecuto el código para español
    }
    elseif($idioma_usuario == "en"){
        //Ejecuto el código para inglés
    }
    elseif($idioma_usuario == "fr"){
        //Ejecuto el código para francés
    }
    else{
        //Ejecuto el código para el resto de idiomas
    }
?>

Con esto ya podemos adaptar nuestros textos o funciones personalizadas a todos los idiomas que necesitemos.

Archivado en:Publicaciones, Tutoriales, Wordpress Etiquetado con:php, wordpress

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Entradas recientes

  • Novedades y cambios en la nueva actualización de Contact Form 7
  • Adiós WhatsApp…
  • Configuración de WP Fastest Cache
  • Cómo añadir un enlace personalizado en el menú admin de WordPress
  • Hooks de Genesis Framework (init, header y framework) – Parte 1

Categorías

  • Actualidad
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • Wordpress

Comentarios recientes

  • JORGE BAEZ en Crear un WebView con Android Studio para cargar una web en una APP Android
  • Lenin Morales en Crear un custom post en WordPress (sin plugins)
  • blas villalba en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox
  • dani en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox
  • blas villalba en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión