Приложение F. Модуль «Scripting»
Пред. |  | След.

# Приложение F. Модуль «Scripting»

## 1. Введение

Модуль «Scripting» позволяет запускать в ОмегаТ скрипты, написанные на различных языках.

## 2. Установка и использование

Модуль «Scripting» для ОмегаТ можно загрузить с официального сайта модулей ОмегаТ. Разархивируйте файлы и скопируйте их в подкаталог «plugins» основного каталога ОмегаТ (это каталог, в котором хранится «OmegaT.jar»). Если каталога «plugins» нет, создайте его.

В меню «Инструменты» появится новый пункт «Скрипты». Чуть ниже находятся пять неактивных пунктов меню, на которые можно назначить различные скрипты. Выбор пункта меню Скрипты приводит к появлению одноимённого диалогового окна:

Диалоговое окно «Скрипты» позволяет загружать в текстовую область код доступных скриптов, и запускать их для текущего проекта. Для настройки системы скриптов нужно сделать следующее:

- Выбрав скрипт из списка, на панели слева, загрузите его в редактор скриптов.

- Щёлкните правой кнопкой мыши на любой из располагающихся внизу окна кнопок 1...5 и выберите пункт «Добавить скрипт». В вышеприведённом примере, на слоты 1 и 2 уже назначены скрипты.

- Если щёлкнуть левой кнопкой мыши по кнопке с номером, запустится ассоциированный с этой кнопкой скрипт. Также выбранный скрипт можно запустить, выбрав соответствующий пункт в меню «Инструменты», или нажав CTRL+ALT+F# (где «#» — цифра от 1 до 5).

Доступны следующие скриптовые языки:

- Язык NetRexx (http://www.netrexx.org/) поддерживает классический REXX-синтаксис, но без зарезервированных ключевых слов, а также содержит значительные улучшения, направленные на поддержку объектно-ориентированного программирования, совместимого с объектной моделью Java. Существующие библиотеки классов Java могут использоваться без изменений и какой-либо специальной установки; с другой стороны, программист на Java может предпочесть использовать класс Rexx во время выполнения программы на языке с Java-синтаксисом для улучшенной обработки строк.

- XSLT (Extensible Stylesheet Language Transformations): декларативный, основанный на XML язык, предназначенный для преобразования XML-документов. Исходный документ не изменяется, вместо этого на основе его содержимого создаётся новый документ. Новый документ может быть сериализован процессором в стандартный XML-синтаксис, или в другой формат, например в HTML или простой текст. Чаще всего XSLT используется для преобразования данных между различными схемами XML или для преобразования данных из XML в веб-страницы и документы PDF.

- Groovy (http://groovy.codehaus.org): динамический язык для виртуальной машины Java. Groovy сочетает сильные стороны Java с мощными возможностями, взятыми из языков Python, Ruby и Smalltalk.

- JavaScript (иногда сокращается до JS, не путайте с Java): прототипно-ориентированный скриптовый язык программирования с динамической, слабой типизацией и функциями как объектами первого класса. Это кросс-платформенный язык, поддерживающий объектно-ориентированный, императивный и функциональный стили программирования. На JavaScript частично написан популярный веб-браузер Firefox, этот язык хорошо известен и широко применяется в свободных программах.

Все языки имеют доступ к объектной модели ОмегаТ, в которой главным объектом является проект. Например, нижеприведённый код на Groovy считывает содержимое всех сегментов всех файлов текущего проекта и, если у сегмента есть перевод, выводит на экран оригинальный текст и перевод сегмента.

        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);
                }
            }
        }

Пред. |  | След.
Приложение E. Модуль «LanguageTool» | Начало | Приложение G. ОмегаТ в Интернете