Translating Wine with PO files

Dwayne Bailey dwayne at
Tue Apr 22 05:13:09 CDT 2008


I've just completed a tool for converting resource files (.rc) to
Gettext PO.
This should allow many more FOSS translators to add translations to
Wine, hopefully before the 1.0 release.

In some ways this is a response to some issues raised in the
'Translations and Wine 1.0' thread:
further into this email I offer some comments on the issues raised in
that thread.  My suggestion is to deploy a Pootle server:

The new RC tool, rc2po, is part of the Translate Toolkit, a general
translation conversion toolkit and localisation library.

I've cut 1.2-alpha1 for those who want to give it a spin.  We've just
started work on v1.2 so the toolkit is mature, started in 2002, and the
alpha status is simply an indication that we've got quite a while before
1.2 official.  Download it from here:

Status of rc2po:
* Its very new - I've done roundtrip testing and some translating in
ummm pig latin :) but will begin more serious Afrikaans translation
soon.  So I expect to see some bugs.
* You can't change the dialog sizes - I have some ideas of how we could
do this in PO but its not implemented at all

How it works:
Make POT files: rc2po -P some.rc some.pot
Recover old translations: rc2po -t some.rc translated.rc translated.po
Make rc files: 
  po2rc --lang=LANG_XXX -t some.rc translated.po translated.rc
The wiki page provides clearer usage examples:

Things to be aware of
* You cannot tweak the translations in .rc and hope to keep things in
sync with PO, you'll need to only work in PO files or make sure any
tweaks you make in your .rc you copy to the .po.
* You cannot change the sizes of the dialogues in your translation for
the above reason.  This should change in the future to allow you to
'translate' the sizes.
* Recovered translations need to be fully reviewed as we can't determine
if your translation is based on the same English text.
* We cannot create multi-language .rc files, you'll need one languages
in each file.
* We can read multilingual files but will only take the first language
and drop anything after that, since PO files can only contain one
language this makes sense.
* We don't do any changes to the Makefiles, you'll have to do those by
hand.  But it would probably be easy to create a simple bash script or
change the build system to automagically include all xxx_yy.rc files.
* We handle encoding issues but prefer UTF-8 throughout.

How you can help
* By testing rc2po and po2rc
* Help implement a solution to allow size changes
* Report bugs on

Getting help
* On IRC: irc://
* Mailing list:
* Wiki:

Suggested localization infrastructure for Wine
In the thread 'Translation and Wine 1.0':
there was some discussion about localization infrastructure for wine.

I'd like to suggest that Wine looks at using Pootle:
this is already in use by projects such as OLPC, and
others.  It can manage PO files, commit to various VC systems (including
Git), allows suggestions, does various QA checks and allows download and
submission of PO files, has translation memory and glossary suggestions,
statistics, etc, etc.

A hosting option is to put the files on but
I would request someone from the Wine community to take charge of
keeping the PO files up-to-date and authorising users, etc.  I would
however encourage the Wine community to run its own server.  This would
make it easier to commit files directly into Git.  I would suggest some
work to ensure that POT files, updating of PO files and conversion back
to .rc are automatic.  Being within the control of the Wine community
makes this easier.

Launchpad is not an options unless you convert to PO using the above
rc2po.  Pootle has the advantage that you can run your own server, you
don't have that with Launchpad.

Dwayne Bailey

+27-12-460-1095 (w)
+27-83-443-7114 (cell)

More information about the wine-devel mailing list