# Сегментирование оригинала

- Структурное сегментирование
- Сегментирование на уровне предложений
  - Правила сегментирования
  - Настройка правил
    - Приоритет
    - Создание правил
    - Разрыв/Исключение
    - Простые примеры
- Использование регулярных выражений

Программы памяти переводов работают с текстовыми единицами, которые называются "сегменты". OmegaT умеет сегментировать текст двумя способами: по абзацам и по предложениям.

Чтобы выбрать тип сегментирования, вызовите Проект → Свойства... из главного меню и используйте соответствующий переключатель.

Если выбрано сегментирование по предложениям, то вы можете настраивать правила, вызвав из главного меню Опции → Сегментирование....

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

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

# Структурное сегментирование

Сначала OmegaT обрабатывает текст с применением структурного сегментирования. Во время этого процесса для создания сегментов используется только структура исходного файла.

Например, текстовые файлы могут сегментироваться по разрывам строк, пустым строкам или вообще не сегментироваться. Файлы с форматированием (документы OpenOffice.org, HTML-файлы и т.д.) сегментируются по тэгам уровня блоков (параграфов). Переводимые атрибуты объектов в XHTML или HTML могут быть извлечены как отдельные сегменты.

# Сегментирование на уровне предложений

После сегментирования исходного файла на логические единицы OmegaT начинает сегментирование этих блоков на предложения.

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

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

Сегментирование по предложениям реализовано при помощи стандарта Segmentation Rules eXchange (SRX); обратите внимание, что поддерживаются не все возможности SRX. Кроме того, нельзя импортировать и экспортировать правила в формате SRX. Тем не менее, если вы понимаете, как работает SRX, то вы уже многое знаете о том, как OmegaT осуществляет сегментирование.

Есть два типа правил:

- Правила разрыва разделяют исходный текст на сегменты.

  Например: "Did it make sense? I was not sure." должно быть разделено на два сегмента.
  Должно быть определено правило разрыва для "`?`".

- Правила исключения определяют, какие части текста НЕ должны быть разделены.

  Например: "Mrs. Dalloway " не нужно разделять, поэтому нужно определить правило исключения для строки Mrs (а также Mr, Dr, prof и т.д.) с точкой справа.

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

## Настройка правил

### Приоритет

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

Например, правила для канадского французского (FR-CA) будут выше, чем правила для французского (FR.*) и чем стандартные (.*) правила. Соответственно, при переводе с канадского французского ваш проект будет использовать правила, определённые для этого языка, правила для французского и стандартные правила в верном порядке.

### Создание правил

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

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

### Разрыв/Исключение

Переключатель Разрыв/Исключение определяет, является ли правило разрывом (галочка поставлена) или исключением (галочки нет). Регулярные выражения "До" и "После" определяют, что должно находиться слева и справа от курсора для срабатывания правила.

### Несколько простых примеров

Намерение | До | После | Примечание
начинать новый сегмент после точки ('`.`') и до пробела | `\.` | `\s` | "`\.`" означает символ "`.`", "`\s`" означает любой символ пробела
не сегментировать после Mr. | `Mr\.` | `\s` | Это правило исключения, поэтому галочка с переключателя должна быть убрана
`начинать новый сегмент после` `"``。``"` `(японская точка)` | `。` |  | Обратите внимание, что поле после пусто
не сегментировать после M., Mr., Mrs.и Ms. | `Mr??s??\.` | `\s` | Правило исключения - см. использование ? в регулярных выражениях ("нежадные" идентификаторы)

# Кратко о регулярных выражениях

Мы используем в правилах сегментирования те регулярные выражения, которые поддерживаются Java. Краткая справка доступна в приложении Составление регулярных выражений.

Если вам нужна более точная информация, обратитесь по адресу http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html.

В сети можно найти простые инструктажи по регулярным выражениям (http://www.regular-expressions.info/quickstart.html, например).

`Надлежащие уведомления`