67 lines
1.6 KiB
Bash
Executable File
67 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
usage() {
|
|
cat << EOF
|
|
usage: $0 -a [DIR]
|
|
usage: $0 <ADDON_DIR> <OUTPUT_FILE>
|
|
|
|
OPTIONS:
|
|
-a [DIR] export the .pot files for all web addons found
|
|
at target path (default: ./addons)
|
|
-h print this message
|
|
EOF
|
|
exit 0
|
|
}
|
|
|
|
do_all=
|
|
|
|
while getopts "a" opt
|
|
do
|
|
case "$opt" in
|
|
a)
|
|
do_all=true;;
|
|
h)
|
|
usage;;
|
|
\?)
|
|
usage;;
|
|
esac
|
|
done
|
|
|
|
shift $((OPTIND-1))
|
|
|
|
if [ -n "$do_all" ]
|
|
then
|
|
if [ "x$(which msgcat)" = "x" ]
|
|
then
|
|
echo "The msgcat command from the gettext tools is required in the PATH."
|
|
echo "On a Debian/Ubuntu system you may install gettext via 'sudo apt-get install gettext'"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Extracting all web addons translations"
|
|
executable=$0
|
|
target_dir=${1:-./addons}
|
|
echo "Using target dir: ${target_dir}"
|
|
for mod in $(find ${target_dir} -type d -name 'static' -exec sh -c 'basename $(dirname {})' \;); do
|
|
echo ${mod}
|
|
mod_pot=${target_dir}/${mod}/i18n/${mod}.pot
|
|
web_pot=${mod_pot}.web
|
|
mkdir -p $(dirname ${web_pot})
|
|
$executable ${target_dir}/${mod} ${web_pot}
|
|
if [ -f "${mod_pot}" ]; then
|
|
echo "Merging with existing PO file: ${mod_pot}"
|
|
msgcat --force-po -o "${mod_pot}.tmp" ${mod_pot} ${web_pot}
|
|
mv ${mod_pot}.tmp ${mod_pot}
|
|
rm ${web_pot}
|
|
else
|
|
echo "Renaming to final PO file: ${mod_pot}"
|
|
mv ${web_pot} ${mod_pot}
|
|
fi
|
|
done
|
|
elif [ -n "$2" ]
|
|
then
|
|
./npybabel.py extract -F babel.cfg -o $2 -k _t -k _lt --no-default-keywords $1
|
|
else
|
|
usage
|
|
fi
|