ddtp [SCRIPT]: merging translations with english package description files
Hi all,
I wrote a small script which simplifies the usage of translated package
descriptions. Please see the comments in it for details.
Feel free to use and distribute it.
PS: Please CC me, as I'm not subscribed to this list.
#!/bin/sh
# Copyright 2003 Jens Seidel <tux-master@web.de>
# License: GPL v2 or higher (at your opinion)
# This script inserts (in most cases translated) package descriptions
from the
# first file into the second and writes the result to stdout.
# This is more useful than
# http://ddtp.debian.org/aptable de/unstable main
# at the beginning of /etc/apt/sources.list, because APT doesn't try to
fetch
# files (which may be more up to date) from ddtp.debian.org/ but uses the
local
# ones.
# Package files can be found in /var/lib/apt/lists/.
# Application: Assume translated package files can be found in
# ~/dists/de/woody/main/binary-i386/Packages:
#
# cd /var/lib/apt/lists
# for i in $(ls *Packages); do
# mv $i /tmp
# change-pkg-description ~/dists/de/woody/main/binary-i386/Packages
/tmp/$i > $i
# done
f=$1
if [ $# -ne 2 ]; then
echo "$0 usage: $(basename $0) i18nfile packagefile"
echo "This script replaces the package descriptions in packagefile with
the"
echo "corresponding strings from i18nfile (they must exist) and writes
the"
echo "output to stdout."
echo "This is useful to translate package descriptions even if the
versions of both"
echo "files does not match."
fi
if [ $1 = $2 ]; then
echo "Argumnts must be different."
exit 1
fi
gawk -F"\n" '
# start of text
/^Description: / {
copyText=1;lines=0
if (FILENAME!="'$f'") print description[package]
}
/^Package: / { copyText=0 }
{ if (copyText && FILENAME=="'$f'") text[++lines]=$0 }
{ if (!copyText && FILENAME!="'$f'") print $0 }
/^Package: / {
if (FILENAME=="'$f'" && lines>0)
for (i=1;i<=lines;i++)
description[package]=description[package] text[i] "\n"
package=substr($0,10)
}
END {
if (FILENAME=="'$f'")
for (i=1;i<=lines-1;i++)
description[package]=description[package] text[i] "\n"
}
' $1 $2
Reply to: