Bug 22236: Translation should generate tags with consistent attribute order
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 30 Jan 2019 15:37:10 +0000 (15:37 +0000)
committerLucas Gass <lucas@bywatersolutions.com>
Tue, 12 Feb 2019 02:47:52 +0000 (02:47 +0000)
commit91f25db7b33e5c778ff62f0bdddd68bea6bf8691
treee40fad202e93b04def9892e620649a3d76244fba
parent800e3ae8eb0cc58bea1f58690ba3683e730fa764
Bug 22236: Translation should generate tags with consistent attribute order

When running misc/translator/translate, the order of attributes in the translated templates is not consistent and may vary. This is caused by the random order of hash keys in perl.

This causes things like this in run 1:
<input type="submit" class="btn" value="Plaats aanvraag" />
And this in run 2:
<input value="Plaats aanvraag" type="submit" class="btn" />
As you can see, there is actually no difference apart from the order.

When comparing the result of various translation runs, I would rather get rid of such noise and only see the real changes.

The needed change is not trivial to find, but only requires a simple addition to a sort operation in tmpl_process3.pl. The current sort only makes sure that the '/' comes at the end. We should sort the names of the keys too when this value is 0 (just meaning: no end tag symbol).

Test plan:
[1] Run a translation without this patch and set a few templates aside.
[2] Run a translation with this patch.
[3] Run a compare (diff) on the templates copied in step 1. Verify that the
    only changes are found in the sort order of attributes in html tags.

Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit fb62e8d1fc8b210a5b23801b7b8faff3280bf638)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 150de6dfe7f7d18f5b61e45b0442802c2f61fe9f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
misc/translator/tmpl_process3.pl