Merchants use Magento world-wide to create and manage their storefronts. To provide the best experience for all merchants and customers, we need to take into account national and cultural aspects and regional traditions. Magento has extensibility and customizability built-in in its DNA. It’s no surprise that it offers full support for multiple locales and languages.
However, localization is one of the areas in software development that looks easy at first glance but is extremely complex to get it right. Misunderstanding and underestimation of the task begins from the start with terminology. Pretty naive but widely used is segregation of localization (l10n) and internationalization (i18n): i18n usually means software translation, and l10n is UI translation such us numbers, dates, and currencies.
Internationalization (i18n) is a set of architectural, engineering practices, and approaches for building software. These components help developers adapt software to specific regional requirements such as language, number and date formats, sort order, etc. without the need of explicit handling in code.
Localization (l10n) is a process of implementing requirements for a particular region. One of the main steps in localization is translation of the user interface for text strings, button names, etc. Content loads based on locale detection.
Another related term is globalization (g10n) – a process of making software ready to be used in multiple countries. It includes internalization and localization, but expands beyond engineering tasks to cover business aspects such as marketing, sales, legal, support, etc. Software development may not initially include globalization, but Magento is an e-commerce solution that is used by businesses that operate around the globe. As such, g10n should always be considered as a requirement. Globalization has direct impact on how order management, billing, shipping and taxation should be implemented and what extensions and customization points are required.
Magento has a lot to offer in g10n, i18n, and l10n to provide the best in class solution for business wherever it operates. But we also realize that support and processes can be improved. To that end, Magento Community Engineering is starting a new project dedicated to localization capabilities in Magento. As translation is one of the greatest concerns for localization, we will start with improving the current process and enable more possibilities for the Magento Community to have impact on which translation packages are available and how they may be delivered.
Magento supports translation packages which are first class components on a par with modules and themes. Translation packages are distributed as Composer packages and contain content declaration XML and CSV file with translations.
To receive, collect, and review translation strings from all interested contributions, Magento has a public project available through the translation platform Crowdin. Everyone can submit translations of terms, UI strings, button names, etc.
With the translations collected and approved, we needed a straight-forward process to fetch translations as Composer packages. Any developer may download available translations and pack them into language package by their own. However, the translation process at Crowdin further complicates the packages due to multiple version releases of Magento that are in use and unclear processes for proofreading and approving translations.
We are simplifying the translation process and develop tools that allow us to automate a lot of routine tasks. We also hope the developed tools will help translate not only Magento but also 3rd party Magento modules.
The high-level concept is to have single translation branch at Crowdin that will include all phrases from all released Magento versions. The branch allows us to generate language packages from Crowdin that are compatible with all available Magento versions. This significantly simplifies translation and release management and seems a reasonable tradeoff.
All translations will be synchronized to GitHub. We plan to develop tools allowing Community members to contribute translations directly from GitHub.
To solve issues with translation approvals, we are going to accept all proposed phrases from the beginning. To reduce impacts of mistakes, a new CICD infrastructure will produce daily builds of Composer packages. The frequency of releases provides quick updates as issues are discovered, providing fast corrections and new additions. Using a single master branch with translation for all Magento versions will allow us to use GitHub and Crowding branches to stabilize releases for particular languages. At later stages of the project, we will switch from “accept everything” to a voting model.
For this initial step, we have a lot work to do. And to get started, we seek the support and aid of the Magento Community. This project requires extensive help and contributions to succeed, and you are one of the best and supportive Open Source communities! The Magento Community has experts in many languages and has valuable experience, understanding, and feedback and help us implement all required tools.
We are inviting all volunteers to provide any kind contribution possible to the project. Help and contribute as a translator, an architect, or developer that enjoys coding in green-field projects while selecting all of the libraries, frameworks, or languages that you dreamed to try. As we are only starting, we are open to any ideas and proposals and will are thankful for any help with building and prioritizing the backlog.
If you are interesting please join to our kick-of meeting Tuesday, 26 March 2019 at 17:00 CET, 11am CDT, https://bluejeans.com/756272778. The meetings will continue weekly at the same time and Bluejeans link. Follow project progress at Twitter by #MagentoTranslation hashtag. And join our #translations Slack channel (or self signup).
Once we will establish a transparent process for translations, we can continue to even more interesting tasks and topics!
And finally, with having good translation coverage, we will be able to start work on another aspects of internationalization and globalization improvements.
But to start dreaming on such features we firstly need to build a solid base. Make Magento fluently speak your native language!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.