| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
fuzzy_candidates was keyed by the msgid-only fuzzy key, so two messages differing only by context overwrote each other and one translation was misattached while the other silently became obsolete. Keep all candidates per key and prefer the one whose context matches the template message.
| Back | FazBrowse Home | New Git URL |
Summary
Follow-up to #1329, found while auditing the same key-handling code; this is an independent defect in update(). The fuzzy_candidates dict is keyed by the msgid-only fuzzy match key, so two messages that share a msgid but differ by context overwrite each other. When a template then renames such a msgid, one old translation is misattached to the other context and the loser silently becomes obsolete.
Testing
Reproduced with a catalog holding ("Guide", navigation) -> NavFuehrer and ("Guide", menu) -> MenuHilfe, updated from a template renaming both to "Guids": navigation received the menu translation and NavFuehrer became obsolete. Added a regression test covering both contexts plus obsolete emptiness; it fails before the fix and passes after. Full messages suite and catalog tests pass.
Checklist