Localization Matrix app: Straightforward content localization for 20+ locales

Alex Korzhenko
Flo Health UK
Published in
8 min readFeb 15, 2024
Straightforward content localization for 20+ locales

By Aliaksandr Karzhenka, a Product Manager, and Yan Lobau, a Software Engineer.

Content localization is critical for businesses looking to reach a global audience and new markets, and this can be a complex process. One common issue is the need for more visibility of the content localization status, which may lead to mistakes and delays in content delivery.

In this article, we’ll explore the challenges we’ve faced in localizing the content of the Flo app to 20+ locales and share the solutions that helped us overcome them.

Main points

  • Content at Flo is a complex composite structure of hundreds of unique content types stored in the Contentful content management system (CMS).
  • Sometimes, a standard CMS’s capabilities must be improved for optimal content localization and delivery.
  • We’ve implemented a custom application for the Contentful CMS — The Localization Matrix, which significantly streamlines the localization process.
  • The Localization Matrix is open-sourced and publicly available for any organization that uses Contentful CMS.

How do we localize content?

The content creation and localization process at Flo Health involves the following steps:

  1. Content development and medical review: Initially, content editors develop the content in English, which medical experts review to ensure accuracy and compliance. This content is handed over to the release managers.
  2. Structuring content for localization: We store our content — Stories, articles, intent pages (check out our recent article about content modelling), and their components — in the Contentful CMS. The release managers organize the content into a structured format suitable for backend services and localization. Once this is done, they inform the localization team that the content is ready for translation.
  3. Localization strategy decision: The localization team then decides on the translation method, whether machine or human translation. The locale, content type and placement, popularity, subject matter, and associated risks influence this decision.
  4. Human translation process: Flo Health utilizes the Phrase translation management system (TMS) for human translation. The localization team creates a new translation project and imports the localized strings using a Contentful-Phrase connector. An integration plug-in is employed to streamline workflows, reducing manual tasks like copy-pasting. This plug-in facilitates the import and export of localized strings between the Contentful CMS and the Phrase TMS.
  5. Machine translation process: A custom pipeline is used to export localized strings from the content items and translate them using a selected translation engine. Custom glossaries enhance accuracy, and the translation engines are trained with translation memory data derived from previous human translations.
  6. Finalization and release preparation: After the localization is completed, the release managers perform a thorough check to ensure consistency in the localization. They then prepare the content for final release.

For instance, let’s consider a content type, “Story” similar to Instagram Stories. A “Story” is displayed on the app’s home screen and typically consists of several slides.

Story example at Flo App

However, the structure of the Story content type in Contentful is more complex. For instance, consider the following:

Story type content structure

This is how we compose a single Story out of multiple components, each representing a localizable piece of content. To roll out a single story to numerous languages, we sometimes localize dozens of entries in the dependency chain. And we have thousands of Stories, not to mention other content types.

Localization management challenges

Every entry/asset has an option on the sidebar to select additional locales to the default one. Setting the locales (translations on the user interface) duplicates every localizable field on the entry/asset view. Contentful presents the content per locale linearly, one following another. For instance, here’s how the “title” field of the article looks when selecting multiple locales:

Default Contentful UI

And here is where the challenges come in:

  • The default interface of Contentful is designed for simple and basic use cases. However, it may not be the most convenient option when dealing with many interconnected content entities across multiple locales. When working with more than five languages and a complex content structure, it’s hard to track which content has been localized and which is still pending. This can make it challenging to ensure that all content is accurately translated and localized across all languages and regions.
  • Missing strings and errors may occur when importing translated content from a translation management system or machine translation pipeline. This can result in inaccurate or incomplete translations. Additionally, network errors can corrupt the localisation data during the import process when working with a third-party TMS. This can cause delays in the localization process and content release, requiring additional manual effort to detect and fix the issues.
  • Technical fields: Backend services often use special “technical” fields (e.g., regular expressions) that should not be translated or localized. This requires additional attention and caution during the localization process to ensure these fields are not modified.
  • Managing different versions of assets and images used in various channels, formats, and content entries can be complex. It involves monitoring localized versions of the same asset across different languages and regions. This process can be time-consuming and error-prone, leading to inconsistencies in the final product.

Custom Contentful app

To address the issues above, we developed a custom application (an extension to Contentful CMS). This application presents a content localization status as a matrix, displaying all the localizable content fields, crossing the supported locales. Users can easily see which content has been localized and which is still pending localization.

For instance, if we take the example of an “article” type, the matrix will show that the article’s title has been translated into Spanish, French, and German, and the rest of the content is only available in English. This visibility helps to identify gaps and inconsistencies in content localization, making it easier to manage and improve the localization process.

Localization Matrix App

After a few feedback cycles with the localization and release managers, we’ve updated the Matrix app with add-ons, helping to address specific use cases when working with our content, such as:

  • Content preview allows easy monitoring of localized versions of assets, images, and texts. Teams can quickly identify issues or inconsistencies.
Assets preview
  • Display of referenced content: The Matrix displays all the referenced content entries within the complex content pieces and their localization status. This helps to ensure that all content parts are translated and localized correctly across all languages and regions. It is especially crucial for avoiding cases with partially localized content.
Fields preview
  • Filters for data display:

1. Language locales: The Flo app supports more than 20 locales, and it can be overwhelming to display all of them in the matrix-style interface. The feature gives a flexible setting for selecting specific locales to be more focused on the languages and regions that are most relevant to them. Also, the filter has locale presets for the top six or ten locales.

2. Filtering-out fields: The feature allows filtering out the fields (rows) by certain conditions (all localized, all non-localized for selected locales). This helps when we quickly check if the content piece was fully translated by displaying the missing pieces.

Filters for data display

So how did it help?

According to the feedback from the release managers, the Localization Matrix helped them identify over 100 production errors, previously undetected, just in the first month. By providing a clear and organized view of the localization status of content, the application makes it easier to spot missing translations and inconsistencies in localized content.

Additionally, the Localization Matrix helped to prevent new errors during the localization process. By filtering the locales, teams may better prioritize the languages and regions to focus on, reducing the risk of partially localized content. This helps minimize the risk of errors and improves the overall product quality.

Finally, the application helped to speed up the localization process. By showing all referenced content entries for complex content pieces, teams could more easily navigate and identify related content that needed to be localized. The ability to filter fields (rows) to show only the difference between locales also reduced the amount of time and effort required to check and update translations, further improving efficiency.

Sharing the tool with the community

At Flo, we believe in the power of Open Source. The less time engineers spend implementing similar behaviours, the more time they will have for innovation, pushing the world toward a better future. We have already shared several tools and libraries with the community, and our latest contribution is the Localization Matrix app for Contentful.

ℹ️ By the way, you can see the list of Localization Matrix features in the repository. We decided to share the Localization Matrix because the challenges we face in content localization are not unique to Flo but could be expected in many organizations that use Contentful. By sharing our solution, we aim to help others overcome similar obstacles.

Besides, Open Source projects thrive on community collaboration. We are eager to see how others use, adapt, and improve the Localization Matrix, bringing in new perspectives and ideas we may have yet to consider.

How can your product benefit?

  • Ease of localization process: Other organizations can use the Localization Matrix to simplify and streamline their content localization processes, just as we did.
  • Reducing errors and improving quality: The tool’s ability to provide a clear visualization of localization status helps reduce errors and improve the overall quality of localized content.
  • Customization and extension: Since it’s open-sourced, other developers can customize and extend the Localization Matrix to fit their specific needs, making it even more versatile.

The Localization Matrix app is available on our GitHub repository. We encourage developers to try it out, report any issues, suggest improvements, or even contribute code. Your input will make this tool even more effective for the Contentful community.

--

--