Saltar al contenido Saltar a la barra lateral

Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.

Problema:
Necesitas añadir un script de livechat diferente antes de la etiqueta

</body>

para cada idioma en tu sitio web, de manera que el chat aparezca en el idioma correspondiente.
Solución:
Para añadir un script específico para cada idioma, puedes seguir las instrucciones de este ticket de soporte que muestra cómo incluir un fragmento de JavaScript diferente según el idioma:

Si esta solución no parece relevante o si tienes algún problema al implementarla, por favor, abre un nuevo ticket de soporte.

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: 

Este tema contiene 7 respuestas, tiene 2 voices.

Última actualización por Paola Mendiburu hace 1 año, 11 meses.

Asistido por: Paola Mendiburu.

Autor Publicaciones
noviembre 9, 2023 a las 12:43 pm #14766957

franciscoN-9

Buenas tardes, estoy implementando un livechat para nuestra web y necesito añadir un script que va ubicado antes de </body> pero necesito añadir uno diferente para cada idioma para que cada idioma tenga el chat en ese idioma.

Si lo añado en footer.php, solo puedo añadir un chat en un idioma y quiero añadir un código para cada idioma. ¿de qué forma podría hacerlo?

Un saludo y muchas gracias

noviembre 10, 2023 a las 9:33 am #14774457

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

Hola!

Soy Paola y espero que todo vaya bien.

En este ticket te muestra como añadir diferente script por idioma:
https://wpml.org/forums/topic/only-include-javascript-snippet-on-1-language/

Ya me dices si tienes cualquier problema.

noviembre 10, 2023 a las 10:01 am #14774737

franciscoN-9

Hola Paola, muchas gracias por tu mensaje.

Estoy utilizando ese código que me indicas en el footer.php pero al utilizarlo el diseño de la web se rompe.

¿Debe de ir en algún sitio específico?
Saludos

noviembre 10, 2023 a las 11:01 am #14775621

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

¿Me podrías indicar dónde lo estás añadiendo?, lo tienes que añadir en la parte donde añades el script.

noviembre 10, 2023 a las 11:16 am #14775775

franciscoN-9

El código que me has indicado lo añado en functions.php de esta manera:

//Añadir chatbox para cada idioma
// Chatbox en español
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'es' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-38aa8"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

// Chatbox en inglés
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'en' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-f2c46"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

// Chatbox en francés
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'fr' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-f2c46"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

// Chatbox en alemán
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'de' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-f2c46"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

// Chatbox en italiano
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'it' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-f2c46"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

// Chatbox en portuges
$current_language = apply_filters( 'wpml_current_language', NULL );

// Check if the current language is the desired one
if ( $current_language === 'pt-pt' ) {
// Add your code here to be applied for the specific language
?>
<script>
function loadCCWidget(){(new window["click-connector-widget"]).mount({})}function loadCCScript(){var t=document.createElement("script");t.id="cc-widget-script",t.setAttribute("data-widget-id","186d90-f2c46"),t.type="text/javascript",t.defer=!0,t.addEventListener("load",(function(t){loadCCWidget()})),t.src="enlace oculto",document.getElementsByTagName("head")[0].appendChild(t)}loadCCScript();
</script>
<?php
}

add_action('wp_footer', 'custom_language_script');

Pero haciéndolo de esta forma me da problemas en el backoffice

noviembre 10, 2023 a las 12:09 pm #14776223

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

Eso puede ser porque estás llamando a la función add_action('wp_footer', 'custom_language_script'); de manera repetida.

Llamala soltanto una vez.

noviembre 10, 2023 a las 12:29 pm #14776381

franciscoN-9

Muchas gracias, parece que mejora pero creo que el problema es debido a que me carga el script en el backend. ¿Hay posibilidad de que solo lo cargue en el frontend?

Muchas gracias de nuevo por la ayuda

noviembre 10, 2023 a las 12:37 pm #14776491

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

En este documento, encontrarás instrucciones detalladas sobre cómo agregar JavaScript y qué solo se cargue en el front-end:
enlace oculto

No obstante, cabe señalar que esta cuestión no está directamente relacionada con WPML. Si surge algún problema específico relacionado con WPML, no dudes en ponerte en contacto con nosotros.

¡Que tengas un excelente día!

¡Que tengas un buen día!