From 9fecdb6a9cf2c9dbe29868bffc3d9298600e0404 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger 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