Zabbix frontend is translated in many languages. For some, the coverage is great – 2.0.7 has been 100% translated in 9 languages. For some other translations the coverage is not that great… In preparation for Zabbix 2.2, there is a plan to remove translations below some threshold.
Well, not really remove – just hide them from the language choice dropdown. The translations would still be kept and it would be possible to improve them. Hiding some translations would not impact their use, because they have only a small amount done, nobody would be expected to use them. For example, Lithuanian is at 1% and Finnish at 5%.
Cutoff threshold
The plan is to gradually start hiding the least completed translations. Initially, translations that are less than 10% complete will be hidden. Based on 2.0 statistics, these are:
- Swedish (9%)
- Finnish (5%)
- Lithuanian (1%)
At the Zabbix 2.2 beta 1 release, the threshold will be bumped to 50%. If it was done at this time for Zabbix 2.0, it would hide these additional unfinished translations:
- Spanish (48%)
- Dutch (33%)
- Persian (31%)
- Hungarian (29%)
- Czech (27%)
- Italian (21%)
- Latvian (19%)
- Korean (12%)
At the Zabbix 2.2 final release, the threshold will be bumped to 70%. If it was done at this time for Zabbix 2.0, it would hide these additional unfinished translations:
- Polish (58%)
What if a translation is improved later? To prevent translations from flipping in and out of existence (or visibility 🙂 ) constantly, a translation will only be added to the official dropdown list once it has been 100% translated. If a translation would drop below 70%, it would be hidden – and would have to reach 100% level again to reappear.
Translating Zabbix 2.2
While we had those 9 translations at 100% for the latest 2.0 releases, the current development version (that will become 2.2) has diverged a bit and most translations are not complete at this time. This means that some effort would be needed to bring Zabbix 2.2 translations to the same level as 2.0, and that additional translations might have to be hidden.
How to help?
Zabbix developers do not know that many languages – and even if they did, most users would probably prefer for them to be developing nice new features, or fixing bugs… On the other hand, Zabbix is used all around the world, and Zabbix users are in the best position to improve the translation for their language.
How to translate
Let’s see what can be done if there is a translation that you could help with. For a while now Zabbix uses the standard gettext solution for translating the frontend. The easiest way to get started with translating is to use a web browser based system – Pootle.
To be able to do so, a few simple steps must be completed first. After registering, logging in, subscribing to the mailing list and adding yourself to the translator table, just ask for the appropriate permissions and then you can start translating.
Note that for languages with existing maintainers it is always a good idea to contact them before doing any changes – there might be an existing workflow for that specific language.
How to test a hidden translation
What if a translation you would like to work on has been hidden already? It can be very hard to estimate the quality of the translations without seeing them in a working system. Luckily, re-enabling a disabled translation is easy. For example, let’s take a look at one potentially disabled translation, Lithuanian. To re-enable it, edit (in the Zabbix frontend directory) include/locales.inc.php file and look for the functions getLocales. Find the disabled translation you are interested in and set display status for it from false to true. For example, change:
function getLocales() { ... 'lt_LT' => array('name' => _('Lithuanian (lt_LT)'), 'display' => false), ... }
to
function getLocales() { ... 'lt_LT' => array('name' => _('Lithuanian (lt_LT)'), 'display' => true), ... }
Save the changes and open your user profile – the previously hidden language should be available now.
What happens if a language was selected before, and then it is hidden? Nothing bad, user interface reverts to the default, English (en_GB). If the language is re-enabled, frontend will switch to it automatically again (unless user profile is saved while the language is hidden).