WPML
Estado
Esperando al autor
Tipo
Error
Registrado para
Complianz | GDPR/CCPA Cookie Consent 7.5.0
Plugin/tema relacionado
Complianz | GDPR/CCPA Cookie Consent
Etiquetas de temática
Compatibility

Resumen del problema

Cuando usa Complianz | GDPR/CCPA Cookie Consent en un sitio cuyo idioma predeterminado no es el inglés, algunas cadenas del plugin se registran en WPML → Traducción de cadenas con el inglés como idioma de origen.

Complianz registra algunas de las cadenas de su banner de cookies después de que WordPress las traduzca. En un sitio en español, la cadena predeterminada Accept se guarda como Aceptar, y Complianz registra Aceptar sin un idioma de origen. Entonces, WPML trata la cadena como inglés.

Esto afecta a las cadenas del banner de cookies y a las cadenas que Complianz registra a través de su propia función auxiliar cmplz_register_translation(). La base de datos de cookies del plugin no se ve afectada, porque ese código registra los valores en inglés.

Solución alternativa

Haga una copia de seguridad completa de su sitio antes de continuar.

La primera parte cambia el código del plugin, para que Complianz registre sus cadenas con el idioma del sitio. Los números de línea son de Complianz 7.5.5. Aplique el cambio de nuevo después de cada actualización de Complianz, hasta que el plugin incluya la corrección.

  • Abra el archivo …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php.
  • Busque las líneas 491 y 494.
  • Reemplace:
    icl_register_string( 'complianz', $fieldname . $key, $string );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string );
            
  • Por:
    $lang = apply_filters( 'wpml_default_language', null );
    
    icl_register_string( 'complianz', $fieldname . $key, $string, false, $lang );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname . $key, $string, false, $lang );
            
  • Abra el archivo …/wp-content/plugins/complianz-gdpr/functions.php. Este registra los títulos de los documentos, las URL y la configuración en la función cmplz_register_translation().
  • Busque las líneas 2255 y 2258.
  • Reemplace:
    icl_register_string( 'complianz', $fieldname, $string );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string );
            
  • Por:
    $lang = apply_filters( 'wpml_default_language', null );
    
    icl_register_string( 'complianz', $fieldname, $string, false, $lang );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string, false, $lang );
            
  • Guarde el banner de nuevo en Complianz → Cookie banner, para que el plugin registre las cadenas con el idioma del sitio.

El cambio de código solo ayuda a las cadenas nuevas. Las cadenas que Complianz ya registró mantienen el inglés como su idioma de origen, así que corríjalas manualmente:

  • Vaya a WPML → Traducción de cadenas.
  • En Select strings within domain, elija el dominio complianz.
  • Seleccione las cadenas que muestran el idioma incorrecto.
  • Abra Change the language of selected strings en la parte inferior de la página.
  • Elija el idioma real de las cadenas, por ejemplo, español, y aplique el cambio.
  • Traduzca las cadenas a sus idiomas secundarios.

Todos los problemas conocidos →