<!-- <?xml version="1.0" ?>
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"
> -->
<!-- Uncomment the previous two lines to validate this document -->
<!-- standalone.  Be sure to recomment them before attempting to -->
<!-- process index.docbook -->

<chapter id="dictionaries">

<chapterinfo>
<!-- Fill in this section if this document has a different author -->
<authorgroup>
<author>
<personname
><firstname
></firstname
><surname
></surname
></personname>
</author>
</authorgroup>

<othercredit role="translator"
><firstname
>Николай</firstname
><surname
>Шафоростов</surname
><affiliation
><address
><email
>shafff@ukr.net</email
></address
></affiliation
><contrib
>Перевод на русский</contrib
></othercredit
> 
</chapterinfo>

<title
>Словари</title>

<para
>В &kbabel; есть 3 вида поиска переведённых сообщений <acronym
>PO</acronym
>:</para>

<itemizedlist>
     <listitem>
       <para
>С использованием базы данных переводов </para>
     </listitem>
      <listitem>
         <para
>Черновой перевод </para>
      </listitem>
      <listitem>
         <para
>&kbabeldict; </para>
      </listitem>
</itemizedlist>

<sect1 id="database">
<!-- FIXME: settings -->
<title
>База данных переводов</title>

<para
>Вы можете сохранять ваши переводы в базе данных, основанной на Berkeley Database II. Поиск в такой базе данных самый быстрый.</para>

<para
>Работа с базой данных переводов хорошо интегрирована в &kbabel;. Кроме поиска и чернового перевода, она поддерживает такие возможности:</para>

<itemizedlist>
<listitem>
<para
>Каждое переведённое в &kbabel; сообщение может быть автоматически добавлено в эту базу.</para>
</listitem>
<listitem>
<para
>Поиск различий (<quote
>diff</quote
>) в <acronym
>msgid</acronym
>.</para>
</listitem>
</itemizedlist>

<para
>Естественно, чем больше переведенных сообщений есть в базе данных, тем больше вы можете повысить свою продуктивность. Для её заполнения, перейдите на вкладку <guilabel
>База данных</guilabel
> в окне настроек, где, кроме всего прочего, вы сможете включить автоматическое добавление в неё переведённых сообщений.</para>

<sect2 id="database-settings">
<title
>Настройки</title>
<para
>Чтобы настроить поиск, перейдите в меню <menuchoice
> <guisubmenu
>Настройка</guisubmenu
> <guisubmenu
>Настроить словарь</guisubmenu
> <guimenuitem
>База данных переводов</guimenuitem
> </menuchoice
>. </para>
<para
>Вкладка <guilabel
>Общие</guilabel
> содержит основные настройки базы данных переводов. </para>
<variablelist>
  <varlistentry>
    <term
><guilabel
>Поиск по всей базе данных (медленно)</guilabel
></term>
    <listitem>
    <para
>Не использовать <quote
>хорошие ключи</quote
>, искать по всей базе данных. Медленно, однако вернёт наиболее точные результаты. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Поиск в списке "хорошие ключи" (рекоменд.)</guilabel
></term>
    <listitem>
    <para
>Золотая середина между скоростью и точностью результата. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Возвращать список "хорошие ключи" (быстро)</guilabel
></term>
    <listitem>
    <para
>Возвращая подходящие ключи, не удалять текст. Может привести к большому количеству неточных вариантов. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>С учётом регистра</guibutton
></term>
    <listitem>
    <para
>Различать строчные и прописные буквы при поиске. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>Не учитывать количество пробелов</guibutton
></term>
    <listitem>
    <para
>Пропускать ненужные пробелы. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>Исключать комментарии</guibutton
></term>
    <listitem>
    <para
>Исключать контекстные комментарии при поиске </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Игнорировать символы</guilabel
></term>
    <listitem>
    <para
>Здесь вы можете указать, какие символы игнорировать при поиске. Например, знак акселератора (&amp;). </para>
    </listitem>
  </varlistentry>
  </variablelist>
<para
>На вкладке <guilabel
>Поиск</guilabel
> вы можете выбрать метод поиска, в том числе <emphasis
><guilabel
>Подстановка слов</guilabel
></emphasis
>. Это значит, что текст может быть найден подстановкой одного или двух слов, например, это потребуется при поиске текста <userinput
>My name is Andrea</userinput
>. </para>
<variablelist>
  <varlistentry>
    <term
><guilabel
>Равно</guilabel
></term>
    <listitem>
    <para
>Сообщение подходит только при условии полного соответствия запрашиваемому тексту, например сообщение <emphasis
>My name is &amp;Andrea</emphasis
> будет найдено (но только если символ &amp; присутствует в поле <guilabel
>Игнорировать символы</guilabel
> на вкладке <guilabel
>Общие</guilabel
>). </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Содержит искомую строку</guilabel
></term>
    <listitem>
    <para
>Сообщение подходит, если искомая строка содержится в переведённом сообщении. Это может быть <emphasis
>My name is Andrea, you know?</emphasis
>. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Содержится в искомой строке</guilabel
></term>
    <listitem>
    <para
>Сообщение подходит если искомая строка содержит переведённое сообщение. Например <emphasis
>Andrea</emphasis
> подходит. Вы можете использовать это для увеличения числа найденных вариантов. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>Регулярное выражение</guibutton
></term>
    <listitem>
    <para
>Рассматривать строку запроса как регулярное выражение. Используется преимущественно для &kbabeldict;. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>Однословная подстановка</guibutton
></term>
    <listitem>
    <para
>Если в запрашиваемой строке меньше слов, чем указано, допускать несовпадение одного слова. Например <emphasis
>Your name is Andrea</emphasis
> подойдёт. </para>
    </listitem>
  </varlistentry>
<varlistentry>
    <term
><guibutton
>Если слов в запросе не больше</guibutton
></term>
    <listitem>
    <para
>Максимальное количество слов в запросе для включения подстановки. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Локальные символы для регулярных выражений</guilabel
></term>
    <listitem>
    <para
>Символы, которые нужно рассматривать как часть регулярного выражения. </para>
    </listitem>
  </varlistentry>
  </variablelist>
<note>
<para
>Двусловная подстановка ещё не реализована </para>
</note>
</sect2>

<sect2 id="database-fill">
<title
>Заполнение базы данных</title>
<para
>На вкладке <guilabel
>База данных</guilabel
> вы можете выбрать путь к базе переводов, включить автоматическое добавление новых переводов. В последнем случае вам нужно будет заполнить поле <guilabel
>Автор добавляемых записей</guilabel
>. </para>
<para
>Кроме того, вы можете заполнить базу данных переведенными сообщениями ваших PO-файлов. Кнопка <guilabel
>Повторяющиеся строки</guilabel
> предназначена для случаев, когда одна переведенная строка повторяется несколько раз, и вы не хотите засорять базу данных включением в неё всех таких строк. </para>
<screenshot>
<screeninfo
>Заполнение базы данных</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="dbcan.png" format="PNG"/>
</imageobject>
<textobject
><phrase
>Заполнение базы данных, используя существующие PO-файлы</phrase
></textobject>
</mediaobject>
</screenshot
></sect2>

<sect2 id="database-goodkeys">
<title
>Определение "хороших ключей"</title>
<para
>На вкладке <guilabel
>Хорошие ключи</guilabel
> можно задать ограничения составления таких списков &mdash; текст должен содержать не менее указанного процента ключевых слов для определения его как "хороший ключ". </para>
<para
>Искомый текст обычно содержит определённое количество общих слов, например предлогов, или союзов. Вы можете выбрать <guilabel
>Не учитывать слова, встречающиеся чаще...</guilabel
>, или <guilabel
>учитывать частые слова как составляющие любого ключа</guilabel
>. При этом часто встречающиеся слова почти не будут учитываться в запросе. </para>
</sect2>
</sect1>


<sect1 id="auxiliary">
<title
>Вспомогательный PO</title>

<para
>Поиск основывается на сравнении оригинальных строк (msgid) активного файла и вспомогательного словаря. Последний может содержать перевод аналогичной программы (например k3b и CD Bake Oven), или перевод на другой язык. Например, при переводе программы на украинский язык, вы можете взять русский перевод этой программы (то есть установить его как вспомогательный словарь) и прибегать к его помощи, когда сомневаетесь в переводе, или даже просто выполнить черновой перевод программы.</para>

<para
>Например, я хочу перевести слово <quote
>Cancel</quote
>, на русский, но я забыл его перевод :-) Тогда я посмотрю перевод этого слова на украинский (<quote
>Скасувати</quote
>, и на белорусский (<quote
>Адмена</quote
>, вспомню, что украинское слово <quote
>вiдмiна</quote
> означает <quote
>отличие</quote
>, а также вспомню, что <quote
>Cancel</quote
> переводится как <quote
>Отмена</quote
>. В &kbabel; вы можете автоматизировать это занятие.</para>

<sect2 id="auxiliary-settings">
<title
>Настройки</title>
<para
>Чтобы настроить такой словарь, выберите <menuchoice
> <guisubmenu
>Настройка</guisubmenu
> <guisubmenu
>Настроить словарь</guisubmenu
> <guimenuitem
>Вспомогательный</guimenuitem
> </menuchoice
>.</para>

<para
>Здесь вы можете выбрать путь к вспомогательному PO-файлу. Чтобы автоматизировать его выбор, вы можете использовать в его пути переменные, заключённые в <literal
>@</literal
>):</para>

<variablelist>
  <varlistentry>
    <term
>@PACKAGE@</term>
    <listitem
><para
>Название приложения или пакета, перевод которого осуществляется в данный момент. Например, это может быть kbabel, kdelibs, konqueror. </para
></listitem>
  </varlistentry>
  <varlistentry>
    <term
>@LANG@</term>
    <listitem
><para
>Код языка. Например, это может быть ru, uk, bg </para
></listitem>
  </varlistentry>
  <varlistentry>
    <term
>@DIRn@</term>
    <listitem
><para
>где <quote
>n</quote
> &mdash; целое число. Заменяется на <quote
>n</quote
>-ный каталог из пути к текущему файлу (справа на лево, начиная с имени файла). </para
></listitem>
  </varlistentry>
</variablelist>

<para
>Приведём пример.</para>

<para
>Украинский &mdash; мой второй язык, и, кроме перевода &kde; на русский, я иногда занимаюсь переводом его на украинский.</para>

<para
>Для начала нужно загрузить последний файл <filename
>kde-i18n-ru.tar.bz2</filename
> с <ulink url="ftp://ftp.kde.org/pub/kde/snapshots/kde-i18n"
>&FTP;-сайта &kde;</ulink
>, или из <acronym
>CVS</acronym
>. Затем распаковать его (в нашем примере &mdash; это <filename
>/home/shafff/cvs-cvs.kde.org/kde-i18n/ru</filename
>.</para>

<para
><acronym
>PO</acronym
>-файлы украинского языка расположены в <filename
>/home/shafff/cvs-cvs.kde.org/kde-i18n/uk</filename
>. Не забудьте выбрать <guilabel
>Вспомогательный словарь</guilabel
> как словарь по умолчанию, отметьте <guilabel
>Автоматически запускать поиск</guilabel
> на вкладке <guilabel
>Поиск</guilabel
> в настройках &kbabel;.</para>

</sect2>
</sect1>

<sect1 id="compendium">
<!-- FIXME: examples -->
<title
>Сборник переводов</title>

<para
>Это словарь, содержащий все сообщения, переведённые на данный язык командой перевода &kde; (т.е. сочетания <acronym
>msgid</acronym
> и <acronym
>msgstr</acronym
>). </para>

<para
>Поиск производится также, как и во вспомогательном словаре. </para>

<para
>Вы можете использовать такой словарь вместо базы данных переводов, чтобы сохранить согласованность с другими переводами. Такой словарь может быть полезен как другим переводчикам, так и вообще другим командам переводов. </para>

<sect2 id="compendium-settings">
<title
>Настройки</title>

<para
>Чтобы настроить такой словарь, выберите <menuchoice
> <guisubmenu
>Настройка</guisubmenu
> <guisubmenu
>Настроить словарь</guisubmenu
> <guimenuitem
>Сборник переводов</guimenuitem
> </menuchoice
>. </para>

<para
>Здесь вы можете выбрать путь к словарю. Для автоматизации переключения словарей, когда вы меняете язык перевода, можете использовать переменные заключённые в <literal
>@</literal
>:</para>

<variablelist>
  <varlistentry>
    <term
>@LANG@</term>
    <listitem
><para
>Код языка. Например, это может быть ru, uk, bg </para
></listitem>
  </varlistentry>
</variablelist>

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

<para
>Последний словарь переводов на русский язык вы можете загрузить с <ulink url="ftp://ftp.kde.org/pub/kde/snapshots/kde-i18n"
>&FTP;-сайта &kde;</ulink
> (файл <filename
>ru.messages.bz2</filename
>). </para>

<para
>Ниже поля с именем файла вы можете указать параметры поиска.</para>

<variablelist>
  <varlistentry>
    <term
><guilabel
>С учётом регистра</guilabel
></term>
    <listitem>
    <para
>Сравнивать ли регистр оригинальных строк. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Игнорировать черновые сообщения</guilabel
></term>
    <listitem>
    <para
>Словарь может содержать такие сообщения, так как он создаётся соединением всех <acronym
>PO</acronym
>-файлов команды перевода.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
><guilabel
>Только слова целиком</guilabel
></term>
    <listitem>
    <para
>Слова в оригинальной строке должны быть между пробелами. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
>Текст равен запросу</term
> 
    <listitem>
    <para
>Перевод считается подходящим, только если оригинальная строка равна запросу (с учетом всех опций). </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
>Текст подобен запрашиваемому тексту</term>
    <listitem>
    <para
>Перевод считается подходящим если он <quote
>подобен запросу</quote
>. Обе строки сравниваются по маленьким кусочкам, и, если хотя бы половина их совпадает, этот вариант отображается в списке найденных. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
>Текст содержит запрос</term>
    <listitem>
    <para
>Перевод считается подходящим, если он содержит запрашиваемый текст.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
>Текст содержится в запросе</term>
    <listitem>
    <para
>Перевод считается подходящим, если он содержится в запросе. </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term
>Текст содержит слово из запроса</term>
    <listitem>
    <para
>Перевод считается подходящим, если он содержит хотя бы одно слово из запрашиваемой строки. </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab 
-->

