WPML

Übersicht über das Problem

Wenn Sie das Plugin Gravity Forms Polls Add-On verwenden, kann es zu Problemen kommen, bei denen die Umfrageergebnisse keine übersetzten Inhalte anzeigen, wenn sie in einer anderen Sprache als der Standardsprache aufgerufen werden. Dieses Problem tritt hauptsächlich auf, wenn der Shortcode-Parameter auf mode="results" gesetzt ist. Die Übersetzungen funktionieren korrekt, wenn der Modus auf mode=”poll” gesetzt ist.

Problemumgehung

Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.

  • Öffnen Sie die Datei …/wp-content/plugins/gravityformspolls/class-gf-polls.php.
  • Suchen Sie nach Zeile 2140.
  • Direkt vor:
    $gpoll_output['summary'] .= $field['field_label'] . '</div></div>';
  • Fügen Sie diesen Code hinzu:
    // WPML Workaround for compsupp-7316 - Part I
    if ( class_exists('Sitepress') ) {
    	$wpml_question = $field['field_label'];
    	$textdomain = 'WordPress';
    	$string_name = 'WPML Workaround : '.substr($wpml_question, 0, 20);
    
    	$wpml_default_lang = apply_filters('wpml_default_language', NULL );
    	$wpml_current_lang = apply_filters( 'wpml_current_language', NULL );
    
    	if ($wpml_default_lang == $wpml_current_lang ) {
    		do_action( 'wpml_register_single_string', $textdomain, $string_name, $wpml_question );
    	}	
    	// Apply the translation to the string
    	$wpml_question = apply_filters('wpml_translate_single_string', $wpml_question , $textdomain, $string_name);
    
    	$field['field_label']   = $wpml_question;  // Replace the title
    }
  • Suchen Sie dann nach Zeile 2184.
  • Ersetzen Sie:
    $gpoll_output['summary'] .= sprintf( "<div class='gpoll_choice_wrapper'><div class='gfield_description gpoll_choice_label%s'>%s</div>", $selected_class, rgar( $input, 'label' ) );
  • Durch:
    // WPML Workaround for compsupp-7316 - Part II
    if ( class_exists('Sitepress') ) {
    	$string = rgar( $input, 'label' );
    	$textdomain = 'WordPress';
    	$string_name = 'WPML Workaround : '.substr($string, 0, 20);
    
    	$wpml_default_lang = apply_filters('wpml_default_language', NULL );
    	$wpml_current_lang = apply_filters( 'wpml_current_language', NULL );
    
    	if ($wpml_default_lang == $wpml_current_lang ) {
    		do_action( 'wpml_register_single_string', $textdomain, $string_name, $string );
    	}	
    	// Apply the translation to the string
    	$string = apply_filters('wpml_translate_single_string', $string , $textdomain, $string_name);
    
    	$wpml_poll_label   = $string;  // Replace the title
    }
    $gpoll_output['summary'] .= sprintf( "<div class='gpoll_choice_wrapper'><div class='gfield_description gpoll_choice_label%s'>%s</div>", $selected_class, $wpml_poll_label );

Alle bekannten Probleme

Benötigen Sie Hilfe bei diesem Problem?

Stellen Sie eine Support-Anfrage und wir sehen uns das gemeinsam mit Ihnen an.