Bug#383321: su-to-root = localisation ;-)

2007-04-27 Thread Michelle Konzack
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 ;-)

2007-04-20 Thread Christian Perrier
 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 ;-)

2007-04-20 Thread Frédéric Bothamy
* 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 ;-)

2007-04-20 Thread Michelle Konzack
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 ;-)

2007-04-19 Thread 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.
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 ;-)

2006-09-14 Thread Michelle Konzack
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 ;-)

2006-09-08 Thread Bill Allombert
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 ;-)

2006-08-20 Thread Christian Perrier
 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 ;-)

2006-08-16 Thread Michelle Konzack
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