We 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.
Table of Contents
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:
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
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:
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:
Select the locale that you want to be enabled and press
OK. On the image below you can see that we selected
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
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:
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
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 variables, you can check the locale man page.
Of 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.