# Scripts

Scripts

## Introdução

O OmegaT permite executar scripts em várias linguagens diferentes.

## Use

Ao clicar em Ferramentas > Scripts a janela Scripts abre: Janela de Scripts

A Janela de Script permite carregar um script existente na área de texto e executá-lo no projeto aberto atual. Para personalizar o recurso de scripts, faça o seguinte:

- Na lista do painel esquerdo, clique no nome do script que deseja carregar no editor.

- Clique com o botão direito em um botão de "<1>" a "<12>" no painel da base da tela e selecione "Adicionar script". No exemplo acima, dois scripts (posição 1 e 2) já foram adicionados.

- Ao clicar com o botão esquerdo no número correspondente, o script selecionado será executado. Você pode ativar as macros selecionadas no menu principal ou também usando as opções no menu Ferramentas ou pressioanando Ctrl+Alt+F# (F# = teclas F1 a F12).

Por padrão, os scripts são armazenados na pasta "scripts", na pasta de instalação do OmegaT (a pasta que contem o arquivo OmegaT.jar).

É possível adicionar novos scripts nesta pasta, para que eles apareçam na lista de scripts disponíveis da Janela de Scripts.

## Linguagens de script

As seguintes linguagens de script foram implementadas:

- Groovy (http://groovy.codehaus.org): é uma linguagem dinâmica da máquina virtual Java. Aproveita os pontos fortes do Java mas tem recursos adicionais poderosos inspirados por linguagens como Python, Ruby e Smalltalk.

- JavaScript (às vezes abreviado como JS, para não ser confundido com o Java): é uma linguagem de script baseada em protótipos, tipagem fraca e dinâmica e funções de primeira classe. É uma linguagem de multiparadigma, com suporte imperativo, a estilos de programação funcionais e orientada a objetos. Como é a linguagem por trás de programas conhecidos, como o Firefox, é uma ferramenta de programação popular no meio do código aberto.

Todas as linguagens têm acesso ao modelo de objeto do OmegaT, com o projeto como o objeto principal. O seguinte fragmento de código em groovy, por exemplo, verifica todos os segmentos em todos os arquivos do projeto atual e, se a tradução existir, imprime a fonte e o alvo do segmento:

        files = project.projectFiles;
        for (i in 0 ..< files.size())
        {
            for (j in 0 ..< files[i].entries.size())
            {
                currSegment = files[i].entries[j];
                if (project.getTranslationInfo(currSegment))
                {
                    source = currSegment.getSrcText();
                    target = project.getTranslationInfo(currSegment).translation;
                    console.println(source + " >>>> " + target);
                }
            }
        }