tn0002.txt 3.8 KB

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