HOWTO: Uuden tiedostosuodattimen luominenTä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.
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.
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.
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>.
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[]
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
});
}
}
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));
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.)
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.
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
Takaisin dokumentaatioon
© Marc Prior, 2008