1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/bin/sh
set -e
set -u
EXCLUDE_LANGS='fr'
TAILS_PO_DIR='po'
SCRIPT_DIR=$(readlink -f "$(dirname "$0")")
TOR_TRANSLATION_REMOTE='https://git.torproject.org/translation.git'
TOR_TRANSLATION_DIR="$SCRIPT_DIR/tmp/tor-translation"
GIT_IN_TOR_TRANSLATION_DIR="git \
--work-tree=\"$TOR_TRANSLATION_DIR\" \
--git-dir=\"$TOR_TRANSLATION_DIR/.git\""
### External libraries
. "$SCRIPT_DIR/shell-library/po.sh"
lang_is_excluded () {
local lang="$1"
echo -n "$EXCLUDE_LANGS" | grep -qs -w "$lang"
}
# Defaults
LANG_DOT_PO_LAYOUT=no
POTFILE=openpgp-applet.pot
BRANCH='tails-openpgp-applet_completed'
AFTER_IMPORT='dzil msg-merge'
# Clone or update the translation repository
if [ -d "$TOR_TRANSLATION_DIR" ]; then
eval "$GIT_IN_TOR_TRANSLATION_DIR fetch origin"
else
mkdir -p "$SCRIPT_DIR/tmp"
git clone "$TOR_TRANSLATION_REMOTE" "$TOR_TRANSLATION_DIR"
fi
# Checkout the correct branch
eval "$GIT_IN_TOR_TRANSLATION_DIR checkout \"$BRANCH\""
eval "$GIT_IN_TOR_TRANSLATION_DIR reset --hard \"origin/$BRANCH\""
# For each completely translated language, merge it,
# unless it is translated outside Transifex
if [ "$LANG_DOT_PO_LAYOUT" = yes ] ; then
find "$TOR_TRANSLATION_DIR" -name '*.po' | while read po_file; do
lang=$(basename "$po_file" | tr - _ | sed 's/\.po$//')
if ! lang_is_excluded "$lang"; then
echo "Importing translation for $lang..."
cp "$po_file" "$TAILS_PO_DIR"
fi
done
else
find "$TOR_TRANSLATION_DIR" -name '*.pot' | while read po_file; do
lang=$(basename $(dirname "$po_file" | tr - _ | sed 's/\.pot$//'))
if ! lang_is_excluded "$lang"; then
echo "Importing translation for $lang..."
cp "$po_file" "$TAILS_PO_DIR/${lang}.po"
fi
done
fi
# Update PO files
if [ -n "${AFTER_IMPORT:-}" ]; then
eval "$AFTER_IMPORT"
fi
|