Sorry for my very very bad english !
I hope i describe correctly this bug ...
I create a content node test.
I don't active synchro for content field.
If i create node, i translate it. All it's ok.
In data base i have ( nid source 1, nid translated 2)
select nid, tnid from node;
+-----+------+
| nid | tnid |
+-----+------+
| 1 | 1 |
| 2 | 1 |
+-----+------+
Now i active Synchronize translations. I check one cckfields checkbox.I delete all content.
If i create node, i translate it. Two node is created but the translated node not referenced by the source.
With translate overview, source node appears not translated. In content i have two content (one per language)
In database i have :
select nid, tnid from node;
+-----+------+
| nid | tnid |
+-----+------+
| 1 | 0 |
| 2 | 1 |
+-----+------+
I have searched in source code and if i change in file i18nsync.module on line 185
$node->tnid = $node->translation_source->tnid ? $node->translation_source->tnid : $node->translation_source->nid;
by
$node->tnid = $node->translation_source->tnid ? $node->translation_source->nid : $node->translation_source->tnid;
All works (with synchro actived or not)
Comments
Comment #1
david lesieur commentedI have not verified if the above solution works, but there is also an issue in translate.module that's been addressed in #398428: node_load's static cache is outdated when bypassed by a direct modification to the "node" table. and that solves the problem of translated nodes not being referenced by the source when i18nsync is used.
Comment #2
david lesieur commentedIn fact, see #367118: Translation relationship broken with i18nsync.