Mercurial > p > roundup > code
annotate I18N_PROGRESS.txt @ 2349:b43efe461b3e
update PageTemplates to latest Zope codebase
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 21 May 2004 05:56:46 +0000 |
| parents | 52ed57de26db |
| children | 75049c2f7cfc |
| rev | line source |
|---|---|
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
1 ================================== |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
2 Roundup Internationalization Notes |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
3 ================================== |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
4 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
5 :Version: $Revision: 1.8 $ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
6 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
7 Overview |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
8 -------- |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
9 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
10 How stuff works: |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
11 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
12 1. Strings that may require translation (messages in human language) |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
13 are marked in the source code. This step is discussed in |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
14 `Marking Strings for Translation`_ section. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
15 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
16 2. These strings are all extracted into Message Template File |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
17 ``locale/roundup.pot`` (POT file). See `Extracting Translatable |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
18 Messages`_ below. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
19 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
20 3. Language teams use POT file to make Message Files for national |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
21 languages (PO files). All PO files for Roundup are kept in |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
22 the ``locale`` directory. Names of these files are target |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
23 locale names, usually just 2-letter language codes. `Translating |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
24 Messages`_ section of this document gives useful hints for |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
25 message translators. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
26 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
27 4. Translated Message Files are compiled into binary form (MO files) |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
28 and stored in ``locale`` directory (but not kept in the `Roundup |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
29 CVS`_ repository, as they may be easily made from PO files). |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
30 See `Compiling Message Catalogs`_ section. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
31 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
32 5. Roundup installer creates runtime locale structure on the file |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
33 system, putting MO files in their appropriate places. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
34 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
35 6. Runtime internationalization (I18N) services use these MO files |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
36 to translate program messages into language selected by current |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
37 Roundup user. Roundup command line interface uses locale name |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
38 set in OS environment variable ``LANGUAGE``, ``LC_ALL``, |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
39 ``LC_MESSAGES``, or ``LANG`` (in that order). Roundup Web User |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
40 Interface uses language selected by currentluy authenticated user. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
41 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
42 Additional details may be found in `GNU gettext`_ and Python `gettext |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
43 module`_ documentation. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
44 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
45 `Roundup source distribution`_ includes POT and PO files for message |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
46 translators, and also pre-built MO files to facilitate installations |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
47 from source. `Roundup binary distribution`_ includes MO files only. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
48 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
49 .. _GNU gettext: |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
50 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
51 GNU gettext package |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
52 ------------------- |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
53 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
54 This document is full of references to `GNU`_ `gettext package`_. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
55 GNU gettext is a "must have" for nearly all steps of internationalizing |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
56 any program, and it's manual is definetely a recommended reading |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
57 for people involved in I18N. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
58 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
59 There are GNU gettext ports to all major OS platforms. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
60 Windows binaries are available from ``GNU mirror sites``. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
61 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
62 Roundup does not use GNU gettext at runtime, but it's tools |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
63 are used for `extracting translatable messages`_, `compiling |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
64 message catalogs`_ and, optionally, for `translating messages`_. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
65 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
66 Note that ``gettext`` package in some OS distributions (e.g. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
67 `FreeBSD`_) means just runtime libraries. Development tools |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
68 are usually distributed in separate package named ``gettext-devel``. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
69 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
70 Marking Strings for Translation |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
71 ------------------------------- |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
72 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
73 Strings that need translation must be marked in the source code. |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
74 Following sections of this chapter explain how this is done in |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
75 different cases. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
76 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
77 Current status of the string marks in Roundup core files is shown |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
78 in `I18 Status`_ section at the end of this document. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
79 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
80 If translatable string is used as a format string, it is recommended |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
81 to always use named format specifiers:: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
82 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
83 _('Index of %(classname)s') % locals() |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
84 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
85 This helps translators to better understand the context of the |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
86 message and, in Python, remove format specifier altogether (which |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
87 is sometimes useful, especially in singular cases of `Plural Forms`_). |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
88 When there is more than one format specifier in the translatable |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
89 format string, named format specifiers *must* be used almost always, |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
90 because translation may require different order of items. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
91 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
92 It is better to *not* mark for translation strings that are not |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
93 locale-dependent, as this makes it more difficult to keep track |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
94 of translation completeness. For example: following string in |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
95 ``index()`` method of the request handler in ``roundup_server`` |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
96 script:: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
97 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
98 </ol></body></html> |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
99 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
100 has no human readable parts at all, and needs no translations. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
101 These strings are left untranslated in PO files, and are reported |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
102 as such by PO status checkers (e.g. ``msgfmt --statistics``). |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
103 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
104 Command Line Interfaces |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
105 ~~~~~~~~~~~~~~~~~~~~~~~ |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
106 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
107 Scripts and routines run from the command line use "static" language |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
108 defined by environment variables recognized by ``gettext`` module |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
109 from Python library (``LANGUAGE``, ``LC_ALL``, ``LC_MESSAGES``, and |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
110 ``LANG``). Primarilly, these are ``roundup-admin`` script and |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
111 ``admin.py`` module, but also help texts and startup error messages |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
112 in other scripts and their supporting modules. |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
113 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
114 For these interfaces, Python ``gettext`` engine must be initialized |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
115 to use Roundup message catalogs. This is normally done by including |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
116 the following line in the module imports:: |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
117 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
118 from i18n import _, ngettext |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
119 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
120 Simple translations are automatically marked by calls to builtin |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
121 message translation function ``_()``:: |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
122 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
123 print _("This message is translated") |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
124 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
125 Translations for messages whose grammatical depends on a number |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
126 must be done by ``ngettext()`` function:: |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
127 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
128 print ngettext("Nuked %i file", "Nuked %i files", number_of_files_nuked) |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
129 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
130 User Interfaces |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
131 ~~~~~~~~~~~~~~~ |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
132 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
133 *(not yet)* |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
134 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
135 This includes Mail Gateway and Web User Interfaces, where translation |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
136 depends on the language of current Roundup User. These translations |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
137 will be done by the tracker configuration object. Translatable strings |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
138 will be automatically marked by calls to the ``_()`` and ``ngettext()`` |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
139 methods of that object:: |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
140 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
141 self.config._("This message is translated") |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
142 self.config.ngettext("Nuked %i file", "Nuked %i files", |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
143 number_of_files_nuked) |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
144 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
145 Deferred Translations |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
146 ~~~~~~~~~~~~~~~~~~~~~ |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
147 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
148 Sometimes translatable strings appear in the source code in untranslated |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
149 form [#note_admin.py]_ and must be translated elsewhere. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
150 Example:: |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
151 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
152 for meal in ("spam", "egg", "beacon"): |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
153 print _(meal) |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
154 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
155 In such cases, strings must be marked for translation without actual |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
156 call to the translating function. To mark these strings, we use Python |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
157 feature of automatical concatenation of adjacent strings and different |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
158 types of string quotes:: |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
159 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
160 strings_to_translate = ( |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
161 ''"This string will be translated", |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
162 ""'me too', |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
163 ''r"\raw string", |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
164 ''""" |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
165 multiline string""" |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
166 ) |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
167 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
168 .. [#note_admin.py] In current Roundup sources, this feature is |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
169 extensively used in the ``admin`` module using method docstrings |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
170 as help messages. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
171 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
172 Extracting Translatable Messages |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
173 -------------------------------- |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
174 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
175 The most common tool for message extraction is ``xgettext`` utility |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
176 from `GNU gettext package`_. Unfortunately, this utility has no means |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
177 of `Deferred Translations`_ in Python sources. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
178 There is ``xpot`` tool from Francois Pinard free `PO utilities`_ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
179 that allows to mark strings for `deferred translations`_, but |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
180 it does not handle `plural forms`_. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
181 Roundup overcomes these limitations by using both of these utilities. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
182 This means that you need both `GNU gettext`_ tools and `PO utilities`_ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
183 to build the Message Template File yourself. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
184 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
185 Latest Message Template File is kept in `Roundup CVS`_ and distributed |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
186 with `Roundup Source`_. |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
187 If you wish to rebuild the template yourself, make sure that you have |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
188 both ``xpot`` and ``xgettext`` installed and just run ``gmake`` (or |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
189 ``make``, if you are on a `GNU`_ system like `linux`_ or `cygwin`_) |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
190 in the ``locale`` directory. |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
191 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
192 Translating Messages |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
193 -------------------- |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
194 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
195 FIXME! |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
196 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
197 Compiling Message Catalogs |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
198 -------------------------- |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
199 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
200 FIXME! |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
201 |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
202 I18 Status |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
203 ---------- |
|
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
204 |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
205 This list has been generated using the MANIFEST file. We should be able to |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
206 write a simple script to compare the two and make sure that all MANIFEST |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
207 files appear in here. |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
208 |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
209 This list was last updated Sat Jan 5 02:35:10 2002 UTC. |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
210 |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
211 THESE FILES DO NOT USE _() |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
212 ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
213 roundup/hyperdb.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
214 roundup/i18n.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
215 roundup/init.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
216 roundup/install_util.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
217 roundup/instance.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
218 roundup/mailgw.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
219 roundup/password.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
220 roundup/roundupdb.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
221 roundup/templatebuilder.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
222 roundup/backends/__init__.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
223 roundup/backends/back_anydbm.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
224 roundup/backends/back_bsddb.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
225 roundup/backends/back_bsddb3.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
226 roundup/templates/__init__.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
227 roundup/templates/classic/__init__.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
228 roundup/templates/classic/dbinit.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
229 roundup/templates/classic/htmlbase.py |
|
1092
e5826025eeb7
more Log removal
Richard Jones <richard@users.sourceforge.net>
parents:
488
diff
changeset
|
230 roundup/templates/classic/config.py |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
231 roundup/templates/classic/interfaces.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
232 roundup/templates/classic/detectors/__init__.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
233 roundup/templates/classic/detectors/nosyreaction.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
234 |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
235 |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
236 THESE FILES DO USE _() |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
237 ~~~~~~~~~~~~~~~~~~~~~~ |
| 486 | 238 roundup-admin |
| 239 roundup-mailgw | |
| 240 roundup-server | |
| 241 cgi-bin/roundup.cgi | |
| 242 roundup/__init__.py | |
| 243 roundup/admin.py | |
|
487
2f4c37d28108
I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents:
486
diff
changeset
|
244 roundup/date.py |
|
1092
e5826025eeb7
more Log removal
Richard Jones <richard@users.sourceforge.net>
parents:
488
diff
changeset
|
245 roundup/cgi/cgitb.py |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
246 |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
247 |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
248 WE DON'T CARE ABOUT THESE FILES |
|
2309
29f4f349a1f5
concise howtos
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1092
diff
changeset
|
249 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
422
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
250 BUILD.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
251 CHANGES.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
252 INSTALL.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
253 README.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
254 setup.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
255 doc/implementation.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
256 doc/index.html |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
257 doc/overview.html |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
258 doc/spec.html |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
259 doc/images/edit.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
260 doc/images/hyperdb.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
261 doc/images/logo-acl-medium.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
262 doc/images/logo-codesourcery-medium.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
263 doc/images/logo-software-carpentry-standard.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
264 doc/images/roundup-1.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
265 doc/images/roundup.png |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
266 roundup/templates/classic/html/file.index |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
267 roundup/templates/classic/html/file.newitem |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
268 roundup/templates/classic/html/issue.filter |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
269 roundup/templates/classic/html/issue.index |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
270 roundup/templates/classic/html/issue.item |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
271 roundup/templates/classic/html/msg.index |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
272 roundup/templates/classic/html/msg.item |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
273 roundup/templates/classic/html/style.css |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
274 roundup/templates/classic/html/user.index |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
275 roundup/templates/classic/html/user.item |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
276 test/README.txt |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
277 test/__init__.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
278 test/test_dates.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
279 test/test_db.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
280 test/test_init.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
281 test/test_mailsplit.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
282 test/test_multipart.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
283 test/test_schema.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
284 test/test_templating.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
285 test/unittest.py |
|
0f9a59c90e53
Converted roundup/cgi_client.py to use _()
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
286 |
|
2343
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
287 .. External hyperlink targets |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
288 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
289 .. _cygwin: http://www.cygwin.com/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
290 .. _emacs: http://www.gnu.org/software/emacs/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
291 .. _gettext package: http://www.gnu.org/software/gettext/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
292 .. _gettext module: http://docs.python.org/lib/module-gettext.html |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
293 .. _GNU: http://www.gnu.org/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
294 .. _GNU mirror sites: http://www.gnu.org/prep/ftp.html |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
295 .. _FreeBSD: http://www.freebsd.org/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
296 .. _linux: http://www.linux.org/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
297 .. _Plural Forms: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
298 http://www.gnu.org/software/gettext/manual/html_node/gettext_150.html |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
299 .. _po filetype plugin: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
300 http://vim.sourceforge.net/scripts/script.php?script_id=695 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
301 .. _PO utilities: http://po-utils.progiciels-bpi.ca/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
302 .. _poEdit: http://poedit.sourceforge.net/ |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
303 .. _Roundup CVS: http://sourceforge.net/cvs/?group_id=31577 |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
304 .. _Roundup Source: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
305 .. _Roundup source distribution: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
306 .. _Roundup binary distribution: |
|
52ed57de26db
still incomplete, but much more verbose
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2309
diff
changeset
|
307 http://sourceforge.net/project/showfiles.php?group_id=31577 |
