Mercurial > p > roundup > code
diff roundup/i18n.py @ 2555:e8b2044d82a6
fix vim modeline;
fix name clash between lookup function and translation object;
added custom translation class arguments for get_translation()
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Sun, 11 Jul 2004 14:16:26 +0000 |
| parents | c2db20eca3fa |
| children | 7c1fbb2b2fc8 |
line wrap: on
line diff
--- a/roundup/i18n.py Tue Jul 06 11:33:57 2004 +0000 +++ b/roundup/i18n.py Sun Jul 11 14:16:26 2004 +0000 @@ -15,7 +15,7 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -# $Id: i18n.py,v 1.8 2004-05-22 14:55:07 a1s Exp $ +# $Id: i18n.py,v 1.9 2004-07-11 14:16:26 a1s Exp $ """ RoundUp Internationalization (I18N) @@ -53,7 +53,7 @@ if not gettext_module: # no gettext engine available. # implement emulation for Translations class - # and translation() function + # and find_translation() function class RoundupNullTranslations: """Dummy Translations class @@ -74,7 +74,7 @@ RoundupTranslations = RoundupNullTranslations - def translation(domain, localedir=None, languages=None, class_=None): + def find_translation(domain, localedir=None, languages=None, class_=None): """Always raise IOError (no message catalogs available)""" raise IOError(errno.ENOENT, "No translation file found for domain", domain) @@ -103,16 +103,24 @@ ): pass # lookup function is available - translation = gettext_module.translation + find_translation = gettext_module.translation else: # gettext_module has everything needed RoundupNullTranslations = gettext_module.NullTranslations RoundupTranslations = gettext_module.GNUTranslations - translation = gettext_module.translation + find_translation = gettext_module.translation -def get_translation(language=None, domain=DOMAIN): - """Return Translation object for given language and domain""" +def get_translation(language=None, domain=DOMAIN, + translation_class=RoundupTranslations, + null_translation_class=RoundupNullTranslations +): + """Return Translation object for given language and domain + + Arguments 'translation_class' and 'null_translation_class' + specify the classes that are instantiated for existing + and non-existing translations, respectively. + """ if language: _languages = [language] else: @@ -123,15 +131,15 @@ _fallback = None else: try: - _fallback = translation(domain=domain, languages=["en"], - class_=RoundupTranslations) + _fallback = find_translation(domain=domain, languages=["en"], + class_=translation_class) except IOError: # no .mo files found _fallback = None # get the translation try: - _translation = translation(domain=domain, languages=_languages, - class_=RoundupTranslations) + _translation = find_translation(domain=domain, languages=_languages, + class_=translation_class) except IOError: _translation = None # see what's found @@ -140,7 +148,7 @@ elif _fallback: _translation = _fallback elif not _translation: - _translation = RoundupNullTranslations() + _translation = null_translation_class() return _translation # static translations object @@ -151,4 +159,4 @@ ngettext = translation.ngettext ungettext = translation.ungettext -# vim: set filetype=python sts=4 sw=4 et si +# vim: set filetype=python sts=4 sw=4 et si :
