#! /bin/bash
-[ -e ../../../rosetta-$1/$2.po ] || exit
-msgmerge -q <(msgconv -t UTF-8 ../../../rosetta-$1/$2.po | msgattrib --no-obsolete -) <(msgconv -t UTF-8 $2.po | msgattrib --no-obsolete -) | msgmerge -q - <(msgconv -t UTF-8 $2.po | msgattrib --no-obsolete -) | diff -u --label $2.po <(msgconv -t UTF-8 $2.po) -
+
+usage () {
+ [ "$1" = 0 ] || exec >&2
+ echo "Usage: $0 [--apply] [--keep-old] [--prefix PREFIX] SOURCE LANG"
+ exit "$1"
+}
+
+die_getopt () {
+ echo "getopt failed" >&2
+ exit 1
+}
+
+APPLY=false
+KEEP_OLD=false
+PREFIX=
+eval set -- "$(getopt -o '' -l apply,keep-old,prefix:,help -- "$@")" || die_getopt
+while :; do
+ case $1 in
+ --apply)
+ APPLY=:
+ shift
+ ;;
+ --keep-old)
+ KEEP_OLD=:
+ shift
+ ;;
+ --prefix)
+ PREFIX="${2%-}-"
+ shift 2
+ ;;
+ --help)
+ usage 0
+ shift
+ ;;
+ --) shift; break ;;
+ *) die_getopt ;;
+ esac
+done
+
+[ "$1" ] || usage 1
+
+SOURCE="$1"
+shift
+
+MY_LANG="$1"
+case $MY_LANG in
+ pa_IN)
+ ROSETTA_LANG=pa
+ ;;
+ *)
+ ROSETTA_LANG="$MY_LANG"
+ ;;
+esac
+
+[ -e $SOURCE/$PREFIX$ROSETTA_LANG.po ] || exit
+msgmerge -q -N <(msgconv -t UTF-8 $SOURCE/$PREFIX$ROSETTA_LANG.po | msgattrib --no-obsolete -) *.pot | msgattrib --no-obsolete $MSGATTRIB_OPTS - | \
+ if [ -e $MY_LANG.po ]; then
+ if $KEEP_OLD; then
+ msgmerge -q -N <(msgconv -t UTF-8 $MY_LANG.po | msgattrib --no-obsolete -) *.pot -C -
+ else
+ msgmerge -q -N - <(msgconv -t UTF-8 $MY_LANG.po | msgattrib --no-obsolete -)
+ fi | \
+ msgattrib --no-obsolete -
+ else
+ cat
+ fi | \
+ if $APPLY; then
+ sponge $MY_LANG.po
+ else
+ diff -u --label $MY_LANG.po <(msgconv -t UTF-8 $MY_LANG.po) -
+ fi