Source
echo "!! $num_msgids_not_removed strings are no longer present in php files, but have been preserved in po files !!"
function show_help
{
echo "$(basename $0) [--cleanup]"
echo ""
echo "Extract new strings from php files and regenerate po files."
echo ""
}
function run
{
local cleanup=false
while [[ $# -gt 0 ]]; do
case "$1" in
--help|-h|help)
show_help
exit 0
;;
--cleanup)
cleanup=true
;;
*)
die "unsupported parameter \"$1\"!"
;;
esac
shift
done
local workdir=$(realpath $(dirname $0)/..)
[[ -d "$workdir" ]] ||
die "cannot find \"$workdir\" working directory!"
cd "$workdir" || die
local pofiles=locale/*/LC_MESSAGES/frontend.po
local curpot=locale/en_US/LC_MESSAGES/frontend.pot
local oldpot=locale/old.pot
local newpot=locale/new.pot
local cur_msgids=locale/cur_msgids
local new_msgids=locale/new_msgids
local potlist=locale/POTFILES.in
# handle nonexistent potfile
mkdir -p $(dirname $curpot)
touch $curpot
# use xgettext on all php files
find . -type f -name '*.php' | sort -d -f > $potlist
# 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=$potlist \
--from-code=UTF-8 \
--output=$newpot \
--copyright-holder="Zabbix SIA" \
--no-wrap --sort-output \
--add-comments="GETTEXT:" \
--keyword=_n:1,2 \
--keyword=_s \