File: translators-guide.md

package info (click to toggle)
wxwidgets3.2 3.2.8%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 179,460 kB
  • sloc: cpp: 992,335; ansic: 102,143; makefile: 51,623; sh: 11,572; python: 5,590; perl: 1,563; php: 326; xml: 200; javascript: 181
file content (52 lines) | stat: -rw-r--r-- 2,329 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
wxWidgets translator guide
==========================

This note is addressed to wxWidgets translators.

First of all, here is what you will need:

1. GNU gettext package

   - For Unix systems you can download gettext-0.xx.yy.tar.gz from any GNU
   mirror (RPMs and DEBs are also available from the usual places)
   - For Windows you can download the precompiled binaries from
   www.wxwidgets.org or install [Poedit](https://poedit.net/) and add
   `<installdir>/poEdit/bin` to your path (so it can find xgettext).

2. A way to run a program recursively on an entire directory from the command
   line:

   - For Unix systems, this is done in `locale/Makefile` using the standard `find`
   command and `xargs` which is installed on almost all modern Unices.
   - For Win32 systems you can use Cygwin, MSYS or WSL.

3. Access to the git repository is not necessary strictly speaking, but will
   make things a lot easier for you and others.


Now a brief overview of the process of translations (please refer to GNU
gettext documentation for more details). It happens in several steps:

1. the strings to translate are extracted from the C++ sources using `xgettext`
   program into a `wxstd.pot` file which is a "text message catalog"

2. this new wxstd.pot file (which is updated from time to time by running
   `make wxstd.pot` in the `locale` subdirectory) is merged with existing
   translations in another .po file (for example, de.po) and replaces this
   file (this is done using the program `msgmerge`)

3. the resulting .po file must be translated

4. finally, `msgformat` must be run to produce a .mo file: "binary message catalog"


How does it happen in practice? There is a Makefile in the "locale"
directory which will do almost everything (except translations) for you. i.e.
just type `make lang.po` to create or update the message catalog for 'lang'.
Then edit the resulting `lang.po` and make sure that there are no empty or fuzzy
translations left (empty translations are the ones with `msgstr ""`, fuzzy
translations are those which have the word "fuzzy" in a comment just above
them). Then type `make lang.mo` which will create the binary message catalog.

Under Windows (If you don't have Cygwin or MinGW), you should execute the
commands manually, please have a look at Makefile to see what must be done.