Just to understand, you want to know if you import a XLF that only has the missing fields, will it 'delete' the already translated content or just add the stuff in the XLF, correct?
Using JustDecompile, the method TranslationServiceHelper.TranslateDocument contains the logic for actually translating the document once the XLF (or whatever translation service you are using) is imported.
Here's the logic summary:
- Loops through the Target Languages from the Translation Services
- Gets the Language variation of that Tree node it's translating
- Gets the Document Fields for that Node (all document fields)
- Calls TranslationServiceHelper.TranslateFields on The document, which...
- If the Field is marked as Translate Field and is a translatable field, then...
- Get the original value of the field
- Call service.Translate on the original value, the source language, and the target language.
- Sends that translated value to the TranslateField method, where...
- If the translated value is null or empty, skips, otherwise it sets the value on the translated document and returns true.
- This true/false is then returned to the Translate field, which is passed to the parent.
- If no fields are translated, then the object is not modified, if any field is translated, it's returned true.
So based on that logic, if your XLF contains a translation that is NOT translated, and is the value of the original field, it WILL overwrite it because it doesn't know that the item is NOT translated, and just as is. However, if your XLF doesn't translate that field at all, it will not modify the field and should leave the remaining translation alone.
This is just from looking at the code, so you may want to consider temporarily setting the other fields as "Not translatable" so they are skipped, and only setting the new fields as Translatable, generate your XLF then (so it only contains the new fields), have it translated, then import.