How do I add locale to ubuntu server?
Could you please expand on why are both ru_RU and ru_RU.UTF-8 needed? I don’t know much about locales.
For some reason command sudo locale-gen ru_RU.UTF-8 does nothing for me. As an alternative, one could go and manually edit file vi /etc/locale.gen to uncomment desired locales.
I would go another route, which is IMO better suited to the Ubuntu style. Use the packages provided. There are packages for each locale, and they do all the work for you. no need to edit /var files, which I always believed were not meant to be edited manually.
sudo apt-get install language-pack-XX
where XX stands for the language code. Installing a language will install also all the country-specific variants (for example, installing language-pack-it will install it_CH.utf8 and it_IT.utf8, installing for NL will install nl_AW, nl_AW.utf8, nl_BE.utf8 and nl_NL.utf8).
But generating the locales provides stuff like localized date format, decimal separator, character sets etc. The language packs also provides translations, which is not necessarily the intention.
Agree with Oskar. Even stronger if you consider this installation is for a server — most interfaces will be in english anyway.
I was afraid this would also change the current locale, but no. Everything is fine. Looks like the best approch imo. I don’t particularly need «translations or other stuff», but if I specifically use a locale for some reason, I expect it to be complete.
less /usr/share/i18n/SUPPORTED
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales
I had to add the second column: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local (UTF-8 occurs twice) on Ubuntu 15.04. Otherwise, it works.
On trusty locale-gen ru_RU.utf8 basically adds ru_RU.UTF-8 UTF-8 to /var/lib/locales/supported.d/local , and well, adds the locale. dpkg-reconfigure locales seems to run locale-gen , which in the lack of arguments installs locales from /var/lib/locales/supported.d/local , the ones not yet installed.
I’ve found locale-gen to be your friend. as in (adding hebrew utf8 for example):
root@world:~# locale-gen he_IL.UTF-8
you can even rehash it like so:
root@world:~# dpkg-reconfigure locales
and check that you did good:
I found this solution way simpler than adding stuff to text files, even though it is what it does.
Modify /etc/locale.gen , uncommenting or adding the locales you wish generated. Then run sudo locale-gen .
You can check that the locales are added with locale -a , which will show all locales.
oh, my locale-gen created a tonns of locales, ignoring locale.gen file. So use this advice with a caution.
The trusty manpage say: «Otherwise it generates all supported locales.» Although I’m on trusty right now, and it seems to consult /var/lib/locales/supported.d/local for a list of locales to be generated. Which contradicts the manpage.
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
I get the following message at point 3: «Error: Bad entry ‘ru_RU.UTF8′»
echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
This worked for me. In my case, I had that bad entry error for en_GB locales. I’ve updated my /var/lib/locales/supported.d/mintlocale file to contain the lines en_GB UTF-8 and en_GB.UTF-8 UTF-8 (the extra UTF-8 was missing).
Use Ubuntu language packs. All supported languages are available in default repositories:
apt-cache search language-pack
A full example of locale switching in Ubuntu (server) version:
jani@example:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
All available (i.e. already installed) locales can be listed with:
My current locale is en_IE :
jani@example:~$ locale LANG=en_IE.UTF-8 LANGUAGE= LC_CTYPE="en_IE.UTF-8" LC_NUMERIC="en_IE.UTF-8" LC_TIME="en_IE.UTF-8" LC_COLLATE="en_IE.UTF-8" LC_MONETARY="en_IE.UTF-8" LC_MESSAGES=POSIX LC_PAPER="en_IE.UTF-8" LC_NAME="en_IE.UTF-8" LC_ADDRESS="en_IE.UTF-8" LC_TELEPHONE="en_IE.UTF-8" LC_MEASUREMENT="en_IE.UTF-8" LC_IDENTIFICATION="en_IE.UTF-8" LC_ALL= jani@example:~$ date Sat Nov 1 15:36:51 UTC 2014 jani@example:~$
Because I didn’t have ru locales I have to install ru language pack:
jani@example:~$ sudo apt-get -y install language-pack-ru [..] Generating locales. ru_RU.UTF-8. done ru_UA.UTF-8. done Generation complete. jani@example:~$
Now the ru locales are available. The system default locale is set by editing /etc/default/locale :
jani@example:~$ sudo vi /etc/default/locale # Created by cloud-init v. 0.7.5 on Mon, 27 Oct 2014 18:46:13 +0000 LANG="ru_RU.UTF-8" LC_MESSAGES=POSIX jani@example:~$
Re-login and check your brand new locale:
jani@example:~$ 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=POSIX 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= jani@example:~$ date Сб. нояб. 1 15:43:45 UTC 2014 jani@example:~$
Localization (Русский)
Под локализацией (localization, l10n) и интернационализацией (internationalization, i18n) понимается процесс адаптации программного обеспечения к культуре какой-либо страны (см. Википедия:Локализация программного обеспечения).
В статье описано, как настроить поддержку русского языка в Arch Linux.
Настройка
Локализация системы подразумевает главным образом три вещи: настройку локали и настройку клавиатуры в виртуальной консоли и графическом окружении (Xorg). Ниже приведены краткие рекомендации по каждому из пунктов без углубления в детали. Более подробную информацию можно найти в профильных статьях:
Локаль
Локаль — набор параметров, определяющий региональные настройки пользовательского интерфейса, такие как язык, страна, часовой пояс, набор символов, формат вывода даты, времени, используемая денежная единица. Чтобы настроить русскую локаль в вашей системе, следуйте инструкциям ниже.
Отредактируйте файл /etc/locale.gen , раскомментировав строку ru_RU.UTF-8 UTF-8 , после чего сгенерируйте локаль:
Проверьте, что заявленная локаль теперь доступна, выполнив locale -a . Когда локаль сгенерирована, установите её в качестве системной:
# localectl set-locale ru_RU.UTF-8
Перезагрузитесь, чтобы изменения вступили в силу. Команда locale без аргументов выводит список относящихся к настройкам локали переменных окружения. Если всё в порядке, то приложения должны «русифицироваться».
- Приложение русифицируется только в том случае, если такая возможность предусмотрена его программой.
- Собственные языковые настройки приложений имеют приоритет перед настройками локали.
Виртуальная консоль
Настройки виртуальной консоли хранятся в файле /etc/vconsole.conf . Создайте файл и добавьте в него следующие строки:
В примере используется шрифт cyr-sun16 из пакета kbd (установлен по умолчанию, зависимость systemd). Если необходим шрифт покрупнее, то набор Terminus содержит шрифты разных размеров с поддержкой кириллических символов. Установите пакет terminus-font , после чего задайте необходимый шрифт переменной FONT в файле /etc/vconsole.conf . Шрифты Terminus именуются по схеме ter-* , список доступных шрифтов можно вывести командой:
$ ls /usr/share/kbd/consolefonts/ | grep 'ter-' | cut -d. -f1
Изменения вступят в силу после перезагрузки. Переключение языков привязано к комбинации клавиш Ctrl+Shift .
Xorg
Шрифты
Установите пакеты ttf-dejavu и ttf-liberation со шрифтами DejaVu и Liberation соответственно.
Клавиатура
Прежде всего необходимо узнать модель клавиатуры. Откройте графический эмулятор терминала (не виртуальную консоль!) и выполните:
Команда вернёт список основных настроек клавиатуры. Нас интересует значение в строке model: . Например, стандартная клавиатура для ПК будет называться pc104 или pc105 . Для игровых клавиатур и клавиатур ноутбуков, которые часто имеют дополнительные клавиши, значение будет другим.
Задайте настройки клавиатуры с помощью утилиты localectl:
# localectl set-x11-keymap --no-convert us,ru pc105 "" grp:alt_shift_toggle
- us,ru — устанавливаются две языковые раскладки (layouts), английская (основная) и русская (дополнительная).
- pc105 — модель клавиатуры; если ваша модель отличается, то укажите её.
- «» — т.н. вариант раскладки. Поскольку указана пустая строка, то для обеих языковых раскладок будет использоваться вариант qwerty .
- grp:alt_shift_toggle — блок дополнительных опций; в примере задаётся всего одна опция, переключение языков по комбинации клавиш Alt+Shift .
Перезапустите Xorg или перезагрузитесь, чтобы изменения вступили в силу.
Советы и рекомендации
Русские man-страницы
Установите пакет man-pages-ru с русскими страницами.
man показывает страницы с учётом локали. Для принудительного показа русских страниц используйте следующую команду:
Перекодировка тегов MP3
Установите пакет python-mutagen и выполните следующую команду в каталоге с коллекцией MP3-файлов:
$ find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1
Команда перекодирует старые теги из кодировки CP1251 в UTF8, запишет тег версии id3v2.4 и удалит теги первой версии.
Примечание: Не все проигрыватели из ОС Windows понимают теги формата 2.4. Поведение при этом различное: от игнорирования тега, до ошибки о повреждённом файле.
$ mpc update # дождитесь завершения, статус можно смотреть запуская mpc без параметров $ mpc clear $ mpc listall
Настройка локализации в Ubuntu 20.04
Набор действий для настройки локализации в системе Ubuntu 20.04 на русскую.
Проверка доступной локали
Если в системе установлены локали для русского языка, то можно увидеть примерно следующее.
ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 ru_UA ru_UA.koi8u ru_UA.utf8 russian
Пустой вывод будет означать, что нужные локали не установлены.
Установка локали
Перенастройка локалей выполняется командой.
Далее нужно выбрать необходимые локали, например в нашем случае это ru_RU.UTF-8. Там же в меню выберем локаль по умолчанию, в нашем примере тоже русскую.
Теперь локаль установлена и настроена. Необходимо переподключиться к консоли для использования новых настроек в сессии.
Альтернативный путь установки локали
Устанавливаем соответствующий пакет.
sudo apt-get install language-pack-ru
sudo update-locale LANG=ru_RU.UTF-8
Далее перезаходим в систему и проверяем через коману.
Результат должен быть таким.
LANG=ru_RU.utf8 LC_CTYPE="ru_RU.utf8" LC_NUMERIC="ru_RU.utf8" LC_TIME="ru_RU.utf8" LC_COLLATE="ru_RU.utf8" LC_MONETARY="ru_RU.utf8" LC_MESSAGES="ru_RU.utf8" LC_PAPER="ru_RU.utf8" LC_NAME="ru_RU.utf8" LC_ADDRESS="ru_RU.utf8" LC_TELEPHONE="ru_RU.utf8" LC_MEASUREMENT="ru_RU.utf8" LC_IDENTIFICATION="ru_RU.utf8" LC_ALL=