WPML
Status
Offen
Zugehöriges Plugin/Theme
RSVP Pro
Themen-Tags
Compatibility

Übersicht über das Problem

Wenn Sie das Plugin RSVP Pro verwenden, können Probleme auftreten, bei denen einige Strings bei der Nutzung von WPML im Frontend nicht als übersetzt angezeigt werden. Dieses Problem entsteht typischerweise dadurch, dass der eindeutige Schlüssel des Strings das vom System festgelegte Zeichenlimit überschreitet, was zu nicht übereinstimmenden Schlüsseln und unübersetzten Strings führt.

Problemumgehung

Bitte vergewissern Sie sich, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.


  • Öffnen Sie die Datei app/public/wp-content/plugins/rsvp-pro-plugin/includes/rsvp-utils.inc.php

  • Suchen Sie nach Zeile 1069.

  • Ersetzen Sie:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

  • Durch:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    
    		// WPML Workaround for compsupp-7503
    		$key_name = substr($key_name, 0, 160);
    		
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

Alle bekannten Probleme →