Blame common/download-translations

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