Предложение выглядит цельным в макете InDesign, но после импорта в CAT-систему распадается на десять строк, каждая со своим сегментом и тегами. Переводчик теряет контекст, редактору приходится переходить между фрагментами, а после экспорта трудно понять, где именно возникло дробление.
Причина не обязательно в ошибке CAT-системы. В IDML видимая строка, абзац в структуре документа и сегмент для перевода - разные вещи. На количество сегментов влияют разрывы, форматирование, правила сегментации языка и способ, которым импортёр читает пакет.
Ниже разберём, как эти уровни связаны, как отличить настоящий конец абзаца от визуального переноса строки и как проверять проблему, не повреждая файл регулярными выражениями наугад.
Что происходит между макетом InDesign и CAT-системой¶
IDML - это XML-представление документа InDesign, упакованное вместе с другими компонентами документа. Спецификация IDML версии 8.0, относящаяся к InDesign CS6 и 2012 году, описывает устройство пакета; это структурная справка, а не описание поведения современных CAT-систем (спецификация IDML).
Пакет IDML является ZIP-архивом. Истории с текстом хранятся в каталоге Stories, а связанные с макетом и общими ресурсами компоненты представлены в других частях пакета. Поэтому видимая страница не равна одному простому текстовому файлу: CAT-система должна извлечь нужный текст из истории, интерпретировать структуру и решить, как показать содержимое для перевода.
Модель истории включает ParagraphStyleRange, CharacterStyleRange и Content. Текст находится в Content, а диапазоны несут информацию о стилях. Техническая справка описывает эту модель отдельно от правил CAT-сегментации (IDML Reference: Story structure).
Здесь полезно разделить три слоя:
- Структура IDML говорит, где проходит разрыв абзаца, какие участки имеют отдельное форматирование и где находится текст.
- Импортёр файла читает IDML и передаёт CAT-системе текст и служебную информацию. Поведение зависит от конкретного фильтра.
- Правила сегментации определяют, какие части переданного текста система покажет как отдельные переводческие сегменты.
Эти слои связаны, но не совпадают. Например, наличие отдельного CharacterStyleRange показывает границу форматирования в исходной структуре. Оно не доказывает, что импортёр обязательно превратит эту границу в отдельный сегмент. Решение зависит от того, как конкретный фильтр обрабатывает такие диапазоны.
Сегмент CAT-системы - это единица, в которой переводчик получает исходный текст и вводит перевод. Система может делить текст по окончаниям предложений и другим правилам языка. Одно длинное предложение при этом может остаться одним сегментом, а визуально короткий участок - оказаться отдельным, если структура исходника или настройки импорта создают для него границу.
Для работы с переводом InDesign полезно понимать весь цикл экспорта и возврата файла. В руководстве по переводу InDesign через IDML подробнее разобраны этапы такого процесса. Здесь же фокус уже: почему сегменты оказываются короче, чем ожидает команда.
В технической справке IDML сказано: «Абзац заканчивается там, где стоит отметка
<Br/>; принудительный перенос строки - это символ U+2028 внутри Content; табуляция - символ табуляции U+0009» (IDML Reference: Story structure).
Практический вывод прост: если CAT-система разделила предложение, сначала выясните, есть ли в исходной истории настоящая граница абзаца. Одна лишь картинка страницы этого не покажет.
Четыре причины, по которым предложение распадается на сегменты¶
Самое частое заблуждение при диагностике - считать, что любой разрыв на странице означает одно и то же. Макет показывает визуальное расположение текста; IDML хранит структуру, где разные виды разрывов имеют разные значения.
Настоящий конец абзаца¶
Элемент Br представляет отметку конца абзаца. Если автор макета нажимал Enter, чтобы перенести часть предложения на следующую строку, исходник может содержать абзацную границу там, где читатель видит лишь продолжение одной фразы.
С точки зрения CAT-системы такая граница может быть значимой. Импортёр способен представить текст до и после Br как отдельные единицы или передать разрыв дальше, после чего сегментация обработает его как границу. Точный результат зависит от фильтра и настроек.
Так появляется типичный симптом: в InDesign предложение читается как одно, но CAT-система показывает несколько сегментов, каждый из которых заканчивается там, где дизайнер вручную разбил текст. В обсуждении рабочего случая переводчик сообщал о добавленных заказчиком разрывах внутри визуально цельного предложения; в приведённом примере XML между частями текста стояли отметки Br. Это наблюдение относится к конкретному случаю, а не ко всем IDML-файлам.
Принудительный перенос строки¶
Принудительный перенос строки не завершает абзац. В описанной модели IDML он представлен символом U+2028 внутри Content. Такой знак меняет расположение строки, но абзац продолжается (модель абзаца IDML).
Различие важно для перевода. Принудительный перенос обычно нужен, чтобы текст визуально начинался с новой строки в пределах того же абзаца. Конец абзаца создаёт другую структурную границу. Если проверка файла сводит оба случая к общему «переносу», диагностика сразу теряет ключевую информацию.
Изменение символьного форматирования¶
CharacterStyleRange описывает участок текста с определёнными символьными атрибутами. Если атрибуты меняются, например появляется форматирование или переопределение, в истории возникает новая граница диапазона (IDML Reference: Story structure).
Предложение при этом может проходить через несколько диапазонов. Например, обычный текст продолжается жирным выделением, затем возвращается к обычному начертанию. Структурно это несколько участков форматирования, но для читателя всё ещё одно предложение.
Важное уточнение: граница CharacterStyleRange не равна автоматически границе CAT-сегмента. Одни фильтры сохраняют форматирование как встроенные теги внутри сегмента, другие могут обработать части иначе. Проверяйте фактический результат импорта, прежде чем менять исходный документ.
Теги форматирования тоже не всегда означают, что перед вами отдельные слова для перевода. В обсуждении рабочего процесса IDML через XLIFF пользователь описывал, как теги жирного и курсивного форматирования влияли на форматирование, доступное переводчику в CAT-редакторе (обсуждение на Adobe Community). Такой пример помогает отделить видимый текст от метаданных форматирования: тег может влиять на оформление, не являясь частью фразы.
Правила сегментации языка¶
CAT-система может делить текст по языковым правилам. Такая сегментация обычно учитывает комбинации символов до и после границы, а не только наличие точки. Например, сокращение с точкой не всегда означает конец предложения. Документация CAT-систем может предусматривать ресурсы исключений для сокращений, но конкретная настройка зависит от продукта.
Если исходная структура не содержит неожиданных границ, а сегменты всё равно разделены по знакам препинания, сравните настройки сегментации языка. Проверьте сокращения, инициалы, числа с точкой, кавычки и соседние теги. При разборе одной проблемы не смешивайте правила CAT-системы с тем, что записано в XML.
| Признак | Что проверить в IDML | Возможный механизм |
|---|---|---|
| Сегмент заканчивается после визуального переноса | Есть ли Br или U+2028 |
Абзацная граница или перенос внутри абзаца |
| Разрыв совпадает с выделенным словом | Границу CharacterStyleRange |
Изменение символьных атрибутов |
| Сегмент заканчивается после точки | Правила языка и исключения | Сегментация предложения |
| В сегменте много служебных тегов | Форматирование и специальные маркеры | Встроенные данные, не обычный текст |
Как проверить причину на конкретном файле¶
Не начинайте с ручного объединения всех коротких сегментов. Сначала найдите, на каком уровне возникло дробление. Иначе вы рискуете потратить время на исправление симптома и оставить исходную проблему в макете или настройках проекта.
Сопоставьте исходную страницу и сегменты¶
Выберите несколько фрагментов, которые выглядят как одно предложение в InDesign, но представлены несколькими сегментами в CAT-системе. Запишите точные места разрыва: после какого слова, знака препинания или форматированного участка заканчивается каждый сегмент.
Сравните пары «видимый текст в макете» и «исходный текст каждого сегмента». Если каждый сегмент заканчивается на месте ручного переноса, проверьте исходную структуру. Если разрыв появляется после точки или другого знака, изучите правила сегментации языка.
Не делайте вывод по одному примеру, если в документе есть несколько типов содержимого. Заголовки, подписи, таблицы и основной текст могут обрабатываться по-разному. Выберите фрагменты из тех мест, где команда видит проблему, и сравнивайте одинаковые типы контента.
Откройте структуру IDML¶
IDML можно рассматривать как ZIP-пакет с отдельными XML-компонентами. Найдите соответствующую историю в Stories и проследите, как текст расположен в Content, где находятся Br и где меняются диапазоны форматирования. Спецификация описывает состав пакета, а справка по историям объясняет устройство текстовых диапазонов (спецификация IDML, структура истории).
Для начальной проверки ответьте на три вопроса:
- Стоит ли между частями фразы
Br, то есть настоящий конец абзаца? - Есть ли внутри
ContentU+2028, то есть перенос строки без окончания абзаца? - Меняется ли
CharacterStyleRangeв месте, где CAT-система поставила границу?
Не считайте количество элементов диапазона количеством предложений или абзацев. Новый ParagraphStyleRange возникает при изменении атрибутов абзаца, а несколько абзацев с одинаковым стилем могут находиться в одном диапазоне и разделяться отметками абзаца. Следовательно, количество диапазонов само по себе не говорит, сколько в документе абзацев.
Сравните XML и представление в CAT-системе¶
Теперь сопоставьте найденные отметки с билингвальным файлом. Если CAT-сегмент заканчивается непосредственно на Br, вероятная причина связана с абзацной границей или с тем, как импортёр её представил. Если разрыв совпадает с U+2028, проверьте обработку принудительных переносов. Если структура не объясняет разрыв, перейдите к правилам языковой сегментации.
Обращайте внимание и на встроенные теги, которые выглядят как отдельные элементы в CAT-редакторе. Служебные метки, форматирование и индексные данные не обязательно являются обычным текстом. Например, обсуждение маркеров индекса в CAT-системе показывает, что скрытое или индексное содержимое может показываться как встроенные теги. Такой тег нужно интерпретировать по функции, а не переводить как слово.
Практическая проверка должна завершаться воспроизводимым тестом: импортируйте копию файла с теми же настройками и проверьте проблемный фрагмент. Если возможно, сравните импорт после изменения только одного параметра. Одновременная правка XML, фильтра и правил сегментации не покажет, что именно изменило результат.
Запишите результат для команды¶
Зафиксируйте, что именно обнаружено: разрыв Br, U+2028, изменение символьного диапазона, правило по знаку препинания или неизвестное поведение фильтра. Добавьте короткий пример исходного текста и соответствующее представление в CAT-системе.
Такая заметка поможет не повторять диагностику в следующем проекте. Она также позволит редактору, переводчику и верстальщику обсуждать одну и ту же причину, а не спорить о том, «почему CAT нарезал текст». Для подготовки файлов к переводу полезен чек-лист перед запуском проекта: он помогает заранее передать команде сведения о структуре и требованиях к возврату документа.
Что делать после диагностики¶
Исправление зависит от найденной границы. Универсальной настройки, которая объединит все короткие сегменты и одновременно сохранит структуру исходника, нет: разные причины требуют разных действий.
Если в предложении стоят настоящие абзацные разрывы¶
Сначала выясните, зачем они появились. Если разрывы вставили для визуального переноса строки, обсудите с автором макета, можно ли заменить их на принудительные переносы или другой способ верстки. Такой подход меняет источник, а значит, его нужно согласовать с человеком, который отвечает за макет.
Не удаляйте все Br автоматически. Настоящие границы абзацев могут разделять самостоятельные элементы текста, и их объединение изменит структуру документа. Проверьте контекст каждого разрыва и согласуйте исправление до массовой обработки.
Если исходный файл менять нельзя, можно проверить, поддерживает ли выбранная CAT-система объединение сегментов через абзацные границы. В одном обсуждении для конкретного рабочего процесса предлагали редактирование исходного текста и объединение сегментов через абзацы как обходной вариант. Такое решение нельзя переносить на все CAT-системы: доступность функции и поведение импорта зависят от продукта и версии.
Объединение большого числа фрагментов может быть медленным и создавать ошибки. После него проверяйте возврат в IDML: совпадает ли текст с нужными абзацами, сохранились ли форматирование и ожидаемое расположение.
Если границы связаны с форматированием¶
Проверьте, остаётся ли предложение в одном CAT-сегменте с тегами форматирования или действительно распадается на несколько сегментов. Если меняется только оформление, задача может сводиться к правильной обработке встроенных тегов, а не к объединению текста.
Уточните у команды, какие теги должны остаться в переводе и где они должны стоять относительно слов. Не удаляйте метки форматирования только потому, что они мешают визуально: при возврате в InDesign такие метки могут быть необходимы для сохранения оформления.
Обсуждение IDML-to-XLIFF показывает, что форматирование жирным и курсивом может влиять на то, как его применяют в CAT-редакторе (Adobe Community). Этот пример описывает конкретный рабочий процесс, поэтому проверяйте поведение на своём фильтре.
Если причина в правилах языковой сегментации¶
Проверьте правила, связанные с окончанием предложения, а также исключения для сокращений и других конструкций с точками. Сегментация использует языковые шаблоны, поэтому знак препинания сам по себе не всегда доказывает, что предложение завершилось.
Перед изменением правила сравните несколько примеров. Настройка, которая исправляет одно сокращение, может иначе обработать другие тексты. Если проект использует общие правила команды, обсудите изменение до применения: сегментация влияет на весь импортируемый материал, а не только на проблемную строку.
Если разбиение объясняется поведением фильтра, соберите минимальный пример IDML и описание ожидаемого результата. Для обращения к технической поддержке полезно указать, где в структуре находится Br, U+2028 или переход между диапазонами, и приложить соответствующие сегменты. Так вопрос будет точнее, чем сообщение «файл режется неправильно».
Почему регулярное выражение не всегда подходит¶
XML выглядит как текст, но это структурированный формат. Один и тот же видимый перенос может соответствовать разным элементам и символам, а диапазоны форматирования могут обрамлять части фразы. Простая замена строк способна затронуть не тот элемент или изменить структуру, которая нужна для корректного возврата.
Участник обсуждения IDML отмечал, что XML-структура усложняет простую очистку видимых переносов регулярными выражениями. Практический смысл этой оговорки не в том, что регулярные выражения всегда бесполезны, а в том, что перед заменой нужно понимать, какие именно узлы и значения обрабатывает правило.
Если изменение всё же требуется, работайте с копией пакета и проверьте результат в InDesign после обратного экспорта. Отсутствие видимой ошибки при импорте ещё не доказывает, что все текстовые истории и оформление сохранились.
Частые ошибки при разборе сегментации¶
Большинство лишней работы возникает из-за того, что команда исправляет не причину, а внешнее проявление. Следующие ошибки особенно легко спутать друг с другом.
Считать каждый перенос концом абзаца. В IDML конец абзаца задаёт Br, тогда как U+2028 переносит строку внутри абзаца. Проверка только по виду страницы не различит эти случаи.
Считать каждый CharacterStyleRange отдельным переводческим сегментом. Символьные диапазоны отражают атрибуты оформления. CAT-система может показать их как теги внутри сегмента, а не как отдельные строки.
Считать каждый ParagraphStyleRange отдельным абзацем. Диапазон связан с атрибутами абзацного стиля. Несколько абзацев с одинаковым стилем могут находиться внутри одного диапазона и разделяться отметками абзаца.
Объединять фрагменты без проверки возврата. Объединение может убрать неудобные границы в CAT-редакторе, но одновременно усложнить восстановление абзацев и форматирования в IDML. Проверьте экспорт на копии, прежде чем применять решение к всему проекту.
Менять несколько настроек за один раз. Если одновременно отредактировать XML, правила сегментации и параметры фильтра, станет непонятно, что повлияло на результат. Меняйте один фактор и сравнивайте один и тот же пример.
Переводить служебные теги как обычный текст. Встроенный элемент может обозначать форматирование или скрытое индексное содержимое. Сначала установите его функцию, потом решайте, требуется ли перевод, перемещение или сохранение без изменений.
Исправлять только CAT-представление, когда проблема находится в макете. Если в исходнике автор использовал настоящие абзацные окончания ради визуальной строки, настройка CAT-системы может скрыть симптом, но не исправить структуру. Согласуйте с верстальщиком, какой результат нужен при возврате файла.
Если в проекте часто появляются ошибки на границах тегов, отдельная проверка фильтров поможет сохранить форматирование при импорте и экспорте. Подход к таким настройкам разобран в материале о фильтрах файлов для CAT-систем.
Частые вопросы¶
Почему одно предложение в IDML превращается в несколько сегментов?¶
Причиной могут быть настоящие окончания абзацев Br, правила языковой сегментации CAT-системы или особенности обработки IDML-файла импортёром. Границы CharacterStyleRange тоже стоит проверить, но они не означают автоматически, что CAT-система создаст отдельные сегменты.
Разбивают ли символьные стили сегменты CAT-системы в IDML?¶
Символьные стили создают границы форматирования в XML-структуре. Будет ли такая граница границей сегмента, зависит от импортёра и правил конкретной CAT-системы.
Чем абзацный разрыв IDML отличается от принудительного переноса строки?¶
Абзацный разрыв представлен элементом Br и завершает абзац. Принудительный перенос строки представлен символом U+2028 внутри Content и переносит текст, не завершая абзац.
Как не допустить, чтобы ручные переносы создавали слишком много сегментов?¶
Сначала выясните, что стоит в исходнике: Br или U+2028. Если для визуального переноса использовали окончания абзацев, обсудите макет и импорт до начала перевода; исправление XML регулярным выражением без понимания его структуры может повредить документ.
Можно ли объединить сегменты IDML через границы абзацев?¶
Некоторые CAT-системы позволяют объединить сегменты через абзацы как проектный обходной вариант, но это зависит от продукта и версии. Объединение не исправляет структуру исходника и может осложнить возврат текста в макет.