WPML
Status
Aguardando o autor
Tipo
Bug
Relatado para
Complianz | GDPR/CCPA Cookie Consent 7.5.0
Plugin/tema relacionado
Complianz | GDPR/CCPA Cookie Consent
Tags de tópico
Compatibility

Visão geral do problema

Quando você usa o Complianz | GDPR/CCPA Cookie Consent em um site cujo idioma padrão não é o inglês, algumas strings do plugin são registradas em WPML → Tradução de Strings com o inglês como idioma de origem.

O Complianz registra algumas strings do seu banner de cookies depois que o WordPress as traduz. Em um site em espanhol, a string padrão Accept é salva como Aceptar, e o Complianz registra Aceptar sem um idioma de origem. O WPML então trata a string como inglês.

Isso afeta as strings do banner de cookies e as strings que o Complianz registra através do seu próprio helper cmplz_register_translation(). O banco de dados de cookies do plugin não é afetado, porque esse código registra os valores em inglês.

Solução alternativa

Faça um backup completo do seu site antes de continuar.

A primeira parte altera o código do plugin, para que o Complianz registre suas strings no idioma do site. Os números das linhas são do Complianz 7.5.5. Aplique a alteração novamente após cada atualização do Complianz, até que o plugin lance a correção.

  • Abra o arquivo …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php.
  • Procure pelas linhas 491 e 494.
  • Substitua:
    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 o arquivo …/wp-content/plugins/complianz-gdpr/functions.php. Ele registra os títulos dos documentos, os URLs e as configurações na função cmplz_register_translation().
  • Procure pelas linhas 2255 e 2258.
  • Substitua:
    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 );
            
  • Salve o banner novamente em Complianz → Cookie banner, para que o plugin registre as strings no idioma do site.

A alteração no código ajuda apenas as novas strings. As strings que o Complianz já registrou mantêm o inglês como seu idioma de origem, portanto, corrija-as manualmente:

  • Vá para WPML → Tradução de Strings.
  • Em Select strings within domain, escolha o domínio complianz.
  • Selecione as strings que mostram o idioma errado.
  • Abra Change the language of selected strings na parte inferior da página.
  • Escolha o idioma real das strings, por exemplo, espanhol, e aplique a alteração.
  • Traduza as strings para os seus idiomas secundários.

Todos os problemas conhecidos →