How to Configure System Locale on Debian 9

How to Configure System Locale on Debian 9

Configure System Locale on Debian 9We will show you how to configure system locale on Debian 9. The system locale defines the language and country-specific setting for the programs running on your system and the shell sessions. You can use locales to see the time and date, numbers, currency and other values formatted as per your language or country. Configuring system locale on Debian 9 is a fairly easy task and it should be configured in less than 10 minutes.

1. Check the current system locale on Debian 9

The first thing you need to do is to connect to your Linux server via SSH. You can log in as root or if you have a system user with sudo privileges you can log in as that user. Once you log in, run the following command to check the current system locale:

locale

The output should be similar to the one below:

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

2. Check which system locales are enabled

By using the locale command you can see which locales are currently being used for your active terminal session. In the output above the system locale is set to en_US.UTF-8.

Before setting up a different system locale you can first check which locales are enabled and ready to use on your Debian 9 VPS. You can use the following command for that purpose:

locale -a

The output should be similar to the one below:

# locale -a
C
C.UTF-8
POSIX
en_US.utf8

3.  Generate a system locale for the region you need

If you don’t have the locale that you need to be enabled on your system, it can simply be generated by using the locale-gen command. Just run the following command to generate a locale for the region you need:

dpkg-reconfigure locales

Select the locale that you want to be enabled and press OK. On the image below you can see that we selected en_GB.UTF-8.

debian set locale

debian set locale

Once you press OK you should see the following output:

Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

4. Verify is a system locale is enabled

This confirms that the locale you selected is generated and you can use it on your system. To verify that it is enabled you can run the locale -a command again.

# locale -a
C
C.UTF-8
POSIX
en_GB.utf8
en_US.utf8

The output should contain the system locale you selected and generated with the previous command.

5. Changing your locale manually

Editing the locale file is very easy. You can use your favorite text editor to edit the /etc/default/locale file. If this file does not exist, then no locale is currently set for your system. You can create one manually and enable a locale for your system. The output below shows how the file should look like:

cat /etc/default/locale
#  File generated by update-locale
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Replace en_US.UTF-8 with the locale you wish to have active on your system and save the file. Once you save the file, log out from your current session and then log back in, or open a new terminal, and your newly chosen locale will be active.

NOTE: This example file only sets the LANG variable for your system, which covers the locale for all parts of the system.

6. Changing your locale using the update-locale command

Another way of changing the locale on your system is to by using the update-locale command. For example, to set the system locale to en_GB.utf8 use the following command:

update-locale LANG=en_GB.utf8

Again, restart the session and check the currently active locale to make sure the one you want is properly set up.

# locale
LANG=en_GB.utf8
LANGUAGE=
LC_CTYPE="en_GB.utf8"
LC_NUMERIC="en_GB.utf8"
LC_TIME="en_GB.utf8"
LC_COLLATE="en_GB.utf8"
LC_MONETARY="en_GB.utf8"
LC_MESSAGES="en_GB.utf8"
LC_PAPER="en_GB.utf8"
LC_NAME="en_GB.utf8"
LC_ADDRESS="en_GB.utf8"
LC_TELEPHONE="en_GB.utf8"
LC_MEASUREMENT="en_GB.utf8"
LC_IDENTIFICATION="en_GB.utf8"
LC_ALL=

7. Changing the locale for specific parts of the operating system

Updating the LANG variable allows you to change the locale for the entire system at once. If you want to set up the locale for a specific part of the system you should edit the appropriate variable. Here are a few useful variables to know:

  • LC_MESSAGES – Sets the language for system messages.
  • LC_RESPONSE – Sets the language for dialogs shown on screen (e.g. “Yes” or “No” dialogs).
  • LC_NUMERIC – Sets the format for numbers depending on the region (e.g. decimals and commas being switched in some countries).
  • LC_TIME – Sets the format for the time and date.
  • LC_COLLATE – Sets the alphabetical order for strings (e.g. file names).
  • LC_MONETARY – Sets the currency name and symbol depending on the country.
  • LC_NAME – Sets the format for names (e.g. last name displayed before the first name).

For a list of all available variable, you can check the locale man page.

See also: How to Set Up System Locale on Ubuntu 16.04 and How to Set Up System Locale on CentOS 7


Configuring System Locale on Debian 9Of course, you don’t have to configure system locale on Debian 9, if you use one of our Debian VPS Hosting services, in which case you can simply ask our expert Linux admins to set up system locale on Debian 9 for you. They are available 24×7 and will take care of your request immediately.

PS. If you liked this post on configuring system locale on Debian 9, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.