Ubuntu – Properly setting the system language to English but with Swedish locale settings

kubuntulanguagelocale

So ever since I installed Kubuntu on the computer I'm using right now I've had locale issues, which I'll admit is nothing new or unique to Ubuntu/Linux. I'm trying to set things up so that my keyboard and general locale (time, date, etc) settings are Swedish but the system language is otherwise English since that makes things so much easier.

Right now my /etc/default/locale looks like this:

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

And I have set KDE Plasma translations (Regional Settings -> Language) to American English first and svenska[sic] second.

Keyboard layout is also set to Swedish and works.

Under Regional Settings -> Formats I've tried setting Region to United States - American English (en_US) with Detailed Settings on and everything set to Sverige - svenska (sv_SE) there.

In Xorg everything seems to be in English as it should but in the terminal I keep running into programs that insist on Swedish output. For example:

$ sudo apt-get update
Bra:1 http://repository.spotify.com stable InRelease
Bra:2 http://archive.ubuntu.com/ubuntu focal InRelease
Bra:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Bra:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Bra:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Läser paketlistor… Färdig

Does anyone know what setting I'm missing here? Surely I should be able to force this system to default to American English for the language while still retaining sane formatting for date and time?

Or is there some good alternative "en_SE" locale I can install that won't break horribly the next time I run a dist-upgrade?

Best Answer

You have in /etc/default/locale (or more likely in your output from the locale command):

LANGUAGE=en_US:sv

That's wrong. en_US translation files are usually empty, since en_US is the original language. And when gettext does not find an en_US translation for a string, it falls back to Swedish in some cases.

So change that somehow to:

LANGUAGE=en_US:en
Related Question