po/import-from-transifex

Sun, 04 Jun 2017 21:09:20 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Sun, 04 Jun 2017 21:09:20 -0500
changeset 38361
7a7b0bfca940
parent 37747
3dda61e090d3
child 40446
5fac35e2cb9b
permissions
-rwxr-xr-x

Use source built libpurple.la when building gir files

When running g-ir-scanner to generate Pidgin-3.0.gir, if the
installed libpurple.so didn't match the symbols in the built
version, it could fail. This is because g-ir-scanner was linking
to the installed version instead of the built one.

This patch makes it look at the pkg-config file to find the
right version, which in this case is pointed to by the uninstalled
pc file. I expected the --include-uninstalled flag to be what was
needed for this, but I couldn't get it to work.

Additionally, this patch sets the package name for the
Purple-3.0.gir for completeness.

#!/bin/bash -eu
# This uses bash for the <() syntax.

# TODO: Is there a way we can ignore files with only fuzzy-string changes?

# These are the languages which are maintained in Transifex.
transifex_languages="sq ar ar_SA hy hy_AM ast be brx br my_MM ca cs nl en_AU en_GB et fi gl ka de el he hi hu id ga it ja ks kk km ku_IQ lv lt mai ms_MY mr ne nqo nb nn oc pa fa pl pt pt_BR ro ru szl sd sl es es_AR sv tt te tr uk uz cy
"

if ! which tx > /dev/null
then
    cat >&2 << EOF
You must install the Transifex command-line client:
http://docs.transifex.com/client/setup/
EOF
    exit 1
fi

cat << EOF
This script assumes your working tree is clean, at least in the po directory.
It pulls the translations from Transifex, works out what has changed, and
COMMITS intltool-update changes without prompting.  It then leaves the
remaining changes for manual review and committing.

Ctrl-C now to abort...
EOF
sleep 10

if [ -d po ]
then
    cd po
fi

changed_files=
commitable_files=
for i in $transifex_languages
do
    if [ -e $i.po ]
    then
        cp $i.po $i.po.original
        XGETTEXT_ARGS=--no-location intltool-update $i
        cp $i.po $i.po.cleaned
    fi

    tx pull -f -l $i
    XGETTEXT_ARGS=--no-location intltool-update $i

    if [ -e $i.po.cleaned ]
    then
        if cmp -s <(grep ^msg $i.po.cleaned) <(grep ^msg $i.po)
        then
            # There were no actual changes.
            mv $i.po.original $i.po
        else
            # There were changes.
            mv $i.po $i.po.transifex
            changed_files="$changed_files $i.po"

            if cmp -s <(grep ^msg $i.po.original) <(grep ^msg $i.po.cleaned)
            then
                # The cleaning produced no actual changes; undo the cleaning.
                mv $i.po.original $i.po
            else
                # The cleaning produced changes; leave it for committing.
                mv $i.po.cleaned $i.po
                commitable_files="$commitable_files $i.po"
            fi
        fi
    fi

    rm -f $i.po.original $i.po.cleaned
done

# Commit cleaned versions of the changed files.
if [ -n "$commitable_files" ]
then
    hg commit -u "Pidgin Translators <translators@pidgin.im>" \
        -m "Clean changed translations" $commitable_files
fi

# Leave the cleaned Transifex versions in place, ready for committing.
for i in $changed_files
do
    mv $i.transifex $i
done

mercurial