[Résolu] Exclure un dossier de la recherche de string de WPML String Translation
Ce sujet est résolu. Voici une description du problème et de la solution.
Problem: You want to scan your theme to find strings to translate, but your server blocks requests when scanning files named FileStore.php located in the /vendor/ folder of your theme. This blockage is due to ModSecurity. Solution: We recommend two alternatives to avoid this issue: 1. Generate a .po file offline using code or Poedit on a test site or sandbox environment, which you can then import via WPML String Translation. 2. Use the "auto register strings" feature at the bottom of the String Translation page. This feature will only register the necessary strings, eliminating the need to scan them.
If this solution does not apply to your case, or if it seems outdated, please open a new support ticket. We also highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. For further assistance, you can visit our support forum at WPML support forum.
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 veux scanner mon thème pour y trouver des strings à traduire. Le scan procède à de multiples requêtes sur admin-ajax.php, ce qui est normal. Simplement, mon serveur bloque les requêtes au bout d'un moment, quand le scan se fait sur des fichiers avec le nom FileStore.php. Ce fichier FileStore.php se trouve dans le dossier /vendor/ de mon thème. C'est un dossier nécessaire au fonctionnement de mon thème.
Symptômes:
Mon serveur bloque les requêtes au bout d'un moment, quand le scan se fait sur des fichiers avec le nom FileStore.php. C'est un blocage de sécurité fait par ModSecurity
Questions:
Est-ce possible d'exclure le fichier FileStore.php de la recherche de string à traduire ?
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Merci d'avoir contacté l'équipe d'assistance WPML,
Je trouve qu'il est difficile de trouver une solution pour ce type de blocage, d'autant plus que nous avons peu d'informations sur la règle de Modsecurity mise en place.
Donc avant toute chose, avez-vous une idée de la règle de Modsecurity qui est appliquée dans ce blocage ? Et s'il y a des logs de leur part.
Il est également important de mentionner qu'il existe d'autres moyens de charger et d'analyser les chaînes de caractères, vous pouvez consulter d'autres méthodes ici :
Je comprends tout à fait qu'ajouter une exception résoudrait mon problème. Cependant, comme expliqué dans mon premier message, mon offre d'hébergement ne me permet pas cela.
Donc je voudrais savoir s'il existait un moyen d'exclure des fichiers/dossiers du scan de WPML string translation ?
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Merci pour le suivi,
La seule solution à laquelle j'ai pensé est de supprimer temporairement ce fichier/dossier > d'effectuer le scan > puis de rétablir le dossier concerné
Bien sûr, je ne sais pas si c'est une solution viable car je ne sais pas comment cela pourrait affecter le site, mais si vous pensez que cela vaut la peine d'être testé, vous pouvez le faire sur un environnement staging,
Entre-temps, j'ai transmis votre demande à notre deuxième niveau afin de vérifier si nous disposons d'un autre moyen de le faire,
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Rebonjour,
J'ai reçu une réponse de notre équipe,
Le thème utilise donc cette bibliothèque : lien caché
La bibliothèque comprend un fichier FileStore.php, qui est signalé comme problématique par les règles de sécurité.
S'ils ne peuvent pas modifier les règles de sécurité, l'option la plus simple serait de supprimer temporairement le fichier qui pose problème (wp-content/themes/usq/vendor/vlucas/phpdotenv/src/Store/FileStore.php) pendant l'analyse du plugin.
Le fichier ne contient pas de chaînes traduisibles, il n'y aurait aucune conséquence à le supprimer temporairement, puis à le restaurer après l'analyse.
N'hésitez pas à nous faire savoir si cela est possible,
Utiliser la fonction "auto register strings" en bas de String Translation - elle n'enregistrera que les chaînes nécessaires et vous évitera d'avoir à les scanner.
J'ai bien entendu déjà renommé les fichiers pour le scan, l'erreur de ModSec étant assez explicite pour être contournée via cette solution. Le problème est que j'ai plusieurs fichiers FileStore.php, et cela n'est pas viable d'intervenir manuellement (et compromet potentiellement les fonctions du site le temps du scan).
L'idéal aurait été de pouvoir exclure certains dossiers, d'une part pour accélérer les scans, et d'autre part pour éviter ce genre de problème.