As a software developer, working with translations has always been a pain.
Non-technical people like translators cannot work directly on translation files due to their rules and the file syntax.
In my professional career I’ve tried many times to include translators into the workflow, but the time we spent solving the bugs they introduced was more than the time we were saving.
GUI-based software that allows users to edit translation files is okay, but merging the resulting files and introducing the translations in an Agile workflow was always tricky.
Everyone involved (project managers, developers and translators) had to put in a lot of effort in order to avoid errors, and it wasn’t always possible.
Then I heard about continuous localization. Continuous localization is a way of automatically and seamlessly gathering new source material, publishing it for translation, acquiring translations and integrating them back into the product.
With this method, developers only need to deal with one source language. The translators can work on the translations from a GUI as soon as the developer pushes new code into the repository. The translated material is then automatically merged into the original source code repository and a new product build can be started (also automatically).
There are a lot of different solutions that can help integrate continuous localization into a continuous delivery workflow. In the end we chose Weblate.
Weblate is an open source continuous localization server that supports more then 150 different languages. It allows you to automatic fetch new translations from source code repositories like Git, Subversion, and Mercurial. It also can retrieve translations from hosted repositories such as GitHub, BitBucket and GitLab.
It can index translation files with different formats (ours for example is GETTEXT) and it provides a cool GUI for the translators. People in the community can subscribe as translators and contribute to the project.
Weblate can also analyze the translations with quality checks that help to catch common translator errors, ensuring the translation is always in good shape. Then it allows reviewers to approve or decline the job done by the translators. After the code has been approved, Weblate automatically synchronizes the source code repository by merging the changes or by sending pull requests to the developers.
We are currently testing it in order to introduce it into our workflow because we think that it can be a great solution not only for large communities.
As our next step, once all requisites have been satisfied (we won’t know until the testing phase has been completed), we will start to use it for our own production workflow. Our plan is to open the Weblate platform to the entire NetEye community so that everyone who uses NetEye frequently can contribute to improve the product and help us make their job just that little bit easier.