Я написал веб-приложение, для которого пользовательский интерфейс на голландском языке. Я использую системные процедуры даты и времени для форматирования строк даты в приложении. Тем не менее, строки даты, которые системные форматы представлены на английском языке, но я хочу, чтобы они были на голландском языке, поэтому мне нужно установить язык системы. Как мне это сделать в Debian? Я попытался установить, LC_ALL=nl_NL
но это не имеет никакого эффекта:
$ date
Sat Aug 15 14:31:31 UTC 2009
$ LC_ALL=nl_NL date
Sat Aug 15 14:31:36 UTC 2009
Я помню, что настройка LC_ALL в моей настольной системе Ubuntu работает нормально. Нужно ли устанавливать дополнительные пакеты, чтобы сделать эту работу, или я делаю это совершенно неправильно?
linux
debian
localization
Хунли Лай
источник
источник
sudo dpkg-reconfigure locales
.Ответы:
Отредактируйте
/etc/default/locale
и установите содержимое:Вы можете проверить, какие локали вы создали в данный момент, используя:
Вы можете генерировать больше, редактируя
/etc/locale.gen
и раскомментируя строки для локалей, которые вы хотите включить. Затем вы можете сгенерировать их, запустив:Вы можете найти список поддерживаемых локалей в
/usr/share/i18n/SUPPORTED
Более подробная информация доступна на вики Debian .
источник
Вам может понадобиться установить
locales
пакет. Это спросит вас, какие локали генерировать. Если он уже установлен, тоdpkg-reconfigure locales
вы сможете генерировать больше локалей.источник
sudo
как вsudo dpkg-reconfigure locales
.NONE
.Ответы здесь неполные, как и в большинстве других. После объединения информации из нескольких мест для меня сработало (1) убедиться, что требуемая локаль была доступна (сгенерировать ее, если ее нет), а затем (2) установить переменные среды, связанные с локалью, в желаемую локаль.
В моем случае мне нужно было
en_US.UTF-8
программно (т.е. не в интерактивном режиме) установить в Docker-контейнере. FF выполнил то, что мне нужно, но в интерактивной оболочке он должен работать очень хорошо.В той же оболочке вам нужно будет сделать так,
source ~/.bashrc
чтобы env vars вступили в силу немедленно. Вы можете проверить, что языковой стандарт был настроен правильно, вызвавlocale
.Было много записей вопросов и ответов по этому вопросу, но только некоторые из них были действительно полезными. Кредит, где кредит должен:
источник
Ни один из этих ответов не работал для меня на контейнере LXC, установленном с:
Я всегда получал следующий вывод
locale-gen
, т.е. не генерировал никаких локалей (ни один из перечисленных):Запуск
dpkg-reconfigure locales
и выбор некоторых локалей не обновлялись,/etc/locale.gen
как я ожидал.Однако, когда я изменил этот файл вручную и раскомментировал нужные мне локали, то
locale-gen
начал работать правильно:Я также смог генерировать локали вручную следующим образом:
Но это не было постоянным решением: я обнаружил, что запуск
locale-gen
без--keep-existing
опции удалит все такие сгенерированные вручную локали, т.е. все локали, не перечисленные (и не прокомментированные) в/etc/locale.gen
.источник
Для веб-приложения может быть лучше использовать setlocale () внутри программы, вместо того, чтобы требовать, чтобы языковой стандарт системы по умолчанию устанавливался соответствующим образом снаружи. Менее свободные концы таким образом.
источник
setlocale
это не сработает.Но сначала вам нужно установить необходимый языковой пакет. На моем немецком VPS не было предустановленного пакета для английского языка. Итак, сначала вы убедитесь, что он установлен:
источник
Для тех, кто, как и я, в Ubuntu 14.04 LTS, так или иначе не имеет
/etc/locale.gen
файла, вы можете добавить новую локаль в/var/lib/locales/supported.d/local
и затем запустить:sudo dpkg-reconfigure locales
Вы также можете добавить французский (например) языковой стандарт таким образом (вместо редактирования
/var/lib/locales/supported.d/local
):sudo locale-gen fr_FR fr_FR.UTF-8
добавить и сгенерировать
ISO-8859-1
иUTF-8
кодовые наборыfr_FR
локали и, наконец, набрать:sudo dpkg-reconfigure locales
закончить работу
источник