How TYPO3 localized their content management system and 100+ extensions with Crowdin

8 mins read

How TYPO3 Powers Localization with Crowdin

TYPO3 is a free and open-source, professional CMS offering services and solutions for the whole team across industries, organizations sizes, and use cases. TYPO3 is written in PHP with a lot of plugins created by their community. By utilizing a combination of translation memory pre-translation, community translation, and content delivery automation via GitHub integration, TYPO3 has been able to scale its growth while and localize their content management system and 100+ extensions.

In this article, we’ll cover the story of how TYPO3 uses Crowdin to grow their business.

TYPO3: A Professional, Flexible, Open-Source CMS

TYPO3 is a free and open-source, professional CMS offering services and solutions for the whole team across industries, organizations sizes, and use cases. TYPO3 is written in PHP with a lot of plugins created by their community.

In November 2004, some members of the TYPO3 community, including Kasper Skårhøj and other long-term contributors, founded a not-for-profit organization called the TYPO3 Association. Its main goal is to support core development on a more steady basis and improve the transparency and efficiency of various aspects of the TYPO3 project. The work of the TYPO3 Association is funded by members and sponsors.

First Experience with Localization and Decision to Migrate from Pootle

The multilingual backend has always been a great benefit of TYPO3. Since 2011 the TYPO3 team has used open-source software on their translation server based on pootle. This way, they provided translators with an interface to translate labels of TYPO3 core and extensions.

For a long time, it fulfilled the basic requirements regarding translating. However, the platform was never really used by a lot of extensions nor by a lot of people. Users started expecting a better UI, more flexibility, and features like a shared translation memory. Furthermore, there was no integration in the developer workflow, which means that translations need to be done after a release instead of running in parallel with development.

Many contributors and team members weren’t happy with their translation software at the time - Pootle, its functionality and its flexibility, so Georg started looking for other solutions.

Migrating TYPO3 Localization to Crowdin

A friend of Georg recommended testing Crowdin, as he had experience in using the platform for android app translations and liked the tool. So Georg began investigating Crowdin. As the first proof of concept, he selected 2 plugins he maintained and began the localization process in Crowdin.

“This worked out great, and I began my first experiments with the integration of TYPO3 Core itself. I was overwhelmed by the friendliness of the support and the superfast feedback. Features (like automated content delivery, easier context providing) I needed within Crowdin itself have been provided to ease the integration.” Georg Ringer, developer at TYPO3

Localize your product with Crowdin

Main Benefits of the Translation Process in Crowdin

Thanks to Crowdin integrations (Crowdin Store), API, and features like translation memory (TM), Import & Export, TYPO3 was able to quickly migrate their translation process, and volunteers and continue localization.

The following benefits have been identified very quickly:

User-Friendly Design and Familiar Features

“The UI & UX follow current web applications you already know and are familiar with. You will find well-known and used features like login via Google/GitHub, and it is easy to use.” Georg Ringer, developer at TYPO3

Easy content export/import

“Works great. I currently also use an API to fetch translations from the translation server and upload that to Crowdin. You can also drop a zip file with the XLIFF files at Crowdin.” Georg Ringer, developer at TYPO3

You can manually upload files for localization using various supported formats like XML, YAML, PHP, JSON, and others. More information about file management on Crowdin is available in our documentation.

Support for Github Projects, Allowing to Prepare the Translation of Upcoming Releases

“Works out of the box. Crowdin pushes translations as pull requests.” Georg Ringer, developer at TYPO3

Crowdin integrates with GitHub, GitLab, Azure Repos, Bitbucket and other development tools available on Crowdin Store. TYPO3 is using GitHub integration. This means that all the new texts from pull requests are sent to localization at no time, and all the translations are downloaded automatically and available for review at GitHub or another repo. All this is synchronized and automated.

Localize your product with Crowdin

Translate the Same Text Used in Different Product Pages Only Once

Crowdin automatically creates a translation memory (TM) for each project. . Every translation created in the project is automatically added to the project TM. Based on a comparison between the source string and TM segments, Crowdin calculates the TM match. You can not only see the similar strings translated earlier as suggestions, but enable translation memory auto-substitution and run pre-translation by TM.

Inline Translation Handling and In-Context Tool

“While translating the text into a different language, it is sometimes very handy to know how and where this string is actually used in the backend. By using the inline translation handling of Crowdin, it is actually possible to translate TYPO3 in the backend.” Georg Ringer, developer at TYPO3

Crowdin In-Context is used to translate web applications. With its help, you can provide an overlay for the app or extension and let translators work in real-time. In-context localization is connected with the actual project created in Crowdin, which contains the translatable files. Translators work as if in the real app interface and can preview the translations they make.

Crowdin in-context tool

Providing Screenshots to Translators and Getting Higher Quality Localization

Along with the in-context feature, TYPO3 translators use screenshots and tag the source strings to them. This way, thy get additional context for some strings that aren’t really easy to find in the UI or alike.

If a string is tagged on a particular screenshot, translators will see it in the context field under the source string in the Editor. To tag screenshots, you will need to have both source files and screenshots uploaded to your Crowdin project. Afterward, you can tag each screenshot, either automatically or manually. Learn more about using screenshots in Crowdin projects.

Crowdin Auto-Tag feature

Crowdin Brings TYPO3 Closer to Its Users Through Localization

Since switching to Crowdin three years ago, TYPO3 gives its team the necessary workflows to collaborate and quickly solve translation issues. Through localization, TYPO3 solution and its numerous extensions become closer to its customers.

Today, TYPO3 continues to use Crowdin to collaborate successfully, integrate localization into development— and localize its software to more than 30 languages and have 500 000+ installations.

Localize your product with Crowdin

Automate content updates, boost team collaboration, and reach new markets faster.
Diana Voroniak

Previous Post
How to Translate App Content for Different Platforms
Next Post
Tutorial on Python i18n: How to Use Gettext Python Module