I noted dNN7.4.0 had some new localisation features, so I thought now would be good to see if the bug with "copy to all pages" on localized sites raised last year had been fixed. https://dnntracker.atlassian.net/browse/DNN-26183
The answer is "no" and for the record here is the result of our tests today.
When building a DNN site, we normally have standard content that appears on all pages like a "contact us" box, "footer links", header "phone number call now" etc. For simplicity we use the "copy to all pages" feature on the module settings to apply this content automatically on all existing and all new pages as they are created.
With multi-lingual sites, there is an extra degree of complexity that this "all page" content needs to be localised to each language.
The new version of DNN 7.4.0 includes new features for localization so we tested it today. We set up an out of the box vanilla DNN 7.4 site. We created 1 extra page and localised the site to 4 languages. Works like a dream.
On the new localised page we added an HTML module on the UK Default language page and applied the "copy to all pages" setting on the module. As expected the "content" was copied to ALL "UK" language pages only. We then went to the "new page" on the FR version of site. We added an HTML module with French content. Again we ticked the "copy to all pages" and as hoped the content is copied to ALL French language pages only.
By completing the task for the other 2 languages, we end up with a multilingual site, in which the footers, headers and common content appear on all pages, but translated to the correct language with no duplication or errors.
Well done DNN - all this works perfectly.
Now the bug........
If we add another "new page 2" to the site, the key page localisation works fine, but the localised "copy to all pages" content from the UK default language side of the site is automatically copied over to the other 3 non-default language pages and NONE of the non-UK language localised content with "copy to all pages" appears on ANY of the non-default localised pages - or indeed the default page.
Ideally we would want the "copy to all pages" localised UK content to appear on UK localized page of the "new page 2" only and the "copy to all pages" localised FR content to appear on FR localized page of the "new page 2 only etc.
So adding a new page, now requires deletion of 5/6 modules from a non-default language page and manually adding 16-20 localised content modules copied over from another same language page. (very time consuming and error prone)
The situation gets worse as the DNN 7.4 site becomes unstable.
If you try to "untick" the "copy to all pages " feature on any non-default language content you get a DNN error
Message:Object reference not set to an instance of an object.
InnerMessage:Object reference not set to an instance of an object.
at DotNetNuke.Entities.Tabs.TabChangeTracker.TrackModuleUncopy(ModuleInfo module, Int32 moduleVersion, Int32 originalTabId, Int32 userId)
at DotNetNuke.Entities.Modules.ModuleController.UncopyModule(Int32 tabId, Int32 moduleId, Boolean softDelete, Int32 originalTabId)
at DotNetNuke.Entities.Modules.ModuleController.DeleteAllModules(Int32 moduleId, Int32 tabId, List`1 fromTabs, Boolean softDelete, Boolean includeCurrent, Boolean deleteBaseModule)
at DotNetNuke.Modules.Admin.Modules.ModuleSettingsPage.OnUpdateClick(Object sender, EventArgs e)
Saying that the The change is applied. If you then re-recheck the box the "localised content" appears correctly across all pages in the chosen language.
Of note, having set up the above test environment and created several test pages, we decided to delete all pages and start again. Having used the "copy to all pages" feature must have caused some inner corruptions, as the "empty recycle bin" does not work. We could delete pages and modules one at a time by accessing recycle bin on a per language basis and removing the pages and modules one at a time. (the order does matter - we got there by trial and error).
My recommendation is do not use the "Copy to all Pages" feature in DNN7.4 with multi-lingual localisized sites.
If someone has a suggested workaround - would be pleased to hear solutions. We have looked at using "template" pages, but I cannot see how we get the non-default language templates to be applied under localization.