WPML
ステータス
開発者からの返答待ち
タイプ
バグ
報告対象
Complianz | GDPR/CCPA Cookie Consent 7.5.0
関連プラグイン/テーマ
Complianz | GDPR/CCPA Cookie Consent
トピックタグ
Compatibility

問題の概要

デフォルト言語が英語ではないサイトでComplianz | GDPR/CCPA Cookie Consentを使用すると、プラグインの一部の文字列が、英語を翻訳元言語としてWPML → 文字列翻訳に登録されます。

Complianzは、WordPressが翻訳した後に一部のCookieバナーの文字列を登録します。スペイン語のサイトでは、デフォルトの文字列であるAcceptAceptarとして保存され、Complianzは翻訳元言語なしでAceptarを登録します。その後、WPMLはその文字列を英語として扱います。

これは、Cookieバナーの文字列と、Complianzが独自のcmplz_register_translation()ヘルパーを通じて登録する文字列に影響します。そのコードは英語の値を登録するため、プラグインのCookieデータベースには影響しません。

回避策

続行する前に、サイトの完全なバックアップを作成してください。

最初の部分ではプラグインのコードを変更し、Complianzがサイト言語で文字列を登録するようにします。行番号はComplianz 7.5.5のものです。プラグインに修正が組み込まれるまで、Complianzをアップデートするたびにこの変更を再度適用してください。

  • …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.phpファイルを開きます。
  • 491行目と494行目を探します。
  • 以下を置き換えます:
    icl_register_string( 'complianz', $fieldname . $key, $string );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string );
            
  • 次のように置き換えます:
    $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 );
            
  • …/wp-content/plugins/complianz-gdpr/functions.phpファイルを開きます。このファイルは、cmplz_register_translation()関数でドキュメントのタイトル、URL、設定を登録します。
  • 2255行目と2258行目を探します。
  • 以下を置き換えます:
    icl_register_string( 'complianz', $fieldname, $string );
    do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string );
            
  • 次のように置き換えます:
    $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 );
            
  • プラグインがサイト言語で文字列を登録するように、Complianz → Cookie bannerでバナーを再度保存します。

このコード変更は新しい文字列にのみ有効です。Complianzがすでに登録した文字列は、翻訳元言語として英語を維持するため、手動で修正します。

  • WPML → 文字列翻訳に移動します。
  • Select strings within domainで、complianzドメインを選択します。
  • 誤った言語を表示している文字列を選択します。
  • ページ下部にあるChange the language of selected stringsを開きます。
  • 文字列の実際の言語(スペイン語など)を選択し、変更を適用します。
  • 文字列をセカンダリ言語に翻訳します。

すべての既知の問題 →