Contents
- Introduction
- List installed locales
- List current settings
- Changing settings temporarily
- Changing settings permanently
- (Re-)Generating locales
- Troubleshooting
- files
- additional help
This wiki page is a work in progress. There is precious little documentation covering locales, either in books or on the web. It will take either a) a bit of time, or b) a professional, to make this page a good reference. Three question marks are a placeholder for information that is lacking.
Introduction
Locales customize programs to your language and country. When you installed Ubuntu, you answered some simple questions such as specifying your country and language. Ubuntu used the answers to those questions, in part, to choose a suitable locale for your installation.
The basic functionality is provided by the locales package, which is installed by default. Actual locales are installed separately via the language-pack-* packages.
Most users want a single locale to be used for all aspects of their session. In this case, the GUI provided by System Settings -> Language Support does the right thing.
This page is about more fine-grained, non-GUI customization.
List installed locales
The command ‘locale -a’ will show which locales are available on your system:
$ locale -a C # fall-back, ASCII encoding, same as POSIX de_DE.utf8 # German language, Germany, UTF-8 encoding de_CH.utf8 # German language, Switzerland, UTF-8 encoding fr_CH.utf8 # French language, Switzerland, UTF-8 encoding fr_CA.utf8 # French language, Canada, UTF-8 encoding en_US.utf8 # English language, USA, UTF-8 encoding POSIX # fall-back, ASCII encoding, same as C
List current settings
A piece of software is expected to utilize one or more of the installed locales, depending on a couple of environment variables, each covering a different aspect (a locale category). To list those variables and see their current value, use:
$ locale
In the output of the above query, you will see entries for:
- LANG
- Provides default value for LC_* variables that have not been explicitly set.
- LC_ADDRESS
- How addresses are formatted (country first or last, where zip code goes etc.).
- LC_ALL
- Overrides individual LC_* settings: if LC_ALL is set, none of the below have any effect.
- LC_COLLATE
- How strings (file names…) are alphabetically sorted. Using the «C» or «POSIX» locale here results in a strcmp()-like sort order, which may be preferable to language-specific locales.
- LC_CTYPE
- How characters are classified as letters, numbers etc. This determines things like how characters are converted between upper and lower case.
- LC_IDENTIFICATION
- Metadata about the locale information.
- LC_MEASUREMENT
- What units of measurement are used (feet, meters, pounds, kilos etc.).
- LC_MESSAGES
- What language should be used for system messages.
- LC_MONETARY
- What currency you use, its name, and its symbol.
- LC_NAME
- How names are represented (surname first or last, etc.).
- LC_NUMERIC
- How you format your numbers. For example, in many countries a period (.) is used as a decimal separator, while others use a comma (,).
- LC_PAPER
- Paper sizes: 11 x 17 inches, A4, etc.
- LC_RESPONSE
- Determines how responses (such as Yes and No) appear in the local language
- LC_TELEPHONE
- What your telephone numbers look like.
- LC_TIME
- How your time and date are formatted. Use for example «en_DK.UTF-8» to get a 24-hour-clock in some programs.
Changing settings temporarily
Any environment variable may be set on the command line for the current process:
$ date Sat May 14 15:59:12 CEST 2011 $ LC_TIME=zh_CN.UTF-8 $ date 2011年 05月 14日 星期六 16:00:13 CEST 2011
Changing settings permanently
If you want more fine-grained control, you may manually change your system’s locale entries by modifying the file /etc/default/locale (or the user-specific $HOME/.pam_environment, which can be set by gnome-language-selector as well).
For example on a German system, to prevent system messages from being translated, you may use:
LANG=de_DE.UTF-8 LC_MESSAGES=POSIX
Note: changes take effect only after a fresh login.
Older releases, at least before Lucid (when did this change?), required modifying the file /etc/environment.
As an alternative to editing these files by hand update-locale may be used (this applies to older releases as well, at least before Raring):
$ update-locale LANG=de_DE.UTF-8 LC_MESSAGES=POSIX
If none of the above worked for you there is an option to change the actual definition of a locale. You need to edit a file with your locale, for instance:
$ sudo nano /usr/share/i18n/locales/ru_RU and change the definition that you need.
and then recompile locale definition files by:
$ sudo locale-gen
Read the man page for more information.
(Re-)Generating locales
Installing a language-pack usually implies the creation of a file under /var/lib/locales/supported.d, named by language code (i.e. ‘fr’ for French), listing all locales that shall be generated.
Generation of locales is then automatically triggered as part of the installation process.
In order to trigger generation manually, do:
$ sudo locale-gen Generating locales... de_CH.UTF-8... done de_DE.UTF-8... done en_US.UTF-8... up-to-date Generation complete.
You may also generate new locales by issuing:
$ sudo locale-gen fr_FR.UTF-8 Generating locales... fr_FR.UTF-8... done Generation complete.
This will also append the specified locale to /var/lib/locales/supported.d/local for future regenerations.
Troubleshooting
The gnome display manager (GDM) has its own settings, including GDM_LANG for example, and is known to change locale settings when running /etc/gdm/Xsession. You may want to examine GDM’s cache (/var/cache/gdm/$USER/dmrc) and restart GDM.
files
/etc/default/locale /etc/environment
additional help
Interesting man pages (note that the section number is important):
-
locale(1) about the locale command
-
locale(5) about locale definition files
Documentation about the common character sets:
-
ascii(7)
-
iso_8859_1(7)
-
utf8(7)
CategorySoftware
Локаль (locale или локализация) в Linux определяет, какой язык и какой набор символов (кодировку), пользователь видит в терминале. Посмотрим, как проверить текущие настройки языка и кодировки, как получить список всех доступных локалей, как сменить язык и кодировку для текущей сессии или установить их постоянно.
Для тех, кому лень читать всю статью до конца — чаще всего для локализации консоли достаточно повторно сконфигурировать пакет locales
:
$ sudo dpkg-reconfigure locales
Сначала будут созданы нужные локали (их выбрать на первом экране), потом установлена локаль по умолчанию (ее выбрать на втором экране).
Текущие настройки языка
Посмотрим информацию о текущем языковом окружении:
$ locale LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=
Список доступных локалей
Теперь посмотрим список всех установленных языков и кодировок:
$ locale -a C C.UTF-8 POSIX
Есть только системная локаль C.UTF-8
, которая присутствует всегда. А нам надо добавить еще две локали — en_US.UTF-8
и ru_RU.UTF-8
.
Добавить новую локаль
Смотрим список всех поддерживаемых (доступных для установки) локалей:
$ cat /etc/locale.gen
# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. # aa_DJ ISO-8859-1 # aa_DJ.UTF-8 UTF-8 # .......... # en_US.ISO-8859-15 ISO-8859-15 # en_US.UTF-8 UTF-8 # en_ZA ISO-8859-1 # .......... # ru_RU.KOI8-R KOI8-R # ru_RU.UTF-8 UTF-8 # ru_UA KOI8-U # .......... # zu_ZA ISO-8859-1 # zu_ZA.UTF-8 UTF-8
Устанавливаем нужные локали — en_US.UTF-8
и ru_RU.UTF-8
:
$ sudo locale-gen en_US.UTF-8 ru_RU.UTF-8 Generating locales (this might take a while)... en_US.UTF-8... done ru_RU.UTF-8... done Generation complete.
Второй способ установить локали — расскомментровать нужные строки в файле /etc/locale.gen
# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. # aa_DJ ISO-8859-1 # aa_DJ.UTF-8 UTF-8 # .......... # en_US.ISO-8859-15 ISO-8859-15 en_US.UTF-8 UTF-8 # en_ZA ISO-8859-1 # .......... # ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 # ru_UA KOI8-U # .......... # zu_ZA ISO-8859-1 # zu_ZA.UTF-8 UTF-8
И просто выполнить команду locale-gen
без указания локалей:
$ sudo locale-gen
Подробная информация о локалях
Более подробную информацию об установленных в системе локалях можно посмотреть так:
$ locale -a -v locale: en_US.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | English locale for the USA source | Free Software Foundation, Inc. address | http://www.gnu.org/software/libc/ email | bug-glibc-locales@gnu.org language | American English territory | United States revision | 1.0 date | 2000-06-24 codeset | UTF-8 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: ru_UA.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | Russian locale for Ukraine source | RFC 2319 email | bug-glibc-locales@gnu.org language | Russian territory | Ukraine revision | 1.0 date | 2000-06-29 codeset | UTF-8 locale: C.UTF-8 directory: /usr/lib/locale/C.UTF-8 ------------------------------------------------------------------------------- title | C locale email | aurel32@debian.org language | C revision | 1.6 date | 2016-08-08 codeset | UTF-8
Часть локалей размещена в архиве /usr/lib/locale/locale-archive
, а часть — в директориях внутри /usr/lib/locale/
.
Локаль по-умолчанию
Хорошо, нужные локали у нас теперь есть, осталось только задать локаль по умолчанию:
$ sudo update-locale LANG=ru_RU.UTF-8
Эта команда запишет в файл /etc/default/locale
строку:
LANG=ru_RU.UTF-8
После этого надо будет перезайти в систему. И проверяем информацию о языковом окружении:
$ 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=
Теперь все правильно, так что запишем эту информацию в файл /etc/default/locale
:
$ locale | sudo tee /etc/default/locale
$ cat /etc/default/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=
Быстрая локализация
До сих пор мы все делали ручками, но если лень — можно просто повторно сконфигурировать пакет locales
. Сначала будут созданы нужные локали (их нужно выбрать на первом экране), потом установлена локаль по умолчанию (ее нужно выбрать на втором экране).
$ sudo dpkg-reconfigure locales
Удалить лишние локали
После установки (генерации) локали, она помещается в архив /usr/lib/locale/locale-archive
. Файл архива — это файл, отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами. Посмотреть список локалей в архиве можно с помощью команды:
$ localedef --list-archive en_US.utf8 ru_RU.utf8 ru_UA.utf8
Удалить заданную локаль из файла архива:
$ sudo localedef --delete-from-archive ru_UA.utf8
Обратите внимание на название локали — ru_UA.utf8
, а не ru_UA.UTF-8
. Если неправильно указать локаль — она не будет удалена из архива:
$ sudo localedef --delete-from-archive ru_UA.UTF-8 locale "ru_UA.UTF-8" not in archive
В случае, если утилита locale-gen
была вызвана с опцией --no-archive
, надо удалить соответствующую директорию в /usr/lib/locale
:
$ cd /usr/lib/locale $ ls C.UTF-8 en_US.utf8 ru_RU.utf8 ru_UA.utf8 $ sudo rm -r ru_UA.utf8
Переводы для системных программ
Локализация для основных системных программ, чтобы получать сообщения на русском языке:
$ sudo apt install language-pack-ru
Локализация для текущей сессии
Достаточно временно установить переменную окружения LANG
в текущей сессии терминала:
$ export LANG=en_US.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Permission denied
$ export LANG=ru_RU.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Отказано в доступе
Или даже так — передать переменную LANG
конкретной программе:
$ export LANG=en_US.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Permission denied $ LANG=ru_RU.UTF-8 cat /etc/shadow cat: /etc/shadow: Отказано в доступе
Файлы конфигурации шрифта и клавиатуры
Настройки можно найти в файлах конфигурации /etc/default/console-setup
и /etc/default/keyboard
:
$ cat /etc/default/console-setup
# Consult the console-setup(5) manual page. ACTIVE_CONSOLES="/dev/tty[1-6]" CHARMAP="UTF-8" CODESET="CyrSlav" FONTFACE="Fixed" FONTSIZE="8x16" VIDEOMODE=
$ cat /etc/default/keyboard
# Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us,ru" XKBVARIANT="," XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll" BACKSPACE="guess"
Это системные настройки, пользователь может создать свои в файлах ~/.console-setup
и ~/.keyboard
.
Настройка шрифта и клавиатуры
Чтобы сформировать файлы конфигурации /etc/default/console-setup
и /etc/default/keyboard
можно использовать команды:
$ sudo dpkg-reconfigure console-setup
$ sudo dpkg-reconfigure keyboard-configuration
После того, как файлы конфигурации будут сформированы, нужно выполнить команду setupcon
без аргументов или перезагрузить систему.
Console-cyrillic
— это пакет для руссификации консоли (поддержки кириллицы в терминале), старый и известный пакет. Но в новых версиях операционных систем с системой инициализации systemd
он считается устаревшим, поскольку у systemd
есть нативные средства локализации консоли и наличие console-cyrillic
там не только не требуется, но и не рекомендуется.
Поиск:
CLI • Linux • Ubuntu • Команда • Конфигурация • Настройка • Сервер • Установка • Локализация • Русский • ru_RU.UTF-8
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Из статьи вы узнаете как в Linux, а именно Ubuntu и Debian, настроить locale для системы в целом и для пользователей по отдельности.
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, то утилита покажет региональные настройки для этого пользователя.
Имя локали состоит из нескольких частей. Вначале двумя маленькими символами обозначается язык, затем после нижнего подчеркивания идет название страны. Дальше идет кодировка, в современном мире чаще всего используется кодировка 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, но забыли его сгенерировать.
Настройка различных 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
После выполнения команды вы увидите псевдографический интерфейс:
После выбора locales для генерации, вам нужно будет выбрать locale по умолчанию, которая пропишется в файл /etc/default/locale:
Итог
Мы познакомились с настройками locale в linux на примерах операционных систем Debian и Ubuntu.
Изучили команды:
- locale – для просмотра используемой и сгенерированных локалей;
- locale-gen – для генерации локалей;
- dpkg-reconfigure locales – для генерации локалей и установки локали по умолчанию.
А также узнали про системные файлы:
- /etc/default/locale – в нём прописана локаль по умолчанию;
- /etc/locale.gen – здесь содержится список доступных локалей для генерации;
- .bashrc – с помощью этого файла, в домашнем каталоге пользователя, можно переопределить локаль для пользователя.
Сводка
Имя статьи
Региональные настройки (locale) в Linux
Описание
Из статьи вы узнаете как в Linux, а именно Ubuntu и Debian, настроить locale для системы в целом и для пользователей по отдельности
Содержание
После установки Ubuntu или иного дистрибутива из семейства Ubuntu необходимо русифицировать систему.
Настройка языка и региональных стандартов через графическую программу
В Ubuntu по умолчанию установлена графическая программа для настройки языка и региональных стандартов, она называется language-selector, в русифицированном меню ее название будет примерно таким «Язык системы».
Перед запуском программы настройте соединение с сетью Интернет.
Запуск language-selector:
В Unity: Главное меню на панели рабочего стола — в поле для ввода набрать название программы и нажать на появившийся значек программы
Сразу после запуска приложение проверит доступность поддержки языка и предложит установить недостающие пакеты локализации.
На вкладке «Язык» в поле «Язык для меню и окон» переместите в самый верх: русский (Российская Федерация);
На вкладке «Региональные форматы» в выпадающем списке выберите: русский (Российская Федерация);
Нажмите «Apple System-Wide» (Применить для всей системы)
Если вам понадобится установить другие языки или удалить установленые, то можно нажать на «Установка/удаление языков».
После выполненых изменений нужно перезайти в систему или перезагрузить компьютер.
Частичная русификация LiveCD
-
Запустите language-selector
-
Отклоните установку поддержки языка нажав на кнопку «Напомнить позже»
-
Нажмите на кнопку «Установка и удаление языков…»
-
Уберите галочки напротив всех языков, кроме Английского
-
Добавьте галочку напротив Русского языка
-
Нажмите кнопку «Применить изменения»
Настройка языка и региональных стандартов вручную
Сначала нужно установить пакеты русификации для установленных программ, затем переключить в настройках язык и региональные стандарты.
Установка переводов для системных программ
Локализация для основных программ, которые не зависят от окружения:
sudo apt-get install language-pack-ru
Локализация для компонентов окружения Gnome:
sudo apt-get install language-pack-gnome-ru
Локализация для компонентов окружения KDE:
sudo apt-get install language-pack-kde-ru
У окружений XFCE и LXDE переводы на разные языки устанавливаются вместе с программами.
Установка переводов для пользовательских программ
Локализация для веб браузера Firefox
sudo apt-get install firefox-locale-ru
Локализация для офисного пакета LibreOffice:
sudo apt-get install libreoffice-l10n-ru libreoffice-help-ru
Локализация для почтового клиента Thunderbird:
sudo apt-get install thunderbird-locale-ru
Русская справка для графического редактора GIMP:
sudo apt-get install gimp-help-ru
Словари
Русский словарь для проверки орфографии:
sudo apt-get install hunspell-ru
Тезаурус (словарь синонимов, антонимов и др.) для LibreOffice/OpenOffice.org:
sudo apt-get install mythes-ru
Англо-русский словарь в формате DICT:
sudo apt-get install mueller7-dict
Настройка локализации
Для русификации достаточно выполнить эту команду и перезайти в систему
sudo update-locale LANG=ru_RU.UTF-8
А теперь рассмотрим как русифицировать не используя эту команду.
Смотрим доступные локали
locale -a
Открываем файл с помощью текстового редактора
sudo gedit /etc/default/locale
Заменяем содержимое на
LANG=ru_RU.UTF-8
Если вам нужны украинские стандарты, вместо ru_RU напишите ru_UA.
Сохраните файл и перезайдите в систему.
В последнее время появились сообщения, что указание локали по умолчанию не достаточно, поэтому если локаль не поменялась попробуйте выполнить одну из этих команд, они делают одно и то же
sudo dpkg-reconfigure locales
sudo apt-get install --reinstall locales
Если вам нужно для каждого пользователя разный язык, тогда занесите эту же строчку у каждого пользователя в ~/.pam_environment
Менеджер входа в систему Lightdm тоже может переключать язык интерфейса системы (скорее всего задает соответствующие значения переменным при запуске графического окружения). Чтобы в нем выбрать язык нужно сделать выход из системы, когда появится экран Lightdm где нужно ввести логин и пароль для входа, на панели найдите выбор языка, и выберите нужный, затем войдите в систему.
Ссылки
I have a remote server which I installed and have been trying to unsuccessfully change the locale to french for a few hours. Below are the contents of my locale files:
/etc/default/locale
:
LANG="fr_FR.UTF-8"
LANGUAGE="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL="fr_FR.UTF-8
/var/lib/locales/supported.d/local
:
fr_FR.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
en_GB.ISO-8859-15 ISO-8859-15
fr_BE.UTF-8 UTF-8
fr_CA.UTF-8 UTF-8
fr_CH.UTF-8 UTF-8
fr_LU.UTF-8 UTF-8
fr_FR ISO-8859-1
Everything is still defaulting to english dates and the $ currency in my web app.
Is there something else I’m overlooking?
I should also mention that I have dpkg re-configured and restarted the server after changes were made.
muru
189k52 gold badges460 silver badges711 bronze badges
asked Dec 23, 2011 at 12:56
Run the command locale
— it should show your current locale.
Generate the locales for french:
sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8
Also, try regenerating the supported locale list by running:
sudo dpkg-reconfigure locales
And update/change the current default locale:
sudo update-locale LANG=fr_FR.UTF-8
Update
Extra steps to try:
-
Try:
sudo update-locale LANG="fr_FR.UTF-8" LANGUAGE="fr_FR" sudo dpkg-reconfigure locales
-
Perhaps adding LANG and LANGUAGE in
/etc/environment
could force a change. Try logout/login or rebooting. -
locale
will show your current locale for the current user. Perhaps it’s worth checking out these files just to be sure no local language variables are set:~/.profile
~/.bashrc
~/.bash_profile
More info:
- https://help.ubuntu.com/community/Locale
- https://serverfault.com/questions/228474/correctly-changing-default-locale-in-ubuntu-server-10-04-lts
answered Dec 23, 2011 at 13:37
Savvas RadevicSavvas Radevic
7,5932 gold badges36 silver badges47 bronze badges
9
You also have to edit /etc/profile
:
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"
answered Jan 30, 2019 at 19:56
WitekWitek
3,7937 gold badges29 silver badges39 bronze badges
1
I tried everything from sudo locale-gen
and sudo update-locale
to sudo update-locale
, and manually making entries in /etc/default/locale
and /etc/environment
with and without restarting.
Nothing seemed to work and my Python code was still throwing a Unicode error on Ubuntu 18.04l. Finally modifying the environment variable in ~/.bashrc
worked.
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Of course don’t forget to source ~/.bashrc
I know it’s not the recommended way, but nothing else worked for me.
karel
107k93 gold badges263 silver badges290 bronze badges
answered Jan 19, 2019 at 18:10
2
Locale is basically a set of environmental variables that defines the user’s language, region, and any special variant preferences that the user wants to see in their Linux interface. System libraries and locale-aware applications on the system use these environmental variables.
Locale settings usually consist of at least a language code, a country/region code, time/date format, numbers format setting, currency format setting, Color setting, etc. Here we will see how to set/change or view the system’s locale in Linux.
Viewing System Locale in Linux
For viewing the information regarding the currently installed locale use the following command on the terminal:-
$ locale
We will get a list of variables that can be reset to a different value according to our choice later on.
The current status can be seen using the following command:
localectl status
Display Details of a Specific Variable
We can also view more information about a specific variable that we saw when we run the locale command, for example, LC_TIME, which stores the time and date format, LC_PAPER which stores the paper size settings, LC_TELEPHONE which stores telephone settings format, etc.
You can get this information by using the following commands:-
$ locale -k LC_TIME $ locale -k LC_TELEPHONE $ locale -k LC_PAPER
Display All Available locale
Display a list of all available locales using the following command:-
$ locale -a
Setting up System Locale in Linux
We might want to change or set the system local, for that we have to use the update-locale program. The LANG variable allows us to set up the locale for the entire system.
For setting up LANG to en_IN.UTF-8 and removes definitions for LANGUAGE we can use the following command:-
$ sudo update-locale LANG=LANG=en_IN.UTF-8 LANGUAGE OR $ sudo localectl set-locale LANG=en_IN.UTF-8
Global locale settings
We can find global locale settings in /etc/default/locale on Ubuntu/Debian Linux distros that you can edit for configuring your system locale manually using the following command:-
$ sudo vi /etc/default/locale
To Change locale
We can also change the value of a locale that is preset, by editing the .bashrc profile by using the following command:-
sudo nano ~/.bashrc
We can set a global locale for a single user, by adding the following lines at the end of the ~/.bash_profile file
LANG="en_IN.utf8" export LANG
If you want to get more information about the System locale, update-locale and localectl just view the manual pages using the following command:-
$ man locale $ man update-locale $ man localectl
Locale is basically a set of environmental variables that defines the user’s language, region, and any special variant preferences that the user wants to see in their Linux interface. System libraries and locale-aware applications on the system use these environmental variables.
Locale settings usually consist of at least a language code, a country/region code, time/date format, numbers format setting, currency format setting, Color setting, etc. Here we will see how to set/change or view the system’s locale in Linux.
Viewing System Locale in Linux
For viewing the information regarding the currently installed locale use the following command on the terminal:-
$ locale
We will get a list of variables that can be reset to a different value according to our choice later on.
The current status can be seen using the following command:
localectl status
Display Details of a Specific Variable
We can also view more information about a specific variable that we saw when we run the locale command, for example, LC_TIME, which stores the time and date format, LC_PAPER which stores the paper size settings, LC_TELEPHONE which stores telephone settings format, etc.
You can get this information by using the following commands:-
$ locale -k LC_TIME $ locale -k LC_TELEPHONE $ locale -k LC_PAPER
Display All Available locale
Display a list of all available locales using the following command:-
$ locale -a
Setting up System Locale in Linux
We might want to change or set the system local, for that we have to use the update-locale program. The LANG variable allows us to set up the locale for the entire system.
For setting up LANG to en_IN.UTF-8 and removes definitions for LANGUAGE we can use the following command:-
$ sudo update-locale LANG=LANG=en_IN.UTF-8 LANGUAGE OR $ sudo localectl set-locale LANG=en_IN.UTF-8
Global locale settings
We can find global locale settings in /etc/default/locale on Ubuntu/Debian Linux distros that you can edit for configuring your system locale manually using the following command:-
$ sudo vi /etc/default/locale
To Change locale
We can also change the value of a locale that is preset, by editing the .bashrc profile by using the following command:-
sudo nano ~/.bashrc
We can set a global locale for a single user, by adding the following lines at the end of the ~/.bash_profile file
LANG="en_IN.utf8" export LANG
If you want to get more information about the System locale, update-locale and localectl just view the manual pages using the following command:-
$ man locale $ man update-locale $ man localectl