Debian 9: Как установить английский язык с немецким языком?

15

Я хочу использовать английский язык с настройками немецкого языка .


Сейчас моя система работает со следующей настройкой (настроенной во время процедуры установки в Debian Expert Installer):

  • Язык: English - English (Default)
  • Страна, территория или территория: other -> Europe -> Austria
  • Страна для базовых настроек локали по умолчанию: United States - en_US.UTF-8
  • Клавиатура: German

Мой вопрос сейчас:

Как я могу сохранить английский язык, но переключить текущую локаль ( United States - en_US.UTF-8) на желаемую немецкую локаль ( de_DE.UTF-8)?

Во время процедуры установки это было невозможно, поскольку произошла ошибка («Обнаружена неверная комбинация языковых / языковых настроек»).

Дейв
источник
Связанные (дубликаты?): Unix.stackexchange.com/questions/15291/set-lc-but-not-lc-all
Хайнци
Я только что посмотрел, как настроить английский с голландским языком (та же проблема), и первым хитом Google стал этот. Да здравствует StackExchange :-)
Тонни
1
Нашел это в «горячих сетевых вопросах», и теперь мне интересно: чего вы пытаетесь достичь? Английский, но с какими-то другими словами, специально для немецких? Как «Я только что сдал экзамен Abitur» или «Это поезд из Deutsche Bahn»?
Фабиан Релинг
@Fabian Я подозреваю, что сценарий использования здесь должен иметь английские сообщения, но немецкие форматы даты и т. Д.
Стивен Китт

Ответы:

16

en_DEне существует в качестве локали по умолчанию, поэтому вы не можете выбрать английский локализованный для немецкоязычных стран в качестве локали во время установки. ( Почему следует использовать update-locale вместо прямой настройки LANGUAGE? Описывает проверки, связанные с выбором локали.)

Есть два подхода к достижению того, что вам нужно.

  1. Одним из них является создание новой локали с вашими настройками; см. Как (легко) использовать новую локаль en _ **? для деталей.
  2. Другой способ заключается в более точной настройке ваших региональных настроек с использованием различных LC_переменных ; например:

    export LANG=en_US.UTF-8
    export LC_MONETARY=de_DE.UTF-8
    export LC_TIME=de_DE.UTF-8
    

    или, если вы хотите, чтобы немецкий язык использовался по умолчанию, за исключением сообщений:

    export LANG=de_DE.UTF-8
    export LC_MESSAGES=en_US.UTF-8
    

    (и сбросьте все другие конфликтующие LC_переменные, в частности, LC_ALLкоторые переопределяют все другие настройки). Вы можете проверить свои настройки с помощью localeпрограммы; см. Как работает программа "locale"? для деталей.

Стивен Китт
источник
Поскольку LANG является всего лишь запасным вариантом, ваше предложение не работает, если есть другие переменные LC_ *.
Шили
1
Ну, в этом весь смысл использования LANGздесь, но я прояснил это, спасибо.
Стивен Китт
Большое спасибо за вашу большую помощь, Стивен! Нужно ли сначала генерировать немецкий язык, прежде чем я смогу его ввести /etc/default/locale? Я полагаю, что сейчас у меня есть только американский язык, поэтому я боюсь, что de_DE.UTF-8он еще не доступен в моей системе?
Дейв
2
@ Дэйв, вам нужно сделать его доступным, да, либо запустив, sudo dpkg-reconfigure localesлибо установив locales-all. Вы не должны редактировать /etc/default/localeнапрямую, а использовать update-localeвместо этого (см. Первую ссылку в ответе).
Стивен Китт
@StephenKitt спасибо! Не могли бы вы дать мне указатель на то, куда добавить команды экспорта (в archlinux), чтобы сделать их доступными для всех программ и быть установленными при загрузке?
золотое дно