<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY lokalize "Lokalize">
<!ENTITY kaider "Lokalize">
<!ENTITY kappname "Lokalize">
<!ENTITY package "kdesdk">
<!ENTITY % addindex "IGNORE">
<!ENTITY % Russian "INCLUDE">
]>
<book id="lokalize" lang="&language;">
<bookinfo>
<title
>Руководство &lokalize;</title>
<authorgroup>
<author
><firstname
>Nick</firstname
> <surname
>Shaforostoff</surname
> <affiliation
><address
><email
>shaforostoff@kde.ru</email
></address
></affiliation>
</author>
<othercredit role="translator"
><firstname
>Николай</firstname
><surname
>Шафоростов</surname
><affiliation
><address
><email
>shaforostoff@kde.ru</email
></address
></affiliation
><contrib
>Перевод на русский</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2007-2009</year
><holder
>Nick Shaforostoff</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>9 мая 2009 г.</date>
<releaseinfo
>1.0</releaseinfo>

<abstract>
<para
>&lokalize; — это ассистент переводчика (computer-aided translation system), ставящий главной целью качество и максимальную автоматизацию работы переводчика и редактора для получения наилучшего качества перевода. В &lokalize; имеются стандартные для систем автоматизированного перевода компоненты: память переводов, глоссарий, а также уникальная функция объединения (синхронизации) переводов. &lokalize; предназначен прежде всего для перевода интерфейса программного обеспечения, но также интегрирует в себя внешние фильтры форматов для перевода офисных документов. </para>
</abstract>

<keywordset>
<keyword
>&lokalize;</keyword>
<keyword
>локализация</keyword>
<keyword
>l10n</keyword>
<keyword
>интернационализация</keyword>
<keyword
>i18n</keyword>
<keyword
>перевод</keyword>
<keyword
>глобализация</keyword>
<keyword
>g11n</keyword>
<keyword
>XLIFF</keyword>
<keyword
>gettext</keyword>
<keyword
>OpenDocument</keyword>
<keyword
>KBabel</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Введение</title>

<para
>При первом запуске &lokalize; (без каких-либо ключей командной строки) показывается пустой <guilabel
>Обзор проекта</guilabel
>. Организация процесса перевода с &lokalize; подразумевает, что работа с ним начинается с создания или открытия существующего проекта. </para>
<para
>Если вы фрилансер, скорее всего вам нужно будет переводить офисные документы OpenDocument. Для этого вызовите <menuchoice
><guimenu
>Проект</guimenu
><guimenuitem
>Создать новый проект</guimenuitem
></menuchoice
>. Укажите в появившемся мастере исходный документ, его язык и язык, на который вы будете его переводить. На основе документа будет создан файл переводов в формате XLIFF, а также проект для него. Получить переведенный файл OpenDocument можно будет вызовом <menuchoice
><guimenu
>Сервис</guimenu
><guimenuitem
>Сгенерировать ODF</guimenuitem
></menuchoice
>. </para>

<para
>Если вы переводите KDE, то скорее всего у вас уже будет файл проекта &lokalize; в папке с переводами на ваш язык (обычно называется<filename
>index.lokalize</filename
>). В противном случае вызовите <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Создать новый проект</guimenuitem
></menuchoice
> и мастер новых проектов загрузит файлы переводов для вашего языка и создаст проект для них. </para>

<para
>Файлы переводов открываются в отдельных вкладках. На каждой такой вкладке показываются два больших текстовых поля и несколько <emphasis
>вспомогательных окон</emphasis
> по краям экрана. Последние можно перемещать из одной стороны в другую, «складывать» одно на другое, образовывая вкладки, или скрывать вообще. Файл перевода состоит из пар оригинал-перевод, называемых также <emphasis
>сегментами</emphasis
>. <emphasis
>Сегмент</emphasis
> может отвечать отдельному сообщению в интерфейсе пользователя или одному абзацу в документации. Соответственно назначение упомянутых выше текстовых полей — отображение оригинала и перевода текущего сообщения. Переходить от одного сегмента к другому можно нажатием клавиш <keycap
>Page Down</keycap
> / <keycap
>Page Up</keycap
> или через вспомогательную панель <guilabel
>Сегменты</guilabel
>. </para>

<tip>
<para
>Мы рекомендуем вам как можно раньше приучиться вызывать наиболее часто используемые действия с клавиатуры, а не мышью, т.к. это повысит вашу продуктивность. Например, нажимайте <keycombo
>&Ctrl;<keycap
>L</keycap
></keycombo
> для перехода на строку <guilabel
>Быстрый поиск...</guilabel
> панели <guilabel
>Сегменты</guilabel
>. После ввода слова для фильтрации нажмите <keycap
>Page Down</keycap
> для переключения на первый сегмент в отфильтрованном списке. </para>
</tip>

<para
>Перевод сегмента может быть <emphasis
>пустым</emphasis
> или <emphasis
>не пустым</emphasis
>. Непустой перевод может быть <emphasis
>утверждённым</emphasis
> или  <emphasis
>не утверждённым</emphasis
> (<emphasis
>готовым</emphasis
> или  <emphasis
>не готовым</emphasis
>). В последнем случае он показывается курсивом. &lokalize; позволяет быстро переходить по сегментам основываясь на их статусе. См. меню <guilabel
>Переход</guilabel
>. В рамках навигации сегменты с пустым переводом считаются неготовыми. Также вы можете воспользоваться фильтрацией панели <guilabel
>Сегменты</guilabel
>. Нажатие <keycap
>Page Down</keycap
> на самом деле приводит к переходу к следующему сегменту в списке, причём список может быть предварительно отсортирован и/или отфильтрован. </para>

<para
>При работе с файлами перевода в формате XLIFF (например, припереводе документов OpenDocument), также доступны дополнительные состояния(<emphasis
>новый</emphasis
>, <emphasis
>требует проверки</emphasis
>, <emphasis
>утверждено</emphasis
> и т.д.). Выбрать такое состояние для текущего сегмента можно в выпадающем меню кнопки <guilabel
>Готово</guilabel
>. Классификация сегмента как <emphasis
>готового</emphasis
> или <emphasis
>не готового</emphasis
> зависит от текущей <emphasis
>фазы</emphasis
> (<emphasis
>перевод</emphasis
>, <emphasis
>проверка</emphasis
>, <emphasis
>утверждение</emphasis
>). Фаза, создаваемая (используемая) по умолчанию, зависит от вашей <emphasis
>роли</emphasis
> в проекте (задаётся в параметрах проекта). Каждый сегмент обычно содержит информацию о фазе, в которой он был изменён в последний раз, и для каждой фазы записывается её владелец (т.е. автор изменений). </para>

</chapter>

<chapter id="projects">
<title
>Проекты</title>

<para
>Проект — одно из центральных понятий &lokalize;. Проект определяется файлом, содержащим путь к папке с файлами переводов, шаблонами («файлами без переводов»), имена файлов глоссария, сценариев и другую информацию. Если при открытии файла в &lokalize; ещё нет загруженного проекта, то будет выполнен поиск файла проекта в папке файла перевода, а также в папках стоящих выше в иерархии в ближайших четырёх уровнях. Файл проекта можно указать и явно, через ключ командной строки <userinput
>--project</userinput
>. </para>

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

<note>
<para
>В отличие от файлов проекта, глоссария и сценариев, память перевода создаётся индивидуально на каждом компьютере и не публикуется в общем репозитории в случае, если над проектом работают несколько человек (пример - перевод среды KDE). Памяти переводов хранятся в домашней папке пользователя. Для каждого проекта создаётся отдельная память переводов, но поиск осуществляется во всех памятях. </para>
</note>

<sect1 id="project-view">
<title
>Вкладка «Обзор проекта»</title>

<para
>На вкладке <guilabel
>Обзор проекта</guilabel
> отображается дерево файлов перевода для текущего проекта со статистикой и другими метаданными. При щелчке на файле он открывается в новой вкладке. </para>

</sect1>

</chapter>

<chapter id="glossary">
<title
>Глоссарий</title>

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

<para
>Естественно, если у вас ещё нет готового глоссария, его придётся наполнять вручную (это можно делать постепенно, при встрече частых фраз - для этого вызывайте контекстное меню панели «Глоссарий»). В &lokalize; также есть удобный редактор глоссария с поиском. </para>

<screenshot>
<screeninfo
>Панель «Глоссарий» внизу справа показывает переводы терминов имеющихся в оригинале</screeninfo>
  <mediaobject>
    <imageobject>
      <imagedata fileref="glossary.png" format="PNG"/>
    </imageobject>
    <textobject>
      <phrase
>Панель «Глоссарий» внизу справа показывает переводы терминов имеющихся в оригинале</phrase>
    </textobject>
  </mediaobject>
</screenshot>

</chapter>

<chapter id="tm">
<title
>Память переводов</title>

<para
>Вкладка <guilabel
>Память переводов</guilabel
> отображает пары оригинал-перевод с оригиналом наиболее схожим с текущим. Быстрая вставка варианта перевода возможна нажатием <keycombo
>&Ctrl;<keycap
>1</keycap
></keycombo
>, <keycombo
>&Ctrl;<keycap
>2</keycap
></keycombo
> и т.д., в зависимости от номера варианта. Для её наполнения можно перенести переведённые файлы на панель <guilabel
>Память переводов</guilabel
>, например, из Dolphin. Сканирование файлов происходит в фоновом режиме и уже через несколько минут вы сможете использовать память переводов. </para>

<para
>Нажатие <keycombo
><keycap
>F7</keycap
></keycombo
> открывает вкладку<guilabel
>Память переводов</guilabel
>, позволяющую свободно искать записи в ПП. Щелчок на записи в результатах запроса открывает файл, содержащий его. Так, если вы хотите быстро открыть некоторый файл, зная его название, и он проиндексирован в памяти переводов, то вместо поисков его в <guilabel
>Обзоре проекта</guilabel
> просто введите часть его имени в поле <guilabel
>Маска для файлов</guilabel
> (символы «*» будут добавлены автоматически). </para>

<para
>В память переводов заносятся все сегменты из индексируемых файлов переводов — в том числе и сегменты без перевода и сегменты со статусом «не готов». Это позволяет выполнять поиск по всем файлам простым запросом к базе данных, вместо поочерёдного открытия всех файлов (т.е. происходит намного быстрее). </para>

<screenshot>
<screeninfo
>&lokalize; с результатами поиска в памяти переводов для текущего сегмента</screeninfo>
  <mediaobject>
    <imageobject>
      <imagedata fileref="tmview.png" format="PNG"/>
    </imageobject>
    <textobject>
      <phrase
>&lokalize; с результатами поиска в памяти переводов для текущего сегмента</phrase>
    </textobject>
  </mediaobject>
</screenshot>

</chapter>


<chapter id="sync">
<title
>Синхронизация переводов</title>

<para
><guilabel
>Режим синхронизации</guilabel
> позволяет сэкономить время редакторам при слиянии переводов присланных переводчиками (особенно, когда нельзя быть уверенным в качестве работы) и в случаях когда над файлом работает несколько человек. Часто переводчикам приходится работать над переводом сразу нескольких ветвей программного обеспечения. Панель <guilabel
>Синхронизация 2</guilabel
> может использоваться для автоматической синхронизации переводов в одной из веток (например, стабильной), при работе над другой (экспериментальной). Подробнее об этом ниже. </para>

<para
>&lokalize; позволяет быстро переходить к ближайшему следующему или предыдущему сообщению, перевод которого различается в синхронизируемых файлах. Различия показываются наглядно с подсветкой. </para>

<para
>После копирования перевода из вспомогательного файла (<emphasis
>синхронизации</emphasis
>) все последующие изменения в перевод записываются в оба файла. </para>

<sect1 id="file-merge">
<title
>Слияние</title>
<para
>Одно из применений <guilabel
>режима синхронизации</guilabel
> - рецензия изменений сделанных (новыми) переводчиками. </para>
<para
>Откройте базовый (старый, он же будет конечным) файл, затем перенесите его модифицированную версию на панель <guilabel
>Синхронизация 1</guilabel
> (это можно также сделать через меню), после чего нажимайте <keycombo
>&Alt;<keycap
>Down</keycap
></keycombo
> и <keycombo
>&Alt; <keycap
>Up</keycap
></keycombo
> (комбинации клавиш можно перенастроить обычным для программ &kde; способом) для прохода по изменённым сообщениям. </para>
<screenshot>
<screeninfo
>Слияние переводов с помощью &lokalize;</screeninfo>
  <mediaobject>
    <imageobject>
      <imagedata fileref="sync.png" format="PNG"/>
    </imageobject>
    <textobject>
      <phrase
>Слияние переводов с помощью &lokalize;</phrase>
    </textobject>
  </mediaobject>
</screenshot>

</sect1>

<sect1 id="file-sync">
<title
>Репликация</title>
<para
><guilabel
>Режим синхронизации</guilabel
> также может использоваться для репликации изменений в переводы разных веток ПО. Установите параметр <guilabel
>Ветка</guilabel
> в свойствах проекта в путь к переводам вторичной ветки и панель <guilabel
>Синхронизация 2</guilabel
> будет автоматически открывать файлы из ветки, и каждое из изменений в основной ветке будет автоматически переноситься во вторичную (естественно, если сообщение с таким оригиналом имеется во вторичной ветке). </para>
<para
>Например, если вы работаете над переводом KDE вы можете загрузить переводы trunk в <filename class="directory"
>/home/xx/hacking/kde/trunk/l10n-kde4/ВАШ_ЯЗЫК</filename
> и переводы стабильной ветки в <filename class="directory"
>/home/xx/hacking/kde/branches/stable/l10n-kde4/ВАШ_ЯЗЫК</filename
>. Создайте проект &lokalize;: <filename
>/home/xx/hacking/kde/trunk/l10n-kde4/ВАШ_ЯЗЫК/project.lokalize</filename
> и задайте <filename class="directory"
>BranchDir=../../../branches/stable/l10n-kde4/ВАШ_ЯЗЫК</filename
>, затем работайте с основной веткой и не забывайте публиковать в репозиторий изменения для обоих веток. </para>
</sect1>


<sect1 id="alt-trans">
<title
>Альтернативные версии</title>

<para
>С сегментом могут быть связаны <emphasis
>альтернативные версии переводов</emphasis
>. Они могут появляться при синхронизации (обновлении) файла переводов с новым оригиналом. Если сегмент изменяется в деталях (например, добавляется точка), старый перевод делается альтернативным для нового оригинала. Также механизм альтернативных версий может использоваться для хранения истории правок по фазам перевода. </para>
<para
>При обновлении оригинала перевод утрачивает актуальность, но если изменения небольшие (в т.ч. несемантические), то вместо того чтобы переводить изменённые части текста заново, можно просто применить к переводу изменения аналогичные изменениям в оригинале. Сообщение с изменившимся оригиналом отмечается как <emphasis
>черновое</emphasis
> (также называемое <emphasis
>неподтверждённым</emphasis
>), а старая версия оригинала помещается в файл переводов. &lokalize; наглядно показывает различия между старым и новым оригиналом в панели <guilabel
>Альтернативные версии</guilabel
>. </para>

<screenshot>
<screeninfo
>&lokalize; наглядно показывает изменения сделанные в оригинале со времени последнего перевода</screeninfo>
  <mediaobject>
    <imageobject>
      <imagedata fileref="original-diff.png" format="PNG"/>
    </imageobject>
    <textobject>
      <phrase
>&lokalize; наглядно показывает изменения сделанные в оригинале со времени последнего перевода</phrase>
    </textobject>
  </mediaobject>
</screenshot>


</sect1>

</chapter>

<chapter id="scripting">
<title
>Расширение &lokalize;</title>

<para
>&lokalize; расширяется посредством сценариев на языках высокого уровня, прежде всего Python и JavaScript. Сценарии внедряются в интерфейс в качестве пунктов меню (для которых, кстати, можно задать комбинацию клавиш). Расположение и текст пункта меню указывается в сопутствующем файле-описании (с расширением .rc). При каждом открытии проекта &lokalize; сканирует папку  <filename
>ПАПКА_ПРОЕКТА/lokalize-scripts</filename
> на предмет файлов .rc и добавляет информацию из них в общий <emphasis
>кэш</emphasis
>-файл <filename
>ПАПКА_ПРОЕКТА/lokalize-scripts/scripts.rc</filename
> (этот файл не должен добавляться в общий репозиторий системы управления версиями). В RC-файлах также указывается путь к сценарию, он может быть относительным, и в этом случае поиск сценария осуществляется в  каталоге файла .rc и в системном каталоге сценариев. Пути <emphasis
>должны</emphasis
> быть относительными, если сценарии добавляются в общий репозиторий проекта). Так, в случае работы над переводами KDE, вы можете указать путь <filename
>../../scripts/lokalize/opensrc.py</filename
> для подключения сценария из <ulink url="http://websvn.kde.org/trunk/l10n-kde4/scripts/lokalize/"
>глобальной папки сценариев kde4-l10n</ulink
> (т.е. не специфичный для вашего языка). </para>
<para
>Примеры файлов .rc можно найти в установочной папке &lokalize; (обычно это<filename
>/usr/share/kde4/apps/lokalize/scripts/</filename
>) и в <ulink url="http://websvn.kde.org/trunk/l10n-kde4/scripts/lokalize/"
>репозитории KDE</ulink
>. <ulink url="http://websvn.kde.org/trunk/l10n-kde4/ru/lokalize-scripts/"
>Здесь</ulink
> также  можно найти пример сценария на JavaScript, <filename
>check-gui.js</filename
>, который выполняется автоматически при каждом сохранении файла (это достигается специальным кодов в файле .rc). Если вы знакомы с Python или JavaScript, код должен быть очевидным для вас. </para>
<para
>Далее следуют ссылки на описание программных интерфейсов Lokalize. Все методы и сигналы, отмеченные как Q_SCRIPTABLE, доступны из сценариев. </para>

<itemizedlist>
<listitem>
<para
>Описание интерфейса объекта <ulink url="http://api.kde.org/4.x-api/kdesdk-apidocs/lokalize/html/classEditorTab.html"
>Editor</ulink
> </para>
</listitem>
<listitem>
<para
>Описание интерфейса объекта <ulink url="http://api.kde.org/4.x-api/kdesdk-apidocs/lokalize/html/classLokalizeMainWindow.html"
>Lokalize</ulink
> </para>
</listitem>
<listitem>
<para
>Описание интерфейса объекта <ulink url="http://api.kde.org/4.x-api/kdesdk-apidocs/lokalize/html/classProjectTab.html"
>Project</ulink
> </para>
</listitem>
</itemizedlist>


</chapter>

<chapter id="credits">
<title
>Авторские права и лицензия</title>

<para
>&lokalize; </para>

<para
>Программа &copy; 2007-2009, Николай Шафоростов <email
>shaforostoff@kde.ru</email
> </para>

<para
>Части кода были взяты из &kbabel;, предшественника &lokalize;. </para>

<para
>Документация &copy; 2007-2009 Николай Шафоростов <email
>shaforostoff@kde.ru</email
> </para>

<para
>Автор: <itemizedlist
> <listitem
> <para
>Николай Шафоростов <email
>shaforostoff AT kde.ru</email
> </para>
</listitem>
</itemizedlist>
</para>

<para
><ulink url="http://userbase.kde.org/lokalize"
>Домашняя страница &lokalize;</ulink
>.</para>

<para
>Перевод: Николай Шафоростов<email
>shaforostoff@kde.ru</email
></para
> 
&underFDL; &underGPL; </chapter>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

// vim:ts=2:sw=2:tw=78:noet
-->
