Sha256: 94ad8cab5bc5e126668aae08c7fbb8546cf7b7ca5e02e7675d94c78c24690332

Contents?: true

Size: 1.76 KB

Versions: 30

Compression:

Stored size: 1.76 KB

Contents

"""
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]

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
rubyfox-server-2.19.2.0 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.17.3.2 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.17.3.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.17.3.0 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.3.2 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.3.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.0.4 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.0.3 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.0.2 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.0.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.16.0.0 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.7.3 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.6.2 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.6.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.5.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.4.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.13.3.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.12.5.1 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.12.5.0 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py
rubyfox-server-2.12.4.0 lib/rubyfox/server/data/lib/Lib/xml/FtCore.py