HOWTO: Создание нового фильтраВ этом документе HOWTO описывается создание нового фильтра для использования в OmegaT.
Для создания фильтра не требуются навыки программирования на Java или любом другом языке, но необходимо разбираться в компьютерах на уровне выше среднего.
В описании ниже подразумевается, что файл, для которого необходимо написать новый фильтр, имеет формат XML. К примеру, нужно создать для OmegaT версии 1.8.0 update 01 Beta новый фильтр для файлов формата Abiword, взяв за основу существующий фильтр XLIFF.
Откройте на веб-сайте OmegaT страницу загрузки , чтобы загрузить исходный код OmegaT. Распакуйте архив в нужный каталог.
Программа Apache Ant понадобится для компиляции изменённого исходного кода. Для этой цели можно также воспользоваться пакетом Java Development Kit (JDK), но Ant является, наверное, самый простым в использовании инструментом. Загрузить его можно на веб-сайте ant.apache.org.
Выберите существующий фильтр, который послужит основой для нового фильтра. В данном примере выбран фильтр XLIFF. Фильтр находится в каталоге:
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\xliff
Сделайте копию этого каталога с подходящим названием, например как в данном примере:
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\abiword
Переименуйте файлы в этом каталоге, например:
XLIFFDialect.java в AbiwordDialect.java
XLIFFFilter.java в AbiwordFilter.java
По очереди откройте в текстовом редакторе файлы AbiwordDialect.java и AbiwordFilter.java и замените все экземпляры «XLIFF», «xliff» и т.д. на «Abiword», «abiword» и т.д.
Чтобы узнать, на что должны быть похожи теги параграфов, посмотрите в текстовом редакторе на пример файла. Например, в файле Abiword (в данном примере) параграф может выглядеть так:
<p style="Normal">Мама мыла раму. Маму рыла рама. Маму рыла рама. Образец <c props="font-weight:bold">полужирного</c> и <c props="font-style:italic">наклонного</c> текста. Рамой маму смыло.</p>
В данном случае видно, что тегом параграфа в Abiword является структура <p>.
В файле MyFilterDialect.java в списке тегов уровня параграфа замените существующие теги параграфов на те, которые были определены для нового фильтра:
{
public AbiwordDialect()
{
defineParagraphTags(new String[]
{
"p", // NOI18N
});
defineOutOfTurnTags(new String[]
Для работы фильтра, возможно, понадобится объявить непереводимые теги. В Abiword, например, нужно объявить как непереводимый тег <data>:
defineIntactTags(new String[]
{
"data", // NOI18N
});
}
}
Откройте в текстовом редакторе файл
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters2\master\FilterMaster.java
и найдите ссылки на XLIFF-фильтр. Вставьте соответствующие ссылки на новый фильтр, например:
import org.omegat.filters3.xml.xliff.XLIFFFilter;
import org.omegat.filters3.xml.abiword.AbiwordFilter;
res.addFilter(new OneFilter(new XLIFFFilter(), false));
res.addFilter(new OneFilter(new AbiwordFilter(), false));
Откройте файл
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\Bundle.properties
в текстовом редакторе. Найдите запись для XLIFF-фильтра и добавьте соответствующую запись для нового фильтра:
# XLIFFFilter.java
XLIFF_FILTER_NAME=XLIFF files
# AbiwordFilter.java
ABIWORD_FILTER_NAME=Abiword files
(В данном случае подразумевается, что используется английская версия OmegaT. Для другого языка запись нужно добавить в файл Bundle.properties соответствующей версии программы.)
cd C:\Мои документы\MyOmegat\OmegaT_1.8.0_01_Beta_Source
Находясь в этом каталоге запустите программу Apache Ant, указав полный путь в исполняемому файлу Ant, например:
C:\Program Files\apache-ant-1.7.0-bin\apache-ant-1.7.0\bin\ant
В случае успешной компиляции кода появится сообщение «BUILD SUCCESSFUL» (Собрано без ошибок). В противном случае будут показаны отладочные сообщения, с помощью которых (в лучшем случае) можно будет разобраться, в чём заключается проблема.
OmegaT_1.8.0_01_Beta_Source\dist
Находясь в окне с командной строкой перейдите в этот каталог, например так::
cd C:\Мои документы\MyOmegat\OmegaT_1.8.0_01_Beta_Source\dist
и запустите OmegaT с помощью команды:
java -jar OmegaT.jar
Назад к списку документации
© Marc Prior, 2008