Tuesday, 10 March 2015

SDL Studio CU8: Conflict between “Update Main Translation Memory” batch task and “Add as New Translation” function

With the cumulative update 8 for SDL Studio 2014, the batch task “Update Main Translation Memory” offers new functionalities and, above all, a new default setting which may change the way translators work.

New options for the “Update Main Translation Memory” batch task and new default setting

In the batch task prior to CU8, it was possible to “Always add new translation units” so that existing translation units with the same source segment remained in the memory and were not overwritten when the target segment differed. In this case, Studio created a duplicate translation unit.

Now, when you want to update a segment in the TM where the source is identical but the target is different in the sdlxliff file, it is possible to:
  • “Add new translation units”: a duplicate translation unit will be created. This is equivalent to the old option “Always add new translation units” in the former version.
  • Overwrite existing translation units: all existing translation units with the same source segment will be systematically deleted and replaced by the one in the sdlxliff. This option is the new default setting for the batch task.
  • Leave translation units unchanged: the batch task will only add translation units if the source segment is a new translation in the TM.
  • Keep most recent translation units: the last modification date of all existing translation units with the same source segment will be compared with each other, and the newest unit will remain in the TM. All others will be deleted.
The old behavior –only one translation unit is overwritten when duplicates are present – is no longer available. Either you overwrite all TUs which have the same source and keep only one, or don’t update any existing TUs at all.

Conflict with the “Add as New Translation” function 

The "Add as new translation" function is important when a segment should be translated differently depending on the context. Translators can store 2 different versions with the shortcut Ctrl + Shift + U. When you encounter such a segment, it will be regarded as a 99% fuzzy match because of the 1% default penalty for "Multiple Translations". The pre-translation process won't insert any translation in the sdlxliff file, and the translator will be able to consciously choose between both possibilities in the editor. The translator will get paid for this work just like for a "normal" 99% fuzzy match.

In a scenario where translators use this “Add as New Translation” function, the batch task “Update Main Translation Memory” with the default setting will delete all duplicates that were stored in the TM for the given segment. As the batch task is available to both translators and project managers, being unaware of this new setting can have big consequences for the translation resources: segments as described above will be recognized as 100% matches, which can mean not being paid for the segment. In addition, the segment may also have been potentially incorrectly pre-translated.

Here an example

File to update in the TM

TM before “Update Main Translation Memory”. It contains 2 duplicate pairs: TUs #1 and #3 have been intentionally stored by pressing Ctrl+Shift+U. TU #7 should have overwritten TU #5 but it was unexpectedly added in the TM.

With the old batch task, the TM would have remained as it is. With the new batch task and its default setting, the TM after “Update Main Translation Memory” looks like this:

Both TU #5 and TU #1 have been deleted. The deletion of TU #1 is counterproductive.

In the case you prefer not to take any risks with the deletion of important data, take time to set the default value on “Add new translation units” in your project templates.

The default setting will be re-discussed at SDL and could be changed through the cumulative update 10.