History of CafeTran + questions about basic architecture

166 views
Skip to first unread message

Dominique Pivard

unread,
Jan 3, 2012, 12:58:21 PM1/3/12
to cafetra...@googlegroups.com
Hi Igor & Co,

When was the very first version of CT released to the public? How was
it called / numbered? Was a pre-1.0 ever used by people other than
Igor?

And now some technical questions about beansbinding-1.2.1.jar and
h2-1.2.147.jar, two of the four files located in cafetran/lib. I
assume these are third-party libraries, because they have a date-stamp
of 2010 and I could find some links about them
(http://java.net/projects/beansbinding/ and
http://www.java2s.com/Code/Jar/h/h2.htm). By contrast, the other two
files (editors.jar and mt.jar) have a date-stamp of December 2011 and
I assume they were created by Igor (and their names do give away what
they do).

So Igor: did you have other options when starting with the CT project
and why did you end up choosing BeansBinding and H2 (whatever they are
and whatever they do)? I don't understand much about Java programming,
but I had an interesting discussion with Yves Champollion (/of
Wordfast fame) recently: if I got him right, I understood the Wordfast
Pro development team chose a thing called Eclipse
(http://www.eclipse.org/), while the Wordfast Anywhere team went for a
thing called Google Web Tookit (https://code.google.com/webtoolkit/).
Although I'm not a programmer, I assume Java programmers must make
such choices, which affect the way their own application work, their
look & feel etc.

I hope Igor will be able to shed some light on this, in a way that non
programmers can understand!

Thanks,

Dominique

Igor Kmitowski

unread,
Jan 3, 2012, 6:18:31 PM1/3/12
to cafetra...@googlegroups.com
Hi Dominique,

> When was the very first version of CT released to the public? How was
> it called / numbered? Was a pre-1.0 ever used by people other than
> Igor?

I started learning how to program in Java about 10 years ago and right
away I got the idea of creating a program that would help me translate
documents. Strangely, it did not occur to me that such a software already
existed. Later, reading translators forums I heard of Trados, Wordfast
etc. This might have been stupid of me but I did not even install those
CATS to see how they functioned. If I had done it I would probably have
ended up with a copy of one CAT or another.

So with an excellent Bruce Eckel's book "Thinking in Java" in hand I
started writing some text manipulation program which later became a core
of CT translation engine. As soon as the program managed to parse simple
text files matching segments with the translation memories I put it on the
web around 2005. Then, there wasn't any versioning scheme (no pre-1.0 or
so). The first name was TexTran but I quickly changed it to CafeTran
coming from my idea of perfect translator's job traveling around the world
and translating in cafes for a living. By the way, do such translators
exist? I guess, with a current technology it is possible.

My Java development tool is Netbeans IDE (Integrated Development
Environment) which helps to write the Java code. The main reason for
choosing this tool was the fact that it directly supported Java Swing -
multiplatform (working on Mac,Windows,Linux) Graphical User Interface
libraries (http://en.wikipedia.org/wiki/Swing_(Java). You might call it a
Look and Feel, however on each platform it looks different trying to
integrate with the system's graphical interface. For example, Eclipse is
centered around a different GUI toolkit called SWT.

> And now some technical questions about beansbinding-1.2.1.jar and
> h2-1.2.147.jar, two of the four files located in cafetran/lib. I
> assume these are third-party libraries, because they have a date-stamp
> of 2010 and I could find some links about them
> (http://java.net/projects/beansbinding/ and
> http://www.java2s.com/Code/Jar/h/h2.htm). By contrast, the other two
> files (editors.jar and mt.jar) have a date-stamp of December 2011 and
> I assume they were created by Igor (and their names do give away what
> they do).

- h2.jar is a default External SQL Database called H2 and developed by
Thomas Mueller (see here http://www.h2database.com/html/main.html)
- beansbinding.jar is a library shipped with Netbeans. It helps to share
the same text with two different components (e.g. when opening a SQL
database table you can see the same segment in a table cell and textarea
below the table).
- mt.jar is a library responsible for connection to the Machine
Translation online services (e.g. Google Translate)
- editors.jar is a library to connect CafeTran to OpenOffice/LibreOffice
for spellchecking and translating straight from the OpenOffice interface.

>
> So Igor: did you have other options when starting with the CT project
> and why did you end up choosing BeansBinding and H2 (whatever they are
> and whatever they do)? I don't understand much about Java programming,
> but I had an interesting discussion with Yves Champollion (/of
> Wordfast fame) recently: if I got him right, I understood the Wordfast
> Pro development team chose a thing called Eclipse
> (http://www.eclipse.org/), while the Wordfast Anywhere team went for a
> thing called Google Web Tookit (https://code.google.com/webtoolkit/).
> Although I'm not a programmer, I assume Java programmers must make
> such choices, which affect the way their own application work, their
> look & feel etc.
>
> I hope Igor will be able to shed some light on this, in a way that non
> programmers can understand!

I hope I answered your questions in a nontechnical manner. It is past
midnight here in Poland. Time to bed.

Good night,
Igor

--
Igor Kmitowski
Translator and Java developer
CafeTran website: http://www.cafetran.republika.pl
CafeTran support: cafetran...@gmail.com

Jean-Christophe Helary

unread,
Jan 3, 2012, 6:33:22 PM1/3/12
to cafetra...@googlegroups.com

On Jan 4, 2012, at 8:18 AM, Igor Kmitowski wrote:

> My Java development tool is Netbeans IDE (Integrated Development Environment) which helps to write the Java code. The main reason for choosing this tool was the fact that it directly supported Java Swing - multiplatform (working on Mac,Windows,Linux) Graphical User Interface libraries (http://en.wikipedia.org/wiki/Swing_(Java). You might call it a Look and Feel, however on each platform it looks different trying to integrate with the system's graphical interface. For example, Eclipse is centered around a different GUI toolkit called SWT.

The interesting thing is that Swing based applications on Mac have access to the Services provided by the OS and by other applications, while SWT based applications don't.

For Mac users, that is a very big difference, because they can create services based on Automator workflows that can either call Automator actions or programs in other languages, and such services can process the selected strings and paste the result in place.

That works in Cafetran, in OmegaT, but not in Swordfish, Okapi etc.


Jean-Christophe Helary
----------------------------------------
fun: http://mac4translators.blogspot.com
work: http://www.doublet.jp (ja/en > fr)
tweets: http://twitter.com/brandelune

Hans van den Broek

unread,
Jan 3, 2012, 7:22:54 PM1/3/12
to cafetra...@googlegroups.com

On 4 Jan 2012, at 06:33, Jean-Christophe Helary wrote:

> For Mac users, that is a very big difference, because they can create services based on Automator workflows that can either call Automator actions or programs in other languages, and such services can process the selected strings and paste the result in place.

An extremely useful feature. I don't understand much of Automator and Services yet, but I did manage to activate a Service so I can look up words instantly in my main dictionary by selecting the word in CT and hitting a keyboard shortcut. Wonderful. I use it all the time, of course.


Cheers,

Hans

--

Hans van den Broek
Schrijf-, vertaal- en redigeerwerk
Peleman Rejowinangun KG1/513
RT029 RW009
Yogyakarta 55171
Indonesia
T +62 (0)85868607333
SKYPE: hanstranslations
transl...@hansvandenbroek.eu
http://cafetran4mac.blogspot.com

Jean-Christophe Helary

unread,
Jan 3, 2012, 7:48:57 PM1/3/12
to cafetra...@googlegroups.com, Mac for Translators
All the available services are listed in:

System Preferences > Keyboard > Services

You can make a service available by checking its check box, and you can assign it a keyboard shortcut (or modify an already existing one) in the same window.

I usually assign Ctrl+Option+(letter) kind of shortcuts so that they don't conflict with the system ones.

Rene

unread,
Jan 3, 2012, 11:36:42 PM1/3/12
to cafetra...@googlegroups.com
2012/1/4 Igor Kmitowski <cafetran...@gmail.com>
I started learning how to program in Java about 10 years ago and right away I got the idea of creating a program that would help me translate documents. Strangely, it did not occur to me that such a software already existed.

.....and that is exactly the impression I had when I first encountered Cafetran!
You have re-invented the whole CAT business independently from everyone else, and thus come up concepts that are totally alien to everyone else.

So, CT is a stroke of genius for sure, but the learning curve is unnecessarily high.

Regards
Rene

Hans van den Broek

unread,
Jan 3, 2012, 11:42:03 PM1/3/12
to cafetra...@googlegroups.com

On 4 Jan 2012, at 11:36, Rene wrote:

So, CT is a stroke of genius for sure, but the learning curve is unnecessarily high.

Not necessarily. It's high for people used to other CAT tools. But then again, having used another CAT tool always seems to be a disadvantage for learning another one.

Dominique Pivard

unread,
Jan 4, 2012, 3:21:57 AM1/4/12
to cafetra...@googlegroups.com
2012/1/4 Igor Kmitowski <cafetran...@gmail.com>:

Hi Igor,

And thanks for your detailed answers, which were most useful! Some of
them will make it in my forthcoming videos (which are what prompted me
to ask these questions).

> I started learning how to program in Java about 10 years ago and right away
> I got the idea of creating a program that would help me translate documents.
> Strangely, it did not occur to me that such a software already existed.
> Later, reading translators forums I heard of Trados, Wordfast etc. This
> might have been stupid of me but I did not even install those CATS to see
> how they functioned. If I had done it I would probably have ended up with a
> copy of one CAT or another.

OK, that explains the iconoclast approach of CT! I believe thinking
"out of the box" is not a bad thing. Take Gmail, for instance: it was
a late comer, but Google decided not to make it a clone of Hotmail,
Yahoo Mail etc. Instead, they chose not to have folders at all
(something that next to all mail applications have), which many people
find confusing at first. Then they have this Archive button that
causes messages to disappear in a black hole. But people get use to
it, at least I did, and I find Gmail is a brilliant mail application.

> So with an excellent Bruce Eckel's book "Thinking in Java" in hand I started
> writing some text manipulation program which later became a core of CT
> translation engine. As soon as the program managed to parse simple text
> files matching segments with the translation memories I put it on the web
> around 2005. Then, there wasn't any versioning scheme (no pre-1.0 or so).
> The first name was TexTran but I quickly changed it to CafeTran coming from
> my idea of perfect translator's job traveling around the world and
> translating in cafes for a living. By the way, do such translators exist? I
> guess, with a current technology it is possible.

Interesting! I thought "Cafe" in CT related to coffee (Java, the beans
etc.), not café as in "Internet café". Lots of translators do work our
of home (that's why laptops are so popular), but I'm not sure many of
them are globe-trotters always on the move. If such translators exist,
I would think they'd go for cloud-based solutions like Wordfast
Anywhere.

But it's interesting to compare the size of various Java-based CAT
tools: CT is less than 3 MB, OmegaT is 14 MB, Swordfish 49 MB,
Wordfast Pro 133 MB. OK, I think Swordfish and WFP include JRE , but
still.

> My Java development tool is Netbeans IDE (Integrated Development
> Environment) which helps to write the Java code. The main reason for
> choosing this tool was the fact that it directly supported Java Swing -
> multiplatform (working on Mac,Windows,Linux) Graphical User Interface
> libraries (http://en.wikipedia.org/wiki/Swing_(Java). You might call it a
> Look and Feel, however on each platform it looks different trying to
> integrate with the system's graphical interface. For example, Eclipse is
> centered around a different GUI toolkit called SWT.

I understood from J-C's post OmegaT also uses Swing. Does OmegaT also
uses Netbeans IDE, or something else? Do people know what Swordfish
uses? It would be interesting to have a comparison of the various
development tools and GUI's used by the Java-based CAT tools.

> - h2.jar is a default External SQL Database called H2 and developed by
> Thomas Mueller (see here http://www.h2database.com/html/main.html)
> - beansbinding.jar is a library shipped with Netbeans. It helps to share the
> same text with two different components (e.g. when opening a SQL database
> table you can see the same segment in a table cell and textarea below the
> table).
> - mt.jar is a library responsible for connection to the Machine Translation
> online services (e.g. Google Translate)
> - editors.jar is a library to connect CafeTran to OpenOffice/LibreOffice for
> spellchecking and translating straight from the OpenOffice interface.

OK, so mt.jar and editors.jar are libraries created by yourself, right?

> I hope I answered your questions in a nontechnical manner. It is past
> midnight here in Poland. Time to bed.

Definitely, thanks a lot!

Cheers,

Dominique

Jean-Christophe Helary

unread,
Jan 4, 2012, 3:48:05 AM1/4/12
to cafetra...@googlegroups.com
> But it's interesting to compare the size of various Java-based CAT
> tools: CT is less than 3 MB, OmegaT is 14 MB, Swordfish 49 MB,
> Wordfast Pro 133 MB. OK, I think Swordfish and WFP include JRE , but
> still.

On my side of the screen, OmegaT weights 1.6 mb to which one needs to add 3.5 mb of free libraries without which it can't run. All the rest is documentation in 20 or so languages. The English documentation is about 1.9 mb.

Your version may be including the JRE though. But then, the total on my side is 60.6 mb without a JRE...

Swordfish, with all the libraries, tools, docs etc. is 33.9 mb.

> I understood from J-C's post OmegaT also uses Swing. Does OmegaT also
> uses Netbeans IDE, or something else?

That's correct. OmegaT is developed in Netbeans. But it is not a requirement.

> Do people know what Swordfish uses?

No idea. The easiest would be to ask Rodolfo.

> It would be interesting to have a comparison of the various development tools and GUI's used by the Java-based CAT tools.

Yves Savourel seemed to suggest that Eclipse+SWT offered better GUI creation tools than Netbeans+Swing. When I tried to changed the layout of a window in OmegaT, I found it quite challenging indeed.

Dominique Pivard

unread,
Jan 4, 2012, 4:04:51 AM1/4/12
to cafetra...@googlegroups.com
On 4 January 2012 10:48, Jean-Christophe Helary
<jean.christ...@gmail.com> wrote:

> On my side of the screen, OmegaT weights 1.6 mb to which one needs to add 3.5 mb of free libraries without which it can't run. All the rest is documentation in 20 or so languages. The English documentation is about 1.9 mb.

I just downloaded the recommended Windows version *without* JRE, and
it's 13.9 MB, as you can see here:

http://screencast.com/t/WuhkBwJyrJet

> Your version may be including the JRE though. But then, the total on my side is 60.6 mb without a JRE...
>
> Swordfish, with all the libraries, tools, docs etc. is 33.9 mb.

Maybe you're talking about the OS X distribution? The Windows
distribution is 48.8 MB:

http://screencast.com/t/oXka2hRB

I'm comparing the size of the distribution as downloaded from the site
of each tool, not the disk size taken once the package is expanded or
the tool installed.

>> I understood from J-C's post OmegaT also uses Swing. Does OmegaT also
>> uses Netbeans IDE, or something else?
>
> That's correct. OmegaT is developed in Netbeans. But it is not a requirement.

Thanks! What do you mean by "not a requirement"? The OmegaT developers
could have chosen from several development tools, but they settled on
Netbeans, is that so?

>> Do people know what Swordfish uses?
>
> No idea. The easiest would be to ask Rodolfo.

OK, I'lll ask him. I know he's present on quite many lists & forums of
"competitors", but I don't think he's on the CT list.

>> It would be interesting to have a comparison of the various development tools and GUI's used by the Java-based CAT tools.
>
> Yves Savourel seemed to suggest that Eclipse+SWT offered better GUI creation tools than Netbeans+Swing. When I tried to changed the layout of a window in OmegaT, I found it quite challenging indeed.

So he's using Eclipse+SWT for his own tools?

Cheers,

Dominique

Jean-Christophe Helary

unread,
Jan 4, 2012, 4:11:14 AM1/4/12
to cafetra...@googlegroups.com
>> That's correct. OmegaT is developed in Netbeans. But it is not a requirement.
>
> Thanks! What do you mean by "not a requirement"? The OmegaT developers
> could have chosen from several development tools, but they settled on
> Netbeans, is that so?

Yes and no. Netbeans is the IDE but to create a Java program, even a complex one, you just need the JDK and basically only the javac command line that compiles the .java files to something the JRE can run.

>> Yves Savourel seemed to suggest that Eclipse+SWT offered better GUI creation tools than Netbeans+Swing. When I tried to changed the layout of a window in OmegaT, I found it quite challenging indeed.
>
> So he's using Eclipse+SWT for his own tools?

SWT for sure, Eclipse, I guess. And Okapi is not "his own tools" but the Enlasso tools that were "freed". If you check the Okapi dev list, you'll see that there are a lot of code contributors and that they are extremely active.

Igor Kmitowski

unread,
Jan 4, 2012, 5:08:33 AM1/4/12
to CafeTranslators
On 4 Sty, 05:36, Rene <Yoin...@gmail.com> wrote:
> 2012/1/4 Igor Kmitowski <cafetran.supp...@gmail.com>
>
> > I started learning how to program in Java about 10 years ago and right
> > away I got the idea of creating a program that would help me translate
> > documents. Strangely, it did not occur to me that such a software already
> > existed.
>
> .....and that is exactly the impression I had when I first encountered
> Cafetran!
> You have re-invented the whole CAT business independently from everyone
> else, and thus come up concepts that are totally alien to everyone else.

Probably true for people coming from other CAT tools. With new CT
Espresso, it would be interesting to hear translators working or who
used to work with another tool how CT compares to it in terms of
functionality and translation speed.

Kind regards,
Igor

Igor Kmitowski

unread,
Jan 4, 2012, 5:19:41 AM1/4/12
to CafeTranslators
> But it's interesting to compare the size of various Java-based CAT
> tools: CT is less than 3 MB, OmegaT is 14 MB, Swordfish 49 MB,
> Wordfast Pro 133 MB. OK, I think Swordfish and WFP include JRE , but
> still.

When I first heard of Trados installation size, I thought there must
be one "Translate" button, you press it and after coming back with
another cup of coffee the whole job is done for you.

> OK, so mt.jar and editors.jar are libraries created by yourself, right?

Yes, that is correct.

Igor

--
Igor Kmitowski
Translator and Java developer
CafeTran website: http://www.cafetran.com
CafeTran support: cafetran...@gmail.com

Dominique Pivard

unread,
Jan 7, 2012, 11:26:17 AM1/7/12
to cafetra...@googlegroups.com
On 4 January 2012 11:04, Dominique Pivard <domi...@gmail.com> wrote:

>>> Do people know what Swordfish uses?
>>
>> No idea. The easiest would be to ask Rodolfo.
>
> OK, I'lll ask him. I know he's present on quite many lists & forums of
> "competitors", but I don't think he's on the CT list.

Actually, Rodolfo is one of the 29 members of this list, but maybe he
didn't see this thread ;-).

So I'll ask the question on his own list!

Cheers,

Dominique

Reply all
Reply to author
Forward
0 new messages