[Résolu] Erreur fatal "Unknown format specifier" en langue arabe – Modern Events Calendar
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 :
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.
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 ?
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+02: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.
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é.
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 :
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.