Ce sujet est résolu. Voici une description du problème et de la solution.
Problème:
Si vous rencontrez des difficultés à traduire le contenu d'un champ 'description' dans un Répéteur ACF sur une page d'option, et que les modifications ne sont pas enregistrées en anglais, même après avoir suivi la documentation pour configurer WPML et ACF, nous avons identifié une solution temporaire.
Solution:
Nous avons découvert que le problème peut être contourné en commentant certaines lignes de code. Voici les étapes à suivre :
1. Commentez la ligne 39 dans le fichier
Si vous n'êtes pas à l'aise avec la modification du code, nous pouvons appliquer cette solution pour vous. Nous avons également créé une sauvegarde de votre site pour des tests supplémentaires.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
J'ai créé un Répeteur ACF dans lequel j'ai créé des champs pour gérer une galerie d'images qui est affichée sur la home page du site.
J'ai associé ce groupe de champ à une page d'option.
Cela fonctionne bien dans la langue par défaut de mon site. La galerie remonte sur ma home page.
Par contre en anglais je n'arrive pas à traduire les contenus.
Certains champs sont copiés car identiques dans les 2 langues par contre je n'arrive pas à traduire le champ "description".
Lorsque je sauvegarde en anglais le contenu du champs n'est pas enregistré.
J'ai suivi les instructions de la documentation (https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/expert-translation-option/) pour configurer WPML et ACF, j'ai augmenté également la mémoire car cela semblait être la cause du problème d'enregistrement mais sans succès.
Dans la doc on demande de mettre les groupes de champs ACF dans les settings en "Non traduisible". Si je fais cela je me retrouve avec des anciens groupes de champs FR et EN tous regroupés dans la partie FR...
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Bienvenue sur le support de WPML. Oui effectivement il est très important que le type de contenu "groupes de champs" ne soit pas traduisible.
Maintenant lorsque vous éditez votre groupe ACF dans la langue par défaut, c'est la que vous déterminez la préférence de traduction pour chaque champ. Ici on parle de la traduction de la valeur du champ. "ACF > Groupes de champs".
Les champs spéciaux "Répeteur" doivent être avec la préférence de traduction "COPIER" ensuite pour les sous champs dans ce répéteur la préférence peut être "TRADUIRE" ou "COPIER" selon les besoins.
Pour clarifier:
- Oui, si vous passez les Groupes à "Non traduisible", ils n'auront plus de langue attribuée et seront tous disponibles FR et EN mélangés. Il est préférable d'aller d'abord dans "ACF > Groupes de champs", de basculer en Anglais et d'éliminer tous les groupes avant de changer la préférence de traduction à "Non traduisible".
- Ensuite, révisez les préférences de traduction de vos champs
- Retournez sur la page d'option et suivez cette documentation pour effectuer la traduction: https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/translating-the-acf-options-page-custom-fields-with-wpml/
Dites moi si cela résout votre problème. Sinon merci de partager une capture d'écran de votre Groupe ACF où les préférences de traduction sont visibles afin que je puisse mieux comprendre votre configuration.
J'ai suivi toutes les étapes que vous m'avez demandé de faire et voilà le résultat et mes questions :
1- J'ai supprimé tous mes groupes de champs "EN" (anglais).
2 - J'ai changé le réglage des groupes de champs en Non Traduisible (voir capture ecran)
3 - J'ai réglé le répeteur sur Copier (voir capture ecran)
4 - J'ai réglé individuellement en mode Expert tous les sous champs du répéteur. J'ai mis tous mes champs en copier sauf le champ description destiné au texte en "traduisible"
5 - J'ai utilisé le sélecteur de langue pour atteindre mes écrans d'admin en FR et EN (voir capture ecran). Sur la capture écran FR on voit les champs description remplis et sur la version En les champs description vide (donc à traduire).
Problème : Lorsque que je rentre du texte dans le champ description en version En et que je clic sur Update pour sauvegarder. Au rechargement de la page le champ reste vide... J'ai ajouté
define('WP_MEMORY_LIMIT', '256M');
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
dans le wp-config car c'est ce qui semblait recommandé avec ce bug mais cela ne change rien...
Autre question : Est ce qu'il faut que je refasse tous les réglages de mes anciens groupes de champs (après la suppression de leur version anglaise ) ?
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Tout les réglages semblent correctes maintenant. À ce stade pourriez vous me donner un accès admin temporaire?
J'ai activé un champ privé pour votre prochaine réponse où vous pourrez partager ces informations de manière confidentielle avec notre support. Ne partagez pas votre propre compte admin, créez un nouveau compte que vous pourrez éliminer une fois l'assistance terminée.
IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
C'était vraiment un problème étrange.
- J'ai changé la préférence de traduction de "traduire" à "copier une fois" et les descriptions étaient bien copiées mais impossible de sauvegarder un changement.
- En fait, notre éditeur de traduction n'était pas activé sur votre site. Dans "WPML > Paramètres > Éditeur de traduction > Éditeur pour les nouvelles traductions" aucun des éditeurs était choisi!
- Une fois que je l'ai activé, j'ai pu voir que les champs personnalisés ce mettaient finalement à jour (voir capture).
- J'ai passé à nouveau le champ description sur "traduire"
- J'ai sauvegardé la page d'options FR puis j'ai basculé en EN et cette fois-ci les traductions sont sauvegardées lorsque je clique sur "Update".
PS: notez les deux premières descriptions sont différentes du FR (mon test de traduction), les autres sont identiques au FR car j'avais d'abord passé le champ sur "copier une fois". C'est donc pourquoi toutes les descriptions ont été copiées du FR vers EN. Mais vous pouvez les éditer une par une.
Aussi, pour le problème de pagination, je l'ai résolu en désactivant la pagination dans les options du champ repeater. Je vais faire des tests sur un site sandbox pour voir si c'est un problème qui arrive à cause de la pagination (dans ce cas je le reporterai aux devs).
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour Stéphane,
Mon collègue Nicolas est actuellement en congé, je vous aiderai entre temps,
Malheureusement, je n'arrive pas à comprendre à quelle pagination Nicolas et vous faites référence ? Pourriez-vous m'indiquer où je pourrais voir le problème et le reproduire ?
Je pourrais alors recréer sur l'un de nos Sandbox comme Nicolas l'a suggéré,
Il s'agit de la pagination de la galerie sur la page d'option.
lien caché
C'est normal que vous ne la trouviez pas car justement comme elle dysfonctionne en version EN elle a été désactivée sur la configuration du champ repeater (lien ci-dessous et capture écran).
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Merci de votre patience,
Nous avons trouvé une solution temporaire à ce problème,
Nos développeurs ont fait quelques tests et ont découvert que cela ne se produit pas si nous commentons la ligne suivante (39) dans app/public/wp-content/plugins/acfml/classes/strategy/repeater-sync/HooksFactory.php :
if ( $shuffled instanceof Post ) {
//$hooks[] = new PostHooks( $shuffled ) ;
} elseif ( $shuffled instanceof Term ) {
Ils ont ensuite retracé le problème jusqu'à PostHooks::displayCheckbox()** dans wp-content/plugins/acfml/classes/strategy/repeater-sync/PostHooks.php. Si nous commentons l'extrait suivant, le problème ne se produit pas :
Est ce que cela sera intégré à la prochaine mise à jour de WPML ?
Si oui ce n'est pas la peine de faire a modification car la pagination n'est utilisée qu'en Back Office et ce n'est pas gênant de ne pas l'avoir pour l'administration de ces contenus.
Nous pouvons attendre...
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Pour être honnête, nous n'avons pas de date exacte pour la publication de ce changement, mais les développeurs sont conscients de ce bug et il a déjà été signalé à notre chaîne de compatibilité.
Je pourrais suivre son évolution et voir si quelque chose a changé concernant cette mise à jour.