# Руководство пользователя &lokalize;

## Введение

Обычно интерфейс и документация программы написаны на английском языке. Использование интегрированной среды, состоящей из набора соответствующих инструментов и библиотек, позволяет любимым приложениям не англоязычного пользователя «заговорить» на его родном языке. Этот процесс адаптации приложений и документации к конкретному языку называется локализацией. Процесс локализации включает в себя перевод интерфейса и документации программ на различные языки, необходимые пользователям, а в некоторых странах или регионах — приведение входных и выходных данных в соответствие с определёнными соглашениями. &lokalize; — это инструмент, который помогает в процессе локализации сделать интерфейс приложения «говорящим» на многих языках.

Каждая программа, ориентированная на интернационализацию, предоставляет для перевода один или несколько файлов каталога сообщений. Такие файлы имеют расширение `.pot`. POT — это аббревиатура от «Portable Object Template» (заготовка файла перевода). &lokalize; — это обладающий широкими возможностями и простой в использовании редактор PO-файлов (каталоги сообщений &GNU; gettext). Это система автоматизированного перевода для переводчиков, написанная с нуля с использованием платформы &kde;4. Помимо базового редактирования PO-файлов с отличными вспомогательными инструментами приложение включает в себя поддержку глоссария, памяти переводов, diff-режимов для контроля качества, управление проектами и так далее. Среди возможностей приложения: полнофункциональная навигация, расширенные функции редактирования, проверка орфографии и статистический анализ.

Файлы Portable Object (.po): каждый переводчик берёт копию одного из шаблонов POT и начинает заполнять пробелы, то есть переводить каждое сообщение на нужный язык. Файл, содержащий переведённый текст, называется PO-файлом (Portable Object).

## Редактор

### Главное окно

По умолчанию главное окно состоит из шести частей. Верхний правый блок доступен только для чтения и содержит текущее поле msgid (исходный текст) из открытого PO-файла. Чуть ниже расположено поле редактирования, содержащее поле msgstr (целевой текст), связанное с отображаемым msgid. Именно здесь возможно вводить или редактировать переведённый текст.

Главное окно &lokalize; по умолчанию На этом снимке экрана показано стандартное главное окно, которое появляется при открытии файла.

В верхней левой части главного окна отображаются сегменты перевода. Ниже расположен раздел метаданных сегмента, содержащий комментарии к отображаемому в данный момент исходному тексту. В левом нижнем углу расположен раздел памяти переводов, в котором находятся предлагаемые варианты перевода из базы данных памяти переводов для текущего сегмента исходного текста. В правом нижнем углу окна отображается раздел глоссария.

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

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

Чтобы упростить перевод консольных приложений, где важны разделители в сообщениях, установите флажок Подсвечивать в редакторе символы пробелов, табуляции и разрыва строки на странице Редактор диалога настройки, который открывается с помощью пункта главного меню Настройка Настроить &lokalize;....

Если доступа к исходному файлу шаблона перевода нет (это распространённая практика в некоторых коммерческих проектах перевода), возможно использовать файл перевода с соответствующего языка. Достаточно выбрать пункт меню Файл Удалить все переведённые сегменты или воспользоваться комбинацией клавиш &Ctrl;&Alt;D для удаления всех переведённых сегментов.

В главное окно возможно добавить ещё несколько разделов, например, Альтернативные версии, Синхронизация 1, Синхронизация 2, Двоичные модули. Чтобы это сделать, откройте в главном меню пункт Настройка Служебные панели.

### Панели инструментов

Возможно добавить или убрать действия с панели инструментов с помощью пункта главного меню Настройка Панели инструментов....

Настройка панелей инструментов Здесь возможно настроить панели инструментов.

Дополнительные сведения доступны в разделе о панелях инструментов в «Основах &kde;».

### Комбинации клавиш

Использование комбинаций клавиш позволяет сэкономить немного времени при переводе. Чтобы настроить комбинации клавиш, воспользуйтесь пунктом главного меню Настройка Комбинации клавиш....

Настройка комбинаций клавиш Здесь возможно настроить комбинации клавиш.

Дополнительные сведения доступны в разделе о комбинациях клавиш в «Основах &kde;».

### Общие советы

Если проводится работа над переводами &kde;, то скорее всего в папке с переводами уже будет файл проекта &lokalize; (обычно он называется `index.lokalize`). В противном случае выберите пункт меню Проект Создать новый проект, и мастер новых проектов загрузит файлы переводов для языка перевода и создаст проект для них.

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

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

## Проекты

### Общие замечания

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

Для каждого проекта указывается роль работающего над переводом (переводчик, проверяющий, утверждающий), что, в свою очередь, влияет на автоматический выбор этапа работы над переводом непосредственно в программе &lokalize;.

Возможно определить позицию переноса слов на уровне проекта. Достаточно воспользоваться пунктом меню Проект Настроить проект... и перейти к странице Дополнительно.

В отличие от файлов проекта, глоссария и сценариев, память перевода создаётся индивидуально на каждом компьютере и не публикуется в общем репозитории в случае, если над проектом работают несколько человек. Данные памяти переводов хранятся в домашней папке пользователя. Для каждого проекта создаётся отдельная память переводов, но поиск осуществляется по всей базе данных памяти.

### Вкладка «Обзор проекта»

При первом запуске &lokalize; откроется пустая вкладка Обзор проекта. «Обзор проекта» — это представление диспетчера файлов, в котором возможно отслеживать состояние перевода PO-файлов. &lokalize; позволит быстро переводить, а также поддерживать согласованность переводов. Рабочий процесс &lokalize; подразумевает, что работа начинается с создания или открытия проекта.

Чтобы создать новый проект, выберите в главном меню пункт Проект Создать новый проект. Откроется окно, позволяющее пошагово настроить параметры нового проекта. В меню Проект также присутствуют такие пункты, как Обзор проекта, Настроить проект..., Открыть проект и Последние проекты.

Вкладка «Обзор проекта» Здесь возможно настроить параметры проекта.

На вкладке Обзор проекта отображается дерево файлов перевода для текущего проекта со статистикой и другими метаданными. При щелчке левой кнопкой мыши по файлу он открывается в новой вкладке текущего окна &lokalize;.

Отображение полностью переведённых файлов на вкладке Обзор проекта возможно отключить с помощью кнопки на главной панели инструментов Скрыть готовые или с помощью комбинации клавиш &Ctrl;T.

При следующем запуске &lokalize; по умолчанию отобразятся открытые в прошлый раз файлы. Это действие возможно отключить с помощью опции При запуске открывать ранее открытые файлы на странице Основное диалога настройки (чтобы открыть этот диалог, выберите пункт меню Настройка Настроить &lokalize;...). На этой же странице возможно настроить поведение &lokalize; при переключении на следующую или предыдущую вкладку. Список вкладок возможно просматривать по расположению вкладок или по порядку их активации.

## Глоссарий

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

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

На панели «Глоссарий», расположенной в нижней правой части окна, показаны переводы терминов, которые присутствуют в оригинале На панели «Глоссарий», расположенной в нижней правой части окна, показаны переводы терминов, которые присутствуют в оригинале

## Память переводов

Вкладка Память переводов отображает пары оригинал-перевод с оригиналом, который наиболее схож с текущим. Для наполнения памяти переводов возможно перенести переведённые файлы на панель Память переводов, например, из &dolphin;. Сканирование файлов происходит в фоновом режиме, и память переводов будет возможно использовать уже через несколько минут. Чтобы быстро вставить вариант перевода, воспользуйтесь комбинацией клавиш &Ctrl;1, &Ctrl;2 и так далее, в зависимости от номера варианта.

Чтобы добавлять или управлять проектами из памяти переводов, воспользуйтесь опцией главного меню Сервис Управление памятью переводов. Здесь также возможно импортировать и экспортировать данные из файлов формата `tmx`.

Нажатие клавиши F7 открывает вкладкуПамять переводов, позволяющую свободно искать записи в памяти переводов. Щёлкните по результату поиска, чтобы открыть соответствующий файл на искомом сегменте. Если требуется быстро открыть какой-либо файл, название которого известно, и этот файл проиндексирован в памяти переводов, то вместо его поиска в Обзоре проекта просто введите часть его имени в поле Маска для файлов (символы «*» будут добавлены автоматически).

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

Устаревшие записи будут удалены из памяти переводов &lokalize; при повторном сканировании или нажатии на соответствующую запись, если установить флажок Удалять из памяти переводов несуществующие файлы на странице Память переводов диалога настройки, который открывается с помощью пункта главного меню Настройка Настроить &lokalize;....

&lokalize; с результатами поиска в памяти переводов для текущего сегмента &lokalize; с результатами поиска в памяти переводов для текущего сегмента

Заполнение из памяти переводов:

- Чтобы автоматически вставить точно соответствующее предложение из базы данных памяти переводов, воспользуйтесь опцией Сервис Заполнить точными предложениями из памяти переводов или Заполнить точными предложениями из памяти переводов, отмечая неготовыми. Эта функция аналогична функции грубого перевода в &kbabel;.

## Синхронизация переводов

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

&lokalize; позволяет быстро переходить к ближайшему следующему или предыдущему сегменту, перевод которого различается в синхронизируемых файлах. Различия показываются наглядно с подсветкой. Два режима синхронизации, которые имеются в &lokalize; (Синхронизация 1 и Синхронизация 2), идентичны, но первый обычно используется для объединения переводов, а второй — для синхронизации переводов двух ветвей программного обеспечения.

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

### Слияние

Одно из применений режима синхронизации — это рецензирование изменений, сделанных (новыми) переводчиками.

Откройте базовый (старый, он же будет конечным) файл, затем перенесите его модифицированную версию на панель Синхронизация 1 (это также возможно сделать с помощью меню), после чего нажимайте &Alt;Down и &Alt; Up (комбинации клавиш возможно изменить обычным для программ &kde; способом) для перехода по изменённым сегментам.

Слияние переводов с помощью &lokalize; Слияние переводов с помощью &lokalize;

### Репликация

Режим синхронизации также может использоваться для репликации изменений в переводы разных веток ПО. Установите значение параметра Каталог ветки в свойствах проекта в путь к переводам вторичной ветки, и на панели Синхронизация 2 будут автоматически открываться файлы из ветки, и каждое из изменений в основной ветке будет автоматически переноситься во вторичную (естественно, если сообщение с таким оригиналом имеется во вторичной ветке).

Например, если производится работа над переводом &kde;, переводы trunk возможно загрузить в `/home/xx/hacking/kde/trunk/l10n-kf5/ЯЗЫК_ПЕРЕВОДА`, а переводы стабильной ветки — в `/home/xx/hacking/kde/branches/stable/l10n-kf5/ЯЗЫК_ПЕРЕВОДА`. Создайте проект &lokalize;: `/home/xx/hacking/kde/trunk/l10n-kf5/ЯЗЫК_ПЕРЕВОДА/project.lokalize` и задайте `BranchDir=../../../branches/stable/l10n-kf5/ЯЗЫК_ПЕРЕВОДА`, затем работайте с основной веткой и не забывайте публиковать в репозиторий изменения для обеих веток.

### Альтернативные версии

С сегментом могут быть связаны альтернативные версии переводов. Они могут появляться при синхронизации (обновлении) файла переводов с новым оригиналом. Если сегмент изменяется незначительно (например, добавляется точка), старый перевод становится альтернативным для нового оригинала. Также механизм альтернативных версий может использоваться для хранения истории правок по фазам перевода.

При обновлении оригинала перевод утрачивает актуальность, но если изменения небольшие (в том числе несемантические), то вместо того чтобы переводить изменённые части текста заново, возможно просто применить к переводу изменения, аналогичные изменениям в оригинале. Сообщение с изменившимся оригиналом отмечается в качестве чернового (также называемого неподтверждённым), а старая версия оригинала помещается в файл переводов. &lokalize; наглядно показывает различия между старым и новым оригиналом на панели Альтернативные версии.

&lokalize; наглядно показывает изменения, выполненные в оригинале со времени последнего перевода &lokalize; наглядно показывает изменения, выполненные в оригинале со времени последнего перевода

## Расширение функционала &lokalize;

&lokalize; расширяется посредством сценариев на языках высокого уровня, прежде всего Python и &javascript;. Сценарии внедряются в интерфейс в качестве пунктов меню (для которых, кстати, возможно задать комбинацию клавиш). Расположение и текст пункта меню указывается в сопутствующем файле-описании (с расширением .rc). При каждом открытии проекта &lokalize; сканирует папку `ПАПКА_ПРОЕКТА/lokalize-scripts` на предмет наличия файлов .rc и добавляет информацию из них в общий кэш-файл `ПАПКА_ПРОЕКТА/lokalize-scripts/scripts.rc` (этот файл не должен добавляться в общий репозиторий системы управления версиями). В RC-файлах также указывается путь к сценарию, он может быть относительным, и в этом случае поиск сценария осуществляется в каталоге файла .rc и в системном каталоге сценариев. Пути должны быть относительными, если сценарии добавляются в общий репозиторий проекта. Так, в случае работы над переводами KDE, возможно указать путь `../../scripts/lokalize/opensrc.py` для подключения сценария из глобальной папки сценариев kf5-l10n (то есть не специфичной для языка перевода).

Примеры файлов .rc возможно найти в установочной папке &lokalize; (обычно это `/usr/share/lokalize/scripts/`) и в репозитории &kde;. Здесь также можно найти пример сценария на &javascript;, `check-gui.js`, который выполняется автоматически при каждом сохранении файла (это достигается с помощью специального параметра в файле .rc). Если вы знакомы с Python или &javascript;, код должен быть очевидным для вас.

Ниже представлены ссылки на описание программных интерфейсов &lokalize;. Все методы и сигналы, отмеченные как Q_SCRIPTABLE, доступны из сценариев.

- Описание интерфейса объекта Editor

- Описание интерфейса объекта &lokalize;

- Описание интерфейса объекта Project

### Pology

Одной из лучших сценарных возможностей приложения является использование программы Pology в &lokalize;.

Взаимодействие с программой Pology возможно настроить на странице Программа Pology диалога настройки, доступ к которому осуществляется с помощью пункта главного меню Настройка Настроить &lokalize;....

Дополнительные сведения доступны на домашней странице программы Pology.

### LanguageTool

Программа LanguageTool предоставляет возможности проверки грамматики и орфографии переведённых сегментов.

Настроить свой собственный сервер программы LanguageTool возможно на странице LanguageTool диалога настройки, доступ к которому осуществляется с помощью пункта главного меню Настройка Настроить &lokalize;....

Чтобы использовать возможности проверки с помощью LanguageTool, выберите в главном меню пункт Правка Проверить сегмент с использованием LanguageTool или воспользуйтесь комбинацией клавиш &Ctrl;J.

Дополнительные сведения доступны на домашней странице программы LanguageTool.

## Авторские права и лицензия

&lokalize;

Программа © Николай Шафоростов shaforostoff@kde.ru, 2007—2015

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

Документация © Николай Шафоростов shaforostoff@kde.ru, 2007—2009

Автор:

- Nick Shaforostoff shaforostoff AT kde.ru; Shankar Prasad svenkate AT redhat.com; Sweta Kothari swkothar AT redhat.com

Дополнительные сведения доступны на домашней странице программы &lokalize;.

Перевод: Николай Шафоростовshaforostoff@kde.ru

Мария Шикуноваtranslation-team@basealt.ru

Олеся Герасименкоtranslation-team@basealt.ru

&underFDL; &underGPL;
&documentation.index;