We have a site that has relied heavily on the use of matrix fields to act as a content builder for several pages on our site. We are now in the process of localizing the content, and have set up language based site groups to utilize group based translation methods for fields in the matrix.
This has worked fine, and would work if the content remained consistent throughout the various sites, but we're now seeing the need to allow for some site specific content in certain places. A product may not be available in a certain region – so promoting it doesn't make sense, or a holiday may only be relevant in the US. Whatever the case may be, matrix fields and their translation methods are proving to be limiting.
We want to reduce the amount of redundant content that needs to be managed (via language based site groups) while allowing content to be flexible enough to target specific regions.
We have an idea on how to solve this, but want to get some feedback and see if there are any good alternatives.
Let's say we have a Homepage single entry. We want the US market to display a unique content block in addition to what other English sites show.
We could create a section called Content Blocks that has an entry type that matches our current matrix blocks.
Each entry in Content Blocks would be pulled into the Homepage entry via an entries field. The entries field would act as our list of components – much like in a matrix field.
The default state of the Content Blocks entry would be disabled for each site, and translations would be based on site groups (language). Entries added to a site's Homepage entries field would display each related entry (assuming it was enabled for a given site), allowing translations to be made before content is published.
This would require some additional planning from content authors, but could prove to be more flexible and resilient. Content Blocks could be reused between various sections, or toggled between as different holidays occur.
I can also see this getting out of control with many unused or poorly named entries living in Content Blocks.
As an added bonus, this setup might allow us to integrate with a 3rd party translation service to import content translations. Something that seemed impossible when dealing with matrix blocks.
- Are there any unforeseen issues with a setup like this? Specifically thinking about performance.
- Are there better alternatives or something that we're not thinking about?