12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/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/config/chroot_local-includes/usr/local/lib/tails-shell-library/po.sh"
- lang_is_excluded () {
- local lang="$1"
- echo -n "$EXCLUDE_LANGS" | grep -qs -w "$lang"
- }
- # Defaults
- LANG_DOT_PO_LAYOUT=yes
- # Detect which project is in current folder,
- # and set parameters accordingly
- if [ -f 'po/tails.pot' ]; then
- BRANCH='tails-misc_completed'
- AFTER_IMPORT='intltool_update_po $(po_languages)'
- elif [ -f 'po/tails-greeter.pot' ]; then
- BRANCH='tails-greeter_completed'
- AFTER_IMPORT='./setup.py build_i18n'
- elif [ -f 'po/tails-iuk.pot' ]; then
- BRANCH='tails-iuk_completed'
- AFTER_IMPORT='make -C po pot && make -C po update-po'
- elif [ -f 'po/onioncircuits.pot' ]; then
- LANG_DOT_PO_LAYOUT=no
- POTFILE=onioncircuits.pot
- BRANCH='tails-onioncircuits_completed'
- AFTER_IMPORT='./setup.py build_i18n && ( cd po && for po in *.po ; do msgmerge --update "$po" onioncircuits.pot ; done )'
- elif [ -f 'po/tails-perl5lib.pot' ]; then
- BRANCH='tails-perl5lib_completed'
- AFTER_IMPORT='make -C po pot && make -C po update-po'
- elif [ -f 'po/tails-installer.pot' ]; then
- BRANCH='liveusb-creator_completed'
- AFTER_IMPORT='./setup.py build && cd po && for po in *.po ; do msgmerge --update "$po" tails-installer.pot ; done'
- elif [ -f 'po/tails-persistence-setup.pot' ]; then
- BRANCH='tails-persistence-setup_completed'
- AFTER_IMPORT='make -C po pot && make -C po update-po'
- elif [ -f 'po/whisperback.pot' ]; then
- BRANCH='whisperback_completed'
- AFTER_IMPORT=''
- else
- echo "Current folder is not a project known to this script!"
- exit 1
- fi
- # 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
|