57 строки
1.4 KiB
Bash
Executable File
57 строки
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Requires `pip install dennis` for po linting.
|
|
|
|
# syntax:
|
|
# compile-mo.sh locale-dir/
|
|
|
|
function usage() {
|
|
echo "syntax:"
|
|
echo "compile-mo.sh locale-dir/"
|
|
exit 1
|
|
}
|
|
|
|
# check if file and dir are there
|
|
if [[ ($# -ne 1) || (! -d "$1") ]]; then usage; fi
|
|
|
|
hash dennis-cmd 2>/dev/null || source $VENV/bin/activate
|
|
|
|
echo "compiling messages.po..."
|
|
for pofile in `find $1 -type f -name "messages.po"`; do
|
|
dir=`dirname $pofile`
|
|
lang=`echo $pofile | cut -d "/" -f2`
|
|
stem=`basename $pofile .po`
|
|
if [ $lang != 'dbg' ]
|
|
then
|
|
# lint the .po file
|
|
dennis-cmd lint -q --errorsonly "$pofile"
|
|
fi
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "Skipping $pofile, errors detected. Run the following to list errors:"
|
|
echo "dennis-cmd lint --errorsonly $pofile"
|
|
else
|
|
msgfmt -o ${dir}/${stem}.mo $pofile
|
|
fi
|
|
done
|
|
|
|
echo
|
|
echo "compiling javascript.po..."
|
|
for pofile in `find $1 -type f -name "javascript.po"`; do
|
|
dir=`dirname $pofile`
|
|
lang=`echo $pofile | cut -d "/" -f2`
|
|
stem=`basename $pofile .po`
|
|
touch "${dir}/${stem}.mo"
|
|
if [ $lang != 'dbg' ]
|
|
then
|
|
# lint the .po file
|
|
dennis-cmd lint -q --errorsonly "$pofile"
|
|
fi
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "Skipping $pofile, errors detected. Run the following to list errors:"
|
|
echo "dennis-cmd lint --errorsonly $pofile"
|
|
else
|
|
msgfmt -o ${dir}/${stem}.mo $pofile
|
|
fi
|
|
done
|