The multilingual backend has always been a great benefit of TYPO3. Since 2011 the software pootle has been used on translation.typo3.org to provide translators an interface to translate labels of TYPO3 core and extensions.
Crowdin is a cloud-based solution to localize content. It offers a free plan for open source projects and is used by multiple other well known projects like Joomla! CMS, Neos, PrestaShop or Magento. The showcases can be found at https://crowdin.com/projects#showcases/cms.
The team of Crowdin is very supportive and is highly interested in providing a good solution for the TYPO3 community.
The proof of concept can be found at https://crowdin.com/project/typo3-cms.
The following benefits have been identified. The UI (User Interface) and UX (User Experience) follows current web applications you already know. You will find well known and used features like login via Google/GitHub and it is easy to use.
Support During Translations
Crowdin supports translators during the work by providing state of the art features:
- Translate the same text used in different versions and parts of your product only once
- Machine Translation - is a great assistance for human-translators. Work goes faster with translators post-editing translations suggested by machine.
- A glossary can be used to make sure specific words are properly translated (e.g. Template in german, TypoScript or SEO)
Inline Translation handling
While translating 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.
Providing Screenshots to Translators
Along with the in-context feature it is also possible to use screenshots and tag the source strings to them. This way translators get additional context for some strings that aren’t really easy to find in the ui or alike. See https://support.crowdin.com/adding-screenshots/ for more information about that.
The following screenshot is shown when the string “Edit and Advanced functions” is getting localized.
Less work on our shoulders
The current translation server has been mainly maintained by Xavier Perseguers (thanks a lot for your work) and the server team. Switching to a SaaS solution enables us to concentrate more on the actual work of translation.
The following risks are currently known:
- Extensions are not supported anymore for phase 1. Currently those are beeing migrated to semi-automatically to Crowdin
- Instead of using self-hosted software a cloud-based solution is used. As the translations are exported daily there would be nothing lost if the service won’t be some time not available anymore.
- Currently XML export format is not implemented
- Not tested enough
My plans are to support TYPO3 9 & 10 and keep the current translation packages on the server for all older installations.
Near future (Q4 2019)
I have dug into the API of Crowdin and TYPO3 and got a working solution already which covers the following parts:
- Add the source strings (the text in English) from Git to Crowdin
- Download translations from the current translation server and upload those translation at Crowdin
- Download translations from Crowdin and create zip files which can later be consumed by TYPO3 sites.
Of course those APIs need to be stabilized.
To ease the switch to a new infrastructure I propose a feature switch in TYPO3 Install Tool which would allow users to test the new packages on sites.
Far future (Q1/2 2020)
For the start it is not possible anymore to fetch also extension’s xlff files from crowdin. However the plans are to create projects for extensions. The advantages would be huge as this would allow extension authors and the translators to reuse the translation memory of TYPO3 CMS itself.
If an extension author is eager to use crowdin already, it is of course possible to create a custom project. EXT:news and tt_address uses this already, see https://crowdin.com/project/typo3-extension-news.
Decisions which are not part of this migration
The following topics need to be solved as well but are not but of this migration:
- Future of CSH (Context Sensitive Help)
- Unify tons of xlff files and reducing duplicates
- Deprecate the usage of XML files
- Support of plurals
- How to attract more people contributing localizations
- 09/2019 Decide about using Crowdin or not
- 10/2019 Stabilize API & Make required changes to TYPO3 CMS
- 11/2019 Testing
- 01/2020 Public start of localization
- 04/2020 Using the new API
Topic Initiator: Georg Ringer
Topic Mentor: Georg Ringer