Mercurial > p > roundup > code
annotate roundup/i18n.py @ 2326:27e4478df7c0
export gettext and ngettext functions
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Tue, 18 May 2004 19:20:47 +0000 |
| parents | 004dff9a159f |
| children | 6c2d8183a235 |
| rev | line source |
|---|---|
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
1 # |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
6 # |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
11 # |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
2302
004dff9a159f
use python gettext engine
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2005
diff
changeset
|
17 # |
|
2326
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
18 # $Id: i18n.py,v 1.6 2004-05-18 19:20:47 a1s Exp $ |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
19 |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
20 """ |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
21 RoundUp Internationalization (I18N) |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
22 |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
23 To use this module, the following code should be used:: |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
24 |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
25 from roundup.i18n import _ |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
26 ... |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
27 print _("Some text that can be translated") |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
28 |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
29 Note that to enable re-ordering of inserted texts in formatting strings |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
30 (which can easily happen if a sentence has to be re-ordered due to |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
31 grammatical changes), translatable formats should use named format specs:: |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
32 |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
33 ... _('Index of %(classname)s') % {'classname': cn} ... |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
34 |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
35 Also, this eases the job of translators since they have some context what |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
36 the dynamic portion of a message really means. |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
37 """ |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
38 __docformat__ = 'restructuredtext' |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
39 |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
40 # first, we try to import gettext; this probably never fails, but we make |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
41 # sure we survive this anyway |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
42 try: |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
43 import gettext |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
44 except ImportError: |
|
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
45 # fall-back to dummy on errors (returning the english text) |
|
2326
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
46 _ = gettext = lambda text: text |
|
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
47 def ngettext(singular, plural, count): |
|
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
48 if count == 1: return singular |
|
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
49 return plural |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
50 else: |
|
2302
004dff9a159f
use python gettext engine
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2005
diff
changeset
|
51 # use roundup messages |
|
004dff9a159f
use python gettext engine
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2005
diff
changeset
|
52 gettext.textdomain("roundup") |
|
2326
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
53 # export gettext functions |
|
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
54 ngettext = gettext.ngettext |
|
27e4478df7c0
export gettext and ngettext functions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2302
diff
changeset
|
55 _ = gettext = gettext.gettext |
|
399
96b0db9ad389
Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
56 |
| 1090 | 57 # vim: set filetype=python ts=4 sw=4 et si |
