Hi devs,

The story
========

1) We introduced some new translations keys in 
https://github.com/xwiki/xwiki-platform/commit/5c50e2e88bb7cf592c1ecedcf0f34781e1fbc81f#diff-fffbf37334c4d7a178b13f4ccc313f86R746

That was done in XWIKI-12431 (Adapt the "rename" action for nested documents), 
i.e. in 7.2M3

2) We modified the keys in 
https://github.com/xwiki/xwiki-platform/commit/12ec17d1c486935162581d47bbf1077693c401e6

That was done in XWIKI-13067 ("Rename: Change the label to make it clear that 
both links and backlinks are updated or have 2 separate options”), i.e. in 
XWiki 8.0-rc-1, 7.4.3

3) The consequence is that all translations got broken, resulting in problems 
such as http://jira.xwiki.org/browse/XINFRA-219. However this issue reports the 
issue only for French but it’s likely that it broke the translations for other 
languages.

The learnings
===========

1) We must never change the format of existing translation keys. This is the 
equivalent of breaking an API. Instead we need to go through deprecation of 
existing keys and introduction of new keys, even though it’s a pain. 
http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HTranslationBestPractices
 would probably benefit from additional explanations too.

2) We would need a tool in the quality profile of our build/CI that would break 
the build if someone changes the format of a translation.Easiest would be a 
tool that compares the English translations on master vs the last released 
version and breaks if there’s a difference in parameter (i.e. {N} syntax).

3) We need to decide if A) we keep the current change done in XWIKI-13067 or B) 
revert them and revert/adapt the changes already brought to some translations 
keys (as it was done for FR). For this we need to evaluate the extent of the 
damage.

Any volunteer for 3)? :)

Thanks
-Vincent





Reply via email to