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

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

locale -aCen_AGen_AG.utf8en_AU.utf8en_BW.utf8en_CA.utf8en_DK.utf8en_GB.utf8en_HK.utf8en_IE.utf8en_INen_IN.utf8en_NGen_NG.utf8en_NZ.utf8en_PH.utf8en_SG.utf8en_US.utf8en_ZA.utf8en_ZW.utf8POSIX

Как я могу установить ru_RU привязка к моему серверу?

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

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

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

    sudo update-locale 

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

sudo apt-get install language-pack-XX

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

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

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

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
  3. Регенерируйте список (он вызовет locale-gen...)

     sudo dpkg-reconfigure locales

Я обнаружил, что locale-gen - это ваш friend.as in (например, добавление ивритского utf8):

root@world:~# locale-gen he_IL.UTF-8

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

root@world:~# dpkg-reconfigure locales

и проверьте, хорошо ли вы справились:

root@world:~# locale -a

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

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

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

apt-cache search language-pack

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

jani@example:~$ cat /etc/lsb-release DISTRIB_ID=UbuntuDISTRIB_RELEASE=14.04DISTRIB_CODENAME=trustyDISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

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

locale -a

Мой текущий язык - это en_IE:

jani@example:~$ localeLANG=en_IE.UTF-8LANGUAGE=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=POSIXLC_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:~$ dateSat Nov  1 15:36:51 UTC 2014jani@example:~$

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

jani@example:~$ sudo apt-get -y install language-pack-ru[..]Generating locales...  ru_RU.UTF-8... done  ru_UA.UTF-8... doneGeneration complete.jani@example:~$ 

Теперь доступны локали ru. Языковой стандарт системы по умолчанию устанавливается путем редактирования /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 +0000LANG="ru_RU.UTF-8"LC_MESSAGES=POSIXjani@example:~$

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

jani@example:~$ localeLANG=ru_RU.UTF-8LANGUAGE=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=POSIXLC_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 2014jani@example:~$ 

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

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

Для небольшого сервера, который не поддерживал нужную мне локаль (locale -a не перечислял его), все, что мне нужно было сделать, это запустить

sudo dpkg-reconfigure locales

который предоставлял текстовые диалоги, из которых я мог выбирать (страница вверх / вниз, вверх / вниз, пробел для выбора, вкладка для ОК и ввод для сохранения). Он автоматически восстановил локали.

Как уже говорили другие, вам нужно будет перезапустить любой процесс, которому требуется новая локаль.

Если у вас не установлены локали:

apt-get update && apt-get install locales

После этого просто добавьте желаемый язык

sudo locale-gen pt_BR
  1. Проверьте, какие локали уже поддерживаемый в вашем дистрибутиве. Открытый или cat файл /usr/share/i18n/SUPPORTED и скопируйте желаемый язык для добавления.
  2. на терминале введите sudo locale-gen locale_name.

    Например sudo locale-gen de_DE.iso885915@euro

  3. входить sudo update-locale

  4. Проверьте, установлен ли языковой стандарт с помощью locale -a