On 2008-02-12, I (AD) did an original change to Alain Désilets, English version, i.e. I added this line:
Added in English, 2008-02-12@15h00
Then, I did an original change to the French version Alain Désilets, fr, i.e. I added this line:
Ajouté en français, 2008-02-12@15h02
Note the difference in the time stamp.
The system rightly showed that both those pages needed to be updated from the other.
So I updated the English page based on the French, i.e. I added the following translation on the English side:
Added in English, 2008-02-12@15h02
Then, I updated the French page based on the English.
At that point, I expected the diff to only show the change that was made in English that needed to be reproduced in French, i.e.:
Added in English, 2008-02-12@15h00
But instead, it showed me all the changes that happened in the English page, since the last time when French and English were in Synch. In other words, it showed me both the original change that was made in English, AND the English translation of the original French. In other words, it showed me:
Added in English, 2008-02-12@15h00
Added in English, 2008-02-12@15h02
Ideally, it should only have shown the first of those two lines. But this is hard to do technically.
The reason is that the way that Tiki finds the changes to propagate from En to Fr is that it does a diff of the En version, between the most recent version, and the last version where en and Fr were flagged as being in synch.
If we don't want to show diffs that have been done in En in the course of propagating changes from Fr to En, we need to somehow:
- Identify the En versions that were created in the course of a Fr->En translation transaction. For each of those:
- Figure out the diff between that En version and the previous one.
- Remove those diffs from the diff between the current En version and the most recent En version that was in synch with Fr
- This second step is the one that would be really tricky to do.
This sounds hard, so I am putting in the backlog.