Icinga Web 2 and all its modules have been localized from the very beginning. There were also quite a few languages added. Just recently Icinga Web 2 and the Director got a Japanese locale! And a updated Russian as well as a new Spanish (Argentina) locale are in the works at the moment.
Over the years our Saudi Arabian, German, Finnish, Italian, Japanese, Brazilian, Russian and Ukrainian users were able to experience Icinga Web 2 and some of its modules in their native tongue.
The Problem
There’s a problem though. Or rather some inconvenience for the translators. Icinga Web 2 and every module have its own locale. In case a translator wants to translate Icinga Web 2 and the Director to another language, it’s required to handle four different gettext catalogs. (Icinga Web 2, setup module, monitoring module and the director module) A gettext catalog contains all the used terms and messages throughout a project. This poses the following issues:
- Duplicate terms need to be translated multiple times (e.g. host, which is used in the monitoring and director module)
- Translators may only translate parts (Icinga Web 2 for example is available in Finnish, but the monitoring module not)
- Translators need to manage multiple files and thus pull requests on Github
This gets only worse because there are already plenty of examples where parts of a single product are split into separate projects. (e.g. The Director and all its import sources)
The Solution
To solve these issues, we’ve introduced Icinga L10n. It’s now the central location for all Icinga related translations. It’s a collection of terms and messages for all projects made by Icinga.
It’s still gettext, for the projects themselves nothing has changed. Though translators have now only a single catalog to work with and create their pull requests in a single repository.
A few enhancements are also part of it. A major improvement is that we are now able to release new languages and language updates independently from other products. A big thing for developers is the fact that they don’t have to update the catalogs anymore, because Icinga L10n is fully automated. (Thanks to Github-Actions)
Icinga L10n will be available as package at the same time Icinga Web 2.8.0 is released. The first update will probably arrive once either the Russian or the Spanish (Argentina) locale are ready. So stay tuned!
The Future
Currently translators still have to fiddle with Git, Github as well as PoEdit. The final goal, of which Icinga L10n is an intermediate step, is to provide them a place on-line where it’s easier to collaborate.