Mercurial > p > roundup > code
annotate doc/developers.txt @ 4419:eade357a1a16
- update acknowledgements
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Mon, 13 Sep 2010 17:08:41 +0000 |
| parents | b6f1aaba4827 |
| children | b59ba4dda623 |
| rev | line source |
|---|---|
|
688
b38f4f95bffd
More doc tweaks
Richard Jones <richard@users.sourceforge.net>
parents:
686
diff
changeset
|
1 ================== |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 Developing Roundup |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 ================== |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 |
| 2409 | 5 .. note:: |
| 6 The intended audience of this document is the developers of the core | |
| 7 Roundup code. If you just wish to alter some behaviour of your Roundup | |
| 8 installation, see `customising roundup`_. | |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 .. contents:: |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 Getting Started |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 --------------- |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 Anyone wishing to help in the development of Roundup must read `Roundup's |
|
688
b38f4f95bffd
More doc tweaks
Richard Jones <richard@users.sourceforge.net>
parents:
686
diff
changeset
|
16 Design Document`_ and the `implementation notes`_. |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 All development is coordinated through two resources: |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 - roundup-dev mailing list at |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 http://lists.sourceforge.net/mailman/listinfo/roundup-devel |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
22 - The issue tracker running at |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
23 http://issues.roundup-tracker.org/ |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 |
|
4336
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
25 Website, wiki |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
26 ------------- |
|
4228
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
27 |
|
4373
18cc4323e2ad
Accept single-character subject lines
Richard Jones <richard@users.sourceforge.net>
parents:
4336
diff
changeset
|
28 1. ssh -t <username>,roundup@shell.sourceforge.net create |
|
4228
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
29 2. cd /home/groups/r/ro/roundup |
|
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
30 3. follow instructions in README.txt |
|
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
31 |
|
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
32 |
|
4336
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
33 Issue Tracker |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
34 ------------- |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
35 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
36 The tracker resides on psf.upfronthosting.co.za. The roundup installation |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
37 belongs to the user roundup. In ~roundup, all trackers are stored and |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
38 the roundup code itself. roundup is started through /etc/init.d/roundup; |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
39 other parts of the installation are started through |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
40 /etc/init.d/{postgresql-8-1,spambayes,postfix}. |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
41 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
42 The machine is operated by Upfronthosting in South Africa. The meta |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
43 tracker is http://psf.upfronthosting.co.za/roundup/meta/ |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
44 In this tracker, Upfronthosting people are the users izak and roche. |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
45 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
46 The Roundup tracker http://issues.roundup-tracker.org/ is in |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
47 ~roundup/trackers/roundup |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
48 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
49 The configuration is in the "web/trunk/issues" section of Roundup's |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
50 Subversion repository and copied manually to the live tracker. |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
51 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
52 A checkout of the roundup sources is in ~roundup/src/roundup-src. |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
53 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
54 |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 Small Changes |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 ------------- |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
58 Most small changes can be submitted through the issue tracker, with |
|
3643
ff234c87b28a
link to feature tracker
Richard Jones <richard@users.sourceforge.net>
parents:
3626
diff
changeset
|
59 patches attached that give context diffs of the affected source. |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 |
|
4228
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
62 SVN Access |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 ---------- |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
65 See http://www.roundup-tracker.org/code.html. |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
66 For all other questions ask on the development mailinglist. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1089
diff
changeset
|
67 |
| 935 | 68 |
| 69 Project Rules | |
| 70 ------------- | |
| 71 | |
| 72 Mostly the project follows Guido's Style (though naming tends to be a little | |
| 73 relaxed sometimes). In short: | |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 |
| 935 | 75 - 80 column width code |
| 76 - 4-space indentations | |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
77 - All modules must have an Id line near the top |
| 935 | 78 |
| 79 Other project rules: | |
| 80 | |
| 81 - New functionality must be documented, even briefly (so at least we know | |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
935
diff
changeset
|
82 where there's missing documentation) and changes to tracker configuration |
| 935 | 83 must be logged in the upgrading document. |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 - subscribe to roundup-checkins to receive checkin notifications from the |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
85 other developers with write access to the source-code repository. |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 - discuss any changes with the other developers on roundup-dev. If nothing |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 else, this makes sure there's no rude shocks |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 - write unit tests for changes you make (where possible), and ensure that |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 all unit tests run before committing changes |
| 935 | 90 - run pychecker over changed code |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 The administrators of the project reserve the right to boot developers who |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 consistently check in code which is either broken or takes the codebase in |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 directions that have not been agreed to. |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 |
|
2605
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
96 |
|
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
97 Debugging Aids |
|
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
98 -------------- |
|
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
99 |
|
4377
b6f1aaba4827
Small documentation update regarding debugging aids:
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4373
diff
changeset
|
100 See `debugging.txt`_. |
|
2605
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
101 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
102 Internationalization Notes |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
103 -------------------------- |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
104 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
105 How stuff works: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
106 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
107 1. Strings that may require translation (messages in human language) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
108 are marked in the source code. This step is discussed in |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
109 `Marking Strings for Translation`_ section. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
110 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
111 2. These strings are all extracted into Message Template File |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
112 ``locale/roundup.pot`` (_`POT` file). See `Extracting Translatable |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
113 Messages`_ below. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
114 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
115 3. Language teams use POT file to make Message Files for national |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
116 languages (_`PO` files). All PO files for Roundup are kept in |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
117 the ``locale`` directory. Names of these files are target |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
118 locale names, usually just 2-letter language codes. `Translating |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
119 Messages`_ section of this chapter gives useful hints for |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
120 message translators. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
121 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
122 4. Translated Message Files are compiled into binary form (_`MO` files) |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
123 and stored in ``locale`` directory (but not kept in the source code |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
124 repository, as they may be easily made from PO files). |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
125 See `Compiling Message Catalogs`_ section. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
126 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
127 5. Roundup installer creates runtime locale structure on the file |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
128 system, putting MO files in their appropriate places. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
129 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
130 6. Runtime internationalization (_`I18N`) services use these MO files |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
131 to translate program messages into language selected by current |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
132 Roundup user. Roundup command line interface uses locale name |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
133 set in OS environment variable ``LANGUAGE``, ``LC_ALL``, |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
134 ``LC_MESSAGES``, or ``LANG`` (in that order). Roundup Web User |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
135 Interface uses language selected by currently authenticated user. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
136 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
137 Additional details may be found in `GNU gettext`_ and Python `gettext |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
138 module`_ documentation. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
139 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
140 `Roundup source distribution`_ includes POT and PO files for message |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
141 translators, and also pre-built MO files to facilitate installations |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
142 from source. Roundup binary distribution includes MO files only. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
143 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
144 .. _GNU gettext: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
145 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
146 GNU gettext package |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
147 ^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
148 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
149 This chapter is full of references to GNU `gettext package`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
150 GNU gettext is a "must have" for nearly all steps of internationalizing |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
151 any program, and it's manual is definetely a recommended reading |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
152 for people involved in `I18N`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
153 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
154 There are GNU gettext ports to all major OS platforms. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
155 Windows binaries are available from `GNU mirror sites`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
156 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
157 Roundup does not use GNU gettext at runtime, but it's tools |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
158 are used for `extracting translatable messages`_, `compiling |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
159 message catalogs`_ and, optionally, for `translating messages`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
160 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
161 Note that ``gettext`` package in some OS distributions means just |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
162 runtime tools and libraries. In such cases gettext development tools |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
163 are usually distributed in separate package named ``gettext-devel``. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
164 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
165 Marking Strings for Translation |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
166 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
167 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
168 Strings that need translation must be marked in the source code. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
169 Following subsections explain how this is done in different cases. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
170 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
171 If translatable string is used as a format string, it is recommended |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
172 to always use *named* format specifiers:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
173 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
174 _('Index of %(classname)s') % locals() |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
175 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
176 This helps translators to better understand the context of the |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
177 message and, with Python formatting, remove format specifier altogether |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
178 (which is sometimes useful, especially in singular cases of `Plural Forms`_). |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
179 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
180 When there is more than one format specifier in the translatable |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
181 format string, named format specifiers **must** be used almost always, |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
182 because translation may require different order of items. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
183 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
184 It is better to *not* mark for translation strings that are not |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
185 locale-dependent, as this makes it more difficult to keep track |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
186 of translation completeness. For example, string ``</ol></body></html>`` |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
187 (in ``index()`` method of the request handler in ``roundup_server`` |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
188 script) has no human readable parts at all, and needs no translations. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
189 Such strings are left untranslated in PO files, and are reported |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
190 as such by PO status checkers (e.g. ``msgfmt --statistics``). |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
191 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
192 Command Line Interfaces |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
193 ~~~~~~~~~~~~~~~~~~~~~~~ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
194 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
195 Scripts and routines run from the command line use "static" language |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
196 defined by environment variables recognized by ``gettext`` module |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
197 from Python library (``LANGUAGE``, ``LC_ALL``, ``LC_MESSAGES``, and |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
198 ``LANG``). Primarilly, these are ``roundup-admin`` script and |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
199 ``admin.py`` module, but also help texts and startup error messages |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
200 in other scripts and their supporting modules. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
201 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
202 For these interfaces, Python ``gettext`` engine must be initialized |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
203 to use Roundup message catalogs. This is normally done by including |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
204 the following line in the module imports:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
205 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
206 from i18n import _, ngettext |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
207 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
208 Simple translations are automatically marked by calls to builtin |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
209 message translation function ``_()``:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
210 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
211 print _("This message is translated") |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
212 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
213 Translations for messages whose grammatical depends on a number |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
214 must be done by ``ngettext()`` function:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
215 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
216 print ngettext("Nuked %i file", "Nuked %i files", number_of_files_nuked) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
217 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
218 Deferred Translations |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
219 ~~~~~~~~~~~~~~~~~~~~~ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
220 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
221 Sometimes translatable strings appear in the source code in untranslated |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
222 form [#note_admin.py]_ and must be translated elsewhere. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
223 Example:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
224 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
225 for meal in ("spam", "egg", "beacon"): |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
226 print _(meal) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
227 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
228 In such cases, strings must be marked for translation without actual |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
229 call to the translating function. To mark these strings, we use Python |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
230 feature of automatic concatenation of adjacent strings and different |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
231 types of string quotes:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
232 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
233 strings_to_translate = ( |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
234 ''"This string will be translated", |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
235 ""'me too', |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
236 ''r"\raw string", |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
237 ''""" |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
238 multiline string""" |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
239 ) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
240 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
241 .. [#note_admin.py] In current Roundup sources, this feature is |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
242 extensively used in the ``admin`` module using method docstrings |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
243 as help messages. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
244 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
245 Web User Interface |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
246 ~~~~~~~~~~~~~~~~~~ |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
247 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
248 For Web User Interface, translation services are provided by Client |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
249 object. Action classes have methods ``_()`` and ``gettext()``, |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
250 delegating translation to the Client instance. In HTML templates, |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
251 translator object is available as context variable ``i18n``. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
252 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
253 HTML templates have special markup for translatable strings. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
254 The syntax for this markup is defined on `ZPTInternationalizationSupport`_ |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
255 page. Roundup translation service currently ignores values for |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
256 ``i18n:domain``, ``i18n:source`` and ``i18n:target``. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
257 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
258 Template markup examples: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
259 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
260 * simplest case:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
261 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
262 <div i18n:translate=""> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
263 Say |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
264 no |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
265 more! |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
266 </div> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
267 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
268 this will result in msgid ``"Say no more!"``, with all leading and |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
269 trailing whitespace stripped, and inner blanks replaced with single |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
270 space character. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
271 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
272 * using variable slots:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
273 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
274 <div i18n:translate=""> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
275 And now...<br/> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
276 No.<span tal:replace="number" i18n:name="slideNo" /><br/> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
277 THE LARCH |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
278 </div> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
279 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
280 Msgid will be: ``"And now...<br /> No.${slideNo}<br /> THE LARCH"``. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
281 Template rendering will use context variable ``number`` (you may use |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
282 any expression) to put instead of ``${slideNo}`` in translation. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
283 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
284 * attribute translation:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
285 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
286 <button name="btn_wink" value=" Wink " i18n:attributes="value" /> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
287 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
288 will translate the caption (and return value) for the "wink" button. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
289 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
290 * explicit msgids. Sometimes it may be useful to specify msgid |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
291 for the element translation explicitely, like this:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
292 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
293 <span i18n:translate="know what i mean?">this text is ignored</span> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
294 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
295 When rendered, element contents will be replaced by translation |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
296 of the string specified in ``i18n:translate`` attribute. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
297 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
298 * ``i18n`` in `TALES`_. You may translate strings in `TALES`_ python |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
299 expressions:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
300 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
301 <span tal:replace="python: i18n.gettext('Oh, wicked.')" /> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
302 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
303 * plural forms. There is no markup for plural forms in `TAL`_ i18n. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
304 You must use python expression for that:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
305 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
306 <span tal:replace="python: i18n.ngettext( |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
307 'Oh but it\'s only %i shilling.', |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
308 'Oh but it\'s only %i shillings.', |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
309 fine) % fine" |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
310 /> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
311 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
312 Extracting Translatable Messages |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
313 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
314 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
315 The most common tool for message extraction is ``xgettext`` utility |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
316 from `GNU gettext package`_. Unfortunately, this utility has no means |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
317 of `Deferred Translations`_ in Python sources. There is ``xpot`` tool |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
318 from Francois Pinard free `PO utilities`_ that allows to mark strings |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
319 for deferred translations, but it does not handle `plural forms`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
320 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
321 Roundup overcomes these limitations by using both of these utilities. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
322 This means that you need both `GNU gettext`_ tools and `PO utilities`_ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
323 to build the Message Template File yourself. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
324 |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
325 Latest Message Template File is kept in the source code repository |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
326 and distributed with `Roundup Source`_. |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
327 If you wish to rebuild the template yourself, |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
328 make sure that you have both ``xpot`` and ``xgettext`` installed and |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
329 just run ``gmake`` (or ``make``, if you are on a `GNU`_ system like |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
330 `linux`_ or `cygwin`_) in the ``locale`` directory. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
331 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
332 For on-site i18n, Roundup provides command-line utility:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
333 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
334 roundup-gettext <tracker_home> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
335 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
336 extracting translatable messages from tracker's html templates. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
337 This utility creates message template file ``messages.pot`` in |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
338 ``locale`` subdirectory of the tracker home directory. Translated |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
339 messages may be put in *locale*.po files (where *locale* is selected |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
340 locale name) in the same directory, e.g.: ``locale/ru.po``. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
341 These message catalogs are searched prior to system-wide translations |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
342 kept in the ``share`` directory. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
343 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
344 Translating Messages |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
345 ^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
346 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
347 Gettext Message File (`PO`_ file) is a plain text file, that can be created |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
348 by simple copying ``roundup.pot`` to new .po file, like this:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
349 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
350 $ cp roundup.pot ru.po |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
351 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
352 The name of PO file is target locale name, usually just 2-letter language |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
353 code (``ru`` for Russian in the above example). Alternatively, PO file |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
354 may be initialized by ``msginit`` utility from `GNU gettext`_ tools:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
355 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
356 $ msginit -i roundup.pot |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
357 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
358 ``msginit`` will check your current locale, and initialize the header |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
359 entry, setting language name, rules for `plural forms`_ and, if available, |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
360 translator's name and email address. The name for PO file is also chosen |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
361 based on current locale. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
362 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
363 Next, you will need to edit this file, filling all ``msgstr`` lines with |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
364 translations of the above ``msgid`` entries. PO file is a plain text |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
365 file that can be edited with any text editor. However, there are several |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
366 tools that may help you with this process: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
367 |
|
3626
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
368 - `poEdit`_ by Vaclav Slavik. Very nice cross-platform GUI editor. |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
369 |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
370 - `KBabel`_. Being part of `KDE`_, it works in X windows only. |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
371 At the first glance looks pretty hairy, with all bells and whistles. |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
372 Haven't had much experience with it, though. |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
373 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
374 - ``po-mode`` for `emacs`_. One of `GNU gettext`_ tools. Very handy, |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
375 definitely recommended if you are comfortable with emacs. Cannot |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
376 handle `plural forms`_ per se, but allows to edit them in simple |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
377 text mode. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
378 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
379 - `po filetype plugin`_ for `vim`_. Does not do as much as ``po-mode``, |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
380 but helps in finding untranslated and fuzzy strings, and checking |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
381 code references. Please contact `alexander smishlajev`_ if you |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
382 prefer this, as i have patched this plugin a bit. I have also |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
383 informed the original plugin author about these changes, but got |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
384 no reply so far. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
385 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
386 Compiling Message Catalogs |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
387 ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
388 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
389 Message catalogs (`PO`_ files) must be compiled into binary form |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
390 (`MO`_ files) before they can be used in the application. This |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
391 compilation is handled by ``msgfmt`` utility from `GNU gettext`_ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
392 tools. ``GNUmakefile`` in the ``locale`` directory automatically |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
393 compiles all existing message catalogs after updating them from |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
394 Roundup source files. If you wish to rebuild an individual `MO`_ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
395 file without making everything else, you may, for example:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
396 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
397 $ msgfmt --statistics -o ru.mo ru.po |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
398 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
399 This way, message translators can check their `PO`_ files without |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
400 extracting strings from source. (Note: String extraction requires |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
401 additional utility that is not part of `GNU gettext`_. See `Extracting |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
402 Translatable Messages`_.) |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
403 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
404 At run time, Roundup automatically compiles message catalogs whenever |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
405 `PO`_ file is changed. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
406 |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
407 .. _`Customising Roundup`: customizing.html |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
408 .. _`Roundup's Design Document`: spec.html |
|
688
b38f4f95bffd
More doc tweaks
Richard Jones <richard@users.sourceforge.net>
parents:
686
diff
changeset
|
409 .. _`implementation notes`: implementation.html |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
410 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
411 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
412 .. _External hyperlink targets: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
413 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
414 .. _alexander smishlajev: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
415 .. _als: http://sourceforge.net/users/a1s/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
416 .. _cygwin: http://www.cygwin.com/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
417 .. _emacs: http://www.gnu.org/software/emacs/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
418 .. _gettext package: http://www.gnu.org/software/gettext/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
419 .. _gettext module: http://docs.python.org/lib/module-gettext.html |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
420 .. _GNU: http://www.gnu.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
421 .. _GNU mirror sites: http://www.gnu.org/prep/ftp.html |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
422 .. _KBabel: http://i18n.kde.org/tools/kbabel/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
423 .. _KDE: http://www.kde.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
424 .. _linux: http://www.linux.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
425 .. _Plural Forms: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
426 http://www.gnu.org/software/gettext/manual/html_node/gettext_150.html |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
427 .. _po filetype plugin: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
428 http://vim.sourceforge.net/scripts/script.php?script_id=695 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
429 .. _PO utilities: http://po-utils.progiciels-bpi.ca/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
430 .. _poEdit: http://poedit.sourceforge.net/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
431 .. _Roundup Source: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
432 .. _Roundup source distribution: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
433 .. _Roundup binary distribution: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
434 http://sourceforge.net/project/showfiles.php?group_id=31577 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
435 .. _TAL: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
436 .. _Template Attribute Language: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
437 http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TAL%20Specification%201.4 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
438 .. _TALES: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
439 .. _Template Attribute Language Expression Syntax: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
440 http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TALES%20Specification%201.3 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
441 .. _vim: http://www.vim.org/ |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
442 .. _ZPTInternationalizationSupport: http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ZPTInternationalizationSupport |
|
3643
ff234c87b28a
link to feature tracker
Richard Jones <richard@users.sourceforge.net>
parents:
3626
diff
changeset
|
443 |
