I was reminded this morning after a bit of chatter on #debian-cli that my previous write-up on setting one’s locale on Ubuntu is out-of-date. Instead of running dpkg-reconfigure locales and selecting your locale, the new incantation is as follows:
Magic
$ sudo locale-gen en_US.UTF-8
Environment Variables
You’ll also want to set some environment variables. Put something like the following in your ~/.bashrc:
LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_ALL=en_US.UTF-8 export LANG LANGUAGE LC_CTYPE LC_MESSAGES LC_ALL
You would of course replace en_US.UTF-8 with whichever locale you want to generate.
8 responses to “Locale configuration post-Intrepid”
What about in Debian?
sid still seems to have the fancy curses interface to selecting locales in addition to the new “gen-locales <locale>” bit
Is there a reason you set LC_ALL and LANGUAGE in addition to LANG? I would imagine the only effect would be to break programs that set variables such as LC_COLLATE to fit the programmer’s assumptions predictable behavior.
Anyway, thanks for writing this. It is interesting to see how operating systems are changing.
These are the variables mentioned in perl’s warning message:
http://wp.colliertech.org/cj/?p=388
I guess I should add LC_CTYPE and LC_MESSAGES, too, eh? :)
FWIW all those logical variables default to $LANG. It is the lowest precedence variable and the default for everything. See setlocale(3).
http://manpages.debian.net/cgi-bin/man.cgi?query=setlocale&sektion=3&manpath=Debian+Sid
So setting all these variables seems to me to be overkill, though it still works.
Thanks. I figured it would be something like that ;)
I use the following for having a system which uses English as
the basic language, but (Northern) European conventions for timestamps
and paper formats. I understand the strange “en_DK” locale was
specifically created for this purpose:
LANG=”en_US.UTF-8″
LC_TIME=”en_DK.UTF-8″
LC_PAPER=”en_DK.UTF-8″
cheers,
Michael
I would assume en_DK is “english as spoken (written) in Denmark”