| import os |
| import gettext |
| |
| def get_qualified_path(name): |
| """Return a more qualified path to name""" |
| import sys |
| import os |
| path = sys.path |
| try: |
| path = [os.path.dirname(__file__)] + path |
| except NameError: |
| pass |
| for dir in path: |
| fullname = os.path.join(dir, name) |
| if os.path.exists(fullname): |
| return fullname |
| return name |
| |
| # Test basic interface |
| os.environ['LANGUAGE'] = 'xx' |
| |
| mofile = get_qualified_path('xx') |
| localedir = os.path.dirname(mofile) |
| |
| print 'installing gettext' |
| gettext.install() |
| |
| print _('calling bindtextdomain with localedir %s') % localedir |
| print gettext.bindtextdomain('gettext', localedir) |
| print gettext.bindtextdomain() |
| |
| print gettext.textdomain('gettext') |
| print gettext.textdomain() |
| |
| # test some translations |
| print _(u'mullusk') |
| print _(r'Raymond Luxury Yach-t') |
| print _(ur'nudge nudge') |
| |
| # double quotes |
| print _(u"mullusk") |
| print _(r"Raymond Luxury Yach-t") |
| print _(ur"nudge nudge") |
| |
| # triple single quotes |
| print _(u'''mullusk''') |
| print _(r'''Raymond Luxury Yach-t''') |
| print _(ur'''nudge nudge''') |
| |
| # triple double quotes |
| print _(u"""mullusk""") |
| print _(r"""Raymond Luxury Yach-t""") |
| print _(ur"""nudge nudge""") |
| |
| # multiline strings |
| print _('''This module provides internationalization and localization |
| support for your Python programs by providing an interface to the GNU |
| gettext message catalog library.''') |
| |
| print gettext.dgettext('gettext', 'nudge nudge') |
| |
| # dcgettext |
| ##import locale |
| ##if gettext.dcgettext('gettext', 'nudge nudge', |
| ## locale.LC_MESSAGES) <> 'wink wink': |
| ## print _('dcgettext failed') |
| |
| # test the alternative interface |
| fp = open(os.path.join(mofile, 'LC_MESSAGES', 'gettext.mo'), 'rb') |
| t = gettext.GNUTranslations(fp) |
| fp.close() |
| |
| gettext.set(t) |
| print t == gettext.get() |
| |
| print _('nudge nudge') |