summaryrefslogtreecommitdiff
path: root/lfs-12.2-sysv/chapter09/locale.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.2-sysv/chapter09/locale.html')
-rw-r--r--lfs-12.2-sysv/chapter09/locale.html256
1 files changed, 256 insertions, 0 deletions
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 @@
+<!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.2">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.2
+ </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.2">Начало</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>&lt;ll&gt;</code></em>
+ двухбуквенным кодом нужного вам языка (например <code class=
+ "literal">en</code>), а <em class=
+ "replaceable"><code>&lt;CC&gt;</code></em> двухбуквенным кодом
+ соответствующей страны (например <code class="literal">GB</code>).
+ <em class="replaceable"><code>&lt;charmap&gt;</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>&lt;locale name&gt;</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>&lt;locale name&gt;</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=&lt;locale name&gt; locale language
+LC_ALL=&lt;locale name&gt; locale charmap
+LC_ALL=&lt;locale name&gt; locale int_curr_symbol
+LC_ALL=&lt;locale name&gt; 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 &gt; /etc/profile &lt;&lt; "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>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</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.2">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>