Saltar navegación

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Este tema contiene 9 respuestas, tiene 2 voces.

Última actualización por Carlos Rojas hace 9 meses, 2 semanas.

Asistido por: Carlos Rojas.

Autor Entradas
Abril 22, 2024 en 5:29 pm #15552434

santiagoN

Hello, WPML is breaking one of my custom Gutenberg blocks, this block is reciving a JSON through a HTML data attribute (as you can see on the picture), this works perfectly on original pages:

The problem is that on the translated pages seems that the code in badly parsed and breaks the data-params JSON (check second picture), that is causing a JS error and the block stops working.

Is there a way to prevent a Block to be translated and avoid this bug ?

You can check the following link:
enlace oculto

as you can see on spanish (original language) the gallery is working on english (translation) is not.

Screenshot 2024-04-22 at 19.22.03.png
Screenshot 2024-04-22 at 19.19.42.png
Screenshot 2024-04-22 at 19.18.37.png
Abril 23, 2024 en 7:39 am #15553971

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,
Muchas gracias por contactarnos

1.- Le pido que vaya a Plugins -> Añadir nuevo -> Pestaña 'Comercial' y actualice los plugins de WPML a la última versión. Luego compruebe si el problema desapareció.

Nota: No olvide crear una copia de seguridad del sitio completo antes de actualizar los plugins

Si el problema persiste y este bloque es un widget, entonces le recomiendo que intente crear un widget para cada idioma como se describe en esta guía: https://wpml.org/documentation/getting-started-guide/translating-widgets/#using-different-widgets-for-different-languages

También le recomiendo que revise esta documentación: https://wpml.org/documentation/support/language-configuration-files/make-custom-gutenberg-blocks-translatable/ donde se describen los pasos a seguir para registrar los bloques de Gutenberg personalizados

2.- Por favor incremente el límite de memoria de WordPress. El mínimo requerido es de 128Mb: https://wpml.org/home/minimum-requirements/
Para ello puede agregar el siguiente código al archivo wp-config.php que se encuentra en la raíz del sitio:

 /* Memory Limit */
define('WP_MEMORY_LIMIT', '128M');

- Añádelo encima de la línea /* That's all, stop editing! Happy blogging. */

Puede comprobar el límite de memoria de WordPress en WPML -> Soporte

Saludos,
Carlos

Abril 23, 2024 en 6:46 pm #15557840

santiagoN

Hola Carlos, primero, gracias por tu pronta respuesta.

Después de revisar lo que me comentas sigo teniendo el mismo problema:

intenté prevenir la modificación/traducción del data-attribute pero no funciona:

he añadido este código en wpml-config.xml y reeditado la página para ver si conseguia evitar que el Plugin modificase ese attribute ya que un JSON no se deberia de traducir.

<wpml-config>
<gutenberg-blocks>
<gutenberg-block type="toyzinger/toy-gallery" translate="0">
<key name="data-params" />
</gutenberg-block>
</gutenberg-blocks>
</wpml-config>

El bloque se trata de una galería de imágenes que no quiero traducir, hay alguna manera de prevenir que el plugin traduzca un blocke ?

Estaría bien tener una manera de evitar que WPM modifique elementos, añadiendo una class o atributo en el HTML

Abril 24, 2024 en 9:59 am #15559943

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,

Por favor modifica la línea:

<key name="data-params" />

por:

<key name="data-params" encoding="json" />

Y comprueba si el problema persiste

Abril 25, 2024 en 5:10 pm #15566964

santiagoN

Hola Carlos,

he hecho los cambios que me pediste y eso no soluciona el problema.

Este bloque de Gutenberg está hecho con React con el siguiente código.
Que entiendo que es una manera bastante standar de hacer blockes de gutenberg.

Te adjunto capturas del código a ver si se te ocurre como se podría solucionar.

Como te comentaba, si existe una manera de evitar que WPML toque esa parte del código sería genial, de hecho me parece una funcionalidad bastante básica.

No siempre vamos a querer traducir todo...

Screenshot 2024-04-25 at 19.01.18.png
Screenshot 2024-04-25 at 18.50.01.png
Abril 26, 2024 en 8:43 am #15569177

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Muchas gracias por su respuesta.

He creado un sitio sandbox con una nueva instalación de WordPress + WPML al que puede acceder a través de este enlace: enlace oculto

Le pido que acceda al sitio y añada el bloque personalizado. Luego compruebe si el problema persiste.

Por favor solamente cree el bloque que tiene este problema y/o instale cualquier funcionalidad indispensable para reproducir el problema.

Una vez realizados los pasos anteriores, describa cómo editar el bloque para poder revisarlo más de cerca y escalar este problema a nuestro 2do nivel de soporte en caso de ser necesario.

Quedo a la espera de su mensaje.

Abril 26, 2024 en 9:20 am #15569599

santiagoN

Hola Carlos,

He instalado mi plugin con el blocke personalizado.

También he creado una entrada en POST donde he añadido el blocke con algunas imágenes y lo he traducido. El problema también sucede en vuestro sandbox.

Como podrás ver en el idioma original (ingles), la galería funciona, al hacer click en las miniaturas la imagen principal se actualiza:
enlace oculto

En la versión traducida de la entrada (español) la galería deja de funcionar, teniendo el mismo error de javascript que en mi entorno:
enlace oculto

STEPS TO REPRODUCE:

1 - Crear una entrada.
2 - Editar entrada añadiendo el blocke gutenberg personalizado "toy-gallery".
3 - Configurar dicho blocke con algunas imágenes.
4 - Añadir algo de texto en la entrada y guardar cambios.
5 - Traducir dicha entrada.

Se puede observar como en la versión original de la entrada la galería de imagenes "toy-gallery" funciona, en la versión traducida no.

Parece ser que esto es debido a que la traducción reescribe el código HTML del blocke rompiendo el JSON del atributo "data-params".

Abril 29, 2024 en 9:46 am #15576103

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Muchas gracias por su respuesta.

He escalado este ticket a nuestro 2do nivel de soporte para que nuestros especialistas revisen este tema con mayor profundidad.

Nota importante: Como se trata de un bloque de Gutenberg personalizado, la solución cae fuera del alcance de nuestro servicio de soporte, por lo que es posible que nuestros especialistas de 2do nivel no puedan encontrar una solución.

Le mantendré al tanto de la evolución de este ticket.

Abril 29, 2024 en 10:21 am #15576390

santiagoN

Hola Carlos,

Gracias por el soporte,

Al final he solucionado el problema modificando mi bloque personalizado, y cambiando el JSON por otro enfoque distinto.

Igual creo que estaría bien que revisaseis vuestra parte, ya que el hecho de que el plugin "rompa" los JSON's dentro de los atributos HTML puede dar problemas a más de uno.

También os sugeriría crear una etiqueta/class para evitar que el plugin modificase cierto contenido. Me parece una opción bastante básica que no entiendo por qué no tiene vuestro plugin.

un saludo
Santi

Abril 29, 2024 en 10:25 am #15576392

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola Santi,
Me alegra saber que has encontrado una solución al problema.

Con respecto a Language Configuration File, sí que existe una opción para copiar o no traducir una opción del bloque, pero lo extraño es que no haya funcionando con el bloque personalizado que has creado.

Por favor no dudes en contactarnos si necesitas de nuestra ayuda en el futuro con WPML.
Saludos!