Next: , Previous: Top, Up: Top



1 What Is Transtalo?

The Transtalo Translation System, or Transtalo for short, is a free automatic translator written in C++ and partly in C. It allows you to automatically translate documents, web sites, books... And the computer does it for you.

I know very well that computer translating can never be perfect. Translation is work of man. And it will stay so. But imagine. You get a text written in Italian. You know some words of that language, but you can't understand the text. If you translate it into your own language (or a supported language you can read), you will be able to understand the text, although the translation is not perfect.

It is also possible you want to send a letter to a friend, but you don't speak his language and vice versa. So you write your letter in your own language (or, if Transtalo doesn't provide support for it, another language you know), let Transtalo translate it and send it to your friend. He will be able to read your letter, although it again is not perfect.

Transtalo isn't meant as a perfect alternative to human translation. Human translation will always stay the best. But Transtalo will do its best to generate a translation as well as possible.

Reading this book, you should realize that not all features mentioned are implemented yet. For now, see it as a preview to the system.

1.1 The Translation Progress

The translation progress that Transtalo uses is somewhat different from the way used by Babelfish and others. If you aren't interested in the way texts are translated, you may want to skip this paragraph.

  1. The Transtalo library can only translate one sentence at once, so the text is separated into sentences.
  2. Each sentence is sent to the Transtalo library.

  3. The library calls an input module (an external program) to parse the sentence from the source language. It translates single words into Esperanto (this is an artifical language that is completely regular), and puts everything in an XML file. The XML file describes the whole parsed sentence in a language-independent way.
  4. After this, the Transtalo library calls the output module that is specialized in the chosen target language, to translate the XML sentence file into a real sentence in the target language.
  5. The library receives the sentence as it was translated by the output module.
  6. This is done for all sentences in the text.

1.2 Highlights of Transtalo

The Transtalo Translation System has different highlights. They are explained in this section.

1.2.1 Separated Input and Output Modules

Because the input and output parts are independently of each other implemented, we don't need to make modules for combinations of source and target languages, but only for the input and output parts for each language.

Maybe you find this somewhat complicated. I'll give an example. You want to translate a text from English to twenty other languages. If each combination of languages needs an own module, a module would be needed for English to French, English to Spanish, English to German, English to Japanese, English to Danish, and so on.

This wouldn't be a problem if we only had to translate from English. Then twenty modules would be needed. But imagine somebody from Portugal wants to do exactly the same, except that the source language is Portugese, not English. Then twenty new modules would be needed: from Portugese into English, Portugese into German...

Conclusion: this way it is impossible to have support for all languages. For example: for 70 languages to be fully supported, we would need 70 / 70 * 2 = 2450 (TODO: I don't think that this is correct) modules (we devide it by two because we don't need to have modules that translate into itselves (e.g. English into English, Danish into Danish)).

You could say: “But if can do everything via the English language, you don't need to have so much modules, do you?” That is true, but you know that automatic translation is never perfect. By the first translation (to English), the quality of the text makes a great step backwards. During the second translation, the same thing happens. Also, many information may gets lost.

Transtalo uses a very different approach. It haves different modules for the translation from and translation to parts, called input and output modules. The input module translates a sentence from the source language, and the output module translates it into the target language.

This way, we only need to have 140 modules to fully support 70 languages: 70 input modules and 70 output modules.

1.2.2 Dialects

Transtalo has support for dialects. It depends on the specific module if it supports the desired dialect.

At this time, there is no single module that supports dialects.

1.2.3 Diagnostic Messages

It is possible that you see warnings and/or errors while translating. If a module sees something strange in the sentence it translates, it will output a message. If it leads to a bad translation, you are encouraged to report it.

Beside warnings and errors it is also possible to switch on information messages on. These give information on the translation progress, such as which phrase is currently translated. These messages are switched off by default, because in most cases you won't like to see them.

1.2.4 Idiom

The translation modules are able to support translating idiom in a good way. In general this work is done by the output module.

It works in the following way. The output module checks the already parsed sentence on all known idiom that is specific for the original language. If it finds something, the output module will try to transform it so it turns in a normal sentence. After that, the sentence is translated normally with the difference that the idiom is (should be) translated well.

1.2.5 Library Interface

The Transtalo Translation System is not only a standalone program (the transtalo command), but comes also with a library interface. With this interface, you are able to make applications that use the library for its purposes.

You could e.g. make a graphical user interface for Transtalo, or a web interface. You are not limited to the simple transtalo command.