## Segmentação do texto fonte

- Segmentação baseada na estrutura do texto

- Segmentação por sentenças

  - Regras de Segmentação

  - Definição das regras

    - Prioridade

    - Criação de regras

    - Quebra/exceção

    - Alguns exemplos simples

- Construção de expressão regular

As ferramentas de memória de tradução trabalham com unidades de texto chamadas segmentos. O OmegaT tem duas maneiras de segmentar um texto: segmentação por parágrafo e por sentença. Para selecionar o tipo de segmentação, clique em Projeto → Propriedades... no menu principal e use a caixa de diálogo disponível. Note que a segmentação por parágrafo não é muito usada e na maioria dos projetos a segmentação por sentença é a opção preferida. Se escolher segmentação por sentença, você pode definir as regras; basta clicar em Opções → Segmentação... no menu principal.

Note que uma boa parte do desenvolvimento foi gasto na criação de regras de segmentação confiável, por isso na maioria dos casos, você não precisará se envolver criando suas regras próprias de segmentação. Por outro lado, esta funcionalidade pode ser muito útil em casos especiais, possibilitando-lhe traduzir o que precisa ser traduzido sem correr o perigo de mudar o que deve permanecer inalterado.

Alerta! Mudar as opções de filtros com um projeto aberto pode resultar na perda de dados. Se você modificar as opções de segmentação com um projeto aberto, terá que recarregar o projeto para que as modificações sejam efetivadas.

## Segmentação baseada na estrutura do texto

O OmegaT analisa primeiro o texto pela segmentação usando o nível de estrutura. Durante este processo somente a estrutura do arquivo fonte é usada para produzir segmentos.

Por exemplo, os arquivos de texto podem ser segmentados nas quebras de linha, nas linhas vazias ou não serem segmentados. Os arquivos com formatação (documentos OpenOffice.org, HTML, etc.) são segmentados nas tags de nível de bloco (ou seja, parágrafos). Os atributos de objeto traduzíveis em arquivos XHTML ou HTML podem ser extraídos como segmentos separados.

## Segmentação por sentenças

Após segmentar o arquivo fonte em unidades lógicas, o OmegaT segmentará esses blocos em sentenças.

### Regras de Segmentação

O processo de segmentação pode ser ilustrado da seguinte forma: imagine o cursor passando pelo texto, um caractere de cada vez. Para cada posição do cursor, é usada uma regra em uma determinada sequência para verificar se o padrão Antes se aplica ao texto que está à esquerda do cursor e o padrão Depois ao texto que está à direita do cursor. Se a regra corresponder, o programa interrompe a verificação das regras (exceto a regra de exceção) ou cria um novo segmento (para a regra de quebra).

A segmentação por sentença foi implementada baseada no padrão Segmentation Rules eXchange (SRX) - note que nem todos os recursos SRX são suportados. E não é possível importar/exportar regras definidas no formato SRX. Porém, se você sabe como o SRX funciona, saberá como o OmegaT processa a segmentação.

Existem dois tipos de regras:

- Regras de quebra separam o texto fonte em segmentos. Por exemplo, "Isto fez sentido? Eu não tinha certeza." deve ser separado em dois segmentos e para isso deve haver uma regra de quebra para "`?`".

- Regras de exceção especificam que partes do texto NÃO devem ser separadas. Apesar do ponto de abreviatura, "Sra. Dumont " não deve ser separada em dois segmentos, portanto uma regra de exceção deve ser criada para Sra. (bem como para Sr. e Srta. e Dr. e prof. e etc.), seguida por um ponto.

As regras de quebra predefinidas devem ser suficientes para a maioria das línguas europeias e para o japonês. Dada a flexibilidade desse recurso, você pode definir mais regras de excepção para a língua que está traduzindo, e obter segmentos mais significativo e coerente.

### Definição das regras

### Prioridade

Todos os conjuntos de regras de segmentação com um padrão de língua correspondente são aplicados na ordem de prioridade estabelecida, portanto as regras para uma língua específica devem ter maior prioridade do que aquelas predefinidas. Por exemplo, as regras para francês canadense (FR-CA) devem ter prioridade às regras para o francês (FR.*), bem como àquelas definidas como padrão (.*). Assim, ao traduzir para o francês canadense, seu projeto usará as regras definidas para esta língua, depois as regras para o francês e as regras padrão, seguindo a ordem correta.

### Criação de regras

Para editar ou expandir um conjunto de regras existentes, basta clicar nas regras na tabela superior. As regras serão mostradas na janela inferior.

Para criar um conjunto de regras para uma nova língua, clique em Adicionar na metade superior da caixa de diálogo. Na parte de baixo da tabela será acrescentada uma linha (faça a rolagem para tela para ver a nova linha). Mude o nome do conjunto de regras e o padrão da língua. A sintaxe do padrão da língua segue a sintaxe das expressões regulares. Se o seu conjunto de regras processa um par de língua, recomendamos que o coloque no topo da lista usando o botão Mover para cima.

### Quebra/exceção

A caixa de seleção 'Quebra/exceção' determina se é uma regra de quebra (caixa selecionada) ou uma regra de exceção (caixa não selecionada). Duas expressões regulares Antes e Depois especificam o que deve vir antes e depois de uma posição, de forma a indicar se é uma regra de exceção ou uma regra de quebra.

### Alguns exemplos simples

Intenção | Antes | Depois | Observação:
definir uma segmentação após um ponto ('`.`') e antes de um espaço | `\.` | `\s` | "`\.`" significa o caractere "`.`" "`\s`" significa qualquer caractere de espaçamento em branco
não segmentar após Dr. | `Dr\.` | `\s` | É uma regra de exceção, portanto a caixa de seleção da regra deve ser desmarcada
definir um segmento após "。" (ponto em japonês) | `。` |  | Note que após está vazio
não segmentar após Sr. e Sra. | `Sr??a??\.` | `\s` | regra de exceção - ver o uso de ? em expressões regulares (identificador não-guloso)

## Construir expressões regulares

As expressões regulares usadas em segmentação são aquelas suportadas pelo Java. Um resumo está disponível no anexo Construir expressões regulares. Se precisar de informações específicas, consulte http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html.

Na Internet há tutoriais simples, como por exemplo http://www.regular-expressions.info/quickstart.html.

Avisos legais | Home | Índice