Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


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



--
email & jabber: sramek.milos@gmail.com


--
To unsubscribe e-mail to: l10n+unsubscribe@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/l10n/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.