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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
238 roundup-admin
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
239 roundup-mailgw
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
240 roundup-server
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
241 cgi-bin/roundup.cgi
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
242 roundup/__init__.py
Richard Jones <richard@users.sourceforge.net>
parents: 423
diff changeset
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

Roundup Issue Tracker: http://roundup-tracker.org/