From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.2-sysv/chapter09/locale.html | 256 ++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 lfs-12.2-sysv/chapter09/locale.html (limited to 'lfs-12.2-sysv/chapter09/locale.html') diff --git a/lfs-12.2-sysv/chapter09/locale.html b/lfs-12.2-sysv/chapter09/locale.html new file mode 100644 index 0000000..f0dabad --- /dev/null +++ b/lfs-12.2-sysv/chapter09/locale.html @@ -0,0 +1,256 @@ + + + + + + 9.7. Настройка системной локали + + + + + + + + +

+ 9.7. Настройка + системной локали +

+
+

+ Некоторые переменные окружения, необходимые для поддержки вашего + языка. Правильная их установка влияет на: +

+
+
    +
  • +

    + Выходные данные программ, переводятся на ваш родной язык +

    +
  • +
  • +

    + Правильную интерпретацию символов в буквы, цифры и другие + классы. Это необходимо для того, чтобы bash правильно принимал + не-ASCII символы, в командной строке в неанглоязычных языковых + системах +

    +
  • +
  • +

    + Правильную для страны сортировку по алфавиту +

    +
  • +
  • +

    + Подходящий формат бумаги по умолчанию +

    +
  • +
  • +

    + Правильное форматирование денежных значений, значений времени и + дат +

    +
  • +
+
+

+ Ниже замените <ll> + двухбуквенным кодом нужного вам языка (например en), а <CC> двухбуквенным кодом + соответствующей страны (например GB). + <charmap> нужно + заменить на каноническую кодировку для выбраной вами локали. Также + могут присутствовать необязательные модификаторы, такие как + @euro. +

+

+ Список всех локалей, поддерживаемых Glibc, можно получить, выполнив + следующую команду: +

+
locale -a
+

+ Таблицы символов могут иметь несколько синонимов. Например + ISO-8859-1 так же называют iso8859-1 и iso88591. + Некоторые приложения не могут корректно обрабатывать различные + синонимы (например UTF-8 должно быть + указано как UTF-8, а не utf8), поэтому в большинстве случаев безопаснее + всего выбрать каноническое имя для конкретной локали. Для определения + канонического имени локали выполните команду ниже, заменив <locale name> на вывод + locale -a для желаемой + локали (например en_GB.iso88591 в нашем + примере). +

+
LC_ALL=<locale name> locale charmap
+

+ Для локали en_GB.iso88591 приведенная + выше команда напечатает: +

+
ISO-8859-1
+

+ Окончательная настройка локали будет выглядеть так: en_GB.ISO-8859-1. Важно, чтобы локаль, найденная с + помощью приведенной выше методики, была проверена перед её + добавлением в файлы запуска Bash: +

+
LC_ALL=<locale name> locale language
+LC_ALL=<locale name> locale charmap
+LC_ALL=<locale name> locale int_curr_symbol
+LC_ALL=<locale name> locale int_prefix
+

+ Приведенные выше команды должны вывести название языка, кодировку + символов, используемую в локали, местную валюту и телефонный код + страны. Если какая-либо из команд завершается с сообщением об ошибке, + похожим на указанное ниже, это означает, что ваша локаль либо не была + установлена в Главе 8, либо не поддерживается стандартной установкой + Glibc. +

+
locale: Cannot set LC_* to default locale: No such file or directory
+

+ Если это произойдет, вам следует либо установить желаемую локаль с + помощью команды localedef, либо рассмотреть + возможность выбора другой локали. Дальнейшие инструкции не + предполагают таких сообщений об ошибках от Glibc. +

+

+ Другие пакеты также могут работать некорректно (но не всегда будут + отображать какие-либо сообщения об ошибках), если название локали не + соответствует их ожиданиям. В таких случаях изучите, какие ещё + дистрибутивы Linux поддерживают ваш язык, возможно, это даст + некоторую полезную информацию +

+

+ Программа оболочки /bin/bash (далее именуемая как + «оболочка») + использует начальный набор файлов, чтобы помочь создать среду для + запуска. Каждый файл имеет определенное назначение и может по-разному + влиять на вход в систему и интерактивное окружение. Файлы в каталоге + /etc содержат глобальные настройки. + Если в домашнем каталоге существуют эквивалентные файлы, они могут + переопределить глобальные настройки. +

+

+ Интерактивная оболочка входа запускается после успешного входа с + использованием /bin/login, прочитав файл + /etc/passwd. Интерактивная оболочка без + входа в систему запускается из командной строки (например, + [prompt]$/bin/bash). Неинтерактивная + оболочка обычно присутствует когда выполняется скрипт оболочки. Он + неинтерактивен, поскольку обрабатывает скрипт и не ожидает ввода + пользователем между командами. +

+

+ Создайте файл /etc/profile после того, как будут определены правильные настройки + локали, чтобы установить желаемый язык, но вместо этого + установите локаль C.UTF-8 при запуске + консоли Linux (чтобы программы не выводили символы, которые консоль + Linux не может отобразить): +

+
cat > /etc/profile << "EOF"
+# Begin /etc/profile
+
+for i in $(locale); do
+  unset ${i%=*}
+done
+
+if [[ "$TERM" = linux ]]; then
+  export LANG=C.UTF-8
+else
+  export LANG=<ll>_<CC>.<charmap><@modifiers>
+fi
+
+# End /etc/profile
+EOF
+

+ Локаль C (используемая по умолчанию) и + en_US (одна из рекомендуемых для + англоязычных пользователей в Соединенных Штатах) это разные локали. + C использует 7-битный набор символов + US-ASCII и обрабатывает байты с установленным старшим битом как + недопустимые символы. Вот почему, например, команда ls заменяет их вопросительными + знаками в этой локали. Кроме того, попытка отправить почту с такими + символами из Mutt или Pine приводит к тому что, отправляемые + сообщения не соответствуют RFC (кодировка в исходящей почте указана + как unknown 8-bit). Рекомендуется + использовать локаль C, если вы уверены, + что вам никогда не понадобятся 8-битные символы. +

+
+ + + -- cgit v1.2.3