Saltar al contenido Saltar a la barra lateral

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

Problema:
Si estás utilizando el plugin Super Store Finder y has seguido las instrucciones de traducción de cadenas con WPML, pero encuentras que las categorías de proyectos y algunos contenidos siguen apareciendo en español en la versión en inglés de tu sitio, a pesar de haber traducido todas las cadenas.
Solución:
Podemos ofrecerte un truco temporal que consiste en agregar un código específico al archivo funciones.php de tu tema. Este código te permitirá definir manualmente las traducciones para cada cadena de texto dentro de un array y aplicarlas según el idioma actual. Aquí te mostramos cómo hacerlo:

function custom_translate_single_string($ctrsing, $domain, $name) {<br />    $projects = [<br />        'Alta velocidad' => ['en' => 'High Speed'],<br />        'Ferrocarril convencional' => ['en' => 'Train'],<br />        // Añade más categorías aquí<br />    ];<br />    $current_language = apply_filters('wpml_current_language', null);<br />    if (isset($projects[$ctrsing]) && isset($projects[$ctrsing][$current_language])) {<br />        return $projects[$ctrsing][$current_language];<br />    }<br />    return $ctrsing;<br />}<br />add_filter('wpml_translate_single_string', 'custom_translate_single_string', 100, 3);

Este código debe personalizarse con las traducciones que necesitas. Sin embargo, es importante mencionar que esto es solo un truco y no una solución definitiva. El autor del plugin necesita modificar la estructura del complemento para asegurar que los códigos se ejecuten correctamente. Hemos contactado al autor del plugin y creado una errata que puedes consultar aquí: Errata de Super Store Finder.
Si esta solución no resuelve tu problema o si la información proporcionada se ha vuelto obsoleta, te recomendamos abrir un nuevo ticket de soporte. También te sugerimos revisar los problemas conocidos en https://wpml.org/known-issues/, verificar la versión de la solución permanente y confirmar que tienes instaladas las últimas versiones de los temas y plugins.

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 5 respuestas, tiene 2 voices.

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

Asistido por: Paola Mendiburu.

Autor Publicaciones
agosto 23, 2024 a las 9:37 am #16097899

javierR-61

Antecedentes del problema:
Buenos días, en la web de azvi utilizo un plugin de mapas para mostrar los proyectos. Este plugin es Super store finder. Y en este artículo enlace oculto explica como traducir cadenas en WPML para que el mapa se traduzca del español al inglés. Aunque he seguido todo al pie de la letra, he traducido desde wpml todas las cadenas, el resultado es que en la versión en inglés de la página, enlace oculto el mapa que aparece casi al final de dicha página, muestra algunos campos traducidos, pero las categorías de proyectos siguen viéndose en español, en vez de en inglés, al igual que cuando haces clik en algún proyecto, los títulos de los stores y su contenido siguen apareciendo en español.

Síntomas:
Solo algunas cadenas se han traducido al inglés, pero la mayoría, tanto categorías como contenidos de cada proyecto y su enlace siguen en español.

Preguntas:
¿Por qué algunas cadenas no se traducen al inglés a pesar de haber seguido todos los pasos?
¿Cómo puedo asegurarme de que todas las categorías y contenidos de los proyectos se traduzcan correctamente?

agosto 26, 2024 a las 7:29 am #16102872

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

Hola!

Por favor instala el plugin en el siguiente sitio de pruebas:
enlace oculto

Crea un mapa y dime si se reproduce el problema.

Gracias.

agosto 26, 2024 a las 8:49 am #16103256

javierR-61

Buenos días, recibí esta mañana el acceso al entorno de pruebas, instale plugin de mapas, configuré el plugin e importe en el mapa los proyectos.

Actualmente en entorno de pruebas no carga la id de google maps, será porque hay que configurar en search console de google los permisos para este entorno de pruebas.

Pero no pasa nada, porque no es necesario para ver si se produce el problema de traducción de cadenas.

Creé una página de mapa y está asignada como página principal. Este es enlace a la página en inglés

enlace oculto

procedí a traducir cadenas desde wpml, y vuelve a dar el mismo error, algunas cadenas las traduce sin problemas, pero si despligegas proyects, traduje la categoría agua a water y sigue apareciendo agua, por lo que da el mismo problemas.

Aunque no cargue el mapa también estoy seguro que pasa lo mismo con los contenidos de cada proyecto, tampoco se traducen aunque se cambien cadenas.

p2.jpg
p1.jpg
agosto 27, 2024 a las 6:30 am #16107497

javierR-61

Buenos días, sigo sin recibir contestación. Agradecería que me pudieseis contestar, ya que la web que da error en la traducción es la de un cliente de la agencia, y estamos a la espera de resolver esta incidencia.

Gracias

agosto 27, 2024 a las 7:33 am #16107718

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

Hola!

He visto que cuando voy a WPML --> String translation y activo la opción " Look for strings while pages are rendered" me aparecen nuevas cadenas para traducir de las categorías pero estas solo aparecen traducidas cuando esa opción está activada.

Lo he pasado al equipo de compatibilidad para que investigue el problema.

Te aviso en cuanto tenga noticias.

agosto 29, 2024 a las 3:42 pm #16121107

Paola Mendiburu
Partidario de WPML desde 11/2020

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

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

Hola!

He obtenido respuesta del equipo de compatibilidad.

Han creado un truco que se puede usar solo para mostrar las cadenas traducidas en el front-end.

Se puede agregar al archivo funciones.php:

function custom_translate_single_string($ctrsing, $domain, $name) {
    // Define the array of projects and translations
    $projects = [
        'Alta velocidad' => [
            'en' => 'High Speed',
            'pt-br' => 'Alta Velocidade'
        ],
        'Ferrocarril convencional' => [
            'en' => 'Train',
            'pt-br' => 'Trem Convencional'
        ],
        'Carreteras' => [
            'en' => 'Roads',
            'pt-br' => 'Estradas'
        ],
        'Aeropuertos' => [
            'en' => 'Airports',
            'pt-br' => 'Aeroportos'
        ],
        'Obras urbanas' => [
            'en' => 'Urban Works',
            'pt-br' => 'Obras Urbanas'
        ],
        'Edificación' => [
            'en' => 'Building',
            'pt-br' => 'Edificação'
        ],
        'Parque de maquinaria' => [
            'en' => 'Machinery Park',
            'pt-br' => 'Parque de Máquinas'
        ],
        'Mantenimiento' => [
            'en' => 'Maintenance',
            'pt-br' => 'Manutenção'
        ],
        'Túneles' => [
            'en' => 'Tunnels',
            'pt-br' => 'Túneis'
        ],
        'Transporte urbano' => [
            'en' => 'Urban Transport',
            'pt-br' => 'Transporte Urbano'
        ],
        'Conservación carreteras' => [
            'en' => 'Road Maintenance',
            'pt-br' => 'Manutenção de Estradas'
        ],
        'Medioambientales' => [
            'en' => 'Environmental',
            'pt-br' => 'Ambiental'
        ],
        'Puentes y viaductos' => [
            'en' => 'Bridges and Viaducts',
            'pt-br' => 'Pontes e Viadutos'
        ],
        'Agua' => [
            'en' => 'Water',
            'pt-br' => 'Água'
        ],
        'Puertos ES' => [
            'en' => 'Ports',
            'pt-br' => 'Portos'
        ]
    ];

    // Get the current language from WPML
    $current_language = apply_filters('wpml_current_language', null);

    // Check if $ctrsing exists in the projects array
    if (isset($projects[$ctrsing])) {

        // Check if the current language translation exists
        if (isset($projects[$ctrsing][$current_language])) {
            // Return the translated string for the current language
            return $projects[$ctrsing][$current_language];
        }
    }

    // Return the original string if no translation is found
    return $ctrsing;
}

// Hook the function to wpml_translate_single_string and set it to run last
add_filter('wpml_translate_single_string', 'custom_translate_single_string', 100, 3);

Básicamente, deberás codificar las traducciones dentro de $projects, dentro de la clave del idioma correspondiente.

Se ha agreado el idioma pt-br allí solo como referencia, en caso de que tengás más idiomas.

Pero ten en cuenta que esto es solo un truco y no una solución.

Para solucionar el problema, el autor debe modificar la estructura del complemento para que los códigos se ejecuten en los hooks correctos, asegurando así el orden de ejecución correcto.

El equipo de compatibilidad se ha puesto en contacto con el autor del plugin y se ha creado esta errata:
https://wpml.org/errata/super-store-finder-wordpress-store-categories-are-not-translated-in-map-search-box/