annotate roundup/i18n.py @ 2355:6c2d8183a235

export unicode functions and DOMAIN name; added ngettext emulation for earlier python versions (2.1, 2.2); added get_translation() function to find different translations at runtime
author Alexander Smishlajev <a1s@users.sourceforge.net>
date Sat, 22 May 2004 14:40:17 +0000
parents 27e4478df7c0
children c2db20eca3fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 #
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
18 # $Id: i18n.py,v 1.7 2004-05-22 14:40:17 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
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
40 import errno
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
41
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
42 # Roundup text domain
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
43 DOMAIN = "roundup"
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
44
399
96b0db9ad389 Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff changeset
45 # 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
46 # sure we survive this anyway
96b0db9ad389 Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff changeset
47 try:
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
48 import gettext as gettext_module
399
96b0db9ad389 Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff changeset
49 except ImportError:
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
50 gettext_module = None
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
51
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
52 # use or emulate features of gettext_module
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
53 if not gettext_module:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
54 # no gettext engine available.
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
55 # implement emulation for Translations class
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
56 # and translation() function
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
57 class RoundupNullTranslations:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
58 """Dummy Translations class
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
59
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
60 Only methods used by Roundup are implemented.
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
61
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
62 """
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
63 def add_fallback(self, fallback):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
64 pass
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
65 def gettext(self, text):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
66 return text
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
67 def ugettext(self, text):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
68 return unicode(text)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
69 def ngettext(self, singular, plural, count):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
70 if count == 1: return singular
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
71 return plural
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
72 def ungettext(self, singular, plural, count):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
73 return unicode(self.ngettext(singular, plural, count))
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
74
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
75 RoundupTranslations = RoundupNullTranslations
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
76
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
77 def translation(domain, localedir=None, languages=None, class_=None):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
78 """Always raise IOError (no message catalogs available)"""
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
79 raise IOError(errno.ENOENT,
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
80 "No translation file found for domain", domain)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
81
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
82 elif not hasattr(gettext_module.GNUTranslations, "ngettext"):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
83 # prior to 2.3, there was no plural forms. mix simple emulation in
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
84 class PluralFormsMixIn:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
85 def ngettext(self, singular, plural, count):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
86 if count == 1:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
87 _msg = singular
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
88 else:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
89 _msg = plural
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
90 return self.gettext(_msg)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
91 def ngettext(self, singular, plural, count):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
92 if count == 1:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
93 _msg = singular
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
94 else:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
95 _msg = plural
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
96 return self.gettext(_msg)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
97 class RoundupNullTranslations(
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
98 gettext_module.NullTranslations, PluralFormsMixIn
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
99 ):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
100 pass
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
101 class RoundupTranslations(
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
102 gettext_module.GNUTranslations, PluralFormsMixIn
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
103 ):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
104 pass
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
105 # lookup function is available
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
106 translation = gettext_module.translation
399
96b0db9ad389 Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff changeset
107 else:
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
108 # gettext_module has everything needed
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
109 RoundupNullTranslations = gettext_module.NullTranslations
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
110 RoundupTranslations = gettext_module.GNUTranslations
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
111 translation = gettext_module.translation
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
112
399
96b0db9ad389 Added dummy hooks for I18N...
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff changeset
113
2355
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
114 def get_translation(language=None, domain=DOMAIN):
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
115 """Return Translation object for given language and domain"""
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
116 if language:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
117 _languages = [language]
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
118 else:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
119 # use OS environment
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
120 _languages = None
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
121 # except for english ("en") language, add english fallback if available
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
122 try:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
123 _fallback = translation(domain=domain, languages=["en"],
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
124 class_=RoundupTranslations)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
125 except IOError:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
126 # no .mo files found
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
127 _fallback = None
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
128 # get the translation
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
129 try:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
130 _translation = translation(domain=domain, languages=_languages,
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
131 class_=RoundupTranslations)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
132 except IOError:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
133 _translation = None
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
134 # see what's found
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
135 if _translation and _fallback:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
136 _translation.add_fallback(_fallback)
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
137 elif _fallback:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
138 _translation = _fallback
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
139 elif not _translation:
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
140 _translation = RoundupNullTranslations()
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
141 return _translation
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
142
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
143 # static translations object
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
144 translation = get_translation()
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
145 # static translation functions
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
146 _ = gettext = translation.gettext
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
147 ugettext = translation.ugettext
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
148 ngettext = translation.ngettext
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
149 ungettext = translation.ungettext
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
150
6c2d8183a235 export unicode functions and DOMAIN name;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2326
diff changeset
151 # vim: set filetype=python sts=4 sw=4 et si

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