Create a flexible international pages with a single data pool
A retrospective guide of making international pages work with magnolia cms
Why Discussing This Matter?
In my extensive career spanning over 15 years as a web designer, developer, and solution architect, I have witnessed numerous trends, hypes, and demands emerge within the industry. Clients frequently approach me or our company with requests to integrate these cutting-edge features into their daily operations. As you might have surmised, the answer in most instances is a resounding "yes", or at the very least, "we can certainly try" to steer you closer to your objectives. Please do not misinterpret this as mere rhetoric; we possess the capability. However, it is crucial to acknowledge that in many situations, we must take a step or even three backward before leaping significantly forward. Frequently, we grapple with issues related to data control, data quality, or manageability at the customer level. There are just too many people involved or the problem is too complex to oversee the whole story.
What to Anticipate
In this article we want to keep an eye on a common scenario I am facing: companies seeking to expand their online presence internationally, or those already operating on a global scale aiming to enhance their maintenance practices. Our chosen solution encompasses Magnolia as a Digital Experience Platform (DXP) for an international website. I hope that you can grasp the underlying concept, and I trust that this article will prove beneficial to your project, irrespective of whether you are utilizing the Magnolia CMS. We will not go into all the nooks and crannies and focus more on the necessary decisions you need to take.
A description of our scenario
Our fictional company, currently active in Germany, exclusively maintains a German-language website. They are in the process of transitioning to Magnolia. Their initial objective is to extend their product offerings to Switzerland, followed by a launch into the American market.
Our German company has recently acquired a Swiss counterpart that offers a new product line, which is managed by an existing independent marketing team operating within the Swiss market. The new website must be translated into English, French, and Italian.
In the subsequent phase, the German marketing department will oversee the rollout in the American market. However, they must contend with local regulations specific to the American market, which restrict the sale of certain products. Additionally, they intend to introduce Mexican Spanish as a new language.
Let's start
Before we delve into the nitty-gritty, let's touch on Magnolia. Magnolia offers a page/component-based editing experience for crafting a diverse array of websites. Each website is organized within what Magnolia terms a "page tree". To initiate a page tree, you're confronted with a fundamental question: Should you establish a separate subtree for each language, or should you opt for a different approach?
Magnolia categorizes these choices as "single tree" and "multi tree". Their documentation provides a comprehensive breakdown of the advantages and drawbacks of each approach. Personally, I find the most significant drawback of the "multi tree" (separate subtree per language) solution is that it doesn't fully leverage Magnolia's built-in translation features and creating completely separated structures for languages. While this approach might suit your specific needs and preferences, in my 13 years of experience with Magnolia, I have rarely encountered a situation where it was warranted. If you seek my advice, use the "single tree" method.
Given that we start a migration project for a single-language German webpage, the "single tree" solution aligns perfectly with our requirements. The subsequent steps about the structure of the page and all the content decision are not much necessary for the internationalization, so I will bypass that for now.
Create a new country website.
Assuming that the migration project is successfully completed, all pages with components and text in German are created, and we've had our first successful launch, it's time to get back to business. The next milestone on our journey is to establish a Swiss webpage, which introduces new objectives and considerations.
Translations
The initial question you must address is as follows: Do we need a distinct page tree for each country, in this case, Switzerland? The answer in most cases is likely to be yes. This is because Swiss marketing aims for autonomy. They intend to generate their own news, possibly featuring events exclusive to the Swiss market, and may need separate pricing information due to differences in currency.
However, if this were not the case, you could potentially use the same tree as the German website, which would greatly streamline maintenance efforts. In this scenario, you'd only need to translate the pages and repurpose them under the Swiss domain.
Given the imperative need for an independent structure, we could, theoretically, duplicate the entire page tree and translate it from our source language, German, into English, French, and Italian. We'll revisit why this isn't recommended in our specific situation, but let's consider what would occur if we did.
Magnolia itself provides a huge variety of translation features that can aid in this process. You have the option to export the entire tree as Excel, CSV, and XLIFF files, and subsequently reimport them after translation. Additionally, you can leverage one of the automated translation services such as DeepL Translator, GPTv4, Instant Translation, Google Translator, Microsoft Translator, or Translations.com. Last but not least, you can also opt for semi-automated workflows involving external agencies like AT Language Solutions or utilize the Across Integration, among other possibilities. These tools and services can significantly facilitate the translation process and enhance the efficiency of your internationalization efforts.
Independence of the country marketing team
Our Swiss marketing team want to be independent but on the other also want to get their own pages within the structure of the origin page. If we would copy the page tree like above, we are able to give permission to this tree and they are independent to do their own thing. Nice, mission accomplished!
The Swiss marketing team's desire for independence while still maintaining their presence within the structure of the original page presents an interesting challenge. As discussed earlier, duplicating the page tree would indeed grant them the autonomy they seek. By creating a separate page tree for Switzerland, you can allocate permissions and give them the freedom to manage their content and initiatives autonomously. This approach allows them to operate within their own domain, create and edit their pages, and manage their unique content, events, and pricing information as per their requirements. Nice, mission accomplished!
However, a critical concern emerges: what if the global team initiates the creation of new pages? This would end up in a manual copying process. While this may be manageable for one or two country pages, as your business scales and you need to oversee content for 20 countries, this process becomes a logistical nightmare. Furthermore, consider the scenario where an alteration is made to a single page; this change would necessitate updates in multiple languages across numerous country-specific page trees.
It's apparent that the copying process, as discussed earlier, may not be ideal upon closer examination. Thankfully, Magnolia offers a solution to address these issues. They provide a feature known as the "Live Copy Module", which establishes a dynamic connection between the original tree and its copies. With this in place, when a change is made, you can seamlessly propagate these modifications to the country pages with just a few clicks – okay, perhaps two or three clicks.
Let's rewind for a moment.
We've successfully launched our first German website. The next step involves constructing the Swiss page tree, but this time with a more intelligent approach. Our German tree will evolve into our master tree, incorporating additional languages such as English, French, and Italian. Subsequently, we create the new Swiss tree and a fresh German tree based on it. Our master tree serves as the original with all available translations. Given that the Live Copy Module establishes a connection between the master tree and all its copies, we can effortlessly overwrite the content in these copies. Additionally, we can introduce new pages into the original tree and seamlessly replicate them across all copies.
All newly created pages from the Swiss marketing team are not linked to any master tree. They are independent and will not be deleted or overwritten. The Swiss marketing team is also able to overwrite the home page and add some country specific banners. They only need to click a checkbox that this content should be protected from the copying process in the future.
It's important to note that any pages newly created by the Swiss marketing team remain unlinked to the master tree, ensuring their autonomy and safeguarding against accidental deletion or overwriting within the master tree. The Swiss marketing team is also able to overwrite the home page and add some country specific banners. They only need to check a box to protect this content from the copying process in the future.
Planning additional pages
From this point forward, the creation of new page trees can be effortlessly derived from the master tree. When expanding into the Americas region, where the goal is to incorporate Spanish, this can be seamlessly integrated into the master tree. Once all the necessary translations are in place, a new copy for the Americas region can be generated.
However, due to regulatory requirements, the removal of specific products from the page tree becomes necessary. Fortunately, since each page and component is independently attached to the master tree, it's possible to address this issue by applying protection to modify references in text on the homepage and other pages. Nonetheless, there's a potential challenge here: If you have a lot of changes within a page this becomes difficult. Here's a workaround to consider:
For instance, if you have Canadian, Mexican, and U.S. pages, these regional changes would entail multiple manual adjustments. Instead of making these regional changes within the copy pages, you can create a separate tree within the master tree, naming it something like *-americas, and execute all the changes here. As a result, you'll be well-prepared if you need to replicate these modifications across several distinct country pages. Within your copies, you simply need to rename the pages accordingly.
Conclusion
In Magnolia, you can effortlessly generate multiple pages with just a few clicks while maintaining independent teams. However, this approach is not without its drawbacks. It necessitates meticulous organization by a central team with a comprehensive understanding of the interconnected elements. The level of complexity and structural considerations is higher than the standard copy process without the Live Copy feature.
On the other hand, the manual copy process involves more hands-on work and becomes unwieldy when managing content for a significant number of countries. To determine which approach best suits your needs, refer to the chart available on Magnolia's documentation page.
What else to know?
Linking
One of the most significant impacts and complexities when working with live copy features is managing links between pages. Linking a page within the master tree to another page within the same master tree is straightforward, unless that page also exists in a live copy tree. This will be one of the most common issues your central marketing has to solve within the context of live copy features. Therefore, it makes sense to plan those interlinking structures, it also makes sense to frequently check all your pages if 404-page links are existing. Modules like the Link Mapper module become handy in these cases.
Performance
As you accumulate 10+ page trees with numerous subpages, the copy process can become time-consuming. This challenge can be efficiently managed by segmenting the copying process. It's crucial not to overburden your application during this operation, as it can impact system performance.
Worldwide Distribution
For global distribution, particularly in countries like China, expanding to additional distribution regions is often necessary. To optimize your content delivery and ensure it reaches users efficiently, you can employ Content Delivery Networks (CDNs) or establish physical public instances in strategic locations. Additionally, Magnolia offers Platform-as-a-Service (PaaS) solutions designed to handle these distribution challenges, and I encourage you to reach out to them for further assistance and guidance.