- ステータス
- 開発者からの返答待ち
- タイプ
- バグ
- 報告対象
- Complianz | GDPR/CCPA Cookie Consent 7.5.0
- 関連プラグイン/テーマ
- Complianz | GDPR/CCPA Cookie Consent
- トピックタグ
- Compatibility
問題の概要
デフォルト言語が英語ではないサイトでComplianz | GDPR/CCPA Cookie Consentを使用すると、プラグインの一部の文字列が、英語を翻訳元言語としてWPML → 文字列翻訳に登録されます。
Complianzは、WordPressが翻訳した後に一部のCookieバナーの文字列を登録します。スペイン語のサイトでは、デフォルトの文字列であるAcceptがAceptarとして保存され、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を開きます。
- 文字列の実際の言語(スペイン語など)を選択し、変更を適用します。
- 文字列をセカンダリ言語に翻訳します。