initial commit of file from CVS for e-smith-devtools on Wed 12 Jul 08:50:43 BST 2023
This commit is contained in:
65
additional/update-po
Executable file
65
additional/update-po
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/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
|
Reference in New Issue
Block a user