blob: 1760c7816d51c6da88e56613cbb4a111cc5ee2ba [file] [log] [blame]
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')