changing the current set locale on a Linux(Ubuntu)

I have a Ubuntu system on which current locale is(output of locale command):

LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

I want to change it to en_GB, because some characters are not handled properly on the terminal display.

What is the command to change the locale?

What is the command to see what different locales are available on current system for me to set/try?

2

2 Answers

The used locale is set via environment variables for the process (like the shell running in your terminal).

Most of the time it is sufficient to just change LANG, assuming you use bash

$ export LANG=en_GB

Put this into your ~/.profile file to make it work for all (even non-terminal) processes.

You can have a look at /usr/share/locale/ for some list of locales.

3

You could also use locale -a to get a list of available locales on your system (in addition to /usr/share/locale/, there may be some found in /usr/lib/locale/. For setting the locale, there's also the command setlocale, but I never got that to work and used export as the user honk described.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like