##// END OF EJS Templates
mq: fix the deprecation comment for qsave & qrestore....
mq: fix the deprecation comment for qsave & qrestore. Changeset bcf90e712dc3 deprecated qsave and qrestore. In the deprecating comment, users were referred to 'rebase --mq' which -- at the time the message was written -- didn't exist. Currently, on the default branch, rebase *does* take a '--mq' option, but it probably doesn't do what Dirkjan expected it to do when he wrote the message. In the original, deprecating commit, little context was provided as to why this change was made. Based on my recollection, concensus at the Paris Sprint in February 2010 was that one of the problems with MQ was that it exposed far too many commands. Notable among these were qsave & qrestore: very few core developers understood what they did and even fewer (none, IIRC) actually used them. However, they couldn't be removed; not only do the usual backwards compatibility reasons apply, but the hg book refers to them.

File last commit:

r11403:f7d7de6e default
r12352:5be733b2 stable
Show More
i18n.py
58 lines | 1.9 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 version 2 or any later version.
import encoding
import gettext, sys, os
# 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.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
paragraphs = message.split('\n\n')
# Be careful not to translate the empty string -- it holds the
# meta data of the .po file.
u = u'\n\n'.join([p and t.ugettext(p) or '' for p in paragraphs])
try:
# encoding.tolocal cannot be used since it will first try to
# decode the Unicode string. Calling u.decode(enc) really
# means u.encode(sys.getdefaultencoding()).decode(enc). Since
# the Python encoding defaults to 'ascii', this fails if the
# translated string use non-ASCII characters.
return u.encode(encoding.encoding, "replace")
except LookupError:
# An unknown encoding results in a LookupError.
return message
if 'HGPLAIN' in os.environ:
_ = lambda message: message
else:
_ = gettext