We are experiencing issues where content that has been translated by I Can Localize translators and then returned to site and revised locally, is suddenly being changed back to the original translation.

The change is saved as a new revision with content equal to the original translation revision.

The new revisions are triggered when cron runs and are seemingly random, some translated content is affected, others are not. Is it possible that the I Can Localize server is resending the original translations as an error thus overwriting the changes?

Can you explain how that process works... does cron trigger a call to ICL for translations?

Comments

brucepearson’s picture

I had a look at your problem. Usually when translations are received from ICL by the translation management module they are marked as complete. After that they shouldn't be overwritten. When cron is run, the Drupal module will check with ICanLocalize's server for any translations that are newly received from translators. It then fetches those, creates or updates the translation and marks them as complete.

If later one of the ICanLocalize translators updates a translation then it will be marked as received on our server and will be fetched on the next cron cycle. If the translation has already been updated locally then it would be overwritten.

This can be fixed by modifying the module so that when a translation is received from ICanLocalize it will check to make sure it's the last translation job for that node before updating the translation. This will work as long as the translations are done via the translation management system. It wont stop the case of translation being overwritten if the translations are updated by directly editing the translated node.

I'll go ahead and fix this today.

brucepearson’s picture

Status: Active » Fixed

This is now fixed.

It now makes sure that the translation job is the latest translation job for a node before updating the translated node.

jamesrutherford’s picture

Bruce,

Thanks for the quick response and action. After a lot of analysis on our end it seems like the issue is caused by translation jobs returning and overwriting local translations that have happened since the original job was sent out.

We did however, try and send only certain fields for translation, and yet it seems like the entire node is overwritten. Is this the expected functionality?

Also I was hoping to clarify my understanding of the change you made.

Are you saying that if a translation is marked as complete, then edited locally, then updated by the translator, the new work done by the translator will be ignored in favor of the local version?

Thanks and Regards,

James

brucepearson’s picture

Whenever a translation job is returned, all the fields are overwritten. This is the expected functionality.

The change that I made will stop old translation jobs from overwriting newer translation jobs.

For example:

1) you send a node for translation to ICanLocalize
2) The node is translated and returned
3) You send an update to a local translator
4) They translate using the Drupal translation editor

Now if the original ICanLocalize translator decides to further update the original translation job and returns it to Drupal, the translation module wont accept the translation job because it would overwrite the translation done in steps 3 and 4.

The change wont stop the translated content from being overwritten if the node is modified outside the Translation Management system using the Drupal node editor.

I hope this is clearer.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.