Bug#383321: su-to-root = localisation ;-)
A weird thing happen... I have send you a messages but gotten nothing back and my send message is /dev/null (???) so I send it again... :-/ with a better version. Please note, that gettext strings which includes VARS must be evaluated. See eval_gettext() { eval 'echo $1' } I was playing arround and now it works like expected... To test, change the line if [ -n $(which gettext.sh)] ; then to if [ -z $(which gettext.sh)] ; then ^ and you can see, that it is working properly now. The script is tested. The su-to-root script produce 6 gettext strings: 8- msgid usage: \\$0 [-X] [-p user] -c command\n -c command: command to execute\n -p user: user to switch to (default: root)\n -X: command is a X11 program\n msgid About to execute \\$COMMAND.\nThis command needs \\$PRIV privileges to be executed.\n msgid Using \\$suname...\nEnter \\$PRIV passwd:\n msgid Y msgid y msgid Incorrect password or command failed. Try again? (y/n) 8- And then Bill, are you sure, this works only with /bin/bash and not with other shells? Maybe you should use /bin/sh. Thanks, Greetings and nice Day Michelle Konzack Systemadministrator Tamay Dogan Network Debian GNU/Linux Consultant -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSN LinuxMichi 0033/6/6192519367100 Strasbourg/France IRC #Debian (irc.icq.com) #!/bin/bash if test -r ~/.su-to-rootrc; then . ~/.su-to-rootrc fi PRIV=root COMMAND= NEEDS=text if [ -n $(which gettext.sh) ] ; then . gettext.sh export TEXTDOMAIN=su-to-root export TEXTDOMAINDIR=/usr/share/locale else gettext() { #- # Normal text can be outputed as it is echo $1 } eval_gettext() { #- # echo $1 must be evaluated since a string # of 'value ${val}' aould not work eval 'echo $1' } fi #- # We do not need this #transf() { # txt=$1; # shift; # if [ -n $gettext ]; then #txt=$(gettext su-to-root $txt); # fi # printf $txt $@ #} eshell() { getent passwd $1 | cut -f7 -d: } usage() { # transf 'usage: %s [-X] [-p user] -c command # -c command: command to execute # -p user: user to switch to (default: root) # -X: command is a X11 program\n' $0 2 GT_text=`eval_gettext usage: $0 [-X] [-p user] -c command\n -c command: command to execute\n -p user: user to switch to (default: root)\n -X: command is a X11 program\n` echo -e ${GT_text} exit 1 } for i in $@; do case $prev in -p) PRIV=$i;; -c) COMMAND=$i;; -X) NEEDS=X11;; esac prev=$i done if [ -z $COMMAND ] ; then usage; fi euid=$(id -u) privid=$(id -u $PRIV) if test $euid = $privid; then $COMMAND else case $NEEDS in text) if test $euid != 0; then # transf About to execute %s.\n $COMMAND # transf This command needs %s$PRIV privileges to be executed.\n $PRIV GT_text=$(eval_gettext About to execute $COMMAND.\nThis command needs $PRIV privileges to be executed.\n) echo -e ${GT_text} fi PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin SHELL=`eshell $PRIV` case $SU_TO_ROOT_SU in sux) suname=sux; cmd='sux -p $PRIV$COMMAND';; sudo) suname=sudo;cmd='sudo -u $PRIV$COMMAND';; *)suname=su; cmd='su -p $PRIV -c $COMMAND';; esac #transf 'Using %s...\n' $suname #transf 'Enter %s passwd:\n' $PRIV GT_text=$(eval_gettext Using $suname...\nEnter $PRIV passwd:\n) echo -e ${GT_text} #- # Translate the input string GT_YES=$(gettext 'Y') GT_yes=$(gettext 'y') while ! eval $cmd; do # transf 'Incorrect password or command failed. Try again? (y/n)' GT_text=`gettext Incorrect password or command failed. Try again? (y/n)` echo ${GT_text} read ans if test $ans != ${GT_YES} -a $ans != ${GT_yes}; then exit 1 fi done;; X11) if test -z $SU_TO_ROOT_X; then if which gksu /dev/null 21 ; then if test X$KDE_FULL_SESSION = Xtrue \ which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu else SU_TO_ROOT_X=gksu fi; elif which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu elif which sux /dev/null 21 ; then SU_TO_ROOT_X=sux else SU_TO_ROOT_X=su-to-root fi fi case $SU_TO_ROOT_X in gksu) gksu -u $PRIV $COMMAND;; kdesu) kdesu -u $PRIV $COMMAND;; sux) env SU_TO_ROOT_SU=sux \
Bug#383321: su-to-root = localisation ;-)
I need two advices from the l10n experts: 1) the best way to check if gettext is available. 2) the best way to deal with the yes/no prompting above. Hmmm, tricking question, particularly the last one. I don't have the answer, soryy. There are numerous examples for C in several software we have in Debian (APT for instance) but nothing comes to my mind for shell scripts. Checking gettext can probably be done by checking which gettext. signature.asc Description: Digital signature
Bug#383321: su-to-root = localisation ;-)
* Bill Allombert [EMAIL PROTECTED] [2007-04-19 22:48] : On Sun, Aug 20, 2006 at 08:28:26AM -0500, Christian Perrier wrote: GT5=$(gettext 'Incorrect password or command failed. Try again?') echo -n ${GT5} (${ANS}) read ans if [ ${FLAG} -eq 0 ] ; then if test ${ans} != y -a ${ans} != Y; then exit 1 ; fi elif [ ${FLAG} -eq 1 ] ; then if test ${ans} != j -a ${ans} != J; then exit 1 ; fi elif [ ${FLAG} -eq 2 ] ; then if test ${ans} != o -a ${ans} != N; then exit 1 ; fi fi } I'm not sure how to do it in shell programming, but this anyway doesn't scale very well to other languages. The locale information should be used here (the Yes/No shortcuts are part of locale filesI'm however not aware of the exact way to use them). I have rewritten su-to-root to be more l10n-friendly by removing text duplication and using printf. I need two advices from the l10n experts: 1) the best way to check if gettext is available. 2) the best way to deal with the yes/no prompting above. You should use locale yesexpr and locale noexpr to know which characters represent yes and no in the current language. The prompting (y/n) should be translated as usual (by translators). Greetings, Fred -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#383321: su-to-root = localisation ;-)
Hello Bil, I am sitting in the Internet Cafee in Strasbourg and stay there up to 19:00 Please test the new version of the script... 'xgettext' will produce 8 strings to translate: msgid usage: $0 [-X] [-p user] -c command\\n -c command: command to execute\\n -p user: user to switch to (default: root)\\n -X: command is a X11 program\\n msgid About to execute $COMMAND.\\nThis command needs $PRIV privileges to be executed.\\n msgid Using $suname...\\nEnter $PRIV passwd:\\n msgid Y msgid y msgid N msgid n msgid Incorrect password or command failed. Try again? (y/n)' Am 2007-04-19 22:48:02, schrieb Bill Allombert: On Sun, Aug 20, 2006 at 08:28:26AM -0500, Christian Perrier wrote: GT5=$(gettext 'Incorrect password or command failed. Try again?') echo -n ${GT5} (${ANS}) read ans if [ ${FLAG} -eq 0 ] ; then if test ${ans} != y -a ${ans} != Y; then exit 1 ; fi elif [ ${FLAG} -eq 1 ] ; then if test ${ans} != j -a ${ans} != J; then exit 1 ; fi elif [ ${FLAG} -eq 2 ] ; then if test ${ans} != o -a ${ans} != N; then exit 1 ; fi fi } I'm not sure how to do it in shell programming, but this anyway doesn't scale very well to other languages. The locale information should be used here (the Yes/No shortcuts are part of locale filesI'm however not aware of the exact way to use them). I have rewritten su-to-root to be more l10n-friendly by removing text duplication and using printf. I need two advices from the l10n experts: 1) the best way to check if gettext is available. sonce the gettext strings in a shell script are: gettext 'Hello Bil!' or eval_gettext Hellp ${FRIEND}! I use now at the beginning of the shell scripts: 8-- if [ -n $(which gettext) ] ; then . gettext.sh TEXTDOMAIN=exampleprog TEXTDOMAINDIR=/usr/share/locale else gettext() { echo $1 } eval_gettext() { echo $1 } fi 8-- Which works without any errors... 2) the best way to deal with the yes/no prompting above. echo Please answer with Y or N: Is there good examples of l10n scripts in Debian? ^^ Are Unfortunatly not, but maybe we can ask the gettext maintainer to add my sniplet I have attached the current, mostly untested, version. I will test it... 8-- #!/bin/bash if test -r ~/.su-to-rootrc; then . ~/.su-to-rootrc fi PRIV=root COMMAND= NEEDS=text if [ -n $(which gettext) ] ; then . gettext.sh TEXTDOMAIN=su-to-root TEXTDOMAINDIR=/usr/share/locale else gettext() { echo $1 } eval_gettext() { echo $1 } fi eshell() { getent passwd $1 | cut -f7 -d: } usage () { txt=$(gettext usage: $0 [-X] [-p user] -c command\n -c command: command to execute\n -p user: user to switch to (default: root)\n -X: command is a X11 program\n) echo -e $txt 2 exit 1 } for i in $@; do case $prev in -p) PRIV=$i;; -c) COMMAND=$i;; -X) NEEDS=X11;; esac prev=$i done if [ -z $COMMAND ] ; then usage; fi euid=$(id -u) privid=$(id -u $PRIV) if test $euid = $privid; then $COMMAND else case $NEEDS in text) if test $euid != 0; then txt=$(eval_gettext 'About to execute $COMMAND.\nThis command needs $PRIV privileges to be executed.\n') echo -e $txt fi PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin SHELL=`eshell $PRIV` case $SU_TO_ROOT_SU in sux) suname=sux; cmd='sux -p $PRIV$COMMAND';; sudo) suname=sudo;cmd='sudo -u $PRIV$COMMAND';; *)suname=su; cmd='su -p $PRIV -c $COMMAND';; esac txt=$(eval_gettext 'Using $suname...\nEnter $PRIV passwd:\n') echo -e ${txt} while ! eval $cmd; do GT_Y=$(gettext 'Y') GT_y=$(gettext 'y') GT_N=$(gettext 'N') GT_n=$(gettext 'n') txt=$(gettext 'Incorrect password or command failed. Try again? (y/n)') echo -e ${txt} read ans if test $ans != ${GT_y} -a $ans != ${GT_Y}; then exit 1 fi done;; X11) if test -z $SU_TO_ROOT_X; then if which gksu /dev/null 21 ; then if test X$KDE_FULL_SESSION = Xtrue \ which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu else SU_TO_ROOT_X=gksu fi; elif which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu elif which sux /dev/null 21 ; then SU_TO_ROOT_X=sux else SU_TO_ROOT_X=su-to-root fi fi case $SU_TO_ROOT_X in gksu) gksu -u $PRIV $COMMAND;; kdesu) kdesu -u $PRIV $COMMAND;; sux) env SU_TO_ROOT_SU=sux \ x-terminal-emulator -e su-to-root -p $PRIV -c $COMMAND;; # As a last resort, open a new x-terminal-emulator and prompt for the password # Do not use -X here! *) x-terminal-emulator -e su-to-root -p $PRIV -c $COMMAND;; esac;; esac
Bug#383321: su-to-root = localisation ;-)
On Sun, Aug 20, 2006 at 08:28:26AM -0500, Christian Perrier wrote: GT5=$(gettext 'Incorrect password or command failed. Try again?') echo -n ${GT5} (${ANS}) read ans if [ ${FLAG} -eq 0 ] ; then if test ${ans} != y -a ${ans} != Y; then exit 1 ; fi elif [ ${FLAG} -eq 1 ] ; then if test ${ans} != j -a ${ans} != J; then exit 1 ; fi elif [ ${FLAG} -eq 2 ] ; then if test ${ans} != o -a ${ans} != N; then exit 1 ; fi fi } I'm not sure how to do it in shell programming, but this anyway doesn't scale very well to other languages. The locale information should be used here (the Yes/No shortcuts are part of locale filesI'm however not aware of the exact way to use them). I have rewritten su-to-root to be more l10n-friendly by removing text duplication and using printf. I need two advices from the l10n experts: 1) the best way to check if gettext is available. 2) the best way to deal with the yes/no prompting above. Is there good examples of l10n scripts in Debian? I have attached the current, mostly untested, version. Cheers, -- Bill. [EMAIL PROTECTED] Imagine a large red swirl here. #!/bin/bash if test -r ~/.su-to-rootrc; then . ~/.su-to-rootrc fi PRIV=root COMMAND= NEEDS=text gettext=$(which gettext 2/dev/null) transf() { txt=$1; shift; if [ -n $gettext ]; then txt=$(gettext su-to-root $txt); fi printf $txt $@ } eshell() { getent passwd $1 | cut -f7 -d: } usage () { transf 'usage: %s [-X] [-p user] -c command -c command: command to execute -p user: user to switch to (default: root) -X: command is a X11 program\n' $0 2 exit 1 } for i in $@; do case $prev in -p) PRIV=$i;; -c) COMMAND=$i;; -X) NEEDS=X11;; esac prev=$i done if [ -z $COMMAND ] ; then usage; fi euid=$(id -u) privid=$(id -u $PRIV) if test $euid = $privid; then $COMMAND else case $NEEDS in text) if test $euid != 0; then transf About to execute %s.\n $COMMAND transf This command needs %s privileges to be executed.\n $PRIV fi PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin SHELL=`eshell $PRIV` case $SU_TO_ROOT_SU in sux) suname=sux; cmd='sux -p $PRIV$COMMAND';; sudo) suname=sudo;cmd='sudo -u $PRIV$COMMAND';; *)suname=su; cmd='su -p $PRIV -c $COMMAND';; esac transf 'Using %s...\n' $suname transf 'Enter %s passwd:\n' $PRIV while ! eval $cmd; do transf 'Incorrect password or command failed. Try again? (y/n)' read ans if test $ans != y -a $ans != Y; then exit 1 fi done;; X11) if test -z $SU_TO_ROOT_X; then if which gksu /dev/null 21 ; then if test X$KDE_FULL_SESSION = Xtrue \ which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu else SU_TO_ROOT_X=gksu fi; elif which kdesu /dev/null 21 ; then SU_TO_ROOT_X=kdesu elif which sux /dev/null 21 ; then SU_TO_ROOT_X=sux else SU_TO_ROOT_X=su-to-root fi fi case $SU_TO_ROOT_X in gksu) gksu -u $PRIV $COMMAND;; kdesu) kdesu -u $PRIV $COMMAND;; sux) env SU_TO_ROOT_SU=sux \ x-terminal-emulator -e su-to-root -p $PRIV -c $COMMAND;; # As a last resort, open a new x-terminal-emulator and prompt for the password # Do not use -X here! *) x-terminal-emulator -e su-to-root -p $PRIV -c $COMMAND;; esac;; esac fi
Bug#383321: su-to-root = localisation ;-)
Am 2006-09-08 21:15:57, schrieb Bill Allombert: Hello Michelle, Thanks for your effort. However, I have made a new su-to-root version. Would be willing to make a new patch for this version that addresses Christian concerns and revert to English when gettext is not available ? Now I have a question: Why should gettect not be availlable? Package: gettext-base Source: gettext Version: 0.14.4-2 Priority: standard Section: base gettext-base is ALWAYS availlable, otherwise a System would be broken. I have removed tried to remove gettext-base from a Test-Workstation and was heavyly warned by apt (I was wondering that Priority standard can cause this). I had to use the force option to remove it. After this I was running with the half system into trouble even with locale C. Maybe I should contact the other DM's about this problem. But anyway, I will create a version (this doule the code) which can entirely ignore gettext-base if not availlable. I think, it is crazy, to code stuff, for $USER, which enforce a break of the system. Thanks, Greetings and nice Day Michelle Konzack Systemadministrator Tamay Dogan Network Debian GNU/Linux Consultant -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/6/6192519367100 Strasbourg/France IRC #Debian (irc.icq.com) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#383321: su-to-root = localisation ;-)
On Tue, Aug 15, 2006 at 07:21:12PM +0200, Michelle Konzack wrote: Package: menu Version: 2.1.24 Severity: wishlist Since some of my frech clients had ask me to make an i18l version of su-to-root, I send you the resultat. I have attached the 5 files (su-to-root, su-to-root.pot, su-to-root_de.po and su-to-root_fr.po su-to-root.1) which are tested and they are working. And last not least I hope it will go into Debian... :-) Hello Michelle, Thanks for your effort. However, I have made a new su-to-root version. Would be willing to make a new patch for this version that addresses Christian concerns and revert to English when gettext is not available ? Cheers, -- Bill. [EMAIL PROTECTED] Imagine a large red swirl here. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#383321: su-to-root = localisation ;-)
I have attached the 5 files (su-to-root, su-to-root.pot, su-to-root_de.po and su-to-root_fr.po su-to-root.1) which are tested and they are working. Additionaly I have attached the su-to-root_de.mo and su-to-root_fr.mo. There are several glitches here and there with regard to i18n: usage() { GT1=$(gettext 'usage') GT2=$(gettext 'user') GT3=$(gettext 'command') GT4=$(gettext 'command is a X11 program') echo ${GT1}: $0 '[-X] [-p ${GT2}] -c ${GT3} 2 echo -X: ${GT4} 2 exit 1 This makes a few assumptions about the languages syntax. Indeed, concatenating strings to rebuild sentences is generally a bad idea in i18n programs as various languages can have various syntax. Here, for instance, the French l10n team generally uses Syntaxe : as prefix to usage lines. Notices the non breakable space before the colon So, indeed, you should just use *one* string for the whole string to be translated. Ditto for the -X: command is a X11 program string GT5=$(gettext 'Incorrect password or command failed. Try again?') echo -n ${GT5} (${ANS}) read ans if [ ${FLAG} -eq 0 ] ; then if test ${ans} != y -a ${ans} != Y; then exit 1 ; fi elif [ ${FLAG} -eq 1 ] ; then if test ${ans} != j -a ${ans} != J; then exit 1 ; fi elif [ ${FLAG} -eq 2 ] ; then if test ${ans} != o -a ${ans} != N; then exit 1 ; fi fi } I'm not sure how to do it in shell programming, but this anyway doesn't scale very well to other languages. The locale information should be used here (the Yes/No shortcuts are part of locale filesI'm however not aware of the exact way to use them). Project-Id-Version: menu \n Report-Msgid-Bugs-To: [EMAIL PROTECTED]\n POT-Creation-Date: 2006-08-15 18:28+0200\n PO-Revision-Date: 2006-08-15 18:42+0200\n Last-Translator: Michelle Konzack [EMAIL PROTECTED]\n Language-Team: french [EMAIL PROTECTED]\n MIME-Version: 1.0\n Content-Type: text/plain; charset=iso-8859-1\n Content-Transfer-Encoding: 8bit\n #: su-to-root:22 msgid usage msgstr utilisation .../... Any French translation should get a review by the French l10n team (I'd recommend the same for the German translation). The fr.po file you provided should not be used as Bill will certainly see it by himself... (Bill Allombert, who maintains menu, is a French native speaker) signature.asc Description: Digital signature
Bug#383321: su-to-root = localisation ;-)
Package: menu Version: 2.1.24 Severity: wishlist Since some of my frech clients had ask me to make an i18l version of su-to-root, I send you the resultat. I have attached the 5 files (su-to-root, su-to-root.pot, su-to-root_de.po and su-to-root_fr.po su-to-root.1) which are tested and they are working. Additionaly I have attached the su-to-root_de.mo and su-to-root_fr.mo. If you want to test it, do following: 1) copy su-to-root into ~/bin and make sure it is in your Path 2) mkdir -p ${HOME}/locale/{de,fr}/LC_MESSAGES 3) mv su-to-root_de.po ${HOME}/locale/de/LC_MESSAGES/su-to-root.mo mv su-to-root_fr.po ${HOME}/locale/fr/LC_MESSAGES/su-to-root.mo 4) I asum you have an english environement 5) now open a terminal and try: su-to-root if you have am environement other then de or fr you will get english output. Same if you try su-to-root -c bash 6) Now try the two above command with the environement variables [EMAIL PROTECTED] LANGUAGE=de su-to-root and [EMAIL PROTECTED] LANGUAGE=fr su-to-root And last not least I hope it will go into Debian... :-) Oh yes, at the beginning of the su-to-root script I have definde two variables currently GRP_LANG1 and GRP_LANG2. here are setup the languages which have the same reponse (letters) to yes/no and then the function falsepasswd() must be adapted. Note: IF you want to use the modified version in the menu package, please change in the su-to-root script the line TEXTDOMAINDIR=${HOME}/locale to TEXTDOMAINDIR=/usr/share/locale Greetings Michelle Konzack Systemadministrator Tamay Dogan Network Debian GNU/Linux Consultant -- System Information Debian Release: 3.1 Kernel Version: Linux michelle1.private 2.4.27-2-386 #1 Wed Aug 17 09:33:35 UTC 2005 i686 GNU/Linux Versions of the packages menu depends on: ii dpkg 1.10.28Package maintenance system for Debian ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries and Timezone ii libgcc13.4.3-13 GCC support library ii libstdc++5 3.3.5-13 The GNU Standard C++ Library v3 -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/6/6192519367100 Strasbourg/France IRC #Debian (irc.icq.com) #!/bin/bash ## # Copyright 1998, Joost Witteveen [EMAIL PROTECTED] # # Modified 2006, Michelle Konzack [EMAIL PROTECTED] # ## # Redistribution and use in source and binary forms, with or without # # modification, are permitted provided that the following conditions # # are met: # ## # 1. Redistributions of source code must retain the above copyright # #notice, this list of conditions and the following disclaimer. # ## # 2. Redistributions in binary form must reproduce the above # #copyright notice, this list of conditions and the following # #disclaimer in the documentation and/or other materials provided # #with the distribution. # ## # 3. Neither the name of Michelle Konzack nor the names of its # #contributors may be used to endorse or promote products derived # #from this software without specific prior written permission. # ## # THIS SOFTWARE IS PROVIDED BY MICHELLE KONZACK AND CONTRIBUTORS # # ``AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT # # NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND # # FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT # # SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, # # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ## . gettext.sh export TEXTDOMAIN=su-to-root export TEXTDOMAINDIR=${HOME}/locale if test -r ~/.su-to-rootrc; then . ~/.su-to-rootrc fi