Steps to replicate the issue (include links if applicable):
- declare a translation unit in a source page
- get the tu Id
- check for a page to transclude declaring the same Id
- in this one reuse this Id with template tunit
- now transclude this page in the source page
What happens?:
- the transcluded tunit uses now the tu Id of the source page rather than the Id of the transcluded page as it has initially.
What should have happened instead?:
- tunit of the transcluded page must not use the tu Id of the calling page but continue to use their local definition as it was on the page to transclude
Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):
Other information (browser name/version, screenshots, etc.):
- in the source we are in presence of mutiple tu Ids identical (depending on what is trancluded)
- tu Id depends on the page where it is declared so its value must be in some manner bound with the Id of the page. Maybe a hash of (pageId, tu number).
- old Id must not be reusable on the page they are not declared on (i have thus awaked zombie translations declared as 'units removed'). They can be kept for revert.
- practical case : see discussion on -> https://www.mediawiki.org/wiki/Project:Support_desk#collision_between_tunits_trancluded_and_same_id_defined_in_the_caller