Как добавить локаль на сервер ubuntu?

141

В настоящее время у меня есть эти локали:

locale -a

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

Как установить ru_RU locale на мой сервер?

    
задан Silver Light 06.11.2011 в 11:24
источник

8 ответов

198
  1. проверить, какие локали поддерживаются:

    locale -a
    
  2. добавьте нужные вам места (например, ru ):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. запустите эту команду обновления

    sudo update-locale 
    
ответ дан PocketSam 06.11.2011 в 18:08
43

Я бы выбрал еще один маршрут, который ИМО лучше подходит для стиля Ubuntu. Используйте предоставленные пакеты . Есть пакеты для каждой локали, и они выполняют всю работу за вас ... нет необходимости редактировать / var файлы, которые, как я всегда считал, не предназначены для редактирования вручную.

sudo apt-get install language-pack-XX

, где XX обозначает код языка. Установка языка также установит все варианты для конкретной страны (например, установка языкового пакета - он установит it_CH.utf8 и it_IT.utf8, установка для NL будет устанавливать nl_AW, nl_AW.utf8, nl_BE.utf8 и nl_NL.utf8 ).     

ответ дан Palantir 21.01.2014 в 14:38
40
  1. проверить, какие локали поддерживаются:

    less /usr/share/i18n/SUPPORTED
    
  2. Добавить locale в список сгенерированных

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. Восстановить список (он будет вызывать locale-gen ...)

     sudo dpkg-reconfigure locales
    
ответ дан user123231 14.01.2013 в 17:54
16

Я нашел locale-gen вашим другом. как и в (добавление, например, иврита utf8):

[email protected]:~# locale-gen he_IL.UTF-8

вы можете даже перефразировать его так:

[email protected]:~# dpkg-reconfigure locales

и убедитесь, что вы сделали хорошо:

[email protected]:~# locale -a

Я нашел это решение более простым, чем добавление материала в текстовые файлы, даже если это то, что он делает.

    
ответ дан boazr 18.07.2013 в 11:10
5
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local

Я получаю следующее сообщение в точке 3: «Ошибка: неправильная запись« ru_RU.UTF8 »«

Эта работа для меня:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
    
ответ дан user123 21.01.2013 в 16:56
4

Используйте языковые пакеты Ubuntu. Все поддерживаемые языки доступны в репозиториях по умолчанию:

apt-cache search language-pack

Полный пример переключения языка в версии Ubuntu (сервер):

[email protected]:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Все доступные (т. е. уже установленные) локали могут быть перечислены с помощью:

locale -a

Моя текущая локаль en_IE :

[email protected]:~$ 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=
[email protected]:~$ date
Sat Nov  1 15:36:51 UTC 2014
[email protected]:~$

Поскольку у меня не было локалей ru, я должен установить языковой пакет ru:

[email protected]:~$ sudo apt-get -y install language-pack-ru
[..]
Generating locales...
  ru_RU.UTF-8... done
  ru_UA.UTF-8... done
Generation complete.
[email protected]:~$ 

Теперь доступны локали ru. Системная стандартная локаль устанавливается путем редактирования /etc/default/locale :

[email protected]:~$ 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
[email protected]:~$

Повторно зарегистрируйтесь и проверьте свой новый язык:

[email protected]:~$ 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=
[email protected]:~$ date
Сб. нояб.  1 15:43:45 UTC 2014
[email protected]:~$ 
    
ответ дан user272735 01.11.2014 в 17:07
1

Измените /etc/locale.gen , раскомментируйте или добавьте локали, которые вы хотите сгенерировать. Затем запустите sudo locale-gen .

Вы можете проверить, что в локалях добавлен locale -a , который отобразит все локали.

    
ответ дан hunse 20.01.2016 в 20:12
-2

Я делал то же самое, чтобы применить систему локали без перезагрузки или выйти из системы.

Сначала загрузите языковой пакет:

sudo apt-get install language-pack-ru-base

Затем проверьте, какие версии поддерживаются:

less /usr/share/i18n/SUPPORTED | grep ru_RU

Теперь примените результат (почти всегда используйте версию UTF-8 для любого языка!):

echo 'ru_RU.UTF-8 UTF-8' | sudo tee /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

Наконец, обновите файл по умолчанию, отправьте его, и вы закончите:

echo 'LANG=ru_RU.UTF-8' | sudo tee /etc/default/locale

применить изменения в системе:

. /etc/default/locale
LANGUAGE=ru_RU.UTF-8

и проверьте свои результаты:

locale
    
ответ дан mchid 11.12.2014 в 20:25