Глава 13. Память переводов
Пред. |  | След.

# Глава 13. Память переводов

## 1. Память переводов в ОмегаТ

### 1.1. Каталоги tmx - расположение и назначение

В проектах ОмегаТ файлы памяти перевода, т. е. файлы с расширением «tmx», могут храниться в четырёх разных местах.

подкаталог «omegat»

  Папка «omegat» содержит файл `project_save.tmx` и, возможно, некоторое количество его резервных копий. Файл `project_save.tmx` содержит все сегменты, которые были сохранены в памяти программы с момента начала проекта. Этот файл всегда присутствует во всех проектах. Его содержимое всегда отсортировано по исходным сегментам в алфавитном порядке.

главный каталог проекта

  Главный каталог проекта содержит три TMX-файла: `имя_проекта-omegat.tmx`, `имя_проекта-level1.tmx` и `имя_проекта-level2.tmx`.

  - Файл «level1» содержит только текстовую информацию.

  - Файл «level2» инкапсулирует специфические теги ОмегаТ в стандартные теги TMX, чтобы этот файл можно было использовать (со всей информацией о форматировании) в любом переводческом ПО, которое поддерживает TMX 2 уровня, или в самой ОмегаТ.

  - Файл omegat включает специфические теги форматирования ОмегаТ, так что его можно использовать в других проектах ОмегаТ.

  Эти файлы представляют собой копии `project_save.tmx`, т. е. главной памяти переводов проекта, за исключением ничейных сегментов. Им специально присвоены разные имена, чтобы всегда можно было понять, что находится в данном, конкретном файле. Это может быть полезно, например, когда TMX-файл находится в подкаталоге `«tm»` другого проекта.

подкаталог `«tm»`

  Каталог «/tm/» может содержать любое количество справочных TMX-файлов. Эти файлы могут быть в любом из трёх описанных выше вариантах. Заметьте, что другие системы автоматизированного перевода могут также производить экспорт (и импорт) TMX-файлов во всех вариантах. Лучше всего, конечно, использовать TMX-файлы со специфичными для ОмегаТ тегами (см. выше), чтобы сохранить информацию о внутреннем форматировании сегментов.

  Содержимое файлов памяти переводов из каталога «tm» используется при поиске нечётких совпадений в переводимом тексте. Любые хранящиеся в этих файлах сегменты, достаточно схожие с сегментами переводимого текста, будут показываться в области просмотра нечётких совпадений.

  Если какой-либо из хранящихся в справочных TMX-файлах сегментов полностью совпадёт с текущим переводимым сегментом, поведение ОмегаТ будет зависеть от настроек, заданных в диалоговом окне «Параметры → Параметры редактирования...». Например (если заданы настройки по умолчанию), перевод из справочной памяти переводов может быть принят, и вставлен как перевод сегмента с префиксом [нечёткое совпадение], так что в дальнейшем переводчик сможет легко найти подобные сегменты и проверить их (см. раздел Параметры редактирования) .

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

  Заметьте, что TMX-файлы в каталоге «tm» могут быть сжаты утилитой gzip.

подкаталог «tm/auto»

  Если заранее известно, что хранящиеся в TMX-файле переводы корректны (полностью подходят для текущего проекта), можно поместить TMX-файл в подкаталог tm/auto, что позволит избежать необходимости удалять подстроку [нечёткое совпадение] из множества автоматически вставленных переводов. Это позволит легко создать предварительный перевод исходного текста: все исходные сегменты, для которых в файлах из папки «auto» найдутся точные совпадения, будут переведены без какого-либо участия со стороны пользователя.

подкаталоги «tm/penalty-xxx»

  Иногда требуется отделить высококачественные файлы памяти переводов от менее надёжных (например, относящихся к другой тематике или ещё не отредактированных). Для памяти переводов, хранящейся в подкаталогах «penalty-xxx» (где «xxx» это число от 0 до 100), будет автоматически занижаться процент совпадений, в соответствии с названием каталога, например, точные совпадения из памяти переводов, хранящейся в каталоге «penalty-30», будут помечаться как семидесятипроцентные. Это относится и к остальным совпадениям: сегменты с 75, 80 и 90 процентами совпадений будут отмечаться как имеющие 45, 50 и 60 %.

Также можно указать ОмегаТ создать дополнительный TMX-файл (в формате *-omegat-*) со всеми сегментами проекта. См. ниже подраздел о памяти псевдо-переводов.

Помните, что файлы памяти переводов загружаются в память при открытии проекта. Резервное копирование памяти переводов проекта происходит регулярно (см. следующий раздел), также файл `project_save.tmx` сохраняется/обновляется при каждой загрузке и закрытии проекта. Это означает, например, что если вы добавите в проект новый справочный TMX-файл, то будет достаточно перезагрузить проект, все ваши переводы будут сохранены.

Расположение различных файлов памяти перевода для текущего проекта задаётся пользователем (см. окно Проект > Свойства…).

В зависимости от потребностей, можно применять различные стратегии перевода, например:

несколько проектов со схожей тематикой: используйте единый каталог для всех проектов, заменяйте только каталоги исходных и переведённых файлов (исходные файлы в «source/order1», переведённые файлы в «target/order1» и т. д.). Заметьте, что переводы сегментов из файлов в каталоге «order1», которые отсутствуют в «order2» или других работах, будут помечаться как «ничейные», что, однако, никак не помешает использовать их как источник нечётких совпадений.

несколько переводчиков, работающих над одним проектом: разделите каталог исходных файлов на «source/Mihail», «source/Viacheslav»… и назначьте их членам команды (Михаилу, Вячеславу и т. д.). Они могут создать собственные проекты и предоставить `project_save.tmx` по окончанию проекта, или после перевода определённого количества текстов. Затем, файлы `project_save.tmx` собираются вместе и анализируются, например, чтобы исключить несоответствия в терминологии. Создаётся новая версия главного TMX-файла, который либо помещается в каталог tm/auto каждого члена команды, либо служит заменой их файлов `project_save.tmx`. Команда может использовать общий каталог переведённых файлов. Это позволяет, например, в любой момент убедиться, что перевод всего проекта корректен.

### 1.2. Резервное копирование TMX-файлов

По мере перевода ваших фалов, ОмегаТ сохраняет память переводов в файле `project_save.tmx`, находящемся в подкаталоге `omegat`.

Кроме того, ОмегаТ сохраняет резервные копии памяти переводов в файлах `project_save.tmx.ГГГММДДЧЧНН.bak` в той же папке при каждом открытии или перезагрузке проекта. ГГГГ — это год (4 цифры), ММ — это месяц, ДД — это число, а ЧЧ и НН — это часы и минуты, прошедшие с момента сохранения предыдущей резервной копии.

Если вам кажется, что вы потеряли свой перевод, сделайте следующее:

1. Закройте проект

2. Переименуйте файл `project_save.tmx` (например, в `project_save.tmx.temporary`)

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

4. Переименуйте его в `project_save.tmx`

5. Откройте проект

### 1.3. TMX-файлы и язык

Файлы TMX содержат единицы перевода, которые состоят из определённого количества эквивалентных сегментов на разных языках. Единица перевода состоит из, как минимум, двух вариантов единицы перевода (translation unit variant, TUV). Любой из них можно использовать и как оригинал, и как перевод.

Языки перевода и оригинала определяются из настроек проекта. Таким образом, ОмегаТ находит варианты единиц перевода соответствующие языковым кодам проекта и рассматривает их как сегменты оригинала и перевода. ОмегаТ распознаёт языковые коды в двух форматах:

- двух-буквенные коды (например, JA для японского), или

- двух- или трёх-буквенные коды, за которыми идёт двух-буквенный код страны (например, EN-US, см Приложение A, Языки - список кодов ISO 639 неполный список кодов языков).

Если языковые коды проекта и файла TMX полностью совпадают, сегменты загружаются в память. Если совпадает только язык, но не страна, сегменты всё равно загружаются в память. Если не совпадает ни один код, сегменты не загружаются.

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

### 1.4. Ничейные сегменты

Файл `project_save.tmx` содержит все сегменты, которые были переведены с момента начала проекта. После изменения правил сегментации или удаления файлов из каталога «source» некоторые совпадения могут отображаться в области просмотра как «ничейные»: такие совпадения соответствуют сегментам, которых больше нет в исходных документах, эти сегменты были переведены и сохранены в памяти до своего удаления.

## 2. Повторное использование памяти переводов

Изначально, сразу после создания проекта, главный файл памяти переводов, `project_save.tmx`, пуст. По мере перевода этот TMX-файл будет наполняться. Для ускорения этого процесса можно использовать уже имеющиеся переводы. Если текущий сегмент уже был переведён ранее и переведён хорошо, переводить его заново нет никакой необходимости. Также, сегменты из памяти перевода могут использоваться как образцы специфического стиля, типичный пример — международные документы, публикуемые Европейским Союзом.

При создании переведённых документов память переводов проекта также сохраняется в виде трёх файлов в главной папке проекта (см. выше). Эти три TMX-файла (`«-omegat.tmx»`, `«-level1.tmx»` и `«-level2.tmx»`) можно рассматривать как «память переводов на экспорт», то есть, как экспортированную двуязычную сводку вашего проекта.

Если вы пожелаете повторно использовать память переводов из предыдущего проекта (например, потому что новый проект похож на предыдущий или использует терминологию, которая была задействована раньше), то вы можете подключить эту память переводов как «внешнюю» по отношению к вашему новому проекту. В этом случае поместите файлы памяти переводов, которые вы хотите использовать, в каталоги /tm или /tm/auto вашего нового проекта. Файлы из каталога «tm» будут использоваться для поиска нечётких совпадений, а файлы каталога «/tm/auto» — для создания предварительного перевода вашего проекта.

По умолчанию, каталог «/tm» находится в главном каталоге проекта (например, /MyProject/tm), но, при желании, в диалоговом окне свойств проекта вы можете задать и другое расположение. Это полезно, если вы часто используете файлы памяти переводов, созданные раннее, например, потому что они относятся к одной теме или к одному клиенту. В таком случае, может быть полезно прибегнуть к такой процедуре:

- Создайте каталог (репозиторий, хранилище) в удобном месте на вашем жёстком диске. Он будет использоваться для конкретного клиента или конкретной тематики.

- После окончания работы над проектом, скопируйте один из трёх «экспортных» файлов памяти переводов из главного каталога проекта в каталог-репозиторий.

- Когда вы начинаете работу над новым проектом для того же клиента или по той же тематике, выберите пункт меню «Проект > Свойства...» и в появившемся диалоговом окне в качестве папки памяти переводов укажите каталог-репозиторий.

Имейте в виду, что все TMX-файлы в репозитории «/tm» обрабатываются во время запуска программы, поэтому если вы поместите туда все имеющиеся у вас TMX-файлы, то можете несколько замедлить работу ОмегаТ. Возможно, часть этих файлов можно будет удалить, после того, как их содержимое перейдёт в `project-save.tmx` вашего текущего проекта.

### 2.1. Импорт и экспорт памяти переводов

ОмегаТ поддерживает импорт файлов TMX версий 1.1—1.4b (уровней 1 и 2). Это позволяет ОмегаТ использовать память переводов, созданную другими программами. Однако, импорт TMX-файлов 2 уровня (которые содержат не только перевод, но и форматирование) поддерживается не полностью. ОмегаТ может импортировать TMX-файлы второго уровня и использовать содержащуюся в них текстовую информацию, но качество нечётких совпадений будет несколько ниже.

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

Некоторые программы иногда производят некорректные файлы TMX. Если вы всё же хотите их использовать в ОмегаТ, то сначала их необходимо исправить, иначе OmegaT не сможет их загрузить и сообщит об ошибке. Исправлять эти файлы достаточно легко, ОмегаТ даст вам нужные подсказки в соответствующем сообщении об ошибке. Если проблему решить не удалось, можно попросить помощи в списке рассылки пользователей ОмегаТ.

ОмегаТ экспортирует TMX-файлы версии 1.4 (1 и 2 уровня). На самом деле, экспорт 2 уровня не совсем соответствует стандарту, но достаточен для того, чтобы эти файлы давали корректные совпадения в программах, поддерживающих TMX 2 уровня. Если вам нужна только текстовая информация (без форматирования), используйте созданный ОмегаТ файл 1 уровня.

### 2.2. Создание отдельной памяти переводов для некоторых документов

Если вы хотите поделиться памятью переводов, за исключением сегментов из некоторых документов, или содержащей сегменты только определённых документов, передача всего файла `ИмяПроекта-omegat.tmx` вам не подойдёт. Ниже описан один из способов решить эту проблему, не единственный, но достаточно простой и надёжный.

- Создайте новый проект с нужной парой языков и подходящим именем, помните, что это имя унаследуют и создаваемые TMX-файлы.

- Скопируйте документы, для которых хотите создать файл памяти переводов, в каталог «source» нового проекта.

- Скопируйте память переводов этих документов из предыдущих проектов в каталог `tm/auto`.

- Откройте созданный проект. Нажмите CTRL+T, чтобы проверить теги и CTRL+U, чтобы убедиться, что все сегменты имеют перевод. Если никаких проблем не обнаружено, нажмите CTRL+D, чтобы создать переведённые документы, и проверьте их содержимое.

- Закройте проект. Теперь TMX-файлы в главном каталоге проекта содержат память перевода нужных вам файлов и только их. Сделайте резервную копию этих файлов.

- Чтобы избежать путаницы, удалите новый проект или переместите его в архив.

### 2.3. Использование общей памяти переводов

Если над проектом работает команда переводчиков, вместо обмена локальными копиями памяти переводов удобнее использовать один общий файл памяти.

ОмегаТ умеет работать с SVN и Git, двумя наиболее популярными свободными системами управления версиями. Система управления версиями может синхронизировать общий каталог проекта между всей командой переводчиков, включая подкаталог «source» и файл с настройками проекта. Более подробная информация представлена в соответствующем разделе.

### 2.4. Использование TMX-файлов с другими языковыми парами

Предположим, вы перевели проект, например, с нидерландского на русский. Затем вам потребовалось перевести это проект на китайский, но переводчица, знающая китайский, совсем не понимает нидерландский, однако хорошо говорит по-русски. В этом случае память переводов NL-RU может быть использована как для создания перевода NL-ZH.

Для этого нужно скопировать созданную память NL-RU в подкаталог «tm» и переименовать файл в «ZN-CN.tmx», чтобы подчеркнуть язык перевода проекта. Переводчик будет видеть английские переводы сегментов на нидерландском языке и сможет использовать их для создания перевода на китайский.

Важно: вспомогательный TMX-файл должен быть переименован в «XX_YY.tmx», где «XX_YY» — это код целевого языка проекта, например, «ZH_CN.tmx» в примере выше. Конечно же, исходные языки проекта и TMX-файла должны быть одинаковыми (в нашем примере это NL). Заметьте, что для одной языковой пары можно подключить только один TMX-файл, так что если вам нужно использовать несколько файлов памяти переводов, их следует объединить в один файл «XX_YY.tmx».

## 3. Исходные документы с уже имеющимися переводами

Файлы некоторых форматов, например, PO и TTX, являются двуязычными, т. е. одновременно содержат и исходные сегменты, и память переводов. В этих случаях существующий перевод, хранящийся в исходном файле, автоматически копируется в `project_save.tmx`. Если не найдено других точных совпадений, он становится переводом по умолчанию, в противном случае он рассматривается как один из возможных вариантов перевода. Таким образом, полученный результат зависит от порядка загрузки исходных сегментов.

Все переводы из исходных документов показываются не только в области нечётких совпадений, но и в области комментариев. В случае с PO-файлами процент совпадения альтернативных вариантов перевода занижается на 20 %, т. е. для точных совпадений он будет составлять лишь 80 %. Рядом с исходным сегментом будет отображаться строка «[Нечёткое совпадение]».

При загрузке TTX-файлов сегменты, перевод которых совпадает с оригиналом, будут включены в проект, если в окне «Параметры → Параметры редактирования…» установлен соответствующий флажок. Так как это может вас запутать, возможно, флажок стоит снять.

## 4. Память псевдо-перевода

### Примечание

Этот раздел предназначен для опытных пользователей!

Иногда перед собственно переводом, может понадобиться предварительная обработка сегментов, вне ОмегаТ. Например, вы можете захотеть создать псевдо-перевод, чтобы как-нибудь с ним поэкспериментировать. ОмегаТ позволяет создать дополнительный TMX-файл, который содержит все сегменты проекта. Переводы в этом файле либо:

- будут копировать оригинал (поведение по умолчанию)

- будут пустыми

Вы можете указать для этого файла любое имя. Память псевдо-перевода создаётся следующей командой (в командной строке):

`java -jar omegat.jar --pseudotranslatetmx=<имяфайла> [pseudotranslatetype=[equal|empty]]`

Замените `<имяфайла>` на конкретное имя файла, который вы хотите создать. Имя может быть абсолютным или относительным к текущему каталогу (каталогу, из которого запускается ОмегаТ). Второй аргумент (`--pseudotranslatetype`) не обязателен. Он может принимать значения `equal` (поведение по умолчанию, перевод копирует оригинал) или `empty` (сегмент перевода будет пустым). В дальнейшем вы можете обрабатывать созданный TMX-файл при помощи любой доступной вам программы. Чтобы повторно использовать его в ОмегаТ, переименуйте файл в project_save.tmx и поместите в папку `omegat` вашего проекта.

## 5. Обновление файлов памяти переводов

Ранние версии ОмегаТ умели производить сегментацию исходных файлов только по абзацам и непоследовательно нумеровали теги форматирования в файлах HTML и Open Document. ОмегаТ 2.5 может определять и исправлять такие TMX-файлы «на лету», что позволяет улучшить качество нечётких совпадений и более эффективно использовать существующие переводы, тем самым освобождая переводчика от лишней работы.

Главный TMX-файл проекта обновляется только один раз и записывается в `project-save.tmx`. Обычные старые TMX-файлы обновляются «на лету» каждый раз при загрузке проекта. Следует иметь в виду, что некоторые изменения в фильтрах ОмегаТ 2.5 могут привести к совершенно другой сегментации, поэтому иногда (в редких случаях) вам придётся обновлять перевод вручную.

Пред. |  | След.
Глава 12. Работа с форматированным текстом | Начало | Глава 14. Сегментация исходного текста