From 9fecdb6a9cf2c9dbe29868bffc3d9298600e0404 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sat, 3 Sep 2011 22:56:37 +0200
Subject: [PATCH] add script to build plugins translations

---
 scripts/dev/plugins_translate | 95 +++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100755 scripts/dev/plugins_translate

diff --git a/scripts/dev/plugins_translate b/scripts/dev/plugins_translate
new file mode 100755
index 000000000..dc9233cb4
--- /dev/null
+++ b/scripts/dev/plugins_translate
@@ -0,0 +1,95 @@
+#!/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 existe. 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_translate/
+    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
+        ;;
+    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
-- 
GitLab