Skip Navigation

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.

Etiquetado: 

This topic contains 15 respuestas, has 2 mensajes.

Last updated by Alejandro hace 1 mes, 2 semanas.

Assigned support staff: Alejandro.

Autor Mensajes
octubre 3, 2021 a las 8:02 pm #9712285

anaA-14

Estoy tratando de:

URL de (mi) sitio web donde aparece el problema:
hidden link

Yo esperaba ver:
la pagina en idioma traducido

En vez de eso, obtuve:
1) en un módulo Código, tenia código jQuery entre etiquetas <script>...</script>. Al traducir la página, borra las etiquetas y, a consecuencia de ello, se muestra el código como texto en medio de la página.
2) en otro módulo Código, tengo un iframe con un mapa de Google Maps. Lo borra completamente.

Asi, cada vez que traduzco una página, he de ir a comprobarlo y reponer manualmente lo que la traducción ha borrado.

octubre 4, 2021 a las 9:56 am #9714979

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Hola!

Agrega, por favor, este código en el archivo functions.php de tu tema activo:

function km_add_unfiltered_html_capability_to_editors( $caps, $cap, $user_id ) {
	if ( 'unfiltered_html' === $cap && (user_can( $user_id, 'editor' ) || user_can( $user_id, 'administrator' ) )) {
		$caps = array( 'unfiltered_html' );
	}
	return $caps;
}
add_filter( 'map_meta_cap', 'km_add_unfiltered_html_capability_to_editors', 1, 3 );

Luego haz lo siguiente:

- edita la página que tiene ese bloque de codigo, en el idioma original. Agrega un caracter al titulo e guarda la página.

- ahora traduce todo de nuevo y actualiza los idiomas traducidos.

Avísame si ahora si ves el código correctamente.

octubre 6, 2021 a las 9:28 am #9730799

anaA-14

El error persiste, y se da en todas las páginas que tienen módulos de código DIVI, de forma aleatoria. A veces, tras repetir el proceso de traducción varias veces, se corrige. Si no, hay que hacerlo manualmente, lo cual es bastante engorroso y frustrante. Cualquier pequeña modificación de la página implica repetir todo el proceso.

Te adjunto imágenes para que te puedas hacer una idea:

- ErrorEnPagina: es lo que se ve en la página, el código que debía ser invisible aparece como texto.
- ModuloCodeIdioma1_original: el contenido del modulo en el idioma original
- ModuloCodeIdioma2_Traducido: el contenido del módulo en el idioma traducido. Los tags <script> inicial y </script> final han sido borrados, por lo que la página interpreta el código como texto y lo muestra en medio.
- ModuloMapIdioma1_Original: el módulo de código que muestra el mapa de Google Maps
- ModuloMapIdioma2_Traducido: el contenido del módulo ha sido borrado completamente.

Además, si tienes una URL en CSS:after, no la detecta y no la cambia a la pagina traducida.

Un saludo y gracias por la rápida contestacion.

ModuloMapIdioma2_Traducido.jpg
ModuloMapIdioma1_Original.jpg
ModuloCodeIdioma2_Traducido.jpg
ModuloCodeIdioma1_original.jpg
ErrorEnPagina.jpg
octubre 6, 2021 a las 10:08 am #9731201

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

1) El link en un CSS nunca se va a traducir automáticamente porque los bloques HTML son filtrados y por ende no son traducibles, tienes que traducir manualmente el URL.

El problema principal es que el bloque de código debería procesar solo el HTML más básico y no debería tener CSS o JS incluído, pero esto igual no debería borrar el código.

1) Me podrías decir si esa prueba con el screenshot la hiciste luego de agregar el código que te pedí que agregaras? ese código lo que hace es que evita que se filtre el HTML y por ende se debería ver tal cual.

2) Te pido que crees otra página y trates de traducirla pero desde WPML > Translations (Es decir primero agregala en WPML > Translation management)

y antes de traducir exporta la página en XLIFF 1.2, y envíame el archivo usando wetransfer, google drive o la plataforma de tu preferencia.

Esto me ayudará a entender mejor el problema.

3) Traduce la página y revisa si el problema se ha recreado. si no se ha recreado, repite de nuevo el procedimiento para la misma página y de nuevo guarda el XLIFF file.

Si una vez aparece el problema y una vez no aparece, por favor envíame 2 XLIFF (uno para cada escenario) para poder estudiarlos y ver que sucede.

Gracias.

octubre 11, 2021 a las 12:08 pm #9762043

anaA-14

1) si, he hecho la prueba con el código que me enviaste. El resultado ha sido el mismo.
2) Todas las traducciones las hago desde WPML>Translations, después de añadirlas a la lista de traducciones. Solo cuando no lo hace bien, voy a la página traducida directamente y con el builder cambio los valores.

Te lo envio por Wetransfer: hidden link

octubre 11, 2021 a las 1:22 pm #9762695

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

hm, podrías tratar de recrear el problema aquí: hidden link

Para ello activa los idiomas de WPML que tienes en tu página y luego instala divi y agrega el código como has hecho en tu sitio web.

Luego avísame para agregar la solución que te había dado y ver que es lo que está fallando porque el problema parece el mismo que ese código soluciona.

Gracias.

octubre 12, 2021 a las 5:00 pm #9774271

anaA-14

Ni Chrome ni mi antivirus me dejan acceder a la página cuyo enlace me has dado. Dicen que es una página peligrosa.
Si he notado que, después de hacer una traducción de la página, al aceptar y volver a la lista de traducciones, pueden pasar 2 cosas:
1) pone el mensaje "Procesando traducción (podría tardar unos minutos)", se queda ahi durante mucho tiempo y tengo que recargar la pagina. Cuando esto pasa, el resultado siempre es NO Ok, con los errores descritos.
2) pone el mensaje ("En espera del traductor", que dura unos segundos y enseguida "Terminado". En este caso, la página sale correcta.
Espero tus indicaciones...
Gracias por la asistencia y un saludo

octubre 13, 2021 a las 7:37 am #9776975

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Prueba de nuevo con el link de arriba pero en incognito, me parece que has tratado de acceder cuando el certificado de seguridad se estaba por renovar.

Si te aparece algo de un error, dale click a "información avanzada" o "mas detalles" y allí verás un link para acceder.

Trata de recrear el caso como mencioné arriba y avísame si lo logras para poder hacer algunos tests y enviar el caso a nuestros desarrolladores.

octubre 13, 2021 a las 9:56 am #9778605

anaA-14

Luego lo miro, pero una pregunta: Cuando hago una traducción, ¿es definitiva? Me estoy encontrando que una traducción parece funcionar bien, visualizo la pagina traducida y la veo correcta. La miro al dia siguiente y vuelve a estar mal. Eso me obliga a revisar y corregir las páginas cada dia.
A ver si hoy puedo preparar lo que me pides.
Un saludo

octubre 13, 2021 a las 11:37 am #9780117

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

A ver, te explico. el error es que los espacios que llegan de divi o las "new lines" (interlineas) e la base de datos se cambian por un comentario HTML que notifican que alli existe una interlinea.

Esto porque el bloque de código de los page builders está hecho para agregar HTML, no para agregar JS, CSS, etc. a pesar de que técnicamente es posible (ya que si metes el código JS en un tag HTML, este es HTML y JS al mismo tiempo).

Si tu agregas un comentario HTML en un código CSS o JS, obviamente se rompe y no funciona y es eso lo que te está creando el problema.

Lo que puedes hacer ahorita es usar el modo correcto para agregar JS, como lo ves en el handbook de WordPress: https://developer.wordpress.org/themes/basics/including-css-javascript/

y luego en la página solo agregar el código HTML. entiendo que es mucho más fácil para ti hacerlo en el bloque de código, pero eso "viola" el standard de WordPress.

------------------

Mientras te pregunto una cosa.

tu mencionas que esto sucede a veces aún cuando no has actualizado la página original o no has modificado las paginas que contienen este formulario, cierto?

puedes probar a deshabilitar WPML cuando suceda eso y ver si la página sigue rota cuando la abres? (tendrá un URL diferente, así que guíate por el back-end, usando el nombre traducido o el URL sin la parte del idioma en él)

octubre 14, 2021 a las 4:08 pm #9791831

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Tratemos lo siguiente:

1) Actualiza WPML a su versión más reciente junto a sus add-ons como las ves aquí: https://wpml.org/es/account/downloads/

Esto es muy importante porque sino no podrás seguir el paso 2

2) Edita el archivo que encuentras en el directorio: wp-content\plugins\sitepress-multilingual-cms\addons\wpml-page-builders\vendor\wpml\page-builders\src\media\shortcodes\

el archivo se llama: class-wpml-page-builders-media-shortcodes-update.php

Busca la linea 53 y deberías encontrar:

wpml_update_escaped_post( $postarr );

cambia ese código con este:

kses_remove_filters();
wpml_update_escaped_post( $postarr );
kses_init();

Luego agrega un caracter al titulo de la página que tiene el formulario, guardalo y trata de traducirlo para ver si el problema desaparece.

octubre 19, 2021 a las 4:33 pm #9820677

anaA-14

Hola Alejandro, perdona el retraso.

Con las modificaciones que me has dicho, he probado con una de las páginas que me daba los 2 errores (quitar <script></script> y quitar <iframe>) y el resultado ha sido:
- El <script></script> ya no lo quita, el problema parece solucionado
- El <iframe> no lo quita, pero sustituye las comillas " que encuentra por %22. Te adjunto el iframe para que tu mismo lo veas:

<IFRAME> ORIGINAL
<iframe src="hidden link" width="1200" height="500" style="border:0;" allowfullscreen="" loading="lazy"></iframe>

<IFRAME> TRADUCIDO
<iframe src=%hidden link width=%221200%22 height=%22500%22 style=%22border:0;%22 allowfullscreen=%22%22 loading=%22lazy%22></iframe>

El resultado es que en vez de salir el mapa de Google, sale cualquier cosa.

Un saludo

octubre 19, 2021 a las 4:48 pm #9820753

anaA-14

Hola Alejandro, revisando la misma página, me he encontrado este párrafo que le pasa algo raro con el tratamiento de las comillas:

PARRAFO TEXTO ORIGINAL:
<h5>Directora
<span class="icono_phone"> </span>932 693 161
<a style="color: blue; text-decoration: underline;" href="mailto:direcciontona@gruplantus.es">direcciontona@gruplantus.es</a></h5>

PARRAFO TEXTO TRADUCIDO:
<h5>Directora
<span class="%22icono_phone%22"> </span>932 693 161
<a blue="" text-decoration:="" underline="" 22="" href="%22mailto:direcciontona@gruplantus.es%22">direcciontona@gruplantus.es</a></h5>

Es un módulo de texto normal de DIVI. En particular, el style del tag <a> ha quedado destrozado en la traducción

Un saludo

octubre 20, 2021 a las 8:36 am #9824443

Alejandro
Supporter

Languages: Inglés (English ) Español (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Interesante.

1) si cambias las comillas dobles por comillas simples --> ' , sucede lo mismo?

muchas veces cuando sucede el problema de las comillas es porque en otro lado (tal vez "under the hood") se usan las comillas dobles para guardar las cadenas (el texto que agregas en los bloques de divi).

2) Puedes probar sin el cambio del código que te pasé anteriormente si el problema de las comillas continúa (El problema del script probablemente regresará).

Me gustaría saber que sucede para poder informar a nuestros desarrolladores sobre el caso.

octubre 22, 2021 a las 10:30 am #9842861

anaA-14

Hola Alejandro,

1) cambiar " por ' no sirve porque al grabar los cambios, DIVI repone las comillas.

2) he vuelto al código php original y el efecto es el mismo, no influye. Ahora, no elimina el tag <script> </script> del módulo Código, pero sustituye las comillas por %22 dentro del código mismo. Lo que hace que el código sea inútil.

Actualmente, cualquier comilla que aparezca en la página, sea en el módulo que sea, provoca problemas de sustitución.

Un saludo