changeset 8965:4df5d07fb532

i18n-zh: sync with 288ba6d6c5c7(2009-06-24 04:43:09+08:00)
author Dongsheng Song <songdongsheng@live.cn>
date Wed, 24 Jun 2009 10:21:59 +0800
parents 288ba6d6c5c7
children b4dd7c121687
files i18n/zh_CN.po
diffstat 1 files changed, 1863 insertions(+), 1956 deletions(-) [+]
line wrap: on
line diff
--- a/i18n/zh_CN.po	Tue Jun 23 15:43:09 2009 -0500
+++ b/i18n/zh_CN.po	Wed Jun 24 10:21:59 2009 +0800
@@ -5,7 +5,7 @@
 # Copyright (C) 2009 the Mercurial team
 # Dongsheng Song <dongsheng.song@gmail.com>, 2009
 #
-# $Id: zh.po 1217 2009-03-11 09:20:30Z dongsheng.song@gmail.com $
+# $Id: zh_CN.po 1313 2009-06-24 02:08:02Z songdongsheng@live.cn $
 #
 # Update with pot file:
 #    msgmerge --update zh_CN.po hg.pot
@@ -48,9 +48,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Mercurial 1.2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-20 14:26+0800\n"
+"Project-Id-Version: Mercurial 1.3\n"
+"Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
+"POT-Creation-Date: 2009-06-24 10:03+0800\n"
 "PO-Revision-Date: 2009-03-31 20:38+0200\n"
 "Last-Translator: Dongsheng Song <dongsheng.song@gmail.com>\n"
 "Language-Team: Chinese translation team <i18n-zh@googlegroups.com>\n"
@@ -82,8 +82,53 @@
 "    别名: %s\n"
 "\n"
 
-msgid "return tuple of (match function, list enabled)."
-msgstr "返回 tuple (匹配函数,启用列表)"
+msgid ""
+"control access to a repository using simple hooks\n"
+"\n"
+"This hook makes it possible to allow or deny write access to portions\n"
+"of a repository when receiving incoming changesets.\n"
+"\n"
+"The authorization is matched based on the local user name on the\n"
+"system where the hook runs, and not the committer of the original\n"
+"changeset (since the latter is merely informative).\n"
+"\n"
+"The acl hook is best used along with a restricted shell like hgsh,\n"
+"preventing authenticating users from doing anything other than\n"
+"pushing or pulling. The hook is not safe to use if users have\n"
+"interactive shell access, as they can then disable the hook.\n"
+"Nor is it safe if remote users share an account, because then there\n"
+"is no way to distinguish them.\n"
+"\n"
+"To use this hook, configure the acl extension in your hgrc like this:\n"
+"\n"
+"  [extensions]\n"
+"  hgext.acl =\n"
+"\n"
+"  [hooks]\n"
+"  pretxnchangegroup.acl = python:hgext.acl.hook\n"
+"\n"
+"  [acl]\n"
+"  # Check whether the source of incoming changes is in this list\n"
+"  # (\"serve\" == ssh or http, \"push\", \"pull\", \"bundle\")\n"
+"  sources = serve\n"
+"\n"
+"The allow and deny sections take a subtree pattern as key (with a\n"
+"glob syntax by default), and a comma separated list of users as\n"
+"the corresponding value. The deny list is checked before the allow\n"
+"list is.\n"
+"\n"
+"  [acl.allow]\n"
+"  # If acl.allow is not present, all users are allowed by default.\n"
+"  # An empty acl.allow section means no users allowed.\n"
+"  docs/** = doc_writer\n"
+"  .hgtags = release_engineer\n"
+"\n"
+"  [acl.deny]\n"
+"  # If acl.deny is not present, no users are refused by default.\n"
+"  # An empty acl.deny section means all users allowed.\n"
+"  glob pattern = user4, user5\n"
+"   ** = user6\n"
+msgstr ""
 
 #, python-format
 msgid "acl: %s not enabled\n"
@@ -118,115 +163,41 @@
 msgstr "acl: 允许修改集 %s\n"
 
 msgid ""
-"allow user-defined command aliases\n"
-"\n"
-"To use, create entries in your hgrc of the form\n"
-"\n"
-"[alias]\n"
-"mycmd = cmd --args\n"
-msgstr ""
-"允许用户自定义命令的别名\n"
-"\n"
-"要使用别名,在你的 hgrc 中创建如下格式的条目:\n"
-"\n"
-"[alias]\n"
-"mycmd = cmd --args\n"
-
-msgid ""
-"defer command lookup until needed, so that extensions loaded\n"
-"    after alias can be aliased"
-msgstr "查找命令会推迟到需要时,所以可以在定义别名后加载模块"
-
-#, python-format
-msgid "*** [alias] %s: command %s is unknown"
-msgstr "*** [alias] %s: 未知命令 %s"
-
-#, python-format
-msgid "*** [alias] %s: command %s is ambiguous"
-msgstr "*** [alias] %s: 不明确的命令 %s"
-
-#, python-format
-msgid "*** [alias] %s: circular dependency on %s"
-msgstr "*** [alias] %s: 循环依赖于 %s"
-
-#, python-format
-msgid "*** [alias] %s: no definition\n"
-msgstr "*** [alias] %s: 无定义\n"
-
-msgid ""
-"mercurial bookmarks\n"
-"\n"
-"Mercurial bookmarks are local moveable pointers to changesets. Every\n"
-"bookmark points to a changeset identified by its hash. If you commit a\n"
-"changeset that is based on a changeset that has a bookmark on it, the\n"
-"bookmark is forwarded to the new changeset.\n"
-"\n"
-"It is possible to use bookmark names in every revision lookup (e.g. hg\n"
-"merge, hg update).\n"
-"\n"
-"The bookmark extension offers the possiblity to have a more git-like "
-"experience\n"
-"by adding the following configuration option to your .hgrc:\n"
-"\n"
-"[bookmarks]\n"
-"track.current = True\n"
-"\n"
-"This will cause bookmarks to track the bookmark that you are currently on, "
-"and\n"
-"just updates it. This is similar to git's approach of branching.\n"
-msgstr ""
-
-msgid ""
-"Parse .hg/bookmarks file and return a dictionary\n"
-"\n"
-"    Bookmarks are stored as {HASH}\\s{NAME}\\n (localtags format) values\n"
-"    in the .hg/bookmarks file. They are read by the parse() method and\n"
-"    returned as a dictionary with name => hash values.\n"
-"\n"
-"    The parsed dictionary is cached until a write() operation is done.\n"
-"    "
-msgstr ""
-
-msgid ""
-"Write bookmarks\n"
-"\n"
-"    Write the given bookmark => hash dictionary to the .hg/bookmarks file\n"
-"    in a format equal to those of localtags.\n"
-"\n"
-"    We also store a backup of the previous state in undo.bookmarks that\n"
-"    can be copied back on rollback.\n"
-"    "
-msgstr ""
-
-msgid ""
-"Get the current bookmark\n"
-"\n"
-"    If we use gittishsh branches we have a current bookmark that\n"
-"    we are on. This function returns the name of the bookmark. It\n"
-"    is stored in .hg/bookmarks.current\n"
-"    "
-msgstr ""
-
-msgid ""
-"Set the name of the bookmark that we are currently on\n"
-"\n"
-"    Set the name of the bookmark that we are on (hg update <bookmark>).\n"
-"    The name is recoreded in .hg/bookmarks.current\n"
-"    "
-msgstr ""
-
-msgid ""
-"mercurial bookmarks\n"
+"track a line of development with movable markers\n"
+"\n"
+"Bookmarks are local movable markers to changesets. Every bookmark\n"
+"points to a changeset identified by its hash. If you commit a\n"
+"changeset that is based on a changeset that has a bookmark on it,\n"
+"the bookmark shifts to the new changeset.\n"
+"\n"
+"It is possible to use bookmark names in every revision lookup\n"
+"(e.g. hg merge, hg update).\n"
+"\n"
+"By default, when several bookmarks point to the same changeset, they\n"
+"will all move forward together. It is possible to obtain a more\n"
+"git-like experience by adding the following configuration option to\n"
+"your .hgrc:\n"
+"\n"
+"  [bookmarks]\n"
+"  track.current = True\n"
+"\n"
+"This will cause Mercurial to track the bookmark that you are currently\n"
+"using, and only update it. This is similar to git's approach to\n"
+"branching.\n"
+msgstr ""
+
+msgid ""
+"track a line of development with movable markers\n"
 "\n"
 "    Bookmarks are pointers to certain commits that move when\n"
-"    commiting. Bookmarks are local. They can be renamed, copied and\n"
-"    deleted. It is possible to use bookmark names in 'hg merge' and 'hg\n"
-"    update' to update to a given bookmark.\n"
-"\n"
-"    You can use 'hg bookmark NAME' to set a bookmark on the current\n"
-"    tip with the given name. If you specify a revision using -r REV\n"
-"    (where REV may be an existing bookmark), the bookmark is set to\n"
-"    that revision.\n"
+"    committing. Bookmarks are local. They can be renamed, copied and\n"
+"    deleted. It is possible to use bookmark names in 'hg merge' and\n"
+"    'hg update' to merge and update respectively to a given bookmark.\n"
+"\n"
+"    You can use 'hg bookmark NAME' to set a bookmark on the working\n"
+"    directory's parent revision with the given name. If you specify\n"
+"    a revision using -r REV (where REV may be an existing bookmark),\n"
+"    the bookmark is assigned to that revision.\n"
 "    "
 msgstr ""
 
@@ -248,28 +219,6 @@
 msgid "a bookmark cannot have the name of an existing branch"
 msgstr ""
 
-msgid ""
-"Strip bookmarks if revisions are stripped using\n"
-"    the mercurial.strip method. This usually happens during\n"
-"    qpush and qpop"
-msgstr ""
-
-msgid ""
-"Add a revision to the repository and\n"
-"            move the bookmark"
-msgstr ""
-
-msgid "Merge bookmarks with normal tags"
-msgstr ""
-
-msgid ""
-"Set the current bookmark\n"
-"\n"
-"    If the user updates to a bookmark we update the .hg/bookmarks.current\n"
-"    file.\n"
-"    "
-msgstr ""
-
 msgid "force"
 msgstr "强制"
 
@@ -286,79 +235,79 @@
 msgstr ""
 
 msgid ""
-"Bugzilla integration\n"
+"integrate Mercurial with a Bugzilla bug tracker\n"
 "\n"
 "This hook extension adds comments on bugs in Bugzilla when changesets\n"
-"that refer to bugs by Bugzilla ID are seen. The hook does not change bug\n"
-"status.\n"
-"\n"
-"The hook updates the Bugzilla database directly. Only Bugzilla installations\n"
-"using MySQL are supported.\n"
-"\n"
-"The hook relies on a Bugzilla script to send bug change notification emails.\n"
-"That script changes between Bugzilla versions; the 'processmail' script used\n"
-"prior to 2.18 is replaced in 2.18 and subsequent versions by\n"
-"'config/sendbugmail.pl'. Note that these will be run by Mercurial as the "
-"user\n"
-"pushing the change; you will need to ensure the Bugzilla install file\n"
-"permissions are set appropriately.\n"
+"that refer to bugs by Bugzilla ID are seen. The hook does not change\n"
+"bug status.\n"
+"\n"
+"The hook updates the Bugzilla database directly. Only Bugzilla\n"
+"installations using MySQL are supported.\n"
+"\n"
+"The hook relies on a Bugzilla script to send bug change notification\n"
+"emails. That script changes between Bugzilla versions; the\n"
+"'processmail' script used prior to 2.18 is replaced in 2.18 and\n"
+"subsequent versions by 'config/sendbugmail.pl'. Note that these will\n"
+"be run by Mercurial as the user pushing the change; you will need to\n"
+"ensure the Bugzilla install file permissions are set appropriately.\n"
 "\n"
 "Configuring the extension:\n"
 "\n"
 "    [bugzilla]\n"
-"    host       Hostname of the MySQL server holding the Bugzilla database.\n"
+"\n"
+"    host       Hostname of the MySQL server holding the Bugzilla\n"
+"               database.\n"
 "    db         Name of the Bugzilla database in MySQL. Default 'bugs'.\n"
 "    user       Username to use to access MySQL server. Default 'bugs'.\n"
 "    password   Password to use to access MySQL server.\n"
 "    timeout    Database connection timeout (seconds). Default 5.\n"
-"    version    Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and\n"
-"               later, '2.18' for Bugzilla versions from 2.18 and '2.16' for\n"
-"               versions prior to 2.18.\n"
+"    version    Bugzilla version. Specify '3.0' for Bugzilla versions\n"
+"               3.0 and later, '2.18' for Bugzilla versions from 2.18\n"
+"               and '2.16' for versions prior to 2.18.\n"
 "    bzuser     Fallback Bugzilla user name to record comments with, if\n"
 "               changeset committer cannot be found as a Bugzilla user.\n"
 "    bzdir      Bugzilla install directory. Used by default notify.\n"
 "               Default '/var/www/html/bugzilla'.\n"
 "    notify     The command to run to get Bugzilla to send bug change\n"
-"               notification emails. Substitutes from a map with 3 keys,\n"
-"               'bzdir', 'id' (bug id) and 'user' (committer bugzilla email).\n"
-"               Default depends on version; from 2.18 it is\n"
-"               \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)"
-"s\".\n"
-"    regexp     Regular expression to match bug IDs in changeset commit "
-"message.\n"
-"               Must contain one \"()\" group. The default expression matches\n"
-"               'Bug 1234', 'Bug no. 1234', 'Bug number 1234',\n"
-"               'Bugs 1234,5678', 'Bug 1234 and 5678' and variations thereof.\n"
-"               Matching is case insensitive.\n"
+"               notification emails. Substitutes from a map with 3\n"
+"               keys, 'bzdir', 'id' (bug id) and 'user' (committer\n"
+"               bugzilla email). Default depends on version; from 2.18\n"
+"               it is \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl\n"
+"               %(id)s %(user)s\".\n"
+"    regexp     Regular expression to match bug IDs in changeset commit\n"
+"               message. Must contain one \"()\" group. The default\n"
+"               expression matches 'Bug 1234', 'Bug no. 1234', 'Bug\n"
+"               number 1234', 'Bugs 1234,5678', 'Bug 1234 and 5678' and\n"
+"               variations thereof. Matching is case insensitive.\n"
 "    style      The style file to use when formatting comments.\n"
 "    template   Template to use when formatting comments. Overrides\n"
 "               style if specified. In addition to the usual Mercurial\n"
 "               keywords, the extension specifies:\n"
 "                   {bug}       The Bugzilla bug ID.\n"
-"                   {root}      The full pathname of the Mercurial "
-"repository.\n"
-"                   {webroot}   Stripped pathname of the Mercurial "
-"repository.\n"
-"                   {hgweb}     Base URL for browsing Mercurial repositories.\n"
+"                   {root}      The full pathname of the Mercurial\n"
+"                               repository.\n"
+"                   {webroot}   Stripped pathname of the Mercurial\n"
+"                               repository.\n"
+"                   {hgweb}     Base URL for browsing Mercurial\n"
+"                               repositories.\n"
 "               Default 'changeset {node|short} in repo {root} refers '\n"
 "                       'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n"
 "    strip      The number of slashes to strip from the front of {root}\n"
 "               to produce {webroot}. Default 0.\n"
-"    usermap    Path of file containing Mercurial committer ID to Bugzilla "
-"user\n"
-"               ID mappings. If specified, the file should contain one "
-"mapping\n"
-"               per line, \"committer\"=\"Bugzilla user\". See also the\n"
-"               [usermap] section.\n"
+"    usermap    Path of file containing Mercurial committer ID to\n"
+"               Bugzilla user ID mappings. If specified, the file\n"
+"               should contain one mapping per line,\n"
+"               \"committer\"=\"Bugzilla user\". See also the [usermap]\n"
+"               section.\n"
 "\n"
 "    [usermap]\n"
-"    Any entries in this section specify mappings of Mercurial committer ID\n"
-"    to Bugzilla user ID. See also [bugzilla].usermap.\n"
+"    Any entries in this section specify mappings of Mercurial\n"
+"    committer ID to Bugzilla user ID. See also [bugzilla].usermap.\n"
 "    \"committer\"=\"Bugzilla user\"\n"
 "\n"
 "    [web]\n"
-"    baseurl    Base URL for browsing Mercurial repositories. Reference from\n"
-"               templates as {hgweb}.\n"
+"    baseurl    Base URL for browsing Mercurial repositories. Reference\n"
+"               from templates as {hgweb}.\n"
 "\n"
 "Activating the extension:\n"
 "\n"
@@ -371,9 +320,9 @@
 "\n"
 "Example configuration:\n"
 "\n"
-"This example configuration is for a collection of Mercurial repositories\n"
-"in /var/local/hg/repos/ used with a local Bugzilla 3.2 installation in\n"
-"/opt/bugzilla-3.2.\n"
+"This example configuration is for a collection of Mercurial\n"
+"repositories in /var/local/hg/repos/ used with a local Bugzilla 3.2\n"
+"installation in /opt/bugzilla-3.2.\n"
 "\n"
 "    [bugzilla]\n"
 "    host=localhost\n"
@@ -399,16 +348,10 @@
 "    Changeset commit comment. Bug 1234.\n"
 msgstr ""
 
-msgid "support for bugzilla version 2.16."
-msgstr "支持 bugzilla 2.16。"
-
 #, python-format
 msgid "connecting to %s:%s as %s, password %s\n"
 msgstr "连接到 %s:%s as %s,密码 %s\n"
 
-msgid "run a query."
-msgstr "运行查询。"
-
 #, python-format
 msgid "query: %s %s\n"
 msgstr "查询: %s %s\n"
@@ -417,25 +360,13 @@
 msgid "failed query: %s %s\n"
 msgstr "查询失败: %s %s\n"
 
-msgid "get identity of longdesc field"
-msgstr ""
-
 msgid "unknown database schema"
 msgstr "未知的数据库方案"
 
-msgid "filter not-existing bug ids from list."
-msgstr "从列表中过滤不存在的问题标识。"
-
-msgid "filter bug ids from list that already refer to this changeset."
-msgstr ""
-
 #, python-format
 msgid "bug %d already knows about changeset %s\n"
 msgstr ""
 
-msgid "tell bugzilla to send mail."
-msgstr ""
-
 msgid "telling bugzilla to send mail:\n"
 msgstr ""
 
@@ -454,22 +385,10 @@
 msgid "done\n"
 msgstr "完成\n"
 
-msgid "look up numeric bugzilla user id."
-msgstr ""
-
 #, python-format
 msgid "looking up user %s\n"
 msgstr ""
 
-msgid "map name of committer to bugzilla user name."
-msgstr ""
-
-msgid ""
-"see if committer is a registered bugzilla user. Return\n"
-"        bugzilla username and userid if so. If not, return default\n"
-"        bugzilla username and userid."
-msgstr ""
-
 #, python-format
 msgid "cannot find bugzilla user id for %s"
 msgstr ""
@@ -478,52 +397,16 @@
 msgid "cannot find bugzilla user id for %s or %s"
 msgstr ""
 
-msgid ""
-"add comment to bug. try adding comment as committer of\n"
-"        changeset, otherwise as default bugzilla user."
-msgstr ""
-
-msgid "support for bugzilla 2.18 series."
-msgstr ""
-
-msgid "support for bugzilla 3.0 series."
-msgstr ""
-
-msgid ""
-"return object that knows how to talk to bugzilla version in\n"
-"        use."
-msgstr ""
-
 #, python-format
 msgid "bugzilla version %s not supported"
 msgstr ""
 
 msgid ""
-"find valid bug ids that are referred to in changeset\n"
-"        comments and that do not already have references to this\n"
-"        changeset."
-msgstr ""
-
-msgid "update bugzilla bug with reference to changeset."
-msgstr ""
-
-msgid ""
-"strip leading prefix of repo root and turn into\n"
-"            url-safe path."
-msgstr ""
-
-msgid ""
 "changeset {node|short} in repo {root} refers to bug {bug}.\n"
 "details:\n"
 "\t{desc|tabindent}"
 msgstr ""
 
-msgid ""
-"add comment to bugzilla for each changeset that refers to a\n"
-"    bugzilla bug id. only add a comment once per bug, so same change\n"
-"    seen multiple times does not fill bug with duplicate data."
-msgstr ""
-
 #, python-format
 msgid "python mysql support not available: %s"
 msgstr ""
@@ -536,27 +419,36 @@
 msgid "database error: %s"
 msgstr ""
 
-msgid ""
-"show the children of the given or working dir revision\n"
-"\n"
-"    Print the children of the working directory's revisions.\n"
-"    If a revision is given via --rev, the children of that revision\n"
-"    will be printed. If a file argument is given, revision in\n"
-"    which the file was last changed (after the working directory\n"
-"    revision or the argument to --rev if given) is printed.\n"
-"    "
-msgstr ""
-
-msgid "show children of the specified rev"
-msgstr ""
+#, fuzzy
+msgid "display children changesets"
+msgstr "列出修改集"
+
+#, fuzzy
+msgid ""
+"show the children of the given or working directory revision\n"
+"\n"
+"    Print the children of the working directory's revisions. If a\n"
+"    revision is given via -r/--rev, the children of that revision will\n"
+"    be printed. If a file argument is given, revision in which the\n"
+"    file was last changed (after the working directory revision or the\n"
+"    argument to --rev if given) is printed.\n"
+"    "
+msgstr ""
+"显示工作目录或指定版本的父亲\n"
+"\n"
+"    显示工作目录的父亲版本。如果使用 '--rev' 指定版本,就显示此版本的\n"
+"    父亲。如果指定了文件,那么使用此文件最后修改的版本(工作目录的起源\n"
+"    版本,或 '--rev' 指定的版本)。\n"
+"    "
+
+#, fuzzy
+msgid "show children of the specified revision"
+msgstr "从指定的版本显示父亲"
 
 msgid "hg children [-r REV] [FILE]"
 msgstr ""
 
-msgid "command to show certain statistics about revision history"
-msgstr ""
-
-msgid "Calculate stats"
+msgid "display statistics about repository history"
 msgstr ""
 
 #, python-format
@@ -564,18 +456,21 @@
 msgstr ""
 
 #, python-format
-msgid "\rgenerating stats: %d%%"
-msgstr ""
-
-msgid ""
-"graph count of revisions grouped by template\n"
-"\n"
-"    Will graph count of changed lines or revisions grouped by template or\n"
-"    alternatively by date, if dateformat is used. In this case it will "
-"override\n"
-"    template.\n"
-"\n"
-"    By default statistics are counted for number of changed lines.\n"
+msgid "generating stats: %d%%"
+msgstr ""
+
+msgid ""
+"histogram of changes to the repository\n"
+"\n"
+"    This command will display a histogram representing the number\n"
+"    of changed lines or revisions, grouped according to the given\n"
+"    template. The default template will group changes by author.\n"
+"    The --dateformat option may be used to group the results by\n"
+"    date instead.\n"
+"\n"
+"    Statistics are based on the number of changed lines, or\n"
+"    alternatively the number of matching revisions if the\n"
+"    --changesets option is specified.\n"
 "\n"
 "    Examples:\n"
 "\n"
@@ -591,9 +486,14 @@
 "      # display count of lines changed in every year\n"
 "      hg churn -f '%Y' -s\n"
 "\n"
-"    The map file format used to specify aliases is fairly simple:\n"
-"\n"
-"    <alias email> <actual email>"
+"    It is possible to map alternate email addresses to a main address\n"
+"    by providing a file using the following format:\n"
+"\n"
+"    <alias email> <actual email>\n"
+"\n"
+"    Such a file may be specified with the --aliases option, otherwise a\n"
+"    .hgchurn file will be looked for in the working directory root.\n"
+"    "
 msgstr ""
 
 #, python-format
@@ -603,8 +503,9 @@
 msgid "count rate for the specified revision or range"
 msgstr ""
 
-msgid "count rate for revs matching date spec"
-msgstr ""
+#, fuzzy
+msgid "count rate for revisions matching date spec"
+msgstr "显示匹配日期的版本"
 
 msgid "template to group changesets"
 msgstr ""
@@ -628,24 +529,20 @@
 msgstr ""
 
 msgid ""
-"add color output to status, qseries, and diff-related commands\n"
-"\n"
-"This extension modifies the status command to add color to its output to\n"
-"reflect file status, the qseries command to add color to reflect patch "
-"status\n"
-"(applied, unapplied, missing), and to diff-related commands to highlight\n"
-"additions, removals, diff headers, and trailing whitespace.\n"
-"\n"
-"Other effects in addition to color, like bold and underlined text, are also\n"
-"available.  Effects are rendered with the ECMA-48 SGR control function (aka\n"
-"ANSI escape codes).  This module also provides the render_text function,\n"
-"which can be used to add effects to any text.\n"
-"\n"
-"To enable this extension, add this to your .hgrc file:\n"
-"[extensions]\n"
-"color =\n"
-"\n"
-"Default effects my be overriden from the .hgrc file:\n"
+"colorize output from some commands\n"
+"\n"
+"This extension modifies the status command to add color to its output\n"
+"to reflect file status, the qseries command to add color to reflect\n"
+"patch status (applied, unapplied, missing), and to diff-related\n"
+"commands to highlight additions, removals, diff headers, and trailing\n"
+"whitespace.\n"
+"\n"
+"Other effects in addition to color, like bold and underlined text, are\n"
+"also available. Effects are rendered with the ECMA-48 SGR control\n"
+"function (aka ANSI escape codes). This module also provides the\n"
+"render_text function, which can be used to add effects to any text.\n"
+"\n"
+"Default effects may be overridden from the .hgrc file:\n"
 "\n"
 "[color]\n"
 "status.modified = blue bold underline red_background\n"
@@ -674,37 +571,13 @@
 "diff.trailingwhitespace = bold red_background\n"
 msgstr ""
 
-msgid "Wrap text in commands to turn on each effect."
-msgstr ""
-
-msgid "run the status command with colored output"
-msgstr ""
-
-msgid "run the qseries command with colored output"
-msgstr ""
-
-msgid "wrap ui.write for colored diff output"
-msgstr ""
-
-msgid "wrap cmdutil.changeset_printer.showpatch with colored output"
-msgstr ""
-
-msgid "run the diff command with colored output"
-msgstr ""
-
-msgid "Initialize the extension."
-msgstr ""
-
-msgid "patch in command to command table and load effect map"
-msgstr ""
-
 msgid "when to colorize (always, auto, or never)"
 msgstr ""
 
 msgid "don't colorize output"
 msgstr ""
 
-msgid "converting foreign VCS repositories to Mercurial"
+msgid "import from foreign VCS repositories into Mercurial"
 msgstr ""
 
 msgid ""
@@ -725,33 +598,44 @@
 "    - Mercurial [hg]\n"
 "    - Subversion [svn] (history on branches is not preserved)\n"
 "\n"
-"    If no revision is given, all revisions will be converted. Otherwise,\n"
-"    convert will only import up to the named revision (given in a format\n"
-"    understood by the source).\n"
+"    If no revision is given, all revisions will be converted.\n"
+"    Otherwise, convert will only import up to the named revision\n"
+"    (given in a format understood by the source).\n"
 "\n"
 "    If no destination directory name is specified, it defaults to the\n"
-"    basename of the source with '-hg' appended.  If the destination\n"
+"    basename of the source with '-hg' appended. If the destination\n"
 "    repository doesn't exist, it will be created.\n"
 "\n"
+"    By default, all sources except Mercurial will use\n"
+"    --branchsort. Mercurial uses --sourcesort to preserve original\n"
+"    revision numbers order. Sort modes have the following effects:\n"
+"      --branchsort: convert from parent to child revision when\n"
+"        possible, which means branches are usually converted one after\n"
+"        the other. It generates more compact repositories.\n"
+"      --datesort: sort revisions by date. Converted repositories have\n"
+"        good-looking changelogs but are often an order of magnitude\n"
+"        larger than the same ones generated by --branchsort.\n"
+"      --sourcesort: try to preserve source revisions order, only\n"
+"        supported by Mercurial sources.\n"
+"\n"
 "    If <REVMAP> isn't given, it will be put in a default location\n"
-"    (<dest>/.hg/shamap by default).  The <REVMAP> is a simple text\n"
-"    file that maps each source commit ID to the destination ID for\n"
-"    that revision, like so:\n"
+"    (<dest>/.hg/shamap by default). The <REVMAP> is a simple text file\n"
+"    that maps each source commit ID to the destination ID for that\n"
+"    revision, like so:\n"
 "    <source ID> <destination ID>\n"
 "\n"
-"    If the file doesn't exist, it's automatically created.  It's updated\n"
-"    on each commit copied, so convert-repo can be interrupted and can\n"
-"    be run repeatedly to copy new commits.\n"
-"\n"
-"    The [username mapping] file is a simple text file that maps each source\n"
-"    commit author to a destination commit author. It is handy for source "
-"SCMs\n"
-"    that use unix logins to identify authors (eg: CVS). One line per author\n"
-"    mapping and the line format is:\n"
+"    If the file doesn't exist, it's automatically created. It's\n"
+"    updated on each commit copied, so convert-repo can be interrupted\n"
+"    and can be run repeatedly to copy new commits.\n"
+"\n"
+"    The [username mapping] file is a simple text file that maps each\n"
+"    source commit author to a destination commit author. It is handy\n"
+"    for source SCMs that use unix logins to identify authors (eg:\n"
+"    CVS). One line per author mapping and the line format is:\n"
 "    srcauthor=whatever string you want\n"
 "\n"
 "    The filemap is a file that allows filtering and remapping of files\n"
-"    and directories.  Comment lines start with '#'.  Each line can\n"
+"    and directories. Comment lines start with '#'. Each line can\n"
 "    contain one of the following directives:\n"
 "\n"
 "      include path/to/file\n"
@@ -762,33 +646,44 @@
 "\n"
 "    The 'include' directive causes a file, or all files under a\n"
 "    directory, to be included in the destination repository, and the\n"
-"    exclusion of all other files and dirs not explicitely included.\n"
+"    exclusion of all other files and directories not explicitly included.\n"
 "    The 'exclude' directive causes files or directories to be omitted.\n"
-"    The 'rename' directive renames a file or directory.  To rename from a\n"
-"    subdirectory into the root of the repository, use '.' as the path to\n"
-"    rename to.\n"
+"    The 'rename' directive renames a file or directory. To rename from\n"
+"    a subdirectory into the root of the repository, use '.' as the\n"
+"    path to rename to.\n"
 "\n"
 "    The splicemap is a file that allows insertion of synthetic\n"
-"    history, letting you specify the parents of a revision.  This is\n"
+"    history, letting you specify the parents of a revision. This is\n"
 "    useful if you want to e.g. give a Subversion merge two parents, or\n"
-"    graft two disconnected series of history together.  Each entry\n"
+"    graft two disconnected series of history together. Each entry\n"
 "    contains a key, followed by a space, followed by one or two\n"
-"    values, separated by spaces.  The key is the revision ID in the\n"
-"    source revision control system whose parents should be modified\n"
-"    (same format as a key in .hg/shamap).  The values are the revision\n"
-"    IDs (in either the source or destination revision control system)\n"
-"    that should be used as the new parents for that node.\n"
+"    comma-separated values. The key is the revision ID in the source\n"
+"    revision control system whose parents should be modified (same\n"
+"    format as a key in .hg/shamap). The values are the revision IDs\n"
+"    (in either the source or destination revision control system) that\n"
+"    should be used as the new parents for that node.\n"
+"\n"
+"    The branchmap is a file that allows you to rename a branch when it is\n"
+"    being brought in from whatever external repository. When used in\n"
+"    conjunction with a splicemap, it allows for a powerful combination\n"
+"    to help fix even the most badly mismanaged repositories and turn them\n"
+"    into nicely structured Mercurial repositories. The branchmap contains\n"
+"    lines of the form \"original_branch_name new_branch_name\".\n"
+"    \"original_branch_name\" is the name of the branch in the source\n"
+"    repository, and \"new_branch_name\" is the name of the branch is the\n"
+"    destination repository. This can be used to (for instance) move code\n"
+"    in one repository from \"default\" to a named branch.\n"
 "\n"
 "    Mercurial Source\n"
 "    -----------------\n"
 "\n"
-"    --config convert.hg.ignoreerrors=False (boolean)\n"
+"    --config convert.hg.ignoreerrors=False    (boolean)\n"
 "        ignore integrity errors when reading. Use it to fix Mercurial\n"
 "        repositories with missing revlogs, by converting from and to\n"
 "        Mercurial.\n"
-"    --config convert.hg.saverev=False          (boolean)\n"
-"        store original revision ID in changeset (forces target IDs to "
-"change)\n"
+"    --config convert.hg.saverev=False         (boolean)\n"
+"        store original revision ID in changeset (forces target IDs to\n"
+"        change)\n"
 "    --config convert.hg.startrev=0            (hg revision identifier)\n"
 "        convert start revision and its descendants\n"
 "\n"
@@ -797,12 +692,12 @@
 "\n"
 "    CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n"
 "    to indicate the starting point of what will be converted. Direct\n"
-"    access to the repository files is not needed, unless of course\n"
-"    the repository is :local:. The conversion uses the top level\n"
-"    directory in the sandbox to find the CVS repository, and then uses\n"
-"    CVS rlog commands to find files to convert. This means that unless\n"
-"    a filemap is given, all files under the starting directory will be\n"
-"    converted, and that any directory reorganisation in the CVS\n"
+"    access to the repository files is not needed, unless of course the\n"
+"    repository is :local:. The conversion uses the top level directory\n"
+"    in the sandbox to find the CVS repository, and then uses CVS rlog\n"
+"    commands to find files to convert. This means that unless a\n"
+"    filemap is given, all files under the starting directory will be\n"
+"    converted, and that any directory reorganization in the CVS\n"
 "    sandbox is ignored.\n"
 "\n"
 "    Because CVS does not have changesets, it is necessary to collect\n"
@@ -810,46 +705,52 @@
 "    source uses its internal changeset merging code by default but can\n"
 "    be configured to call the external 'cvsps' program by setting:\n"
 "        --config convert.cvsps='cvsps -A -u --cvs-direct -q'\n"
-"    This is a legacy option and may be removed in future.\n"
+"    This option is deprecated and will be removed in Mercurial 1.4.\n"
 "\n"
 "    The options shown are the defaults.\n"
 "\n"
 "    Internal cvsps is selected by setting\n"
 "        --config convert.cvsps=builtin\n"
 "    and has a few more configurable options:\n"
-"        --config convert.cvsps.fuzz=60   (integer)\n"
-"            Specify the maximum time (in seconds) that is allowed between\n"
-"            commits with identical user and log message in a single\n"
-"            changeset. When very large files were checked in as part\n"
-"            of a changeset then the default may not be long enough.\n"
+"        --config convert.cvsps.cache=True     (boolean)\n"
+"            Set to False to disable remote log caching, for testing and\n"
+"            debugging purposes.\n"
+"        --config convert.cvsps.fuzz=60        (integer)\n"
+"            Specify the maximum time (in seconds) that is allowed\n"
+"            between commits with identical user and log message in a\n"
+"            single changeset. When very large files were checked in as\n"
+"            part of a changeset then the default may not be long\n"
+"            enough.\n"
 "        --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n"
-"            Specify a regular expression to which commit log messages are\n"
-"            matched. If a match occurs, then the conversion process will\n"
-"            insert a dummy revision merging the branch on which this log\n"
-"            message occurs to the branch indicated in the regex.\n"
+"            Specify a regular expression to which commit log messages\n"
+"            are matched. If a match occurs, then the conversion\n"
+"            process will insert a dummy revision merging the branch on\n"
+"            which this log message occurs to the branch indicated in\n"
+"            the regex.\n"
 "        --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n"
-"            Specify a regular expression to which commit log messages are\n"
-"            matched. If a match occurs, then the conversion process will\n"
-"            add the most recent revision on the branch indicated in the\n"
-"            regex as the second parent of the changeset.\n"
-"\n"
-"    The hgext/convert/cvsps wrapper script allows the builtin changeset\n"
-"    merging code to be run without doing a conversion. Its parameters and\n"
-"    output are similar to that of cvsps 2.1.\n"
+"            Specify a regular expression to which commit log messages\n"
+"            are matched. If a match occurs, then the conversion\n"
+"            process will add the most recent revision on the branch\n"
+"            indicated in the regex as the second parent of the\n"
+"            changeset.\n"
+"\n"
+"    The hgext/convert/cvsps wrapper script allows the builtin\n"
+"    changeset merging code to be run without doing a conversion. Its\n"
+"    parameters and output are similar to that of cvsps 2.1.\n"
 "\n"
 "    Subversion Source\n"
 "    -----------------\n"
 "\n"
 "    Subversion source detects classical trunk/branches/tags layouts.\n"
 "    By default, the supplied \"svn://repo/path/\" source URL is\n"
-"    converted as a single branch. If \"svn://repo/path/trunk\" exists\n"
-"    it replaces the default branch. If \"svn://repo/path/branches\"\n"
-"    exists, its subdirectories are listed as possible branches. If\n"
+"    converted as a single branch. If \"svn://repo/path/trunk\" exists it\n"
+"    replaces the default branch. If \"svn://repo/path/branches\" exists,\n"
+"    its subdirectories are listed as possible branches. If\n"
 "    \"svn://repo/path/tags\" exists, it is looked for tags referencing\n"
 "    converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n"
-"    can be overriden with following options. Set them to paths\n"
-"    relative to the source URL, or leave them blank to disable\n"
-"    autodetection.\n"
+"    can be overridden with following options. Set them to paths\n"
+"    relative to the source URL, or leave them blank to disable auto\n"
+"    detection.\n"
 "\n"
 "    --config convert.svn.branches=branches    (directory name)\n"
 "        specify the directory containing branches\n"
@@ -868,16 +769,17 @@
 "    Perforce Source\n"
 "    ---------------\n"
 "\n"
-"    The Perforce (P4) importer can be given a p4 depot path or a client\n"
-"    specification as source. It will convert all files in the source to\n"
-"    a flat Mercurial repository, ignoring labels, branches and integrations.\n"
-"    Note that when a depot path is given you then usually should specify a\n"
-"    target directory, because otherwise the target may be named ...-hg.\n"
-"\n"
-"    It is possible to limit the amount of source history to be converted\n"
-"    by specifying an initial Perforce revision.\n"
-"\n"
-"    --config convert.p4.startrev=0           (perforce changelist number)\n"
+"    The Perforce (P4) importer can be given a p4 depot path or a\n"
+"    client specification as source. It will convert all files in the\n"
+"    source to a flat Mercurial repository, ignoring labels, branches\n"
+"    and integrations. Note that when a depot path is given you then\n"
+"    usually should specify a target directory, because otherwise the\n"
+"    target may be named ...-hg.\n"
+"\n"
+"    It is possible to limit the amount of source history to be\n"
+"    converted by specifying an initial Perforce revision.\n"
+"\n"
+"    --config convert.p4.startrev=0            (perforce changelist number)\n"
 "        specify initial Perforce revision.\n"
 "\n"
 "\n"
@@ -897,12 +799,14 @@
 msgid ""
 "create changeset information from CVS\n"
 "\n"
-"    This command is intended as a debugging tool for the CVS to Mercurial\n"
-"    converter, and can be used as a direct replacement for cvsps.\n"
-"\n"
-"    Hg debugcvsps reads the CVS rlog for current directory (or any named\n"
-"    directory) in the CVS repository, and converts the log to a series of\n"
-"    changesets based on matching commit log entries and dates."
+"    This command is intended as a debugging tool for the CVS to\n"
+"    Mercurial converter, and can be used as a direct replacement for\n"
+"    cvsps.\n"
+"\n"
+"    Hg debugcvsps reads the CVS rlog for current directory (or any\n"
+"    named directory) in the CVS repository, and converts the log to a\n"
+"    series of changesets based on matching commit log entries and\n"
+"    dates."
 msgstr ""
 
 msgid "username mapping filename"
@@ -923,9 +827,18 @@
 msgid "splice synthesized history into place"
 msgstr ""
 
+msgid "change branch names while converting"
+msgstr ""
+
+msgid "try to sort changesets by branches"
+msgstr ""
+
 msgid "try to sort changesets by date"
 msgstr ""
 
+msgid "preserve source changesets order"
+msgstr ""
+
 msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
 msgstr ""
 
@@ -962,6 +875,14 @@
 msgid "hg debugcvsps [OPTION]... [PATH]..."
 msgstr ""
 
+msgid ""
+"warning: lightweight checkouts may cause conversion failures, try with a "
+"regular branch instead.\n"
+msgstr ""
+
+msgid "bzr source type could not be determined\n"
+msgstr ""
+
 #, python-format
 msgid "%s is not a valid revision in current branch"
 msgstr ""
@@ -971,6 +892,10 @@
 msgstr ""
 
 #, python-format
+msgid "%s.%s symlink has no target"
+msgstr ""
+
+#, python-format
 msgid "cannot find required \"%s\" tool"
 msgstr ""
 
@@ -987,6 +912,10 @@
 msgstr ""
 
 #, python-format
+msgid "syntax error in %s(%d): key/value pair expected"
+msgstr ""
+
+#, python-format
 msgid "could not open map file %r: %s"
 msgstr ""
 
@@ -1002,6 +931,10 @@
 msgid "%s: unknown repository type"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "unknown sort mode: %s"
+msgstr "hg: 未知命令 '%s'\n"
+
 #, python-format
 msgid "cycle detected between %s and %s"
 msgstr ""
@@ -1014,7 +947,7 @@
 msgstr ""
 
 #, python-format
-msgid "Overriding mapping for author %s, was %s, will be %s\n"
+msgid "Ignoring bad line in author map file %s: %s\n"
 msgstr ""
 
 #, python-format
@@ -1022,7 +955,7 @@
 msgstr ""
 
 #, python-format
-msgid "Ignoring bad line in author map file %s: %s\n"
+msgid "overriding mapping for author %s, was %s, will be %s\n"
 msgstr ""
 
 #, python-format
@@ -1046,6 +979,17 @@
 msgid "assuming destination %s\n"
 msgstr ""
 
+msgid "more than one sort mode specified"
+msgstr ""
+
+msgid "--sourcesort is not supported by this data source"
+msgstr ""
+
+msgid ""
+"warning: support for external cvsps is deprecated and will be removed in "
+"Mercurial 1.4\n"
+msgstr ""
+
 #, python-format
 msgid "revision %s is not a patchset number or date"
 msgstr ""
@@ -1110,6 +1054,10 @@
 msgid "revision must be followed by date line"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "found synthetic revision in %s: %r\n"
+msgstr "版本 %d 有未知路径: %s\n"
+
 #, python-format
 msgid "writing cvs log cache %s\n"
 msgstr ""
@@ -1121,6 +1069,15 @@
 msgid "creating changesets\n"
 msgstr ""
 
+msgid "synthetic changeset cannot have multiple parents"
+msgstr ""
+
+#, python-format
+msgid ""
+"warning: CVS commit message references non-existent branch %r:\n"
+"%s\n"
+msgstr ""
+
 #, python-format
 msgid "%d changeset entries\n"
 msgstr ""
@@ -1178,7 +1135,7 @@
 msgstr ""
 
 #, python-format
-msgid "analysing revision %s...\n"
+msgid "analyzing revision %s...\n"
 msgstr ""
 
 #, python-format
@@ -1203,6 +1160,9 @@
 msgid "pulling from %s into %s\n"
 msgstr "自 %s 拉到 %s\n"
 
+msgid "filtering out empty revision\n"
+msgstr ""
+
 msgid "updating tags\n"
 msgstr "正在更新标签\n"
 
@@ -1224,8 +1184,8 @@
 msgid "%s does not look like a monotone repo"
 msgstr "%s 不像是单纯的 monotone 版本库"
 
-#, python-format
-msgid "copying file in renamed dir from '%s' to '%s'"
+#, fuzzy, python-format
+msgid "copying file in renamed directory from '%s' to '%s'"
 msgstr "从已改名的目录 '%s' 复制文件到 '%s'"
 
 msgid "reading p4 views\n"
@@ -1272,7 +1232,8 @@
 msgid "found branch %s at %d\n"
 msgstr "发现分支 %s 位于 %d\n"
 
-msgid "svn: start revision is not supported with with more than one branch"
+#, fuzzy
+msgid "svn: start revision is not supported with more than one branch"
 msgstr "svn: 在给出多于一个分支时不支持开始版本"
 
 #, python-format
@@ -1307,21 +1268,10 @@
 msgid "gone from %s\n"
 msgstr "离开 %s\n"
 
-#, python-format
-msgid "found parent directory %s\n"
-msgstr "发现父目录 %s\n"
-
-#, python-format
-msgid "base, entry %s %s\n"
+#, fuzzy, python-format
+msgid "entry %s\n"
 msgstr "基本,入口 %s %s\n"
 
-msgid "munge-o-matic\n"
-msgstr ""
-
-#, python-format
-msgid "info: %s %s %s %s\n"
-msgstr "信息: %s %s %s %s\n"
-
 #, python-format
 msgid "unknown path in revision %d: %s\n"
 msgstr "版本 %d 有未知路径: %s\n"
@@ -1346,10 +1296,6 @@
 msgstr "为 \"%s\" 获取版本日志,自 %d 到 %d\n"
 
 #, python-format
-msgid "skipping blacklisted revision %d\n"
-msgstr "忽略黑名单版本 %d\n"
-
-#, python-format
 msgid "revision %d has no entries\n"
 msgstr "版本 %d 没有入口\n"
 
@@ -1379,18 +1325,14 @@
 msgstr ""
 
 msgid ""
+"allow external programs to compare revisions\n"
 "\n"
 "The `extdiff' Mercurial extension allows you to use external programs\n"
-"to compare revisions, or revision with working dir.  The external diff\n"
+"to compare revisions, or revision with working directory. The external diff\n"
 "programs are called with a configurable set of options and two\n"
 "non-option arguments: paths to directories containing snapshots of\n"
 "files to compare.\n"
 "\n"
-"To enable this extension:\n"
-"\n"
-"  [extensions]\n"
-"  hgext.extdiff =\n"
-"\n"
 "The `extdiff' extension also allows to configure new diff commands, so\n"
 "you do not need to type \"hg extdiff -p kdiff3\" always.\n"
 "\n"
@@ -1408,42 +1350,23 @@
 "  meld =\n"
 "\n"
 "  # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n"
-"  #(see http://www.vim.org/scripts/script.php?script_id=102)\n"
-"  # Non english user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
+"  # (see http://www.vim.org/scripts/script.php?script_id=102)\n"
+"  # Non English user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" in\n"
 "  # your .vimrc\n"
 "  vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'\n"
 "\n"
-"You can use -I/-X and list of file or directory names like normal\n"
-"\"hg diff\" command.  The `extdiff' extension makes snapshots of only\n"
-"needed files, so running the external diff program will actually be\n"
-"pretty fast (at least faster than having to compare the entire tree).\n"
-msgstr ""
-
-msgid "snapshot files as of some revision"
+"You can use -I/-X and list of file or directory names like normal \"hg\n"
+"diff\" command. The `extdiff' extension makes snapshots of only needed\n"
+"files, so running the external diff program will actually be pretty\n"
+"fast (at least faster than having to compare the entire tree).\n"
 msgstr ""
 
 #, python-format
 msgid "making snapshot of %d files from rev %s\n"
 msgstr ""
 
-msgid ""
-"snapshot files from working directory.\n"
-"    if not using snapshot, -I/-X does not work and recursive diff\n"
-"    in tools like kdiff3 and meld displays too many files."
-msgstr ""
-
-#, python-format
-msgid "making snapshot of %d files from working dir\n"
-msgstr ""
-
-msgid ""
-"Do the actuall diff:\n"
-"\n"
-"    - copy to a temp structure if diffing 2 internal revisions\n"
-"    - copy to a temp structure if diffing working revision with\n"
-"      another one and more than 1 file is changed\n"
-"    - just invoke the diff for a single file in the working dir\n"
-"    "
+#, python-format
+msgid "making snapshot of %d files from working directory\n"
 msgstr ""
 
 msgid "cannot specify --rev and --change at the same time"
@@ -1464,19 +1387,19 @@
 "use external program to diff repository (or selected files)\n"
 "\n"
 "    Show differences between revisions for the specified files, using\n"
-"    an external program.  The default program used is diff, with\n"
+"    an external program. The default program used is diff, with\n"
 "    default options \"-Npru\".\n"
 "\n"
-"    To select a different program, use the -p option.  The program\n"
-"    will be passed the names of two directories to compare.  To pass\n"
-"    additional options to the program, use the -o option.  These will\n"
-"    be passed before the names of the directories to compare.\n"
-"\n"
-"    When two revision arguments are given, then changes are\n"
-"    shown between those revisions. If only one revision is\n"
-"    specified then that revision is compared to the working\n"
-"    directory, and, when no revisions are specified, the\n"
-"    working directory files are compared to its parent."
+"    To select a different program, use the -p/--program option. The\n"
+"    program will be passed the names of two directories to compare. To\n"
+"    pass additional options to the program, use -o/--option. These\n"
+"    will be passed before the names of the directories to compare.\n"
+"\n"
+"    When two revision arguments are given, then changes are shown\n"
+"    between those revisions. If only one revision is specified then\n"
+"    that revision is compared to the working directory, and, when no\n"
+"    revisions are specified, the working directory files are compared\n"
+"    to its parent."
 msgstr ""
 
 msgid "comparison program to run"
@@ -1491,14 +1414,11 @@
 msgid "hg extdiff [OPT]... [FILE]..."
 msgstr ""
 
-msgid "use closure to save diff command to use"
-msgstr ""
-
 #, python-format
 msgid "hg %s [OPTION]... [FILE]..."
 msgstr ""
 
-msgid "pulling, updating and merging in one command"
+msgid "pull, update and merge in one command"
 msgstr ""
 
 msgid ""
@@ -1507,13 +1427,14 @@
 "    This finds all changes from the repository at the specified path\n"
 "    or URL and adds them to the local repository.\n"
 "\n"
-"    If the pulled changes add a new branch head, the head is automatically\n"
-"    merged, and the result of the merge is committed.  Otherwise, the\n"
-"    working directory is updated to include the new changes.\n"
+"    If the pulled changes add a new branch head, the head is\n"
+"    automatically merged, and the result of the merge is committed.\n"
+"    Otherwise, the working directory is updated to include the new\n"
+"    changes.\n"
 "\n"
 "    When a merge occurs, the newly pulled changes are assumed to be\n"
-"    \"authoritative\".  The head of the new changes is used as the first\n"
-"    parent, with local changes as the second.  To switch the merge\n"
+"    \"authoritative\". The head of the new changes is used as the first\n"
+"    parent, with local changes as the second. To switch the merge\n"
 "    order, use --switch-parent.\n"
 "\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
@@ -1541,7 +1462,9 @@
 msgid "pulling from %s\n"
 msgstr "正在拉自 %s\n"
 
-msgid "fetch -r doesn't work for remote repositories yet"
+msgid ""
+"Other repository doesn't support revision lookup, so a rev cannot be "
+"specified."
 msgstr ""
 
 #, python-format
@@ -1581,25 +1504,13 @@
 msgid "hg fetch [SOURCE]"
 msgstr ""
 
-msgid " returns of the good and bad signatures"
-msgstr ""
+#, fuzzy
+msgid "sign and verify changesets"
+msgstr "正在增加修改集\n"
 
 msgid "error while verifying signature"
 msgstr ""
 
-msgid "create a new gpg instance"
-msgstr ""
-
-msgid ""
-"\n"
-"    walk over every sigs, yields a couple\n"
-"    ((node, version, sig), (filename, linenumber))\n"
-"    "
-msgstr ""
-
-msgid "get the keys who signed a data"
-msgstr ""
-
 #, python-format
 msgid "%s Bad signature from \"%s\"\n"
 msgstr ""
@@ -1626,9 +1537,6 @@
 msgid "No valid signature for %s\n"
 msgstr ""
 
-msgid "associate a string to a key (username, comment)"
-msgstr ""
-
 msgid ""
 "add a signature for the current or given revision\n"
 "\n"
@@ -1654,9 +1562,6 @@
 msgid "Added signature for changeset %s"
 msgstr ""
 
-msgid "map a manifest into some text"
-msgstr ""
-
 msgid "unknown signature version"
 msgstr ""
 
@@ -1685,59 +1590,13 @@
 msgstr ""
 
 msgid ""
-"show revision graphs in terminal windows\n"
+"show revision graphs in terminals\n"
 "\n"
 "This extension adds a --graph option to the incoming, outgoing and log\n"
-"commands. When this options is given, an ascii representation of the\n"
+"commands. When this options is given, an ASCII representation of the\n"
 "revision graph is also shown.\n"
 msgstr ""
 
-msgid ""
-"cset DAG generator yielding (rev, node, [parents]) tuples\n"
-"\n"
-"    This generator function walks through the revision history from revision\n"
-"    start to revision stop (which must be less than or equal to start).\n"
-"    "
-msgstr ""
-
-msgid ""
-"file cset DAG generator yielding (rev, node, [parents]) tuples\n"
-"\n"
-"    This generator function walks through the revision history of a single\n"
-"    file from revision start to revision stop (which must be less than or\n"
-"    equal to start).\n"
-"    "
-msgstr ""
-
-msgid ""
-"grapher for asciigraph on a list of nodes and their parents\n"
-"\n"
-"    nodes must generate tuples (node, parents, char, lines) where\n"
-"     - parents must generate the parents of node, in sorted order,\n"
-"       and max length 2,\n"
-"     - char is the char to print as the node symbol, and\n"
-"     - lines are the lines to display next to the node.\n"
-"    "
-msgstr ""
-
-msgid ""
-"prints an ASCII graph of the DAG returned by the grapher\n"
-"\n"
-"    grapher is a generator that emits tuples with the following elements:\n"
-"\n"
-"      - Character to use as node's symbol.\n"
-"      - List of lines to display as the node's text.\n"
-"      - Column of the current node in the set of ongoing edges.\n"
-"      - Edges; a list of (col, next_col) indicating the edges between\n"
-"        the current node and its parents.\n"
-"      - Number of columns (ongoing edges) in the current revision.\n"
-"      - The difference between the number of columns (ongoing edges)\n"
-"        in the next revision and the number of columns (ongoing edges)\n"
-"        in the current revision. That is: -1 means one column removed;\n"
-"        0 means no columns added or removed; 1 means one column added.\n"
-"    "
-msgstr ""
-
 #, python-format
 msgid "--graph option is incompatible with --%s"
 msgstr ""
@@ -1753,17 +1612,6 @@
 "    "
 msgstr ""
 
-msgid ""
-"show the outgoing changesets alongside an ASCII revision graph\n"
-"\n"
-"    Print the outgoing changesets alongside a revision graph drawn with\n"
-"    ASCII characters.\n"
-"\n"
-"    Nodes printed as an @ character are parents of the working\n"
-"    directory.\n"
-"    "
-msgstr ""
-
 #, python-format
 msgid "comparing with %s\n"
 msgstr ""
@@ -1771,20 +1619,6 @@
 msgid "no changes found\n"
 msgstr "没有发现修改\n"
 
-msgid ""
-"show the incoming changesets alongside an ASCII revision graph\n"
-"\n"
-"    Print the incoming changesets alongside a revision graph drawn with\n"
-"    ASCII characters.\n"
-"\n"
-"    Nodes printed as an @ character are parents of the working\n"
-"    directory.\n"
-"    "
-msgstr ""
-
-msgid "wrap the command"
-msgstr ""
-
 msgid "show the revision DAG"
 msgstr "显示版本分支图"
 
@@ -1801,7 +1635,7 @@
 msgstr ""
 
 msgid ""
-"CIA notification\n"
+"integrate Mercurial with a CIA notification service\n"
 "\n"
 "This is meant to be run as a changegroup or incoming hook.\n"
 "To configure it, set the following options in your hgrc:\n"
@@ -1816,8 +1650,7 @@
 "# Append a diffstat to the log message (optional)\n"
 "#diffstat = False\n"
 "# Template to use for log messages (optional)\n"
-"#template = {desc}\n"
-"{baseurl}/rev/{node}-- {diffstat}\n"
+"#template = {desc}\\n{baseurl}/rev/{node}-- {diffstat}\n"
 "# Style to use (optional)\n"
 "#style = foo\n"
 "# The URL of the CIA notification service (optional)\n"
@@ -1838,19 +1671,10 @@
 "baseurl = http://server/path/to/repo\n"
 msgstr ""
 
-msgid " A CIA message "
-msgstr ""
-
-msgid " CIA notification class "
-msgstr ""
-
 #, python-format
 msgid "hgcia: sending update to %s\n"
 msgstr ""
 
-msgid " send CIA notification "
-msgstr ""
-
 msgid "email.from must be defined when sending by email"
 msgstr ""
 
@@ -1861,33 +1685,21 @@
 msgstr ""
 
 msgid ""
-"browsing the repository in a graphical way\n"
+"browse the repository in a graphical way\n"
 "\n"
 "The hgk extension allows browsing the history of a repository in a\n"
-"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is\n"
-"not distributed with Mercurial.)\n"
+"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not\n"
+"distributed with Mercurial.)\n"
 "\n"
 "hgk consists of two parts: a Tcl script that does the displaying and\n"
-"querying of information, and an extension to mercurial named hgk.py,\n"
+"querying of information, and an extension to Mercurial named hgk.py,\n"
 "which provides hooks for hgk to get information. hgk can be found in\n"
-"the contrib directory, and hgk.py can be found in the hgext directory.\n"
-"\n"
-"To load the hgext.py extension, add it to your .hgrc file (you have\n"
-"to use your global $HOME/.hgrc file, not one in a repository). You\n"
-"can specify an absolute path:\n"
-"\n"
-"  [extensions]\n"
-"  hgk=/usr/local/lib/hgk.py\n"
-"\n"
-"Mercurial can also scan the default python library path for a file\n"
-"named 'hgk.py' if you set hgk empty:\n"
-"\n"
-"  [extensions]\n"
-"  hgk=\n"
+"the contrib directory, and the extension is shipped in the hgext\n"
+"repository, and needs to be enabled.\n"
 "\n"
 "The hg view command will launch the hgk Tcl script. For this command\n"
-"to work, hgk must be in your search path. Alternately, you can\n"
-"specify the path to hgk in your .hgrc file:\n"
+"to work, hgk must be in your search path. Alternately, you can specify\n"
+"the path to hgk in your .hgrc file:\n"
 "\n"
 "  [hgk]\n"
 "  path=/location/of/hgk\n"
@@ -1984,16 +1796,11 @@
 msgstr ""
 
 msgid ""
-"syntax highlighting in hgweb, based on Pygments\n"
-"\n"
-"It depends on the pygments syntax highlighting library:\n"
+"syntax highlighting for hgweb\n"
+"\n"
+"It depends on the Pygments syntax highlighting library:\n"
 "http://pygments.org/\n"
 "\n"
-"To enable the extension add this to hgrc:\n"
-"\n"
-"[extensions]\n"
-"hgext.highlight =\n"
-"\n"
 "There is a single configuration option:\n"
 "\n"
 "[web]\n"
@@ -2004,12 +1811,37 @@
 "-- Adam Hupp <adam@hupp.org>\n"
 msgstr ""
 
-msgid "inotify-based status acceleration for Linux systems\n"
+msgid "accelerate status report using system level services"
 msgstr ""
 
 msgid "start an inotify server for this repository"
 msgstr "为此版本库启动服务 'inotify'"
 
+msgid ""
+"debugging information for inotify extension\n"
+"\n"
+"    Prints the list of directories being watched by the inotify server.\n"
+"    "
+msgstr ""
+
+msgid "directories being watched:\n"
+msgstr ""
+
+msgid "run server in background"
+msgstr "在后台运行服务"
+
+msgid "used internally by daemon mode"
+msgstr "在后台服务模式内部使用"
+
+msgid "minutes to sit idle before exiting"
+msgstr "空闲几分钟后退出"
+
+msgid "name of file to write process ID to"
+msgstr "写入进程标识符的文件名称"
+
+msgid "hg inserve [OPT]..."
+msgstr ""
+
 msgid "(found dead inotify server socket; removing it)\n"
 msgstr ""
 
@@ -2031,25 +1863,17 @@
 msgid "failed to contact inotify server: %s\n"
 msgstr ""
 
-msgid "run server in background"
-msgstr "在后台运行服务"
-
-msgid "used internally by daemon mode"
-msgstr "在后台服务模式内部使用"
-
-msgid "minutes to sit idle before exiting"
-msgstr "空闲几分钟后退出"
-
-msgid "name of file to write process ID to"
-msgstr "写入进程标识符的文件名称"
-
-msgid "hg inserve [OPT]..."
+msgid "received empty answer from inotify server"
 msgstr ""
 
 #, python-format
 msgid "(inotify: received response from incompatible server version %d)\n"
 msgstr ""
 
+#, python-format
+msgid "(inotify: received '%s' response when expecting '%s')\n"
+msgstr ""
+
 msgid "this system does not seem to support inotify"
 msgstr ""
 
@@ -2143,29 +1967,39 @@
 msgstr ""
 
 #, python-format
-msgid "%s processing %d deferred events as %d\n"
-msgstr ""
-
-#, python-format
 msgid "could not start server: %s"
 msgstr ""
 
 #, python-format
+msgid "answering query for %r\n"
+msgstr ""
+
+#, python-format
 msgid "received query from incompatible client version %d\n"
 msgstr ""
 
 #, python-format
-msgid "answering query for %r\n"
+msgid "unrecognized query type: %s\n"
 msgstr ""
 
 msgid "finished setup\n"
 msgstr ""
 
-msgid "polling: no timeout\n"
-msgstr ""
-
-#, python-format
-msgid "polling: %sms timeout\n"
+msgid ""
+"expand expressions into changelog and summaries\n"
+"\n"
+"This extension allows the use of a special syntax in summaries,\n"
+"which will be automatically expanded into links or any other\n"
+"arbitrary expression, much like InterWiki does.\n"
+"\n"
+"A few example patterns (link to bug tracking, etc.) that may\n"
+"be used in your hgrc:\n"
+"\n"
+"  [interhg]\n"
+"  issues = s!issue(\\d+)!<a href=\"http://bts/issue\\1\">issue\\1</a>!\n"
+"  bugzilla = s!((?:bug|b=|(?=#?\\d{4,}))(?:\\s*#?)(\\d+))!<a..=\\2\">\\1</a>!"
+"i\n"
+"  boldify = s!(^|\\s)#(\\d+)\\b! <b>#\\2</b>!\n"
 msgstr ""
 
 #, python-format
@@ -2177,17 +2011,17 @@
 msgstr ""
 
 msgid ""
-"keyword expansion in local repositories\n"
-"\n"
-"This extension expands RCS/CVS-like or self-customized $Keywords$\n"
-"in tracked text files selected by your configuration.\n"
-"\n"
-"Keywords are only expanded in local repositories and not stored in\n"
-"the change history. The mechanism can be regarded as a convenience\n"
-"for the current user or for archive distribution.\n"
-"\n"
-"Configuration is done in the [keyword] and [keywordmaps] sections\n"
-"of hgrc files.\n"
+"expand keywords in tracked files\n"
+"\n"
+"This extension expands RCS/CVS-like or self-customized $Keywords$ in\n"
+"tracked text files selected by your configuration.\n"
+"\n"
+"Keywords are only expanded in local repositories and not stored in the\n"
+"change history. The mechanism can be regarded as a convenience for the\n"
+"current user or for archive distribution.\n"
+"\n"
+"Configuration is done in the [keyword] and [keywordmaps] sections of\n"
+"hgrc files.\n"
 "\n"
 "Example:\n"
 "\n"
@@ -2197,96 +2031,40 @@
 "    x*    = ignore\n"
 "\n"
 "Note: the more specific you are in your filename patterns\n"
-"      the less you lose speed in huge repos.\n"
+"      the less you lose speed in huge repositories.\n"
 "\n"
 "For [keywordmaps] template mapping and expansion demonstration and\n"
 "control run \"hg kwdemo\".\n"
 "\n"
 "An additional date template filter {date|utcdate} is provided.\n"
 "\n"
-"The default template mappings (view with \"hg kwdemo -d\") can be replaced\n"
-"with customized keywords and templates.\n"
-"Again, run \"hg kwdemo\" to control the results of your config changes.\n"
+"The default template mappings (view with \"hg kwdemo -d\") can be\n"
+"replaced with customized keywords and templates. Again, run \"hg\n"
+"kwdemo\" to control the results of your config changes.\n"
 "\n"
 "Before changing/disabling active keywords, run \"hg kwshrink\" to avoid\n"
-"the risk of inadvertedly storing expanded keywords in the change history.\n"
+"the risk of inadvertently storing expanded keywords in the change\n"
+"history.\n"
 "\n"
 "To force expansion after enabling it, or a configuration change, run\n"
 "\"hg kwexpand\".\n"
 "\n"
-"Also, when committing with the record extension or using mq's qrecord, be "
-"aware\n"
-"that keywords cannot be updated. Again, run \"hg kwexpand\" on the files in\n"
-"question to update keyword expansions after all changes have been checked "
-"in.\n"
+"Also, when committing with the record extension or using mq's qrecord,\n"
+"be aware that keywords cannot be updated. Again, run \"hg kwexpand\" on\n"
+"the files in question to update keyword expansions after all changes\n"
+"have been checked in.\n"
 "\n"
 "Expansions spanning more than one line and incremental expansions,\n"
 "like CVS' $Log$, are not supported. A keyword template map\n"
 "\"Log = {desc}\" expands to the first line of the changeset description.\n"
 msgstr ""
 
-msgid "Returns hgdate in cvs-like UTC format."
-msgstr ""
-
-msgid ""
-"\n"
-"    Sets up keyword templates, corresponding keyword regex, and\n"
-"    provides keyword substitution functions.\n"
-"    "
-msgstr ""
-
-msgid "Replaces keywords in data with expanded template."
-msgstr ""
-
-msgid "Returns data with keywords expanded."
-msgstr ""
-
-msgid ""
-"Returns true if path matches [keyword] pattern\n"
-"        and is not a symbolic link.\n"
-"        Caveat: localrepository._link fails on Windows."
-msgstr ""
-
-msgid "Overwrites selected files expanding/shrinking keywords."
-msgstr ""
-
-#, python-format
-msgid "overwriting %s %s keywords\n"
-msgstr ""
-
-msgid "Unconditionally removes all keyword substitutions from text."
-msgstr ""
-
-msgid "Returns text with all keyword substitutions removed."
-msgstr ""
-
-msgid "Returns lines with keyword substitutions removed."
-msgstr ""
-
-msgid ""
-"If in restricted mode returns data read from wdir with\n"
-"        keyword substitutions removed."
-msgstr ""
-
-msgid ""
-"\n"
-"    Subclass of filelog to hook into its read, add, cmp methods.\n"
-"    Keywords are \"stored\" unexpanded, and processed on reading.\n"
-"    "
-msgstr ""
-
-msgid "Expands keywords when reading filelog."
-msgstr ""
-
-msgid "Removes keyword substitutions when adding to filelog."
-msgstr ""
-
-msgid "Removes keyword substitutions for comparison."
-msgstr ""
-
-msgid ""
-"Bails out if [keyword] configuration is not active.\n"
-"    Returns status of working directory."
+#, python-format
+msgid "overwriting %s expanding keywords\n"
+msgstr ""
+
+#, python-format
+msgid "overwriting %s shrinking keywords\n"
 msgstr ""
 
 msgid "[keyword] patterns cannot match"
@@ -2295,17 +2073,14 @@
 msgid "no [keyword] patterns configured"
 msgstr ""
 
-msgid "Selects files and passes them to kwtemplater.overwrite."
-msgstr ""
-
 msgid ""
 "print [keywordmaps] configuration and an expansion example\n"
 "\n"
-"    Show current, custom, or default keyword template maps\n"
-"    and their expansion.\n"
-"\n"
-"    Extend current configuration by specifying maps as arguments\n"
-"    and optionally by reading from an additional hgrc file.\n"
+"    Show current, custom, or default keyword template maps and their\n"
+"    expansions.\n"
+"\n"
+"    Extend current configuration by specifying maps as arguments and\n"
+"    optionally by reading from an additional hgrc file.\n"
 "\n"
 "    Override current keyword template maps with \"default\" option.\n"
 "    "
@@ -2317,9 +2092,11 @@
 "\t%s\n"
 msgstr ""
 
-#, python-format
-msgid "creating temporary repo at %s\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "creating temporary repository at %s\n"
+msgstr ""
+"\n"
+"正在删除临时版本库 %s\n"
 
 #, python-format
 msgid ""
@@ -2330,16 +2107,16 @@
 msgid "unhooked all commit hooks\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"removing temporary repo %s\n"
+#, fuzzy, python-format
+msgid ""
+"\n"
+"removing temporary repository %s\n"
 msgstr ""
 "\n"
 "正在删除临时版本库 %s\n"
 
 msgid ""
-"expand keywords in working directory\n"
+"expand keywords in the working directory\n"
 "\n"
 "    Run after (re)enabling keyword expansion.\n"
 "\n"
@@ -2350,52 +2127,22 @@
 msgid ""
 "print files currently configured for keyword expansion\n"
 "\n"
-"    Crosscheck which files in working directory are potential targets for\n"
-"    keyword expansion.\n"
-"    That is, files matched by [keyword] config patterns but not symlinks.\n"
-"    "
-msgstr ""
-
-msgid ""
-"revert expanded keywords in working directory\n"
-"\n"
-"    Run before changing/disabling active keywords\n"
-"    or if you experience problems with \"hg import\" or \"hg merge\".\n"
+"    Crosscheck which files in working directory are potential targets\n"
+"    for keyword expansion. That is, files matched by [keyword] config\n"
+"    patterns but not symlinks.\n"
+"    "
+msgstr ""
+
+msgid ""
+"revert expanded keywords in the working directory\n"
+"\n"
+"    Run before changing/disabling active keywords or if you experience\n"
+"    problems with \"hg import\" or \"hg merge\".\n"
 "\n"
 "    kwshrink refuses to run if given files contain local changes.\n"
 "    "
 msgstr ""
 
-msgid ""
-"Collects [keyword] config in kwtools.\n"
-"    Monkeypatches dispatch._parse if needed."
-msgstr ""
-
-msgid "Monkeypatch dispatch._parse to obtain running hg command."
-msgstr ""
-
-msgid ""
-"Sets up repo as kwrepo for keyword substitution.\n"
-"    Overrides file method to return kwfilelog instead of filelog\n"
-"    if file matches user configuration.\n"
-"    Wraps commit to overwrite configured files with updated\n"
-"    keyword substitutions.\n"
-"    Monkeypatches patch and webcommands."
-msgstr ""
-
-msgid ""
-"Monkeypatch/wrap patch.patchfile.__init__ to avoid\n"
-"        rejects or conflicts due to expanded keywords in working dir."
-msgstr ""
-
-msgid ""
-"Monkeypatch patch.diff to avoid expansion except when\n"
-"        comparing against working dir."
-msgstr ""
-
-msgid "Wraps webcommands.x turning off keyword expansion."
-msgstr ""
-
 msgid "show default keyword template maps"
 msgstr ""
 
@@ -2424,14 +2171,14 @@
 msgstr ""
 
 msgid ""
-"patch management and development\n"
+"work with a stack of patches\n"
 "\n"
 "This extension lets you work with a stack of patches in a Mercurial\n"
-"repository.  It manages two stacks of patches - all known patches, and\n"
+"repository. It manages two stacks of patches - all known patches, and\n"
 "applied patches (subset of known patches).\n"
 "\n"
 "Known patches are represented as patch files in the .hg/patches\n"
-"directory.  Applied patches are both patch files and changesets.\n"
+"directory. Applied patches are both patch files and changesets.\n"
 "\n"
 "Common tasks (use \"hg help command\" for more details):\n"
 "\n"
@@ -2448,17 +2195,6 @@
 "refresh contents of top applied patch     qrefresh\n"
 msgstr ""
 
-msgid ""
-"Update all references to a field in the patch header.\n"
-"        If none found, add it email style."
-msgstr ""
-
-msgid ""
-"Remove existing message, keeping the rest of the comments fields.\n"
-"        If comments contains 'subject: ', message will prepend\n"
-"        the field and a blank line."
-msgstr ""
-
 #, python-format
 msgid "%s appears more than once in %s"
 msgstr ""
@@ -2537,11 +2273,6 @@
 msgid "patch %s is not applied\n"
 msgstr ""
 
-msgid ""
-"Apply patchfile  to the working directory.\n"
-"        patchfile: file name of patch"
-msgstr ""
-
 msgid "patch failed, unable to continue (try -v)\n"
 msgstr ""
 
@@ -2549,9 +2280,11 @@
 msgid "applying %s\n"
 msgstr ""
 
-#, python-format
-msgid "Unable to read %s\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "unable to read %s\n"
+msgstr ""
+"解析 '%s' 失败\n"
+"%s"
 
 #, python-format
 msgid "imported patch %s\n"
@@ -2581,6 +2314,10 @@
 msgid "cannot delete revision %d above applied patches"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "patch %s finalized without changeset message\n"
+msgstr "只显示无改动文件的状态"
+
 msgid "qdelete requires at least one revision or patch name"
 msgstr ""
 
@@ -2608,12 +2345,6 @@
 msgid "\"%s\" cannot be used as the name of a patch"
 msgstr ""
 
-msgid ""
-"options:\n"
-"           msg: a string or a no-argument function returning a string\n"
-"        "
-msgstr ""
-
 #, python-format
 msgid "patch \"%s\" already exists"
 msgstr ""
@@ -2622,9 +2353,6 @@
 msgid "error unlinking %s\n"
 msgstr ""
 
-msgid "returns (index, rev, patch)"
-msgstr ""
-
 #, python-format
 msgid "patch name \"%s\" is ambiguous:\n"
 msgstr ""
@@ -2633,7 +2361,7 @@
 msgid "patch %s not in series"
 msgstr ""
 
-msgid "(working directory not at tip)\n"
+msgid "(working directory not at a head)\n"
 msgstr ""
 
 msgid "no patches in series\n"
@@ -2752,14 +2480,6 @@
 msgid "repo commit failed\n"
 msgstr ""
 
-msgid ""
-"If all_patches is False, return the index of the next pushable patch\n"
-"        in the series, or the series length. If all_patches is True, return "
-"the\n"
-"        index of the first patch past the last applied one.\n"
-"        "
-msgstr ""
-
 #, python-format
 msgid "patch %s is already in the series file"
 msgstr ""
@@ -2811,14 +2531,14 @@
 msgid ""
 "remove patches from queue\n"
 "\n"
-"    The patches must not be applied, unless they are arguments to\n"
-"    the --rev parameter. At least one patch or revision is required.\n"
-"\n"
-"    With --rev, mq will stop managing the named revisions (converting\n"
-"    them to regular mercurial changesets). The qfinish command should be\n"
-"    used as an alternative for qdel -r, as the latter option is deprecated.\n"
-"\n"
-"    With --keep, the patch files are preserved in the patch directory."
+"    The patches must not be applied, and at least one patch is\n"
+"    required.\n"
+"\n"
+"    With -k/--keep, the patch files are preserved in the patch\n"
+"    directory.\n"
+"\n"
+"    To stop managing a patch and move it into permanent history,\n"
+"    use the qfinish command."
 msgstr ""
 
 msgid "print the patches already applied"
@@ -2827,26 +2547,33 @@
 msgid "print the patches not yet applied"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "import a patch\n"
 "\n"
-"    The patch is inserted into the series after the last applied patch.\n"
-"    If no patches have been applied, qimport prepends the patch\n"
+"    The patch is inserted into the series after the last applied\n"
+"    patch. If no patches have been applied, qimport prepends the patch\n"
 "    to the series.\n"
 "\n"
 "    The patch will have the same name as its source file unless you\n"
-"    give it a new one with --name.\n"
-"\n"
-"    You can register an existing patch inside the patch directory\n"
-"    with the --existing flag.\n"
-"\n"
-"    With --force, an existing patch of the same name will be overwritten.\n"
-"\n"
-"    An existing changeset may be placed under mq control with --rev\n"
+"    give it a new one with -n/--name.\n"
+"\n"
+"    You can register an existing patch inside the patch directory with\n"
+"    the -e/--existing flag.\n"
+"\n"
+"    With -f/--force, an existing patch of the same name will be\n"
+"    overwritten.\n"
+"\n"
+"    An existing changeset may be placed under mq control with -r/--rev\n"
 "    (e.g. qimport --rev tip -n patch will place tip under mq control).\n"
-"    With --git, patches imported with --rev will use the git diff\n"
+"    With -g/--git, patches imported with --rev will use the git diff\n"
 "    format. See the diffs help topic for information on why this is\n"
-"    important for preserving rename/copy information and permission changes.\n"
+"    important for preserving rename/copy information and permission\n"
+"    changes.\n"
+"\n"
+"    To import a patch from standard input, pass - as the patch file.\n"
+"    When importing from standard input, a patch name must be specified\n"
+"    using the --name flag.\n"
 "    "
 msgstr ""
 "导入补丁\n"
@@ -2866,14 +2593,15 @@
 "    为什么这对于保留改名/复制信息和权限修改很重要。\n"
 "    "
 
+#, fuzzy
 msgid ""
 "init a new queue repository\n"
 "\n"
-"    The queue repository is unversioned by default. If -c is\n"
-"    specified, qinit will create a separate nested repository\n"
-"    for patches (qinit -c may also be run later to convert\n"
-"    an unversioned patch repository into a versioned one).\n"
-"    You can use qcommit to commit changes to this queue repository."
+"    The queue repository is unversioned by default. If\n"
+"    -c/--create-repo is specified, qinit will create a separate nested\n"
+"    repository for patches (qinit -c may also be run later to convert\n"
+"    an unversioned patch repository into a versioned one). You can use\n"
+"    qcommit to commit changes to this queue repository."
 msgstr ""
 "初始化队列仓库\n"
 "\n"
@@ -2884,16 +2612,16 @@
 msgid ""
 "clone main and patch repository at same time\n"
 "\n"
-"    If source is local, destination will have no patches applied.  If\n"
+"    If source is local, destination will have no patches applied. If\n"
 "    source is remote, this command can not check if patches are\n"
 "    applied in source, so cannot guarantee that patches are not\n"
-"    applied in destination.  If you clone remote repository, be sure\n"
+"    applied in destination. If you clone remote repository, be sure\n"
 "    before that it has no patches applied.\n"
 "\n"
 "    Source patch repository is looked for in <src>/.hg/patches by\n"
-"    default.  Use -p <url> to change.\n"
-"\n"
-"    The patch directory must be a nested mercurial repository, as\n"
+"    default. Use -p <url> to change.\n"
+"\n"
+"    The patch directory must be a nested Mercurial repository, as\n"
 "    would be created by qinit -c.\n"
 "    "
 msgstr ""
@@ -2901,17 +2629,20 @@
 msgid "versioned patch repository not found (see qinit -c)"
 msgstr ""
 
-msgid "cloning main repo\n"
-msgstr ""
-
-msgid "cloning patch repo\n"
-msgstr ""
-
-msgid "stripping applied patches from destination repo\n"
-msgstr ""
-
-msgid "updating destination repo\n"
-msgstr ""
+#, fuzzy
+msgid "cloning main repository\n"
+msgstr "初始化目标版本库 %s\n"
+
+msgid "cloning patch repository\n"
+msgstr ""
+
+#, fuzzy
+msgid "stripping applied patches from destination repository\n"
+msgstr "初始化目标版本库 %s\n"
+
+#, fuzzy
+msgid "updating destination repository\n"
+msgstr "初始化目标版本库 %s\n"
 
 msgid "commit changes in the queue repository"
 msgstr ""
@@ -2937,40 +2668,44 @@
 msgid ""
 "create a new patch\n"
 "\n"
-"    qnew creates a new patch on top of the currently-applied patch (if any).\n"
-"    It will refuse to run if there are any outstanding changes unless -f is\n"
-"    specified, in which case the patch will be initialized with them. You\n"
-"    may also use -I, -X, and/or a list of files after the patch name to add\n"
-"    only changes to matching files to the new patch, leaving the rest as\n"
-"    uncommitted modifications.\n"
-"\n"
-"    -u and -d can be used to set the (given) user and date, respectively.\n"
-"    -U and -D set user to current user and date to current date.\n"
-"\n"
-"    -e, -m or -l set the patch header as well as the commit message. If none\n"
-"    is specified, the header is empty and the commit message is '[mq]: "
-"PATCH'.\n"
-"\n"
-"    Use the --git option to keep the patch in the git extended diff\n"
+"    qnew creates a new patch on top of the currently-applied patch (if\n"
+"    any). It will refuse to run if there are any outstanding changes\n"
+"    unless -f/--force is specified, in which case the patch will be\n"
+"    initialized with them. You may also use -I/--include,\n"
+"    -X/--exclude, and/or a list of files after the patch name to add\n"
+"    only changes to matching files to the new patch, leaving the rest\n"
+"    as uncommitted modifications.\n"
+"\n"
+"    -u/--user and -d/--date can be used to set the (given) user and\n"
+"    date, respectively. -U/--currentuser and -D/--currentdate set user\n"
+"    to current user and date to current date.\n"
+"\n"
+"    -e/--edit, -m/--message or -l/--logfile set the patch header as\n"
+"    well as the commit message. If none is specified, the header is\n"
+"    empty and the commit message is '[mq]: PATCH'.\n"
+"\n"
+"    Use the -g/--git option to keep the patch in the git extended diff\n"
 "    format. Read the diffs help topic for more information on why this\n"
 "    is important for preserving permission changes and copy/rename\n"
 "    information.\n"
 "    "
 msgstr ""
 
+#, fuzzy
 msgid ""
 "update the current patch\n"
 "\n"
-"    If any file patterns are provided, the refreshed patch will contain only\n"
-"    the modifications that match those patterns; the remaining modifications\n"
-"    will remain in the working directory.\n"
-"\n"
-"    If --short is specified, files currently included in the patch will\n"
-"    be refreshed just like matched files and remain in the patch.\n"
-"\n"
-"    hg add/remove/copy/rename work as usual, though you might want to use\n"
-"    git-style patches (--git or [diff] git=1) to track copies and renames.\n"
-"    See the diffs help topic for more information on the git diff format.\n"
+"    If any file patterns are provided, the refreshed patch will\n"
+"    contain only the modifications that match those patterns; the\n"
+"    remaining modifications will remain in the working directory.\n"
+"\n"
+"    If -s/--short is specified, files currently included in the patch\n"
+"    will be refreshed just like matched files and remain in the patch.\n"
+"\n"
+"    hg add/remove/copy/rename work as usual, though you might want to\n"
+"    use git-style patches (-g/--git or [diff] git=1) to track copies\n"
+"    and renames. See the diffs help topic for more information on the\n"
+"    git diff format.\n"
 "    "
 msgstr ""
 "更新当前补丁\n"
@@ -2988,17 +2723,19 @@
 msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
 msgstr ""
 
+#, fuzzy
 msgid ""
 "diff of the current patch and subsequent modifications\n"
 "\n"
-"    Shows a diff which includes the current patch as well as any changes "
-"which\n"
-"    have been made in the working directory since the last refresh (thus\n"
-"    showing what the current patch would become after a qrefresh).\n"
-"\n"
-"    Use 'hg diff' if you only want to see the changes made since the last\n"
-"    qrefresh, or 'hg export qtip' if you want to see changes made by the\n"
-"    current patch without including changes made since the qrefresh.\n"
+"    Shows a diff which includes the current patch as well as any\n"
+"    changes which have been made in the working directory since the\n"
+"    last refresh (thus showing what the current patch would become\n"
+"    after a qrefresh).\n"
+"\n"
+"    Use 'hg diff' if you only want to see the changes made since the\n"
+"    last qrefresh, or 'hg export qtip' if you want to see changes made\n"
+"    by the current patch without including changes made since the\n"
+"    qrefresh.\n"
 "    "
 msgstr ""
 "显式当前的补丁和后续的修改\n"
@@ -3016,12 +2753,12 @@
 "    Patches must not yet be applied. Each patch will be successively\n"
 "    applied to the current patch in the order given. If all the\n"
 "    patches apply successfully, the current patch will be refreshed\n"
-"    with the new cumulative patch, and the folded patches will\n"
-"    be deleted. With -k/--keep, the folded patch files will not\n"
-"    be removed afterwards.\n"
-"\n"
-"    The header for each folded patch will be concatenated with\n"
-"    the current patch header, separated by a line of '* * *'."
+"    with the new cumulative patch, and the folded patches will be\n"
+"    deleted. With -k/--keep, the folded patch files will not be\n"
+"    removed afterwards.\n"
+"\n"
+"    The header for each folded patch will be concatenated with the\n"
+"    current patch header, separated by a line of '* * *'."
 msgstr ""
 
 msgid "qfold requires at least one patch name"
@@ -3076,11 +2813,12 @@
 msgid "print the header of the topmost or specified patch"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "push the next patch onto the stack\n"
 "\n"
-"    When --force is applied, all local changes in patched files will be "
-"lost.\n"
+"    When -f/--force is applied, all local changes in patched files\n"
+"    will be lost.\n"
 "    "
 msgstr ""
 "将下个补丁压入堆栈\n"
@@ -3095,12 +2833,13 @@
 msgid "merging with queue at: %s\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "pop the current patch off the stack\n"
 "\n"
-"    By default, pops off the top of the patch stack. If given a patch name,\n"
-"    keeps popping off patches until the named patch is at the top of the "
-"stack.\n"
+"    By default, pops off the top of the patch stack. If given a patch\n"
+"    name, keeps popping off patches until the named patch is at the\n"
+"    top of the stack.\n"
 "    "
 msgstr ""
 "将当前补丁弹出堆栈\n"
@@ -3128,7 +2867,7 @@
 msgid "A patch named %s already exists in the series file"
 msgstr ""
 
-msgid "restore the queue state saved by a rev"
+msgid "restore the queue state saved by a revision"
 msgstr ""
 
 msgid "save current queue state"
@@ -3146,11 +2885,13 @@
 msgid "copy %s to %s\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "strip a revision and all its descendants from the repository\n"
 "\n"
-"    If one of the working dir's parent revisions is stripped, the working\n"
-"    directory will be updated to the parent of the stripped revision.\n"
+"    If one of the working directory's parent revisions is stripped, the\n"
+"    working directory will be updated to the parent of the stripped\n"
+"    revision.\n"
 "    "
 msgstr ""
 "从版本库删除一个版本以及它的子孙\n"
@@ -3162,33 +2903,34 @@
 "set or print guarded patches to push\n"
 "\n"
 "    Use the qguard command to set or print guards on patch, then use\n"
-"    qselect to tell mq which guards to use. A patch will be pushed if it\n"
-"    has no guards or any positive guards match the currently selected guard,\n"
-"    but will not be pushed if any negative guards match the current guard.\n"
-"    For example:\n"
+"    qselect to tell mq which guards to use. A patch will be pushed if\n"
+"    it has no guards or any positive guards match the currently\n"
+"    selected guard, but will not be pushed if any negative guards\n"
+"    match the current guard. For example:\n"
 "\n"
 "        qguard foo.patch -stable    (negative guard)\n"
 "        qguard bar.patch +stable    (positive guard)\n"
 "        qselect stable\n"
 "\n"
 "    This activates the \"stable\" guard. mq will skip foo.patch (because\n"
-"    it has a negative match) but push bar.patch (because it\n"
-"    has a positive match).\n"
+"    it has a negative match) but push bar.patch (because it has a\n"
+"    positive match).\n"
 "\n"
 "    With no arguments, prints the currently active guards.\n"
 "    With one argument, sets the active guard.\n"
 "\n"
 "    Use -n/--none to deactivate guards (no other arguments needed).\n"
-"    When no guards are active, patches with positive guards are skipped\n"
-"    and patches with negative guards are pushed.\n"
+"    When no guards are active, patches with positive guards are\n"
+"    skipped and patches with negative guards are pushed.\n"
 "\n"
 "    qselect can change the guards on applied patches. It does not pop\n"
-"    guarded patches by default. Use --pop to pop back to the last applied\n"
-"    patch that is not guarded. Use --reapply (which implies --pop) to push\n"
-"    back to the current patch afterwards, but skip guarded patches.\n"
-"\n"
-"    Use -s/--series to print a list of all guards in the series file (no\n"
-"    other arguments needed). Use -v for more information."
+"    guarded patches by default. Use --pop to pop back to the last\n"
+"    applied patch that is not guarded. Use --reapply (which implies\n"
+"    --pop) to push back to the current patch afterwards, but skip\n"
+"    guarded patches.\n"
+"\n"
+"    Use -s/--series to print a list of all guards in the series file\n"
+"    (no other arguments needed). Use -v for more information."
 msgstr ""
 
 msgid "guards deactivated\n"
@@ -3223,17 +2965,18 @@
 msgid ""
 "move applied patches into repository history\n"
 "\n"
-"    Finishes the specified revisions (corresponding to applied patches) by\n"
-"    moving them out of mq control into regular repository history.\n"
-"\n"
-"    Accepts a revision range or the --applied option. If --applied is\n"
-"    specified, all applied mq revisions are removed from mq control.\n"
-"    Otherwise, the given revisions must be at the base of the stack of\n"
-"    applied patches.\n"
-"\n"
-"    This can be especially useful if your changes have been applied to an\n"
-"    upstream repository, or if you are about to push your changes to "
-"upstream.\n"
+"    Finishes the specified revisions (corresponding to applied\n"
+"    patches) by moving them out of mq control into regular repository\n"
+"    history.\n"
+"\n"
+"    Accepts a revision range or the -a/--applied option. If --applied\n"
+"    is specified, all applied mq revisions are removed from mq\n"
+"    control. Otherwise, the given revisions must be at the base of the\n"
+"    stack of applied patches.\n"
+"\n"
+"    This can be especially useful if your changes have been applied to\n"
+"    an upstream repository, or if you are about to push your changes\n"
+"    to upstream.\n"
 "    "
 msgstr ""
 
@@ -3272,8 +3015,9 @@
 msgid "use uncompressed transfer (fast over LAN)"
 msgstr "使用不压缩的传输(在局域网更快)"
 
-msgid "location of source patch repo"
-msgstr ""
+#, fuzzy
+msgid "location of source patch repository"
+msgstr "为此版本库启动服务 'inotify'"
 
 msgid "hg qclone [OPTION]... SOURCE [DEST]"
 msgstr ""
@@ -3287,7 +3031,7 @@
 msgid "keep patch file"
 msgstr ""
 
-msgid "stop managing a revision"
+msgid "stop managing a revision (DEPRECATED)"
 msgstr ""
 
 msgid "hg qdelete [-k] [-r REV]... [PATCH]..."
@@ -3320,10 +3064,12 @@
 msgid "hg qheader [PATCH]"
 msgstr ""
 
-msgid "import file in patch dir"
+#, fuzzy
+msgid "import file in patch directory"
 msgstr "从补丁目录导入文件"
 
-msgid "patch file name"
+#, fuzzy
+msgid "name of patch file"
 msgstr "补丁文件名称"
 
 msgid "overwrite existing files"
@@ -3335,7 +3081,10 @@
 msgid "use git extended diff format"
 msgstr "使用 git 扩展差异格式"
 
-msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-r REV]... FILE..."
+msgid "qpush after importing"
+msgstr ""
+
+msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-P] [-r REV]... FILE..."
 msgstr ""
 
 msgid "create queue repository"
@@ -3422,8 +3171,9 @@
 msgid "delete save entry"
 msgstr ""
 
-msgid "update queue working dir"
-msgstr ""
+#, fuzzy
+msgid "update queue working directory"
+msgstr "正在更新工作目录\n"
 
 msgid "hg qrestore [-d] [-u] REV"
 msgstr ""
@@ -3489,7 +3239,7 @@
 msgstr ""
 
 msgid ""
-"hook extension to email notifications on commits/pushes\n"
+"send e-mail notifications for commits/pushes\n"
 "\n"
 "Subscriptions can be managed through hgrc. Default mode is to print\n"
 "messages to stdout, for testing and configuring.\n"
@@ -3544,31 +3294,10 @@
 "   # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
 "   pattern = user@host\n"
 "\n"
-" glob patterns are matched against path to repo root.\n"
-"\n"
-" if you like, you can put notify config file in repo that users can\n"
-" push changes to, they can manage their own subscriptions."
-msgstr ""
-
-msgid "email notification class."
-msgstr ""
-
-msgid "strip leading slashes from local path, turn into web-safe path."
-msgstr ""
-
-msgid "try to clean up email addresses."
-msgstr ""
-
-msgid "return list of email addresses of subscribers to this repo."
-msgstr ""
-
-msgid "format one changeset."
-msgstr ""
-
-msgid "true if incoming changes from this source should be skipped."
-msgstr ""
-
-msgid "send message."
+" glob patterns are matched against path to repository root.\n"
+"\n"
+" if you like, you can put notify config file in repository that users\n"
+" can push changes to, they can manage their own subscriptions."
 msgstr ""
 
 #, python-format
@@ -3593,15 +3322,8 @@
 "\n"
 msgstr ""
 
-msgid ""
-"send email notifications to interested subscribers.\n"
-"\n"
-"    if used as changegroup hook, send one email for all changesets in\n"
-"    changegroup. else send one email per changeset."
-msgstr ""
-
-#, python-format
-msgid "notify: no subscribers to repo %s\n"
+#, python-format
+msgid "notify: no subscribers to repository %s\n"
 msgstr ""
 
 #, python-format
@@ -3609,19 +3331,18 @@
 msgstr ""
 
 msgid ""
-"browse command output with external pager\n"
+"browse command output with an external pager\n"
 "\n"
 "To set the pager that should be used, set the application variable:\n"
 "\n"
 "  [pager]\n"
 "  pager = LESS='FSRX' less\n"
 "\n"
-"If no pager is set, the pager extensions uses the environment\n"
-"variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager\n"
-"is used.\n"
-"\n"
-"If you notice \"BROKEN PIPE\" error messages, you can disable them\n"
-"by setting:\n"
+"If no pager is set, the pager extensions uses the environment variable\n"
+"$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.\n"
+"\n"
+"If you notice \"BROKEN PIPE\" error messages, you can disable them by\n"
+"setting:\n"
 "\n"
 "  [pager]\n"
 "  quiet = True\n"
@@ -3632,27 +3353,27 @@
 "  [pager]\n"
 "  ignore = version, help, update\n"
 "\n"
-"You can also enable the pager only for certain commands using pager.attend:\n"
+"You can also enable the pager only for certain commands using\n"
+"pager.attend:\n"
 "\n"
 "  [pager]\n"
 "  attend = log\n"
 "\n"
 "If pager.attend is present, pager.ignore will be ignored.\n"
 "\n"
-"To ignore global commands like \"hg version\" or \"hg help\", you have to "
-"specify\n"
-"them in the global .hgrc\n"
-msgstr ""
-
-msgid ""
-"use suffixes to refer to ancestor revisions\n"
-"\n"
-"This extension allows you to use git-style suffixes to refer to\n"
-"the ancestors of a specific revision.\n"
+"To ignore global commands like \"hg version\" or \"hg help\", you have to\n"
+"specify them in the global .hgrc\n"
+msgstr ""
+
+msgid ""
+"interpret suffixes to refer to ancestor revisions\n"
+"\n"
+"This extension allows you to use git-style suffixes to refer to the\n"
+"ancestors of a specific revision.\n"
 "\n"
 "For example, if you can refer to a revision as \"foo\", then:\n"
 "\n"
-"- foo^N = Nth parent of foo:\n"
+"- foo^N = Nth parent of foo\n"
 "  foo^0 = foo\n"
 "  foo^1 = first parent of foo\n"
 "  foo^2 = second parent of foo\n"
@@ -3665,34 +3386,31 @@
 msgstr ""
 
 msgid ""
-"sending Mercurial changesets as a series of patch emails\n"
-"\n"
-"The series is started off with a \"[PATCH 0 of N]\" introduction,\n"
-"which describes the series as a whole.\n"
-"\n"
-"Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
-"the first line of the changeset description as the subject text.\n"
-"The message contains two or three body parts:\n"
-"\n"
-"  The remainder of the changeset description.\n"
+"send Mercurial changesets as a series of patch e-mails\n"
+"\n"
+"The series is started off with a \"[PATCH 0 of N]\" introduction, which\n"
+"describes the series as a whole.\n"
+"\n"
+"Each patch email has a Subject line of \"[PATCH M of N] ...\", using the\n"
+"first line of the changeset description as the subject text. The\n"
+"message contains two or three body parts:\n"
+"\n"
+"  The changeset description.\n"
 "\n"
 "  [Optional] The result of running diffstat on the patch.\n"
 "\n"
 "  The patch itself, as generated by \"hg export\".\n"
 "\n"
-"Each message refers to all of its predecessors using the In-Reply-To\n"
-"and References headers, so they will show up as a sequence in\n"
-"threaded mail and news readers, and in mail archives.\n"
-"\n"
-"For each changeset, you will be prompted with a diffstat summary and\n"
-"the changeset summary, so you can be sure you are sending the right changes.\n"
-"\n"
-"To enable this extension:\n"
-"\n"
-"  [extensions]\n"
-"  hgext.patchbomb =\n"
-"\n"
-"To configure other defaults, add a section like this to your hgrc file:\n"
+"Each message refers to the first in the series using the In-Reply-To\n"
+"and References headers, so they will show up as a sequence in threaded\n"
+"mail and news readers, and in mail archives.\n"
+"\n"
+"With the -d/--diffstat option, you will be prompted for each changeset\n"
+"with a diffstat summary and the changeset summary, so you can be sure\n"
+"you are sending the right changes.\n"
+"\n"
+"To configure other defaults, add a section like this to your hgrc\n"
+"file:\n"
 "\n"
 "  [email]\n"
 "  from = My Name <my@email>\n"
@@ -3704,34 +3422,34 @@
 "as a patchbomb.\n"
 "\n"
 "To avoid sending patches prematurely, it is a good idea to first run\n"
-"the \"email\" command with the \"-n\" option (test only).  You will be\n"
-"prompted for an email recipient address, a subject an an introductory\n"
-"message describing the patches of your patchbomb.  Then when all is\n"
-"done, patchbomb messages are displayed. If PAGER environment variable\n"
-"is set, your pager will be fired up once for each patchbomb message, so\n"
-"you can verify everything is alright.\n"
-"\n"
-"The \"-m\" (mbox) option is also very useful.  Instead of previewing\n"
-"each patchbomb message in a pager or sending the messages directly,\n"
-"it will create a UNIX mailbox file with the patch emails.  This\n"
-"mailbox file can be previewed with any mail user agent which supports\n"
-"UNIX mbox files, e.g. with mutt:\n"
+"the \"email\" command with the \"-n\" option (test only). You will be\n"
+"prompted for an email recipient address, a subject and an introductory\n"
+"message describing the patches of your patchbomb. Then when all is\n"
+"done, patchbomb messages are displayed. If the PAGER environment\n"
+"variable is set, your pager will be fired up once for each patchbomb\n"
+"message, so you can verify everything is alright.\n"
+"\n"
+"The -m/--mbox option is also very useful. Instead of previewing each\n"
+"patchbomb message in a pager or sending the messages directly, it will\n"
+"create a UNIX mailbox file with the patch emails. This mailbox file\n"
+"can be previewed with any mail user agent which supports UNIX mbox\n"
+"files, e.g. with mutt:\n"
 "\n"
 "  % mutt -R -f mbox\n"
 "\n"
 "When you are previewing the patchbomb messages, you can use `formail'\n"
-"(a utility that is commonly installed as part of the procmail package),\n"
-"to send each message out:\n"
+"(a utility that is commonly installed as part of the procmail\n"
+"package), to send each message out:\n"
 "\n"
 "  % formail -s sendmail -bm -t < mbox\n"
 "\n"
 "That should be all. Now your patchbomb is on its way out.\n"
 "\n"
 "You can also either configure the method option in the email section\n"
-"to be a sendmail compatable mailer or fill out the [smtp] section so\n"
-"that the patchbomb extension can automatically send patchbombs directly\n"
-"from the commandline. See the [email] and [smtp] sections in hgrc(5)\n"
-"for details."
+"to be a sendmail compatible mailer or fill out the [smtp] section so\n"
+"that the patchbomb extension can automatically send patchbombs\n"
+"directly from the commandline. See the [email] and [smtp] sections in\n"
+"hgrc(5) for details."
 msgstr ""
 
 msgid "Please enter a valid value.\n"
@@ -3747,23 +3465,29 @@
 "send changesets by email\n"
 "\n"
 "    By default, diffs are sent in the format generated by hg export,\n"
-"    one per message.  The series starts with a \"[PATCH 0 of N]\"\n"
+"    one per message. The series starts with a \"[PATCH 0 of N]\"\n"
 "    introduction, which describes the series as a whole.\n"
 "\n"
 "    Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n"
 "    the first line of the changeset description as the subject text.\n"
-"    The message contains two or three body parts.  First, the rest of\n"
-"    the changeset description.  Next, (optionally) if the diffstat\n"
-"    program is installed, the result of running diffstat on the patch.\n"
-"    Finally, the patch itself, as generated by \"hg export\".\n"
-"\n"
-"    With --outgoing, emails will be generated for patches not\n"
-"    found in the destination repository (or only those which are\n"
-"    ancestors of the specified revisions if any are provided)\n"
-"\n"
-"    With --bundle, changesets are selected as for --outgoing,\n"
-"    but a single email containing a binary Mercurial bundle as an\n"
-"    attachment will be sent.\n"
+"    The message contains two or three parts. First, the changeset\n"
+"    description. Next, (optionally) if the diffstat program is\n"
+"    installed and -d/--diffstat is used, the result of running\n"
+"    diffstat on the patch. Finally, the patch itself, as generated by\n"
+"    \"hg export\".\n"
+"\n"
+"    By default the patch is included as text in the email body for\n"
+"    easy reviewing. Using the -a/--attach option will instead create\n"
+"    an attachment for the patch. With -i/--inline an inline attachment\n"
+"    will be created.\n"
+"\n"
+"    With -o/--outgoing, emails will be generated for patches not found\n"
+"    in the destination repository (or only those which are ancestors\n"
+"    of the specified revisions if any are provided)\n"
+"\n"
+"    With -b/--bundle, changesets are selected as for --outgoing, but a\n"
+"    single email containing a binary Mercurial bundle as an attachment\n"
+"    will be sent.\n"
 "\n"
 "    Examples:\n"
 "\n"
@@ -3783,12 +3507,9 @@
 "default\n"
 "    hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in DEST\n"
 "\n"
-"    Before using this command, you will need to enable email in your hgrc.\n"
-"    See the [email] section in hgrc(5) for details.\n"
-"    "
-msgstr ""
-
-msgid "Return the revisions present locally but not in dest"
+"    Before using this command, you will need to enable email in your\n"
+"    hgrc. See the [email] section in hgrc(5) for details.\n"
+"    "
 msgstr ""
 
 msgid "specify at least one changeset with -r or -o"
@@ -3860,6 +3581,9 @@
 msgid "subject of first message (intro or single patch)"
 msgstr ""
 
+msgid "message identifier to reply to"
+msgstr ""
+
 msgid "email addresses of recipients"
 msgstr ""
 
@@ -3872,13 +3596,17 @@
 msgid "send changes not in target as a binary bundle"
 msgstr ""
 
+msgid "name of the bundle attachment file"
+msgstr ""
+
 msgid "a revision to send"
 msgstr ""
 
-msgid "run even when remote repository is unrelated (with -b)"
-msgstr ""
-
-msgid "a base changeset to specify instead of a destination (with -b)"
+#, fuzzy
+msgid "run even when remote repository is unrelated (with -b/--bundle)"
+msgstr "纵然远程版本库是无关的也要执行"
+
+msgid "a base changeset to specify instead of a destination (with -b/--bundle)"
 msgstr ""
 
 msgid "send an introduction email for a single patch"
@@ -3887,16 +3615,19 @@
 msgid "hg email [OPTION]... [DEST]..."
 msgstr ""
 
+msgid "delete files not tracked from the working directory"
+msgstr ""
+
 msgid ""
 "removes files not tracked by Mercurial\n"
 "\n"
-"    Delete files not known to Mercurial. This is useful to test local and\n"
-"    uncommitted changes in an otherwise-clean source tree.\n"
+"    Delete files not known to Mercurial. This is useful to test local\n"
+"    and uncommitted changes in an otherwise-clean source tree.\n"
 "\n"
 "    This means that purge will delete:\n"
 "     - Unknown files: files marked with \"?\" by \"hg status\"\n"
-"     - Empty directories: in fact Mercurial ignores directories unless they\n"
-"       contain files under source control managment\n"
+"     - Empty directories: in fact Mercurial ignores directories unless\n"
+"       they contain files under source control management\n"
 "    But it will leave untouched:\n"
 "     - Modified and unmodified tracked files\n"
 "     - Ignored files (unless --all is specified)\n"
@@ -3905,9 +3636,10 @@
 "    If directories are given on the command line, only files in these\n"
 "    directories are considered.\n"
 "\n"
-"    Be careful with purge, as you could irreversibly delete some files you\n"
-"    forgot to add to the repository. If you only want to print the list of\n"
-"    files that this program would delete, use the --print option.\n"
+"    Be careful with purge, as you could irreversibly delete some files\n"
+"    you forgot to add to the repository. If you only want to print the\n"
+"    list of files that this program would delete, use the --print\n"
+"    option.\n"
 "    "
 msgstr ""
 
@@ -3933,11 +3665,12 @@
 msgid "purge ignored files too"
 msgstr ""
 
-msgid "print the file names instead of deleting them"
-msgstr ""
-
-msgid "end filenames with NUL, for use with xargs (implies -p)"
-msgstr ""
+msgid "print filenames instead of deleting them"
+msgstr ""
+
+#, fuzzy
+msgid "end filenames with NUL, for use with xargs (implies -p/--print)"
+msgstr "在文件名称结尾增加 NUL,用于 xargs"
 
 msgid "hg purge [OPTION]... [DIR]..."
 msgstr ""
@@ -3945,35 +3678,26 @@
 msgid ""
 "move sets of revisions to a different ancestor\n"
 "\n"
-"This extension lets you rebase changesets in an existing Mercurial "
+"This extension lets you rebase changesets in an existing Mercurial\n"
 "repository.\n"
 "\n"
 "For more information:\n"
 "http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject\n"
 msgstr ""
 
-msgid "return the correct ancestor"
-msgstr ""
-
 msgid "first revision, do not change ancestor\n"
 msgstr ""
 
 msgid ""
 "move changeset (and descendants) to a different branch\n"
 "\n"
-"    Rebase uses repeated merging to graft changesets from one part of "
-"history\n"
-"    onto another. This can be useful for linearizing local changes relative "
-"to\n"
-"    a master development tree.\n"
-"\n"
-"    If a rebase is interrupted to manually resolve a merge, it can be "
-"continued\n"
-"    with --continue or aborted with --abort.\n"
-"    "
-msgstr ""
-
-msgid "cannot use both keepbranches and extrafn"
+"    Rebase uses repeated merging to graft changesets from one part of\n"
+"    history onto another. This can be useful for linearizing local\n"
+"    changes relative to a master development tree.\n"
+"\n"
+"    If a rebase is interrupted to manually resolve a merge, it can be\n"
+"    continued with --continue/-c or aborted with --abort/-a.\n"
+"    "
 msgstr ""
 
 msgid "cannot use both abort and continue"
@@ -3991,6 +3715,9 @@
 msgid "nothing to rebase\n"
 msgstr ""
 
+msgid "cannot use both keepbranches and extrafn"
+msgstr ""
+
 msgid "rebase merging completed\n"
 msgstr ""
 
@@ -4004,18 +3731,9 @@
 msgid "%d revisions have been skipped\n"
 msgstr ""
 
-msgid ""
-"Skip commit if collapsing has been required and rev is not the last\n"
-"    revision, commit otherwise\n"
-"    "
-msgstr ""
-
 msgid " set parents\n"
 msgstr ""
 
-msgid "Rebase a single revision"
-msgstr ""
-
 #, python-format
 msgid "rebasing %d:%s\n"
 msgstr ""
@@ -4049,16 +3767,10 @@
 msgid "next revision set to %s\n"
 msgstr ""
 
-msgid "Return the new parent relationship of the revision that will be rebased"
-msgstr ""
-
 #, python-format
 msgid "cannot use revision %d as base, result would have 3 parents"
 msgstr ""
 
-msgid "Update rebased mq patches - finalize and then import them"
-msgstr ""
-
 #, python-format
 msgid "revision %d is an mq patch (%s), finalize it.\n"
 msgstr ""
@@ -4067,36 +3779,21 @@
 msgid "import mq patch %d (%s)\n"
 msgstr ""
 
-msgid "Store the current status to allow recovery"
-msgstr ""
-
 msgid "rebase status stored\n"
 msgstr ""
 
-msgid "Remove the status files"
-msgstr ""
-
-msgid "Restore a previously stored status"
-msgstr ""
-
 msgid "rebase status resumed\n"
 msgstr ""
 
 msgid "no rebase in progress"
 msgstr ""
 
-msgid "Restore the repository to its original state"
-msgstr ""
-
 msgid "warning: new changesets detected on target branch, not stripping\n"
 msgstr ""
 
 msgid "rebase aborted\n"
 msgstr ""
 
-msgid "Define which revisions are going to be rebased and where"
-msgstr ""
-
 msgid "cannot rebase onto an applied mq patch"
 msgstr ""
 
@@ -4119,24 +3816,12 @@
 msgid "unable to collapse, there is more than one external parent"
 msgstr ""
 
-msgid "Call rebase after pull if the latter has been invoked with --rebase"
-msgstr ""
-
 msgid "--update and --rebase are not compatible, ignoring the update flag\n"
 msgstr ""
 
-msgid "Replace pull with a decorator to provide --rebase option"
-msgstr ""
-
 msgid "rebase working directory to branch head"
 msgstr ""
 
-msgid "keep original revisions"
-msgstr ""
-
-msgid "keep original branches"
-msgstr ""
-
 msgid "rebase from a given revision"
 msgstr ""
 
@@ -4149,6 +3834,12 @@
 msgid "collapse the rebased revisions"
 msgstr ""
 
+msgid "keep original revisions"
+msgstr ""
+
+msgid "keep original branches"
+msgstr ""
+
 msgid "continue an interrupted rebase"
 msgstr ""
 
@@ -4156,30 +3847,11 @@
 msgstr ""
 
 msgid ""
-"hg rebase [-s rev | -b rev] [-d rev] [--collapse] | [-c] | [-a] | [--keep]"
-msgstr ""
-
-msgid "interactive change selection during commit or qrefresh"
-msgstr ""
-
-msgid ""
-"like patch.iterhunks, but yield different events\n"
-"\n"
-"    - ('file',    [header_lines + fromfile + tofile])\n"
-"    - ('context', [context_lines])\n"
-"    - ('hunk',    [hunk_lines])\n"
-"    - ('range',   (-start,len, +start,len, diffp))\n"
-"    "
-msgstr ""
-
-msgid "scan lr while predicate holds"
-msgstr ""
-
-msgid ""
-"patch header\n"
-"\n"
-"    XXX shoudn't we move this to mercurial/patch.py ?\n"
-"    "
+"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--keep] [--keepbranches] | "
+"[-c] | [-a]"
+msgstr ""
+
+msgid "interactively select which sets of changes to commit/qrefresh"
 msgstr ""
 
 msgid "this modifies a binary file (all or nothing)\n"
@@ -4192,46 +3864,35 @@
 msgid "%d hunks, %d lines changed\n"
 msgstr ""
 
-msgid "hunk -> (n+,n-)"
-msgstr ""
-
-msgid ""
-"patch hunk\n"
-"\n"
-"    XXX shouldn't we merge this with patch.hunk ?\n"
-"    "
-msgstr ""
-
-msgid "patch -> [] of hunks "
-msgstr ""
-
-msgid "patch parsing state machine"
-msgstr ""
-
-msgid "Interactively filter patch chunks into applied-only chunks"
-msgstr ""
-
-msgid ""
-"fetch next portion from chunks until a 'header' is seen\n"
-"        NB: header == new-file mark\n"
-"        "
-msgstr ""
-
-msgid ""
-"prompt query, and process base inputs\n"
-"\n"
-"        - y/n for the rest of file\n"
-"        - y/n for the rest\n"
-"        - ? (help)\n"
-"        - q (quit)\n"
-"\n"
-"        else, input is returned to the caller.\n"
-"        "
-msgstr ""
-
 msgid "[Ynsfdaq?]"
 msgstr ""
 
+msgid "&Yes, record this change"
+msgstr ""
+
+msgid "&No, skip this change"
+msgstr ""
+
+msgid "&Skip remaining changes to this file"
+msgstr ""
+
+msgid "Record remaining changes to this &file"
+msgstr ""
+
+msgid "&Done, skip remaining changes and files"
+msgstr ""
+
+#, fuzzy
+msgid "Record &all changes to all remaining files"
+msgstr "将丢失的文件视为删除"
+
+#, fuzzy
+msgid "&Quit, recording no changes"
+msgstr "正在搜索修改\n"
+
+msgid "&?"
+msgstr ""
+
 msgid "y"
 msgstr ""
 
@@ -4270,6 +3931,10 @@
 msgid "record this change to %r?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "record change %d/%d to %r?"
+msgstr "不需要改变 %s\n"
+
 msgid ""
 "interactively select changes to commit\n"
 "\n"
@@ -4280,7 +3945,7 @@
 "\n"
 "    You will be prompted for whether to record changes to each\n"
 "    modified file, and for files with multiple changes, for each\n"
-"    change to use.  For each query, the following responses are\n"
+"    change to use. For each query, the following responses are\n"
 "    possible:\n"
 "\n"
 "    y - record this change\n"
@@ -4296,35 +3961,12 @@
 "    ? - display help"
 msgstr ""
 
-msgid ""
-"interactively record a new patch\n"
-"\n"
-"    see 'hg help qnew' & 'hg help record' for more information and usage\n"
-"    "
-msgstr ""
-
 msgid "'mq' extension not loaded"
 msgstr ""
 
 msgid "running non-interactively, use commit instead"
 msgstr ""
 
-msgid ""
-"This is generic record driver.\n"
-"\n"
-"        It's job is to interactively filter local changes, and accordingly\n"
-"        prepare working dir into a state, where the job can be delegated to\n"
-"        non-interactive commit command such as 'commit' or 'qrefresh'.\n"
-"\n"
-"        After the actual job is done by non-interactive command, working dir\n"
-"        state is restored to original.\n"
-"\n"
-"        In the end we'll record intresting changes, and everything else will "
-"be\n"
-"        left in place, so the user can continue his work.\n"
-"        "
-msgstr ""
-
 msgid "no changes to record\n"
 msgstr ""
 
@@ -4348,21 +3990,33 @@
 msgid "hg qrecord [OPTION]... PATCH [FILE]..."
 msgstr ""
 
-msgid ""
-"patch transplanting tool\n"
+msgid "share a common history between several working directories"
+msgstr ""
+
+msgid ""
+"create a new shared repository (experimental)\n"
+"\n"
+"    Initialize a new repository and working directory that shares its\n"
+"    history with another repository.\n"
+"\n"
+"    NOTE: actions that change history such as rollback or moving the\n"
+"    source may confuse sharers.\n"
+"    "
+msgstr ""
+
+msgid "do not create a working copy"
+msgstr ""
+
+msgid "[-U] SOURCE [DEST]"
+msgstr ""
+
+msgid ""
+"transplant changesets from another branch\n"
 "\n"
 "This extension allows you to transplant patches from another branch.\n"
 "\n"
-"Transplanted patches are recorded in .hg/transplant/transplants, as a map\n"
-"from a changeset hash to its hash in the source repository.\n"
-msgstr ""
-
-msgid ""
-"returns True if a node is already an ancestor of parent\n"
-"        or has already been transplanted"
-msgstr ""
-
-msgid "apply the revisions in revmap one by one in revision order"
+"Transplanted patches are recorded in .hg/transplant/transplants, as a\n"
+"map from a changeset hash to its hash in the source repository.\n"
 msgstr ""
 
 #, python-format
@@ -4381,9 +4035,6 @@
 msgid "%s transplanted to %s\n"
 msgstr ""
 
-msgid "arbitrarily rewrite changeset before applying it"
-msgstr ""
-
 #, python-format
 msgid "filtering %s\n"
 msgstr ""
@@ -4391,9 +4042,6 @@
 msgid "filter failed"
 msgstr ""
 
-msgid "apply the patch in patchfile to the repository as a transplant"
-msgstr ""
-
 msgid "can only omit patchfile if merging"
 msgstr ""
 
@@ -4404,16 +4052,10 @@
 msgid "Fix up the merge and run hg transplant --continue"
 msgstr ""
 
-msgid "recover last transaction and apply remaining changesets"
-msgstr ""
-
 #, python-format
 msgid "%s transplanted as %s\n"
 msgstr ""
 
-msgid "commit working directory using journal metadata"
-msgstr ""
-
 msgid "transplant log file is corrupt"
 msgstr ""
 
@@ -4424,15 +4066,6 @@
 msgid "commit failed"
 msgstr ""
 
-msgid "journal changelog metadata for later recover"
-msgstr ""
-
-msgid "remove changelog journal"
-msgstr ""
-
-msgid "interactively transplant changesets"
-msgstr ""
-
 msgid "apply changeset? [ynmpcq?]:"
 msgstr ""
 
@@ -4446,28 +4079,31 @@
 "    (transplanted from CHANGESETHASH)\n"
 "\n"
 "    You can rewrite the changelog message with the --filter option.\n"
-"    Its argument will be invoked with the current changelog message\n"
-"    as $1 and the patch as $2.\n"
-"\n"
-"    If --source is specified, selects changesets from the named\n"
-"    repository. If --branch is specified, selects changesets from the\n"
-"    branch holding the named revision, up to that revision. If --all\n"
-"    is specified, all changesets on the branch will be transplanted,\n"
-"    otherwise you will be prompted to select the changesets you want.\n"
-"\n"
-"    hg transplant --branch REVISION --all will rebase the selected branch\n"
-"    (up to the named revision) onto your current working directory.\n"
-"\n"
-"    You can optionally mark selected transplanted changesets as\n"
-"    merge changesets. You will not be prompted to transplant any\n"
-"    ancestors of a merged transplant, and you can merge descendants\n"
-"    of them normally instead of transplanting them.\n"
+"    Its argument will be invoked with the current changelog message as\n"
+"    $1 and the patch as $2.\n"
+"\n"
+"    If --source/-s is specified, selects changesets from the named\n"
+"    repository. If --branch/-b is specified, selects changesets from\n"
+"    the branch holding the named revision, up to that revision. If\n"
+"    --all/-a is specified, all changesets on the branch will be\n"
+"    transplanted, otherwise you will be prompted to select the\n"
+"    changesets you want.\n"
+"\n"
+"    hg transplant --branch REVISION --all will rebase the selected\n"
+"    branch (up to the named revision) onto your current working\n"
+"    directory.\n"
+"\n"
+"    You can optionally mark selected transplanted changesets as merge\n"
+"    changesets. You will not be prompted to transplant any ancestors\n"
+"    of a merged transplant, and you can merge descendants of them\n"
+"    normally instead of transplanting them.\n"
 "\n"
 "    If no merges or revisions are provided, hg transplant will start\n"
 "    an interactive changeset browser.\n"
 "\n"
-"    If a changeset application fails, you can fix the merge by hand and\n"
-"    then resume where you left off by calling hg transplant --continue.\n"
+"    If a changeset application fails, you can fix the merge by hand\n"
+"    and then resume where you left off by calling hg transplant\n"
+"    --continue/-c.\n"
 "    "
 msgstr ""
 
@@ -4521,37 +4157,33 @@
 msgstr ""
 
 msgid ""
-"allow to use MBCS path with problematic encoding.\n"
-"\n"
-"Some MBCS encodings are not good for some path operations\n"
-"(i.e. splitting path, case conversion, etc.) with its encoded bytes.\n"
-"We call such a encoding (i.e. shift_jis and big5) as \"problematic\n"
-"encoding\".  This extension can be used to fix the issue with those\n"
-"encodings by wrapping some functions to convert to unicode string\n"
-"before path operation.\n"
-"\n"
-"This extension is usefull for:\n"
+"allow the use of MBCS paths with problematic encoding\n"
+"\n"
+"Some MBCS encodings are not good for some path operations (i.e.\n"
+"splitting path, case conversion, etc.) with its encoded bytes. We call\n"
+"such a encoding (i.e. shift_jis and big5) as \"problematic encoding\".\n"
+"This extension can be used to fix the issue with those encodings by\n"
+"wrapping some functions to convert to Unicode string before path\n"
+"operation.\n"
+"\n"
+"This extension is useful for:\n"
 " * Japanese Windows users using shift_jis encoding.\n"
 " * Chinese Windows users using big5 encoding.\n"
-" * All users who use a repository with one of problematic encodings\n"
-"   on case-insensitive file system.\n"
+" * All users who use a repository with one of problematic encodings on\n"
+"   case-insensitive file system.\n"
 "\n"
 "This extension is not needed for:\n"
-" * Any user who use only ascii chars in path.\n"
+" * Any user who use only ASCII chars in path.\n"
 " * Any user who do not use any of problematic encodings.\n"
 "\n"
 "Note that there are some limitations on using this extension:\n"
 " * You should use single encoding in one repository.\n"
-" * You should set same encoding for the repository by locale or HGENCODING.\n"
-"\n"
-"To use this extension, enable the extension in .hg/hgrc or ~/.hgrc:\n"
-"\n"
-"  [extensions]\n"
-"  hgext.win32mbcs =\n"
-"\n"
-"Path encoding conversion are done between unicode and util._encoding\n"
-"which is decided by mercurial from current locale setting or HGENCODING.\n"
-"\n"
+" * You should set same encoding for the repository by locale or\n"
+"   HGENCODING.\n"
+"\n"
+"Path encoding conversion are done between Unicode and\n"
+"encoding.encoding which is decided by Mercurial from current locale\n"
+"setting or HGENCODING.\n"
 msgstr ""
 
 #, python-format
@@ -4565,6 +4197,35 @@
 msgid "[win32mbcs] activated with encoding: %s\n"
 msgstr ""
 
+msgid ""
+"perform automatic newline conversion\n"
+"\n"
+"To perform automatic newline conversion, use:\n"
+"\n"
+"[extensions]\n"
+"hgext.win32text =\n"
+"[encode]\n"
+"** = cleverencode:\n"
+"# or ** = macencode:\n"
+"\n"
+"[decode]\n"
+"** = cleverdecode:\n"
+"# or ** = macdecode:\n"
+"\n"
+"If not doing conversion, to make sure you do not commit CRLF/CR by accident:\n"
+"\n"
+"[hooks]\n"
+"pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"
+"# or pretxncommit.cr = python:hgext.win32text.forbidcr\n"
+"\n"
+"To do the same check on a server to prevent CRLF/CR from being\n"
+"pushed or pulled:\n"
+"\n"
+"[hooks]\n"
+"pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf\n"
+"# or pretxnchangegroup.cr = python:hgext.win32text.forbidcr\n"
+msgstr ""
+
 #, python-format
 msgid ""
 "WARNING: %s already has %s line endings\n"
@@ -4601,21 +4262,14 @@
 msgstr ""
 
 msgid ""
-"zeroconf support for mercurial repositories\n"
-"\n"
-"Zeroconf enabled repositories will be announced in a network without the "
-"need\n"
-"to configure a server or a service. They can be discovered without knowing\n"
-"their actual IP address.\n"
-"\n"
-"To use the zeroconf extension add the following entry to your hgrc file:\n"
-"\n"
-"[extensions]\n"
-"hgext.zeroconf =\n"
-"\n"
-"To allow other people to discover your repository using run \"hg serve\" in "
-"your\n"
-"repository.\n"
+"discover and advertise repositories on the local network\n"
+"\n"
+"Zeroconf enabled repositories will be announced in a network without\n"
+"the need to configure a server or a service. They can be discovered\n"
+"without knowing their actual IP address.\n"
+"\n"
+"To allow other people to discover your repository using run \"hg serve\"\n"
+"in your repository.\n"
 "\n"
 " $ cd test\n"
 " $ hg serve\n"
@@ -4665,6 +4319,9 @@
 msgid "premature EOF reading chunk (got %d bytes, expected %d)"
 msgstr ""
 
+msgid "empty username"
+msgstr ""
+
 #, python-format
 msgid "username %s contains a newline"
 msgstr ""
@@ -4686,7 +4343,7 @@
 msgstr ""
 
 #, python-format
-msgid "invalid format spec '%%%s' in output file name"
+msgid "invalid format spec '%%%s' in output filename"
 msgstr ""
 
 #, python-format
@@ -4726,8 +4383,12 @@
 msgstr ""
 
 #, python-format
-msgid "%s %s to %s\n"
-msgstr ""
+msgid "moving %s to %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "copying %s to %s\n"
+msgstr "正在推到 %s\n"
 
 #, python-format
 msgid "%s has not been committed yet, so no copy data will be stored for %s.\n"
@@ -4831,32 +4492,54 @@
 msgid "%s:%s copy source revision cannot be found!\n"
 msgstr ""
 
-msgid "can only follow copies/renames for explicit file names"
-msgstr ""
-
-#, python-format
-msgid "file %s not found!"
-msgstr ""
-
-#, python-format
-msgid "no match under directory %s!"
-msgstr ""
-
-#, python-format
-msgid "can't commit %s: unsupported file type!"
-msgstr ""
-
-#, python-format
-msgid "file %s not tracked!"
-msgstr ""
-
+msgid "can only follow copies/renames for explicit filenames"
+msgstr ""
+
+msgid "HG: Enter commit message.  Lines beginning with 'HG:' are removed."
+msgstr "HG: 请输入提交日志。以 'HG:' 开始的行会被删除。"
+
+msgid "HG: Leave message empty to abort commit."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "HG: user: %s"
+msgstr "用户: %s\n"
+
+msgid "HG: branch merge"
+msgstr ""
+
+#, python-format
+msgid "HG: branch '%s'"
+msgstr ""
+
+#, python-format
+msgid "HG: added %s"
+msgstr ""
+
+#, python-format
+msgid "HG: changed %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "HG: removed %s"
+msgstr "已删除"
+
+#, fuzzy
+msgid "HG: no files changed"
+msgstr "正在增加文件改变\n"
+
+msgid "empty commit message"
+msgstr "空的提交日志"
+
+#, fuzzy
 msgid ""
 "add the specified files on the next commit\n"
 "\n"
-"    Schedule files to be version controlled and added to the repository.\n"
+"    Schedule files to be version controlled and added to the\n"
+"    repository.\n"
 "\n"
 "    The files will be added to the repository at the next commit. To\n"
-"    undo an add before that, see hg revert.\n"
+"    undo an add before that, see hg forget.\n"
 "\n"
 "    If no names are given, add all files to the repository.\n"
 "    "
@@ -4874,16 +4557,19 @@
 msgid ""
 "add all new files, delete all missing files\n"
 "\n"
-"    Add all new files and remove all missing files from the repository.\n"
-"\n"
-"    New files are ignored if they match any of the patterns in .hgignore. As\n"
-"    with add, these changes take effect at the next commit.\n"
-"\n"
-"    Use the -s option to detect renamed files. With a parameter > 0,\n"
-"    this compares every removed file with every added file and records\n"
-"    those similar enough as renames. This option takes a percentage\n"
-"    between 0 (disabled) and 100 (files must be identical) as its\n"
-"    parameter. Detecting renamed files this way can be expensive.\n"
+"    Add all new files and remove all missing files from the\n"
+"    repository.\n"
+"\n"
+"    New files are ignored if they match any of the patterns in\n"
+"    .hgignore. As with add, these changes take effect at the next\n"
+"    commit.\n"
+"\n"
+"    Use the -s/--similarity option to detect renamed files. With a\n"
+"    parameter > 0, this compares every removed file with every added\n"
+"    file and records those similar enough as renames. This option\n"
+"    takes a percentage between 0 (disabled) and 100 (files must be\n"
+"    identical) as its parameter. Detecting renamed files this way can\n"
+"    be expensive.\n"
 "    "
 msgstr ""
 
@@ -4893,18 +4579,20 @@
 msgid "similarity must be between 0 and 100"
 msgstr ""
 
-msgid ""
-"show changeset information per file line\n"
-"\n"
-"    List changes in files, showing the revision id responsible for each line\n"
-"\n"
-"    This command is useful to discover who did a change or when a change "
-"took\n"
-"    place.\n"
-"\n"
-"    Without the -a option, annotate will avoid processing files it\n"
-"    detects as binary. With -a, annotate will generate an annotation\n"
-"    anyway, probably with undesirable results.\n"
+#, fuzzy
+msgid ""
+"show changeset information by line for each file\n"
+"\n"
+"    List changes in files, showing the revision id responsible for\n"
+"    each line\n"
+"\n"
+"    This command is useful for discovering when a change was made and\n"
+"    by whom.\n"
+"\n"
+"    Without the -a/--text option, annotate will avoid processing files\n"
+"    it detects as binary. With -a, annotate will annotate the file\n"
+"    anyway, although the results will probably be neither useful\n"
+"    nor desirable.\n"
 "    "
 msgstr ""
 "显示指定文件每行的修改集信息\n"
@@ -4917,7 +4605,7 @@
 "    当使用选项 '-a' 时,annotate 会直接产生追溯,可能会有不合需要的结果\n"
 "    "
 
-msgid "at least one file name or pattern required"
+msgid "at least one filename or pattern is required"
 msgstr ""
 
 msgid "at least one of -n/-c is required for -l"
@@ -4928,12 +4616,12 @@
 msgstr ""
 
 msgid ""
-"create unversioned archive of a repository revision\n"
+"create an unversioned archive of a repository revision\n"
 "\n"
 "    By default, the revision used is the parent of the working\n"
-"    directory; use \"-r\" to specify a different revision.\n"
-"\n"
-"    To specify the type of archive to create, use \"-t\". Valid\n"
+"    directory; use -r/--rev to specify a different revision.\n"
+"\n"
+"    To specify the type of archive to create, use -t/--type. Valid\n"
 "    types are:\n"
 "\n"
 "    \"files\" (default): a directory full of files\n"
@@ -4944,11 +4632,12 @@
 "    \"zip\": zip archive, compressed using deflate\n"
 "\n"
 "    The exact name of the destination archive or directory is given\n"
-"    using a format string; see \"hg help export\" for details.\n"
+"    using a format string; see 'hg help export' for details.\n"
 "\n"
 "    Each member added to an archive file has a directory prefix\n"
-"    prepended. Use \"-p\" to specify a format string for the prefix.\n"
-"    The default is the basename of the archive, with suffixes removed.\n"
+"    prepended. Use -p/--prefix to specify a format string for the\n"
+"    prefix. The default is the basename of the archive, with suffixes\n"
+"    removed.\n"
 "    "
 msgstr ""
 
@@ -4967,15 +4656,14 @@
 "    Commit the backed out changes as a new changeset. The new\n"
 "    changeset is a child of the backed out changeset.\n"
 "\n"
-"    If you back out a changeset other than the tip, a new head is\n"
+"    If you backout a changeset other than the tip, a new head is\n"
 "    created. This head will be the new tip and you should merge this\n"
-"    backout changeset with another head (current one by default).\n"
+"    backout changeset with another head.\n"
 "\n"
 "    The --merge option remembers the parent of the working directory\n"
 "    before starting the backout, then merges the new head with that\n"
-"    changeset afterwards. This saves you from doing the merge by\n"
-"    hand. The result of this merge is not committed, as with a normal\n"
-"    merge.\n"
+"    changeset afterwards. This saves you from doing the merge by hand.\n"
+"    The result of this merge is not committed, as with a normal merge.\n"
 "\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
@@ -4987,13 +4675,13 @@
 msgid "please specify a revision to backout"
 msgstr ""
 
-msgid "cannot back out change on a different branch"
-msgstr ""
-
-msgid "cannot back out a change with no parents"
-msgstr ""
-
-msgid "cannot back out a merge changeset without --parent"
+msgid "cannot backout change on a different branch"
+msgstr ""
+
+msgid "cannot backout a change with no parents"
+msgstr ""
+
+msgid "cannot backout a merge changeset without --parent"
 msgstr ""
 
 #, python-format
@@ -5024,35 +4712,36 @@
 msgid ""
 "subdivision search of changesets\n"
 "\n"
-"    This command helps to find changesets which introduce problems.\n"
-"    To use, mark the earliest changeset you know exhibits the problem\n"
-"    as bad, then mark the latest changeset which is free from the\n"
-"    problem as good. Bisect will update your working directory to a\n"
-"    revision for testing (unless the --noupdate option is specified).\n"
-"    Once you have performed tests, mark the working directory as bad\n"
-"    or good and bisect will either update to another candidate changeset\n"
+"    This command helps to find changesets which introduce problems. To\n"
+"    use, mark the earliest changeset you know exhibits the problem as\n"
+"    bad, then mark the latest changeset which is free from the problem\n"
+"    as good. Bisect will update your working directory to a revision\n"
+"    for testing (unless the -U/--noupdate option is specified). Once\n"
+"    you have performed tests, mark the working directory as good or\n"
+"    bad, and bisect will either update to another candidate changeset\n"
 "    or announce that it has found the bad revision.\n"
 "\n"
 "    As a shortcut, you can also use the revision argument to mark a\n"
 "    revision as good or bad without checking it out first.\n"
 "\n"
-"    If you supply a command it will be used for automatic bisection. Its "
-"exit\n"
-"    status will be used as flag to mark revision as bad or good. In case "
-"exit\n"
-"    status is 0 the revision is marked as good, 125 - skipped, 127 (command "
-"not\n"
-"    found) - bisection will be aborted; any other status bigger than 0 will\n"
-"    mark revision as bad.\n"
-"    "
-msgstr ""
-
-#, python-format
-msgid "The first %s revision is:\n"
-msgstr ""
-
-#, python-format
-msgid "Due to skipped revisions, the first %s revision could be any of:\n"
+"    If you supply a command, it will be used for automatic bisection.\n"
+"    Its exit status will be used to mark revisions as good or bad:\n"
+"    status 0 means good, 125 means to skip the revision, 127\n"
+"    (command not found) will abort the bisection, and any other\n"
+"    non-zero exit status means the revision is bad.\n"
+"    "
+msgstr ""
+
+msgid "The first good revision is:\n"
+msgstr ""
+
+msgid "The first bad revision is:\n"
+msgstr ""
+
+msgid "Due to skipped revisions, the first good revision could be any of:\n"
+msgstr ""
+
+msgid "Due to skipped revisions, the first bad revision could be any of:\n"
 msgstr ""
 
 msgid "cannot bisect (no known good revisions)"
@@ -5068,6 +4757,10 @@
 msgstr ""
 
 #, python-format
+msgid "cannot find executable: %s"
+msgstr ""
+
+#, python-format
 msgid "failed to execute %s"
 msgstr ""
 
@@ -5075,9 +4768,9 @@
 msgid "%s killed"
 msgstr ""
 
-#, python-format
-msgid "Changeset %s: %s\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Changeset %d:%s: %s\n"
+msgstr "修改集:      %d:%s\n"
 
 #, python-format
 msgid "Testing changeset %s:%s (%s changesets remaining, ~%s tests)\n"
@@ -5087,14 +4780,17 @@
 "set or show the current branch name\n"
 "\n"
 "    With no argument, show the current branch name. With one argument,\n"
-"    set the working directory branch name (the branch does not exist in\n"
-"    the repository until the next commit).\n"
-"\n"
-"    Unless --force is specified, branch will not let you set a\n"
-"    branch name that shadows an existing branch.\n"
-"\n"
-"    Use --clean to reset the working directory branch to that of the\n"
-"    parent of the working directory, negating a previous branch change.\n"
+"    set the working directory branch name (the branch will not exist\n"
+"    in the repository until the next commit). Standard practice\n"
+"    recommends that primary development take place on the 'default'\n"
+"    branch.\n"
+"\n"
+"    Unless -f/--force is specified, branch will not let you set a\n"
+"    branch name that already exists, even if it's inactive.\n"
+"\n"
+"    Use -C/--clean to reset the working directory branch to that of\n"
+"    the parent of the working directory, negating a previous branch\n"
+"    change.\n"
 "\n"
 "    Use the command 'hg update' to switch to an existing branch.\n"
 "    "
@@ -5132,20 +4828,23 @@
 "    If no destination repository is specified the destination is\n"
 "    assumed to have all the nodes specified by one or more --base\n"
 "    parameters. To create a bundle containing all changesets, use\n"
-"    --all (or --base null). To change the compression method applied,\n"
-"    use the -t option (by default, bundles are compressed using bz2).\n"
-"\n"
-"    The bundle file can then be transferred using conventional means and\n"
-"    applied to another repository with the unbundle or pull command.\n"
-"    This is useful when direct push and pull are not available or when\n"
-"    exporting an entire repository is undesirable.\n"
+"    -a/--all (or --base null).\n"
+"\n"
+"    To change the compression method applied, use the -t/--type\n"
+"    option. The available compression methods are: none, bzip2, and\n"
+"    gzip (by default, bundles are compressed using bzip2).\n"
+"\n"
+"    The bundle file can then be transferred using conventional means\n"
+"    and applied to another repository with the unbundle or pull\n"
+"    command. This is useful when direct push and pull are not\n"
+"    available or when exporting an entire repository is undesirable.\n"
 "\n"
 "    Applying bundles preserves all changeset contents including\n"
 "    permissions, copy/rename information, and revision history.\n"
 "    "
 msgstr ""
 
-msgid "--base is incompatible with specifiying a destination"
+msgid "--base is incompatible with specifying a destination"
 msgstr ""
 
 msgid "unknown bundle type specified with --type"
@@ -5154,8 +4853,8 @@
 msgid ""
 "output the current or given revision of files\n"
 "\n"
-"    Print the specified files as they were at the given revision.\n"
-"    If no revision is given, the parent of the working directory is used,\n"
+"    Print the specified files as they were at the given revision. If\n"
+"    no revision is given, the parent of the working directory is used,\n"
 "    or tip if no revision is checked out.\n"
 "\n"
 "    Output may be to a file, in which case the name of the file is\n"
@@ -5163,7 +4862,7 @@
 "    for the export command, with the following additions:\n"
 "\n"
 "    %s   basename of file being printed\n"
-"    %d   dirname of file being printed, or '.' if in repo root\n"
+"    %d   dirname of file being printed, or '.' if in repository root\n"
 "    %p   root-relative path name of file being printed\n"
 "    "
 msgstr ""
@@ -5179,6 +4878,22 @@
 "    The location of the source is added to the new repository's\n"
 "    .hg/hgrc file, as the default to be used for future pulls.\n"
 "\n"
+"    If you use the -r/--rev option to clone up to a specific revision,\n"
+"    no subsequent revisions (including subsequent tags) will be\n"
+"    present in the cloned repository. This option implies --pull, even\n"
+"    on local repositories.\n"
+"\n"
+"    By default, clone will check out the head of the 'default' branch.\n"
+"    If the -U/--noupdate option is used, the new clone will contain\n"
+"    only a repository (.hg) and no working copy (the working copy\n"
+"    parent is the null revision).\n"
+"\n"
+"    See 'hg help urls' for valid source format details.\n"
+"\n"
+"    It is possible to specify an ssh:// URL as the destination, but no\n"
+"    .hg/hgrc and working directory will be created on the remote side.\n"
+"    Please see 'hg help urls' for important details about ssh:// URLs.\n"
+"\n"
 "    For efficiency, hardlinks are used for cloning whenever the source\n"
 "    and destination are on the same filesystem (note this applies only\n"
 "    to the repository data, not to the checked out files). Some\n"
@@ -5191,75 +4906,32 @@
 "\n"
 "      $ cp -al REPO REPOCLONE\n"
 "\n"
-"    This is the fastest way to clone, but it is not always safe.  The\n"
+"    This is the fastest way to clone, but it is not always safe. The\n"
 "    operation is not atomic (making sure REPO is not modified during\n"
 "    the operation is up to you) and you have to make sure your editor\n"
-"    breaks hardlinks (Emacs and most Linux Kernel tools do so).  Also,\n"
+"    breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n"
 "    this is not compatible with certain extensions that place their\n"
 "    metadata under the .hg directory, such as mq.\n"
 "\n"
-"    If you use the -r option to clone up to a specific revision, no\n"
-"    subsequent revisions will be present in the cloned repository.\n"
-"    This option implies --pull, even on local repositories.\n"
-"\n"
-"    If the -U option is used, the new clone will contain only a repository\n"
-"    (.hg) and no working copy (the working copy parent is the null "
-"revision).\n"
-"\n"
-"    See 'hg help urls' for valid source format details.\n"
-"\n"
-"    It is possible to specify an ssh:// URL as the destination, but no\n"
-"    .hg/hgrc and working directory will be created on the remote side.\n"
-"    Look at the help text for urls for important details about ssh:// URLs.\n"
-"    "
-msgstr ""
-"复制现有版本库\n"
-"\n"
-"    在新目录创建现有版本库的副本。\n"
-"\n"
-"    如果没有指定目标目录,默认使用源版本库的基本名称。\n"
-"\n"
-"    源版本库的位置增加到新版本库的文件 .hg/hgrc 中,作为未来更新时的默认\n"
-"    位置。\n"
-"\n"
-"    为了效率,在复制时,只要源版本库和目标版本库位于同一文件系统,就会使\n"
-"    用硬链接(注意这只适用于版本库中的数据,不适用于检出的文件)。某些文件\n"
-"    系统,例如 AFS,没有正确实现硬链接,还不报告错误。在这些情况下,请使\n"
-"    用选项 '--pull'来避免硬链接。\n"
-"\n"
-"    在某些情况下,你可以通过下述命令用硬链接复制且检出文件:\n"
-"\n"
-"      $ cp -al REPO REPOCLONE\n"
-"\n"
-"    这是最快速的复制方法,但是不见得总是安全。此操作不是原子的(请确认在你\n"
-"    操作期间版本库未修改),还要确认你的编辑器会破坏硬链接。还有,它与将元\n"
-"    数据放到目录 .hg 中的某些扩展不兼容,例如 mq。\n"
-"\n"
-"    如果你使用选项 '-r' 复制指定版本,那么后来的版本不会在新版本库中出现。\n"
-"    此选项暗示 '--pull',纵然是操作本地版本库。\n"
-"\n"
-"    如果你使用了选项 '-U',那么新仓库只包含版本库(.hg),没有工作副本。\n"
-"\n"
-"    参见 'hg help urls' 以了解有效源格式的详情。\n"
-"\n"
-"    也可以指定位置 'ssh://' 作为目标,但是不会创建文件 .hg/hgrc,并且工作\n"
-"    副本将会创建在远程。参见主题 'urls' 的帮助信息,以了解位置 'ssh://'\n"
-"    的重要详情。\n"
-"    "
-
+"    "
+msgstr ""
+
+#, fuzzy
 msgid ""
 "commit the specified files or all outstanding changes\n"
 "\n"
-"    Commit changes to the given files into the repository.\n"
+"    Commit changes to the given files into the repository. Unlike a\n"
+"    centralized RCS, this operation is a local operation. See hg push\n"
+"    for a way to actively distribute your changes.\n"
 "\n"
 "    If a list of files is omitted, all changes reported by \"hg status\"\n"
 "    will be committed.\n"
 "\n"
 "    If you are committing the result of a merge, do not provide any\n"
-"    file names or -I/-X filters.\n"
-"\n"
-"    If no commit message is specified, the configured editor is started to\n"
-"    prompt you for a message.\n"
+"    filenames or -I/-X filters.\n"
+"\n"
+"    If no commit message is specified, the configured editor is\n"
+"    started to prompt you for a message.\n"
 "\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
@@ -5292,7 +4964,7 @@
 "    the source must be a single file.\n"
 "\n"
 "    By default, this command copies the contents of files as they\n"
-"    stand in the working directory. If invoked with --after, the\n"
+"    exist in the working directory. If invoked with -A/--after, the\n"
 "    operation is recorded, but no copying is performed.\n"
 "\n"
 "    This command takes effect with the next commit. To undo a copy\n"
@@ -5340,13 +5012,17 @@
 msgid ""
 "show combined config settings from all hgrc files\n"
 "\n"
-"    With no args, print names and values of all config items.\n"
-"\n"
-"    With one arg of the form section.name, print just the value of\n"
-"    that config item.\n"
-"\n"
-"    With multiple args, print names and values of all config items\n"
-"    with matching section names."
+"    With no arguments, print names and values of all config items.\n"
+"\n"
+"    With one argument of the form section.name, print just the value\n"
+"    of that config item.\n"
+"\n"
+"    With multiple arguments, print names and values of all config\n"
+"    items with matching section names.\n"
+"\n"
+"    With --debug, the source (filename and line number) is printed\n"
+"    for each config item.\n"
+"    "
 msgstr ""
 
 msgid "only one config item permitted"
@@ -5380,7 +5056,7 @@
 msgid "dump the contents of an index file"
 msgstr ""
 
-msgid "dump an index DAG as a .dot file"
+msgid "dump an index DAG as a graphviz dot file"
 msgstr ""
 
 msgid "test Mercurial installation"
@@ -5470,6 +5146,7 @@
 msgid "show how files match on given patterns"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "diff repository (or selected files)\n"
 "\n"
@@ -5487,12 +5164,12 @@
 "    revisions are specified, the working directory files are compared\n"
 "    to its parent.\n"
 "\n"
-"    Without the -a option, diff will avoid generating diffs of files\n"
-"    it detects as binary. With -a, diff will generate a diff anyway,\n"
-"    probably with undesirable results.\n"
-"\n"
-"    Use the --git option to generate diffs in the git extended diff\n"
-"    format. For more information, read hg help diffs.\n"
+"    Without the -a/--text option, diff will avoid generating diffs of\n"
+"    files it detects as binary. With -a, diff will generate a diff\n"
+"    anyway, probably with undesirable results.\n"
+"\n"
+"    Use the -g/--git option to generate diffs in the git extended diff\n"
+"    format. For more information, read 'hg help diffs'.\n"
 "    "
 msgstr ""
 "在版本库中比较(指定的文件)\n"
@@ -5515,6 +5192,7 @@
 "    了解更多信息。\n"
 "    "
 
+#, fuzzy
 msgid ""
 "dump the header and diffs for one or more changesets\n"
 "\n"
@@ -5523,8 +5201,9 @@
 "    The information shown in the changeset header is: author,\n"
 "    changeset hash, parent(s) and commit comment.\n"
 "\n"
-"    NOTE: export may generate unexpected diff output for merge changesets,\n"
-"    as it will compare the merge changeset against its first parent only.\n"
+"    NOTE: export may generate unexpected diff output for merge\n"
+"    changesets, as it will compare the merge changeset against its\n"
+"    first parent only.\n"
 "\n"
 "    Output may be to a file, in which case the name of the file is\n"
 "    given using a format string. The formatting rules are as follows:\n"
@@ -5538,15 +5217,15 @@
 "    %n   zero-padded sequence number, starting at 1\n"
 "    %r   zero-padded changeset revision number\n"
 "\n"
-"    Without the -a option, export will avoid generating diffs of files\n"
-"    it detects as binary. With -a, export will generate a diff anyway,\n"
-"    probably with undesirable results.\n"
-"\n"
-"    Use the --git option to generate diffs in the git extended diff\n"
-"    format. Read the diffs help topic for more information.\n"
-"\n"
-"    With the --switch-parent option, the diff will be against the second\n"
-"    parent. It can be useful to review a merge.\n"
+"    Without the -a/--text option, export will avoid generating diffs\n"
+"    of files it detects as binary. With -a, export will generate a\n"
+"    diff anyway, probably with undesirable results.\n"
+"\n"
+"    Use the -g/--git option to generate diffs in the git extended diff\n"
+"    format. See 'hg help diffs' for more information.\n"
+"\n"
+"    With the --switch-parent option, the diff will be against the\n"
+"    second parent. It can be useful to review a merge.\n"
 "    "
 msgstr ""
 "为一个或多个修改集输出标题和差异\n"
@@ -5589,14 +5268,35 @@
 msgstr ""
 
 msgid ""
+"forget the specified files on the next commit\n"
+"\n"
+"    Mark the specified files so they will no longer be tracked\n"
+"    after the next commit.\n"
+"\n"
+"    This only removes files from the current branch, not from the\n"
+"    entire project history, and it does not delete them from the\n"
+"    working directory.\n"
+"\n"
+"    To undo a forget before the next commit, see hg add.\n"
+"    "
+msgstr ""
+
+msgid "no files specified"
+msgstr ""
+
+#, python-format
+msgid "not removing %s: file is already untracked\n"
+msgstr ""
+
+msgid ""
 "search for a pattern in specified files and revisions\n"
 "\n"
 "    Search revisions of files for a regular expression.\n"
 "\n"
 "    This command behaves differently than Unix grep. It only accepts\n"
 "    Python/Perl regexps. It searches repository history, not the\n"
-"    working directory. It always prints the revision number in which\n"
-"    a match appears.\n"
+"    working directory. It always prints the revision number in which a\n"
+"    match appears.\n"
 "\n"
 "    By default, grep only prints output for the first revision of a\n"
 "    file in which it finds a match. To get it to print every revision\n"
@@ -5615,19 +5315,28 @@
 "\n"
 "    With no arguments, show all repository head changesets.\n"
 "\n"
-"    If branch or revisions names are given this will show the heads of\n"
-"    the specified branches or the branches those revisions are tagged\n"
-"    with.\n"
-"\n"
 "    Repository \"heads\" are changesets that don't have child\n"
 "    changesets. They are where development generally takes place and\n"
 "    are the usual targets for update and merge operations.\n"
 "\n"
-"    Branch heads are changesets that have a given branch tag, but have\n"
-"    no child changesets with that tag. They are usually where\n"
-"    development on the given branch takes place.\n"
-"    "
-msgstr ""
+"    If one or more REV is given, the \"branch heads\" will be shown for\n"
+"    the named branch associated with that revision. The name of the\n"
+"    branch is called the revision's branch tag.\n"
+"\n"
+"    Branch heads are revisions on a given named branch that do not have\n"
+"    any children on the same branch. A branch head could be a true head\n"
+"    or it could be the last changeset on a branch before a new branch\n"
+"    was created. If none of the branch heads are true heads, the branch\n"
+"    is considered inactive.\n"
+"\n"
+"    If STARTREV is specified only those heads (or branch heads) that\n"
+"    are descendants of STARTREV will be displayed.\n"
+"    "
+msgstr ""
+
+#, fuzzy, python-format
+msgid "no open branch heads on branch %s\n"
+msgstr "svn: 分支没有版本 %s"
 
 #, python-format
 msgid "no changes on branch %s containing %s are reachable from %s\n"
@@ -5640,9 +5349,10 @@
 msgid ""
 "show help for a given topic or a help overview\n"
 "\n"
-"    With no arguments, print a list of commands and short help.\n"
-"\n"
-"    Given a topic, extension, or command name, print help for that topic."
+"    With no arguments, print a list of commands with short help messages.\n"
+"\n"
+"    Given a topic, extension, or command name, print help for that\n"
+"    topic."
 msgstr ""
 
 msgid "global options:"
@@ -5686,19 +5396,13 @@
 msgid "no commands defined\n"
 msgstr ""
 
-msgid ""
-"\n"
-"enabled extensions:\n"
-"\n"
+#, fuzzy
+msgid "enabled extensions:"
 msgstr ""
 "\n"
 "启用的扩展:\n"
 "\n"
 
-#, python-format
-msgid " %s   %s\n"
-msgstr ""
-
 msgid "no help text available"
 msgstr "没有可用的帮助信息"
 
@@ -5728,14 +5432,16 @@
 msgid ""
 "identify the working copy or specified revision\n"
 "\n"
-"    With no revision, print a summary of the current state of the repo.\n"
-"\n"
-"    With a path, do a lookup in another repository.\n"
-"\n"
-"    This summary identifies the repository state using one or two parent\n"
-"    hash identifiers, followed by a \"+\" if there are uncommitted changes\n"
-"    in the working directory, a list of tags for this revision and a branch\n"
-"    name for non-default branches.\n"
+"    With no revision, print a summary of the current state of the\n"
+"    repository.\n"
+"\n"
+"    Specifying a path to a repository root or Mercurial bundle will\n"
+"    cause lookup to operate on that repository/bundle.\n"
+"\n"
+"    This summary identifies the repository state using one or two\n"
+"    parent hash identifiers, followed by a \"+\" if there are\n"
+"    uncommitted changes in the working directory, a list of tags for\n"
+"    this revision and a branch name for non-default branches.\n"
 "    "
 msgstr ""
 
@@ -5745,29 +5451,30 @@
 "    Import a list of patches and commit them individually.\n"
 "\n"
 "    If there are outstanding changes in the working directory, import\n"
-"    will abort unless given the -f flag.\n"
+"    will abort unless given the -f/--force flag.\n"
 "\n"
 "    You can import a patch straight from a mail message. Even patches\n"
-"    as attachments work (body part must be type text/plain or\n"
-"    text/x-patch to be used). From and Subject headers of email\n"
+"    as attachments work (to use the body part, it must have type\n"
+"    text/plain or text/x-patch). From and Subject headers of email\n"
 "    message are used as default committer and commit message. All\n"
 "    text/plain body parts before first diff are added to commit\n"
 "    message.\n"
 "\n"
-"    If the imported patch was generated by hg export, user and description\n"
-"    from patch override values from message headers and body. Values\n"
-"    given on command line with -m and -u override these.\n"
-"\n"
-"    If --exact is specified, import will set the working directory\n"
-"    to the parent of each patch before applying it, and will abort\n"
-"    if the resulting changeset has a different ID than the one\n"
-"    recorded in the patch. This may happen due to character set\n"
-"    problems or other deficiencies in the text patch format.\n"
-"\n"
-"    With --similarity, hg will attempt to discover renames and copies\n"
-"    in the patch in the same way as 'addremove'.\n"
-"\n"
-"    To read a patch from standard input, use patch name \"-\".\n"
+"    If the imported patch was generated by hg export, user and\n"
+"    description from patch override values from message headers and\n"
+"    body. Values given on command line with -m/--message and -u/--user\n"
+"    override these.\n"
+"\n"
+"    If --exact is specified, import will set the working directory to\n"
+"    the parent of each patch before applying it, and will abort if the\n"
+"    resulting changeset has a different ID than the one recorded in\n"
+"    the patch. This may happen due to character set problems or other\n"
+"    deficiencies in the text patch format.\n"
+"\n"
+"    With -s/--similarity, hg will attempt to discover renames and\n"
+"    copies in the patch in the same way as 'addremove'.\n"
+"\n"
+"    To read a patch from standard input, use \"-\" as the patch name.\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 msgstr ""
@@ -5784,8 +5491,9 @@
 "%s\n"
 msgstr ""
 
-msgid "not a mercurial patch"
-msgstr ""
+#, fuzzy
+msgid "not a Mercurial patch"
+msgstr "%s 不是本地的水银版本库"
 
 msgid "patch is damaged or loses information"
 msgstr ""
@@ -5794,21 +5502,22 @@
 "show new changesets found in source\n"
 "\n"
 "    Show new changesets found in the specified path/URL or the default\n"
-"    pull location. These are the changesets that would be pulled if a pull\n"
-"    was requested.\n"
-"\n"
-"    For remote repository, using --bundle avoids downloading the changesets\n"
-"    twice if the incoming is followed by a pull.\n"
+"    pull location. These are the changesets that would have been pulled\n"
+"    if a pull at the time you issued this command.\n"
+"\n"
+"    For remote repository, using --bundle avoids downloading the\n"
+"    changesets twice if the incoming is followed by a pull.\n"
 "\n"
 "    See pull for valid source format details.\n"
 "    "
 msgstr ""
 
+#, fuzzy
 msgid ""
 "create a new repository in the given directory\n"
 "\n"
 "    Initialize a new repository in the given directory. If the given\n"
-"    directory does not exist, it is created.\n"
+"    directory does not exist, it will be created.\n"
 "\n"
 "    If no directory is given, the current directory is used.\n"
 "\n"
@@ -5829,23 +5538,24 @@
 msgid ""
 "locate files matching specific patterns\n"
 "\n"
-"    Print all files under Mercurial control whose names match the\n"
-"    given patterns.\n"
-"\n"
-"    This command searches the entire repository by default. To search\n"
-"    just the current directory and its subdirectories, use\n"
-"    \"--include .\".\n"
-"\n"
-"    If no patterns are given to match, this command prints all file\n"
-"    names.\n"
+"    Print files under Mercurial control in the working directory whose\n"
+"    names match the given patterns.\n"
+"\n"
+"    By default, this command searches all directories in the working\n"
+"    directory. To search just the current directory and its\n"
+"    subdirectories, use \"--include .\".\n"
+"\n"
+"    If no patterns are given to match, this command prints the names\n"
+"    of all files under Mercurial control in the working directory.\n"
 "\n"
 "    If you want to feed the output of this command into the \"xargs\"\n"
-"    command, use the \"-0\" option to both this command and \"xargs\".\n"
-"    This will avoid the problem of \"xargs\" treating single filenames\n"
-"    that contain white space as multiple filenames.\n"
-"    "
-msgstr ""
-
+"    command, use the -0 option to both this command and \"xargs\". This\n"
+"    will avoid the problem of \"xargs\" treating single filenames that\n"
+"    contain whitespace as multiple filenames.\n"
+"    "
+msgstr ""
+
+#, fuzzy
 msgid ""
 "show revision history of entire repository or files\n"
 "\n"
@@ -5853,8 +5563,8 @@
 "    project.\n"
 "\n"
 "    File history is shown without following rename or copy history of\n"
-"    files. Use -f/--follow with a file name to follow history across\n"
-"    renames and copies. --follow without a file name will only show\n"
+"    files. Use -f/--follow with a filename to follow history across\n"
+"    renames and copies. --follow without a filename will only show\n"
 "    ancestors or descendants of the starting revision. --follow-first\n"
 "    only follows the first parent of merge revisions.\n"
 "\n"
@@ -5864,16 +5574,15 @@
 "\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "\n"
-"    By default this command outputs: changeset id and hash, tags,\n"
-"    non-trivial parents, user, date and time, and a summary for each\n"
-"    commit. When the -v/--verbose switch is used, the list of changed\n"
-"    files and full commit message is shown.\n"
-"\n"
-"    NOTE: log -p may generate unexpected diff output for merge\n"
+"    By default this command prints revision number and changeset id,\n"
+"    tags, non-trivial parents, user, date and time, and a summary for\n"
+"    each commit. When the -v/--verbose switch is used, the list of\n"
+"    changed files and full commit message are shown.\n"
+"\n"
+"    NOTE: log -p/--patch may generate unexpected diff output for merge\n"
 "    changesets, as it will only compare the merge changeset against\n"
-"    its first parent. Also, the files: list will only reflect files\n"
-"    that are different from BOTH parents.\n"
-"\n"
+"    its first parent. Also, only files different from BOTH parents\n"
+"    will appear in files:.\n"
 "    "
 msgstr ""
 "显示全部版本库或指定文件的版本历史\n"
@@ -5901,40 +5610,33 @@
 "    "
 
 msgid ""
-"looks up all renames for a file (up to endrev) the first\n"
-"        time the file is given. It indexes on the changerev and only\n"
-"        parses the manifest if linkrev != changerev.\n"
-"        Returns rename info for fn at changerev rev."
-msgstr ""
-
-msgid ""
 "output the current or given revision of the project manifest\n"
 "\n"
 "    Print a list of version controlled files for the given revision.\n"
-"    If no revision is given, the parent of the working directory is used,\n"
-"    or tip if no revision is checked out.\n"
-"\n"
-"    The manifest is the list of files being version controlled. If no "
-"revision\n"
-"    is given then the first parent of the working directory is used.\n"
-"\n"
-"    With -v flag, print file permissions, symlink and executable bits. With\n"
-"    --debug flag, print file revision hashes.\n"
-"    "
-msgstr ""
-
+"    If no revision is given, the first parent of the working directory\n"
+"    is used, or the null revision if no revision is checked out.\n"
+"\n"
+"    With -v, print file permissions, symlink and executable bits.\n"
+"    With --debug, print file revision hashes.\n"
+"    "
+msgstr ""
+
+#, fuzzy
 msgid ""
 "merge working directory with another revision\n"
 "\n"
-"    Merge the contents of the current working directory and the\n"
-"    requested revision. Files that changed between either parent are\n"
-"    marked as changed for the next commit and a commit must be\n"
-"    performed before any further updates are allowed.\n"
+"    The current working directory is updated with all changes made in\n"
+"    the requested revision since the last common predecessor revision.\n"
+"\n"
+"    Files that changed between either parent are marked as changed for\n"
+"    the next commit and a commit must be performed before any further\n"
+"    updates to the repository are allowed. The next commit will have\n"
+"    two parents.\n"
 "\n"
 "    If no revision is specified, the working directory's parent is a\n"
-"    head revision, and the current branch contains exactly one other head,\n"
-"    the other head is merged with by default. Otherwise, an explicit\n"
-"    revision to merge with must be provided.\n"
+"    head revision, and the current branch contains exactly one other\n"
+"    head, the other head is merged with by default. Otherwise, an\n"
+"    explicit revision with which to merge with must be provided.\n"
 "    "
 msgstr ""
 "将工作目录与其它版本合并\n"
@@ -5969,22 +5671,23 @@
 msgid ""
 "show changesets not found in destination\n"
 "\n"
-"    Show changesets not found in the specified destination repository or\n"
-"    the default push location. These are the changesets that would be pushed\n"
-"    if a push was requested.\n"
+"    Show changesets not found in the specified destination repository\n"
+"    or the default push location. These are the changesets that would\n"
+"    be pushed if a push was requested.\n"
 "\n"
 "    See pull for valid destination format details.\n"
 "    "
 msgstr ""
 
-msgid ""
-"show the parents of the working dir or revision\n"
-"\n"
-"    Print the working directory's parent revisions. If a\n"
-"    revision is given via --rev, the parent of that revision\n"
-"    will be printed. If a file argument is given, revision in\n"
-"    which the file was last changed (before the working directory\n"
-"    revision or the argument to --rev if given) is printed.\n"
+#, fuzzy
+msgid ""
+"show the parents of the working directory or revision\n"
+"\n"
+"    Print the working directory's parent revisions. If a revision is\n"
+"    given via -r/--rev, the parent of that revision will be printed.\n"
+"    If a file argument is given, the revision in which the file was\n"
+"    last changed (before the working directory revision or the\n"
+"    argument to --rev if given) is printed.\n"
 "    "
 msgstr ""
 "显示工作目录或指定版本的父亲\n"
@@ -5994,7 +5697,7 @@
 "    版本,或 '--rev' 指定的版本)。\n"
 "    "
 
-msgid "can only specify an explicit file name"
+msgid "can only specify an explicit filename"
 msgstr ""
 
 #, python-format
@@ -6004,8 +5707,8 @@
 msgid ""
 "show aliases for remote repositories\n"
 "\n"
-"    Show definition of symbolic path name NAME. If no name is given, show\n"
-"    definition of available names.\n"
+"    Show definition of symbolic path name NAME. If no name is given,\n"
+"    show definition of all available names.\n"
 "\n"
 "    Path names are defined in the [paths] section of /etc/mercurial/hgrc\n"
 "    and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.\n"
@@ -6026,14 +5729,21 @@
 msgid "(run 'hg update' to get a working copy)\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "pull changes from the specified source\n"
 "\n"
 "    Pull changes from a remote repository to a local one.\n"
 "\n"
 "    This finds all changes from the repository at the specified path\n"
-"    or URL and adds them to the local repository. By default, this\n"
-"    does not update the copy of the project in the working directory.\n"
+"    or URL and adds them to a local repository (the current one unless\n"
+"    -R is specified). By default, this does not update the copy of the\n"
+"    project in the working directory.\n"
+"\n"
+"    Use hg incoming if you want to see what would have been added by a\n"
+"    pull at the time you issued this command. If you then decide to\n"
+"    added those changes to the repository, you should use pull -r X\n"
+"    where X is the last changeset listed by hg incoming.\n"
 "\n"
 "    If SOURCE is omitted, the 'default' path will be used.\n"
 "    See 'hg help urls' for more information.\n"
@@ -6050,31 +5760,26 @@
 "    更多信息。\n"
 "    "
 
-msgid ""
-"Other repository doesn't support revision lookup, so a rev cannot be "
-"specified."
-msgstr ""
-
+#, fuzzy
 msgid ""
 "push changes to the specified destination\n"
 "\n"
 "    Push changes from the local repository to the given destination.\n"
 "\n"
-"    This is the symmetrical operation for pull. It helps to move\n"
-"    changes from the current repository to a different one. If the\n"
-"    destination is local this is identical to a pull in that directory\n"
-"    from the current one.\n"
+"    This is the symmetrical operation for pull. It moves changes from\n"
+"    the current repository to a different one. If the destination is\n"
+"    local this is identical to a pull in that directory from the\n"
+"    current one.\n"
 "\n"
 "    By default, push will refuse to run if it detects the result would\n"
 "    increase the number of remote heads. This generally indicates the\n"
-"    the client has forgotten to pull and merge before pushing.\n"
-"\n"
-"    If -r is used, the named changeset and all its ancestors will be pushed\n"
-"    to the remote repository.\n"
-"\n"
-"    Look at the help text for urls for important details about ssh:// URLs.\n"
-"    If DESTINATION is omitted, a default path will be used.\n"
-"    See 'hg help urls' for more information.\n"
+"    user forgot to pull and merge before pushing.\n"
+"\n"
+"    If -r/--rev is used, the named revision and all its ancestors will\n"
+"    be pushed to the remote repository.\n"
+"\n"
+"    Please see 'hg help urls' for important details about ssh://\n"
+"    URLs. If DESTINATION is omitted, a default path will be used.\n"
 "    "
 msgstr ""
 "推送改变到指定位置\n"
@@ -6100,46 +5805,33 @@
 msgstr "正在推到 %s\n"
 
 msgid ""
-"raw commit interface (DEPRECATED)\n"
-"\n"
-"    (DEPRECATED)\n"
-"    Lowlevel commit, for use in helper scripts.\n"
-"\n"
-"    This command is not intended to be used by normal users, as it is\n"
-"    primarily useful for importing from other SCMs.\n"
-"\n"
-"    This command is now deprecated and will be removed in a future\n"
-"    release, please use debugsetparents and commit instead.\n"
-"    "
-msgstr ""
-
-msgid "(the rawcommit command is deprecated)\n"
-msgstr ""
-
-msgid ""
 "roll back an interrupted transaction\n"
 "\n"
 "    Recover from an interrupted commit or pull.\n"
 "\n"
-"    This command tries to fix the repository status after an interrupted\n"
-"    operation. It should only be necessary when Mercurial suggests it.\n"
-"    "
-msgstr ""
-
+"    This command tries to fix the repository status after an\n"
+"    interrupted operation. It should only be necessary when Mercurial\n"
+"    suggests it.\n"
+"    "
+msgstr ""
+
+#, fuzzy
 msgid ""
 "remove the specified files on the next commit\n"
 "\n"
 "    Schedule the indicated files for removal from the repository.\n"
 "\n"
-"    This only removes files from the current branch, not from the entire\n"
-"    project history. -A can be used to remove only files that have already\n"
-"    been deleted, -f can be used to force deletion, and -Af can be used\n"
-"    to remove files from the next revision without deleting them.\n"
-"\n"
-"    The following table details the behavior of remove for different file\n"
-"    states (columns) and option combinations (rows). The file states are\n"
-"    Added, Clean, Modified and Missing (as reported by hg status). The\n"
-"    actions are Warn, Remove (from branch) and Delete (from disk).\n"
+"    This only removes files from the current branch, not from the\n"
+"    entire project history. -A/--after can be used to remove only\n"
+"    files that have already been deleted, -f/--force can be used to\n"
+"    force deletion, and -Af can be used to remove files from the next\n"
+"    revision without deleting them from the working directory.\n"
+"\n"
+"    The following table details the behavior of remove for different\n"
+"    file states (columns) and option combinations (rows). The file\n"
+"    states are Added [A], Clean [C], Modified [M] and Missing [!]\n"
+"    (as reported by hg status). The actions are Warn, Remove (from\n"
+"    branch) and Delete (from disk).\n"
 "\n"
 "           A  C  M  !\n"
 "    none   W  RD W  R\n"
@@ -6173,7 +5865,8 @@
 "    要在此之前撤销删除,请参见 'hg revert'。\n"
 "    "
 
-msgid "no files specified"
+#, python-format
+msgid "not removing %s: file is untracked\n"
 msgstr ""
 
 #, python-format
@@ -6192,12 +5885,12 @@
 msgid ""
 "rename files; equivalent of copy + remove\n"
 "\n"
-"    Mark dest as copies of sources; mark sources for deletion. If\n"
-"    dest is a directory, copies are put in that directory. If dest is\n"
-"    a file, there can only be one source.\n"
+"    Mark dest as copies of sources; mark sources for deletion. If dest\n"
+"    is a directory, copies are put in that directory. If dest is a\n"
+"    file, there can only be one source.\n"
 "\n"
 "    By default, this command copies the contents of files as they\n"
-"    exist in the working directory. If invoked with --after, the\n"
+"    exist in the working directory. If invoked with -A/--after, the\n"
 "    operation is recorded, but no copying is performed.\n"
 "\n"
 "    This command takes effect at the next commit. To undo a rename\n"
@@ -6210,10 +5903,15 @@
 "\n"
 "    This command will cleanly retry unresolved file merges using file\n"
 "    revisions preserved from the last update or merge. To attempt to\n"
-"    resolve all unresolved files, use the -a switch.\n"
-"\n"
-"    This command will also allow listing resolved files and manually\n"
-"    marking and unmarking files as resolved.\n"
+"    resolve all unresolved files, use the -a/--all switch.\n"
+"\n"
+"    If a conflict is resolved manually, please note that the changes\n"
+"    will be overwritten if the merge is retried with resolve. The\n"
+"    -m/--mark switch should be used to mark the file as resolved.\n"
+"\n"
+"    This command also allows listing resolved files and manually\n"
+"    indicating whether or not files are resolved. All files must be\n"
+"    marked as resolved before a commit is permitted.\n"
 "\n"
 "    The codes used to show the status of files are:\n"
 "    U = unresolved\n"
@@ -6231,10 +5929,10 @@
 msgstr ""
 
 msgid ""
-"restore individual files or dirs to an earlier state\n"
-"\n"
-"    (use update -r to check out earlier revisions, revert does not\n"
-"    change the working dir parents)\n"
+"restore individual files or directories to an earlier state\n"
+"\n"
+"    (Use update -r to check out earlier revisions, revert does not\n"
+"    change the working directory parents.)\n"
 "\n"
 "    With no revision specified, revert the named files or directories\n"
 "    to the contents they had in the parent of the working directory.\n"
@@ -6243,10 +5941,10 @@
 "    working directory has two parents, you must explicitly specify the\n"
 "    revision to revert to.\n"
 "\n"
-"    Using the -r option, revert the given files or directories to their\n"
-"    contents as of a specific revision. This can be helpful to \"roll\n"
-"    back\" some or all of an earlier change.\n"
-"    See 'hg help dates' for a list of formats valid for -d/--date.\n"
+"    Using the -r/--rev option, revert the given files or directories\n"
+"    to their contents as of a specific revision. This can be helpful\n"
+"    to \"roll back\" some or all of an earlier change. See 'hg help\n"
+"    dates' for a list of formats valid for -d/--date.\n"
 "\n"
 "    Revert modifies the working directory. It does not commit any\n"
 "    changes, or change the parent of the working directory. If you\n"
@@ -6254,8 +5952,8 @@
 "    directory, the reverted files will thus appear modified\n"
 "    afterwards.\n"
 "\n"
-"    If a file has been deleted, it is restored. If the executable\n"
-"    mode of a file was changed, it is reset.\n"
+"    If a file has been deleted, it is restored. If the executable mode\n"
+"    of a file was changed, it is reset.\n"
 "\n"
 "    If names are given, all files matching the names are reverted.\n"
 "    If no arguments are given, no files are reverted.\n"
@@ -6301,7 +5999,8 @@
 "    This command should be used with care. There is only one level of\n"
 "    rollback, and there is no way to undo a rollback. It will also\n"
 "    restore the dirstate at the time of the last transaction, losing\n"
-"    any dirstate changes since that time.\n"
+"    any dirstate changes since that time. This command does not alter\n"
+"    the working directory.\n"
 "\n"
 "    Transactions are used to encapsulate the effects of all commands\n"
 "    that create new changesets or propagate existing changesets into a\n"
@@ -6324,19 +6023,21 @@
 msgstr ""
 
 msgid ""
-"print the root (top) of the current working dir\n"
+"print the root (top) of the current working directory\n"
 "\n"
 "    Print the root directory of the current repository.\n"
 "    "
 msgstr ""
 
+#, fuzzy
 msgid ""
 "export the repository via HTTP\n"
 "\n"
 "    Start a local HTTP repository browser and pull server.\n"
 "\n"
 "    By default, the server logs accesses to stdout and errors to\n"
-"    stderr. Use the \"-A\" and \"-E\" options to log to files.\n"
+"    stderr. Use the -A/--accesslog and -E/--errorlog options to log to\n"
+"    files.\n"
 "    "
 msgstr ""
 "通过 HTTP 发布版本库\n"
@@ -6351,17 +6052,19 @@
 msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "show changed files in the working directory\n"
 "\n"
 "    Show status of files in the repository. If names are given, only\n"
 "    files that match are shown. Files that are clean or ignored or\n"
-"    source of a copy/move operation, are not listed unless -c (clean),\n"
-"    -i (ignored), -C (copies) or -A is given. Unless options described\n"
-"    with \"show only ...\" are given, the options -mardu are used.\n"
+"    the source of a copy/move operation, are not listed unless\n"
+"    -c/--clean, -i/--ignored, -C/--copies or -A/--all are given.\n"
+"    Unless options described with \"show only ...\" are given, the\n"
+"    options -mardu are used.\n"
 "\n"
 "    Option -q/--quiet hides untracked (unknown and ignored) files\n"
-"    unless explicitly requested with -u/--unknown or -i/-ignored.\n"
+"    unless explicitly requested with -u/--unknown or -i/--ignored.\n"
 "\n"
 "    NOTE: status may appear to disagree with diff if permissions have\n"
 "    changed or a merge has occurred. The standard diff format does not\n"
@@ -6369,17 +6072,18 @@
 "    to one merge parent.\n"
 "\n"
 "    If one revision is given, it is used as the base revision.\n"
-"    If two revisions are given, the difference between them is shown.\n"
+"    If two revisions are given, the differences between them are\n"
+"    shown.\n"
 "\n"
 "    The codes used to show the status of files are:\n"
 "    M = modified\n"
 "    A = added\n"
 "    R = removed\n"
 "    C = clean\n"
-"    ! = deleted, but still tracked\n"
+"    ! = missing (deleted by non-hg command, but still tracked)\n"
 "    ? = not tracked\n"
 "    I = ignored\n"
-"      = the previous added file was copied from here\n"
+"      = origin of the previous file listed as A (added)\n"
 "    "
 msgstr ""
 "显示工作目录中已改变的文件\n"
@@ -6418,8 +6122,8 @@
 "    very useful to compare different revisions, to go back to significant\n"
 "    earlier versions or to mark branch points as releases, etc.\n"
 "\n"
-"    If no revision is given, the parent of the working directory is used,\n"
-"    or tip if no revision is checked out.\n"
+"    If no revision is given, the parent of the working directory is\n"
+"    used, or tip if no revision is checked out.\n"
 "\n"
 "    To facilitate version control, distribution, and merging of tags,\n"
 "    they are stored as a file named \".hgtags\" which is managed\n"
@@ -6445,9 +6149,13 @@
 msgid "tag '%s' does not exist"
 msgstr ""
 
-#, python-format
-msgid "tag '%s' is not a %s tag"
-msgstr ""
+#, fuzzy, python-format
+msgid "tag '%s' is not a global tag"
+msgstr "非本地版本库 '%s'"
+
+#, fuzzy, python-format
+msgid "tag '%s' is not a local tag"
+msgstr "非本地版本库 '%s'"
 
 #, python-format
 msgid "Removed tag %s"
@@ -6464,17 +6172,17 @@
 msgid ""
 "list repository tags\n"
 "\n"
-"    This lists both regular and local tags. When the -v/--verbose switch\n"
-"    is used, a third column \"local\" is printed for local tags.\n"
+"    This lists both regular and local tags. When the -v/--verbose\n"
+"    switch is used, a third column \"local\" is printed for local tags.\n"
 "    "
 msgstr ""
 
 msgid ""
 "show the tip revision\n"
 "\n"
-"    The tip revision (usually just called the tip) is the most\n"
-"    recently added changeset in the repository, the most recently\n"
-"    changed head.\n"
+"    The tip revision (usually just called the tip) is the changeset\n"
+"    most recently added to the repository (and therefore the most\n"
+"    recently changed head).\n"
 "\n"
 "    If you have just made a commit, that commit will be the tip. If\n"
 "    you have just pulled changes from another repository, the tip of\n"
@@ -6491,32 +6199,37 @@
 "    "
 msgstr ""
 
+#, fuzzy
 msgid ""
 "update working directory\n"
 "\n"
-"    Update the repository's working directory to the specified revision,\n"
-"    or the tip of the current branch if none is specified. Use null as\n"
-"    the revision to remove the working copy (like 'hg clone -U').\n"
-"\n"
-"    When the working dir contains no uncommitted changes, it will be\n"
-"    replaced by the state of the requested revision from the repo.  When\n"
-"    the requested revision is on a different branch, the working dir\n"
-"    will additionally be switched to that branch.\n"
-"\n"
-"    When there are uncommitted changes, use option -C to discard them,\n"
-"    forcibly replacing the state of the working dir with the requested\n"
-"    revision.\n"
-"\n"
-"    When there are uncommitted changes and option -C is not used, and\n"
-"    the parent revision and requested revision are on the same branch,\n"
-"    and one of them is an ancestor of the other, then the new working\n"
-"    directory will contain the requested revision merged with the\n"
-"    uncommitted changes.  Otherwise, the update will fail with a\n"
-"    suggestion to use 'merge' or 'update -C' instead.\n"
-"\n"
-"    If you want to update just one file to an older revision, use revert.\n"
-"\n"
-"    See 'hg help dates' for a list of formats valid for --date.\n"
+"    Update the repository's working directory to the specified\n"
+"    revision, or the tip of the current branch if none is specified.\n"
+"    Use null as the revision to remove the working copy (like 'hg\n"
+"    clone -U').\n"
+"\n"
+"    When the working directory contains no uncommitted changes, it\n"
+"    will be replaced by the state of the requested revision from the\n"
+"    repository. When the requested revision is on a different branch,\n"
+"    the working directory will additionally be switched to that\n"
+"    branch.\n"
+"\n"
+"    When there are uncommitted changes, use option -C/--clean to\n"
+"    discard them, forcibly replacing the state of the working\n"
+"    directory with the requested revision. Alternately, use -c/--check\n"
+"    to abort.\n"
+"\n"
+"    When there are uncommitted changes and option -C/--clean is not\n"
+"    used, and the parent revision and requested revision are on the\n"
+"    same branch, and one of them is an ancestor of the other, then the\n"
+"    new working directory will contain the requested revision merged\n"
+"    with the uncommitted changes. Otherwise, the update will fail with\n"
+"    a suggestion to use 'merge' or 'update -C' instead.\n"
+"\n"
+"    If you want to update just one file to an older revision, use\n"
+"    revert.\n"
+"\n"
+"    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 msgstr ""
 "更新工作目录\n"
@@ -6539,6 +6252,10 @@
 "    参见 'hg help dates' 以获得 '-d/--date' 的有效格式列表。\n"
 "    "
 
+#, fuzzy
+msgid "uncommitted local changes"
+msgstr "提交修改集 %d:%s\n"
+
 msgid ""
 "verify the integrity of the repository\n"
 "\n"
@@ -6599,9 +6316,6 @@
 msgid "set the charset encoding mode"
 msgstr "设置字符集编码模式"
 
-msgid "print improved command execution profile"
-msgstr "显示改良的命令执行剖析"
-
 msgid "print traceback on exception"
 msgstr "显示异常的跟踪"
 
@@ -6641,7 +6355,8 @@
 msgid "record datecode as commit date"
 msgstr "将提供的日期作为提交日期"
 
-msgid "record user as committer"
+#, fuzzy
+msgid "record the specified user as committer"
 msgstr "将提供的用户作为提交者"
 
 msgid "display using template map file"
@@ -6824,6 +6539,10 @@
 msgid "[INDEX] REV1 REV2"
 msgstr ""
 
+#, fuzzy
+msgid "[COMMAND]"
+msgstr "命令"
+
 msgid "show the command options"
 msgstr ""
 
@@ -6845,12 +6564,6 @@
 msgid "FILE"
 msgstr ""
 
-msgid "parent"
-msgstr ""
-
-msgid "file list"
-msgstr ""
-
 msgid "revision to rebuild to"
 msgstr ""
 
@@ -6872,6 +6585,10 @@
 msgid "[OPTION]..."
 msgstr ""
 
+#, fuzzy
+msgid "revision to check"
+msgstr "要合并的版本"
+
 msgid "[OPTION]... [-r REV1 [-r REV2]] [FILE]..."
 msgstr ""
 
@@ -6893,7 +6610,7 @@
 msgid "ignore case when matching"
 msgstr ""
 
-msgid "print only filenames and revs that match"
+msgid "print only filenames and revisions that match"
 msgstr ""
 
 msgid "print matching line numbers"
@@ -6905,20 +6622,25 @@
 msgid "[OPTION]... PATTERN [FILE]..."
 msgstr ""
 
-msgid "show only heads which are descendants of rev"
+msgid "show only heads which are descendants of REV"
 msgstr ""
 
 msgid "show only the active heads from open branches"
 msgstr ""
 
-msgid "[-r REV] [REV]..."
+#, fuzzy
+msgid "show normal and closed heads"
+msgstr "只显示已增加文件的状态"
+
+msgid "[-r STARTREV] [REV]..."
 msgstr ""
 
 msgid "[TOPIC]"
 msgstr ""
 
-msgid "identify the specified rev"
-msgstr ""
+#, fuzzy
+msgid "identify the specified revision"
+msgstr "追溯指定版本"
 
 msgid "show local revision number"
 msgstr ""
@@ -6936,8 +6658,8 @@
 msgstr ""
 
 msgid ""
-"directory strip option for patch. This has the same\n"
-"meaning as the corresponding patch option"
+"directory strip option for patch. This has the same meaning as the "
+"corresponding patch option"
 msgstr ""
 
 msgid "base path"
@@ -6952,7 +6674,7 @@
 msgid "apply patch to the nodes from which it was generated"
 msgstr ""
 
-msgid "Use any branch information in patch (implied by --exact)"
+msgid "use any branch information in patch (implied by --exact)"
 msgstr ""
 
 msgid "[OPTION]... PATCH..."
@@ -6973,7 +6695,7 @@
 msgid "[-e CMD] [--remotecmd CMD] [DEST]"
 msgstr ""
 
-msgid "search the repository as it stood at rev"
+msgid "search the repository as it stood at REV"
 msgstr ""
 
 msgid "end filenames with NUL, for use with xargs"
@@ -6988,7 +6710,8 @@
 msgid "only follow the first parent of merge changesets"
 msgstr "只跟踪修改集的第一个父亲"
 
-msgid "show revs matching date spec"
+#, fuzzy
+msgid "show revisions matching date spec"
 msgstr "显示匹配日期的版本"
 
 msgid "show copied files"
@@ -6997,13 +6720,15 @@
 msgid "do case-insensitive search for a keyword"
 msgstr "对关键字执行不区分大小写的搜索"
 
-msgid "include revs where files were removed"
+#, fuzzy
+msgid "include revisions where files were removed"
 msgstr "包含删除文件的版本"
 
 msgid "show only merges"
 msgstr "只显示合并"
 
-msgid "revs committed by user"
+#, fuzzy
+msgid "revisions committed by user"
 msgstr "指定用户提交的版本"
 
 msgid "show only changesets within the given named branch"
@@ -7027,6 +6752,9 @@
 msgid "revision to merge"
 msgstr "要合并的版本"
 
+msgid "review revisions to merge (no merge is performed)"
+msgstr ""
+
 msgid "[-f] [[-r] REV]"
 msgstr ""
 
@@ -7036,10 +6764,11 @@
 msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
 msgstr ""
 
-msgid "show parents from the specified rev"
+#, fuzzy
+msgid "show parents from the specified revision"
 msgstr "从指定的版本显示父亲"
 
-msgid "hg parents [-r REV] [FILE]"
+msgid "[-r REV] [FILE]"
 msgstr ""
 
 msgid "[NAME]"
@@ -7111,10 +6840,12 @@
 msgid "prefix path to serve from (default: server root)"
 msgstr "服务路径前缀(默认: 服务器根)"
 
-msgid "name to show in web pages (default: working dir)"
+#, fuzzy
+msgid "name to show in web pages (default: working directory)"
 msgstr "在 WEB 页面中显示的名称(默认: 工作目录)"
 
-msgid "name of the webdir config file (serve more than one repo)"
+#, fuzzy
+msgid "name of the webdir config file (serve more than one repository)"
 msgstr "webdir 配置文件的名称(发布多个版本库)"
 
 msgid "for remote clients"
@@ -7198,9 +6929,17 @@
 msgid "overwrite locally modified files (no backup)"
 msgstr "覆盖本地修改的文件(不备份)"
 
+#, fuzzy
+msgid "check for uncommitted changes"
+msgstr "提交修改集 %d:%s\n"
+
 msgid "[-C] [-d DATE] [[-r] REV]"
 msgstr ""
 
+#, python-format
+msgid "config error at %s:%d: '%s'"
+msgstr ""
+
 msgid "not found in manifest"
 msgstr ""
 
@@ -7226,10 +6965,6 @@
 msgid "  all copies found (* = to merge, ! = divergent):\n"
 msgstr ""
 
-#, python-format
-msgid "   %s -> %s %s\n"
-msgstr ""
-
 msgid "  checking for directory renames\n"
 msgstr ""
 
@@ -7241,6 +6976,9 @@
 msgid "  file %s -> %s\n"
 msgstr ""
 
+msgid "working directory state appears damaged!"
+msgstr ""
+
 #, python-format
 msgid "'\\n' and '\\r' disallowed in filenames: %r"
 msgstr ""
@@ -7257,6 +6995,9 @@
 msgid "not in dirstate: %s\n"
 msgstr ""
 
+msgid "unknown"
+msgstr ""
+
 msgid "character device"
 msgstr ""
 
@@ -7273,7 +7014,7 @@
 msgstr ""
 
 #, python-format
-msgid "%s: unsupported file type (type is %s)\n"
+msgid "unsupported file type (type is %s)"
 msgstr ""
 
 #, python-format
@@ -7287,6 +7028,10 @@
 msgstr ""
 
 #, python-format
+msgid "hg: %s\n"
+msgstr ""
+
+#, python-format
 msgid "timed out waiting for lock held by %s"
 msgstr ""
 
@@ -7307,10 +7052,6 @@
 msgstr ""
 
 #, python-format
-msgid "hg: %s\n"
-msgstr ""
-
-#, python-format
 msgid "abort: %s!\n"
 msgstr "中止: %s!\n"
 
@@ -7376,6 +7117,24 @@
 msgstr "** 已加载的扩展: %s\n"
 
 #, python-format
+msgid "no definition for alias '%s'\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "alias '%s' resolves to unknown command '%s'\n"
+msgstr "hg: 未知命令 '%s'\n"
+
+#, python-format
+msgid "alias '%s' resolves to ambiguous command '%s'\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "alias '%s' shadows command\n"
+msgstr ""
+"命令列表:\n"
+"\n"
+
+#, python-format
 msgid "malformed --config option: %s"
 msgstr "非法 '--config' 选项: %s"
 
@@ -7389,8 +7148,9 @@
 msgid "Option --cwd may not be abbreviated!"
 msgstr "选项 '--cwd' 不能简短!"
 
-msgid ""
-"Option -R has to be separated from other options (i.e. not -qR) and --"
+#, fuzzy
+msgid ""
+"Option -R has to be separated from other options (e.g. not -qR) and --"
 "repository may only be abbreviated as --repo!"
 msgstr ""
 "选项 -R 必须隔离使用(也就是不能 -qR),并且 --repository 只能简短为 --repo!"
@@ -7406,7 +7166,8 @@
 msgid "invalid arguments"
 msgstr "非法参数"
 
-msgid "exception raised - generating profile anyway\n"
+#, python-format
+msgid "unrecognized profiling format '%s' - Ignored\n"
 msgstr ""
 
 msgid ""
@@ -7451,7 +7212,10 @@
 " 没有找到工具合并 %s\n"
 "使用本地(l)或者他人(o)的内容?"
 
-msgid "[lo]"
+msgid "&Local"
+msgstr ""
+
+msgid "&Other"
 msgstr ""
 
 msgid "l"
@@ -7478,7 +7242,10 @@
 "was merge successful (yn)?"
 msgstr ""
 
-msgid "[yn]"
+msgid "&No"
+msgstr ""
+
+msgid "&Yes"
 msgstr ""
 
 msgid "n"
@@ -7496,6 +7263,51 @@
 msgid "unknown bisect kind %s"
 msgstr ""
 
+msgid ""
+"\n"
+"    Mercurial has the ability to add new features through the use of\n"
+"    extensions. Extensions may add new commands, add options to\n"
+"    existing commands, change the default behavior of commands, or\n"
+"    implement hooks.\n"
+"\n"
+"    Extensions are not loaded by default for a variety of reasons:\n"
+"    they can increase startup overhead; they may be meant for\n"
+"    advanced usage only; they may provide potentially dangerous\n"
+"    abilities (such as letting you destroy or modify history); they\n"
+"    might not be ready for prime time; or they may alter some\n"
+"    usual behaviors of stock Mercurial. It is thus up to the user to\n"
+"    activate extensions as needed.\n"
+"\n"
+"    To enable the \"foo\" extension, either shipped with Mercurial\n"
+"    or in the Python search path, create an entry for it in your\n"
+"    hgrc, like this:\n"
+"\n"
+"      [extensions]\n"
+"      foo =\n"
+"\n"
+"    You may also specify the full path to an extension:\n"
+"\n"
+"      [extensions]\n"
+"      myfeature = ~/.hgext/myfeature.py\n"
+"\n"
+"    To explicitly disable an extension enabled in an hgrc of broader\n"
+"    scope, prepend its path with !:\n"
+"\n"
+"      [extensions]\n"
+"      # disabling extension bar residing in /path/to/extension/bar.py\n"
+"      hgext.bar = !/path/to/extension/bar.py\n"
+"      # ditto, but no path was supplied for extension baz\n"
+"      hgext.baz = !\n"
+"    "
+msgstr ""
+
+#, fuzzy
+msgid "disabled extensions:"
+msgstr ""
+"\n"
+"启用的扩展:\n"
+"\n"
+
 msgid "Date Formats"
 msgstr ""
 
@@ -7526,9 +7338,9 @@
 "    \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n"
 "\n"
 "    This is the internal representation format for dates. unixtime is\n"
-"    the number of seconds since the epoch (1970-01-01 00:00 UTC). offset\n"
-"    is the offset of the local timezone, in seconds west of UTC (negative\n"
-"    if the timezone is east of UTC).\n"
+"    the number of seconds since the epoch (1970-01-01 00:00 UTC).\n"
+"    offset is the offset of the local timezone, in seconds west of UTC\n"
+"    (negative if the timezone is east of UTC).\n"
 "\n"
 "    The log command also accepts date ranges:\n"
 "\n"
@@ -7595,10 +7407,10 @@
 msgid ""
 "\n"
 "HG::\n"
-"    Path to the 'hg' executable, automatically passed when running hooks,\n"
-"    extensions or external tools. If unset or empty, this is the hg\n"
-"    executable's name if it's frozen, or an executable named 'hg'\n"
-"    (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
+"    Path to the 'hg' executable, automatically passed when running\n"
+"    hooks, extensions or external tools. If unset or empty, this is\n"
+"    the hg executable's name if it's frozen, or an executable named\n"
+"    'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
 "    Windows) is searched.\n"
 "\n"
 "HGEDITOR::\n"
@@ -7634,8 +7446,8 @@
 "    from the current repository is read.\n"
 "\n"
 "    For each element in HGRCPATH:\n"
-"    * if it's a directory, all directories ending with .rc are added\n"
-"    * otherwise, the directory itself will be added\n"
+"    * if it's a directory, all files ending with .rc are added\n"
+"    * otherwise, the file itself will be added\n"
 "\n"
 "HGUSER::\n"
 "    This is the string used as the author of a commit. If not set,\n"
@@ -7659,16 +7471,16 @@
 "    This is the name of the editor to use when committing. See EDITOR.\n"
 "\n"
 "EDITOR::\n"
-"    Sometimes Mercurial needs to open a text file in an editor\n"
-"    for a user to modify, for example when writing commit messages.\n"
-"    The editor it uses is determined by looking at the environment\n"
+"    Sometimes Mercurial needs to open a text file in an editor for a\n"
+"    user to modify, for example when writing commit messages. The\n"
+"    editor it uses is determined by looking at the environment\n"
 "    variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n"
 "    non-empty one is chosen. If all of them are empty, the editor\n"
 "    defaults to 'vi'.\n"
 "\n"
 "PYTHONPATH::\n"
-"    This is used by Python to find imported modules and may need to be set\n"
-"    appropriately if this Mercurial is not installed system-wide.\n"
+"    This is used by Python to find imported modules and may need to be\n"
+"    set appropriately if this Mercurial is not installed system-wide.\n"
 "    "
 msgstr ""
 
@@ -7677,14 +7489,13 @@
 
 msgid ""
 "\n"
-"    Mercurial supports several ways to specify individual\n"
-"    revisions.\n"
-"\n"
-"    A plain integer is treated as a revision number. Negative\n"
-"    integers are treated as toplogical offsets from the tip, with\n"
-"    -1 denoting the tip. As such, negative numbers are only useful\n"
-"    if you've memorized your local tree numbers and want to save\n"
-"    typing a single digit. This editor suggests copy and paste.\n"
+"    Mercurial supports several ways to specify individual revisions.\n"
+"\n"
+"    A plain integer is treated as a revision number. Negative integers\n"
+"    are treated as topological offsets from the tip, with -1 denoting\n"
+"    the tip. As such, negative numbers are only useful if you've\n"
+"    memorized your local tree numbers and want to save typing a single\n"
+"    digit. This editor suggests copy and paste.\n"
 "\n"
 "    A 40-digit hexadecimal string is treated as a unique revision\n"
 "    identifier.\n"
@@ -7705,15 +7516,16 @@
 "    revision of an empty repository, and the parent of revision 0.\n"
 "\n"
 "    The reserved name \".\" indicates the working directory parent. If\n"
-"    no working directory is checked out, it is equivalent to null.\n"
-"    If an uncommitted merge is in progress, \".\" is the revision of\n"
-"    the first parent.\n"
+"    no working directory is checked out, it is equivalent to null. If\n"
+"    an uncommitted merge is in progress, \".\" is the revision of the\n"
+"    first parent.\n"
 "    "
 msgstr ""
 
 msgid "Specifying Multiple Revisions"
 msgstr "指定多个版本"
 
+#, fuzzy
 msgid ""
 "\n"
 "    When Mercurial accepts more than one revision, they may be\n"
@@ -7723,8 +7535,8 @@
 "    The syntax of range notation is [BEGIN]:[END], where BEGIN and END\n"
 "    are revision identifiers. Both BEGIN and END are optional. If\n"
 "    BEGIN is not specified, it defaults to revision number 0. If END\n"
-"    is not specified, it defaults to the tip. The range \":\" thus\n"
-"    means \"all revisions\".\n"
+"    is not specified, it defaults to the tip. The range \":\" thus means\n"
+"    \"all revisions\".\n"
 "\n"
 "    If BEGIN is greater than END, revisions are treated in reverse\n"
 "    order.\n"
@@ -7751,11 +7563,13 @@
 msgid "Diff Formats"
 msgstr "差异格式"
 
-msgid ""
-"\n"
-"    Mercurial's default format for showing changes between two versions\n"
-"    of a file is compatible with the unified format of GNU diff, which\n"
-"    can be used by GNU patch and many other standard tools.\n"
+#, fuzzy
+msgid ""
+"\n"
+"    Mercurial's default format for showing changes between two\n"
+"    versions of a file is compatible with the unified format of GNU\n"
+"    diff, which can be used by GNU patch and many other standard\n"
+"    tools.\n"
 "\n"
 "    While this standard format is often enough, it does not encode the\n"
 "    following information:\n"
@@ -7773,15 +7587,16 @@
 "    This means that when generating diffs from a Mercurial repository\n"
 "    (e.g. with \"hg export\"), you should be careful about things like\n"
 "    file copies and renames or other things mentioned above, because\n"
-"    when applying a standard diff to a different repository, this extra\n"
-"    information is lost. Mercurial's internal operations (like push and\n"
-"    pull) are not affected by this, because they use an internal binary\n"
-"    format for communicating changes.\n"
+"    when applying a standard diff to a different repository, this\n"
+"    extra information is lost. Mercurial's internal operations (like\n"
+"    push and pull) are not affected by this, because they use an\n"
+"    internal binary format for communicating changes.\n"
 "\n"
 "    To make Mercurial produce the git extended diff format, use the\n"
-"    --git option available for many commands, or set 'git = True' in the\n"
-"    [diff] section of your hgrc. You do not need to set this option when\n"
-"    importing diffs in this format or using them in the mq extension.\n"
+"    --git option available for many commands, or set 'git = True' in\n"
+"    the [diff] section of your hgrc. You do not need to set this\n"
+"    option when importing diffs in this format or using them in the mq\n"
+"    extension.\n"
 "    "
 msgstr ""
 "\n"
@@ -7811,50 +7626,56 @@
 msgid "Template Usage"
 msgstr "模版用法"
 
+#, fuzzy
 msgid ""
 "\n"
 "    Mercurial allows you to customize output of commands through\n"
-"    templates. You can either pass in a template from the command line,\n"
-"    via the --template option, or select an existing template-style (--"
-"style).\n"
-"\n"
-"    You can customize output for any \"log-like\" command: log, outgoing,\n"
-"    incoming, tip, parents, heads and glog.\n"
+"    templates. You can either pass in a template from the command\n"
+"    line, via the --template option, or select an existing\n"
+"    template-style (--style).\n"
+"\n"
+"    You can customize output for any \"log-like\" command: log,\n"
+"    outgoing, incoming, tip, parents, heads and glog.\n"
 "\n"
 "    Three styles are packaged with Mercurial: default (the style used\n"
-"    when no explicit preference is passed), compact and changelog. Usage:\n"
+"    when no explicit preference is passed), compact and changelog.\n"
+"    Usage:\n"
 "\n"
 "        $ hg log -r1 --style changelog\n"
 "\n"
-"    A template is a piece of text, with markup to invoke variable expansion:\n"
+"    A template is a piece of text, with markup to invoke variable\n"
+"    expansion:\n"
 "\n"
 "        $ hg log -r1 --template \"{node}\\n\"\n"
 "        b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
 "\n"
 "    Strings in curly braces are called keywords. The availability of\n"
-"    keywords depends on the exact context of the templater. These keywords\n"
-"    are usually available for templating a log-like command:\n"
+"    keywords depends on the exact context of the templater. These\n"
+"    keywords are usually available for templating a log-like command:\n"
 "\n"
 "    - author: String. The unmodified author of the changeset.\n"
 "    - branches: String. The name of the branch on which the changeset\n"
 "          was committed. Will be empty if the branch name was default.\n"
 "    - date: Date information. The date when the changeset was committed.\n"
 "    - desc: String. The text of the changeset description.\n"
+"    - diffstat: String. Statistics of changes with the following\n"
+"          format: \"modified files: +added/-removed lines\"\n"
 "    - files: List of strings. All files modified, added, or removed by\n"
 "          this changeset.\n"
 "    - file_adds: List of strings. Files added by this changeset.\n"
 "    - file_mods: List of strings. Files modified by this changeset.\n"
 "    - file_dels: List of strings. Files removed by this changeset.\n"
-"    - node: String. The changeset identification hash, as a 40-character\n"
-"          hexadecimal string.\n"
+"    - node: String. The changeset identification hash, as a\n"
+"          40-character hexadecimal string.\n"
 "    - parents: List of strings. The parents of the changeset.\n"
 "    - rev: Integer. The repository-local changeset revision number.\n"
 "    - tags: List of strings. Any tags associated with the changeset.\n"
 "\n"
 "    The \"date\" keyword does not produce human-readable output. If you\n"
-"    want to use a date in your output, you can use a filter to process it.\n"
-"    Filters are functions which return a string based on the input variable.\n"
-"    You can also use a chain of filters to get the desired output:\n"
+"    want to use a date in your output, you can use a filter to process\n"
+"    it. Filters are functions which return a string based on the input\n"
+"    variable. You can also use a chain of filters to get the desired\n"
+"    output:\n"
 "\n"
 "       $ hg tip --template \"{date|isodate}\\n\"\n"
 "       2008-08-21 18:22 +0000\n"
@@ -7867,37 +7688,41 @@
 "          the given date/time and the current date/time.\n"
 "    - basename: Any text. Treats the text as a path, and returns the\n"
 "          last component of the path after splitting by the path\n"
-"          separator (ignoring trailing seprators). For example,\n"
+"          separator (ignoring trailing separators). For example,\n"
 "          \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\" becomes \"bar\".\n"
+"    - stripdir: Treat the text as path and strip a directory level, if\n"
+"          possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\".\n"
 "    - date: Date. Returns a date in a Unix date format, including\n"
 "          the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n"
-"    - domain: Any text. Finds the first string that looks like an email\n"
-"          address, and extracts just the domain component.\n"
+"    - domain: Any text. Finds the first string that looks like an\n"
+"          email address, and extracts just the domain component.\n"
 "          Example: 'User <user@example.com>' becomes 'example.com'.\n"
-"    - email: Any text. Extracts the first string that looks like an email\n"
-"          address. Example: 'User <user@example.com>' becomes\n"
+"    - email: Any text. Extracts the first string that looks like an\n"
+"          email address. Example: 'User <user@example.com>' becomes\n"
 "          'user@example.com'.\n"
 "    - escape: Any text. Replaces the special XML/XHTML characters \"&\",\n"
 "          \"<\" and \">\" with XML entities.\n"
 "    - fill68: Any text. Wraps the text to fit in 68 columns.\n"
 "    - fill76: Any text. Wraps the text to fit in 76 columns.\n"
 "    - firstline: Any text. Returns the first line of text.\n"
+"    - nonempty: Any text. Returns '(none)' if the string is empty.\n"
 "    - hgdate: Date. Returns the date as a pair of numbers:\n"
 "          \"1157407993 25200\" (Unix timestamp, timezone offset).\n"
 "    - isodate: Date. Returns the date in ISO 8601 format.\n"
-"    - obfuscate: Any text. Returns the input text rendered as a sequence\n"
-"          of XML entities.\n"
+"    - localdate: Date. Converts a date to local date.\n"
+"    - obfuscate: Any text. Returns the input text rendered as a\n"
+"          sequence of XML entities.\n"
 "    - person: Any text. Returns the text before an email address.\n"
 "    - rfc822date: Date. Returns a date using the same format used\n"
 "          in email headers.\n"
-"    - short: Changeset hash. Returns the short form of a changeset hash,\n"
-"          i.e. a 12-byte hexadecimal string.\n"
+"    - short: Changeset hash. Returns the short form of a changeset\n"
+"          hash, i.e. a 12-byte hexadecimal string.\n"
 "    - shortdate: Date. Returns a date like \"2006-09-18\".\n"
 "    - strip: Any text. Strips all leading and trailing whitespace.\n"
-"    - tabindent: Any text. Returns the text, with every line except the\n"
-"          first starting with a tab character.\n"
-"    - urlescape: Any text. Escapes all \"special\" characters. For example,\n"
-"          \"foo bar\" becomes \"foo%20bar\".\n"
+"    - tabindent: Any text. Returns the text, with every line except\n"
+"          the first starting with a tab character.\n"
+"    - urlescape: Any text. Escapes all \"special\" characters. For\n"
+"          example, \"foo bar\" becomes \"foo%20bar\".\n"
 "    - user: Any text. Returns the user portion of an email address.\n"
 "    "
 msgstr ""
@@ -7976,9 +7801,11 @@
 "    - user: 输入任意文本。返回 email 地址中的用户名称部分。\n"
 "    "
 
-msgid "Url Paths"
+#, fuzzy
+msgid "URL Paths"
 msgstr "统一资源定位路径"
 
+#, fuzzy
 msgid ""
 "\n"
 "    Valid URLs are of the form:\n"
@@ -7996,42 +7823,44 @@
 "    or changeset to use from the remote repository.\n"
 "\n"
 "    Some features, such as pushing to http:// and https:// URLs are\n"
-"    only possible if the feature is explicitly enabled on the\n"
-"    remote Mercurial server.\n"
+"    only possible if the feature is explicitly enabled on the remote\n"
+"    Mercurial server.\n"
 "\n"
 "    Some notes about using SSH with Mercurial:\n"
-"    - SSH requires an accessible shell account on the destination machine\n"
-"      and a copy of hg in the remote path or specified with as remotecmd.\n"
+"    - SSH requires an accessible shell account on the destination\n"
+"      machine and a copy of hg in the remote path or specified with as\n"
+"      remotecmd.\n"
 "    - path is relative to the remote user's home directory by default.\n"
 "      Use an extra slash at the start of a path to specify an absolute path:\n"
 "        ssh://example.com//tmp/repository\n"
-"    - Mercurial doesn't use its own compression via SSH; the right thing\n"
-"      to do is to configure it in your ~/.ssh/config, e.g.:\n"
+"    - Mercurial doesn't use its own compression via SSH; the right\n"
+"      thing to do is to configure it in your ~/.ssh/config, e.g.:\n"
 "        Host *.mylocalnetwork.example.com\n"
 "          Compression no\n"
 "        Host *\n"
 "          Compression yes\n"
-"      Alternatively specify \"ssh -C\" as your ssh command in your hgrc or\n"
-"      with the --ssh command line option.\n"
-"\n"
-"    These urls can all be stored in your hgrc with path aliases under the\n"
-"    [paths] section like so:\n"
+"      Alternatively specify \"ssh -C\" as your ssh command in your hgrc\n"
+"      or with the --ssh command line option.\n"
+"\n"
+"    These URLs can all be stored in your hgrc with path aliases under\n"
+"    the [paths] section like so:\n"
 "    [paths]\n"
 "    alias1 = URL1\n"
 "    alias2 = URL2\n"
 "    ...\n"
 "\n"
-"    You can then use the alias for any command that uses a url (for example\n"
-"    'hg pull alias1' would pull from the 'alias1' path).\n"
+"    You can then use the alias for any command that uses a URL (for\n"
+"    example 'hg pull alias1' would pull from the 'alias1' path).\n"
 "\n"
 "    Two path aliases are special because they are used as defaults\n"
-"    when you do not provide the url to a command:\n"
+"    when you do not provide the URL to a command:\n"
 "\n"
 "    default:\n"
-"      When you create a repository with hg clone, the clone command saves\n"
-"      the location of the source repository as the new repository's\n"
-"      'default' path. This is then used when you omit path from push-\n"
-"      and pull-like commands (including in and out).\n"
+"      When you create a repository with hg clone, the clone command\n"
+"      saves the location of the source repository as the new\n"
+"      repository's 'default' path. This is then used when you omit\n"
+"      path from push- and pull-like commands (including incoming and\n"
+"      outgoing).\n"
 "\n"
 "    default-push:\n"
 "      The push command will look for a path named 'default-push', and\n"
@@ -8089,6 +7918,21 @@
 "      命令 'push' 会查找别名是 'default-push' 的路径,它覆盖定义 'default'。\n"
 "    "
 
+#, fuzzy
+msgid "Using additional features"
+msgstr "启用额外的输出"
+
+#, fuzzy
+msgid "can only share local repositories"
+msgstr "为此版本库启动服务 'inotify'"
+
+#, fuzzy
+msgid "destination already exists"
+msgstr "版本库 %s 已存在"
+
+msgid "updating working directory\n"
+msgstr "正在更新工作目录\n"
+
 #, python-format
 msgid "destination directory: %s\n"
 msgstr "目标目录: %s\n"
@@ -8097,6 +7941,10 @@
 msgid "destination '%s' already exists"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "destination '%s' is not empty"
+msgstr "非本地版本库 '%s'"
+
 msgid ""
 "src repository does not support revision lookup and so doesn't support clone "
 "by revision"
@@ -8105,9 +7953,6 @@
 msgid "clone from remote to remote not supported"
 msgstr ""
 
-msgid "updating working directory\n"
-msgstr "正在更新工作目录\n"
-
 msgid "updated"
 msgstr "已更新"
 
@@ -8142,7 +7987,7 @@
 msgid "SSL support is unavailable"
 msgstr ""
 
-msgid "IPv6 not available on this system"
+msgid "IPv6 is not available on this system"
 msgstr ""
 
 #, python-format
@@ -8237,8 +8082,8 @@
 msgid "real URL is %s\n"
 msgstr "实际 URL 是 '%s'\n"
 
-#, python-format
-msgid "Requested URL: '%s'\n"
+#, fuzzy, python-format
+msgid "requested URL: '%s'\n"
 msgstr "请求的 URL: '%s'\n"
 
 #, python-format
@@ -8296,6 +8141,10 @@
 msgstr ""
 
 #, python-format
+msgid ".hg/sharedpath points to nonexistent directory %s"
+msgstr ""
+
+#, python-format
 msgid "%r cannot be used in a tag name"
 msgstr ""
 
@@ -8314,7 +8163,7 @@
 msgstr ""
 
 #, python-format
-msgid "tag '%s' refers to unknown node"
+msgid "working directory has unknown parent '%s'!"
 msgstr ""
 
 #, python-format
@@ -8367,26 +8216,32 @@
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr ""
 
-#, python-format
-msgid "%s not tracked!\n"
+#, fuzzy
+msgid "file not found!"
+msgstr "没有找到样式: %s"
+
+#, fuzzy
+msgid "no match under directory!"
+msgstr "改变工作目录"
+
+#, fuzzy
+msgid "file not tracked!"
 msgstr "%s 没有被跟踪!\n"
 
+msgid "nothing changed\n"
+msgstr "没有改变\n"
+
 msgid "unresolved merge conflicts (see hg resolve)"
 msgstr "未解决的合并冲突(参见 'hg resolve')"
 
-msgid "nothing changed\n"
-msgstr "没有改变\n"
+#, fuzzy, python-format
+msgid "committing subrepository %s\n"
+msgstr "初始化目标版本库 %s\n"
 
 #, python-format
 msgid "trouble committing %s!\n"
 msgstr "提交 '%s' 出错!\n"
 
-msgid "HG: Enter commit message.  Lines beginning with 'HG:' are removed."
-msgstr "HG: 请输入提交日志。以 'HG:' 开始的行会被删除。"
-
-msgid "empty commit message"
-msgstr "空的提交日志"
-
 #, python-format
 msgid "%s does not exist!\n"
 msgstr "%s 不存在!\n"
@@ -8414,6 +8269,10 @@
 msgstr ""
 
 #, python-format
+msgid "%s not tracked!\n"
+msgstr "%s 没有被跟踪!\n"
+
+#, python-format
 msgid "%s not removed!\n"
 msgstr ""
 
@@ -8486,6 +8345,10 @@
 "changegroupsubset."
 msgstr ""
 
+#, python-format
+msgid "abort: push creates new remote branch '%s'!\n"
+msgstr ""
+
 msgid "abort: push creates new remote heads!\n"
 msgstr ""
 
@@ -8607,9 +8470,6 @@
 msgid "invalid local address: %s"
 msgstr ""
 
-msgid "'\\n' and '\\r' disallowed in filenames"
-msgstr ""
-
 #, python-format
 msgid "failed to remove %s from manifest"
 msgstr ""
@@ -8628,6 +8488,22 @@
 msgid "case-folding collision between %s and %s"
 msgstr ""
 
+#, python-format
+msgid ""
+" conflicting flags for %s\n"
+"(n)one, e(x)ec or sym(l)ink?"
+msgstr ""
+
+#, fuzzy
+msgid "&None"
+msgstr "完成\n"
+
+msgid "E&xec"
+msgstr ""
+
+msgid "Sym&link"
+msgstr ""
+
 msgid "resolving manifests\n"
 msgstr "正在解析清单\n"
 
@@ -8641,17 +8517,14 @@
 
 #, python-format
 msgid ""
-" conflicting flags for %s\n"
-"(n)one, e(x)ec or sym(l)ink?"
-msgstr ""
-
-#, python-format
-msgid ""
 " local changed %s which remote deleted\n"
 "use (c)hanged version or (d)elete?"
 msgstr ""
 
-msgid "[cd]"
+msgid "&Changed"
+msgstr ""
+
+msgid "&Delete"
 msgstr ""
 
 msgid "c"
@@ -8663,6 +8536,9 @@
 "use (c)hanged version or leave (d)eleted?"
 msgstr ""
 
+msgid "&Deleted"
+msgstr ""
+
 #, python-format
 msgid "preserving %s for resolve of %s\n"
 msgstr ""
@@ -8676,10 +8552,6 @@
 msgstr "正在检出 %s\n"
 
 #, python-format
-msgid "moving %s to %s\n"
-msgstr ""
-
-#, python-format
 msgid "getting %s to %s\n"
 msgstr ""
 
@@ -8697,6 +8569,9 @@
 msgid "nothing to merge (use 'hg update' or check 'hg heads')"
 msgstr ""
 
+msgid "outstanding uncommitted changes (use 'hg status' to list changes)"
+msgstr ""
+
 msgid "crosses branches (use 'hg merge' or 'hg update -C' to discard changes)"
 msgstr ""
 
@@ -8742,7 +8617,11 @@
 msgstr ""
 
 #, python-format
-msgid "Hunk #%d succeeded at %d %s(offset %d %s).\n"
+msgid "Hunk #%d succeeded at %d %s(offset %d line).\n"
+msgstr ""
+
+#, python-format
+msgid "Hunk #%d succeeded at %d %s(offset %d lines).\n"
 msgstr ""
 
 #, python-format
@@ -8784,10 +8663,29 @@
 msgstr ""
 
 #, python-format
+msgid "Unsupported line endings type: %s"
+msgstr ""
+
+#, python-format
 msgid "no valid hunks found; trying with %r instead\n"
 msgstr ""
 
 #, python-format
+msgid "exited with status %d"
+msgstr ""
+
+#, python-format
+msgid "killed by signal %d"
+msgstr ""
+
+#, python-format
+msgid "stopped by signal %d"
+msgstr ""
+
+msgid "invalid exit code"
+msgstr ""
+
+#, python-format
 msgid "saving bundle to %s\n"
 msgstr ""
 
@@ -8814,6 +8712,10 @@
 msgid "index %s unknown format %d"
 msgstr ""
 
+#, python-format
+msgid "index %s is corrupted"
+msgstr ""
+
 msgid "no node"
 msgstr ""
 
@@ -8888,75 +8790,91 @@
 msgid "sending %s (%d bytes)\n"
 msgstr "正在发送 %s (%d 字节)\n"
 
+#, python-format
+msgid ""
+" subrepository sources for %s differ\n"
+"use (l)ocal source (%s) or (r)emote source (%s)?"
+msgstr ""
+
+msgid "&Remote"
+msgstr ""
+
+msgid "r"
+msgstr ""
+
+#, python-format
+msgid ""
+" local changed subrepository %s which remote removed\n"
+"use (c)hanged version or (d)elete?"
+msgstr ""
+
+#, python-format
+msgid ""
+" remote changed subrepository %s which local removed\n"
+"use (c)hanged version or (d)elete?"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "removing subrepo %s\n"
+msgstr "正在删除 %s\n"
+
+#, fuzzy, python-format
+msgid "pulling subrepo %s\n"
+msgstr "正在拉自 %s\n"
+
+#, fuzzy, python-format
+msgid "pushing subrepo %s\n"
+msgstr "正在推到 %s\n"
+
 msgid "unmatched quotes"
 msgstr "不匹配的引号"
 
 #, python-format
+msgid "error expanding '%s%%%s'"
+msgstr ""
+
+#, python-format
+msgid "unknown filter '%s'"
+msgstr ""
+
+#, python-format
 msgid "style not found: %s"
 msgstr "没有找到样式: %s"
 
 #, python-format
-msgid "%s:%s: parse error"
-msgstr "%s:%s: 解析出错"
-
-#, python-format
 msgid "template file %s: %s"
 msgstr "模版文件 %s: %s"
 
-#, python-format
-msgid "Error expanding '%s%%%s'"
-msgstr ""
-
-msgid "transaction abort!\n"
-msgstr "事务中止!\n"
+msgid "cannot use transaction when it is already committed/aborted"
+msgstr ""
 
 #, python-format
 msgid "failed to truncate %s\n"
 msgstr "截断 '%s' 失败\n"
 
+msgid "transaction abort!\n"
+msgstr "事务中止!\n"
+
 msgid "rollback completed\n"
 msgstr "完成回滚\n"
 
+msgid "rollback failed - please run hg recover\n"
+msgstr ""
+
 #, python-format
 msgid "Not trusting file %s from untrusted user %s, group %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"Failed to parse %s\n"
-"%s"
-msgstr ""
-"解析 '%s' 失败\n"
-"%s"
-
-#, python-format
 msgid "Ignored: %s\n"
 msgstr ""
 
-#, python-format
-msgid "unable to open %s: %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"failed to parse %s\n"
-"%s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Error in configuration section [%s] parameter '%s':\n"
-"%s"
-msgstr ""
-
-#, python-format
-msgid "Ignoring untrusted configuration option %s.%s = %s\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"Error in configuration section [%s]:\n"
-"%s"
+#, fuzzy, python-format
+msgid "ignoring untrusted configuration option %s.%s = %s\n"
+msgstr "显示不能信赖的配置选项"
+
+#, python-format
+msgid "%s.%s not a boolean ('%s')"
 msgstr ""
 
 msgid "enter a commit username:"
@@ -9003,18 +8921,14 @@
 msgstr "用户:"
 
 #, python-format
+msgid "http auth: user %s, password %s\n"
+msgstr ""
+
+#, python-format
 msgid "proxying through http://%s:%s\n"
 msgstr ""
 
 #, python-format
-msgid "http auth: user %s, password %s\n"
-msgstr ""
-
-#, python-format
-msgid "%s, please check your locale settings"
-msgstr ""
-
-#, python-format
 msgid "command '%s' failed: %s"
 msgstr ""
 
@@ -9033,24 +8947,6 @@
 msgid "Hardlinks not supported"
 msgstr ""
 
-msgid "user name not available - set USERNAME environment variable"
-msgstr ""
-
-#, python-format
-msgid "exited with status %d"
-msgstr ""
-
-#, python-format
-msgid "killed by signal %d"
-msgstr ""
-
-#, python-format
-msgid "stopped by signal %d"
-msgstr ""
-
-msgid "invalid exit code"
-msgstr ""
-
 #, python-format
 msgid "could not symlink to %r: %s"
 msgstr ""
@@ -9138,7 +9034,11 @@
 msgstr ""
 
 #, python-format
-msgid "rev %d point to %s changeset %d"
+msgid "rev %d points to nonexistent changeset %d"
+msgstr ""
+
+#, python-format
+msgid "rev %d points to unexpected changeset %d"
 msgstr ""
 
 #, python-format
@@ -9175,6 +9075,10 @@
 msgid "checking manifests\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%s not in changesets"
+msgstr "列出修改集"
+
 msgid "file without name in manifest"
 msgstr ""
 
@@ -9256,3 +9160,6 @@
 #, python-format
 msgid "(first damaged changeset appears to be %d)\n"
 msgstr ""
+
+msgid "user name not available - set USERNAME environment variable"
+msgstr ""