#!/bin/bash echo "Generating translation template..." # xgettext will be used on all php files cd $(dirname $0)/.. directory=$PWD find ./ -type f -name '*.php' | sort -d -f > locale/POTFILES.in # keyword "_n" is Zabbix frontend plural function # keyword "_s" is Zabbix frontend placeholder function # keyword "_x" is Zabbix frontend context function # keyword "_xs" is Zabbix frontend context function xgettext --files-from=locale/POTFILES.in --from-code=UTF-8 \ --output=locale/frontend.pot \ --copyright-holder="Zabbix SIA" --no-wrap --sort-output \ --add-comments="GETTEXT:" --keyword=_n:1,2 --keyword=_s \ --keyword=_x:1,2c --keyword=_xs:1,2c --keyword=_xn:1,2,4c || exit 1 cd $directory/locale #--sort-by-file sed -i 's/^#, php-format/#, c-format/' frontend.pot echo "Merging new strings in po files..." for translation in */LC_MESSAGES/frontend.po; do echo -n "$translation" | cut -d/ -f1 # fuzzy matching provides all kinds of interesting results, for example, # "NTLM authentication" is translated as "LDAP-Authentifizierung" - thus # it is disabled msgmerge --no-fuzzy-matching --no-wrap --update \ --backup=off "$translation" frontend.pot # dropping obsolete strings msgattrib --no-obsolete --no-wrap --sort-output $translation -o $translation done for translation in */LC_MESSAGES/frontend.po; do echo -ne "$translation\t" # setting output file to /dev/null so that unneeded messages.mo file # is not created msgfmt --use-fuzzy -c --statistics -o /dev/null $translation done