- 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.