translating dialogs using OmegaT

Hi,

I've studied a bit the situation regarding the new strings for translation in dialogs.

The developers have since lo4.1 release converted 285 dialogs to glade ui files. For us this means that the corresponding strings were moved from the files in the (xxx)/source to files in the (xxx)/uiconfig subdirectories. One can check in Pootle that there really are fewer words in the source subdirs and more in the uiconfig subdirs comparing 4.2 to 4.1.

The consequence for us is that the translations from the source files are missing in the uiconfig files. There are about 8000 words to translate now, so this is a lot of work. Moreover, in Pootle we do not see the old 4.1 stuff and also do not see similar strings from 4.2 - so it looks like we should repeat the translation again from scratch.

I've tried to use OmegaT for translation - it can provide reference to 4.1 and in general it significantly speeds up the procedure

OmegaT uses for translation translation memory (tmx files)- except for the main one it can use also auxiliary tmx files.
The idea is to convert 4.1 translation to these auxiliary tmx files - they are then offered by OmegaT as suggestions.

The procedure:
1. Install omegat from omegat.org (I use the beta version)
2. Download of po files from Pootle. I've downloaded everything in libo_ui-sk.zip (4.2) and libo41x_ui-sk.zip files
3. Create a new omegat project (OT asks you to create a directory, let's create XXX) without importing anything
4. Unzip libo_ui-sk.zip in XXX/sources
5. Unzip libo41x_ui-sk.zip im XXX/tm
6. Convert the po files to tmx in XXX/tm (using the bash shell):
     for i in `find . -name \*po`; do po2tmx --lang sk -i $i -o $i.tmx ;done
7. This step is optional, but can save a lot of typing: convert the ~ accelerators by the _ ones:
     sed -i -e "s/\~/_/" `find . -name \*tmx`
     This converts ~ in all strings, not only the dialog ones. It should not be a problem, since we want to translate only the dialog strings
8. Start OmegaT and open the XXX directory. It will load po files from XXX/source. Suggestions from auxiliary tmx files created from 4.1 are in the upper right pane. Most of the strings are translated (OT understands po files) and in my setting are displayed yellow. Every now and then there is an untranslated (blue) string. By pressing CRTL-U one jumps to the next untranslated string. OT may directly suggest a translation (based on the tmx files) - marked by [approximate] (or something similar in other language). If you like it, press CTRL-R and [approximate] vanishes. Or edit, as you wish. Then press CTRL-U and go to the next string.
9. When done, choose Project > Create translated documents. These appear in XXX/target. One can compare the source and target files using gvimdiff - the files are exactly the same except for the translations.
10. When a subdirectory is translated (say, cui), zip it and upload to pootle.
11. Enjoy the '0' in the "Need translation" column

OmegaT normally segments the text at the level of sentences. This means that a PO message, consisting of two and more sentences, would be offered for translations in two or more parts. The suggestions based on auxiliary tmx file are however not split. One can change this behaviour by unchecking all options in Settings > Segmentation > Predefined (the last but 3 iten). Subsequenly, a PO message will alway appear as one item in OT.

My observations after translating about 1000 words:

- work with OT is much faster than with Pootle - there one waits a second or two after submitting a string, which after some time becomes annoying
- suggestions are both exact and fuzzy
- CTRL-U stops at untranslated strings and at translated strings with ambiguous translation in the tmx files. In the second case the the original translation is kept - one thus can correct it, based on the suggestions
- In suggestions one can sometimes see an incorrect translation - one can then look the incorrect string up in Pootle and correct it. Or, one can do that directly in the XXX/sources tree
- one can see a lot of context - 16 lines in my case. For me it helps, for example, to choose correctly gender of adjectives, if I see that 'thick' is related to 'line'
- OT allways want to translate headers of the po files (these are items win many lines). Just hit CRTL-SHIFT-R to take the original

There seem to be also another option how to use OT. One can perhaps merge the auxiliary tmx files into one and store it as XXX/omegat/project_save.tmx. This is the main translation memory. In this case, perhaps, OT will translate all untranslated messages automatically. I did not check it.

Except for OmegaT I've tried also Virtaal. In comparison to Pootle it has the advantage, that it looks up translations on some servers. The Agama server seems to have translation from OpenOffice, so it helps a bit (would not be bad to ask then to load LO translations). The lookup is, however, too slow to be useful.

The po2tmx program is from the translate-toolkit package.

I hope that this will help
best
Milos

That is all fine, but be advised that OT if used incautiously may insert lots of untranslated strings into the result. First it's all dandy, next moment you're looking at 20% of English strings in your product.

After all, OT isn't the specialised UI translation tool like kbabel, poedit, and virtaal.

-Yury

...

I've tried to use OmegaT for translation - it
can provide reference to 4.1 and in general it
significantly speeds up the procedure

...