Bijlage F. plug-in Scripting

1. Introductie
2. Installatie en gebruik

1. Introductie

OmegaT-Scripting maakt het mogelijk in OmegaT scripts uit te voeren die zijn geschreven in verschillende scripttalen.

2. Installatie en gebruik

De plug-in Scripting voor OmegaT kan worden gedownload vanaf de downloadsite voor OmegaT plug-ins. Pak de bestanden uit en plaats ze allemaal in de map "plugins" die zich bevindt in de installatiemap van OmegaT, dat is de map waarin OmegaT.jar staat. Maak eerst de map "plugins" als die niet bestaat.

Dit voegt een nieuw submenu Extra > Scripten toe. Onder het submenu Scripten zijn vijf tijdelijke plaatsaanduidingen beschikbaar voor scripts. Klikken op Scripten opent het dialoogvenster Scripten:

Het dialoogvenster Scripten maakt het voor u mogelijk om een bestaand script in het tekstgebied te laden en het uit te voeren tegen het huidige geopende project. Doe het volgende om de mogelijkheid voor scripten aan te passen:

  • Laadt een script in het bewerkingsvenster door op de naam ervan te klikken in de lijst in het venster links.

  • Klik met rechts op een knop van "<1>" tot en met "<5>" in het onderste venster en selecteer "Toevoegen". In het voorbeeld hierboven zijn al twee scripts (positie 1 en 2) toegevoegd.

  • Als u met links klikt op het cijfer zal het geselecteerde script worden uitgevoerd. U kunt de geselecteerde macro's ook starten vanuit het hoofdmenu door hun items te gebruiken in het menu Extra of door te drukken op Ctrl+Alt+F# (# 1 tot en met 5).

De volgende scripttalen zijn geïmplementeerd:

  • NetRexx (http://www.netrexx.org/): het ondersteunt een klassieke REXX-syntaxis, zonder gereserveerde sleutelwoorden, naast aanzienlijke aanvulingen voor ondersteuning van object-georiënteerd programmeren op een manier die compatibel is met het objectmodel van Java. Alle bestaande Java klassebibliotheken kunnen ongewijzigd en zonder speciale instellingen gebruikt worden; tegelijkertijd kan een Java-programmeur er voor kiezen om slechts de Rexx-klasse uit het uitvoeringspakket te gebruiken voor verbeterde afhandeling van tekenreeksen in bronprogramma's met Java-syntaxis.

  • XSLT (Extensible Stylesheet Language Transformations): is een declarabele, op XML gebaseerde taal die wordt gebruikt voor de transformatie van XMLdocumenten. Het originele document wordt niet gewijzigd; in plaats daarvan wordt een nieuw document gemaakt, gebaseerd op de inhoud van een bestaand. Het nieuwe document kan door de processor worden geserialiseerd (uitvoer) in standaard XML-syntaxis of in een andere indeling, zoals HTML of platte tekst. XSLT wordt vaak gebruikt om gegevens te converteren tussen verschillende schema's van XML of om XML-gegevens te converteren naar webpagina's of PDF-documenten.

  • Groovy (http://groovy.codehaus.org): is een dynamische taal voor de Java Virtual machine. Het bouwt op de sterke punten van Java maar heeft aanvullende krachtige mogelijkheden, geïnspireerd op talen als Python, Ruby en Smalltalk.

  • JavaScript (soms afgekort tot JS, niet te verwarren met Java): is een op prototype gebaseerde scripttaal die dynamisch is, zwak getypeerd en eersteklas functies heeft. Het is een taal met meerdere paradigma's, ondersteund object-georiënteerde, imperatieve en functionele programmeerstijlen. Omdat het de taal is achter de populaire software zoals Firefox is het met voorkeur een bekend gereedschap om te programmeren in het domein van open-source .

Alle talen hebben toegang tot het objectmodel van OmegaT, met het project als het hoogste object. De volgende code in groovy scant bijvoorbeeld door alle segmenten in alle bestanden in het huidige project en drukt, als de vertaling bestaat, de bron en het doel van het segment af:

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