Comment j'ai corrigé l'incapacité de Weblate à committer les modifications
Problème
Dans mon instance Weblate, pour un projet, Weblate affichait plus de 1700 modifications en attente et cliquer sur Commit ne faisait rien (même pas un message d’erreur).
Les logs Weblate contenaient des messages comme celui-ci :
weblate-1 | [2025-11-16 23:16:08,059: WARNING/489] Could not parse template file on commit: FileParseError: Opening and ending tag mismatch: body line 4 and trans-unit, line 1540, column 20 (<string>, line 1540)
weblate-1 | [2025-11-16 23:16:08,060: ERROR/489] myproject/ui: skipping commit due to error: Opening and ending tag mismatch: body line 4 and trans-unit, line 1540, column 20 (<string>, line 1540)Solution
Si Weblate est incapable de committer, cela est dû à l’une des deux raisons suivantes :
- (1) L’arbre git est en quelque sorte cassé (par ex. un force push est nécessaire). Cela est généralement facile à corriger en définissant le
Version control systemsurGit with force pushdans les paramètres (et, si nécessaire, en autorisant l’utilisateur git de Weblate à force push). - (2) Il y a une erreur de syntaxe dans l’un des fichiers XLIFF. Vérifiez cela en téléversant tous les fichiers XLIFF (le fichier source et les fichiers traduits dans toutes les langues) dans un validateur XLIFF tel que https://dev.maxprograms.com/Validation/.
Dans mon cas, (2) était le problème : l’un des fichiers XLIFF traduits contenait une erreur de syntaxe — non pas une balise de fermeture manquante, comme l’indiquait le message d’erreur, mais un caractère & qui n’était pas correctement échappé en &. Après avoir corrigé cela dans le fichier source, commité, poussé et fait une mise à jour (Updating) dans la maintenance du dépôt Weblate, Weblate a pu committer et pousser les modifications normalement.