On Friday 28 October 2011 20:48:44 Seblu wrote:
On Thu, Oct 27, 2011 at 1:38 AM, Tom Gundersen <teg@jklm.no> wrote:
Uglier script, but should now work with zsh as well as bash.
Signed-off-by: Tom Gundersen <teg@jklm.no> --- locale.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/locale.sh b/locale.sh index e774659..4b4ef4e 100644 --- a/locale.sh +++ b/locale.sh @@ -1,10 +1,79 @@ if [ -s /etc/rc.conf ]; then - LANG=$(. /etc/rc.conf 2> /dev/null ; echo "${LOCALE:=en_US.UTF-8}") + LANG=$(. /etc/rc.conf 2> /dev/null ; echo "$LOCALE") fi + if [ -s /etc/locale.conf ]; then . /etc/locale.conf fi
-export LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE -export LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS -export LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION +if [ -n "$LANG" ]; then + export LANG +else + export LANG="C" +fi + +if [ -n "$LC_CTYPE" ]; then + export LC_CTYPE +else + unset LC_CTYPE +fi + +if [ -n "$LC_NUMERIC" ]; then + export LC_NUMERIC +else + unset LC_NUMERIC +fi + +if [ -n "$LC_TIME" ]; then + export LC_TIME +else + unset LC_TIME +fi + +if [ -n "$LC_COLLATE" ]; then + export LC_COLLATE +else + unset LC_COLLATE +fi + +if [ -n "$LC_MONETARY" ]; then + export LC_MONETARY +else + unset LC_MONETARY +fi + +if [ -n "$LC_MESSAGES" ]; then + export LC_MESSAGES +else + unset LC_MESSAGES +fi + +if [ -n "$LC_PAPER" ]; then + export LC_PAPER +else + unset LC_PAPER +fi + +if [ -n "$LC_NAME" ]; then + export LC_NAME +else + unset LC_NAME +fi + +if [ -n "$LC_ADDRESS" ]; then + export LC_ADDRESS +else + unset LC_ADDRESS +fi + +if [ -n "$LC_TELEPHONE" ]; then + export LC_MEASUREMENT +else + unset LC_MEASUREMENT +fi + +if [ -n "$LC_IDENTIFICATION" ]; then + export LC_IDENTIFICATION +else + unset LC_IDENTIFICATION +fi -- 1.7.7.1
i think we should take an another approach about this issue of locale. We should use pam (with pam_env module) to set this env vars.
I agree that setting the vars from within the shell is not ideal (but it solves the problem in most cases). I'd be very happy to accept a better implementation (as long as the configuration format is unchanged). -t