See www.zabbix.com for the official Zabbix site.
It is possible to participate in translation of Zabbix interface and documentation. It is actually very much appreciated - native speakers are in the best position to create quality translations.
Translation status and maintainers
If you want to help with translation, it's best to coordinate the efforts. The following table lists language maintainers. If there is an existing maintainer, feel free to contact them for advice or to report problems with that particular translation. If there's no maintainer for your language, feel free to add it - and yourself as the maintainer, if you would like to participate.
Translation status shows whether a translation is show by default. Translations that are not shown really need help - join in!
If a translation drops below 75% completion, it is hidden from the language selection. Note that it is not removed, just not displayed in the default dropdown. A translation is added to the dropdown when it reaches 100% completion.
User links in the table may go to your Zabbix forum user page, or user page on this wiki.
Links to the forum user page should follow a syntax like this (replace <user_ID> and <User name>):
[http://www.zabbix.com/forum/member.php?u=<user_ID> <User name>]
Links to the user page on this wiki should follow a syntax like this (replace <login_name> and <User name>):
Zabbix translators mailing list is available.
Objects to translate
There are two possible things to translate at this point:
If you want to translate Zabbix frontend:
- register on this wiki
- log into Pootle using the same username and password you registered with in the previous step
- subscribe to the translator mailing list
- add yourself to the maintainer table below
- have a look at your language specific translation page
- it's linked to the language name in the maintainer table below (if there is one)
- if you start a new page for your language, be sure you don't miss the terminology
You will also need permissions to submit translations. Easiest way to obtain them is to ask in the #zabbix IRC channel on Freenode and provide your Pootle login.
If there are existing translators for your language, make sure to contact them - maybe there is an established workflow already, or some language-specific rules that should be followed.
Syncing translation to SVN
Usually synchronization from Pootle to SVN is performed by zabbix development team before next stable zabbix release. This way it's assured that all translation from Pootle are included. Internal instructions are here.
As for trunk branch - there are no strong rules when such sync is perofmed, probably by translators request but not more often than every 2-3 weeks, because it's a bit time consuming process. Synchronization is performed before alpha/RC releases of trunk too.
If you want to use finished PO file, which is not synced to SVN yet, - you can download it from Pootle, put it in zabbix frontend corresponding folder, run make_mo.sh and you should see all strings translated. Example:
# yum install -y gettext || apt-get install -y gettext # cd /usr/local/src/zabbix/frontends/php || cd /usr/share/zabbix/ # cd locale/sk/LC_MESSAGES/ # rm -rf frontend.po && wget https://www.zabbix.org/pootle/download/sk/Zabbix-trunk/LC_MESSAGES/frontend.po # cd ../../.. locale/make_mo.sh # restart your web server
If you want to translate the manual, contact Zabbix developers at firstname.lastname@example.org, providing your forum username and language you want to translate manual to.
Note that it is suggested to completely finish frontend translation before considering the manual - translating the manual is a much bigger amount of work.
- If you create a new Zabbix manual translation, you should immediately create a complete tree structure of the whole manual. This is crucial, as otherwise users are likely to miss parts of manual that have not been yet translated.
- Create manual pages so that the link name is absolutely identical to the English, except for two letter country code at the start of the link. Check that the selector of language at the top of the page works properly.
- For all initially created pages, add at the top of page a warning like this, and edit the link for the correct path for each page (source code):
<note important> This page has not yet been translated. See the original page.</note>
Remove this warning only after translation of that page is completed.
Working on the translation
- Try to translate the entire page and then proceed to the next.
- Try to commit larger parts of the page, i.e. don't save small changes very often. To save the work done, use the "Preview" button. When you click on "Preview" page is stored on the server as a draft, and you can edit it later. During this period, other users will not see the changes already made. If the page has a draft saved, viewing it instead of "Edit this page", "Edit Draft" button will be displayed. Once you click "Edit Draft", make sure to choose "Recover Draft" to continue editing from the previous point.
- Use the field "Edit summary" and mark "Minor Changes" if appropriate. Always populate "Edit summary" field. Remember, checking "Minor Changes" will prevent users who had subscribed to the page changes from receiving the notification. In the revision history (accessed by "Old revisions" link on each page) such minor changes are shown in italics. It is recommended to use "Minor Changes" option only when correcting typos.
- If you update documentation translation and original changes were accompanied by a comment, repeat that comment in your own edit summary.
- If you translate some changes, translate them fully - for example, do not skip a paragraph that might be difficult to translate. In the worst case scenario, replicate the English version and consult other translators.
- Try to re-create contents of the English version in the screenshot - including hosts, host groups, items etc. Also try to replicate size, viewport and cropping of original screenshots.
- When translating the documentation, follow the same concepts as used in the frontend translation. Do not use English if the frontend has that word translated.