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

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

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 локаль на свой сервер?

169
задан 22.02.2020, 22:32

10 ответов

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

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

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
0
ответ дан 22.02.2020, 22:33
  • 1
    Этим Вопросом является tagget с сервер . И кто и почему downvoted этот, объясните. – Stian Soiland-Reyes 22.02.2020, 22:34
  • 2
    Примечание: Если Вы работаете регулярный Ubuntu и не сервер Ubuntu, изменения won' t переносят вне консоли (если Вы решаете открыть новую вкладку или закрыть терминал), до окончания в следующий раз, когда Вы входите в систему. Однако с помощью сервера Ubuntu обычно необходимо регистрироваться для открытия новой консоли так или иначе так это shouldn' t вопрос. – gilbertpilz 22.02.2020, 22:34
  1. проверьте, какие локали поддерживаются:

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

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

    sudo update-locale 
    
0
ответ дан 22.02.2020, 22:34
  • 1
    Вы могли подробно остановиться, почему и ru_RU и ru_RU.UTF-8 необходимы? Я don' t знают много о локалях. – Christophe Roussy 22.02.2020, 22:34
  • 2
    Если Вы работаете с php5-fpm you' потребность ll sudo service php5-fpm restart – Gerardo Suarez 22.02.2020, 22:35
  • 3
    ... тогда выполненный sudo update-locale – Vishal Chhodwani 22.02.2020, 22:35
  • 4
    Что Вы делаете если it' s не поддерживаемый? – apen 22.02.2020, 22:35
  • 5
    Это было точно, в чем я нуждался, но я должен был перезапустить Apache для получения его работающий... Спасибо! – joão tiago viegas 22.02.2020, 22:36
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
0
ответ дан 22.02.2020, 22:34
  • 1
    Это работало на меня. В моем случае у меня была та плохая ошибка записи для en_GB локалей. I' ve обновил мой /var/lib/locales/supported.d/mintlocale файл для содержания строк en_GB UTF-8, и en_GB.UTF-8 UTF-8 (дополнительный UTF-8 отсутствовал). – Tuncay Göncüoğlu 22.02.2020, 22:35

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

sudo apt-get install language-pack-XX

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

0
ответ дан 22.02.2020, 22:35
  • 1
    Я боялся, что это будет также изменение текущая локаль, но нет. Все прекрасно. Похож на лучший approch imo. Я don' t особенно потребность " переводы или другой stuff" но если я конкретно буду использовать локаль по некоторым причинам, я ожидаю, что он будет завершен. – Basil Bourque 22.02.2020, 22:35
  • 2
    Я думаю, что это является лучшим и большая часть ' Ubuntu' способ сделать это – gilbertpilz 22.02.2020, 22:36
  • 3
    Но генерация локалей обеспечивает материал как локализованный формат даты, десятичный разделитель, наборы символов и т.д. Пакеты языка также обеспечивают переводы, который является не обязательно намерением. –  22.02.2020, 22:36
  • 4
    Согласитесь с Oskar. Еще более сильный, если Вы рассматриваете, эта установка для сервера - большинство интерфейсов будет на английском языке так или иначе. – user393274 22.02.2020, 22:36

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

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

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

root@world:~# dpkg-reconfigure locales

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

root@world:~# locale -a
[ 116] Мне показалось, что это решение проще, чем добавление чего-либо в текстовые файлы, хотя оно и делает.

0
ответ дан 22.02.2020, 22:35

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

apt-cache search language-pack

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

jani@example:~$ 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:

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:~$

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

[114 ]

Теперь доступны ру локали. Системный языковой стандарт по умолчанию устанавливается путем редактирования /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:~$

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

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:~$ 
0
ответ дан 22.02.2020, 22:36

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

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

0
ответ дан 22.02.2020, 22:37
  • 1
    о, мой генерал локали создал tonns локалей, игнорируя locale.gen файл. Так используйте этот совет с осторожностью. – Basil Bourque 22.02.2020, 22:37

Не могу комментировать, поэтому я должен добавить это в качестве ответа.

Мне нужно было добавить «специальный» тип локали sr_RS.utf8@latin в Ubuntu.

Команда:

sudo locale-gen sr_RS.utf8@latin

не добавляет @latin к доступным локалям. Чтобы добиться успеха, команда должна выглядеть следующим образом:

sudo locale-gen sr_RS@latin.utf8

Команда:

sudo locale -a

теперь показывает:

sr_RS
sr_RS@latin
sr_RS.utf8
sr_RS.utf8@latin

Обратите внимание на синтаксическая разница между результатом locale -a и тем, как он добавляется командами locale-gen.

0
ответ дан 22.02.2020, 22:37
  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

    [ 119]
0
ответ дан 22.02.2020, 22:38
  1. проверить, какие локали поддерживаются:

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

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

     sudo dpkg-reconfigure locales
    
0
ответ дан 22.02.2020, 22:38
  • 1
    Я должен был добавить второй столбец: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local (UTF-8 происходит дважды) на Ubuntu 15.04. Иначе это работает. – Basil Bourque 22.02.2020, 22:38

Теги

Похожие вопросы