Blog

Guía exhaustiva para la traducción multilingüe de sitios web WordPress

Leonardo Losoviz
Por Leonardo Losoviz ·

Traducir un sitio web WordPress es un proceso complejo que requiere una planificación y ejecución cuidadosas. Hemos creado esta guía exhaustiva basándonos en nuestra amplia experiencia traduciendo sitios web, utilizando el plugin Gato AI Translations for Polylang.

Esta guía te lleva por todo lo que necesitas saber: desde los preparativos iniciales y la configuración, pasando por el propio proceso de traducción, hasta la validación y la resolución de problemas. Sigue esta guía para garantizar una experiencia de traducción fluida.

Instalar y configurar Polylang

Gato AI Translations for Polylang requiere que Polylang esté instalado y activado. Polylang es el framework multilingüe que gestiona tus idiomas y las relaciones de traducción.

Tras la instalación, tendrás que configurar Polylang con tus idiomas:

  1. Ve a Languages en el menú de administración de WordPress
  2. Añade tu idioma predeterminado (el idioma de tu contenido existente)
  3. Añade todos los idiomas de destino a los que quieras traducir
Configurar los idiomas de Polylang
Añade y configura idiomas en los ajustes de Polylang

Debes verificar que todos tus plugins activos sean compatibles con Polylang. Algunos plugins pueden no funcionar correctamente en un entorno multilingüe.

Si descubres un plugin incompatible, busca alternativas, contacta con el desarrollador para obtener soporte o plantéate si realmente es esencial.

Audita y corrige primero tu contenido de origen

Antes de empezar a traducir, es esencial asegurarte de que tu contenido de origen esté en perfectas condiciones. Cualquier problema en tu contenido original se replicará en todas las traducciones, lo que significa que tendrás que arreglar el mismo problema varias veces (una vez por cada idioma).

Lista de verificación de auditoría de contenido:

  1. Comprueba si hay enlaces rotos

    • Utiliza un plugin como Broken Link Checker para identificar enlaces internos y externos rotos
    • Corrige todos los enlaces rotos antes de traducir
    • Verifica que los enlaces internos apunten a las entradas/páginas correctas
  2. Verifica que todas las imágenes existan y estén optimizadas

    • Comprueba que todas las imágenes se carguen correctamente
    • Asegúrate de que las imágenes tengan un texto alt adecuado para accesibilidad y SEO
    • Verifica que los tamaños de archivo de las imágenes sean razonables (no demasiado grandes)
    • Elimina cualquier imagen de marcador de posición o referencia a imágenes rotas
  3. Revisa el formato y los estilos

    • Comprueba que el formato del texto sea coherente
    • Verifica que los encabezados estén estructurados adecuadamente (H1, H2, H3, etc.)
    • Asegúrate de que las listas, tablas y otros contenidos estructurados se muestren correctamente
    • Comprueba que los estilos personalizados y el CSS funcionen como se espera
  4. Valida la estructura del contenido

    • Asegúrate del uso adecuado de bloques de Gutenberg o elementos del page builder
    • Comprueba que los custom post types y las taxonomías estén configurados correctamente
    • Verifica que los metadatos (custom fields, campos de ACF, etc.) estén completos
  5. Comprueba si hay contenido marcador de posición

    • Elimina cualquier texto "Lorem ipsum" o marcador de posición
    • Sustituye cualquier contenido temporal por las versiones finales
    • Asegúrate de que todo el contenido esté listo para publicación
  6. Consideraciones de SEO

    • Verifica que los meta titles y descriptions estén configurados
    • Comprueba que las URLs sean amigables para SEO
    • Asegúrate del uso adecuado de encabezados para la estructura de SEO

Configurar la sustitución de enlaces internos

Al traducir contenido, los enlaces internos deben actualizarse para apuntar a las versiones traducidas. Gato AI Translations for Polylang puede gestionar esto automáticamente por ti.

El plugin te permite configurar qué tipos de enlaces internos deben sustituirse:

  • Custom Posts: enlaces a otras entradas, páginas, custom post types, etc.
  • Media: enlaces a elementos multimedia (imágenes, vídeos, etc.)
  • Tags: enlaces a páginas de archivo de etiquetas
  • Categories: enlaces a páginas de archivo de categorías
  • Users: enlaces a páginas de autor

Los enlaces a entradas dentro del contenido se extraen automáticamente del contenido de origen y se sustituyen. Para otros tipos de enlaces (media, tags, categories, users), debes habilitarlos en los ajustes si quieres que se sustituyan.

Cómo configurarlo:

  1. Ve a la página de Settings, en Plugin Configuration > Internal Links Replacement
  2. Habilita solo los tipos de enlaces que utilizas realmente en tu contenido
  3. Guarda tus ajustes
Página de ajustes para sustituir enlaces internos
Configura qué tipos de enlaces internos deben sustituirse en los ajustes del plugin

Verifica que todos los enlaces utilicen URLs correctas

Para que la función de sustitución de enlaces internos funcione correctamente, todos los enlaces de tu contenido deben utilizar el formato de URL adecuado. Esto se aplica a los enlaces en:

  • Contenido de entradas/páginas (bloques de Gutenberg, HTML, etc.)
  • Widgets de Elementor y meta fields
  • Elementos y meta fields del builder Bricks
  • Custom fields y metadatos

Requisitos de URL:

  1. Las URLs deben incluir el dominio completo

    • Correcto: https://www.mysite.com/hello-world/
    • Incorrecto: /hello-world/ (URL relativa)
    • Incorrecto: hello-world/ (sin dominio ni protocolo)
  2. Las URLs deben apuntar al slug actual

    • Si has cambiado el slug de una entrada, actualiza todos los enlaces para que utilicen el nuevo slug
    • WordPress necesita poder recuperar la entrada a partir de la URL
    • Los slugs antiguos que redirigen no funcionarán para la sustitución de enlaces
  3. Las URLs deben usar el dominio correcto (sin redirecciones)

    • Correcto: https://www.mysite.com/hello-world/
    • Incorrecto: https://mysite.com/hello-world/ (si tu sitio usa www)
    • El plugin necesita el dominio exacto para hacer coincidir y sustituir los enlaces correctamente

Para corregir dominios incorrectos en las URLs, puedes utilizar un plugin como Better Search Replace para buscar y reemplazar URLs directamente en tu base de datos, por ejemplo: sustituyendo https://mysite.com por https://www.mysite.com.

Elige el estado: Draft o Publish

Cuando se crean las traducciones, tienes que decidir si deben publicarse inmediatamente o guardarse como borradores para revisarlas primero.

Por defecto, las traducciones se guardan como borradores. Para que las traducciones se publiquen inmediatamente, ve a la página de Settings, en Plugin Configuration > General Configuration, y establece la opción Status when translated en Publish o Same as origin post (si la entrada de origen ya está publicada).

Configurar la opción 'Status when translated' como 'Publish' o 'Same as origin post'
Configurar la opción 'Status when translated' como 'Publish' o 'Same as origin post'

Compatibilidad con idiomas de derecha a izquierda (RTL)

Si traduces a idiomas de derecha a izquierda como hebreo, árabe, farsi o urdu, debes asegurarte de que tu tema admita correctamente los layouts RTL.

Tema Blocksy mostrando layout LTR
Tema Blocksy mostrando layout RTL
Layouts LTR y RTL en el tema Blocksy

A qué afecta RTL:

Los idiomas RTL requieren algo más que cambios en la dirección del texto. Tu tema debe gestionar:

  • Dirección del layout: los elementos deben fluir de derecha a izquierda
  • Alineación del texto: el texto debe estar alineado a la derecha por defecto
  • Ajustes de espaciado: margin-left debe convertirse en margin-right, padding-left debe convertirse en padding-right, etc.
  • Navegación: los menús y la navegación deben fluir RTL
  • Formularios: los campos de entrada y los botones deben alinearse correctamente
  • Iconos e imágenes: pueden necesitar ser reflejados o reposicionados

Lo que ya está gestionado:

  • Polylang establece automáticamente la dirección de idioma correcta (atributo dir="rtl")
  • La traducción de contenido funciona de forma idéntica para idiomas RTL y LTR
  • Gato AI Translations traduce el contenido correctamente independientemente de la dirección del texto
Configuración de idiomas de Polylang mostrando idiomas RTL
Polylang detecta y configura automáticamente los idiomas RTL

Lo que debes comprobar:

  1. Compatibilidad RTL del tema: prueba tu tema con un idioma RTL para ver si lo gestiona correctamente

    • Muchos temas modernos incluyen hojas de estilo RTL
    • Consulta la documentación de tu tema para obtener información sobre la compatibilidad RTL
    • Busca archivos rtl.css o similares en tu tema
  2. CSS personalizado: revisa cualquier CSS personalizado que hayas añadido

    • Los valores codificados a left/right pueden necesitar ajustes
    • Considera utilizar propiedades lógicas (margin-inline-start en lugar de margin-left)
  3. Compatibilidad con page builders: si utilizas Elementor, Bricks u otros page builders

    • Comprueba si admiten layouts RTL
    • Prueba los layouts en modo RTL antes de traducir

Si tu tema no admite bien RTL, puede que necesites cambiar a un tema compatible con RTL, añadir CSS RTL personalizado o utilizar un plugin que añada compatibilidad con RTL.

Identifica el contenido de plugins de terceros que se debe traducir

Muchos plugins de WordPress crean sus propios Custom Post Types (CPTs) para almacenar contenido (por ejemplo: productos de WooCommerce, eventos de Events Calendar, cursos de LearnDash, etc.).

Antes de traducir, debes:

  1. Identificar qué CPTs contienen contenido que debe traducirse

    • Revisa tus plugins activos y sus CPTs
    • Determina cuáles necesitan traducción (no todos la necesitan)
  2. Asegurarte de que los CPTs y taxonomías relevantes sean traducibles

    • Ve a Languages > Settings > Custom post types and Taxonomies de Polylang
    • Habilita la traducción para los CPTs y taxonomías relevantes
Configurar CPTs y taxonomías a traducir
Configurar CPTs y taxonomías a traducir

Crea automáticamente entradas de traducción para CPTs

Si un CPT depende del método wp_insert_post para crear entradas, puedes ir a la página de Settings, en Plugin Configuration > General Configuration, y habilitar la opción Automatic creation of translation entries para ese CPT para que el plugin cree las entradas de traducción automáticamente.

Configurar la opción 'Automatic creation of translation entries'
Configurar la opción 'Automatic creation of translation entries'

Si un CPT depende de un método distinto a wp_insert_post, deberás crear manualmente las entradas de traducción utilizando la interfaz de Polylang antes de poder traducirlas.

Por ejemplo, con los productos de WooCommerce, primero tienes que crear las entradas de traducción. Consulta la documentación sobre la traducción de Custom Post Types de terceros para ver un vídeo de demostración.

Verifica que tu plugin de SEO sea compatible

Los metadatos de SEO (meta titles, descriptions, etiquetas Open Graph, etc.) son cruciales para el SEO multilingüe. Gato AI Translations for Polylang incluye compatibilidad integrada con los plugins de SEO más populares, traduciendo automáticamente todos los metadatos relacionados con el SEO.

El plugin admite 8 plugins de SEO importantes:

  1. All in One SEO
  2. Rank Math
  3. SEO Simple Pack
  4. SEOPress
  5. Slim SEO
  6. The SEO Framework
  7. WP Meta SEO
  8. Yoast SEO

Si utilizas un plugin de SEO que no aparece en la lista anterior, debes indicar qué meta keys sincronizar y traducir, correspondientes al plugin de SEO que estés utilizando. Se admite cualquier plugin que almacene sus metadatos en la tabla wp_postmeta.

Elige tu proveedor y modelo de IA

La calidad de tus traducciones depende del servicio y modelo de IA que elijas.

Los servicios modernos de IA (como ChatGPT, Claude y Gemini) producen traducciones significativamente mejores que los servicios heredados (Google Translate o DeepL) porque entienden mejor el contexto, el tono y los matices; preservan correctamente la estructura HTML y el formato; no traducen incorrectamente URLs ni enlaces relativos; mantienen el estilo de escritura y la voz en todas las traducciones; y gestionan mejor los términos técnicos y el lenguaje específico del dominio.

Puedes elegir entre los siguientes servicios de IA:

  • ChatGPT (OpenAI)
  • Claude (Anthropic)
  • DeepSeek
  • Gemini (Google)
  • Mistral AI
  • OpenRouter (agregador de LLMs que ofrece acceso a todos los modelos principales, incluidos Grok y Llama)
  • LLM autoalojado (alojado en tu propio servidor, por ejemplo: a través de Ollama)

Recomendamos utilizar las versiones más recientes de los modelos disponibles (por ejemplo: ChatGPT 5.2 en lugar de 5.0), ya que los modelos más nuevos proporcionan sistemáticamente una mejor calidad de traducción.

Consejo profesional: puedes configurar diferentes servicios de IA para diferentes idiomas. Por ejemplo, utiliza DeepSeek para el chino (excelente calidad y muy asequible), ChatGPT para los idiomas europeos y Claude para contenido técnico complejo. Esto te permite optimizar tanto la calidad como el coste.

Puedes utilizar OpenRouter para acceder a los modelos de IA más recientes tan pronto como se lancen.

Considera personalizar tu prompt de traducción con IA

El prompt de traducción predeterminado funciona bien para la mayoría del contenido, pero personalizarlo puede mejorar la calidad de la traducción para tu caso de uso específico.

Ejemplo:

Un blog de viajes podría personalizar su prompt añadiendo lo siguiente:

Traduce a un lenguaje natural, fluido, fácil de leer, en estilo blog informal. Mantén la estructura, el significado y los estilos del contenido original (pero sí ajusta la estructura y el estilo de las frases para que sean relevantes en el idioma de destino).
 
Mejora ligeramente las partes aburridas: añade ganchos que despierten la curiosidad, humor sutil y argot ligero (según convenga al idioma de destino), como lo escribiría un blogger de viajes humano.

Puedes modificar el prompt predeterminado o crear varios prompts personalizados de IA y seleccionar cuál utilizar en los Settings:

Editar un prompt de IA
Edita el mensaje de sistema y la plantilla de prompt para prompts personalizados

Audita tus bloques de Gutenberg

Antes de traducir, debes identificar qué bloques estás utilizando y asegurarte de que sean compatibles para la traducción.

Bloques de Gutenberg compatibles de serie:

  • Todos los bloques del core de WordPress: Paragraph, Heading, List, Quote, Image, Gallery, etc.
  • Bloques de terceros: bloques de los plugins Yoast SEO, GenerateBlocks, Kadence, Greenshift, etc.

Si utilizas un bloque no compatible que contiene cadenas que deben traducirse, puedes:

¿Necesitas ayuda? Podemos integrar bloques personalizados por ti. Echa un vistazo a nuestros Servicios Personalizados si prefieres que sean los expertos quienes se encarguen de la integración.

Nota: hay bloques que no se pueden traducir.

Si necesitas sustituir un bloque no compatible, querrás encontrar todas las entradas que lo utilizan. Consulta el tutorial sobre cómo encontrar entradas que contienen un bloque determinado para conocer los métodos para identificar dónde se utilizan bloques específicos.

Audita tus widgets de Elementor

Si utilizas el page builder Elementor, debes auditar qué widgets estás utilizando y asegurarte de que sean compatibles para la traducción. El proceso es similar a auditar los bloques de Gutenberg, pero específico para los widgets de Elementor.

Todos los widgets del core de Elementor son compatibles de serie.

Si tienes widgets no compatibles:

Audita tus elementos de Bricks

Si utilizas el page builder Bricks, debes auditar qué elementos estás utilizando y asegurarte de que sean compatibles para la traducción. El proceso es similar a auditar los bloques de Gutenberg, pero específico para los elementos de Bricks.

Todos los elementos del core de Bricks son compatibles de serie.

Si tienes elementos no compatibles:

Gestiona imágenes que contengan texto

Un descuido común al traducir sitios web es olvidar que las imágenes pueden contener texto que puede necesitar traducción.

Cuando traduces una entrada, las imágenes se copian a la versión traducida, y los metadatos de la imagen (título, texto alt, pie de foto) se traducen, pero cualquier texto dentro de esas imágenes permanece en el idioma original.

Para auditar tus imágenes, la forma más fácil es cambiar la Media Library de WordPress al layout Grid: esto te permite escanear visualmente todas tus imágenes de un vistazo y detectar rápidamente las que contienen texto incrustado en el idioma incorrecto.

Media Library de WordPress en layout Grid
Utiliza el layout Grid en la Media Library para revisar visualmente todas las imágenes en busca de texto incrustado

Por ejemplo, esta imagen contiene texto en hebreo, lo que la hace inadecuada para otros idiomas.

Mapa de Tailandia con texto en hebreo
Las imágenes pueden contener texto que hay que tener en cuenta para la traducción

Tus opciones:

  1. Mantener el texto incrustado (si el idioma se puede seguir entendiendo en general)

    • Adecuado cuando el texto está en un idioma ampliamente comprendido o utiliza símbolos/números universales
    • No se requiere trabajo adicional
  2. Eliminar el texto de las imágenes

    • Utiliza imágenes sin texto incrustado
  3. Utilizar superposiciones de texto en lugar de texto incrustado

    • Utiliza imágenes sin texto incrustado
    • Superpón el texto (utilizando bloques de Gutenberg, widgets de Elementor, elementos de Bricks o CSS) que se traducirá automáticamente
  4. Crear versiones traducidas de las imágenes

    • Crea archivos de imagen separados para cada idioma
    • Sustituye manualmente las imágenes en las entradas traducidas

Gestiona la traducción de datos de usuario adicionales

Polylang puede gestionar el campo de biografía para los perfiles de usuario de WordPress, pero si tienes datos de usuario adicionales almacenados en custom fields (a través de ACF, Meta Box u otros medios), necesitarás un enfoque especial.

Si tienes datos de usuario que necesitan traducción (por ejemplo: cargos, cualificaciones, descripciones, etc.), tendrás que crear campos separados para cada idioma.

  1. Crear campos separados para cada idioma

    • Utilizando ACF o Meta Box, crea campos como:
      • Qualification EN
      • Qualification FR
      • Qualification DE
      • etc.
  2. Actualizar tu tema para mostrar el campo correcto

    • Modifica las plantillas de tu tema para comprobar el idioma actual
    • Muestra el campo apropiado según el idioma activo
    • Ejemplo de código PHP:
      $current_lang = pll_current_language();
      $qualification = get_field("qualification_{$current_lang}", 'user_' . $user_id);
      echo $qualification;
  3. Rellenar los campos manualmente

    • Después de traducir el contenido, actualiza manualmente los campos del perfil de usuario

Omite la traducción de términos que no deberían traducirse

Algunos términos nunca deben traducirse: nombres de marcas, nombres propios, términos técnicos o terminología específica del dominio.

Puedes omitir la traducción de estos términos añadiendo instrucciones a tu prompt personalizado, por ejemplo:

No traduzcas los siguientes tipos de términos:
- Nombres de hoteles (por ejemplo, "Grand Hotel", "Beach Resort")
- Nombres de restaurantes
- Nombres de marcas
- Acrónimos técnicos (API, SEO, CMS, etc.)
 
Mantén estos términos exactamente como aparecen en el texto original.

Evita etiquetas duplicadas entre idiomas

Nuestro contenido puede tener etiquetas que representan el mismo concepto en dos idiomas diferentes. Cuando estas etiquetas se traducen, pueden crear duplicados o conflictos.

Por ejemplo, si tienes un sitio web chino que se traduce al inglés, y tienes tanto una etiqueta 布宜诺斯艾利斯 (Buenos Aires en chino) como una etiqueta Buenos Aires en inglés, al traducir al inglés, ambas etiquetas se convierten en buenos-aires. Esto crea una situación de etiqueta duplicada.

Etiqueta duplicada entre 2 idiomas
Etiqueta duplicada entre 2 idiomas

Cómo solucionarlo antes de traducir:

  1. Audita tus etiquetas

    • Revisa todas las etiquetas en tu idioma de origen
    • Identifica las etiquetas que puedan ser duplicados de etiquetas en otros idiomas
    • Busca etiquetas que representen el mismo concepto pero en diferentes idiomas
  2. Consolida las etiquetas

    • Elige una versión de idioma para conservar (normalmente tu idioma de origen)
    • Fusiona o elimina las etiquetas duplicadas
    • Actualiza las entradas para que utilicen la etiqueta consolidada
  3. Limpia antes de traducir

    • Asegúrate de que tu contenido de origen solo tenga etiquetas en el idioma de origen
    • Elimina cualquier etiqueta en idiomas de destino del contenido de origen
    • Esto evita conflictos durante la traducción

Evita nombres de ubicaciones duplicados entre idiomas

Si tu contenido utiliza titulares que mezclan scripts, puede que veas este patrón: el título empieza con un nombre de lugar local, luego el mismo nombre en letras latinas entre paréntesis, y luego el resto de la línea.

Patrón típico de origen (ejemplo):

  • Origen (por ejemplo, en hebreo): פוקט (Pouket) - מדריך לאי היפה — nombre local, luego una grafía en inglés o internacional entre paréntesis, luego el subtítulo.
  • Traducido (por ejemplo, al inglés): Pouket (Pouket) - beautiful island guide.

Después de la traducción, el titular ya está en un idioma y script, por lo que la representación literal del modelo repite el mismo nombre de lugar dos veces (por ejemplo, Pouket (Pouket)).

Solución: afinar el prompt de traducción

Personaliza tu prompt para que el modelo normalice las aperturas redundantes "Nombre (MismoNombre)" cuando el paréntesis no aporte información nueva. Por ejemplo, añade instrucciones como:

Si un encabezado empieza con un nombre de lugar seguido del mismo nombre traducido entre paréntesis, elimina el duplicado y conserva una versión natural. No elimines el paréntesis si el texto del interior utiliza un script diferente, una grafía diferente o incluye información descriptiva adicional.

Ten cuidado con los slugs de tus etiquetas/categorías

Si los slugs de tus etiquetas o categorías ya están en el idioma de destino, podrías asumir que no hay nada que traducir.

Las categorías en hebreo tienen su slug en inglés
Las categorías en hebreo tienen su slug en inglés

A menudo eso está bien, pero hay un detalle con Polylang free (no Pro).

Con Polylang Pro, los términos traducidos pueden reutilizar el mismo slug entre idiomas. Con la versión gratuita, WordPress impone slugs únicos en general, por lo que al slug del término traducido se le añade automáticamente un sufijo -2.

Por ejemplo: una categoría con slug travels_and_attractions en hebreo, al traducirse al inglés, se convierte en travels_and_attractions-2 en lugar de mantener el mismo slug.

Si esto afecta a tus URLs o SEO, tendrás que corregir manualmente los slugs después de la traducción, o actualizar a Polylang Pro para permitir la reutilización de slugs entre idiomas.

Asegúrate de que tus embeds estén en un idioma aceptable

Si estás incrustando contenido de terceros, como Google Maps, widgets de redes sociales u otros iframes de plataformas, comprueba que el embed se muestre en el idioma de destino.

Por ejemplo, un embed de Google Maps configurado para hebreo seguirá mostrando etiquetas, nombres de calles e interfaz en hebreo incluso después de haber traducido el resto de la página al inglés. En ese caso, puede que quieras utilizar un embed agnóstico al idioma.

Embed de Google Maps mostrando información en hebreo en una página en inglés
Este embed de Google Maps sigue mostrando información en hebreo: no es adecuado después de traducir el sitio al inglés

Lo mismo se aplica a cualquier plataforma o servicio que genere embeds específicos de idioma (por ejemplo, capítulos de YouTube, widgets de reseñas, formularios de reserva). Verifica siempre cada embed después de traducir.

Asegúrate de que no haya estilos específicos de idioma en el contenido de origen

El contenido de entradas escrito para un idioma específico, especialmente idiomas RTL como hebreo o árabe, puede incluir atributos de dirección e idioma en línea aplicados directamente a elementos HTML. Cuando ese contenido se traduce a un idioma diferente, esos estilos codificados se arrastran y rompen el layout.

Culpables habituales en contenido de origen RTL:

  • <div dir="rtl" lang="he"> — fuerza la dirección RTL y marca el idioma como hebreo en toda una sección
  • <p dir="rtl"> — fuerza la alineación RTL en párrafos individuales
  • <h2 style="text-align: right;"> — codifica la alineación a la derecha en los encabezados

Cuando este contenido se traduce al inglés (o a cualquier idioma LTR), el texto se vuelve inglés pero el layout sigue renderizándose de derecha a izquierda, lo que da lugar a encabezados desalineados, un flujo de texto invertido y un formato roto.

Antes de traducir, audita tu contenido de origen en busca de estos atributos y elimínalos. Deja que el tema y los ajustes de idioma/locale de WordPress controlen globalmente la dirección y la alineación, en lugar de incrustarlos en bloques de contenido individuales.

Gestiona las plantillas del Theme Builder de Elementor

Si utilizas el Theme Builder de Elementor para crear plantillas globales (cabeceras, pies de página, plantillas de single post, plantillas de archivo, etc.), es importante entender cómo se manejan estas plantillas durante la traducción.

Lo que se traduce:

  • Menús: los elementos del menú se sustituyen por las versiones traducidas del menú
  • Contenido dinámico: el contenido extraído de entradas/páginas se traduce (ya que el contenido fuente está traducido)

Lo que no se traduce:

  • Texto codificado: cualquier texto añadido directamente a la plantilla (no procedente de contenido dinámico) NO se traduce
  • Texto de widgets: el texto en widgets como encabezados, párrafos, botones, etc. permanece en el idioma de origen
  • HTML personalizado: cualquier HTML personalizado o bloque de código permanece sin traducir

Ejemplo:

Esta plantilla de cabecera de Elementor contiene texto codificado ("Our Phone Number:"):

Plantilla de cabecera de Elementor
Plantilla de cabecera de Elementor

Solución:

Diseña las plantillas para que utilicen únicamente:

  • Menús (que se sustituyen automáticamente)
  • Imágenes (que son agnósticas al idioma)
  • Contenido dinámico (que proviene de entradas traducidas)
  • Evita añadir cualquier texto, encabezado o descripción codificados directamente en las plantillas

Esto garantiza que los elementos globales de tu sitio (cabeceras, pies de página, etc.) funcionen correctamente en todos los idiomas.

Configura Advanced Custom Fields (ACF)

Si estás utilizando Advanced Custom Fields (ACF), debes configurar cómo se debe manejar cada campo durante la traducción. Los campos de ACF pueden contener varios tipos de contenido, y cada tipo puede necesitar un manejo diferente.

En la sección Gato Translate, los campos de ACF se pueden configurar con una de estas opciones:

  1. (Do nothing): el campo se omite de la traducción o sincronización

  2. Translate: el contenido del campo se traduce al idioma de destino

    • Úsalo para: campos de texto, campos textarea, campos WYSIWYG y cualquier campo que contenga texto traducible
  3. Copy: el valor del campo se copia tal cual a la traducción (no se traduce)

    • Úsalo para: números, fechas, checkboxes, campos true/false y cualquier campo que no deba traducirse
  4. Translate Reference: el campo hace referencia a otra entidad (entrada, página, usuario, etc.), y la referencia se actualiza para apuntar a la versión traducida

    • Úsalo para: campos Post Object, Page Link, Relationship, User y Taxonomy
Configurar la opción de traducción para un campo de ACF
Configura las opciones de traducción para cada campo de ACF (Translate, Copy o Translate Reference)

Los Field Groups pueden aplicarse a algo más que entradas y páginas. También pueden aplicarse a:

  • Categorías
  • Etiquetas
  • Elementos multimedia
  • Usuarios
  • Taxonomías personalizadas
  • Custom post types

¡Asegúrate de configurar los ajustes de traducción para los field groups que se apliquen también a estas entidades!

Si estás utilizando Polylang Pro, también debes desactivar sus funciones de traducción de ACF para permitir que Gato AI Translations maneje la traducción en su lugar.

Configura Meta Box

Si estás utilizando Meta Box (otro popular plugin de custom fields), el proceso de configuración es similar al de ACF. Los campos de Meta Box también deben configurarse para traducción, copia o traducción de referencia.

En la sección Gato Translate, los campos de Meta Box se pueden configurar con una de estas opciones:

  1. (Do nothing): el campo se omite de la traducción o sincronización
  2. Translate: el contenido del campo se traduce
  3. Copy: el valor del campo se copia tal cual
  4. Translate Reference: la referencia del campo se actualiza para apuntar a la entidad traducida
Configurar sincronización/traducción para un grupo de campos de Meta Box
Configurar sincronización/traducción para un grupo de campos de Meta Box

También debes desactivar las funciones de traducción de Meta Box de Polylang para permitir que Gato AI Translations maneje la traducción en su lugar.

Configura los campos meta personalizados

Más allá de ACF, Meta Box y los plugins de SEO, tu sitio puede tener otros campos meta personalizados procedentes de:

  • Código personalizado
  • Otros plugins
  • Custom fields de WordPress (el metabox básico de Custom Fields)

Estos campos meta deben configurarse manualmente en los ajustes del plugin.

Identificar meta keys personalizadas:

  1. Exporta tu contenido

    • Ve a Tools > Export en WordPress
    • Exporta todos los tipos de contenido que planeas traducir
    • Esto crea un archivo XML con todo tu contenido y metadatos
  2. Analiza el archivo de exportación

    • Abre el archivo XML en un editor de texto
    • Busca etiquetas <wp:postmeta>
    • Enumera todas las meta keys únicas
  3. Filtra los campos conocidos

    • Elimina los campos de ACF (normalmente con el prefijo del nombre de tu field group)
    • Elimina los campos de Meta Box
    • Elimina los campos del core de WordPress (por ejemplo: _edit_last, _wp_old_slug, _thumbnail_id)
    • Elimina los campos de plugins de SEO (si utilizas un plugin de SEO compatible)
  4. Identifica lo que queda

    • Estos son tus campos meta personalizados
    • Determina qué contiene cada campo y cómo debe manejarse

Determinar las necesidades de traducción:

Para cada campo meta personalizado, determina:

  • Translate: contiene texto traducible (títulos, descripciones, contenido)
  • Copy: contiene datos que no deben traducirse (IDs, números, ajustes)
  • Translate Reference: contiene IDs de entidades que deben apuntar a las versiones traducidas

Configurar en el plugin:

  1. Ve a Settings, en la pestaña Meta Configuration
  2. Elige la opción de traducción (Translate/Copy/Translate Reference)
  3. Añade los nombres de las meta keys personalizadas, utilizando una coincidencia exacta o un patrón regex
Configurar las meta keys para traducción
Configura meta keys personalizadas para la traducción en los ajustes del plugin

Ejecuta el proceso de traducción

Ahora que todos los preparativos están completos, es el momento de ejecutar las traducciones.

Prueba el proceso primero

Antes de lanzarte a traducir todo tu sitio web, es crucial probar el proceso a pequeña escala primero. Este enfoque te ahorrará tiempo y evitará que los problemas se repliquen en todo tu contenido.

Este es el flujo de trabajo de prueba recomendado:

  1. Empieza con una sola entrada y un idioma

    • Elige una entrada representativa que incluya varios tipos de contenido (texto, imágenes, enlaces, etc.)
    • Tradúcela a un solo idioma de destino que entiendas bien
    • Valida la traducción con todo lujo de detalles: comprueba cada bloque, cada enlace, cada imagen y cada pieza de metadatos
    • Si descubres algún problema (por ejemplo, un bloque no se tradujo, un enlace no se sustituyó, el formato se rompió), corrígelo antes de continuar. El mismo problema se replicará para todos los idiomas si no lo abordas ahora.
  2. Amplía a unas pocas entradas más

    • Una vez que la primera traducción sea perfecta, traduce de 3 a 5 entradas más al mismo idioma
    • Valida cada una a fondo
    • Esto te ayuda a identificar cualquier patrón o problema recurrente
  3. Prueba con idiomas adicionales

    • Si vas a traducir a varios idiomas, prueba con un idioma más para asegurarte de que todo funciona en diferentes pares de idiomas
  4. Solo entonces procede con la traducción masiva

    • Una vez que estés seguro de que todo funciona correctamente, puedes proceder a traducir el resto de tu sitio web

Este enfoque incremental garantiza que cualquier problema de configuración o problema de contenido se detecte pronto, cuando es fácil de arreglar.

Orden de traducción

El orden en el que traduces los diferentes tipos de contenido importa, especialmente cuando el contenido hace referencia a otro contenido.

Traduce el contenido en este orden específico para evitar problemas de referencia:

  1. Users

    • Las descripciones de usuario pueden incluirse en bloques
  2. Taxonomies (Tags/Categories)

    • Las etiquetas y categorías (y taxonomías personalizadas) son a menudo referenciadas por las entradas, por lo que deben existir antes de traducir las entradas
  3. Media

    • Los elementos multimedia (imágenes, vídeos, documentos) son referenciados por las entradas como imágenes destacadas o imágenes de galería, así que tradúcelos antes que las entradas
  4. Custom Post Types

    • Traduce entradas, páginas y otros CPTs
    • Importante: si un CPT hace referencia a otro, traduce en orden inverso de dependencias
    • Por ejemplo: si las entradas utilizan Reusable Blocks, traduce primero los Reusable Blocks y luego las entradas
  5. Menús

    • Traduce los menús al final, ya que hacen referencia a entradas, páginas y categorías

Decide si traducir los slugs o no

Traducir los slugs de entradas y taxonomías al idioma de destino suele ser deseable para idiomas con script latino (por ejemplo, francés, alemán, español): la ruta sigue siendo legible y puedes reflejar palabras clave localizadas en la URL.

Para scripts no latinos —hebreo, japonés, chino y similares— los slugs localizados a menudo se convierten en un lío: transliteraciones torpes, segmentos muy largos, codificación por porcentaje o URLs que son difíciles de compartir y comparar. Muchos equipos mantienen slugs latinos (o del idioma de origen) para esos idiomas y se apoyan en el título traducido para el nombre visible y localizado.

Trata la traducción de slugs como una política por idioma de destino, no como un único interruptor on/off para todo el sitio:

  1. Divide los idiomas en grupos, por ejemplo: "traducir slugs" para los destinos latinos frente a "no traducir slugs" para chino, japonés, hebreo, etc.
  2. Ejecuta lotes de traducción separados: traduce de forma masiva a un grupo con la traducción de slugs habilitada, y luego ejecuta otro lote al otro grupo con la traducción de slugs desactivada.
  3. Configura cada lote mediante Gato Translate (Custom) (cubierto en Cómo ejecutar traducciones más abajo): desactiva opciones como Translate custom post slugs? y Translate tag and category slugs? para los lotes en los que quieras mantener los slugs sin cambios. Aspira a una política por ejecución (por ejemplo, un idioma o un grupo de idiomas que compartan la misma regla) para que los ajustes coincidan con el resultado que esperas.

Para flujos de trabajo en scripts o repetibles, Comandos WP-CLI admite --translate-slugs=true o --translate-slugs=false por invocación.

Traducción en dos pasadas

Si has habilitado la sustitución de enlaces internos o la traducción de referencias a entidades, puede que necesites traducir en dos pasadas:

Pasada 1: traducir solo las propiedades

  1. Configura la traducción para excluir content y meta, es decir, traduce solo las properties (título/nombre y slug)
  2. Ejecuta la traducción
Seleccionar solo las propiedades de la entrada (título, slug) para la traducción
Primera pasada: traducir solo las propiedades (título, slug) para crear las entradas traducidas

Tras ejecutar la primera pasada, las entradas traducidas se crearán con sus URLs e IDs traducidas, lo que permite que las URLs de enlaces internos y los IDs de referencias a entidades se resuelvan al idioma de destino.

Pasada 2: traducir solo Content y Meta

  1. Configura la traducción para traducir solo content y meta (es decir, excluye properties)
  2. Ejecuta la traducción de nuevo
Seleccionar solo el contenido y meta de la entrada para la traducción
Segunda pasada: traducir solo content y meta para sustituir los enlaces internos y las referencias a entidades

Tras ejecutar la segunda pasada, el contenido y los meta restantes se traducirán, y las URLs de enlaces internos y los IDs de referencias a entidades se sustituirán por las versiones traducidas.

Cómo ejecutar traducciones

Opción 1: Administración de WordPress (Bulk Actions)

  1. Ve a la lista de contenido (Posts, Pages, Media, etc.)
  2. Selecciona los elementos que quieras traducir
  3. Elige Gato Translate en el desplegable de bulk actions
  4. Haz clic en Apply
Ejecutar la acción Gato Translate
Utiliza bulk actions para traducir varios elementos a la vez

Los menús se traducen de forma diferente: se traducen automáticamente cuando los guardas en el editor de menús.

Alternativa: Gato Translate (Custom)

Para más control, utiliza Gato Translate (Custom) que te permite anular los ajustes para esa ejecución de traducción específica:

Ejecutar la bulk action Gato Translate (Custom)
Utiliza Gato Translate (Custom) para ajustes personalizados por traducción

Esto abre una página de ajustes personalizados donde puedes proporcionar opciones específicas para esa ejecución de traducción:

Personalizar la ejecución de la acción 'Gato Translate'
Personaliza los ajustes de traducción para esta ejecución específica

Opción 2: WP-CLI (para lotes grandes)

Para sitios web grandes con cientos o miles de elementos, Comandos WP-CLI es una alternativa cómoda.

Puedes ejecutar traducciones por lotes a través de la línea de comandos, y luego puedes ejecutar las traducciones en segundo plano, mientras estás trabajando en otra cosa.

Ejecutar el script 'gatotranslate.sh'
Ejecutar el script 'gatotranslate.sh'

Comprobar los logs de traducción

Cuando una traducción falla (debido a que la API se desconecta, se agotan los créditos de la API, etc.) o produce advertencias, verás una insignia de notificación en el menú del plugin:

La traducción al español de la entrada 'Hello World' falló, y se muestra una insignia de notificación
Aparece una insignia de notificación cuando fallan las traducciones

Revisa los logs de traducción para entender qué ha sucedido:

  1. Ve al elemento de menú Logs en el menú del plugin
  2. Revisa cualquier error o advertencia
  3. Corrige cualquier problema antes de continuar
Navegar por los logs
Navega por los logs de traducción para identificar problemas
Ver un único log
Visualiza una entrada de log detallada para entender el error

Reejecutar traducciones fallidas

Siempre que una traducción falla, puedes reactivar la traducción solo de esa entrada y ese idioma, y evitar gastar créditos de la API en traducciones que sí tuvieron éxito.

Las traducciones fallidas se resaltan con un fondo amarillo en el icono de edición de Polylang:

Fondo amarillo en el icono de edición de Polylang para traducciones fallidas
Las traducciones fallidas se resaltan con un fondo amarillo

Puedes filtrar para mostrar solo las entradas con traducciones fallidas:

Filtrar para mostrar solo las entradas con traducciones fallidas
Filtrar para mostrar solo las traducciones fallidas

Para volver a traducir solo las entradas fallidas, utiliza la bulk action Gato Translate (Custom) con la opción Process failed translations only:

Filtrar para mostrar solo las entradas con traducciones fallidas
Lista de entradas con traducciones fallidas
Seleccionar la opción 'Process failed translations only' en la página de Settings de 'Gato Translate (Custom)'
Reejecuta las traducciones solo para las entradas fallidas

Valida la calidad y completitud de la traducción

Tras traducir el contenido, es crucial validar que las traducciones se realizaron correctamente y son de buena calidad. No asumas que todo funcionó a la perfección: tómate tu tiempo para verificar.

Validación en el editor:

Abre las entradas traducidas en el editor de WordPress y comprueba:

  1. Traducción del contenido

    • ¿Está todo el texto traducido? (no solo el título)
    • ¿Están todos los bloques/widgets/elementos traducidos?
    • Comprueba los bloques de Gutenberg, los widgets de Elementor o los elementos de Bricks
    • Verifica que se preserve el formato
  2. Custom fields

    • ¿Se han traducido/copiado/referenciado correctamente los campos de ACF?
    • ¿Se han manejado adecuadamente los campos de Meta Box?
    • ¿Están configurados correctamente los campos meta personalizados?
  3. Metadatos de SEO

    • Comprueba que los meta titles estén traducidos
    • Verifica que las meta descriptions estén traducidas
    • Confirma que las etiquetas Open Graph estén traducidas
    • Revisa cualquier otro campo del plugin de SEO
  4. Media

    • ¿Están las imágenes destacadas configuradas correctamente?
    • ¿Las imágenes del contenido apuntan a las versiones traducidas (si procede)?
    • ¿Están traducidos los textos alt de las imágenes?
  5. Enlaces

    • ¿Apuntan los enlaces internos a las versiones traducidas?
    • ¿Se preservan correctamente los enlaces externos?
    • ¿Funcionan los enlaces de categorías/etiquetas?

Validación en el frontend:

Visualiza las entradas traducidas en el navegador y verifica:

  1. Apariencia visual

    • ¿Se ve correctamente la página?
    • ¿Se preserva el layout?
    • ¿Se muestran correctamente las imágenes?
    • ¿Son correctos los estilos?
  2. Aplicación de plantillas

    • ¿Se está utilizando la plantilla correcta?
    • ¿Se muestran correctamente la cabecera/pie de página?
    • ¿Se muestran las sidebars/widgets?
    • ¿Muestra el menú la versión traducida?
  3. Funcionalidad

    • ¿Funcionan todos los enlaces?
    • ¿Funcionan los formularios?
    • ¿Funcionan los elementos interactivos?
    • ¿Es correcta la navegación?
  4. Elementos específicos del idioma

    • Para idiomas RTL, ¿es correcto el layout?
    • ¿Se renderizan correctamente las fuentes?
    • ¿Es correcta la dirección del texto?

Calidad de la traducción:

La traducción moderna con IA suele ser muy buena, pero aun así deberías revisar:

  1. Idiomas que entiendes

    • Lee las traducciones en los idiomas que conoces
    • Comprueba la precisión, el tono y el estilo
    • Verifica que los términos técnicos sean correctos
    • Asegúrate de que se mantenga la voz de marca
  2. Idiomas que no entiendes

    • Para los idiomas que no hablas, considera contratar a un hablante nativo para que los revise
    • Esto es especialmente importante para idiomas muy diferentes del tuyo (por ejemplo, del inglés al coreano, chino o árabe)
    • Incluso una revisión rápida puede detectar problemas importantes
    • Se recomienda una corrección profesional para el contenido importante
  3. Contenido específico del dominio

    • El contenido técnico puede necesitar una revisión por parte de expertos
    • El contenido legal/médico debe ser revisado por profesionales
    • El contenido de marketing puede necesitar ajustes en la voz de marca

Repara los bloques de "Invalid Content"

Al traducir grandes blobs de HTML que contienen muchas etiquetas y atributos, los servicios de IA a veces pueden devolver una respuesta que rompe la salida del bloque.

Por ejemplo, al traducir un bloque core/paragraph que contiene un blob de HTML muy grande utilizando ChatGPT 5.0 mini, como este:

<!-- wp:paragraph -->
<p>
  Pédagogie: 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><strong><br></strong>Support : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Coûts : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Débouchés : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark>
</p>
<!-- /wp:paragraph -->

...la respuesta podría introducir una etiqueta <mark> extra que no estaba presente en el contenido original:

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★
+<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">

Al editar la entrada en el editor de WordPress, ese bloque puede no renderizarse y mostrar en su lugar el mensaje "Block contains unexpected or invalid content":

Bloque corrupto mostrando el mensaje de contenido inválido
Bloque corrupto mostrando el mensaje de contenido inválido

Hacer clic en Attempt recovery muy probablemente resolverá el problema.

Si es posible, evita utilizar bloques HTML, porque todo el blob HTML debe traducirse como una sola unidad.

Utiliza en su lugar bloques personalizados con propiedades, para que esas cadenas traducibles puedan identificarse, extraerse y traducirse sin romper ningún formato.

Resuelve errores de datos corruptos

Ocasionalmente, puedes encontrarte con errores durante la traducción porque tu contenido contiene datos corruptos o obsoletos. Esto suele ocurrir cuando:

  • Un post type admitía previamente una característica (como entradas padre) pero ya no lo hace
  • El contenido hace referencia a entidades que ya no existen
  • Inconsistencias en la base de datos por migraciones o cambios de plugins
  • Relaciones huérfanas en custom fields

Entender el error:

Cuando ves un error como este en los logs:

2025-10-25T03:40:38+00:00 Error [Query "create-missing-translation-media"] Execution with errors: 🔴 Object with ID '26061' (of type 'GenericCustomPost') cannot be loaded. Please check if referencing this ID is stale data (i.e. still stored on the WordPress database, but pointing to a non-existing object) and, if so, remove it or fix it.

Esto significa:

  • El contenido hace referencia a una entidad (entrada, página, media, etc.) con ID 26061
  • Esa entidad ya no existe en la base de datos
  • El plugin no puede traducir porque no puede resolver la referencia

Cómo solucionarlo:

Método 1: editor de WordPress (el más sencillo)

  1. Abre la entrada/elemento que está fallando al traducir
  2. Identifica la referencia corrupta (comprueba los custom fields, las relaciones, etc.)
  3. Elimina o corrige la referencia
  4. Guarda la entrada
  5. Intenta traducir de nuevo

Método 2: limpieza de base de datos

Si no puedes arreglarlo a través del editor:

  1. Identifica qué campo contiene la referencia incorrecta
  2. Utiliza una herramienta de base de datos o un plugin para eliminar los datos obsoletos
  3. Ten cuidado: haz siempre una copia de seguridad antes de hacer cambios en la base de datos

Método 3: Gato GraphQL (avanzado)

Como Gato AI Translations for Polylang utiliza Gato GraphQL por debajo, puedes ejecutar consultas GraphQL para arreglar los datos corruptos de forma programática:

  1. Primero, recupera los IDs de los elementos con problemas utilizando una consulta GraphQL.

  2. Luego corrige el problema utilizando una mutation. Por ejemplo, para eliminar una referencia de padre de un elemento multimedia:

mutation {
  updateMediaItem( input: { id: 26066, customPostID: null } ) {
    status
    errors {
      __typename
      ...on GenericErrorPayload {
        message
      }
    }
  }
}

Si no puedes arreglarlo:

Si los datos corruptos no se pueden limpiar, puede que necesites:

  • Recrear la entrada/elemento desde cero
  • Exportar el contenido, limpiarlo y reimportarlo
  • Contactar con soporte para obtener ayuda con casos complejos

Integra las entradas traducidas en la configuración

Después de traducir tu contenido, las entradas traducidas recién creadas pueden necesitar ser integradas en la configuración del sitio web.

Actualiza los ACF Field Groups

Los ACF Field Groups pueden asignarse a entradas, páginas, categorías, etiquetas u otras entidades específicas. Cuando traduces el contenido, las versiones traducidas también pueden necesitar ser asignadas a los mismos field groups.

Después de traducir, actualiza las asignaciones de tu ACF Field Group para incluir las versiones traducidas:

  1. Ve al elemento de menú Field Groups en el menú del plugin ACF
  2. Edita el field group que se aplica a entidades específicas
  3. En las Location Rules, añade las versiones traducidas
  4. Guarda el field group

Ejemplo:

Un field group se aplica a la entrada específica "Hello World" en el idioma de origen:

ACF field group antes de añadir traducciones
ACF field group antes de añadir traducciones: solo se aplica a la entrada original

Después de traducir la entrada, las versiones traducidas ("Hola Mundo" en español y "你好世界" en chino) también deben asignarse al mismo field group:

ACF field group después de añadir traducciones
ACF field group después de añadir traducciones: se aplica a todas las versiones de idiomas

¡Eso es todo!

Ya has completado el proceso de traducción. ¡Enhorabuena! 👏

Conclusión

Esta guía exhaustiva debería ayudarte a traducir con éxito tu sitio web WordPress. Si necesitas más información, consulta la documentación de Gato AI Translations for Polylang.


Descubre lo que viene

Suscríbete a nuestra newsletter: te avisamos cuando publicamos una nueva versión, lanzamos un nuevo plugin o tenemos novedades para ti.