O OmegaT permite executar scripts em várias linguagens diferentes.
Ao clicar em
a janela Scripts abre: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 Ctrl+Alt+F# (F# = teclas F1 a F12).
ou pressioanandoPor 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.
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); } } }