The i18nsync module synchronizes taxonomies before synchronizing fields, but during the field synchronization, it loads the node and does a node_save(). The node_load() is loaded a cached version of the node, and thus, when the node_save() is over-writing the taxonomy terms that were synchronized in the taxonomy synchronization.

You would hope that the solution would be as simple as passing the $reset flag to the node_load() of the translation nodes. However, because taxonomy caches it's values in static variables that aren't reset by node_load's reset, you have to actually manually get the current taxonomy values.

This problem appears solved in Drupal 7.x with drupal_static_reset(), but lingers in along in 5.x and 6.x.

CommentFileSizeAuthor
taxcache.patch1.03 KBdouggreen
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

greg.harvey’s picture

Edit: Just read your post properly. Sorry. You note that taxonomy.module ignores the node_load reset. I am having this problem too. Looking at your patch.

node_load($nid, NULL, TRUE) in Drupal 5.x and 6.x will reset the static. The TRUE being a variable called $reset which clears the cache. =)

Jose Reyero’s picture

Component: Experimental modules » Taxonomy
Status: Needs review » Closed (won't fix)

See #626858: Internationalization 5.x Maintenance Policy. Approaching end of support..

Also experimental modules won't be supported anymore so consider upgrading to 6.x.

jiv_e_old’s picture