3

if I do an ls -l, I get output such as the following:

-rwxr-xr-x 1 root root        93584 Apr 21  2017  zipsplit
-rwxr-xr-x 1 root root        26624 Ott  5  2018  zjsdecode
-rwxr-xr-x 1 root root         2206 Aww 23 11:24  zless
-rwxr-xr-x 1 root root         1842 Aww 23 11:24  zmore
-rwxr-xr-x 1 root root         4553 Aww 23 11:24  znew

See where the date is... how do I change that to English?

I'm using Konsole on Kubuntu.

Edit: Output of locale as requested:

daniel@cassiopeia:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=mt_MT.UTF-8
LC_TIME=mt_MT.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=mt_MT.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=mt_MT.UTF-8
LC_NAME=mt_MT.UTF-8
LC_ADDRESS=mt_MT.UTF-8
LC_TELEPHONE=mt_MT.UTF-8
LC_MEASUREMENT=mt_MT.UTF-8
LC_IDENTIFICATION=mt_MT.UTF-8
LC_ALL=

There is clearly a mixture of US-English and Maltese in there. How do I get rid of the Maltese and just keep English? Or, say, change it to UK English?

Gigi
  • 691
  • 10
  • 19

2 Answers2

4

I'm assuming, from another question by you, that you're using Kubuntu 19.10. (This is somewhat important because some settings move around from one version to another.)

In Kubuntu 19.10 with the kubuntu-backports ppa installed, I'm on

Operating System: Kubuntu 19.10
KDE Plasma Version: 5.17.2
KDE Frameworks Version: 5.62.0
Qt Version: 5.12.4

In this system, open System Settings > Regional Settings, and click on the Formats icon in the left panel. In the image below, I chose a time format setting for Malta from the dropdown next to Time, logged out and logged in again. On opening konsole, I see this

Time format setting for Malta

To change to something else, I just go through the process again, log out and log back in:

Time format setting for UK


One point to note is that just because you see something in the dropdown (in System Settings > Regional Settings) and can apparently choose it, that doesn't mean it's actually available.

To get mt_MT.utf8 on my system, I had to "uncomment" the relevant entry in /etc/locale.gen and then run sudo locale-gen.

DK Bose
  • 44,553
1

As rinzwind commented, you can change locale for the Whole terminal use.
As I guess, you just want to change the language for one command, sometimes only.

In that case, simply 'prefix' the command with a variable. It is command expansion.
See the bash manual : https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Simple-Command-Expansion

$ LANG=en_US.utf8 ls -l
-rwxr-xr-x 1 root root        93584 Apr 21  2017  zipsplit
-rwxr-xr-x 1 root root        26624 Oct  5  2018  zjsdecode
(...)

$ LANG=en_US.utf8 gnome-control-center
# will start the gui with english language

$ GZIP=-9 tar cvzf /path/to/archive myarchive.tar.gz
# This will set max compression level (9) for gzip option in tar command


You can also create some aliases in your .bashrc in order to change locale language quickly :
# inside .bashrc
alias langen='LANG=en_US.utf8'
alias langne='LANG=ne_NP UTF-8'

# Then in a terminal
$ langen
$ ls -l
# get an output in  english
# then switch back to your preferred language
$ langne


Get enabled locales (installed locale languages) codes with locale -a.
Get avaiable locales with cat /etc/locale.gen
Enable a new one with sudo locale-gen ne_NP UTF-8
cmak.fr
  • 8,976