Howto - Creating a new file filter

Marc Prior - Linux

HOWTO: Uuden tiedostosuodattimen luominen

Tämä HOWTO-ohje neuvoo, miten OmegaT:lle luodaan uusi tiedostosuodatin.

Uuden tiedostosuodattimen luomiseen ei tarvita ohjelmointitaitoja Javalla tai muullakaan ohjelmointikielellä, mutta se vaatii enemmän kuin tietokoneenkäytön perustaidot.

Seuraavassa kuvauksessa oletetaan, että tiedostomuoto, jolle uusi suodatin halutaan luoda, on XML-muotoa. Esimerkissä OmegaT:n versio on 1.8.0, päivitys 01 Beta, ja uusi suodatin luodaan Abiword-tiedostomuodolle valmiin XLIFF-suodattimen perusteella.
OmegaT:n lähdekoodi hankitaan seuraamalla linkkiä OmegaT-sivuston lataussivulla. Pura arkisto sopivaan kansioon.

1. Lataa ja asenna Apache Ant

Apache Antia tarvitaan lähdekoodin kääntämiseen uudelleen muutosten jälkeen. Muitakin ohjelmia, kuten Java Development Kitiä (JDK), voi käyttää, mutta Ant lienee helppokäyttöisin. Lataus osoitteesta ant.apache.org.

2. Kopioi nykyinen suodatin

Valitse valmis suodatin, joka toimii uuden suodattimen pohjana. Tässä esimerkissä valitaan XLIFF-suodatin. Suodatin sijaitsee kansiossa osoitteessa:

..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\xliff

Ota kansiosta kopio ja anna sille sopiva nimi, tässä esimerkiksi:

..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\abiword

Anna tässä kansiossa tiedostoille uudet nimet eli:

XLIFFDialect.java -> AbiwordDialect.java
XLIFFFilter.java -> AbiwordFilter.java

Avaa AbiwordDialect.java ja AbiwordFilter.java vuorostaan tekstieditorissa, ja korvaa sitten kaikki XLIFF, xliff -esiintymät muotoon Abiword, abiword jne.

3. Etsi tiedostomuodon kappaletason tägi(t)

Katso näytetiedostosta tekstieditorissa, mitä kappaletason tägien pitäisi olla. Esimerkiksi tässä Abiword-tiedoston kappale voisi näyttää tältä:

<p style="Normal">Plaa plaa plaa plaa. Plaa plaa plaa plaa. Plaa plaa plaa plaa. Plaa plaa <c props="font-weight:bold">bold</c> plaa <c props="font-style:italic">italics</c>. Plaa plaa plaa.</p>

Näin ollen kappaletägi Abiwordissa on <p>.

4. Määrittele kappaletägi(t)

Korvaa MyFilterDialect.javan kappaletägien listassa nykyiset kappaletägi(t) uuden suodattimesi kappaletäg(e)illä:

{
public AbiwordDialect()
{
defineParagraphTags(new String[]
{
"p", // NOI18N
});

defineOutOfTurnTags(new String[]

5. Määritä kääntämättä jätettävä(t) tägi(t)

Suodatin voi toimiakseen vaatia tägi(e)n määrittämisen. Esimerkiksi Abiwordissa <data>-tägi on määritettävä kääntämättä jätettäväksi:

defineIntactTags(new String[]
{
"data", // NOI18N
});
}
}

6. Lisää suodatin alkuperäiseen suodattimeen

Avaa tiedosto

..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters2\master\FilterMaster.java

tekstieditorissa ja etsi viittaukset XLIFF-suodattimeen. Lisää uuteen suodattimeen vastaavat viittaukset, esimerkiksi:

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

7. Syötä suodatin Bundle.properties-tiedostoon

Avaa tiedosto:

..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\Bundle.properties

tekstieditorissa. Etsi XLIFF-suodatin ja lisää vastaava kohta uudelle suodattimelle:

# XLIFFFilter.java

XLIFF_FILTER_NAME=XLIFF files

# AbiwordFilter.java

ABIWORD_FILTER_NAME=Abiword files

(Olettaen, että käytät OmegaT:tä englanniksi - muussa tapauksessa tee merkintä Bundle.properties-tiedostoon omalla kielelläsi.)

8. Käännä koodi

Avaa komentorivi-ikkuna (pääte, DOS-ikkuna). Vaihda kansio OmegaT:n lähdekoodissa pääkansioon (kansioon, joka sisältää build.xml-tiedoston), esimerkiksi

cd C:\My Documents\MyOmegat\OmegaT_1.8.0_01_Beta_Source

Suorita Apache Ant tästä kansiosta syöttämällä Antin suoritettava tiedosto ja koko polku, esimerkiksi:

C:\Program Files\apache-ant-1.7.0-bin\apache-ant-1.7.0\bin\ant

Jos koodin kääntäminen onnistuu, saat ilmoituksen "BUILD SUCCESSFUL". Muussa tapauksessa saat virheilmoituksia, joista (toivottavasti) selviää, missä vika on.

9. Käynnistä OmegaT

Jos koodin kääntäminen onnistui, käännetty OmegaT sijaitsee kansiossa:

OmegaT_1.8.0_01_Beta_Source\dist

Vaihda komentorivi-ikkunassa tähän kansioon, esimerkiksi:

cd C:\My Documents\MyOmegat\OmegaT_1.8.0_01_Beta_Source

ja käynnistä OmegaT komennolla:

java -jar OmegaT.jar

10. Tarkista, että suodatin on OmegaT:ssä

Näet suodattimet OmegaT:n suodatinlistassa valitsemalla Options > File Filters > Defaults.

11. Tarkista, että suodatin toimii

Luo uusi projekti, jonka lähdetiedosto on halutussa muodossa.

Takaisin dokumentaatioon
© Marc Prior, 2008