Hello, there is an issue created some time ago - #178 - which I believe this PR can solve.
With WAGTAILTRANS_SYNC_TREE set to True we can end up with paths like this one: /fr/products-fr/ assuming that the fr is not the default language. This is due to synchronizing translation tree algorithm which makes use of create_translation() method from TranslatablePage. As create_translation() can be used in a different contexts it tampers the slug value trying to make it unique. With WAGTAILTRANS_SYNC_TREE set to True we don't need to append language code to slug as the translated page is going to exist in a different sub-tree than the canonical page.
After some experiments I think the synchronize_trees() signal handler is the right place for a fix. However, I'd love to get some feedback and discuss alternatives.
Hello, there is an issue created some time ago - #178 - which I believe this PR can solve.
With
WAGTAILTRANS_SYNC_TREE
set toTrue
we can end up with paths like this one:/fr/products-fr/
assuming that thefr
is not the default language. This is due to synchronizing translation tree algorithm which makes use ofcreate_translation()
method fromTranslatablePage
. Ascreate_translation()
can be used in a different contexts it tampers theslug
value trying to make it unique. WithWAGTAILTRANS_SYNC_TREE
set toTrue
we don't need to append language code to slug as the translated page is going to exist in a different sub-tree than the canonical page.After some experiments I think the
synchronize_trees()
signal handler is the right place for a fix. However, I'd love to get some feedback and discuss alternatives.