Viewing file: FtCore.py (1.76 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
""" Contains various definitions common to modules acquired from 4Suite """
__all__ = ["FtException", "get_translator"]
class FtException(Exception): def __init__(self, errorCode, messages, args): # By defining __str__, args will be available. Otherwise # the __init__ of Exception sets it to the passed in arguments. self.params = args self.errorCode = errorCode self.message = messages[errorCode] % args Exception.__init__(self, self.message, args)
def __str__(self): return self.message
# What follows is used to provide support for I18N in the rest of the # 4Suite-derived packages in PyXML. # # Each sub-package of the top-level "xml" package that contains 4Suite # code is really a separate text domain, but they're all called # '4Suite'. For each domain, a translation object is provided using # message catalogs stored inside the package. The code below defines # a get_translator() function that returns an appropriate gettext # function to be used as _() in the sub-package named by the # parameter. This handles all the compatibility issues related to # Python versions (whether the gettext module can be found) and # whether the message catalogs can actually be found.
def _(msg): return msg
try: import gettext
except (ImportError, IOError): def get_translator(pkg): return _
else: import os
_cache = {} _top = os.path.dirname(os.path.abspath(__file__))
def get_translator(pkg): if not _cache.has_key(pkg): locale_dir = os.path.join(_top, pkg.replace(".", os.sep)) try: f = gettext.translation('4Suite', locale_dir).gettext except IOError: f = _ _cache[pkg] = f return _cache[pkg]
|