Soporte » Plugins y Hacks » Polylang – Traducir opciones de administración de plugin

  • Hola!

    He utilizado Polylang (versión gratuita) como complemento para traducir una web que está en dos idiomas (español e inglés) siendo el español el idioma principal. Todo funciona como esperaba.

    He comprado un plugin para tener una barra que indique a los clientes cuándo se generan los “envíos gratis” pero no he podido hacer que los mensajes de dicha barra se puedan traducir al inglés.

    Me he comunicado con el desarrollador y me ha dicho que debo buscar la manera de «traducir las opciones de administración» de su plugin porque es allí donde se reflejan dichos mensajes que necesito traducir al inglés.

    Según sus características, el plugin es completamente compatible con WPML para webs multilingües (ya que WPML tiene una opción que permite «habilitar la traducción de cadenas para las opciones de administración») e indica que está preparado para traducciones pero no es posible hacerlo con Loco Translate. El creador ha insistido en que debe ser con Polylang en mi caso por ser el plugin que utilizo para traducir las cadenas.

    He intentado la traducción incluyendo algunos parámetro en el function.php del tema hijo

    /***** Cadenas a traducir con polylang *****/
    pll_register_string(«medidor», «¡Enhorabuena, has conseguido envío gratuito para tu compra!», «mensajes»);

    Esto ha permitido que los mensajes se veas reflejados en las opciones de traducción en IDIOMAS > TRADUCCIONES DE CADENA

    Para después llamar a las traducciones de estas cadenas debo colocar otra función en page.php y woo commerce.php pero al hacerlo genera un error en dichas páginas:

    <?php echo pll__(«¡Enhorabuena, has conseguido envío gratuito para tu compra!»); ?>

    Si alguien puede ayudarme lo agradecería muchísimo.

    Un saludo,
    Jose

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 12 respuestas - de la 1 a la 12 (de un total de 12)
  • Hola @kachicamo,

    En Polylang hay un apartado que se llama ‘Traducciones de cadenas’ puedes verlo en el menú del backend de WordPress, busca ahí las cadenas que necesitas traducir.

    Si con polylang no funciona, ¿Conoces Loco Translate? Este plugin es para traducir themes y plugins, funciona bastante bien y también es gratuito.
    https://es.wordpress.org/plugins/loco-translate/

    Hola Tamara!

    Por alguna razón en las «traducciones de cadenas» no aparecen los textos que necesito traducir. Con «Loco Translate» tampoco es posible, lo tengo instalado y es muy bueno la verdad pero no me soluciona el problema.

    Como lo he indicado, el propio desarrollador del plugin me ha dicho que la solución está en buscar la forma de «traducir las opciones de administración» con Polylang, en caso de ser posible. El no tiene idea de cómo se hace usando Polylang, la solución que da es utilizar WPML pero a estas alturas de casi terminar el proyecto no quisiera complicarme más.

    Por tiempo lo que he resuelto ha sido instalar otro plugin compatible con Polylang.

    Muchas gracias por tu aporte.

    Es raro que no te funcione con Logo Translate, ¿Puedes ver las cadenas de texto para traducirlas? Seguramente salgan el idioma original del plugin y tu tengas que agregar el idioma al cual quieres traducirlo.

    ¿Cual es el plugin que estás intentando traducir?

    Totalmente raro. El plugin es este:

    https://www.enriquejros.com/plugins/medidor-envio-gratis-woocommerce/

    Solo puedo ver cadenas si incluyo en el archivo functions.php del child tema wordpress la función de Polylang:

    pll_register_string( $name, $string, $group, $multiline);

    Para luego llamar a las traducciones de estas cadenas se debe (según http://soleguia.es/polylang-cadenas-de-texto/) pasar la cadena a la función

    pll__($string);

    incluyendo el siguiente código en las páginas donde queremos que se vea la traducción que en mi caso son las páginas page.php y woocommerce.php:

    <?php echo pll__($string); ?>

    Pero cuando lo hago me genera un error en dichas páginas.

    Es como forzar dichas cadenas a que aparezcan según entiendo. :[

    Esto me indica su desarrollador:

    «Lo que tienes que traducir son las opciones de administración, y no sé cómo hace eso Polylang (Loco Translate no sirve para traducir ajustes, sólo frases literales).»

    Y así lo resuelve con WPML: https://www.enriquejros.com/wpml-traducir-opciones-administracion/

    Pero esa opción no la veo en Polylang.

    Yo personalmente intentaría investigar más con Loco Translate.

    Sino, WordPress tiene estos filtros que me han ayudado algunas veces, puedes hacer algo así:

    function change_text($replace){
    if(pll_current_language() == 'en') {
    $string = array( 'Texto para traducir' => 'Texto traducido');
    $replace = str_ireplace(array_keys($string), $string, $replace);
    }
    
    return $replace;
    }
    add_filter( 'gettext', 'change_text' );
    add_filter( 'ngettext', 'change_text' );
    • Esta respuesta fue modificada hace 1 semana, 5 días por tamarazambrana.

    Vale Tamara!

    Seguiré investigando.

    Muchas gracias de nuevo por tu valiosa ayuda. 😉

    Algo que veo en tu código son los símbolos « y ». ¿Están estos símbolos incluidos en la cadena?

    Tu version:
    pll_register_string(«medidor», «¡Enhorabuena, has conseguido envío gratuito para tu compra!», «mensajes»);

    Como yo creo que es:
    pll_register_string('medidor', '¡Enhorabuena, has conseguido envío gratuito para tu compra!', 'mensajes');

    Igual aquí:
    <?php echo pll__('¡Enhorabuena, has conseguido envío gratuito para tu compra!'); ?>

    • Esta respuesta fue modificada hace 1 semana, 5 días por tamarazambrana.

    ¡Muy buena observación!

    Estas se han pegado mal

    pll_register_string(«medidor», «¡Enhorabuena, has conseguido envío gratuito para tu compra!», «mensajes»);

    Pero las que he utilizado son así

    pll_register_string(«medidor», «¡Enhorabuena, has conseguido envío gratuito para tu compra!», «mensajes»);

    Intentaré utilizando las que me sugieres

    pll_register_string(‘medidor’, ‘¡Enhorabuena, has conseguido envío gratuito para tu compra!’, ‘mensajes’);

    Gracias!

    Se han vuelto a pegar mal. Son como dos comillas seguidas ».

    Falta de experiencia con esto de los códigos.

    Creo que el problema es que en el foro tienes que indicar que es código y no texto normal con los botones que tienes en el editor(CODE). Porque las comillas en español serían «estas» y no "estas". Pero para el código siempre son "estas" o 'estas' 🙂

    Entonces imagino que en el código las tenías bien. Buenos si encuentras alguna solución compártela con nosotros, así quizás otros puedan resolver su problema

    • Esta respuesta fue modificada hace 1 semana, 5 días por tamarazambrana.
Viendo 12 respuestas - de la 1 a la 12 (de un total de 12)
  • Debes estar registrado para responder a este debate.