At this point there are some other modules that may want a chance to edit or act upon submitted translations. This is the case of i18n and l10n_update.
Instead of having these modules replacing the submission callback, which is not very clean and doesn't work well when more than one module does the same, this patch adds some hooks for them to work. Also it reworks the submission functions so they become a reusable API.
One more extra added by this patch is not submitting translations to the server when they have failed the locale saving part. By using these hooks, other modules (like i18n) may take care also that other strings (not default text group) added by them get saved but not submitted to the server.