Blame common/download-translations

Packit Service 963350
#!/bin/sh
Packit Service 963350
# Shell script to download the latest translations for a given GStreamer
Packit Service 963350
# package from translationproject.org
Packit Service 963350
Packit Service 963350
Packit Service 963350
# DOMAINS based on http://translationproject.org/extra/matrix.html
Packit Service 963350
# We need to check all domains, not only po/LINGUAS, since there might be
Packit Service 963350
# new translations
Packit Service 963350
DOMAINS=\
Packit Service 963350
"af am ar ast az be bg pt_BR bs ca zh_CN cs cy da de el eo es et eu fa fi fr fur "\
Packit Service 963350
"ga en_GB gl gu he hi zh_HK hr hu id is it ja ko ku ky lg lt lv mk mn ms "\
Packit Service 963350
"mt nb ne nl nn or pa pl pt rm ro ru rw sk sl sq sr sv ta tq th tk "\
Packit Service 963350
"tr zh_TW uk ven vi wa xh zu"
Packit Service 963350
Packit Service 963350
# for testing/debugging:
Packit Service 963350
#DOMAINS="es fr hu sv pl xx"
Packit Service 963350
Packit Service 963350
# check for 'diff' program
Packit Service 963350
diff --version 2>/dev/null >/dev/null
Packit Service 963350
if [ ! $? ]; then
Packit Service 963350
  echo "==== You must have the 'diff' program installed for this script ===="
Packit Service 963350
  exit 1
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
# check for 'wget' program
Packit Service 963350
wget --version 2>/dev/null >/dev/null
Packit Service 963350
if [ ! $? ]; then
Packit Service 963350
  echo "==== You must have the 'wget' program installed for this script ===="
Packit Service 963350
  exit 1
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
# make sure we're in the top-level directory
Packit Service 963350
if [ ! -d ./po ]; then
Packit Service 963350
  echo "==== No ./po directory in the current working directory ===="
Packit Service 963350
  exit 1
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
# make sure a package argument was passed to us
Packit Service 963350
if [ -z "$1" ]; then
Packit Service 963350
  echo "Usage: $0 PACKAGE, e.g. $0 gst-plugins-good"
Packit Service 963350
  exit 1
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
if test "$1" != "gstreamer" -a \
Packit Service 963350
        "$1" != "gst-plugins-base" -a \
Packit Service 963350
        "$1" != "gst-plugins-good" -a \
Packit Service 963350
        "$1" != "gst-plugins-ugly" -a \
Packit Service 963350
        "$1" != "gst-plugins-bad"; then
Packit Service 963350
  echo "Unexpected package '$1' ?!"
Packit Service 963350
  exit 1
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
PACKAGE="$1"
Packit Service 963350
Packit Service 963350
DOMAINS_TO_ADD=""
Packit Service 963350
DOMAINS_UPDATED=""
Packit Service 963350
DOMAINS_NOT_IN_LINGUAS=""
Packit Service 963350
Packit Service 963350
echo "Downloading latest translation files for package $PACKAGE ..."
Packit Service 963350
echo
Packit Service 963350
Packit Service 963350
for d in $DOMAINS
Packit Service 963350
do
Packit Service 963350
  PACKAGE_PO_URL_BASE="http://translationproject.org/latest/$PACKAGE"
Packit Service 963350
  PO_URL="$PACKAGE_PO_URL_BASE/$d.po"
Packit Service 963350
  PO_FILENAME="$PACKAGE.$d.po"
Packit Service 963350
  if wget -q -nc -O $PO_FILENAME $PO_URL; then
Packit Service 963350
    # we want all .po files in UTF-8 format really, so convert if needed..
Packit Service 963350
    CHARSET=`grep Content-Type $PO_FILENAME | sed -e 's/.*charset=\(.*\)\\\\n.*/\1/'`
Packit Service 963350
    if test "x$CHARSET" != "xUTF-8" -a "x$CHARSET" != "xutf-8"; then
Packit Service 963350
      # note: things like the bugs address will be added back by make update-po
Packit Service 963350
      if msguniq $PO_FILENAME --no-location \
Packit Service 963350
                              --output-file=$PO_FILENAME.utf8 \
Packit Service 963350
                              --to-code=UTF-8; then
Packit Service 963350
        mv $PO_FILENAME.utf8 $PO_FILENAME
Packit Service 963350
      else
Packit Service 963350
        echo "**** $d: conversion from $CHARSET to UTF-8 failed ****"
Packit Service 963350
      fi
Packit Service 963350
    fi
Packit Service 963350
    if [ -f "po/$d.po" ]; then
Packit Service 963350
      # ./po/foo.po exists, so let's check if ours matches the latest from the
Packit Service 963350
      # translation project website
Packit Service 963350
      REVDATE_NEW=`grep PO-Revision-Date $PO_FILENAME`;
Packit Service 963350
      REVDATE_OLD=`grep PO-Revision-Date po/$d.po`;
Packit Service 963350
      CHARSET_OLD=`grep Content-Type po/$d.po | sed -e 's/.*charset=\(.*\)\\\\n.*/\1/'`
Packit Service 963350
      if test "x$REVDATE_NEW" = "x$REVDATE_OLD" -a "x$CHARSET_OLD" = "xUTF-8"; then
Packit Service 963350
        # note: source code line markers will be removed later by make upload-po
Packit Service 963350
        echo "$d.po: up-to-date"
Packit Service 963350
        rm -f $PO_FILENAME
Packit Service 963350
      else
Packit Service 963350
        mv $PO_FILENAME "po/$d.po"
Packit Service 963350
        if test "x$CHARSET_OLD" != "xUTF-8" -a "x$CHARSET_OLD" != "xutf-8"; then
Packit Service 963350
          echo "$d.po: update (and charset converted from $CHARSET_OLD to UTF-8)"
Packit Service 963350
        else
Packit Service 963350
          echo "$d.po: updated"
Packit Service 963350
        fi
Packit Service 963350
        DOMAINS_UPDATED="$DOMAINS_UPDATED $d"
Packit Service 963350
      fi
Packit Service 963350
      # make sure domain is listed in LINGUAS
Packit Service 963350
      if ! grep $d "po/LINGUAS" >/dev/null 2>/dev/null; then
Packit Service 963350
        DOMAINS_NOT_IN_LINGUAS="$DOMAINS_NOT_IN_LINGUAS $d"
Packit Service 963350
      fi
Packit Service 963350
    else
Packit Service 963350
      # ./po/foo.po doesn't exist, but foo.po exists on the translation project
Packit Service 963350
      # website, so it's probably a new translation
Packit Service 963350
      echo "$d.po: new language"
Packit Service 963350
      mv $PO_FILENAME "po/$d.po"
Packit Service 963350
      DOMAINS_UPDATED="$DOMAINS_UPDATED $d"
Packit Service 963350
      DOMAINS_TO_ADD="$DOMAINS_TO_ADD $d"
Packit Service 963350
    fi
Packit Service 963350
  else
Packit Service 963350
    rm -f $PO_FILENAME
Packit Service 963350
    echo "$d.po: failure (does probably not exist)"
Packit Service 963350
  fi
Packit Service 963350
done
Packit Service 963350
Packit Service 963350
if [ -n "$DOMAINS_UPDATED" ]; then
Packit Service 963350
  echo "===================================================================="
Packit Service 963350
  echo
Packit Service 963350
  echo "Language domains updated    :$DOMAINS_UPDATED"
Packit Service 963350
  echo "Language domains to git add :$DOMAINS_TO_ADD"
Packit Service 963350
  echo
Packit Service 963350
  echo "Source: http://translationproject.org/latest/$PACKAGE/"
Packit Service 963350
  echo
Packit Service 963350
  if [ -n "$DOMAINS_TO_ADD" ]; then
Packit Service 963350
    CMD_STRING="git add"
Packit Service 963350
    for d in $DOMAINS_TO_ADD; do
Packit Service 963350
      CMD_STRING="$CMD_STRING po/$d.po"
Packit Service 963350
    done
Packit Service 963350
    echo "Please run"
Packit Service 963350
    echo
Packit Service 963350
    echo "  $CMD_STRING"
Packit Service 963350
    echo
Packit Service 963350
    echo "now and add the following domains to the po/LINGUAS file:"
Packit Service 963350
    echo
Packit Service 963350
    echo "  $DOMAINS_TO_ADD"
Packit Service 963350
    echo
Packit Service 963350
    echo
Packit Service 963350
  fi
Packit Service 963350
  echo "===================================================================="
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350
if [ -n "$DOMAINS_NOT_IN_LINGUAS" ]; then
Packit Service 963350
  echo
Packit Service 963350
  echo "Existing domains missing from the po/LINGUAS file:"
Packit Service 963350
  echo
Packit Service 963350
  echo "  $DOMAINS_NOT_IN_LINGUAS"
Packit Service 963350
  echo
Packit Service 963350
  echo
Packit Service 963350
fi
Packit Service 963350
Packit Service 963350