From 3e023c95c6edbe4a57de11903b5cee22dc5cabac Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Sat, 13 Apr 2013 21:10:33 -0300 Subject: [PATCH] Bug 10041 - Provide a koha-translate script to aid package users on installing translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Until we have solved the packaging of koha template translations, provide a command that manages the installed translations in a proper way. To test, build a Debian package of current master+the patches from this bug :-D and try the many options running koha-translate --help provide. The command itself can be grabbed from a git checkout with this patch applied to test the script's funcionality. If it (and its docs) fits the package building stuff, I'll test on monday when I can be back on my workstation. Sponsored-by: Universidad Nacional de Córdoba --- debian/docs/koha-translate.xml | 73 ++++++++++++++ debian/koha-common.install | 1 + debian/scripts/koha-translate | 205 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 279 insertions(+) create mode 100644 debian/docs/koha-translate.xml create mode 100755 debian/scripts/koha-translate diff --git a/debian/docs/koha-translate.xml b/debian/docs/koha-translate.xml new file mode 100644 index 0000000..e14ab72 --- /dev/null +++ b/debian/docs/koha-translate.xml @@ -0,0 +1,73 @@ +
+koha-translate + +Koha is the first free software library automation package. + + The Koha Community + http://koha-community.org/ + + + + + + + koha-translate + 8 + + + + koha-translate + Manage Koha templates translations + UNIX/Linux + + + + + koha-translate | | | lang_code + koha-translate | | + + + + Options + + + + + (For use with --list) List the available language translations. + + + + + + Install the specified lang_code language translation. + + + + + + List the installed or available (combined with -a) language translations. + + + + + + Remove the specified lang_code language translation. + + + + + + Update the specified lang_code language translation. + + + + + + + Description + Manage Koha templates translations. + + + + +
diff --git a/debian/koha-common.install b/debian/koha-common.install index 8288c39..0e542bb 100644 --- a/debian/koha-common.install +++ b/debian/koha-common.install @@ -28,6 +28,7 @@ debian/scripts/koha-run-backups usr/sbin debian/scripts/koha-shell usr/sbin debian/scripts/koha-start-zebra usr/sbin debian/scripts/koha-stop-zebra usr/sbin +debian/scripts/koha-translate usr/sbin debian/scripts/koha-upgrade-schema usr/sbin debian/scripts/koha-upgrade-to-3.4 usr/sbin debian/tmp_docbook/*.8 usr/share/man/man8 diff --git a/debian/scripts/koha-translate b/debian/scripts/koha-translate new file mode 100755 index 0000000..9d81e1a --- /dev/null +++ b/debian/scripts/koha-translate @@ -0,0 +1,205 @@ +#!/bin/sh +# +# koha-translate -- Manage Koha translations. +# Copyright 2013 Tomás Cohen Arazi +# Universidad Nacional de Córdoba +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +set -e + +usage() +{ + local scriptname=$(basename $0) + cat <&2 + exit 1 +} + +list() { + all=$1 + if [ "$all" != "" ]; then + print_available + else + print_installed + fi +} + +print_available() +{ + for i in $(ls $PO_DIR | grep opac) + do + echo `basename $i -i-opac-t-prog-v-3006000.po` + done +} + +print_installed() +{ + for i in $(ls $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/ | grep -v -e images -e itemtypeimg) + do + echo $i + done +} + +install_lang() +{ + lang=$1 + + if [ "$lang" != "" ]; then + + if [ "$lang" = "en" ]; then + die "Error: the default language (en) is already installed." + fi + + if print_available | grep -q $lang; then + if print_installed | grep -q $lang; then + die "Error: the selected language is already installed. Try --update if you want to re-install it." + else + env PERL5LIB="$KOHA_LIB_DIR:$TRANSLATE_DIR" KOHA_CONF="$KOHA_CONF_FILE"\ + $PERL_CMD $TRANSLATE_DIR/translate install $lang + fi + else + die "Error: the selected language is not currently available." + fi + + else + die "Error: no language code supplied." + fi +} + +update_lang() +{ + lang=$1 + + if [ "$lang" != "" ]; then + + if [ "$lang" = "en" ]; then + die "Error: the default language (en) cannot be updated." + fi + + if print_installed | grep -q $lang; then + env PERL5LIB="$KOHA_LIB_DIR:$TRANSLATE_DIR" KOHA_CONF="$KOHA_CONF_FILE"\ + $PERL_CMD $TRANSLATE_DIR/translate update $lang + else + die "Error: the selected language is not currently installed. Try --install." + fi + else + die "Error: no language code supplied." + fi +} + +remove_lang() +{ + lang=$1 + + if [ "$lang" != "" ]; then + + if [ "$lang" = "en" ]; then + die "Error: the default language (en) cannot be removed." + fi + + if print_installed | grep -q $lang; then + rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/$lang + rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/ccsr/$lang + rm -rf $KOHA_INSTALL_DIR/intranet/htdocs/intranet-tmpl/prog/$lang + else + die "Error: the selected language is not already installed." + fi + else + die "Error: no language code supplied." + fi +} + +# Global PATH variables +KOHA_INSTALL_DIR="/usr/share/koha" +KOHA_LIB_DIR="/usr/share/koha/lib" +KOHA_CONF_FILE="/etc/koha/koha-conf-site.xml.in" +TRANSLATE_DIR="$KOHA_INSTALL_DIR/misc/translator" +PO_DIR="$TRANSLATE_DIR/po" +PERL_CMD=`which perl` +# Control variables +list_all="" + +# Read parameters +while true ; do + case "$1" in + -h|--help) + op="help" + break ;; + -i|--install) + op="install" + language="$2" + shift 2 ;; + -u|--update) + op="update" + language="$2" + shift 2 ;; + -r|--remove) + op="remove" + language="$2" + shift 2 ;; + -l|--list) + op="list" + shift ;; + -a|--available) + list_all=1 + shift ;; + *) + break ;; + esac +done + +# Process the requested actions +case $op in + "help") + usage ;; + "list") + list $list_all ;; + "install") + install_lang $language ;; + "update") + update_lang $language ;; + "remove") + remove_lang $language ;; + *) + usage + die "Error: wrong parameters..." ;; +esac + +exit 0 + -- 1.7.10.4