Giter VIP home page Giter VIP logo

omegat-sessionlog's Introduction

INTRODUCTION
============

The SessionLog plugin was created by Miquel Esplà-Gomis
([email protected]), Mikel L. Forcada, and Felipe
Sánchez-Martínez at University of Alacant (www.ua.es).
and is licensed under GPLv3 while the library htmlparser
included in this package is released under LGPLv3 license.
This is a third-party plugin
for OmegaT (http://www.omegat.org) translation memory tool,
compatible with version 3.0 and higher, and is aimed at
capturing the actions performed by a user when translating
a document with OmegaT. The plugin produces, as an output,
an XML log which contains a list of actions performed by
the user in a translation project.

A DTD describing the format of the XML log can be found at
http://www.dlsi.ua.es/~mespla/DTD/OmegaT/sessionlog-omegat-0.9.dtd

To illustrate the format of the session logs, here you can
see an example of one of them:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log PUBLIC "-//OmegaT SessionLog//DTD XML SessionLog 0.9//EN" "http://www.dlsi.ua.es/~mespla/DTD/OmegaT/sessionlog-omegat-0.9.dtd">
<log>
  <project name="Project1" sl="ES" time="20140129111832907UTC" timestamp="1390994312909" tl="EN">
    <file name="emea-document-es.odt" time="20140129111832910UTC" timestamp="1390994312910">
      <segment duration="17.433s" number="1" time="20140129111840516UTC" timestamp="1390994320516">
        <source>Ciprofloxacin Nycomed y nombres asociados</source>
        <initialTarget>Ciprofloxacin Nycomed y nombres asociados</initialTarget>
        <TMRecommendations number="4"/>
        <MTRecommendations number="1"/>
        <glossaryRecommendations number="2"/>
        <events>
          <NewTMRecommendationSelected current="3" former="1" time="20140129111842948UTC" timestamp="1390994322948"/>
          <delete from="TM" id="ID3" length="41" offset="0" proposal_number="3" time="20140129111843522UTC" timestamp="1390994323523">Ciprofloxacin Nycomed y nombres asociados</delete>
          <insert fms="54" fms_onlywords="40" fms_stemming_onlywords="50" from="TM" id="ID4" length="31" offset="0" proposal_number="3" time="20140129111843523UTC" timestamp="1390994323523"> Octegra and associated names</insert>
          <textSelection end_offset="9" init_offset="0" time="20140129111846927UTC" timestamp="1390994326927"> Octegra </textSelection>
          <delete id="ID5" length="8" offset="0" time="20140129111848634UTC" timestamp="1390994328634"> Octegra </delete>
          <insert id="ID6" length="1" offset="0" time="20140129111848634UTC" timestamp="1390994328635">C</insert>
          <insert id="ID7" length="1" offset="1" time="20140129111848900UTC" timestamp="1390994328900">i</insert>
          <insert id="ID8" length="1" offset="2" time="20140129111849272UTC" timestamp="1390994329273">p</insert>
          <insert id="ID9" length="1" offset="3" time="20140129111849496UTC" timestamp="1390994329496">r</insert>
          <insert id="ID10" length="1" offset="4" time="20140129111849570UTC" timestamp="1390994329570">o</insert>
          <insert id="ID11" length="1" offset="5" time="20140129111849978UTC" timestamp="1390994329978">f</insert>
          <insert id="ID12" length="1" offset="6" time="20140129111850930UTC" timestamp="1390994330930">l</insert>
          <insert id="ID13" length="1" offset="7" time="20140129111851151UTC" timestamp="1390994331151">o</insert>
          <insert id="ID14" length="1" offset="8" time="20140129111851499UTC" timestamp="1390994331500">x</insert>
          <insert id="ID15" length="1" offset="9" time="20140129111851583UTC" timestamp="1390994331583">a</insert>
          <insert id="ID16" length="1" offset="10" time="20140129111851805UTC" timestamp="1390994331805">c</insert>
          <insert id="ID17" length="1" offset="11" time="20140129111851888UTC" timestamp="1390994331888">i</insert>
          <insert id="ID18" length="1" offset="12" time="2014012911185244UTC" timestamp="1390994332044">n</insert>
        </events>
        <finalTarget>Ciprofloxacin Nycomed and associated names</finalTarget>
      </segment>
    </file>
  </project>
</log>

In the example presented, we can see that the translator
opened a proejct called "Project1" for translating a
document in Spanish (ES) into English (EN). In most of the
elements we can see the attributes "time" and "timestamp".
The first one allows to know the date and time (in
milliseconds) at which the action was performed, in format
YYYYMMDDhhmmssSSS (Y=year, M=month, D=day, h=hour,
m=minutes, s=seconds, S=milliseconds). The "timestamp" is
the number of milliseconds since January 1, 1970, 00:00:00
GMT, and allows to easily compute the time elapse between
two events.

Following the example, the file "emea-document-es.odt" is
opened and the first segment is chosen. In the <segment>
element we can see attributes informing about the position
of the segment in the document (number) and time spent by
the user to translate the segment (duration) which is
measured in seconds.

Fields <source> and <initialTarget> indicate the source
segment to be translated and the segment presented to the
user, initially, as the translation. Following these
elements, we can find elements TMRecommendations,
MTRecommendations, and glossaryRecommendations, which
inform about the number of recommendations proposed to the
translator in the text areas corresponding to the
translation memory, the machine translation engines, and
the glossary, respectivelly.

In the <events> block we can see all the actions performed
by the user. First, we can find the element
<NewTMRecommendationSelected>, informing that the user
chose the matching suggestion 3 in the translation memory
text area. The next actions are a deletion (<delete>) and
an insertion (<insert>), which correspond to the action of
replacing a segment by the active match (replacements
appear as a monolithic edition for a translator, but,
internally, for OmegaT they are two editions). Both
editions editions contain an attribute "from" indicating
that both the deletion and the insertion come from the
translation memory (TM). Other attributes inform us about
the position in the segment from which each edition started
("offset"), the length of the edition ("length"), the
proposal by which the segment was replaced
("proposal_number") and, in the case of the insertion, the
value of the different FMS for the match proposal. Similar
editions would be produced by the replacement of a segment
by machine translation proposal or a glossary proposal.

Finally, we can see that the user selects ("textSelection")
the name of a medicine, deletes it, and replaces it by a
new medicine name. All the editions are identified by an ID
which would allow to keep track of the undo/redo actions.
For example, if the translator had undone the last insertion,
the <events> block would end with an element

<undo id="ID19" on_event="ID18" ... >

The plugin also provides an option in the menu "Options" of
OmegaT for indicating a pause in the translation, which is
represented in the log as:

<pause duration="Xs" ... >

where X is the number of seconds of the pause. This
information can be then used to compute the real time the
user spent in a translation.




INSTALLATION
============

Releases of the SessionLog plugin for OmegaT are available
at the website of the project (https://github.com/mespla/OmegaT-SessionLog/).
To enable the plugin, simply extract the content of the
compressed folder of any release in a "plugins" folder
located in OmegaT's installation folder. If this folder
does not exist, just create it.

If you prefer to compile the plugin from the source code,
you can use the tool "ant" for creating a jar file from
the sources. Just type "ant jar" in the folder where the
build.xml file is, and the jar file will be created in a
sub-folder build. Then copy the jar file to the "plugins"
folder as indicated.






omegat-sessionlog's People

Contributors

dtr5 avatar mespla avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

omegat-sessionlog's Issues

NoSuchMethodError (getGlossary) at Exit

Context : running OmegaT 5.3.0 with java-11-openjdk (Ubuntu), I get the following error when exiting OmegaT:

Info: Évènement : arrêt de l'application (LOG_INFO_EVENT_APPLICATION_SHUTDOWN)
33105: Erreur: java.lang.NoSuchMethodError: 'org.omegat.gui.glossary.GlossaryTextArea org.omegat.core.Core.getGlossary()'
33105: Erreur: at org.omegat.plugins.sessionlog.IntrospectionTools.getGlossaryEntries(Unknown Source)
33105: Erreur: at org.omegat.plugins.sessionlog.loggers.XMLLogger.CloseEntry(Unknown Source)
33105: Erreur: at org.omegat.plugins.sessionlog.ApplicationEventListenerSessionLog.onApplicationShutdown(Unknown Source)

I am not a programmer (less Java programmer) so I can only raise the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.