Как изменить локаль по умолчанию в Ubuntu Server?

29

У меня есть удаленный сервер, который я установил, и несколько часов безуспешно пытался сменить язык на французский. Ниже приведено содержимое моих файлов локали:

/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

В моем веб-приложении по-прежнему используются даты по умолчанию и английская валюта. Есть ли что-то еще, что я пропускаю? Я должен также упомянуть, что я переконфигурировал dpkg и перезапустил сервер после внесения изменений.

Темная Звезда1
источник

Ответы:

57

Запустите команду locale- она ​​должна показать ваш текущий язык.

Создайте локали для французского:

sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8

Также попробуйте восстановить список поддерживаемых локалей, выполнив:

sudo dpkg-reconfigure locales

И обновите / измените текущую локаль по умолчанию:

sudo update-locale LANG=fr_FR.UTF-8

Обновить

Дополнительные шаги, чтобы попробовать:

  1. Пытаться:

    sudo update-locale LANG="fr_FR.UTF-8" LANGUAGE="fr_FR"
    sudo dpkg-reconfigure locales
    
  2. Возможно, добавление LANG и LANGUAGE /etc/environmentможет привести к изменениям. Попробуйте выйти из системы / войти или перезагрузиться.

  3. localeпокажет текущую локаль для текущего пользователя. Возможно, стоит проверить эти файлы, просто чтобы убедиться, что локальные языковые переменные не установлены:~/.profile ~/.bashrc ~/.bash_profile

Больше информации:

Саввас Радевич
источник
1
Юс, быстрый вопрос. Нужно ли перезапускать систему, чтобы изменения вступили в силу?
Dark Star1
1
Я думаю, что выход / вход должен сделать это
Savvas Radevic
1
попробовать sudo update-locale LANG="fr_FR.UTF-8" LANGUAGE="fr_FR"и sudo dpkg-reconfigure locales. Наконец, возможно, добавление LANG и LANGUAGE /etc/environmentможет привести к изменениям. Попробуйте перезагрузиться, возможно, это требуется для служб сервера. :)
Саввас Радевич
1
sudo update-locale var=localeи перезагрузка у меня работала в Ubuntu Server 16.04.
Даниэль
1
@ DarkStar1 Насчет перезапуска системы мне пришлось перезагрузить.
Альфонсо Нишикава
2

Я пробовал все от sudo locale-genи sudo update-localeдо sudo update-locale, и вручную делать записи в /etc/default/localeи /etc/environmentс и без перезапуска.

Казалось, ничего не работает, и мой код Python по-прежнему выдавал ошибку Unicode в Ubuntu 18.04l. Наконец, изменив переменную окружения в ~/.bashrcраб.

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Конечно, не забудьте source ~/.bashrc

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

Абхиману Кумар
источник
Конечно, это должно быть сделано для каждого пользователя .bashrc, а также добавлено в скелет для новых пользователей .....
mckenzm
1

Вы также должны отредактировать /etc/profile:

export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"
Витек
источник
Это похоже на комментарий к ответу Абхиману. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом. - Из обзора
Гантберт
Это не комментарий. Это решение, которое сработало для меня.
Витек