How to use Ubuntu in English, but still show German formats

Updated . Posted . Visible to the public. Repeats.

If you want to have an English Ubuntu UI, but still see dates, money amounts, paper formats, etc. in German formats, you can fine-tune your /etc/default/locale like this:

LANG="en_US.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"

Make sure you have both en_US and de_DE locales installed:

sudo locale-gen en_US
sudo locale-gen en_US.UTF-8
sudo locale-gen de_DE
sudo locale-gen de_DE.UTF-8

If you needed to install a locale, make sure to do:

sudo update-locale

Now restart your system for the changes to take effect.

Known issues

You might encounter locale issues when you ssh to machines that don't have those locales set (de_DE) and some errors like this with postgresql might occur:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LC_PAPER = "de_DE.UTF-8",
        LC_ADDRESS = "de_DE.UTF-8",
        LC_MONETARY = "de_DE.UTF-8",
        LC_NUMERIC = "de_DE.UTF-8",
        LC_TELEPHONE = "de_DE.UTF-8",
        LC_MESSAGES = "en_US.UTF-8",
        LC_IDENTIFICATION = "de_DE.UTF-8",
        LC_COLLATE = "en_US.UTF-8",
        LC_MEASUREMENT = "de_DE.UTF-8",
        LC_CTYPE = "en_US.UTF-8",
        LC_TIME = "de_DE.UTF-8",
        LC_NAME = "de_DE.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Then you might remove/comment this line from your /etc/ssh/ssh_config:

SendEnv LANG LC_*
Henning Koch
Last edit
Andreas Herz
Keywords
linux, en_DE, locale
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2011-07-02 08:38)