Currently, many organizations are moving towards a consolidated digital foundation with the aim of establishing a centralized platform for content management along with assets management., and so on. This helps manage the content in multiple languages and countries. Adobe Experience Manager Multi Site Manager (AEM MSM) provides some level of flexibility to empower organizations to create sites for different countries, markets, and regions with the same site content or specific content. The Adobe AEM content management capabilities allow organizations to create language copy for the market’s language specific content to display it in the native language. However, integration with different translation engines helps reproduce content in native languages.
Adobe Experience Manager Multi-Site Manager (AEM MSM) provides flexibility to empower organizations to create sites for different countries, markets, and regions with the same site content or specific content.
The Adobe AEM content management capabilities allow organizations to create language copy for the market’s language specific content to display it in the native language.
Business Need: Nowadays, businesses fall back on non-translated content until it has come back from the translation agency or has been authorized through AEM approval workflows. This ensures that new content pages and assets are available on inherited sites for end users and helps avoid 404 errors. The AEM OOB feature does not provide this facility. However, HCL has deployed a solution for OOB implementation to introduce this feature and satisfy business needs.
HCL has deployed a solution for Out-of-the-Box (OOTB) implementation to introduce content in native languages and fulfill business needs.
MSM Content Fallback Approach: To provide a solution to business requirements, a Sling Rewriter is used to check HREF links for content pages along with assets links. For any asset link or HREF link that does not exist in publishing environment, a fallback link is created to its English language content or mapped language. The fallback link can also be in a different language. For example, Mexican Spanish can fallback to Spanish until language-specific content pages and digital asset management (DAM) assets are available in the AEM publish environment. With this approach, images can also fallback to its mapped fallback language. The idea here is to display language-specific content if required or to display English or a mapped fallback language content on the page.
The following diagram illustrates the MSM fallback:
MSM fallback capability provides the following benefits when developed in Adobe AEM CMS:
- With multi-site management fallback, business teams do not need to create a content page in the native language to display it in the fallback language. For example, using US English until the native language page comes back from translation. The link directing to the page, which don’t exist will automatically redirect to the fallback language page.
- Keeps the repository size low and helps avoid having duplicate assets for different languages, as one language can fallback to another language with assets, including images.
- Multi-site management fallback will allow business teams to select content from HREF links and DAM assets, including images they want to fallback to a different language by switching off configuration for the same.
- IT team will not be involved in creating the fallback mapping for different languages, saving time for the business team by allowing them to create fallback mapping by themselves, through configuration.
- Allows the business team to map any language to fallback content, including DAM assets (in various formats like pdf, docs, etc.) and images.
- This will not affect the performance as the HTML will be generated as soon as the page is created from the AEM publish environment and will be cached on the web server (dispatcher) level along with CDN (Content Delivery Network)
Multi-Site Manager (MSM) Custom Fallback Sling Rewriter
To achieve the required MSM fallback, a custom Sling Rewriter can be created to fallback content to its mapped language which can be in US English or any other language.
- Create a fallback mapping configuration component in AEM tool that will allow the business team to configure a language to its fallback language. This component will also have an option to select which content out of the page links and DAM assets, including images, has to fallback.
- A mapping component will have a multi-field widget that includes source language, destination language, and checkboxes to have configuration whether content links, DAM images, and DAM assets (except images) has to fallback or not.
- Create node/content/ABC/XYZ/fallback mapping and provide sling resource-like property to the component which was created in the previous step.
- Overlay/libs/CQ/core/content/nav/tools to apps and create a node of type nt:unstructured and provide HREF property to the URL created in the previous step. This will help the business team open a tool from an AEM platform. Further, it will also help them save fallback mapping configuration URL.
- Create custom ContentTransforerFactory java class which implements TransformerFactory interface.
- Within sling transformer activate method create ResourceResolver object with the help of system user, which will be needed later in class to get the different object for ex. resource or node or PageManager object.
- Create ContentTransformer.java class having a startElement method to check whether it is linked rewrite or image rewrite. This can be accomplished by verifying the configuration done by the business team with the fallback mapping configuration component. Further, create two more methods to rewrite links explained in the next step.
- Create a method with names fallbackLinks and fallbackImageLinks to rewrite links and images.
- The fallbackLinks and fallbackImageLinks methods will check the local language link or assets doesn’t exist by using resouorceResolver object then only it will fallback links.
- These methods will check page URLs to extract the current language. On the basis of that, it will use ‘getFallbackMapping’, another method which will return the destination language so that content links, image, or DAM asset links can fallback.
- Once all the required information is in place, a transformer will rewrite links on AEM pages via the fallback mapping method.