Одной из наиболее полезных функций в OmegaT… Подождите-ка, я, по-моему, слишком часто это говорю? 🙂
Ну да ладно. На сей раз речь пойдет о регулярных выражениях. Я уже писал про то, как с их помощью можно составить список распространенных ошибок. Но дело этим не ограничивается — применять их можно также в правилах сегментации и при поиске. В этой статье я разберу несколько основных регулярных выражений, благодаря которым работать над переводом в OmegaT становится существенно легче и приятнее.
Поиск слов целиком
Два основных способа поиска в OmegaT — это точные совпадения и ключевые слова:
- Точный поиск возвращает результаты, в точности совпадающие с критерием поиска, как это происходит при обычном поиске, скажем, в Microsoft Word:
«open box» возвращает «open box», «open boxes», «re-open boxes» и т. д., но не «opened box».
- А чтобы найти «opened box», нужно уже искать по ключевым словам. Тогда OmegaT будет искать любое количество отдельных критериев поиска в любом порядке внутри отдельно взятого сегмента.
«open box» вернет «opened box», «An opened box fell to the floor» и «The mailbox was left opened».
Кстати, этот параметр крайне полезен. И он по большому счету является уникальной фишкой OmegaT, поскольку во многих платных аналогах пока отсутствует.
Так как же найти только «open box», без окончаний и приставок? Нужен параметр «Слово целиком». Во многих программах он предусмотрен, но в OmegaT пока нет. Ничего страшного, достаточно заключить искомый текст в регулярное выражение b, обозначающее границу слова. Установите флажок Regular expressions и запустите поиск.
Вот так это должно выглядеть: bopen boxb
Поиск непереведенных сегментов
Для перехода к следующему непереведенному сегменту достаточно нажать Ctrl+U. Но что, если хочется увидеть их все сразу, а не по одному сегменту за раз? Это можно сделать с помощью простого регулярного выражения: ^$. Результаты поиска можно использовать, например, следующим образом:
- Перепроверить, не осталось ли в проекте непереведенных сегментов.
- Отфильтровать 100-процентные совпадения, чтобы отобразить в панели Editor только требующий перевода текст. Это помогает лучше сосредоточиться и не отвлекаться на готовые переводы.
- Извлечь непереведенные сегменты в отдельный файл. Например, такой файл может пригодиться, когда нужно исключить из объема работы 100-процентные совпадения, не оплачиваемые клиентом. Если оставить их в проекте, то они будут отвлекать и, более того, могут быть включены в результаты проверки с помощью программы контроля качества, такой как Verifika.
Один любой знак
До недавнего времени я не подозревал, насколько легко в OmegaT создавать правила сегментации с помощью столь простого регулярного выражения, как точка. Если мне нужно разбить сегмент после определенного элемента, то я просто указываю его в правиле как предшествующий элемент (pattern before) и точку как последующий элемент (pattern after). Вот пример:
Open the Settings window.nnOpen the Files tab.
Такие склеенные предложения довольно неудобны, потому что здесь они объединены в один сегмент, а в другом месте в проекте могут быть двумя отдельными сегментами:
Open the Settings window.
Open the Files tab.
Таким образом, получаем двойную работу и риск непоследовательного перевода. Вот где на выручку приходит могучая точка. Просто добавляем два следующих правила сегментации:
(Флажок Break/Exception установлен)
Pattern Before: \n\n (дополнительные обратные черты нужны для того, чтобы OmegaT воспринимала «n» как текст, а не аналогичное регулярное выражение, обозначающее разрыв строки)
Pattern After: .
И второе, являющееся зеркальным отражением первого:
(Флажок Break/Exception установлен)
Pattern Before: .
Pattern After: \n\n
Вот и все. В итоге получаем два аккуратных сегмента, с которыми приятнее работать и которые могут даже оказаться повторами других идентичных предложений в проекте:
Open the Settings window.
nn
Open the Files tab.
Большинство вышеперечисленных регулярных выражений взяты с чрезвычайно полезного форума OmegaT. В очередной раз снимаю шляпу перед людьми, которые работают над OmegaT и в ней!