66 lines
1.8 KiB
Plaintext
66 lines
1.8 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
if [ -n "$1" ]; then
|
||
|
echo -e $*
|
||
|
fi
|
||
|
echo
|
||
|
echo "Usage: "
|
||
|
echo " update-po \$domain \$src_dir \$src_file \$src_file ..."
|
||
|
echo
|
||
|
echo "For example, to generate po/\$lang/blades-client.po files for all "
|
||
|
echo "existing language directories, you would call it like this:"
|
||
|
echo
|
||
|
echo " update_po blades-client \\"
|
||
|
echo " \$PWD/root/usr/share/perl5/vendor_perl/esmith/Blades \\"
|
||
|
echo " Blade.pm Connection.pm Error.pm Package.pm Session.pm"
|
||
|
echo
|
||
|
echo "This assumes that all source files are in that same directory, "
|
||
|
echo "and that no other options are needed. This script is a first pass"
|
||
|
echo "so we may need to augment it as we go."
|
||
|
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
DOMAIN=$1
|
||
|
SRC_DIR=$2
|
||
|
shift 2
|
||
|
SRC_FILES=$*
|
||
|
|
||
|
# Sanity checks
|
||
|
|
||
|
if [ -z "$DOMAIN" ]; then
|
||
|
usage "ERROR: Missing \$domain parameter"
|
||
|
fi
|
||
|
if [ ! -d "$SRC_DIR" ]; then
|
||
|
usage "ERROR: Invalid or missing \$src_dir parameter"
|
||
|
fi
|
||
|
if [ -z "$SRC_FILES" ]; then
|
||
|
usage "ERROR: You must specify at least one \$src_file parameter"
|
||
|
fi
|
||
|
for file in $SRC_FILES; do
|
||
|
if [ ! -f "$SRC_DIR/$file" ]; then
|
||
|
usage "ERROR: \$src_file not found: $file"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# Do it
|
||
|
|
||
|
PO_REF="${DOMAIN}.po"
|
||
|
# Send stderr to /dev/null because xgettext complains about irrelevant
|
||
|
# things due to the fact that it thinks it is reading C++ code.
|
||
|
xgettext -C -d ${DOMAIN} -k'gettext' -D $SRC_DIR $SRC_FILES 2>/dev/null
|
||
|
if [ $? -ne 0 ]; then
|
||
|
usage "Uh-oh, xgettext failed!\n" \
|
||
|
"Try running it manually and checking the errors:\n" \
|
||
|
"\txgettext -C -d ${DOMAIN} -k'gettext' -D $SRC_DIR $SRC_FILES"
|
||
|
fi
|
||
|
|
||
|
for lang in $(ls --color=never po -I CVS); do
|
||
|
echo -n "updating .po file for $DOMAIN ($lang)"
|
||
|
PO="$PWD/po/$lang/${DOMAIN}.po"
|
||
|
msgmerge $PO $PO_REF -o $PO
|
||
|
done
|
||
|
rm $PO_REF
|