diff --git a/scripts/plugins_translate b/scripts/plugins_translate new file mode 100755 index 0000000..f1f3345 --- /dev/null +++ b/scripts/plugins_translate @@ -0,0 +1,76 @@ +#!/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 +} + +make_pot() +{ + # Generate .ui.h + find -L ../ -type f -name "*.ui" -exec intltool-extract --type="gettext/glade" {} \; + 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() +{ + cp $1.mo ../plugins_translations/ + 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 $@ + make_pot + make_po $2 + ;; + make_mo) + check_args $@ + make_mo $2 + ;; + install_mo) + install_mo $2 + ;; + all) + check_args $@ + 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