Page MenuHomePhabricator

Restore using updated content only when no user data is lost, using the original version as a fallback
Open, HighPublic

Description

When restoring an in-progress translation for which there is a new version of the source article we want to do the following:

  • If the new version of the source can be loaded without causing any data loss to the user translation, load the new version.
  • If the new version cannot be loaded without causing any data loss to the user translation, load the original version and show the warning (T168287).
    • We need to make sure that, as the warning promises, the user can restart the translation to use the newer version (knowing that this implies discarding all the work done so far).

If the user adds a paragraph to the translation, the new version may show updated contents for the original paragraph, but never remove the corresponding paragraph in the translation. If the original paragraph can no longer be mapped (e.g., it was deleted or changed significantly), then the old version (the one the user started the translation with) will be used instead to prevent the user content to disappear. In this way, the source article can be updated but only when it is safe to do so.