##// END OF EJS Templates
commands: automatically word-wrap cmdline options...
commands: automatically word-wrap cmdline options Some of the descriptions of command line options were getting quite long, and when translated they are likely to grow even longer. This word-wraps them at 70 characters, just like the help texts. We could have opted to wrap them at the terminal width instead, but I think it looks better to have them be consistent with the help texts.

File last commit:

r7948:de377b1a default
r8039:18081ce1 default
Show More
i18n.py
49 lines | 1.4 KiB | text/x-python | PythonLexer
"""
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