<!--
     The FreeBSD Russian Documentation Project

     $FreeBSD$
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml,v 1.6 2004/02/20 12:25:59 den Exp $

     Original revision: 1.95
-->

<chapter id="l10n">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Andrey A.</firstname>
	<surname>Chernov</surname>
	<contrib>Предоставил </contrib>
      </author>
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Michael C.</firstname>
	<surname>Wu</surname>
	<contrib>Переписал </contrib>
      </author>
      <!-- 30 Nv 2000 -->
    </authorgroup>
  </chapterinfo>

  <title>Локализация - I18N/L10N использование и настройка</title>

  <sect1 id="l10n-synopsis">
    <title>Краткий обзор</title>

    <para>FreeBSD - это очень распределенный проект, пользователи
      и контрибьюторы которого находятся в самых разных частях света.
      В этой главе рассказывается о возможностях интернационализации 
      и локализации FreeBSD, которые позволяют не-англоговорящим 
      пользователям делать свою работу. Существует много подходов в 
      i18n реализации - как на системном уровне, так и на уровне 
      приложений, так что, где это возможно, мы будем давать читателю 
      ссылки на более углубленные источники документации.</para>

    <para>После прочтения этой главы, вы будете знать:</para>
    <itemizedlist>
      <listitem><para>Как разные языки и региональные настройки кодируются
      в современных операционных системах.</para></listitem>
      <listitem><para>Как установить региональные настройки для вашей 
      оболочки.</para></listitem>
      <listitem><para>Как настроить вашу консоль для отличных от
      английского языков.</para></listitem>
      <listitem><para>Как эффективно использовать X Window System с разными 
      языками.</para></listitem>
      <listitem><para>Где найти дополнительную документацию по созданию
      i18n-совместимых приложений.</para></listitem>
   </itemizedlist>

    <para>Перед чтением этой главы вам следует::</para>

    <itemizedlist>
      <listitem><para>Знать как установить дополнительные приложения сторонних
      разработчиков (<xref linkend="ports">).</para></listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="l10n-basics">
    <title>Основы</title>

    <sect2>
      <title>Что такое I18N/L10N?</title>
    <indexterm><primary>интернационализация</primary></indexterm> 
    <indexterm><primary>локализация</primary></indexterm> 

      <para>Разработчики сократили интернационализацию в термин I18N, по числу
        символов между первым и последним символом интернационализации.  В
	названии L10N используется тот же принцип от <quote>локализации</quote>.
	Совместно используемые I18N/L10N методы, протоколы и приложения
	позволяют пользователям использовать языки по своему выбору.</para>

      <para>I18N приложения написаны с применением набора I18N посредством
        библиотек. Это позволяет разработчикам писать простые файлы и переводить
	отображаемые меню и надписи на разные языки. Мы настоятельно рекомендуем
	программистам следовать этому соглашению.</para>
    </sect2>

    <sect2>
      <title>Почему я должен использовать I18N/L10N?</title>

      <para>I18N/L10N используется всегда, когда вы хотите просмотреть, ввести
        или обработать данные на отличных от английского языках.</para>
    </sect2>

    <sect2>
      <title>Какие языки поддерживаются в проекте I18N?</title>

      <para>I18N и L10N не являются специфичными для FreeBSD. На текущий момент
        у вас есть выбор между самыми распространенными языками мира, включая, но
        не ограничиваясь: китайский, немецкий, японский, корейский, французский,
        русский, вьетнамский и др.</para>
    </sect2>
  </sect1>

  <sect1 id="using-localization">
    <title>Использование локализации</title>

    <para>При всем своем величии, I18N не специфична для FreeBSD и
      является, по сути, соглашением.  Следование этому соглашению
      помогает FreeBSD, и мы это приветствуем.</para>
    <indexterm><primary>locale</primary></indexterm>

    <para>Настройки локализации базируются на трех основных терминах:
      код языка, код страны и кодировка. Имена локализаций строятся из этих
      частей следующим образом:</para>

    <programlisting><replaceable>кодязыка</replaceable>_<replaceable>кодстраны</replaceable>.<replaceable>кодировка</replaceable></programlisting>

    <sect2>
      <title>Язык и код страны</title>
      <indexterm><primary>language codes</primary></indexterm>
      <indexterm><primary>country codes</primary></indexterm>

      <para>Чтобы настроить FreeBSD (или любую другую &unix;-систему,
        поддерживающую I18N) на использование специфического языка, пользователю
	нужно выяснить коды этого языка и страны (коды страны сообщают
	приложению какой именно диалект языка этой страны нужно использовать). К
	тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой
	выбор в зависимости от этого. Далее показаны примеры кодов 
	языка/страны:</para>

      <informaltable frame="none">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Код языка/страны</entry>
	      <entry>Описание</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>en_US</entry>
	      <entry>Английский - Соединенные Штаты</entry>
	    </row>

	    <row>
	      <entry>ru_RU</entry>
	      <entry>Русский для России</entry>
	    </row>

	    <row>
	      <entry>zh_TW</entry>
	      <entry>Традиционный китайский для Тайваня</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

    </sect2>

    <sect2>
      <title>Кодировки</title>
      <indexterm><primary>кодировки</primary></indexterm>
      <indexterm><primary>ASCII</primary></indexterm>

      <para>Некоторые языки используют не соответствующие ASCII кодировки,
        которые используют для кодирования 8 бит, расширенное или
	многобайтовое представление символов (подробности см. в	&man.multibyte.3;).
	Старые приложения не распознают такие кодировки и ошибочно принимают их
	за управляющие символы. Новые приложения обычно распознают 8-битные
	символы. В зависимости от реализации, пользователю может
	потребоваться компиляция приложения с поддержкой расширенного или
	многобайтного представления символов, или же просто правильная его
	настройка. Чтобы иметь возможность вводить и обрабатывать символы с
	расширенным или многобайтным представлением, <ulink 
	url="../../../../ru/ports/index.html">Коллекция портов FreeBSD</ulink>
	предоставляет поддержку разных языков для различных приложений. Смотрите
	документацию по I18N в соответствующем порту FreeBSD.</para>

      <para>В частности, пользователю необходимо читать прилагаемую к приложению
        документацию чтобы решить, как правильно его настроить или
	указать правильные параметры configure/Makefile/компилятору.</para>

      <para>Следует помнить следующие вещи:</para>

      <itemizedlist>
	<listitem>
	  <para>Наборы символов, использующие один байт для кодирования символа
	  (см. &man.multibyte.3;), например,
	    ISO-8859-1, ISO-8859-15, KOI8-R, CP437.</para>
	</listitem>

	<listitem>
	  <para>Расширенные или многобайтные кодировки, например, EUC, Big5.</para>
	</listitem>
      </itemizedlist>

      <para>Вы можете посмотреть актуальный список наборов символов на сайте
	<ulink
	url="http://www.iana.org/assignments/character-sets">IANA Registry</ulink>.</para>

      <note>
      <para>Вместо этого, FreeBSD версий 4.5 и выше используют X11-совместимые
        кодировки для локализации.</para>
      </note>

    </sect2>

    <sect2>
      <title>Приложения, использующие I18N</title>

      <para>В системе Портов и Пакетов FreeBSD в название приложений, 
        поддерживающих I18N, включена аббревиатура <literal>I18N</literal> для
	легкой их идентификации. И, тем не менее, не все приложения поддерживают
	требуемый язык.</para>
    </sect2>

    <sect2 id="setting-locale">
      <title>Настройка локализации</title>

      <para>Обычно достаточно экспортировать значение имени локализации в
        переменной <envar>LANG</envar> Вашей оболочки. Это можно сделать в
	пользовательском <filename>~/.login_conf</filename> файле или в
	инициализационном файле пользовательской оболочки 
	(<filename>~/.profile</filename>, <filename>~/.bashrc</filename>, 
	<filename>~/.cshrc</filename>). Нет надобности устанавливать отдельные
	параметры локализации такие как <envar>LC_CTYPE</envar>,
	<envar>LC_CTIME</envar>. За дополнительной информацией, пожалуйста, 
	обращайтесь к документации FreeBSD по нужному вам языку.</para>

      <para>Вам следует установить следующие переменные окружения в ваших
        конфигурационных файлах:</para>

      <itemizedlist>
        <indexterm><primary>POSIX</primary></indexterm>
        <listitem>
	  <para><envar>LANG</envar> для семейства функций &posix;
	    &man.setlocale.3;</para>
	</listitem>

        <indexterm><primary>MIME</primary></indexterm>
	<listitem>
	  <para><envar>MM_CHARSET</envar>набор символов MIME для 
	    приложений</para>
	</listitem>
      </itemizedlist>

      <para>Эти настройки включают конфигурацию оболочки пользователя,
        конфигурацию конкретных приложений и конфигурацию X11.</para>

      <sect3>
	<title>Методы настройки локализации</title>
        <indexterm><primary>locale</primary></indexterm>
        <indexterm><primary>login class</primary></indexterm>

	<para>Существует два метода настройки локализации и оба описаны ниже.
	  Первый (рекомендуемый) заключается в задании переменных в <link
	  linkend="login-class">классе логина</link>, другой метод заключается в
	  задании переменных окружения в
	  <link linkend="startup-file">инициализационном
	  файле</link> системной оболочки.</para>

	<sect4 id="login-class">
	  <title>Метод Login Classes</title>

	  <para>Этот метод позволяет установить переменные окружения,
	    необходимые для установки локализации и набора символов MIME,
	    однократно для любых оболочек, вместо того, чтобы добавлять
	    установку этих переменных в инициализационный файл каждой оболочки.
	    <link linkend="usr-setup">Настройка на уровне пользователя</link> может
	    быть сделана самим пользователем, а <link linkend="adm-setup">
	    Настройка на уровне администратора</link> требует привилегий
	    суперпользователя.</para>

	  <sect5 id="usr-setup">
	    <title>Настройка на уровне пользователя</title>

	    <para>Вот минимальный пример файла <filename>.login_conf</filename> 
	      в домашнем каталоге пользователя, в котором задаются обе переменные
	      для кодировки Latin-1:</para>

	    <programlisting>me:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:</programlisting>

	    <indexterm><primary>Traditional Chinese</primary><secondary>BIG-5 encoding</secondary></indexterm>
	    <para>Это пример <filename>.login_conf</filename>, который задает
	      переменные для Традиционного Китайского языка в кодировке BIG-5.
	      Обратите внимание, что задается намного больше переменных, потому
	      что некоторое программы некорректно воспринимают переменные
	      окружения локализации для Китая, Японии и Кореи.</para>

	    <programlisting>#Пользователи, которые не хотят использовать
денежные единицы 
#и форматы времени Тайваня, могут вручную изменить каждую переменную
me:\
	:lang=zh_TW.Big5:\
	:lc_all=zh_TW.Big:\
	:lc_collate=zh_TW.Big5:\ 
	:lc_ctype=zh_TW.Big5:\
	:lc_messages=zh_TW.Big5:\
	:lc_monetary=zh_TW.Big5:\
	:lc_numeric=zh_TW.Big5:\
	:lc_time=zh_TW.Big5:\
	:charset=big5:\
	:xmodifiers="@im=xcin": #Setting the XIM Input Server</programlisting>

	    <para>За подробностями обращайтесь к разделу
	      <link linkend="adm-setup">Настройка на
	      уровне администратора</link> и &man.login.conf.5;.</para>
	  </sect5>

	  <sect5 id="adm-setup">
	    <title>Настройка на уровне администратора</title>

	    <para>Проверьте, что класс логина пользователя в 
	      <filename>/etc/login.conf</filename> задает нужный язык.
	        Убедитесь, что эти настройки присутствуют в
	        <filename>/etc/login.conf</filename>:</para>

	    <programlisting><replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\
	:charset=<replaceable>MIME_charset</replaceable>:\
	:lang=<replaceable>locale_name</replaceable>:\
	:tc=default:</programlisting>

	    <para>Используя наш предыдущий пример с Latin-1, это должно
	      выглядеть так:</para>

	    <programlisting>german:German Users Accounts:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:\
	:tc=default:</programlisting>

	    <bridgehead renderas=sect4>Изменение класса логина с помощью 
	      &man.vipw.8;</bridgehead>

	    <indexterm>
        <primary><command>vipw</command></primary>
      </indexterm>
	    <para>Используйте <command>vipw</command> для добавления новых
	    пользователей и отредактируйте запись о пользователе, чтобы она была
	    похожа на эту:</para>

	    <programlisting>user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>

	    <bridgehead renderas=sect4>Изменение класса логина с помощью 
	      &man.adduser.8;</bridgehead>

	    <indexterm>
        <primary><command>adduser</command></primary>
      </indexterm>
	    <indexterm><primary>login class</primary></indexterm>
	    <para>Используйте <command>adduser</command> для добавления новых
	      пользователей и сделайте следующее:</para>

	    <itemizedlist>
	      <listitem>
		<para>Установите <literal>defaultclass =
		  <replaceable>язык</replaceable></literal> в
		  <filename>/etc/adduser.conf</filename>. Помните, что в этом
		    случае вы должны задать <literal>default</literal> класс для
		    всех пользователей других языков.</para>
	      </listitem>

	      <listitem>
		<para>Другой способ заключается в задании класса логина каждый
		  раз, когда &man.adduser.8; попросит об этом:
		  <screen><prompt>Enter login class: default []: </prompt></screen>
		</para>
	      </listitem>

	      <listitem>
		<para>Еще один способ - использовать следующее для каждого
		  пользователя другого языка, которого вы хотите
		  добавить:</para>

		<screen>&prompt.root; <userinput>adduser -class <replaceable>язык</replaceable></userinput></screen>
	      </listitem>
	    </itemizedlist>

	    <bridgehead renderas=sect4>Изменение класса логина с помощью 
	      &man.pw.8;</bridgehead>
	    <indexterm><primary><command>pw</command></primary></indexterm>
	    <para>Если для добавления новых пользователей вы используете
	      утилиту &man.pw.8;, запускайте ее с такими параметрами:</para>

	    <screen>&prompt.root; <userinput>pw useradd
	    <replaceable>имя_пользователя</replaceable> -L <replaceable>язык</replaceable></userinput></screen>
	  </sect5>
	</sect4>

	<sect4 id="startup-file">
	  <title>Метод инициализационных файлов оболочки</title>

	  <note>
	    <para>Этот метод не рекомендуется, потому что он требует разных
	      настроек для каждой оболочки. Вместо этого используйте
	      <link linkend="login-class">Метод класса логина</link>.</para>
	  </note>

	  <indexterm><primary>MIME</primary></indexterm>
	  <indexterm><primary>locale</primary></indexterm>
	  <para>Чтобы добавить локализацию и набор символов MIME, просто
	    установите две переменные окружения, приведенные ниже, в
	    инициализационные файлы оболочек <filename>/etc/profile</filename>
	    и/или <filename>/etc/csh.login</filename>. Для примера мы используем
	    немецкий язык:</para>

	  <para>В <filename>/etc/profile</filename>:</para>

	  <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar>
<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>

	  <para>Или в <filename>/etc/csh.login</filename>:</para>

	  <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar>
<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>

	  <para>Как вариант, вы можете добавить установки, приведенные выше в
	    <filename>/usr/share/skel/dot.profile</filename> (соответствует
	    установкам в <filename>/etc/profile</filename> выше), или 
	    <filename>/usr/share/skel/dot.login</filename> (соответствует
	    установкам в <filename>/etc/csh.login</filename> выше).</para>

	  <para>Для X11:</para>

	  <para>В <filename>$HOME/.xinitrc</filename>:</para>

	  <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar></programlisting>

	  <para>Или:</para>

	  <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar></programlisting>

	  <para>В зависимости от вашей оболочки (см. выше).</para>

	</sect4>
      </sect3>
    </sect2>

    <sect2 id="setting-console">
      <title>Настройка консоли</title>

      <para>Для всех однобайтовых кодовых таблиц, укажите подходящие
	консольные шрифты в <filename>/etc/rc.conf</filename> для
	требуемого языка:</para>

      <programlisting>font8x16=<replaceable>имя_шрифта</replaceable>
font8x14=<replaceable>имя_шрифта</replaceable>
font8x8=<replaceable>имя_шрифта</replaceable></programlisting>

      <para>The <replaceable>имя_шрифта</replaceable> берется из каталога
        <filename>/usr/share/syscons/fonts</filename>,
	без указания расширения <filename>.fnt</filename>.</para>

      <indexterm>
        <primary><application>sysinstall</application></primary>
      </indexterm>
      <indexterm><primary>keymap</primary></indexterm>
      <indexterm><primary>screenmap</primary></indexterm>
      <para>Убедитесь также в установке правильных значений keymap и screenmap
	для вашей однобайтовой кодовой таблицы через
	<filename>/stand/sysinstall</filename>.
	В <application>sysinstall</application> выберите
	<guimenuitem>Configure</guimenuitem>, затем
	<guimenuitem>Console</guimenuitem>.  Или добавьте следующие строки в
	<filename>/etc/rc.conf</filename>:</para>

      <programlisting>scrnmap=<replaceable>screenmap_name</replaceable>
keymap=<replaceable>keymap_name</replaceable>
keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting>
	
      <para><replaceable>screenmap_name</replaceable> берется из
        каталога <filename>/usr/share/syscons/scrnmaps</filename>, без
	суффикса <filename>.scm</filename>.
	Screenmap с соответствующим шрифтом обычно используется в качестве
	обходного пути для расширения 8 бит до 9 бит в псевдографическую
	область VGA адаптера, например для удаления букв из этой области
	если используется 8-битный шрифт.</para>

      <para>Если даемон мыши <application>moused</application> включен
	добавлением в <filename>/etc/rc.conf</filename> следующей
	строки:</para>

<programlisting>moused_enable="YES"</programlisting>

      <para>прочтите информацию о курсоре мыши в следующем параграфе.</para>

      <indexterm>
        <primary><application>moused</application></primary>
      </indexterm>
      <para>По умолчанию драйвер &man.syscons.4; выделяет для курсора мыши
	в таблице символов диапазон 0xd0-0xd3.  Если в вашем языке
	используется этот диапазон, переместите этот диапазон.  В
	FreeBSD версий до 5.0, добавьте следующую строку в файл
	конфигурации ядра:</para>

      <programlisting>options		SC_MOUSE_CHAR=0x03</programlisting>

      <para>Для FreeBSD версий 4.4 и выше включите следующую строку в
	<filename>/etc/rc.conf</filename>:</para>

      <programlisting>mousechar_start=3</programlisting>

      <para><replaceable>keymap_name</replaceable> берется из каталога
        <filename>/usr/share/syscons/keymaps</filename>, без расширения
	<filename>.kbd</filename>.  Если вы не знаете какую таблицу
	использовать, запустите &man.kbdmap.1; для тестирования таблицы
	без перезагрузки.</para>

      <para><literal>keychange</literal> обычно требуется для сопоставления
	функциональных клавиш выбранному типу терминала, поскольку
	последовательности функциональных клавиш не могут быть определены
	в раскладке клавиатуры.</para>

      <para>Убедитесь также, что для всех записей <literal>ttyv*</literal>
	в <filename>/etc/ttys</filename> установлен подходящий тип терминала.
	Имеющиеся типы соответствуют следующим кодировкам:</para>

      <informaltable frame="none">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Кодовая таблица</entry>
	      <entry>Тип терминала</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>ISO-8859-1 or ISO-8859-15</entry>
	      <entry><literal>cons25l1</literal></entry>
	    </row>

	    <row>
	      <entry>ISO-8859-2</entry>
	      <entry><literal>cons25l2</literal></entry>
	    </row>

	    <row>
	      <entry>ISO-8859-7</entry>
	      <entry><literal>cons25l7</literal></entry>
	    </row>

	    <row>
	      <entry>KOI8-R</entry>
	      <entry><literal>cons25r</literal></entry>
	    </row>

	    <row>
	      <entry>KOI8-U</entry>
	      <entry><literal>cons25u</literal></entry>
	    </row>

	    <row>
	      <entry>CP437 (VGA default)</entry>
	      <entry><literal>cons25</literal></entry>
	    </row>

	    <row>
	      <entry>US-ASCII</entry>
	      <entry><literal>cons25w</literal></entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>Для расширенных кодировок, а также для многобайтовых кодировок,
	используйте порт FreeBSD из каталога
	<filename>/usr/ports/<replaceable>language</replaceable></filename>.
	Некоторые порты выводят информацию на консоль, хотя для системы
	выглядят как последовательные псевдотерминалы, следовательно вы
	должны зарезервировать достаточное количество псевдотерминалов
	и для X11 и для последовательных псевдоконсолей.  Вот неполный
	список приложений для использования этих кодировок в консоли:</para>

      <informaltable frame="none">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Язык</entry>
	      <entry>Приложение</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>Традиционный китайский (BIG-5)</entry>
	      <entry><filename role="package">chinese/big5con</filename></entry>
	    </row>

	    <row>
	      <entry>Японский</entry>
	      <entry><filename role="package">japanese/ja-kon2-*</filename> or
	        <filename role="package">japanese/Mule_Wnn</filename></entry>
	    </row>

	    <row>
	      <entry>Корейский</entry>
	      <entry><filename role="package">korean/ko-han</filename></entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>
    </sect2>

    <sect2>
      <title>Настройка X11</title>

      <para>Хотя X11 не является частью проекта FreeBSD, мы включили сюда
	некоторую информацию для пользователей FreeBSD.  За детальной
	информацией обращайтесь к <ulink url="http://www.xfree86.org/">Веб
	сайту &xfree86;</ulink> или к сайту того сервера X11, который вы
	используете.</para>

      <para>В <filename>~/.Xresources</filename>, вы можете внести
	дополнительные I18N настройки приложений (настройки шрифтов,
	меню и т.п.).</para>

      <sect3>
	<title>Отображение шрифтов</title>
	<indexterm><primary>X11 True Type font server</primary></indexterm>
	<para>Установите сервер X11 &truetype; Common
	  (<filename role="package">x11-servers/XttXF86srv-common</filename>)
	  и &truetype; шрифты для используемого языка.  После установки корректного
	  значения locale меню, сообщения и т.д. должны появиться на
	  соответствующем языке.</para>
      </sect3>

      <sect3>
	<title>Ввод не-англоязычных символов</title>
	<indexterm><primary>X11 Input Method (XIM)</primary></indexterm>
	<para>Протокол X11 Input Method (XIM) это новый стандарт для всех
	  клиентов X11.  Все приложения X11 должны быть написаны как XIM
	  клиенты, получающие ввод с серверов XIM Input.  Существует
	  несколько XIM серверов, доступных для различных языков.</para>
      </sect3>
    </sect2>

    <sect2>
      <title>Настройка принтера</title>

      <para>Некоторые однобайтовые кодовые таблицы обычно поддерживаются
	принтерами на аппаратном уровне.  Расширенные, или
	мультибайтовые кодовые таблицы требуют дополнительной настройки.
	Мы рекомендуем использование <application>apsfilter</application>.
	Кроме того, вы можете преобразовать документ в формат &postscript; или
	PDF с помощью поддерживающих соответствующий язык программ.</para>
    </sect2>

    <sect2>
      <title>Ядро и файловые системы</title>

      <para>Файловая система FreeBSD (fast filesystem, FFS) поддерживает
	8-битные символы, ее можно использовать с любой односимвольной
	кодовой таблицей (см. &man.multibyte.3;), но кодовые таблицы не
	хранятся в файловой системе; т.е. ей ничего не известно о порядке
	расположения символов в кодовой таблице.  Официально FFS пока
	не поддерживает расширенные или много символьные кодовые таблицы.
	Однако, для некоторых расширенных или многобайтовых кодировок есть
	неофициальные патчи, включающие их поддержку в FFS.  Это всего
	лишь временные не переносимые решения или исправления кода и
	мы решили не включать их в дерево исходных текстов.  Обращайтесь
	к сайтам по соответствующим языкам за дальнейшей информацией
	и патчами.</para>

      <indexterm><primary>DOS</primary></indexterm>
      <indexterm><primary>Unicode</primary></indexterm>
      <para>Файловая система &ms-dos; в FreeBSD может быть настроена для
	поддержки перекодировки между &ms-dos;, кодовыми таблицами Unicode
	и выбранной кодовой таблицей FreeBSD.  Обращайтесь к
	&man.mount.msdos.8; за подробностями.</para>
    </sect2>
  </sect1>

  <sect1 id="l10n-compiling">
    <title>Компиляция I18N программ</title>

    <para>Многие порты FreeBSD были созданы с поддержкой I18N.  Некоторые
      из них помечены символами -I18N в имени порта.  Эти и многие другие
      программы имеют встроенную поддержку I18N и не нуждаются в
      специальной настройке.</para>

    <indexterm>
      <primary><application>MySQL</application></primary>
    </indexterm>
    <para>Однако, некоторые приложения, такие как 
      <application>MySQL</application>, требуют указания кодировки в
      <filename>Makefile</filename>.  Это обычно делается правкой
      <filename>Makefile</filename> или передачей параметров
      <application>configure</application> при сборке из исходных
      текстов.</para>
  </sect1>

  <sect1 id="lang-setup">	
    <title>Локализация FreeBSD для поддержки определенных языков</title>

    <sect2 id="ru-localize">
      <sect2info>
	<authorgroup>
	  <author>
	    <firstname>Andrey A.</firstname>
	    <surname>Chernov</surname>
	    <contrib>Первоначально предоставил </contrib>
	  </author>
	</authorgroup>
      </sect2info>
      <title>Русский язык (кодировка KOI8-R)</title>
      <indexterm>
	<primary>localization</primary>
	<secondary>Russian</secondary>
      </indexterm>

      <para>За дополнительной информацией о кодировке KOI8-R, обращайтесь к
	странице <ulink
	url="http://koi8.pp.ru/">KOI8-R References
	(Russian Net Character Set)</ulink>.</para>

      <sect3>
	<title>Настройка локализации</title>

	<para>Поместите в <filename>~/.login_conf</filename> следующие
	  строки:</para>

	<programlisting>me:My Account:\
	:charset=KOI8-R:\
	:lang=ru_RU.KOI8-R:</programlisting>

	<para>Обратитесь к вышеизложенному материалу этой главы за
	  соответствующей
	  <link linkend="setting-locale">информацией</link>.</para>
      </sect3>

      <sect3>
	<title>Настройка консоли</title>

	<itemizedlist>
	  <listitem>
	    <para>Для FreeBSD версий до 5.0 добавьте к файлу настройки
	      ядра следующую строку:</para>

	    <programlisting>options		SC_MOUSE_CHAR=0x03</programlisting>

	    <para>Для FreeBSD версий 4.4 и выше вставьте следующую строку
	      в <filename>/etc/rc.conf</filename>:</para>

	    <programlisting>mousechar_start=3</programlisting>
	  </listitem>

	  <listitem>
	    <para>Используйте в <filename>/etc/rc.conf</filename>
	      такие настройки:</para>

	    <programlisting>keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"</programlisting>

	  </listitem>

	  <listitem>
	    <para>Для каждого устройства <literal>ttyv*</literal> в файле
	      <filename>/etc/ttys</filename>, используйте
	      <literal>cons25r</literal> в качестве типа терминала.</para>
	  </listitem>
	</itemizedlist>

	<para>Обратитесь к вышеизложенному материалу этой главы за примерами
	  настройки <link linkend="setting-console">консоли</link>.</para>
      </sect3>

      <sect3>
	<title>Настройка принтера</title>
	<indexterm><primary>принтеры</primary></indexterm>
	<para>Большинство принтеров для России поставляются с аппаратной кодовой
	  страницей CP866, требуется специальный выходной фильтр для
	  перекодировки из KOI8-R в CP866.  Такой фильтр устанавливается по
	  умолчанию в <filename>/usr/libexec/lpr/ru/koi2alt</filename>.
	  Запись для принтера в <filename>/etc/printcap</filename> должна
	  выглядеть приблизительно так:</para>

	<programlisting>lp|Russian local line printer:\
	:sh:of=/usr/libexec/lpr/ru/koi2alt:\
	:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>

	<para>Обратитесь к &man.printcap.5; за подробным описанием.</para>
      </sect3>

      <sect3>
	<title>&ms-dos; FS и русские имена файлов</title>

	<para>Следующий пример записи в &man.fstab.5; включает поддержку
	  русских имен файлов при монтировании файловых систем &ms-dos;:</para>

	<programlisting>/dev/ad0s2      /dos/c  msdos   rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0</programlisting>

	<para>Параметр <option>-L</option> выбирает имя используемой
	  локализации, а параметр <option>-W</option> задает таблицу
	  перекодировки.  При использовании параметра <option>-W</option>
	  убедитесь, что раздел <filename>/usr</filename> смонтирован перед
	  разделом &ms-dos;, поскольку таблицы перекодировки расположены
	  в каталоге
	  <filename>/usr/libdata/msdosfs</filename>.  За более подробной
	  информацией обращайтесь к странице справочника
	  &man.mount.msdos.8;.</para>
      </sect3>

      <sect3>
	<title>Настройка X11</title>

	<orderedlist>
	  <listitem>
	    <para>Выполните сначала <link linkend="setting-locale">не-X
	      настройку локализации</link>.</para>

	    <note>
	      <para><anchor id="russian-note">Локализация KOI8-R
		может не работать со старыми релизами
		<application>&xfree86;</application> (ниже 3.3).
		На настоящий момент в FreeBSD в качестве системы X Window по
		умолчанию используется <application>&xfree86; 4.X</application>.
		Поэтому если только вы не используете старые версии FreeBSD,
		это не должно стать проблемой.</para>
	    </note>
	  </listitem>

	  <listitem>
	    <para>Зайдите в каталог
	      <filename role="package">russian/X.language</filename> и
	      выполните следующую команду:</para>

	    <screen>&prompt.root; <userinput>make install</userinput></screen>
      
	    <para>Вышеуказанный порт установит последнюю версию KOI8-R
	      шрифтов.  В <application>&xfree86; 3.3</application> уже есть
	      некоторые KOI8-R шрифты, но эти масштабируются лучше.</para>

	    <para>Проверьте раздел <literal>"Files"</literal> в файле
	      <filename>/etc/XF86Config</filename>. Следующие строки
	      должны быть добавлены <emphasis>перед</emphasis> всеми
	      записями <literal>FontPath</literal>:</para>

	    <programlisting>FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>

	    <para>Если вы используете видеорежим с высоким разрешением,
	      поменяйте местами строки для 75 dpi и 100 dpi.</para>
	  </listitem>

	  <listitem>
	    <para>Для настройки ввода на русском языке, добавьте
	      нижеприведенные строки в раздел
	      <literal>"Keyboard"</literal> файла
	      <filename>XF86Config</filename>.</para>

	    <para>Для <application>&xfree86; 3.X</application>:</para>

	    <programlisting>XkbLayout  "ru"
XkbOptions "grp:caps_toggle"</programlisting>

	    <para>Для <application>&xfree86; 4.X</application>:</para>

	    <programlisting>Option "XkbLayout"   "ru"
Option "XkbOptions"  "grp:caps_toggle"</programlisting>

	    <para>Убедитесь, что <literal>XkbDisable</literal> отключен
	      (закомментирован) в этом разделе.</para>

	    <para>Переключателем RUS/LAT служит <keycap>CapsLock</keycap>.
	      Прежняя функция <keycap>CapsLock</keycap> все еще доступна в комбинации
	      <keycombo action="simul"><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>
	      (только в режиме LAT).</para>

	    <para>Если на вашей клавиатуре есть клавиши <quote>&windows;</quote>,
	      и некоторые не-алфавитные клавиши работают неправильно в режиме
	      RUS, добавьте следующую строку в файл
	      <filename>XF86Config</filename>.</para>

	    <para>Для <application>&xfree86; 3.X</application>:</para>

	<programlisting>XkbVariant "winkeys"</programlisting>

	    <para>Для <application>&xfree86; 4.X</application>:</para>

	<programlisting>Option "XkbVariant" "winkeys"</programlisting>

	    <note>
	      <para>Ввод на русском языке может может не работать со старыми
		версиями <application>&xfree86;</application>, прочтите
		<link linkend="russian-note">предупреждение выше</link> с
		более подробной информацией.  Ввод на русском языке может
		также не работать с нелокализованными приложениями.
		Минимально локализованные приложения должны вызывать
		функцию <function>XtSetLanguageProc (NULL, NULL,
		NULL);</function> в начале программы.  Обратитесь к <ulink
		url="http://koi8.pp.ru/xwin.html">KOI8-R for X Window</ulink>
		за дальнейшими инструкциями по локализации приложений
		X11.</para>
	    </note>
	  </listitem>
	</orderedlist>
      </sect3>
    </sect2>

    <sect2>
      <title>Локализация на традиционном китайском для Тайваня</title>
      <indexterm>
	<primary>локализация</primary>
	<secondary>традиционный китайский</secondary>
      </indexterm>
      <para>У проекта FreeBSD-Taiwan есть I18N/L10N учебник для
	FreeBSD по адресу
	<ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/"></ulink>,
	в котором используются многие порты на китайском.
	Редактором учебника <literal>zh-L10N-tut</literal> является Clive Lin
	<email>Clive@CirX.org</email>.  Вы можете получить с помощью cvsup
	с <hostid
	role="fqdn">freebsd.sinica.edu.tw</hostid> следующие
	коллекции:</para>

      <informaltable frame="none">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Коллекция</entry>
	      <entry>Описание</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>outta-port tag=.</entry>
	      <entry>Beta-quality коллекция портов на китайском</entry>
	    </row>

	    <row>
	      <entry>zh-L10N-tut tag=.</entry>
	      <entry>Локализация учебника FreeBSD на BIG-5 традиционном
		китайском</entry>
	    </row>

	    <row>
	      <entry>zh-doc tag=.</entry>
	      <entry>Перевод документации FreeBSD на BIG-5 традиционный
		китайский</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>Chuan-Hsing Shen <email>s874070@mail.yzu.edu.tw</email> создал
	<ulink url="http://cnpa.yzu.edu.tw/~cfc/">Chinese
	FreeBSD Collection (CFC)</ulink> используя FreeBSD-Taiwan
	<literal>zh-L10N-tut</literal>.  Пакеты и скрипты доступны по адресу
	<ulink url="ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/"></ulink>.</para>
    </sect2>

    <sect2>
      <title>Локализация на немецкий язык (для всех ISO 8859-1
	языков)</title>
      <indexterm>
	<primary>локализация</primary>
	<secondary>немецкий</secondary>
      </indexterm>

      <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> написал
	учебник по использованию umlauts в FreeBSD.  Учебник написан
	на немецком и доступен по адресу
	<ulink url="http://www.de.FreeBSD.org/de/umlaute/"></ulink>.</para>
    </sect2>

    <sect2>
      <title>Локализация на японский и корейский языки</title>
      <indexterm>
	<primary>локализация</primary>
	<secondary>японский</secondary>
      </indexterm>
      <indexterm>
	<primary>локализация</primary>
	<secondary>корейский</secondary>
      </indexterm>
      <para>За информацией по японской локализации, обратитесь к
        <ulink url="http://www.jp.FreeBSD.org/"></ulink>,
	а за информацией о корейской локализацией к
	<ulink url="http://www.kr.FreeBSD.org/"></ulink>.</para>
    </sect2>

    <sect2>
      <title>Не-англоязычная документация FreeBSD</title>

      <para>Отдельные контрибьюторы FreeBSD перевели части документации
	FreeBSD на другие языки.  Эти переводы доступны на <ulink
	url="../../../../ru/index.html">основном сайте</ulink> или из каталога
	<filename>/usr/share/doc</filename>.</para>
    </sect2>
  </sect1>
</chapter>
