Bug 10041 - Provide a koha-translate script to aid package users on installing translations
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 Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Comment: Good adition. Work as described. No errors. Copied to /usr/local/bin. No errors on install, update, remove, list and check. Passed-QA-by: Mason James <mtj@kohaaloha.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> (cherry picked from commit2cd5afa974) Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> (cherry picked from commitcb321e5b10) Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
This commit is contained in:
parent
c4c8642a69
commit
db418b2011
|
|
@ -0,0 +1,79 @@
|
|||
<article xmlns='http://docbook.org/ns/docbook'>
|
||||
<title>koha-translate</title>
|
||||
<info>
|
||||
<productname>Koha</productname> is the first free software library automation package.
|
||||
<author>
|
||||
<orgname>The Koha Community</orgname>
|
||||
<uri>http://koha-community.org/</uri>
|
||||
</author>
|
||||
</info>
|
||||
|
||||
<refentry xml:id="koha-translate">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>koha-translate</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>koha-translate</refname>
|
||||
<refpurpose>Manage Koha templates translations</refpurpose>
|
||||
<refclass>UNIX/Linux</refclass>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>koha-translate</command> <arg><option>-i</option>|<option>--install</option></arg> <arg><option>-u</option>|<option>--update</option></arg> <arg><option>-r</option>|<option>--remove</option></arg> <arg><option>-c</option>|<option>--check</option></arg> <arg choice="req" rep="norepeat"><replaceable>lang_code</replaceable></arg>
|
||||
<command>koha-translate</command> <arg><option>-l</option>|<option>--list</option></arg> <arg><option>-a</option>|<option>--available</option></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>Options</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>-a, --available</option></term>
|
||||
<listitem>
|
||||
<para>(For use with --list) List the available language translations.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-c, --check</option></term>
|
||||
<listitem>
|
||||
<para>Check if all the .PO files are present for the specified language.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-i, --install</option></term>
|
||||
<listitem>
|
||||
<para>Install the specified lang_code language translation.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-l, --list</option></term>
|
||||
<listitem>
|
||||
<para>List the installed or available (combined with -a) language translations.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-r, --remove</option></term>
|
||||
<listitem>
|
||||
<para>Remove the specified lang_code language translation.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-u, --update</option></term>
|
||||
<listitem>
|
||||
<para>Update the specified lang_code language translation.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>Manage Koha templates translations.</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
|
||||
</article>
|
||||
|
|
@ -27,6 +27,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
|
||||
|
|
|
|||
|
|
@ -0,0 +1,256 @@
|
|||
#!/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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
usage()
|
||||
{
|
||||
local scriptname=$(basename $0)
|
||||
|
||||
cat <<EOF
|
||||
$scriptname
|
||||
|
||||
This script lets you manage your Koha templates translations.
|
||||
|
||||
Usage:
|
||||
$scriptname --list|-l [--all|-a]
|
||||
$scriptname --check|-c language_code
|
||||
$scriptname --install|-i language_code
|
||||
$scriptname --update|-u language_code
|
||||
$scriptname --remove|-r language_code
|
||||
$scriptname -h
|
||||
|
||||
-l | --list List the installed or available (combined with -a)
|
||||
language translations
|
||||
-a | --available Used in conjunction with -l to show all languages
|
||||
-c | --check Check that the language .PO files are present
|
||||
-i | --install Install the specified language translations
|
||||
-u | --update Update the specified language translations
|
||||
-r | --remove Remove the specified language translations
|
||||
-h | --help Display this help message
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
die()
|
||||
{
|
||||
echo "$@" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
list()
|
||||
{
|
||||
all=$1
|
||||
|
||||
if [ "$all" != "" ]; then
|
||||
print_available
|
||||
else
|
||||
print_installed
|
||||
fi
|
||||
}
|
||||
|
||||
print_available()
|
||||
{
|
||||
# Loop over only one opac theme
|
||||
for i in $( ls $PO_DIR | grep opac-t-prog ); do
|
||||
echo `basename $i -i-opac-t-prog-v-3006000.po`
|
||||
done
|
||||
}
|
||||
|
||||
print_installed()
|
||||
{
|
||||
ls $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/ | \
|
||||
grep -v -e images -e itemtypeimg
|
||||
}
|
||||
|
||||
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
|
||||
# Check po files are present
|
||||
check_lang_po_files $lang
|
||||
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
|
||||
# Check po files are present
|
||||
check_lang_po_files $lang
|
||||
remove_lang $lang
|
||||
install_lang $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
|
||||
}
|
||||
|
||||
check_lang_po_files()
|
||||
{
|
||||
lang=$1
|
||||
|
||||
po_files="$PO_DIR/$lang-i-opac-t-prog-v-3006000.po
|
||||
$PO_DIR/$lang-opac-ccsr.po
|
||||
$PO_DIR/$lang-i-staff-t-prog-v-3006000.po
|
||||
$PO_DIR/$lang-pref.po"
|
||||
|
||||
if [ "$lang" != "" ]; then
|
||||
|
||||
for po_file in $po_files; do
|
||||
if [ ! -f $po_file ]; then
|
||||
die "Error: $po_file not found."
|
||||
fi
|
||||
done
|
||||
else
|
||||
die "Error: no language code supplied."
|
||||
fi
|
||||
}
|
||||
|
||||
set_action()
|
||||
{
|
||||
if [ "$op" = "" ]; then
|
||||
op=$1
|
||||
else
|
||||
die "Error: only one action can be specified."
|
||||
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=""
|
||||
op=""
|
||||
language=""
|
||||
|
||||
# We accept at most 2 parameters
|
||||
[ $# -ge 1 ] && [ $# -le 3 ] || ( usage ; die "Error: wrong parameters" )
|
||||
|
||||
# Read parameters
|
||||
while [ $# -gt 0 ]; do
|
||||
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
op="help"
|
||||
break ;;
|
||||
-c|--check)
|
||||
set_action "check"
|
||||
shift ;;
|
||||
-i|--install)
|
||||
set_action "install"
|
||||
shift ;;
|
||||
-u|--update)
|
||||
set_action "update"
|
||||
shift ;;
|
||||
-r|--remove)
|
||||
set_action "remove"
|
||||
shift ;;
|
||||
-l|--list)
|
||||
set_action "list"
|
||||
shift ;;
|
||||
-a|--available)
|
||||
list_all=1
|
||||
shift ;;
|
||||
-*)
|
||||
usage
|
||||
die "Error: unknown parameter $1." ;;
|
||||
*)
|
||||
language=$1
|
||||
shift ;;
|
||||
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 ;;
|
||||
"check")
|
||||
check_lang_po_files $language ;;
|
||||
*)
|
||||
usage
|
||||
die "Error: wrong parameters..." ;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Loading…
Reference in New Issue