WPML

Introducción

Por qué usar este plugin

Exportación e importación de WPML funciona junto con el plugin de importación de WordPress que ya utiliza. El plugin de importación mueve sus datos. Exportación e importación de WPML añade la información de idioma al final para que cada fila aterrice en el idioma correcto y cada traducción se enlace con su origen.

Integraciones

Exportación e importación de WPML funciona con estas herramientas de exportación e importación:

  • WP All Export Pro y WP All Import Pro: exporte desde un sitio de WordPress con la información de idioma incluida automáticamente, e importe entradas, productos y taxonomías desde CSV o XML.
  • La herramienta de exportación/importación integrada de WooCommerce (ProductosExportar y ProductosImportar): mueve los productos mediante un único CSV, con la información de idioma incluida en la exportación.
  • La herramienta de exportación/importación integrada de WordPress: mueve entradas, páginas y tipos de contenido personalizados mediante archivos WXR.
  • El plugin WP Import Export.
  • Canales CSV o XML personalizados: cualquier herramienta que pueda añadir las columnas de idioma a sus filas.

Versión heredada: el plugin WPML All Import

WPML All Import es el plugin heredado anterior a Exportación e importación de WPML. Ya no es compatible ni se recomienda. El procedimiento de esta página es la forma actualizada de importar contenido multilingüe a un sitio de WordPress; utilícelo en lugar de cualquier flujo de trabajo descrito en la documentación del plugin antiguo.

Exportar: obtenga su archivo de importación

Todo lo que importa comienza como un archivo. Hay dos formas de obtener uno:

  • Exportarlo desde un sitio de WordPress. Utilice una herramienta de exportación compatible y la información de idioma se incluirá automáticamente.
  • Prepararlo usted mismo. Sus datos se encuentran en una hoja de cálculo o en un sistema externo (PIM, MLS, ERP, plataforma de reservas) y usted añade las columnas de idioma al archivo manualmente; consulte Preparar su propio archivo en la sección Importar.

Configuración

Cuando exporte desde un sitio de WordPress, instale y active en él:

Cuando prepara el archivo usted mismo, no hay nada que instalar: el trabajo está en el propio archivo.

Ejecutar la exportación

Exporte su contenido de WordPress con la herramienta de exportación que prefiera. Con Exportación e importación de WPML activo, el archivo de exportación ya incluye las columnas de idioma para cada fila; no hay nada que añadir manualmente. Continúe con la sección Importar.

Importar: incorpore el contenido

Configuración

Instale y active estos plugins en el sitio al que va a importar:

  • Un plugin de importación: WP All Import Pro, la herramienta de importación integrada de WooCommerce, el importador integrado de WordPress o WP Import Export.
  • WPML y WPML Traducción de cadenas.
  • Exportación e importación de WPML (el complemento que trata esta página).
  • WPML Multilingual & Multicurrency for WooCommerce si va a importar productos de WooCommerce.

Configure WPML con todos los idiomas que planee importar. Los idiomas de destino ya deben existir en WPMLConfiguraciónIdiomas antes de ejecutar la importación.

El asistente de primera importación

La primera vez que abra WPMLExportación e importación, un breve asistente le preguntará si va a exportar el contenido desde este sitio o desde un sitio web o sistema diferente.

La primera pregunta del asistente: de dónde proviene su contenido.
La primera pregunta del asistente: de dónde proviene su contenido.

Cuando exporta desde este sitio, el asistente también le pregunta qué herramienta está utilizando: las herramientas de exportación/importación integradas de WordPress o WooCommerce, WP All Export y WP All Import, WP Import Export o un método diferente.

La segunda pregunta: qué herramienta utiliza para exportar desde este sitio.
La segunda pregunta: qué herramienta utiliza para exportar desde este sitio.

Según sus respuestas, la página muestra una guía de tres pasos adaptada a su configuración: cómo su contenido obtiene sus columnas de idioma (automáticamente para las herramientas compatibles, manualmente en caso contrario), la importación en sí y el recordatorio de volver y ejecutar la importación de WPML. Una vez que detecta contenido importado con información de idioma, la página informa cuántas entradas y términos están en espera y muestra el botón Ejecutar importación de WPML.

La guía de tres pasos para contenido de un sitio web o sistema diferente, con un ejemplo de las columnas de idioma.
La guía de tres pasos para contenido de un sitio web o sistema diferente, con un ejemplo de las columnas de idioma.

No hay nada más que configurar: esta página es toda la interfaz del plugin.

Preparar su propio archivo: hojas de cálculo y sistemas externos

Añada tres columnas a cada fila de su archivo. Así es como WPML empareja las traducciones y etiqueta cada fila con el idioma correcto:

  • _wpml_import_translation_group. Un valor único compartido por todas las versiones de idioma de un elemento de contenido. Para los productos, utilice el SKU. Para todo lo demás, genere su propio ID y reutilícelo para la fila de origen y cada una de sus traducciones.
  • _wpml_import_language_code. El código de idioma ISO para la fila (en para inglés, es para español, fr para francés, pt-pt para portugués europeo, etc.).
  • _wpml_import_source_language_code. Solo en las filas de traducción; el código de idioma del original. Déjelo en blanco para las filas del idioma de origen.

Utilice cada valor del grupo de traducción para un solo elemento de contenido. WPML mantiene el grupo de cada elemento que conecta, también después de la importación. Una fila que importe más tarde con el mismo valor de grupo se unirá a las traducciones de ese elemento.

Dos columnas más son opcionales en las filas de entradas y productos:

  • _wpml_import_after_process_post_status. El estado que obtiene la entrada después de Ejecutar importación de WPML. Utilice un nombre de estado de WordPress: publish, draft, pending o private. Escriba publish, no published.
  • _wpml_import_tea. Establézcalo en 1 en una fila de origen para enviar ese elemento a traducción automática. Esta columna solo actúa cuando el modo Traducir todo de WPML está activado; consulte Traducir automáticamente el contenido importado.

Dejar que un asistente de IA prepare el archivo

No tiene que añadir estas columnas manualmente. Entregue su CSV o archivo de exportación a un asistente de IA junto con una instrucción como: «Añade las columnas de importación de WPML _wpml_import_translation_group, _wpml_import_language_code y _wpml_import_source_language_code a este archivo. Las filas en inglés son las originales; empareja cada traducción con su original mediante el SKU». El asistente rellenará las tres columnas en segundos. Revise algunas filas antes de importar.

Aquí hay un ejemplo práctico para entradas de blog. El archivo tiene una columna language y una columna original con el título de la entrada en inglés que traduce una fila:

title,content,language,original
Summer Sale,Our summer sale starts on June 1.,English,
Soldes d'été,Nos soldes commencent le 1er juin.,French,Summer Sale

La instrucción para este archivo:

Añade las columnas _wpml_import_translation_group, _wpml_import_language_code y _wpml_import_source_language_code a este CSV. Las filas en inglés son las originales. Para cada fila en inglés, crea un ID corto a partir de su título y úsalo como grupo de traducción. Asigna a cada traducción el grupo de la fila en inglés que nombra su columna original. Usa los códigos de idioma en y fr. Deja el idioma de origen en blanco en las filas en inglés y establécelo en en en las traducciones.

El resultado, con el contenido acortado:

title,content,language,original,_wpml_import_translation_group,_wpml_import_language_code,_wpml_import_source_language_code
Summer Sale,...,English,,summer-sale,en,
Soldes d'été,...,French,Summer Sale,summer-sale,fr,en

Para WP All Import Pro y herramientas similares, prepare dos hojas de cálculo: una para las taxonomías (categorías, etiquetas, categorías de productos) y otra para las entradas y productos. La herramienta de importación integrada de WooCommerce admite una sola hoja de cálculo porque las categorías de productos se encuentran dentro de las filas de productos.

Atributos personalizados de WooCommerce para productos variables

Si tiene productos variables con atributos personalizados, añada una columna adicional a las filas de productos traducidos: _wpml_import_wc_local_attribute_labels. El valor es un objeto JSON de pares slug:translation. Para un producto variable en francés con los atributos Size (Tamaño) y Color (Color):

{"size":"Taille","color":"Couleur"}

El slug es el nombre del atributo en minúsculas con los espacios reemplazados por guiones.

Importar primero las taxonomías y luego las entradas

Cuando tenga un archivo separado para las taxonomías, impórtelo siempre primero. Las categorías, etiquetas y cualquier otra taxonomía deben existir antes de que las entradas y productos puedan hacer referencia a ellas. A continuación, importe entradas, páginas, productos y otros tipos de contenido.

Si divide sus datos en un archivo por idioma, importe cada archivo de idioma antes de ejecutar el paso de conexión de WPML.

Solo debe ejecutar la importación de WPML una vez, después de que todo esté incorporado. El paso de conexión procesa las taxonomías antes que las entradas y, a continuación, vuelve a conectar cada entrada a los términos en su propio idioma; de este modo, las entradas que se importaron mientras los términos aún no estaban conectados salen adjuntas a los términos del idioma correcto.

Asignar las columnas de idioma en su plugin de importación

Cada plugin de importación maneja las columnas personalizadas a su manera. El paso crítico es asignar las tres columnas de WPML a campos personalizados (o metadatos de términos, para las taxonomías). En WP All Import Pro, esto ocurre en el Paso 3 del asistente de importación:

  • Para entradas y productos. Abra Custom Fields (Campos personalizados), añada tres campos, arrastre las columnas de idioma a las casillas de Value (Valor) y utilice los nombres de las columnas sin corchetes en las casillas de Name (Nombre).
  • Para taxonomías. Abra Term Meta (Metadatos de términos), añada tres campos de metadatos de términos y asigne las columnas de idioma de la misma manera.
Las tres columnas de idioma de WPML asignadas como campos personalizados en el paso 3 del asistente de WP All Import.
Las tres columnas de idioma de WPML asignadas como campos personalizados en el paso 3 del asistente de WP All Import.

Si las columnas no están asignadas, WPML no tiene nada que leer cuando ejecute el paso de conexión.

Lo que verá entre la importación y el paso de conexión

Hasta que ejecute Exportación e importación de WPML, todo el contenido importado se ubicará en su idioma predeterminado, y WPML mantendrá automáticamente las entradas y productos en estado de Borrador para evitar que el contenido en varios idiomas aparezca en el front-end. Este es el estado provisional esperado, no una señal de una importación fallida. Después del paso de conexión, el contenido se publica (o se establece en el estado que haya puesto en la columna _wpml_import_after_process_post_status).

Después de la importación y antes de Ejecutar importación de WPML: las entradas en inglés y francés son todas Borradores en inglés.
Después de la importación y antes de Ejecutar importación de WPML: las entradas en inglés y francés son todas Borradores en inglés.

Para los plugins de importación no compatibles, deberá publicar las entradas manualmente una vez finalizado el paso de conexión.

Ejecutar la importación de WPML

Una vez que el plugin de importación haya terminado:

  1. Abra WPMLExportación e importación en el panel de administración de WordPress.
  2. Haga clic en Ejecutar importación de WPML.
Exportación e importación de WPML encuentra el contenido importado y muestra el botón Ejecutar importación de WPML.
Exportación e importación de WPML encuentra el contenido importado y muestra el botón Ejecutar importación de WPML.
Ejecutar importación de WPML muestra cada paso y el número de elementos que procesó. Multilingual Import Complete (Importación multilingüe completada) aparece cuando termina.
Ejecutar importación de WPML muestra cada paso y el número de elementos que procesó. Multilingual Import Complete (Importación multilingüe completada) aparece cuando termina.

WPML lee las columnas de idioma de cada fila, asigna el idioma a esa fila y enlaza las traducciones a su origen. En catálogos grandes esto puede tardar varios minutos. Cuando termina, su contenido importado se publica en el idioma correcto con cada traducción conectada a su origen.

Realice comprobaciones en el panel de administración y en el front-end:

  • Abra la lista de tipos de contenido o productos: confirme que cada fila se muestra bajo la bandera del idioma correcto.
  • Visite el front-end y cambie de idioma: cada página traducida debería cargar su versión traducida, no recurrir al origen.
Después de Ejecutar importación de WPML: tres entradas en inglés y tres en francés, publicadas y conectadas como traducciones.
Después de Ejecutar importación de WPML: tres entradas en inglés y tres en francés, publicadas y conectadas como traducciones.

Si la traducción de una taxonomía no se enlazó, abra el término en el panel de administración de WordPress y utilice la casilla Idiomas del término para conectarlo con el término del idioma predeterminado.

Lo que no cubre la importación de WPML

La importación de WPML establece el idioma de cada elemento y conecta sus traducciones. No cambia otro contenido. Compruebe lo siguiente después de la importación:

  • Páginas superiores, menús y entradas fijas. WPML no ajusta la página superior de una página traducida, no añade elementos importados a los menús y no copia la configuración de entrada fija entre idiomas.
  • Enlaces e ID de imágenes dentro del contenido. WPML no cambia los enlaces, los ID de las imágenes ni los campos de imagen dentro del contenido importado. Edítelos en la traducción.
  • Campos copiados. La importación de WPML conecta las traducciones, pero no copia campos como el precio o el inventario del original a las traducciones. Para copiarlos después de una importación de actualización, abra el original y guárdelo de nuevo.
  • WooCommerce Bookings. Los productos reservables se importan sin sus tipos de personas (niño, adulto, etc.) y recursos. Añada los tipos de personas y los recursos a los productos traducidos después de la importación.

Automatizar: ejecutar la importación de WPML sin hacer clic

Para sincronizaciones nocturnas, feeds de proveedores, canales de implementación o cualquier importación programada, el paso de conexión de WPML puede ejecutarse sin la interfaz de usuario del panel de administración. Hay tres formas de conectarlo:

Endpoint POST (para importaciones basadas en cron como las acciones programadas de WP All Import)

Esta es la forma recomendada. Añada una clave secreta segura a wp-config.php:

define( 'WPML_IMPORT_KEY', 'your-strong-secret-key-here' );

A continuación, añada un segundo comando a su configuración de importación programada. Este envía una petición POST a su sitio y pasa la clave en el cuerpo de la petición:

curl -X POST https://yoursite.com/ \
  -d 'wpml_import_trigger=your-strong-secret-key-here'

La misma llamada con wget:

wget -q -O - \
  --post-data='wpml_import_trigger=your-strong-secret-key-here' \
  https://yoursite.com/

Para la programación manual de WP All Import Pro, añada cualquiera de los dos comandos justo después del comando de importación.

Cuando se ejecuta el paso de conexión, su sitio responde con el estado 200 y este mensaje:

Import process completed

Otras dos respuestas le indican qué ha ocurrido: 401 significa que la clave no coincide y 204 significa que no quedaba nada por procesar.

El antiguo endpoint de URL: eliminado en la versión 5.0.0

Antes de la versión 1.2.0 de Exportación e importación de WPML, la clave se pasaba en la URL:

https://yoursite.com/?wpml_import_trigger=your-strong-secret-key-here

Desde la versión 5.0.0 de Exportación e importación de WPML, esta URL ya no ejecuta la importación. Una petición que lleve la clave en la URL obtiene el estado 405. Mueva sus importaciones programadas a la llamada POST anterior.

El motivo es la clave. Una URL viaja a través de los registros del servidor, el historial del navegador y las analíticas, y su clave viaja con ella. Una petición POST mantiene la clave en el cuerpo de la petición.

Hook de acción (para importaciones programadas en PHP)

Si está programando importaciones desde PHP con Action Scheduler o wp_schedule_single_event, active el paso de WPML con una llamada de acción:

do_action( 'wpml_import_process' );

Para ejecutarlo como una tarea en segundo plano puntual justo después de su acción de importación:

wp_schedule_single_event( time(), 'wpml_import_process' );

Si una importación no termina, consulte Depurar WPML.

WP-CLI

Para scripts de implementación, compilaciones de contenedores o cualquier canal en el que la interfaz de usuario del panel de administración no esté disponible, ejecute el paso de conexión desde WP-CLI:

wp wpml import process

El comando informa de cuántas traducciones se conectaron. Es un reemplazo directo del botón Ejecutar importación de WPML.

Traducir automáticamente el contenido importado

Puede hacer que WPML traduzca el contenido importado automáticamente. Sin esto, importaría el contenido en un idioma y luego (con Traducir todo automáticamente activado) seleccionaría todos los elementos importados y los enviaría a traducir usted mismo, lo que requiere mucho tiempo para lotes grandes e importaciones repetidas. En su lugar, añada una columna más a su archivo:

  • _wpml_import_tea. Establézcala en 1 en las filas del idioma de origen que quiera traducir automáticamente.

Cuando ejecuta la importación de WPML, WPML crea trabajos de traducción automática para cada entrada marcada, a cada uno de los idiomas de su sitio que aún no tenga una traducción. Las filas para las que importó traducciones se dejan intactas.

Esto requiere que el modo Traducir todo automáticamente de WPML esté activado; sin él, la marca se ignora.

Errores comunes

  • Al archivo de importación le faltan las tres columnas de idioma. El contenido se importa pero aterriza como filas del idioma de origen sin etiquetar; Ejecutar importación de WPML no tiene nada que conectar. Solución: añada las columnas a sus datos de origen, vuelva a exportar y vuelva a importar.
  • Se omitió la asignación de Custom Fields / Term Meta de WP All Import. El mismo problema que la falta de columnas. Los datos están en el archivo, pero el plugin de importación no los almacenó en la entrada. Vuelva a ejecutar la importación con los campos asignados.
  • Los idiomas de destino no están configurados en el sitio de importación. Las filas importadas para un idioma no configurado aterrizan en el idioma predeterminado. Añada primero los idiomas que faltan en WPMLConfiguraciónIdiomas y luego vuelva a ejecutar.
  • Plugin de importación no compatible. Las entradas importadas se mantienen en Borrador después del paso de conexión. Publíquelas manualmente o cambie a un plugin compatible.
  • Scripts de importación personalizados que no transmiten los datos de idioma. La solución está a nivel de script. Las tres columnas de idioma (y la columna de atributos de WooCommerce cuando corresponda) deben llegar a la fila.
  • El contenido que añade su propio código no se mantiene en Borrador. WPML mantiene el contenido en Borrador solo para los plugins de importación compatibles. El contenido que su código añade con wp_insert_post, o una importación de WooCommerce que se ejecuta desde PHP o WP-CLI, mantiene el estado que le da el código. Cree usted mismo el nuevo contenido como borrador y establezca _wpml_import_after_process_post_status en publish.
  • wp export elimina las columnas de idioma de los términos. WP-CLI 2.12.0 incluye export-command 2.1.14, que no escribe metadatos de términos. Después de wp import, cada categoría y etiqueta pierde sus columnas de idioma. Actualice export-command a la versión 2.1.15 o posterior, o exporte desde HerramientasExportar en el panel de administración de WordPress.

Si las importaciones siguen tropezando con el mismo problema, el equipo de soporte de WPML responde a las preguntas de importación las 24 horas del día, los 7 días de la semana.

Casos de uso

Mover contenido multilingüe a un nuevo sitio

El escenario más común: exportar el contenido de un sitio WPML y llevarlo (total o parcialmente) a otro.

  1. En el sitio de origen, instale Exportación e importación de WPML junto a su herramienta de exportación y exporte el contenido que desea mover (consulte Exportar). Las columnas de idioma se incluyen automáticamente.
  2. En el nuevo sitio, complete la Configuración de importación: plugins instalados, todos los idiomas del sitio de origen configurados.
  3. Importe las taxonomías y luego el contenido con su herramienta de importación.
  4. Ejecute la importación de WPML. Su contenido saldrá en los idiomas correctos con cada traducción conectada, al igual que en el sitio de origen.

Restablecer WPML y volver a importar traducciones en el mismo sitio

Piense en la exportación como una copia de seguridad de la conexión de idiomas de su sitio: el idioma de cada fila y qué filas pertenecen juntas como un grupo de traducción. Puede mantener esa copia actualizada automáticamente (por ejemplo, una exportación nocturna programada en su herramienta de exportación, guardada en su propio archivo). Si los datos de idioma de WPML alguna vez entran en mal estado, puede restablecer WPML y volver a importar la exportación más reciente realizada mientras los datos aún estaban bien, siguiendo los pasos a continuación. Hay algo que esto no puede hacer: reparar una exportación realizada después del problema; el archivo conserva el estado en el que se encontraban los datos cuando se exportaron.

  1. Exporte mientras los datos de idioma estén intactos (o recurra a su última exportación programada). Exporte cada tipo de contenido que le interese con sus traducciones (consulte Exportar). Las tres columnas de idioma capturan lo que necesitará restaurar: el idioma de cada fila y qué filas pertenecen juntas como traducciones entre sí.
  2. Restablecer WPML. Siga la guía para Restablecer WPML. El restablecimiento elimina todos los datos de WPML (los idiomas, el idioma de cada elemento, los enlaces entre traducciones, las traducciones de cadenas y los trabajos de traducción) y desactiva WPML. Sus entradas, páginas, productos y taxonomías se mantienen. Vuelva a activar WPML.
  3. Vuelva a configurar los idiomas: el mismo idioma predeterminado y los mismos idiomas secundarios que tenía el sitio antes del restablecimiento.
  4. Vuelva a importar el mismo archivo, actualizando el contenido existente. Este es el paso que difiere de la migración a un nuevo sitio: las entradas ya existen, por lo que la importación debe actualizarlas en lugar de crear unas nuevas. Utilice WP All Import con la coincidencia de registros (coincidencia por ID) o la opción de actualizar productos existentes del importador de WooCommerce. El importador estándar de WordPress no puede hacer esto: solo crea contenido nuevo, por lo que duplicaría cada fila.
  5. Ejecute la importación de WPML. Las asignaciones de idioma y los grupos de traducción del archivo se vuelven a conectar al contenido existente.

Solo se recuperan el idioma de cada elemento y los enlaces entre las traducciones. Las traducciones de cadenas, los trabajos de traducción y la configuración de WPML no están en el archivo de exportación. Vuelva a configurarlos después de la importación.

Añadir un idioma más tarde

Importó su catálogo en inglés y español, y ahora añade francés. Prepare un archivo solo con las filas en francés. Asigne a cada fila el grupo de traducción de su original, el código de idioma fr y el idioma de origen en. Importe el archivo y haga clic en Ejecutar importación de WPML. WPML mantiene el grupo de cada elemento que conectó, por lo que cada fila en francés se une a las traducciones de su original.

Sincronizar un feed de proveedor cada noche

Su proveedor envía un feed de productos cada noche. Los productos originales están en inglés y el feed tiene las tres columnas de idioma. Programe la importación en WP All Import Pro y añada la llamada POST justo después. Establezca _wpml_import_tea en 1 en las filas de los productos nuevos. Cada noche, los nuevos productos obtienen sus idiomas y WPML los envía a traducción automática a sus otros idiomas.

Escrito porAmir

Escrito porAmir