Problem/Motivation
The D8 content translation model allows to create per-language variants of a single entity, as opposed to the D7 model that groupes separate entities (nodes) with different languages in translation sets.
When we come to revision support, the D8 approach is less flexible than the D7 one, as it can support only per-revision translations, while the D7 approach allows to have independent revisions for each translation.
Currently revision handling with multilingual entities is not working properly, both on the functional side and on the UI side, mainly because of the inability to deal with revisions independently for each translation.
Proposed resolution
Emulate per-language revisions at UI level by tracking which translations were affected for each revision, which allows to implement per-language revision listing, reverting, and comparing.
Remaining tasks
We identified the following issues:
- Track affected revision translations by storing per-language modification timestamps:
#2428795: 'created' and 'changed' timestamps not correctly updated - When reverting a revision process only affected translations:
#2453153: [PP-1] Node revisions cannot be reverted per translation - Improve the node revision UI to support per-language revision handling:
#2465907: [PP-2] Make node revision UI work with translations - Improve concurrent editing:
#2465909: [PP-1] Implement per-language locking at entity form level - Improve (revision) write performance:
#2297817: Do not attempt field storage write when field content did not change
User interface changes
TBD
API changes
None foreseen at the moment, just additions.