WPML
Statut
Résolu
Résolu dans
0.3.0
Extension/thème associé
Ninja Forms
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Ninja Forms propose une nouvelle fonctionnalité appelée Champs répétables. Cette fonctionnalité n’est pas encore disponible pour la traduction dans notre Éditeur de traduction avancé. Cependant, nous prévoyons de la rendre compatible prochainement.

Solution de contournement


  • Veuillez faire une sauvegarde complète de votre site avant de continuer.

  • Maintenant que votre sauvegarde est prête, nous devons modifier 2 fichiers :

  • Ouvrez /wp-content/plugins/wpml-ninja-forms/classes/Hooks/NinjaForms/Strings.php.

  • Recherchez la ligne 76 :
    $package->registerField( $field->get_id(), $field->get_settings() );


  • Et juste après, ajoutez :
    				// Register repeater fields strings
    				if ( 'repeater' === $field->get_settings( 'type' ) && $field->get_settings()['fields'] ) {
    					foreach ( $field->get_settings()['fields'] as $subfield) {
    						$package->registerField( $subfield['id'], $subfield );
    					}
    
    				}


  • Ensuite, ouvrez /wp-content/plugins/wpml-ninja-forms/vendor/wpml/forms/classes/Translation/Package.php.

  • Recherchez la ligne 314 :
    return $data;


  • Et juste avant, ajoutez :
    		// Translate repeater fields strings
    		if ( $data['fields'] ) {
    			foreach ( $data['fields'] as $key => $field ) {
    				$forTranslation = $this->fieldProperties->forTranslation( $field );
    				foreach ( $forTranslation as $propertyName => $translationSettings ) {
    					$stringValue = $this->fieldProperties->getValue( $field, $propertyName );
    					if ( $stringValue ) {
    						if ( $this->isArray( $stringValue, $translationSettings ) ) {
    							$field[ $propertyName ] = $this->translateOptions(
    								$stringValue,
    								$field['id'],
    								$translationSettings
    							);
    						} else {
    							$data['fields'][$key][$propertyName] = $this->translateString(
    								$stringValue,
    								$field['id'],
    								$propertyName
    							);
    						}
    					}
    				}
    			}
    		}

Prochaines étapes

Nous résoudrons ce problème dans la prochaine version de Ninja Forms Multilingual.

Toutes les anomalies connues →