Mercurial > p > roundup > code
annotate doc/developers.txt @ 4880:ca692423e401
Different approach to fix XSS in issue2550817
Encapsulate the error/ok message append method as add_ok_message and
add_error_message. The new approach escapes the messages when appending
-- at a point in the code where we still know where the message comes
from. Escaping is the default but can bei turned off. This also fixes
issue2550836 where certain messages may contain links.
Another advantage of the new fix is that users don't need to change
installed trackers and are secure by default.
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Mon, 31 Mar 2014 18:19:23 +0200 |
| parents | ee406f06802b |
| children | 609edf9de0a5 |
| 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 |
|
4730
a3ea93e39e01
doc: Remove context diff requirement for sending patches
anatoly techtonik <techtonik@gmail.com>
parents:
4665
diff
changeset
|
20 - roundup-devel mailing list at |
|
686
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 |
|
4665
ac4ed1b9369f
Website and wiki instructions should be at one place, pointing there from developers.txt.
Bernhard Reiter <bernhard@intevation.de>
parents:
4641
diff
changeset
|
28 The website is in our repository, so is the configuration of the wiki. |
|
ac4ed1b9369f
Website and wiki instructions should be at one place, pointing there from developers.txt.
Bernhard Reiter <bernhard@intevation.de>
parents:
4641
diff
changeset
|
29 Please check the README.txt in the "website" subdirectory |
|
ac4ed1b9369f
Website and wiki instructions should be at one place, pointing there from developers.txt.
Bernhard Reiter <bernhard@intevation.de>
parents:
4641
diff
changeset
|
30 of a current checkout. |
|
4228
f5d7562bed95
update to dev docs
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
31 |
|
4336
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
32 Issue Tracker |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
33 ------------- |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
34 |
|
4637
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
35 The tracker resides on psf.upfronthosting.co.za. |
|
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
36 (2012-07-04) 2048 c4:ad:63:92:1b:c0:4a:35:c8:c5:3e:96:51:c0:88:67 (RSA) |
|
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
37 |
|
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
38 The roundup installation belongs to the user roundup. |
|
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
39 In ~roundup, all trackers are stored and the roundup code itself. |
|
c8ea932c6278
Added ssh hostkey fingerprint for the tracker server.
Bernhard Reiter <bernhard@intevation.de>
parents:
4636
diff
changeset
|
40 roundup is started through /etc/init.d/roundup; |
|
4336
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
41 other parts of the installation are started through |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
42 /etc/init.d/{postgresql-8-1,spambayes,postfix}. |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
43 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
44 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
|
45 tracker is http://psf.upfronthosting.co.za/roundup/meta/ |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
46 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
|
47 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
48 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
|
49 ~roundup/trackers/roundup |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
50 |
|
4636
f338c19b0a6d
closing issue2550762 Minor Documentation fix in doc/developers.txt, thanks to W. Trevor King.
Bernhard Reiter <bernhard@intevation.de>
parents:
4550
diff
changeset
|
51 The configuration is in the "website/issues" section of Roundup's |
|
f338c19b0a6d
closing issue2550762 Minor Documentation fix in doc/developers.txt, thanks to W. Trevor King.
Bernhard Reiter <bernhard@intevation.de>
parents:
4550
diff
changeset
|
52 Mercurical SCM repository and copied manually to the live tracker. |
|
4336
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 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
|
55 |
|
aab5dba70839
notes about the tracker
Richard Jones <richard@users.sourceforge.net>
parents:
4254
diff
changeset
|
56 |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 Small Changes |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 ------------- |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 |
|
4730
a3ea93e39e01
doc: Remove context diff requirement for sending patches
anatoly techtonik <techtonik@gmail.com>
parents:
4665
diff
changeset
|
60 Most small changes can be submitted as patches through the issue |
|
a3ea93e39e01
doc: Remove context diff requirement for sending patches
anatoly techtonik <techtonik@gmail.com>
parents:
4665
diff
changeset
|
61 tracker or sent to `roundup-devel mailing list`_. |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 |
|
4550
b59ba4dda623
remove old website HT file support; alter repository mentioned in developers doc
Richard Jones <richard@users.sourceforge.net>
parents:
4377
diff
changeset
|
64 Source Repository Access |
|
b59ba4dda623
remove old website HT file support; alter repository mentioned in developers doc
Richard Jones <richard@users.sourceforge.net>
parents:
4377
diff
changeset
|
65 ------------------------ |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
67 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
|
68 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
|
69 |
| 935 | 70 |
| 71 Project Rules | |
| 72 ------------- | |
| 73 | |
| 74 Mostly the project follows Guido's Style (though naming tends to be a little | |
| 75 relaxed sometimes). In short: | |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 |
| 935 | 77 - 80 column width code |
| 78 - 4-space indentations | |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
79 - All modules must have an Id line near the top |
| 935 | 80 |
| 81 Other project rules: | |
| 82 | |
| 83 - 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
|
84 where there's missing documentation) and changes to tracker configuration |
| 935 | 85 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
|
86 - 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
|
87 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
|
88 - 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
|
89 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
|
90 - 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
|
91 all unit tests run before committing changes |
| 935 | 92 - 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
|
93 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 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
|
95 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
|
96 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
|
97 |
|
2605
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 Debugging Aids |
|
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
100 -------------- |
|
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
101 |
|
4731
ee406f06802b
doc: Fix debugging link.
anatoly techtonik <techtonik@gmail.com>
parents:
4730
diff
changeset
|
102 See :doc:`debugging <debugging>`. |
|
2605
6e9bd67fefa9
complete transition from HYPERDBDEBUG to new logging
Richard Jones <richard@users.sourceforge.net>
parents:
2409
diff
changeset
|
103 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
104 Internationalization Notes |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
105 -------------------------- |
|
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 How stuff works: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
108 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
109 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
|
110 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
|
111 `Marking Strings for Translation`_ section. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
112 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
113 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
|
114 ``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
|
115 Messages`_ below. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
116 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 message translators. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
123 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
124 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
|
125 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
|
126 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
|
127 See `Compiling Message Catalogs`_ section. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
128 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
129 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
|
130 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
|
131 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
132 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
|
133 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
|
134 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
|
135 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
|
136 ``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
|
137 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
|
138 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
139 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
|
140 module`_ documentation. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
141 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
142 `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
|
143 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
|
144 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
|
145 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
146 .. _GNU gettext: |
|
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 GNU gettext package |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
149 ^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
150 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
151 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
|
152 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
|
153 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
|
154 for people involved in `I18N`_. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
155 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
156 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
|
157 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
|
158 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
159 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
|
160 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
|
161 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
|
162 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
167 Marking Strings for Translation |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
168 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
169 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
170 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
|
171 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
|
172 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
173 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
|
174 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
|
175 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
176 _('Index of %(classname)s') % locals() |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
177 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
178 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
|
179 message and, with Python formatting, remove format specifier altogether |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
180 (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
|
181 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
182 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
|
183 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
|
184 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
|
185 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
186 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
|
187 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
|
188 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
|
189 (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
|
190 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
|
191 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
|
192 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
|
193 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
194 Command Line Interfaces |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
195 ~~~~~~~~~~~~~~~~~~~~~~~ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
196 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
197 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
|
198 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
|
199 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
|
200 ``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
|
201 ``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
|
202 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
|
203 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
204 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
|
205 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
|
206 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
|
207 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
208 from i18n import _, ngettext |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
209 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
210 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
|
211 message translation function ``_()``:: |
|
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 print _("This message is translated") |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
214 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
215 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
|
216 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
|
217 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
218 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
|
219 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
220 Deferred Translations |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
221 ~~~~~~~~~~~~~~~~~~~~~ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
222 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
223 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
|
224 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
|
225 Example:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
226 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
227 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
|
228 print _(meal) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
229 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
230 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
|
231 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
|
232 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
|
233 types of string quotes:: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
234 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
235 strings_to_translate = ( |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
236 ''"This string will be translated", |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
237 ""'me too', |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
238 ''r"\raw 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 multiline string""" |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
241 ) |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
242 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
243 .. [#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
|
244 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
|
245 as help messages. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
246 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
247 Web User Interface |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
248 ~~~~~~~~~~~~~~~~~~ |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
249 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
250 For Web User Interface, translation services are provided by Client |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
251 object. Action classes have methods ``_()`` and ``gettext()``, |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
252 delegating translation to the Client instance. In HTML templates, |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
253 translator object is available as context variable ``i18n``. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
254 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
255 HTML templates have special markup for translatable strings. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
256 The syntax for this markup is defined on `ZPTInternationalizationSupport`_ |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
257 page. Roundup translation service currently ignores values for |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
258 ``i18n:domain``, ``i18n:source`` and ``i18n:target``. |
|
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 Template markup examples: |
|
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 * simplest case:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
263 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
264 <div i18n:translate=""> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
265 Say |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
266 no |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
267 more! |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
268 </div> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
269 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
270 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
|
271 trailing whitespace stripped, and inner blanks replaced with single |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
272 space character. |
|
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 * using variable slots:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
275 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
276 <div i18n:translate=""> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
277 And now...<br/> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
278 No.<span tal:replace="number" i18n:name="slideNo" /><br/> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
279 THE LARCH |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
280 </div> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
281 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
282 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
|
283 Template rendering will use context variable ``number`` (you may use |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
284 any expression) to put instead of ``${slideNo}`` in 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 * attribute translation:: |
|
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 <button name="btn_wink" value=" Wink " i18n:attributes="value" /> |
|
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 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
|
291 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
292 * explicit msgids. Sometimes it may be useful to specify msgid |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
293 for the element translation explicitely, like this:: |
|
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 <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
|
296 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
297 When rendered, element contents will be replaced by translation |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
298 of the string specified in ``i18n:translate`` attribute. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
299 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
300 * ``i18n`` in `TALES`_. You may translate strings in `TALES`_ python |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
301 expressions:: |
|
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 <span tal:replace="python: i18n.gettext('Oh, wicked.')" /> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
304 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
305 * 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
|
306 You must use python expression for that:: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
307 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
308 <span tal:replace="python: i18n.ngettext( |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
309 'Oh but it\'s only %i shilling.', |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
310 'Oh but it\'s only %i shillings.', |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
311 fine) % fine" |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
312 /> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
313 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
314 Extracting Translatable Messages |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
315 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
316 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
317 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
|
318 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
|
319 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
|
320 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
|
321 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
|
322 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
323 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
|
324 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
|
325 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
|
326 |
|
4254
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
327 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
|
328 and distributed with `Roundup Source`_. |
|
8d3582271a99
Minor update of doc/developers.txt...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4228
diff
changeset
|
329 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
|
330 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
|
331 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
|
332 `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
|
333 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
334 For on-site i18n, Roundup provides command-line utility:: |
|
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 roundup-gettext <tracker_home> |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
337 |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
338 extracting translatable messages from tracker's html templates. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
339 This utility creates message template file ``messages.pot`` in |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
340 ``locale`` subdirectory of the tracker home directory. Translated |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
341 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
|
342 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
|
343 These message catalogs are searched prior to system-wide translations |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
344 kept in the ``share`` directory. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
345 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
346 Translating Messages |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
347 ^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
348 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
349 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
|
350 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
|
351 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
352 $ cp roundup.pot ru.po |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
353 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
354 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
|
355 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
|
356 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
|
357 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
358 $ msginit -i roundup.pot |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
359 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
360 ``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
|
361 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
|
362 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
|
363 based on current locale. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
364 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
365 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
|
366 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
|
367 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
|
368 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
|
369 |
|
3626
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
370 - `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
|
371 |
|
3e00e0110e64
removed note that poEdit cannot handle plural forms - it can now
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2921
diff
changeset
|
372 - `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
|
373 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
|
374 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
|
375 |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
376 - ``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
|
377 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
|
378 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
|
379 text mode. |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
380 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
381 - `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
|
382 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
|
383 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
|
384 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
|
385 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
|
386 no reply so far. |
|
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 Compiling Message Catalogs |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
389 ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
390 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
391 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
|
392 (`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
|
393 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
|
394 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
|
395 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
|
396 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
|
397 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
|
398 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
399 $ 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
|
400 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
401 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
|
402 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
|
403 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
|
404 Translatable Messages`_.) |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
405 |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
406 At run time, Roundup automatically compiles message catalogs whenever |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
407 `PO`_ file is changed. |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
408 |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
409 .. _`Customising Roundup`: customizing.html |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
410 .. _`Roundup's Design Document`: spec.html |
|
688
b38f4f95bffd
More doc tweaks
Richard Jones <richard@users.sourceforge.net>
parents:
686
diff
changeset
|
411 .. _`implementation notes`: implementation.html |
|
2353
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
412 |
|
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 .. _External hyperlink targets: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
415 |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
416 .. _alexander smishlajev: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
417 .. _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
|
418 .. _cygwin: http://www.cygwin.com/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
419 .. _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
|
420 .. _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
|
421 .. _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
|
422 .. _GNU: http://www.gnu.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
423 .. _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
|
424 .. _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
|
425 .. _KDE: http://www.kde.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
426 .. _linux: http://www.linux.org/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
427 .. _Plural Forms: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
428 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
|
429 .. _po filetype plugin: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
430 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
|
431 .. _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
|
432 .. _poEdit: http://poedit.sourceforge.net/ |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
433 .. _Roundup Source: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
434 .. _Roundup source distribution: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
435 .. _Roundup binary distribution: |
|
bf3f75134e03
i18n notes brought here from ../I18N_PROGRESS.txt
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2301
diff
changeset
|
436 http://sourceforge.net/project/showfiles.php?group_id=31577 |
|
4730
a3ea93e39e01
doc: Remove context diff requirement for sending patches
anatoly techtonik <techtonik@gmail.com>
parents:
4665
diff
changeset
|
437 .. _roundup-devel mailing list: |
|
a3ea93e39e01
doc: Remove context diff requirement for sending patches
anatoly techtonik <techtonik@gmail.com>
parents:
4665
diff
changeset
|
438 http://lists.sourceforge.net/mailman/listinfo/roundup-devel |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
439 .. _TAL: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
440 .. _Template Attribute Language: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
441 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
|
442 .. _TALES: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
443 .. _Template Attribute Language Expression Syntax: |
|
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
444 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
|
445 .. _vim: http://www.vim.org/ |
|
2832
47766d279878
Web UI i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2605
diff
changeset
|
446 .. _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
|
447 |
