1 wxWidgets translator guide 2 ========================== 3 4This note is addressed to wxWidgets translators. 5 6First of all, here is what you will need: 7 81. GNU gettext package version 0.10.35 or later (NB: earlier versions were 9 known to have serious bugs) 10 11 a) for Unix systems you can download gettext-0.10.tar.gz from any GNU 12 mirror (RPMs and DEBs are also available from the usual places) 13 14 b) for Windows you can download the precompiled binaries from 15 www.wxwidgets.org or install PoEdit (poedit.sourceforge.net) and 16 add <installdir>/poEdit/bin to your path (so it can find xgettext). 17 182. A way to run a program recursively on an entire directory from the command 19 line: 20 21 a) for Unix systems, this is done in locale/Makefile using the standard find 22 command and xargs which is installed on almost all modern Unices. If you 23 are unlucky enough to not have xargs, you can use the -exec option of find 24 instead. 25 26 b) for Win32 systems you can use either Cygwin or MinGW. If you don't have 27 those it is less trivial: if you have 4DOS/4NT/bash, that's 28 fine, but you'd have to use some kind of "for /s" loop with the 29 command.com/cmd.exe. 30 313. (at least read) access to the cvs is not necessary strictly speaking, but 32 will make things a lot easier for you and others. 33 34 35Now a brief overview of the process of translations (please refer to GNU 36gettext documentation for more details). It happens in several steps: 37 381. the strings to translate are extracted from the C++ sources using xgettext 39 program into a wxstd.po file which is a "text message catalog" 40 412. this new wxstd.po file (recreated each time some new text messages are added 42 to wxWidgets) is merged with existing translations in another .po file (for 43 example, de.po) and replaces this file (this is done using the program 44 msgmerge) 45 463. the resulting .po file must be translated 47 484. finally, msgformat must be run to produce a .mo file: "binary message catalog" 49 50 51How does it happen in practice? There is a Makefile in the "locale" 52directory which will do almost everything (except translations) for you. i.e. 53just type "make lang.po" to create or update the message catalog for 'lang'. 54Then edit the resulting lang.po and make sure that there are no empty or fuzzy 55translations left (empty translations are the ones with msgstr "", fuzzy 56translations are those which have the word "fuzzy" in a comment just above 57them). Then type "make lang.mo" which will create the binary message catalog. 58 59Under Windows (If you don't have Cygwin or MinGW), you should execute the 60commands manually, please have a look at Makefile to see what must be done. 61 62For platform specific translations, .po files such as 'locale/msw/it.po' can be 63used to provide translations that override the usual ones in 'locale/it.po'. 64The generated .mo files are then installed under the names such as 'wxmsw.mo' 65alongside the generic 'wxstd.mo'. 66 67A new platform specific translation should be added to a section such as this 68in wx.bkl: 69 70 <gettext-catalogs id="locale_msw"> 71 <srcdir>$(SRCDIR)/locale/msw</srcdir> 72 <catalog-name>wxmsw</catalog-name> 73 <linguas>it</linguas> 74 <install-to>$(LOCALEDIR)</install-to> 75 </gettext-catalogs> 76 77=== EOF === 78 79Author: VZ 80Version: $Id: tn0002.txt 35181 2005-08-12 15:34:01Z MW $ 81 82$Log$ 83Revision 1.7 2005/08/12 15:34:01 MW 84Typo 85 86Revision 1.6 2005/08/12 15:29:47 MW 87Translate '&Help' to '&' for italian Windows only 88 89Revision 1.5 2004/10/22 19:12:59 KH 90*** empty log message *** 91 92Revision 1.4 2004/05/04 08:26:58 JS 93Name change replacements 94 95Revision 1.3 2003/11/18 16:37:11 DS 96Updated translation technote to mention Makefile usage under Windows. 97 98Revision 1.2 2002/07/03 15:01:26 VZ 99typos and other doc corrections from Olly Betts (patch 573738) 100 101Revision 1.1 2000/03/07 10:53:53 VZ 102technote about translations added 103 104