Sauter la navigation

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème :
Le client rencontre un problème critique avec le plugin Modern Events Calendar sur son site lorsque la langue du site est réglée en arabe via WPML. Une erreur fatale apparaît dans le fichier autoemails.php (ligne 72/74) avec un message d'erreur indiquant un spécificateur de format inconnu après avoir tenté de traduire la chaîne 'No %s found!' en arabe.
Solution :
Nous avons identifié que le problème provenait de la ligne de code suivante dans le fichier autoemails.php :

'edit_item'=>sprintf(esc_html__('Edit %s', 'mec'), $plural_label),

En supprimant 'Edit %s' de cette ligne, le site fonctionne désormais correctement en langue arabe. Nous recommandons au client de vérifier si cette modification résout le problème sur son site.

Si cette solution ne s'applique pas à votre cas ou semble obsolète, nous vous recommandons de consulter les problèmes connus, de vérifier la version du correctif permanent et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum de support.

0% of people find this useful.

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.

Marqué : 

Ce sujet contient 3 réponses, a 0 voix.

Dernière mise à jour par sandraB-42 Il y a 1 semaine et 5 jours.

Assisté par: Bruno Kos.

Auteur Articles
mars 12, 2025 à 5:49 am #16804918

sandraB-42

Contexte de la question:
Je rencontre un problème critique avec le plugin Modern Events Calendar sur mon site lorsque la langue du site est réglée en arabe via WPML. Lors du chargement de la langue arabe, une erreur fatale apparaît dans le fichier autoemails.php (ligne 72/74). J'ai tenté de traduire la chaîne 'No %s found!' en arabe par 'لم يتم العثور على %s!'. J'ai vidé tous les caches (WPML et site) et vérifié les fichiers de traduction. Lien vers la page où le problème peut être vu : lien caché

Symptômes:
Erreur fatale "Unknown format specifier" en langue arabe. PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in ...wp-contentpluginsmodern-events-calendarappfeaturesautoemails.php on line 74. Le plugin continue de planter avec un placeholder incorrect (affiché comme !s% ou avec d'autres caractères inattendus).

Questions:
Comment corriger l'erreur de spécificateur de format inconnu lors de la traduction en arabe ?
Pourquoi le placeholder est-il incorrect malgré la correction manuelle dans WPML String Translation ?

mars 12, 2025 à 7:53 am #16805319

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+01:00)

Bonjour,

Vous êtes sur la bonne voie avec votre débogage! Pouvez-vous essayer ceci pour voir ce que cela affiche? Cela nous aidera à identifier quel caractère ne s'affiche pas correctement et quel est exactement le résultat.

Modifiez `autoemails.php` (vers les lignes 72-74) et ajoutez ce code de débogage avant l’exécution de `sprintf()`:

error_log('Traduction en arabe : ' . __('No %s found!', 'mec'));

Le fichier `debug.log` pourrait nous donner plus d’information:

- Si `%s` apparaît correctement, le problème vient peut-être d’ailleurs.
- Si `%s` est manquant ou remplacé par des caractères inattendus (`!s%`, `؟%`, ou `�`), WPML modifie mal la traduction.

Tenez-moi au courant de ce que vous trouvez!

mars 12, 2025 à 8:12 am #16805380

sandraB-42

Bonjour,

merci pour votre réponse, voici le log après l'insertion de la ligne

Screenshot 2025-03-12 041142.png
mars 12, 2025 à 8:14 am #16805397

sandraB-42

Voici un 2eme log

Screenshot 2025-03-12 041403.png
mars 12, 2025 à 8:32 am #16805567

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+01:00)

Pouvez-vous me fournir les identifiants d'accès à WordPress et FTP?

J'ai marqué votre prochaine réponse comme privée afin que vous puissiez ajouter les informations de connexion en toute sécurité.

mars 12, 2025 à 11:42 am #16806787

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+01:00)

Je pense avoir trouvé le coupable, c'était ceci:

'edit_item'=>sprintf(esc_html__('Edit %s', 'mec'), $plural_label),

celui qui appartient au domaine «mec».

J'ai seulement supprimé « Edit %s » et lien caché fonctionne maintenant.

Pouvez-vous vérifier?

mars 12, 2025 à 7:04 pm #16808962

sandraB-42

Merci beaucoup pour votre intervention. Le site ne plante effectivement plus en arabe, et tout semble fonctionner correctement côté frontend. Cependant, lorsque je consulte les logs d’erreur sur Kinsta, je vois toujours apparaître le même message d'erreur.

Cela ressemble à la même erreur que précédemment, même si le site ne “crashe” plus visiblement en arabe. Pourriez-vous, s’il vous plaît, vérifier s’il reste une quelconque chaîne ou traduction résiduelle qui pourrait générer cet avertissement ?

Il se peut que ce soit simplement un reliquat dans les logs, mais je voulais m’assurer que tout était complètement résolu. J'ai essayé de vider le cache dans WPML et dans Kinsta pour voir si cela allait supprimer l'erreur, mais j'obtiens toujours la même erreur.

Par ailleurs, je rencontre également un problème avec la traduction des noms de champs ACF (voir la capture jointe). WPML semble traduire ces noms alors que je souhaiterais les conserver tels quels, car cette traduction casse l’affichage des éléments qui y font appel. Pourriez-vous également examiner ce point et me conseiller sur la marche à suivre pour empêcher la traduction des noms de champs ACF ?

Je vous joins une capture d’écran des logs Kinsta pour plus de clarté.

Merci encore pour votre aide et votre temps.

Screenshot 2025-03-12 130824.png
Screenshot 2025-03-12 130749.png
Screenshot 2025-03-12 130647.png
mars 12, 2025 à 7:08 pm #16809022

sandraB-42

Voici d'autre captures d'écrans des logs

Screenshot 2025-03-12 150717.png
Screenshot 2025-03-12 150704.png
mars 13, 2025 à 6:55 am #16809878

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+01:00)

Les journaux d'erreurs réapparaissent-ils après les avoir supprimés, puis en ouvrant les pages en arabe (ou toute autre langue)?

Concernant le problème avec ACF, pouvez-vous vérifier ceci?
https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/acf-multilingual-acfml-constants-and-hooks-reference/

Ou pouvez-vous m'envoyer une capture d'écran indiquant où ce champ est défini dans le back-end ? Je ne suis pas sûr de comprendre.

mars 13, 2025 à 8:14 am #16810298
sandraB-42

Les fichiers journaux d'erreurs ont été supprimés.

Concernant le problème avec ACF, je vous ai joint des captures d'écran pour illustrer la situation. Le problème rencontré est que les noms des champs ACF sont traduits automatiquement en anglais ou dans d'autres langues, alors qu'ils devraient rester en français. Lorsque je vérifie dans le builder (Bricks), je constate effectivement que les noms des champs s'affichent en anglais ou dans d'autres langues.

Actuellement, pour résoudre ce problème, je suis obligé d'aller manuellement dans chaque page traduite et remettre les noms des champs ACF dans leur version originale en français, telle qu'elle a été configurée initialement dans ACF. Ainsi, les champs redeviennent identiques à leur configuration initiale, et le fonctionnement est rétabli.

Les nouveaux fils créés par Bruno Kos et associés à celui-ci sont repris ci-dessous :

https://wpml.org/fr/forums/topic/partage-erreur-fatal-unknown-format-specifier-en-langue-arabe-modern-events-calendar/

Screenshot 2025-03-13 041340.png
Screenshot 2025-03-13 040412.png
Screenshot 2025-03-13 040218.png
Screenshot 2025-03-13 035902.png
mars 13, 2025 à 8:34 am #16810451

sandraB-42

Aussi, concernant le champ que je souhaite rendre traduisible, je n'arrive pas à modifier ce paramètre ni dans la configuration d'ACF, ni dans les paramètres de WPML. Tous les autres champs de la page se traduisent correctement, excepté celui-ci.

Screenshot 2025-03-13 043314.png
Screenshot 2025-03-13 043030.png
mars 13, 2025 à 1:59 pm #16812276

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+01:00)

J'ai divisé le ticket car il s'agit d'un problème différent (pour nos règles d'assistance).

Si vous pensez que ce problème avec les spécificateurs est résolu, veuillez marquer le ticket comme résolu.

mars 13, 2025 à 6:16 pm #16813283

sandraB-42

Bruno a été très réactif et m'a aidé à résoudre le problème rapidement. Son efficacité et son professionnalisme sont à souligner.