WPML

Übersicht über das Problem

In Visual Composer werden die Bildunterschrift und der Alt-Text von Bildern in den Elementen Single Image, Image Gallery, Image Masonry Gallery, Simple Image Slider und Feature Description nicht zur Übersetzung gesendet. Die übersetzte Seite zeigt sie in der Standardsprache an.

Problemumgehung

Nutzen Sie eine dieser Optionen:

  • Fügen Sie das Bild anstelle des Elements Single Image zusammen mit seiner Bildunterschrift und seinem Alt-Text zu einem Text Block-Element hinzu. Der Inhalt des Text-Blocks wird zur Übersetzung gesendet, einschließlich Bildunterschrift und Alt-Text.
  • Oder fügen Sie diesen Code zur Datei functions.php Ihres Themes hinzu und senden Sie die Seite dann erneut zur Übersetzung. Dadurch werden die Bildunterschrift und der Alt-Text der Bilder in Visual Composer-Elementen zur Übersetzung gesendet. Wir haben dies mit dem Element Single Image getestet:
add_filter( 'wpml_tm_translation_job_data', function ( $package ) {
	if ( empty( $package['contents']['field-vcv-pageContent-0']['data'] ) ) {
		return $package;
	}
	$page = json_decode( rawurldecode( base64_decode( $package['contents']['field-vcv-pageContent-0']['data'] ) ), true );
	foreach ( (array) ( $page['elements'] ?? [] ) as $element_id => $element ) {
		foreach ( (array) $element as $attribute => $items ) {
			if ( ! is_array( $items ) ) {
				continue;
			}
			foreach ( $items as $index => $item ) {
				foreach ( [ 'caption', 'alt' ] as $key ) {
					if ( ! is_array( $item ) || empty( $item[ $key ] ) || ! is_string( $item[ $key ] ) ) {
						continue;
					}
					$field = 'vcv-pageContentField--' . $element_id . '.' . $attribute . '.' . $index . '.' . $key;
					$package['contents'][ 'field-' . $field . '-0' ]      = [ 'translate' => 1, 'data' => base64_encode( $item[ $key ] ), 'format' => 'base64' ];
					$package['contents'][ 'field-' . $field . '-0-name' ] = [ 'translate' => 0, 'data' => $field ];
					$package['contents'][ 'field-' . $field . '-0-type' ] = [ 'translate' => 0, 'data' => 'custom_field' ];
				}
			}
		}
	}
	return $package;
}, 10 );

Alle bekannten Probleme

Benötigen Sie Hilfe bei diesem Problem?

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