Redirigir por idioma

saber idiomas

Cada vez, en este mundo tan globalizado, es más frecuente encontrar sitios creados en varios idiomas, dirigidos a usuarios de varios países. En mi caso ofrezco esta funcionalidad mediante un plugin, que genera el contenido de Ayuda WordPress en diversos idiomas en una estructura de subcarpetas del tipo 'https://ayudawp.com/idioma/', donde ‘idioma’ es el código de idioma (p.ej.: en para English, pt para Portugués, y así sucesivamente.

Pues bien ¿que te parecería poder redirigir directamente a tus lectores a la versión en su idioma de tu web?. Pues es bien sencillo, no tienes que instalar ningún plugin ni modificar tu plantilla, solo tener una estructura de carpetas para las distintas lenguas en que se muestre tu sitio. Ni siquiera es un truco exclusivo de WordPress

Como lo consigues es con la redirección por idioma que puedes añadir a tu fichero '.htaccess', y es muy fácil. Y esto funciona porque el navegador de tus lectores siempre manda información al servidor que visita, y una de estas informaciones es el idioma.

Solo tienes que añadir unas líneas como las siguientes a tu archivo '.htaccess':

# BEGIN REDIRIGIR POR IDIOMA
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* https://ayudawp.com/en/ [R,L]
# END REDIRIGIR POR IDIOMA

En este ejemplo, en la línea 3 decimos que idioma del lector es el que redirigiremos ((en)), y en la línea 4 anotamos la ruta a la que será redirigido. Solo tienes que adaptarlo a tus necesidades.

Por supuesto, puedes añadir tantas RewriteCond y RewriteRule como necesites.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(4 votos, promedio: 4)

¿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.

18 comentarios en “Redirigir por idioma”

  1. Pingback: Bitacoras.com

  2. Bien bueno el codigo, pero que pasa con los menus, especialmente si tiene páginas y entradas en cada lenguaje.

    Como se puede mostrar el menu correspondiente según el idioma???

    Saludos

  3. Pingback: Twitter Trackbacks for Redirigir por idioma | Ayuda WordPress [ayudawordpress.com] on Topsy.com

  4. Saludo para Fernando y sus lectores:

    Al igual que DUKA, me gustaría saber cual es el plugin que usas pala complementar esta funcionalidad.

    La inquietud de DDIAZN también esta muy interesante.

    Que tengan buen día.

  5. En definitiva? no se puede colocar los menus en diferentes idiomas???. Parece que la única solución es instalar 2 wordpress en distintos directorios.

    Es decir dominio.com/es y dominio.com/en

  6. Hola Fernando, te sigo desde hace tiempo desde las sombras del rss. He llegado desde el 20minutos y aunque ya te he votado y no voy a hacer campaña (:-D) quiero puntualizar algo:

    Si todo el contenido de mi página lo quiero hacer bilingüe (es el caso, pues vivo en USA y me estoy planteando los dos idiomas), al incorporar todo bajo un nuevo directorio, me cambiarán todas las direcciones, enlaces e incluso imagino que posicionamiento web.

    Creo que esto está bien si quieres partir de cero o bien quieras añadir un idioma que no tengas disponible. En este caso, la bandera española apuntaría al directorio raíz directamente y ya está, no?

    Un saludo,

    http://lablogoteca.20minutos.es/mi-cienaga-1821/0

  7. Hola Amigos, tambien los sigo desde las sombras del RSS siempres es util la info que ofrecen.

    Tengo una duda con el plugin GLOBAL TRANSLATOR ya que automaticamente se cachea y se guarda todo en una carpeta /en/ (por ejemplo). El tema es que lo hace con la misma etiqueta del url original y google quizá lo tome como contenido duplicado.

    PREGUNTA:

    ¿No hay forma de meterle mano al código del plugin para que también traduzca la etiqueta de la URL y la guarde chaeada ya traducida?

    Muchas gracias y saludos desde Argentina!

  8. Hola, tengo una pregunta, comentando que soy bastante torpe, me han pedido en el trabajo que en blog que han creado para un producto determinado, quieren que esté en inglés (además de español que ya está). ¿Eso como se puede hacer? me refiero, que arriba te ponga la opción de verlo en español todo o en inglés todo.

    Es bastante urgente!! Muchas gracias!!!!!!!!!!!!

  9. Hola, tengo un blog utilizando wp3 multisitio con dos idiomas en una estructura tipo domino.com/es y dominio.com/en, he probado este código y no funciona ya que wp3 multisitio no crea las carpetas físicamente. ¿Alguna sugerencia al respecto? Un saludo y gracias

  10. Yo creo que se puede hacer una web con muchos idiomas en un solo wordpress. Sin instalar multiusuario ni duplicar la instalación.

    Creo que se podría hacer con los menús personalizados y en algunos casos include preguntando si es por ejemplo /es/ y /en/. La lógica la tengo pero como hacerlo, todavia no… Tal vez Fernando pudiera hacer algo, se lo agradeceríamos.

  11. Hola Fernando, veo que este post lo escribiste hace bastante tiempo, pero lo encontré de especial interés para el proyecto que estoy desarrollando en este momento…

    Seguí tu concejo de añadir estas lineas en mi .htacces… funciona perfecto… pero tengo una inquietud, esto «obliga» al visitante a ver el sitio en español si su navegador es en español o es ingles si es en inglès? conoces alguna manera de cambiar un post por su equivalente en el idioma alternativo.

    El otro problema es que estoy usando chrome en ingles, mi compu esta en inglès sin embargo queda el sitio bloquedo en la versión en español… me puedes sugerir algo? te agradezco de antemano porque se el esfuerzo que debes poner para mantener una web activa y con contenido interesante…

    este es el código que puse:

    # BEGIN REDIRIGIR POR IDIOMARewriteEngine onRewriteCond %{HTTP:Accept-Language} (es) [NC]RewriteRule .* [R,L]# END REDIRIGIR POR IDIOMA

    el sitio web es

    Saludos…

    Juan Diego

  12. Hola. Primero gracias por el artículo.

    Pero tengo un problema con el error 310.

    Por ejemplo Chrome me dice:
    **************************
    Esta página web tiene un bucle de redireccionamiento

    La página web ha producido demasiados redireccionamientos. Es posible que el problema se resuelva borrando las cookies de este sitio o permitiendo cookies de terceros. Si eso no funciona, puede que el problema esté relacionado con algún fallo en la configuración del servidor, no con el ordenador.

    A continuación se detallan algunas sugerencias:
    -Vuelve a cargar esta página más tarde.
    -Más información sobre este problema.
    Error 310 (net::ERR_TOO_MANY_REDIRECTS): Demasiados redireccionamientos.
    **************************

    Que podrá ser?… en la carpeta /en/ solo tengo un index.html. ¿será porque este truco corre en un subdominio?

    Agradezco tu ayuda

  13. Este es el htaccess del wordpress 4.0

    /////////////////////////////////

    # BEGIN W3TC Browser Cache

    Header append Vary User-Agent env=!dont-vary

    AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json

    # DEFLATE by extension

    AddOutputFilter DEFLATE js css htm html xml

    # END W3TC Browser Cache

    # BEGIN WordPress

    RewriteEngine On

    RewriteBase /

    RewriteRule ^index.php$ – [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    # END WordPress

    /////////////////////////////////

    habria que poner el script para redireccionar a espanol y quedaria asi:
    //////////////////////
    RewriteCond %{HTTP:Accept-Language} (ES) [NC]

    RewriteRule .* https://ayudawp.com/es/ [R,L]

    # END WordPress

    ///////////////////////
    o si tienes un dominio para idioma es.sitio.com quedaria asi
    RewriteCond %{HTTP:Accept-Language} (es) [NC]
    RewriteRule .* http://es.ayudawp.com/ [R,L]

  14. Hola Fernando! Enhorabuena por el blog, me salva la vida casi a diario en mi trabajo. Necesito tu ayuda si puede ser. Lo que quiero hacer (según un consejo de un profesor de SEO) es hacer un clon de la web para ponerla en inglés bajo un subdominio tal que así –> en.ejemplo.com . Según tu experiencia ¿es aconsejable? Y sobretodo, ¿aún funcionaría y sería conveniente usar ese código que indicas en el post?

    Un millón de gracias

Deja un comentario

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

 

Ir arriba Ir al contenido