| 1 | This is the README file for the internationalization sample for wxWindows 2.0. |
| 2 | |
| 3 | Q. What does this stupid program do? |
| 4 | A. It demonstrates how to translate all program messages to a foreign language. |
| 5 | In any program using wxWindows there is going to be 3 kinds of messages: the |
| 6 | messages from the program itself, the messages from the wxWindows library and |
| 7 | the messages from the system (e.g. system error messages). This program |
| 8 | translates the first 2 kinds of messages but the system messages will be only |
| 9 | translated if your system supports it. |
| 10 | |
| 11 | Brief usage summary: "Test|File" tries to open a non existing file (provoking |
| 12 | system error message), "Test|Play" shows a message box asking for a number. |
| 13 | Hint: try some special values like 9 and 17. |
| 14 | |
| 15 | Q. Why the error message when I try to open a non existing file is only partly |
| 16 | translated? |
| 17 | A. Your system doesn't have the translation in the language you use, sorry. |
| 18 | |
| 19 | Q. Why the message when I enter '9' is not translated? |
| 20 | A. This is on purpose: the corresponding string wasn't enclosed in _() macro and |
| 21 | so didn't get into the message catalog when it was created using xgettext. |
| 22 | |
| 23 | Q. Why the message when I enter '17' is only partly translated? |
| 24 | A. This will only work under some versions of Linux, don't worry if the second |
| 25 | half of the sentence is not translated. |
| 26 | |
| 27 | Q. I don't speak french, what about translations to <language>? |
| 28 | A. Please write them - see the next question. French is chosen by default |
| 29 | because it's the only translation which is currently available. To test |
| 30 | translations to the other languages please run the sample with 2 command line |
| 31 | arguments: the full language name and the name of the directory where the |
| 32 | message catalogs for this language are (will be taken as 2 first letters of |
| 33 | the language name if only 1 argument is given). |
| 34 | |
| 35 | Q. How to do translations to other language? |
| 36 | A. First of all, you will need the GNU gettext tools (see the next question). |
| 37 | After you've probably installed them, type the following (example is for Unix |
| 38 | and you should do exactly the same under Windows). |
| 39 | |
| 40 | # all translations forgiven language should be in a separate directory. |
| 41 | # Please use the standard abbreviation for the language names! |
| 42 | mkdir <language> |
| 43 | cd <language> |
| 44 | |
| 45 | # generate the .po file for the program itself |
| 46 | # see `xgettext --help' for options, "-C" is important! |
| 47 | xgettext -C -n -k_ -kwxPLURAL:1,2 -kwxTRANSLATE -o internat.po ../internat.cpp |
| 48 | |
| 49 | # .po file for wxWindows might be generated in the same way. An already |
| 50 | # generated wxstd.po as well as translations for some languages can be |
| 51 | # found in the locale directory. |
| 52 | cp ../../locale/<language>.po ./wxstd.po |
| 53 | - or - |
| 54 | cp ../../locale/wxstd.po . |
| 55 | |
| 56 | # now edit the files and do translate strings (this isn't done by gettext) |
| 57 | # you can use another editor if you wish :-) No need to edit wxstd.po if you |
| 58 | # already got a translated one. |
| 59 | vi internat.po wxstd.po |
| 60 | |
| 61 | # create the message catalog files |
| 62 | msgfmt -o internat.mo internat.po |
| 63 | msgfmt -o wxstd.mo wxstd.po |
| 64 | |
| 65 | # run the sample to test it |
| 66 | cd .. |
| 67 | ./internat <language> |
| 68 | |
| 69 | Q. How to get the gettext tools? |
| 70 | A. For Unix, you should be able to get the source distribution of any GNU mirror |
| 71 | (see www.gnu.org for a start). gettext() version 0.10 is buggy, try to get at |
| 72 | least version strictly greater than 0.10. gettext RPMs can be downloaded from |
| 73 | the standard locations for Linux. For Windows, you can get the precompiled |
| 74 | binaries from wxWindows web page. |
| 75 | |
| 76 | Q. What's i18n? |
| 77 | A. Count the number of letters in the word "internationalization". |
| 78 | |
| 79 | Q. Where to send comments, |
| 80 | additional translations, |
| 81 | flames, |
| 82 | money? |
| 83 | A. To Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>, |
| 84 | wxWindows list <wxwin-developers@wx.dent.med.uni-muenchen.de>, |
| 85 | /dev/null (platform-dependent), |
| 86 | wxWindows dev team Swiss bank account. |