#!/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