Mercurial > hg-stable
view mercurial/i18n.py @ 8174:29bc5d18714a
hg: allow hg.parseurl(url, None)
In many places hg.parseurl is called with a url and "opts.get('rev')",
suggesting the second, optional argument can be None. Because opts['rev']
usually defaults to [] this never happens in practice.
However, extensions don't necessarily behave the same, but do copy this
pattern.
Also, include wider hg.parseurl tests, beyond a demonstration of the problem.
author | Martijn Pieters <mj@zopatista.com> |
---|---|
date | Fri, 24 Apr 2009 18:17:42 +0200 |
parents | de377b1a9a84 |
children | 46293a0c7e9f |
line wrap: on
line source
""" i18n.py - internationalization support for mercurial Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. """ import gettext, sys, os, encoding # modelled after templater.templatepath: if hasattr(sys, 'frozen'): module = sys.executable else: module = __file__ base = os.path.dirname(module) for dir in ('.', '..'): localedir = os.path.normpath(os.path.join(base, dir, 'locale')) if os.path.isdir(localedir): break t = gettext.translation('hg', localedir, fallback=True) def gettext(message): """Translate message. The message is looked up in the catalog to get a Unicode string, which is encoded in the local encoding before being returned. Important: message is restricted to characters in the encoding given by sys.getdefaultencoding() which is most likely 'ascii'. """ # If message is None, t.ugettext will return u'None' as the # translation whereas our callers expect us to return None. if message is None: return message # We cannot just run the text through encoding.tolocal since that # leads to infinite recursion when encoding._encoding is invalid. try: u = t.ugettext(message) return u.encode(encoding.encoding, "replace") except LookupError: return message _ = gettext