diff options
Diffstat (limited to 'lfs-12.1-sysv/chapter09/locale.html')
-rw-r--r-- | lfs-12.1-sysv/chapter09/locale.html | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/lfs-12.1-sysv/chapter09/locale.html b/lfs-12.1-sysv/chapter09/locale.html new file mode 100644 index 0000000..15d4163 --- /dev/null +++ b/lfs-12.1-sysv/chapter09/locale.html @@ -0,0 +1,256 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> + <title> + 9.7. Настройка системной локали + </title> + <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> + <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> + <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= + "text/css" media="print" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + </head> + <body class="lfs" id="lfs-12.1"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.1 + </h4> + <h3> + Глава 9. Системные настройки + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="usage.html" title= + "Настройка и использование загрузочных скриптов System V">Пред.</a> + <p> + Настройка и использование загрузочных скриптов System V + </p> + </li> + <li class="next"> + <a accesskey="n" href="inputrc.html" title= + "Создание файла /etc/inputrc">След.</a> + <p> + Создание файла /etc/inputrc + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter09.html" title= + "Глава 9. Системные настройки">Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.1">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-config-locale" name="ch-config-locale"></a>9.7. Настройка + системной локали + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + Некоторые переменные окружения, необходимые для поддержки вашего + языка. Правильная их установка влияет на: + </p> + <div class="itemizedlist"> + <ul> + <li class="listitem"> + <p> + Выходные данные программ, переводятся на ваш родной язык + </p> + </li> + <li class="listitem"> + <p> + Правильную интерпретацию символов в буквы, цифры и другие + классы. Это необходимо для того, чтобы <span class= + "command"><strong>bash</strong></span> правильно принимал + не-ASCII символы, в командной строке в неанглоязычных языковых + системах + </p> + </li> + <li class="listitem"> + <p> + Правильную для страны сортировку по алфавиту + </p> + </li> + <li class="listitem"> + <p> + Подходящий формат бумаги по умолчанию + </p> + </li> + <li class="listitem"> + <p> + Правильное форматирование денежных значений, значений времени и + дат + </p> + </li> + </ul> + </div> + <p> + Ниже замените <em class="replaceable"><code><ll></code></em> + двухбуквенным кодом нужного вам языка (например <code class= + "literal">en</code>), а <em class= + "replaceable"><code><CC></code></em> двухбуквенным кодом + соответствующей страны (например <code class="literal">GB</code>). + <em class="replaceable"><code><charmap></code></em> нужно + заменить на каноническую кодировку для выбраной вами локали. Также + могут присутствовать необязательные модификаторы, такие как + <code class="literal">@euro</code>. + </p> + <p> + Список всех локалей, поддерживаемых Glibc, можно получить, выполнив + следующую команду: + </p> + <pre class="userinput"><kbd class="command">locale -a</kbd></pre> + <p> + Таблицы символов могут иметь несколько синонимов. Например + <code class="literal">ISO-8859-1</code> так же называют <code class= + "literal">iso8859-1</code> и <code class="literal">iso88591</code>. + Некоторые приложения не могут корректно обрабатывать различные + синонимы (например <code class="literal">UTF-8</code> должно быть + указано как <code class="literal">UTF-8</code>, а не <code class= + "literal">utf8</code>), поэтому в большинстве случаев безопаснее + всего выбрать каноническое имя для конкретной локали. Для определения + канонического имени локали выполните команду ниже, заменив <em class= + "replaceable"><code><locale name></code></em> на вывод + <span class="command"><strong>locale -a</strong></span> для желаемой + локали (например <code class="literal">en_GB.iso88591</code> в нашем + примере). + </p> + <pre class="userinput"><kbd class="command">LC_ALL=<em class= + "replaceable"><code><locale name></code></em> locale charmap</kbd></pre> + <p> + Для локали <code class="literal">en_GB.iso88591</code> приведенная + выше команда напечатает: + </p> + <pre class="screen"><code class= + "computeroutput">ISO-8859-1</code></pre> + <p> + Окончательная настройка локали будет выглядеть так: <code class= + "literal">en_GB.ISO-8859-1</code>. Важно, чтобы локаль, найденная с + помощью приведенной выше методики, была проверена перед её + добавлением в файлы запуска Bash: + </p> + <pre class="userinput"><kbd class= + "command">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</kbd></pre> + <p> + Приведенные выше команды должны вывести название языка, кодировку + символов, используемую в локали, местную валюту и телефонный код + страны. Если какая-либо из команд завершается с сообщением об ошибке, + похожим на указанное ниже, это означает, что ваша локаль либо не была + установлена в Главе 8, либо не поддерживается стандартной установкой + Glibc. + </p> + <pre class="screen"><code class= + "computeroutput">locale: Cannot set LC_* to default locale: No such file or directory</code></pre> + <p> + Если это произойдет, вам следует либо установить желаемую локаль с + помощью команды <span class= + "command"><strong>localedef</strong></span>, либо рассмотреть + возможность выбора другой локали. Дальнейшие инструкции не + предполагают таких сообщений об ошибках от Glibc. + </p> + <p> + Другие пакеты также могут работать некорректно (но не всегда будут + отображать какие-либо сообщения об ошибках), если название локали не + соответствует их ожиданиям. В таких случаях изучите, какие ещё + дистрибутивы Linux поддерживают ваш язык, возможно, это даст + некоторую полезную информацию + </p> + <p> + Программа оболочки <span class= + "command"><strong>/bin/bash</strong></span> (далее именуемая как + <span class="quote">«<span class="quote">оболочка</span>»</span>) + использует начальный набор файлов, чтобы помочь создать среду для + запуска. Каждый файл имеет определенное назначение и может по-разному + влиять на вход в систему и интерактивное окружение. Файлы в каталоге + <code class="filename">/etc</code> содержат глобальные настройки. + Если в домашнем каталоге существуют эквивалентные файлы, они могут + переопределить глобальные настройки. + </p> + <p> + Интерактивная оболочка входа запускается после успешного входа с + использованием <span class= + "command"><strong>/bin/login</strong></span>, прочитав файл + <code class="filename">/etc/passwd</code>. Интерактивная оболочка без + входа в систему запускается из командной строки (например, + <code class="prompt">[prompt]$</code><span class= + "command"><strong>/bin/bash</strong></span>). Неинтерактивная + оболочка обычно присутствует когда выполняется скрипт оболочки. Он + неинтерактивен, поскольку обрабатывает скрипт и не ожидает ввода + пользователем между командами. + </p> + <p> + Создайте файл <code class="filename">/etc/profile</code> <span class= + "phrase">после того, как будут определены правильные настройки + локали, чтобы установить желаемый язык</span>, но вместо этого + установите локаль <code class="literal">C.UTF-8</code> при запуске + консоли Linux (чтобы программы не выводили символы, которые консоль + Linux не может отобразить): + </p> + <pre class="userinput"><kbd class= + "command">cat > /etc/profile << "EOF" +<code class="literal"># Begin /etc/profile + +for i in $(locale); do + unset ${i%=*} +done + +if [[ "$TERM" = linux ]]; then + export LANG=C.UTF-8 +else + export LANG=<em class= +"replaceable"><code><ll>_<CC>.<charmap><@modifiers></code></em> +fi + +# End /etc/profile</code> +EOF</kbd></pre> + <p> + Локаль <code class="literal">C</code> (используемая по умолчанию) и + <code class="literal">en_US</code> (одна из рекомендуемых для + англоязычных пользователей в Соединенных Штатах) это разные локали. + <code class="literal">C</code> использует 7-битный набор символов + US-ASCII и обрабатывает байты с установленным старшим битом как + недопустимые символы. Вот почему, например, команда <span class= + "command"><strong>ls</strong></span> заменяет их вопросительными + знаками в этой локали. Кроме того, попытка отправить почту с такими + символами из Mutt или Pine приводит к тому что, отправляемые + сообщения не соответствуют RFC (кодировка в исходящей почте указана + как <code class="computeroutput">unknown 8-bit</code>). Рекомендуется + использовать локаль <code class="literal">C</code>, если вы уверены, + что вам никогда не понадобятся 8-битные символы. + </p> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="usage.html" title= + "Настройка и использование загрузочных скриптов System V">Пред.</a> + <p> + Настройка и использование загрузочных скриптов System V + </p> + </li> + <li class="next"> + <a accesskey="n" href="inputrc.html" title= + "Создание файла /etc/inputrc">След.</a> + <p> + Создание файла /etc/inputrc + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter09.html" title= + "Глава 9. Системные настройки">Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.1">Начало</a> + </li> + </ul> + </div> + </body> +</html> |