Wie ich Weblate behoben habe, das keine Änderungen committen konnte
Problem
In meiner Weblate-Instanz zeigte Weblate für ein Projekt mehr als 1700 ausstehende Änderungen an, und ein Klick auf Commit tat nichts (nicht einmal eine Fehlermeldung).
Die Weblate-Logs enthielten Meldungen wie diese:
weblate_logs.txt
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)Lösung
Wenn Weblate nicht committen kann, liegt es an einem von zwei Gründen:
- (1) Der Git-Baum ist irgendwie kaputt (z.B. ist ein Force-Push notwendig). Dies ist typischerweise leicht zu beheben, indem man das
Version control systemin den Einstellungen aufGit with force pushsetzt (und, falls nötig, dem Weblate-Git-Benutzer Force-Push erlaubt). - (2) Es gibt einen Syntaxfehler in einer der XLIFF-Dateien. Prüfen Sie dies, indem Sie alle XLIFF-Dateien (die Quelldatei und die übersetzten Dateien in allen Sprachen) zu einem XLIFF-Validator wie https://dev.maxprograms.com/Validation/ hochladen.
In meinem Fall war (2) das Problem: Eine der übersetzten XLIFF-Dateien enthielt einen Syntaxfehler - kein fehlendes schließendes Tag, wie von der Fehlermeldung angezeigt, sondern ein &-Zeichen, das nicht ordnungsgemäß als & escaped war. Nach dem Beheben in der Quelldatei, Committen, Pushen und Updating in Weblates Repository-Wartung konnte Weblate die Änderungen normal committen & pushen.
Check out similar posts by category:
Internationalization
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow