Vallyol's Blog

31/10/2011

OmegaT

Filed under: Translate — Метки: , , , — vallyol @ 00:11

Возник вопрос — какие переводчики есть под Linux?
Интерес представляют именно переводчики, а не словари, которых существует огромное количество. Цель — перевод документов различных форматов: doc, odt, htm, txt и самое главное — pdf и djvu.

Поиск по интернету принес один результат: в Linux есть переводчик, и это prawda. Результат более чем неудовлетворительный, особенно с учетом того, что последняя версия была выпущена ещё в лохматом 2006 году, с тех пор проект скорее мертв, чем жив, и работает из-под консоли (что уже не есть торт)

В тоже самое время существует множество online-переводчиков: PromT, Lingvo, Google и их клонов — а также программ, позволяющих пользоваться online-службами переводов, запустив софтину на локальной машине.

Google Translate, к примеру, позволяет переводить не только вставленный в область перевода текст. В поле можно ввести адрес страницы — и получить её машинный перевод. Также есть функция перевода файлов (что и хочется получить), но со своими ограничениями. Из отправленных на перевод 10 pdf-файлов получил перевод всего двух (все были не ocr). Выводы — есть ограничения на размер и на количество переводимых страниц; один из отправленных документов состоял из 46 страниц — переведено 20. Есть ещё один нюанс… При извлечении текста из файла создаются метки, указывающие расположение текстовых групп. Так вот, переведенный текст вставляется в тоже место, итоговый результат выглядит так:

Google также предлагает систему автоматического перевода под названием Translator Toolkit, которая позволяет использовать глоссарии и память переводов. Всё это в вэбе и, опять, с ограничениями: размер файла до 1Мб, типы файлов — Архив Редактора AdWords(.AEA),.html,.doc,.odt,.txt,.rtf, SubRip (.SRT),SubViewer (.SUB). Что, опять же, не торт…

Зато таким образом я добрался до систем автоматизированного перевода — систем, где перевод осуществляется человеком (в отличии от машинных Google и PromT), компьютер лишь помогает осуществить перевод за меньшее время и с лучшим качеством. Достигается это использованием словарей и глоссариев, а также работой с памятью переводов, содержащей примеры ранее переведенных текстов.

Отбросив те продукты, что сделаны под другие операционные системы (Star Transit, Déjà Vu) и имеют определенно немалую стоимость (Trados Studio 2011 Freelance ~850 евро), остановился на OmegaT.

OmegaT

OmegaT — это свободная система автоматизированного перевода, поддерживающая память переводов, написанная на языке программирования Java. Программа работает на любой операционной системе, в которой установлена среда Java Runtime Environment. Саму Java отдельно загружать не надо, она уже включена в пакет OmegaT.

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

Установка

Ну, здесь всё достаточно просто и прозрачно.
Заходим на сайт программы и выбираем Download OmegaT. В открывшемся окне имеется два варианта загрузки: Download Overview (с описанием вариантов программы) и Download Selector (мастер, позволяющий шаг за шагом выбрать подходящий вариант программы). Я выбрал последнюю (бета) версию OmegaT под Linux с Java.

В каталоге /usr/local/lib/ создаём каталог OmegaT и в него распаковываем содержимое скачанного архива.

Созданному каталогу даем права на чтение/запись (я выставил 40777). Пункт необязательный, всё зависит от того, где будет хранится база переводов: если в каталоге с программой — права нужно изменить.
Осталось создать ярлыки для запуска программы.
У меня KDE, поэтому добавляю запись в К-меню: Правая кнопка мыши -> Редактировать меню -> Выбираю желаемое месторасположение, выделяю его и нажимаю «новое подменю».

В закладке «Дополнительно» можно установить комбинацию клавиш на запуск приложения, я выбрал Ctrl + Alt + T, вроде как translate :).

Можно создать ярлык на рабочем столе. Делается так: правая кнопка мыши -> создать -> ссылка на приложение и заполнить поля во вкладке «Приложение».

Первый запуск

Программа скопирована в рабочий каталог, ссылки на приложение созданы… Запускаем.

В стартовом окне имеется руководство по быстрому освоению программы. В меню «Справка» имеется достаточно понятное руководство пользователя на русском языке.

Так, подстроим ещё кое-что.
Автоматизированный перевод автоматизированным переводом… С участием человека, которому без машинного не обойтись… Поэтому, сразу иду в «Параметры» -> «Машинный перевод» и включаю online-переводчик из небольшого списка предлагаемых.

Белазар, если я правильно понимаю, это белорусско-русский переводчик, Апертиум — опенсоурс альтернатива переводчику Гугл (вот только на сегодня с русским языком у него плохо, поэтому не включаю).

Проект

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

И вот тут мысль работает следующим образом: программа устанавливается распаковкой, значит удаляется удалением (во, блин…), поэтому проекты мы будем складировать там же… первый запуск всё же… Даю название «Перевод» и вспоминаю, как предусмотрительно установил права когда-то.

Далее, появляются опции нового проекта.

Замечательно, выбор языков оригинала и цели, тут всё понятно. Сегментация по предложениям — тоже: во-первых, удобство перевода, во-вторых, логично предположить, что сегментация используется в механизме памяти переводов. Auto-propagation — функция автоматической вставки 100% совпадений в перевод.

Далее, расположение файлов. Значит, имя проекта = имя каталога, который создается при инициализации нового проекта. Удобно!

Сразу после подтверждения опций появляется окно с предложением импортировать файлы в проект. Я не удержался (когда же, наконец-то, перевод начнется?..) и закинул Омеге мануал по дэмону init, поэтому на скрине файл уже там.

Даже два сегмента перевел… И вспомнил: переводчик Google я подцепил, а словари? Вдруг гугл чего-то не знает 🙂
За словарями иду сюда, выбираю с английского на русский в формате StarDict, построить список (submit). Вижу список богатый, чтоб не мучаться выбором загрузил словарь Мюллера.

Распакованное содержимое архива копирую в папку dictionary, созданную при инициализации проекта — это три файла: .dict.dz, .idx, .ifo (StarDict-формат). Проверяю, подгрузился ли словарь

Так, прекрасно! А где online-переводчик? Google, ау? Вота он!

В принципе, этого уже вполне достаточно для изготовления вменяемых переводов!
Теперь, о деталях.

Нечеткие совпадения

Захожу в «Параметры» -> «параметры редактирования».

Здесь используется понятие «Порог похожести». Считаю, что для более качественного перевода функцию лучше отключить, что и сделал. Совсем не лень набить лишний сегмент руками, чем думать о тех 20% непохожести, на которые сегменты отличаются. Поэтому, до кучи, поставил галочку напротив «Разрешить перевод, идентичный оригиналу», чтобы 100%-ые совпадения автоматически вставлялись в переводимый документ.

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

На скрине зеленым цветом выделен сегмент, который переводится в данный момент, это фраза «init(8) is an event-based init daemon.» В окне «Нечеткие совпадения» мы видим степень соответствия переводимой фразы тому, что есть в памяти переводов. Если меня это устраивает, есть чудная комбинация — Ctrl+M — и переводимый сегмент автоматически заменится на «нечеткий» перевод. При 100% — замена производится без моего участия.

Форматы поддерживаемых файлов.

В Омега поддерживаются два типа форматов файлов: текстовые файлы с неформатированным (plain text) и форматированным текстом. Подробнее об этом можно прочитать в руководстве пользователя.
Но того формата, из-за которого всё это началось (pdf) — нет. Читаю описание: «OmegaT также может работать с другими типами форматированных или неформатированных файлов.» Для этого их необходимо преобразовать в поддерживаемые форматы, используя внешние программы. Займемся преобразованием…

OmegaT и PDF

На официальном англоязычном сайте нашлась ссылка на описание работы с программой Infix Pro. Суть метода достаточно проста: профессиональная версия имеет функцию экспорта текста в xml-файл. Экспортированный файл сохраняется, infix же в pdf-документе создает специальные метки, указывающие местоположение текстовых фрагментов, куда впоследствии будет импортирован переведенный текст.

Но! Infix — программа, созданная под Windows. Про аккуратность её работы из-под wine сказать ничего не могу. И экспортируемый ею xml — это MSxml. Утилит под Linux, производящих экспорт в майкрософтовский xml не встречал. А Xml, полученный экспортом из линуксового PDFEdit, Омега просто не видит: копирует в папку source проекта при импорте файлов и о нем забывает.

Но зато любой пользователь Linux может осуществить экспорт из pdf в текстовый неформатированный файл!

PDF-вьювер зовется Okular. Тоже самое позволяет сделать и xpdf.

Реклама

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: