Skip to content

Commit f273e50

Browse files
author
Alexander Smishlajev
committed
fix vim modeline;
fix name clash between lookup function and translation object; added custom translation class arguments for get_translation()
1 parent 2fc1a7e commit f273e50

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

roundup/i18n.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1616
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1717
#
18-
# $Id: i18n.py,v 1.8 2004-05-22 14:55:07 a1s Exp $
18+
# $Id: i18n.py,v 1.9 2004-07-11 14:16:26 a1s Exp $
1919

2020
"""
2121
RoundUp Internationalization (I18N)
@@ -53,7 +53,7 @@
5353
if not gettext_module:
5454
# no gettext engine available.
5555
# implement emulation for Translations class
56-
# and translation() function
56+
# and find_translation() function
5757
class RoundupNullTranslations:
5858
"""Dummy Translations class
5959
@@ -74,7 +74,7 @@ def ungettext(self, singular, plural, count):
7474

7575
RoundupTranslations = RoundupNullTranslations
7676

77-
def translation(domain, localedir=None, languages=None, class_=None):
77+
def find_translation(domain, localedir=None, languages=None, class_=None):
7878
"""Always raise IOError (no message catalogs available)"""
7979
raise IOError(errno.ENOENT,
8080
"No translation file found for domain", domain)
@@ -103,16 +103,24 @@ class RoundupTranslations(
103103
):
104104
pass
105105
# lookup function is available
106-
translation = gettext_module.translation
106+
find_translation = gettext_module.translation
107107
else:
108108
# gettext_module has everything needed
109109
RoundupNullTranslations = gettext_module.NullTranslations
110110
RoundupTranslations = gettext_module.GNUTranslations
111-
translation = gettext_module.translation
111+
find_translation = gettext_module.translation
112112

113113

114-
def get_translation(language=None, domain=DOMAIN):
115-
"""Return Translation object for given language and domain"""
114+
def get_translation(language=None, domain=DOMAIN,
115+
translation_class=RoundupTranslations,
116+
null_translation_class=RoundupNullTranslations
117+
):
118+
"""Return Translation object for given language and domain
119+
120+
Arguments 'translation_class' and 'null_translation_class'
121+
specify the classes that are instantiated for existing
122+
and non-existing translations, respectively.
123+
"""
116124
if language:
117125
_languages = [language]
118126
else:
@@ -123,15 +131,15 @@ def get_translation(language=None, domain=DOMAIN):
123131
_fallback = None
124132
else:
125133
try:
126-
_fallback = translation(domain=domain, languages=["en"],
127-
class_=RoundupTranslations)
134+
_fallback = find_translation(domain=domain, languages=["en"],
135+
class_=translation_class)
128136
except IOError:
129137
# no .mo files found
130138
_fallback = None
131139
# get the translation
132140
try:
133-
_translation = translation(domain=domain, languages=_languages,
134-
class_=RoundupTranslations)
141+
_translation = find_translation(domain=domain, languages=_languages,
142+
class_=translation_class)
135143
except IOError:
136144
_translation = None
137145
# see what's found
@@ -140,7 +148,7 @@ def get_translation(language=None, domain=DOMAIN):
140148
elif _fallback:
141149
_translation = _fallback
142150
elif not _translation:
143-
_translation = RoundupNullTranslations()
151+
_translation = null_translation_class()
144152
return _translation
145153

146154
# static translations object
@@ -151,4 +159,4 @@ def get_translation(language=None, domain=DOMAIN):
151159
ngettext = translation.ngettext
152160
ungettext = translation.ungettext
153161

154-
# vim: set filetype=python sts=4 sw=4 et si
162+
# vim: set filetype=python sts=4 sw=4 et si :

0 commit comments

Comments
 (0)