gajim-plural/scripts/dev/plugins_translate

96 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
PYFILES=$(find -L ./ -type f -name "*.py")
GLADEFILES=$(find -L ./ -type f -name "*.ui")
check_args()
{
if [ $# -ne 2 ]; then
echo "Missing lang argument" >&2
exit 4
fi
}
init_ln()
{
if [ -e "core_plugins" ] && [ ! -L "core_plugins" ]; then
echo "core_plugins must be a symbolic link" >&2
exit 1
fi
if [ ! -e "core_plugins" ]; then
ln -s ../../plugins core_plugins
fi
if [ ! -L "community_plugins" ]; then
echo "community_plugins should be a symbolic link to gajim-plugins repository, else they won't be in po files"
fi
}
make_pot()
{
# Generate .ui.h
find -L ./ -type f -name "*.ui" -exec intltool-extract --type="gettext/glade" {} \;
GLADEHFILES=$(find -L ./ -type f -name "*.ui.h")
xgettext -k_ -kN_ -o plugins_translations.pot $PYFILES $GLADEHFILES --from-code=utf-8
rm $GLADEHFILES
}
make_po()
{
if [ -f $1.po ]; then
echo "Updating '$1' language";
msgmerge -U $1.po plugins_translations.pot;
else
msginit -l $1.UTF-8 -o $1.po;
fi
}
make_mo()
{
if [ ! -f $1.po ]; then
echo "$1.po doesn't exist. Use plugins_translation make_po $1 to create it.";
exit 3
fi
mkdir -p locale/$1/LC_MESSAGES
msgfmt -o $1.mo $1.po
}
install_mo()
{
if [ -L community_plugins ]; then
cp $1.mo community_plugins/plugins_translations/
fi
mkdir -p ~/.local/share/gajim/plugins/locale/$1/LC_MESSAGES/
cp $1.mo ~/.local/share/gajim/plugins/locale/$1/LC_MESSAGES/gajim_plugins.mo
}
case "$1" in
make_po)
check_args $@
init_ln
make_pot
make_po $2
;;
make_mo)
check_args $@
make_mo $2
;;
install_mo)
install_mo $2
;;
all)
check_args $@
init_ln
make_pot
make_po $2
make_mo $2
install_mo $2
;;
*)
echo "Usage: plugins_translation {all|make_po|make_mo|install_mo}" >&2
echo "example: plugins_translation make_po fr_FR"
exit 2
;;
esac