Як змінити локаль за замовчуванням на сервері Ubuntu?


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 і перезапустив сервер після внесення змін.

Відповіді:


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
Jus швидке запитання. Чи потрібно перезавантажувати систему, щоб зміни набрали чинності?
Темна зірка1

1
Я думаю, що вихід / логін повинен зробити це
Савас Радевич,

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 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, а також додати до skelton для нових користувачів .....
mckenzm

1

Ви також повинні відредагувати /etc/profile:

export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

Це виглядає як коментар до відповіді Абхіману. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією. - З огляду
guntbert

Це не коментар. Це рішення, яке працювало для мене.
Witek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.