Change default language linux

How to change to default english language?

I just accidentally set my Ubuntu to chinese and I don’t understand anything that it says. This makes it difficult to change the language, although I had enter Locale to change the language because it’s all in chinese. Does anyone know how can I change my Ubuntu’s default language using the terminal?

2 Answers 2

Change default language for the console :

Edit /home/USERNAME/.bash_profile file (create if not exist) and add the line export LANG=de (example given for German)

Can you post the specific instructions back into your answer, so there’s no need to hunt for the correct OS or if the link breaks? Thanks!

help.ubuntu.com/community/LocaleConf That’s more specific for Ubuntu, but the jest is that you can either do that or add the lines in the first link to your .profile file. add: export LANG=en

That’s not what I meant. You shouldn’t just post links to information, but include the specific steps to follow in your answer itself. See this answer on StackOverflow Meta for more information on why you should do this.

The default locale file location here: /etc/default

Edit locale file like this and save:

# File generated by update-locale LANG="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_MONETARY="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" 

Done. Now log-out and log-in.

Источник

Sysadminium

Из статьи вы узнаете как в Linux, а именно Ubuntu и Debian, настроить locale для системы в целом и для пользователей по отдельности.

Locale в linux

Locale (локаль) — это региональные настройки операционной системы.

Каждая GNU/Linux система поставляется с конкретными региональными настройками. Эти настройки влияют на язык:

  • интерфейса,
  • сообщений об ошибках;
  • справочной информации;
  • вывода консольных утилит.

Но locale влияет не только на язык. Дополнительно это влияет на формат чисел, даты и времени, денежной валюты и другого.

Определение текущей locale в системе

Во-первых давайте определим с какими региональными настройками вы работаете в данный момент. Другими словами, какая locale сейчас используется в вашей linux системе. Для этого нужно выполнить команду locale без дополнительных параметров:

alex@s-ubu:~$ locale LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=

Так как, в примере, мы выполнили команду под пользователем alex, то утилита покажет региональные настройки для этого пользователя.

Читайте также:  Удаление ядра linux fedora

Имя локали состоит из нескольких частей. Вначале двумя маленькими символами обозначается язык, затем после нижнего подчеркивания идет название страны. Дальше идет кодировка, в современном мире чаще всего используется кодировка UTD-8. Примеры локалей:

  • ru_RU.UTF-8 — Русский Россия;
  • ru_UA.UTF-8 — Русский Украина;
  • en_US.UTF-8 — Английский США;
  • en_GB.UTF-8 — Английский Великобритания.

Разберём вывод предыдущей команды.

LANG — системная локаль для этого пользователя содержит значение ru_RU.UTF-8.

Дальше идут переменные, которыми могут пользоваться некоторые утилиты или подсистемы, рассмотрим некоторые из них:

  • LANGUAGE — список резервных языков для перевода. Если приложение умеет это использовать и у приложения нет локализации для определённой локали, то оно может использовать запасную локаль;
  • LC_NUMERIC — формат чисел, например 100 000 /100.000 / 100,000;
  • LC_MONETARY — валюта и денежное форматирование.

Эти и другие переменные используются различными утилитами и подсистемами. Но обычно нет смысла использовать разные локали для этих подсистем.

Список сгенерированных locales в системе

В системе можно использовать только сгенерированные локали. Посмотреть какие сейчас сгенерированы можно так:

alex@s-ubu:~$ locale -a C C.utf8 POSIX ru_RU.utf8

Логали: C, C.utf8, POSIX — это синонимы. Они являются локалями используемыми по умолчанию, если не задана никакая другая локаль.

В системе есть ещё одна локаль — ru_RU.utf8. Эта локаль была сгенерирована при установки системы.

А если добавим опцию -v, то дополнительно увидим описание по каждой locale:

alex@s-ubu:~$ locale -a -v locale: ru_RU.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | Russian locale for Russia source | RAP address | Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark email | bug-glibc-locales@gnu.org language | Russian territory | Russia revision | 1.0 date | 2000-06-29 codeset | UTF-8 locale: C.utf8 directory: /usr/lib/locale/C.utf8 ------------------------------------------------------------------------------- title | C locale email | bug-glibc-locales@gnu.org revision | 2.1 date | 2022-01-30 codeset | UTF-8

Так как локали C и POSIX это псевдонимы к C.utf8, то в этом выводе они исключаются.

Генерация новых locales

Список locales находятся в файле — /etc/locale.gen. А чтобы сгенерировать новую локаль нужно разкоментировать нужные локали в этом файле, а затем выполнить от суперпользователя команду locale-gen. Давайте попробуем сгенерировать locale en_US.utf8:

alex@s-ubu:~$ sudo nano /etc/locale.gen en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8 alex@s-ubu:~$ sudo locale-gen Generating locales (this might take a while). en_US.UTF-8. done ru_RU.UTF-8. done Generation complete.

Кстати, если мы укажем использовать локаль, которую не сгенерировали. То команда locale сообщит нам об ошибке:

$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR.utf8 LANGUAGE= LC_CTYPE="fr_FR.utf8" LC_NUMERIC="fr_FR.utf8" LC_TIME="fr_FR.utf8" LC_COLLATE="fr_FR.utf8" LC_MONETARY="fr_FR.utf8" LC_MESSAGES="fr_FR.utf8" LC_PAPER="fr_FR.utf8" LC_NAME="fr_FR.utf8" LC_ADDRESS="fr_FR.utf8" LC_TELEPHONE="fr_FR.utf8" LC_MEASUREMENT="fr_FR.utf8" LC_IDENTIFICATION="fr_FR.utf8" LC_ALL=

В выводе видно, что мы пытаемся использовать локаль fr_FR.utf8, но забыли его сгенерировать.

Читайте также:  Проверка файловой системы linux команда

Настройка различных locales разным пользователям

Для начала, если не настраивать локаль отдельным пользователям, то все они будут использовать локаль прописанную в файле /etc/default/locale:

alex@s-ubu:~$ cat /etc/default/locale LANG=ru_RU.UTF-8

Из вывода видно что все пользователи будут использовать локаль ru_RU.UTF-8.

Если пользователю нужно использовать другую локаль, то можно для него переопределить переменную LANG. Для этого можно использовать файл .bashrc в его домашнем каталоге, например:

alex@s-ubu:~$ nano .bashrc LANG=en_US.utf8 alex@s-ubu:~$ su - alex alex@s-ubu:~$ locale LANG=en_US.utf8 LANGUAGE= LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL=

Теперь все пользователи, кроме alex будут использовать локаль ru_RU.utf8, а alex будет использовать локаль en_US.utf8.

Перенастройка locales с помощью одной команды

В самом конце я покажу команду, с помощью которой можно сгенерировать нужные локали и убрать не нужные, а также выставить локаль по умолчанию. Это команда dpkg-reconfigure locales и запускать её нужно с правами администратора:

$ sudo dpkg-reconfigure locales

После выполнения команды вы увидите псевдографический интерфейс:

Выполнение команды dpkg-reconfigure locales

После выбора locales для генерации, вам нужно будет выбрать locale по умолчанию, которая пропишется в файл /etc/default/locale:

Итог

Мы познакомились с настройками locale в linux на примерах операционных систем Debian и Ubuntu.

  • locale — для просмотра используемой и сгенерированных локалей;
  • locale-gen — для генерации локалей;
  • dpkg-reconfigure locales — для генерации локалей и установки локали по умолчанию.

А также узнали про системные файлы:

  • /etc/default/locale — в нём прописана локаль по умолчанию;
  • /etc/locale.gen — здесь содержится список доступных локалей для генерации;
  • .bashrc — с помощью этого файла, в домашнем каталоге пользователя, можно переопределить локаль для пользователя.

Источник

Changing Linux System Language (Locales) From Command Line on Ubuntu and Debian Based Distros

It’s been some time since I wrote something on It’s FOSS. The truth is that I’ve been writing for a Spanish version of It’s FOSS. If you’ve not visited it and/or you’re a Spanish speaker, please visit It’s FOSS en Español and check all the Linux content in Spanish.

Читайте также:  Arch linux virtualbox общая папка

You may be wondering why I’m sharing this fact with you. It’s because this post includes this new page as an example.

At the time of doing a clean installation of your favorite Linux distro, the system asks you to choose a main language. Even though it’s not frequent, some people consider changing that language to a new one later on, like me for example.

See, I have to take screenshots in both Spanish (for It’s FOSS en Español) and in English (for It’s FOSS). This becomes a problem, because I have only one computer, and changing the user is not a fast solution for me.

That’s why I’d like to share with you this quick tip, where I’ll show you how to change your main system language with two simple lines in the terminal.

Changing Linux system language from the terminal

Let’s suppose you want to change your main language from English to Spanish.

Verify which language you have set as default (main language). For this, let’s use the locale command.

You should see something like this.

[email protected]:~$ locale LANG=en_US.UTF-8 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=

Here you can see that the main language is English. Now to change it, use the dpkg command in this fashion:

sudo dpkg-reconfigure locales

Once you run the command before, you should see the next screen in your terminal.

sudo dpkg reconfigure locales

Here, you should move using the up and down arrow until you reach the desired language. In my case, I desire Spanish, and more specific, Mexican Spanish because I’m Mexican.

Not all languages may have the options, but if yours have, opt for UTF-8.

Once your language has been found, press the SPACE KEY to mark it and then ENTER.

selecting your language

Finally, select this new language as your default by moving to it using the arrow key and pushing the ENTER KEY, in the last windows.

setting new language as default 1

Once done, you should see a message like this in your terminal:

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

And that’s all! Now you’re able to change your default language as many times you want directly from the terminal.

Please let us know if you have any doubt about this topic in the comments section. Good look!

Источник

Оцените статью
Adblock
detector