HOWTO: Att skapa ett nytt filfilterDenna HOWTO beskriver hur man skapar ett nytt filter för att använda med OmegaT.
För att skapa ett nytt filter krävs inga programmeringskunskaper, varken Java eller något annat språk, men du borde ha mer än bara grundkunskaper i data i allmänhet.
Beskrivningen nedan antar att du vill skapa ett nytt filter för ett XML format. För att ta ett exempel antas det att OmegaT är i version 1.8.1, uppdatering 1 Beta, och det nya filtret ska skapas för Abiword-filformatet baserat på det existerande XLIFF-filtret.
Följ länken från OmegaT:s nedladdningssida för att skaffa källkoden för OmegaT. Packa upp innehållet i en lämplig mapp.
Apache Ant kommer att behövas för att kompilera källkoden igen efter att du modifierat den. Andra program, som Java Development Kit (JDK) kan också användas, men Ant är antagligen det enklaste att använda. Ladda ner från ant.apache.org.
Välj ett befintligt filter som bas för ditt nya filter. I detta exempel väljer vi XLIFF-filtret. Detta filter är i mappen på:
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\xliff
Skapa en mapp med lämpligt namn, i det här fallet:
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters3\xml\abiword
Byt namn på filerna i mappen, t.ex:
XLIFFDialect.java till AbiwordDialect.java
XLIFFFilter.java till AbiwordFilter.java
Öppna AbiwordDialect.java och AbiwordFilter.java i en textredigerare och byt ut alla XLIFF, xliff, etc. till Abiword, abiword, etc.
För att se hur paragraftaggarna borde vara, titta på en exempelfil i en textredigerare. Exempelvis ser pargraftaggarna i en Abiword-fil (som i det här exemplet) ut så här:
<p style="Normal">Bla bla bla bla bla. Bla bla bla bla bla. Bla bla bla bla bla. Bla bla <c props="font-weight:bold">bold</c> bla <c props="font-style:italic">italics</c>. Bla bla bla.</p>
Detta visar vad paragraftaggarna i Abiword är. <p>.
I MyFilterDialect.java, i listan med paragraftaggarna, byt ut de existerande paragraftaggarna med dem du identifierade för ditt nya filter:
{
public AbiwordDialect()
{
defineParagraphTags(new String[]
{
"p", // NOI18N
});
defineOutOfTurnTags(new String[]
Du kan behöva att definiera oöäversättbara taggar för att få ditt filter att fungera. I Abiword, t.ex måste <data> taggen difinieras som oöversättbar:
defineIntactTags(new String[]
{
"data", // NOI18N
});
}
}
Öppna filen
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\filters2\master\FilterMaster.java
med en textredigerare och hitta referenserna till XLIFF-filtret. Infoga de motsvarande referenserna för ditt filter, t.ex.:
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));
Öppna filen:
..\OmegaT_1.8.0_01_Beta_Source\src\org\omegat\Bundle.properties
i en textredigerare Hitta inlägget för XLIFF-filtret och lägg till ett motsvarande tillägg för ditt nya filter:
# XLIFFFilter.java
XLIFF_FILTER_NAME=XLIFF files
# AbiwordFilter.java
ABIWORD_FILTER_NAME=Abiword files
(Detta antar att du använder den engelska versionen av OmegaT; lägg till inlägget i "din" språkversion av Bundle.properties om du använder ett annat språk.)
cd C:\My Documents\MyOmegat\OmegaT_1.8.0_01_Beta_Source
Från denna mapp, kör Apache Ant genom att ange Ant-körskriptet med hela sökvägen, t.ex:
C:\Program Files\apache-ant-1.7.0-bin\apache-ant-1.7.0\bin\ant
Om koden kompileras framgångsrikt ser du meddelandet: "BUILD SUCCESSFUL". Om inte, visas avbuggningsmeddelanden, som (förhoppningsvis) antyder om vari problemet ligger.
OmegaT_1.8.0_01_Beta_Source\dist
I kommandotolken, ändra den här mappen exempelvis med:
cd C:\My Documents\MyOmegat\OmegaT_1.8.0_01_Beta_Source\dist
ch kör OmegaT med
java -jar OmegaT.jar
Tillbaka till Dokumentation
© Marc Prior, 2008