pontoon/sync/core/translations_from_repo.py:update_db_translations() and pontoon/sync/upload.py:import_uploaded_translations() (#4511) solve the same problem (reconcile incoming translations against what's in the DB) but are architected differently. That makes it hard to tell how their behavior actually differs, and make future change to the sync code harder.
Related: translation matching in update_db_translations should compare value + properties via translations_equal() instead of matching on string in the DB query — see #4491 (comment).
See thread
pontoon/sync/core/translations_from_repo.py:update_db_translations()andpontoon/sync/upload.py:import_uploaded_translations()(#4511) solve the same problem (reconcile incoming translations against what's in the DB) but are architected differently. That makes it hard to tell how their behavior actually differs, and make future change to the sync code harder.Related: translation matching in
update_db_translationsshould compare value + properties viatranslations_equal()instead of matching on string in the DB query — see #4491 (comment).See thread