i18n/zh_TW.po
changeset 9770 afe646dd78fc
parent 8828 49273e107818
child 10172 c5c969e9eefb
--- a/i18n/zh_TW.po	Sun Oct 25 12:50:12 2009 +0100
+++ b/i18n/zh_TW.po	Sun Oct 25 12:50:30 2009 +0100
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2009-06-10 22:09+0800\n"
-"PO-Revision-Date: 2009-06-18 21:12+0200\n"
+"POT-Creation-Date: 2009-10-25 12:38+0100\n"
+"PO-Revision-Date: 2009-10-25 12:50+0100\n"
 "Last-Translator: Chia-Huan Wu <willie.tw@gmail.com>\n"
 "Language-Team: Traditional Chinese\n"
 "MIME-Version: 1.0\n"
@@ -25,7 +25,10 @@
 msgid "COMMANDS"
 msgstr "命令"
 
-msgid "    options:\n"
+#, fuzzy
+msgid ""
+"    options:\n"
+"\n"
 msgstr "    選項: \n"
 
 #, python-format
@@ -36,12 +39,512 @@
 "    別名: %s\n"
 "\n"
 
-#, python-format
-msgid "acl: %s not enabled\n"
-msgstr "acl: %s 尚未啟用\n"
-
-#, python-format
-msgid "acl: %s enabled, %d entries for user %s\n"
+msgid ""
+"Some commands allow the user to specify a date, e.g.:\n"
+"\n"
+"- backout, commit, import, tag: Specify the commit date.\n"
+"- log, revert, update: Select revision(s) by date.\n"
+"\n"
+"Many date formats are valid. Here are some examples::\n"
+"\n"
+"  \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n"
+"  \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n"
+"  \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n"
+"  \"Dec 6\" (midnight)\n"
+"  \"13:18\" (today assumed)\n"
+"  \"3:39\" (3:39AM assumed)\n"
+"  \"3:39pm\" (15:39)\n"
+"  \"2006-12-06 13:18:29\" (ISO 8601 format)\n"
+"  \"2006-12-6 13:18\"\n"
+"  \"2006-12-6\"\n"
+"  \"12-6\"\n"
+"  \"12/6\"\n"
+"  \"12/6/6\" (Dec 6 2006)\n"
+"\n"
+"Lastly, there is Mercurial's internal format::\n"
+"\n"
+"  \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n"
+"\n"
+"This is the internal representation format for dates. unixtime is the\n"
+"number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n"
+"the offset of the local timezone, in seconds west of UTC (negative if\n"
+"the timezone is east of UTC).\n"
+"\n"
+"The log command also accepts date ranges::\n"
+"\n"
+"  \"<{datetime}\" - at or before a given date/time\n"
+"  \">{datetime}\" - on or after a given date/time\n"
+"  \"{datetime} to {datetime}\" - a date range, inclusive\n"
+"  \"-{days}\" - within a given number of days of today\n"
+msgstr ""
+
+msgid ""
+"Mercurial's default format for showing changes between two versions of\n"
+"a file is compatible with the unified format of GNU diff, which can be\n"
+"used by GNU patch and many other standard tools.\n"
+"\n"
+"While this standard format is often enough, it does not encode the\n"
+"following information:\n"
+"\n"
+"- executable status and other permission bits\n"
+"- copy or rename information\n"
+"- changes in binary files\n"
+"- creation or deletion of empty files\n"
+"\n"
+"Mercurial also supports the extended diff format from the git VCS\n"
+"which addresses these limitations. The git diff format is not produced\n"
+"by default because a few widespread tools still do not understand this\n"
+"format.\n"
+"\n"
+"This means that when generating diffs from a Mercurial repository\n"
+"(e.g. with \"hg export\"), you should be careful about things like file\n"
+"copies and renames or other things mentioned above, because when\n"
+"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"
+"\n"
+"To make Mercurial produce the git extended diff format, use the --git\n"
+"option available for many commands, or set 'git = True' in the [diff]\n"
+"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"
+msgstr ""
+
+msgid ""
+"HG\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"
+"    This is the name of the editor to run when committing. See EDITOR.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGENCODING\n"
+"    This overrides the default locale setting detected by Mercurial.\n"
+"    This setting is used to convert data including usernames,\n"
+"    changeset descriptions, tag names, and branches. This setting can\n"
+"    be overridden with the --encoding command-line option.\n"
+"\n"
+"HGENCODINGMODE\n"
+"    This sets Mercurial's behavior for handling unknown characters\n"
+"    while transcoding user input. The default is \"strict\", which\n"
+"    causes Mercurial to abort if it can't map a character. Other\n"
+"    settings include \"replace\", which replaces unknown characters, and\n"
+"    \"ignore\", which drops them. This setting can be overridden with\n"
+"    the --encodingmode command-line option.\n"
+"\n"
+"HGMERGE\n"
+"    An executable to use for resolving merge conflicts. The program\n"
+"    will be executed with three arguments: local file, remote file,\n"
+"    ancestor file.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGRCPATH\n"
+"    A list of files or directories to search for hgrc files. Item\n"
+"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
+"    platform default search path is used. If empty, only the .hg/hgrc\n"
+"    from the current repository is read.\n"
+"\n"
+"    For each element in HGRCPATH:\n"
+"\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"
+"    available values will be considered in this order:\n"
+"\n"
+"    - HGUSER (deprecated)\n"
+"    - hgrc files from the HGRCPATH\n"
+"    - EMAIL\n"
+"    - interactive prompt\n"
+"    - LOGNAME (with '@hostname' appended)\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"EMAIL\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"LOGNAME\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"VISUAL\n"
+"    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 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\n"
+"    set appropriately if this Mercurial is not installed system-wide.\n"
+msgstr ""
+
+msgid ""
+"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 advanced\n"
+"usage only; they may provide potentially dangerous abilities (such\n"
+"as letting you destroy or modify history); they might not be ready\n"
+"for prime time; or they may alter some usual behaviors of stock\n"
+"Mercurial. It is thus up to the user to activate extensions as\n"
+"needed.\n"
+"\n"
+"To enable the \"foo\" extension, either shipped with Mercurial or in\n"
+"the Python search path, create an entry for it in your hgrc, like\n"
+"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 ""
+
+msgid ""
+"When Mercurial accepts more than one revision, they may be specified\n"
+"individually, or provided as a topologically continuous range,\n"
+"separated by the \":\" character.\n"
+"\n"
+"The syntax of range notation is [BEGIN]:[END], where BEGIN and END are\n"
+"revision identifiers. Both BEGIN and END are optional. If BEGIN is not\n"
+"specified, it defaults to revision number 0. If END is not specified,\n"
+"it defaults to the tip. The range \":\" thus means \"all revisions\".\n"
+"\n"
+"If BEGIN is greater than END, revisions are treated in reverse order.\n"
+"\n"
+"A range acts as a closed interval. This means that a range of 3:5\n"
+"gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
+msgstr ""
+
+msgid ""
+"Mercurial accepts several notations for identifying one or more files\n"
+"at a time.\n"
+"\n"
+"By default, Mercurial treats filenames as shell-style extended glob\n"
+"patterns.\n"
+"\n"
+"Alternate pattern notations must be specified explicitly.\n"
+"\n"
+"To use a plain path name without any pattern matching, start it with\n"
+"``path:``. These path names must completely match starting at the\n"
+"current repository root.\n"
+"\n"
+"To use an extended glob, start a name with ``glob:``. Globs are rooted\n"
+"at the current directory; a glob such as ``*.c`` will only match files\n"
+"in the current directory ending with ``.c``.\n"
+"\n"
+"The supported glob syntax extensions are ``**`` to match any string\n"
+"across path separators and ``{a,b}`` to mean \"a or b\".\n"
+"\n"
+"To use a Perl/Python regular expression, start a name with ``re:``.\n"
+"Regexp pattern matching is anchored at the root of the repository.\n"
+"\n"
+"Plain examples::\n"
+"\n"
+"  path:foo/bar   a name bar in a directory named foo in the root\n"
+"                 of the repository\n"
+"  path:path:name a file or directory named \"path:name\"\n"
+"\n"
+"Glob examples::\n"
+"\n"
+"  glob:*.c       any name ending in \".c\" in the current directory\n"
+"  *.c            any name ending in \".c\" in the current directory\n"
+"  **.c           any name ending in \".c\" in any subdirectory of the\n"
+"                 current directory including itself.\n"
+"  foo/*.c        any name ending in \".c\" in the directory foo\n"
+"  foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
+"                 including itself.\n"
+"\n"
+"Regexp examples::\n"
+"\n"
+"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
+msgstr ""
+
+msgid ""
+"Mercurial supports several ways to specify individual revisions.\n"
+"\n"
+"A plain integer is treated as a revision number. Negative integers are\n"
+"treated as sequential offsets from the tip, with -1 denoting the tip,\n"
+"-2 denoting the revision prior to the tip, and so forth.\n"
+"\n"
+"A 40-digit hexadecimal string is treated as a unique revision\n"
+"identifier.\n"
+"\n"
+"A hexadecimal string less than 40 characters long is treated as a\n"
+"unique revision identifier and is referred to as a short-form\n"
+"identifier. A short-form identifier is only valid if it is the prefix\n"
+"of exactly one full-length identifier.\n"
+"\n"
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character.\n"
+"\n"
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision.\n"
+"\n"
+"The reserved name \"null\" indicates the null revision. This is the\n"
+"revision of an empty repository, and the parent of revision 0.\n"
+"\n"
+"The reserved name \".\" indicates the working directory parent. If no\n"
+"working directory is checked out, it is equivalent to null. If an\n"
+"uncommitted merge is in progress, \".\" is the revision of the first\n"
+"parent.\n"
+msgstr ""
+
+msgid ""
+"Mercurial allows you to customize output of commands through\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.\n"
+"Usage::\n"
+"\n"
+"    $ hg log -r1 --style changelog\n"
+"\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\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\n"
+"            default.\n"
+":date:      Date information. The date when the changeset was\n"
+"            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\n"
+"            by 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\n"
+"            40-character hexadecimal string.\n"
+":parents:   List of strings. The parents of the changeset.\n"
+":rev:       Integer. The repository-local changeset revision\n"
+"            number.\n"
+":tags:      List of strings. Any tags associated with the\n"
+"            changeset.\n"
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+"            changeset.\n"
+":latesttagdistance: Integer. Longest path to the latest tag.\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\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"
+"\n"
+"List of filters:\n"
+"\n"
+":addbreaks:   Any text. Add an XHTML \"<br />\" tag before the end of\n"
+"              every line except the last.\n"
+":age:         Date. Returns a human-readable date/time difference\n"
+"              between the given date/time and the current\n"
+"              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\n"
+"              path separator (ignoring trailing separators). For\n"
+"              example, \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\"\n"
+"              becomes \"bar\".\n"
+":stripdir:    Treat the text as path and strip a directory level,\n"
+"              if possible. For example, \"foo\" and \"foo/bar\" becomes\n"
+"              \"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\n"
+"              email address, and extracts just the domain\n"
+"              component. Example: 'User <user@example.com>' becomes\n"
+"              'example.com'.\n"
+":email:       Any text. Extracts the first string that looks like\n"
+"              an email address. Example: 'User <user@example.com>'\n"
+"              becomes '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"
+"              \"2009-08-18 13:00 +0200\".\n"
+":isodatesec:  Date. Returns the date in ISO 8601 format, including\n"
+"              seconds: \"2009-08-18 13:00:13 +0200\". See also the\n"
+"              rfc3339date filter.\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 in\n"
+"              email headers: \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+"              specified in RFC 3339: \"2009-08-18T13:00:13+02:00\".\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\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\n"
+"              address.\n"
+msgstr ""
+
+msgid ""
+"Valid URLs are of the form::\n"
+"\n"
+"  local/filesystem/path[#revision]\n"
+"  file://local/filesystem/path[#revision]\n"
+"  http://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  https://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  ssh://[user[:pass]@]host[:port]/[path][#revision]\n"
+"\n"
+"Paths in the local filesystem can either point to Mercurial\n"
+"repositories or to bundle files (as created by 'hg bundle' or 'hg\n"
+"incoming --bundle').\n"
+"\n"
+"An optional identifier after # indicates a particular branch, tag, or\n"
+"changeset to use from the remote repository. See also 'hg help\n"
+"revisions'.\n"
+"\n"
+"Some features, such as pushing to http:// and https:// URLs are only\n"
+"possible if the feature is explicitly enabled on the remote Mercurial\n"
+"server.\n"
+"\n"
+"Some notes about using SSH with Mercurial:\n"
+"\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"
+"- path is relative to the remote user's home directory by default. Use\n"
+"  an extra slash at the start of a path to specify an absolute path::\n"
+"\n"
+"    ssh://example.com//tmp/repository\n"
+"\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"
+"\n"
+"    Host *.mylocalnetwork.example.com\n"
+"      Compression no\n"
+"    Host *\n"
+"      Compression yes\n"
+"\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"
+"\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\n"
+"example 'hg pull alias1' would pull from the 'alias1' path).\n"
+"\n"
+"Two path aliases are special because they are used as defaults when\n"
+"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- and\n"
+"  pull-like commands (including incoming and outgoing).\n"
+"\n"
+"default-push:\n"
+"  The push command will look for a path named 'default-push', and\n"
+"  prefer it over 'default' if both are defined.\n"
+msgstr ""
+
+msgid ""
+"hooks for controlling repository access\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 glob\n"
+"syntax by default), and a comma separated list of users as the\n"
+"corresponding value. The deny list is checked before the allow list\n"
+"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
@@ -49,52 +552,38 @@
 msgstr ""
 
 #, python-format
-msgid "acl: changes have source \"%s\" - skipping\n"
-msgstr ""
-
-#, python-format
-msgid "acl: user %s denied on %s\n"
-msgstr ""
-
-#, python-format
 msgid "acl: access denied for changeset %s"
 msgstr ""
 
-#, python-format
-msgid "acl: user %s not allowed on %s\n"
-msgstr ""
-
-#, python-format
-msgid "acl: allowing changeset %s\n"
-msgstr ""
-
-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"
+msgid ""
+"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, the\n"
-"bookmark is forwarded to the new changeset.\n"
+"bookmark shifts 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\n"
-"experience 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\n"
-"on, and just updates it. This is similar to git's approach to\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 ""
-"Mercurial bookmarks\n"
+"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"
+"    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"
@@ -139,7 +628,7 @@
 msgstr ""
 
 msgid ""
-"Bugzilla integration\n"
+"hooks for integrating with the 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\n"
@@ -155,65 +644,86 @@
 "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"
-"\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\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\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\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\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\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\n"
-"               from templates as {hgweb}.\n"
-"\n"
-"Activating the extension:\n"
+"The extension is configured through three different configuration\n"
+"sections. These keys are recognized in the [bugzilla] section:\n"
+"\n"
+"host\n"
+"  Hostname of the MySQL server holding the Bugzilla database.\n"
+"\n"
+"db\n"
+"  Name of the Bugzilla database in MySQL. Default 'bugs'.\n"
+"\n"
+"user\n"
+"  Username to use to access MySQL server. Default 'bugs'.\n"
+"\n"
+"password\n"
+"  Password to use to access MySQL server.\n"
+"\n"
+"timeout\n"
+"  Database connection timeout (seconds). Default 5.\n"
+"\n"
+"version\n"
+"  Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and later,\n"
+"  '2.18' for Bugzilla versions from 2.18 and '2.16' for versions prior\n"
+"  to 2.18.\n"
+"\n"
+"bzuser\n"
+"  Fallback Bugzilla user name to record comments with, if changeset\n"
+"  committer cannot be found as a Bugzilla user.\n"
+"\n"
+"bzdir\n"
+"   Bugzilla install directory. Used by default notify. Default\n"
+"   '/var/www/html/bugzilla'.\n"
+"\n"
+"notify\n"
+"  The command to run to get Bugzilla to send bug change notification\n"
+"  emails. Substitutes from a map with 3 keys, 'bzdir', 'id' (bug id)\n"
+"  and 'user' (committer bugzilla email). Default depends on version;\n"
+"  from 2.18 it is \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl\n"
+"  %(id)s %(user)s\".\n"
+"\n"
+"regexp\n"
+"  Regular expression to match bug IDs in changeset commit message.\n"
+"  Must contain one \"()\" group. The default expression matches 'Bug\n"
+"  1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678', 'Bug\n"
+"  1234 and 5678' and variations thereof. Matching is case insensitive.\n"
+"\n"
+"style\n"
+"  The style file to use when formatting comments.\n"
+"\n"
+"template\n"
+"  Template to use when formatting comments. Overrides style if\n"
+"  specified. In addition to the usual Mercurial keywords, the\n"
+"  extension specifies::\n"
+"\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"
+"\n"
+"  Default 'changeset {node|short} in repo {root} refers '\n"
+"          'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n"
+"\n"
+"strip\n"
+"  The number of slashes to strip from the front of {root} to produce\n"
+"  {webroot}. Default 0.\n"
+"\n"
+"usermap\n"
+"  Path of file containing Mercurial committer ID to Bugzilla user ID\n"
+"  mappings. If specified, the file should contain one mapping per\n"
+"  line, \"committer\"=\"Bugzilla user\". See also the [usermap] section.\n"
+"\n"
+"The [usermap] section is used to specify mappings of Mercurial\n"
+"committer ID to Bugzilla user ID. See also [bugzilla].usermap.\n"
+"\"committer\"=\"Bugzilla user\"\n"
+"\n"
+"Finally, the [web] section supports one entry:\n"
+"\n"
+"baseurl\n"
+"  Base URL for browsing Mercurial repositories. Reference from\n"
+"  templates as {hgweb}.\n"
+"\n"
+"Activating the extension::\n"
 "\n"
 "    [extensions]\n"
 "    hgext.bugzilla =\n"
@@ -226,7 +736,7 @@
 "\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"
+"installation in /opt/bugzilla-3.2. ::\n"
 "\n"
 "    [bugzilla]\n"
 "    host=localhost\n"
@@ -234,8 +744,9 @@
 "    version=3.0\n"
 "    bzuser=unknown@domain.com\n"
 "    bzdir=/opt/bugzilla-3.2\n"
-"    template=Changeset {node|short} in {root|basename}.\\n{hgweb}/{webroot}/"
-"rev/{node|short}\\n\\n{desc}\\n\n"
+"    template=Changeset {node|short} in {root|basename}.\n"
+"             {hgweb}/{webroot}/rev/{node|short}\\n\n"
+"             {desc}\\n\n"
 "    strip=5\n"
 "\n"
 "    [web]\n"
@@ -244,7 +755,7 @@
 "    [usermap]\n"
 "    user@emaildomain.com=user.name@bugzilladomain.com\n"
 "\n"
-"Commits add a comment to the Bugzilla bug record of the form:\n"
+"Commits add a comment to the Bugzilla bug record of the form::\n"
 "\n"
 "    Changeset 3b16791d6642 in repository-name.\n"
 "    http://dev.domain.com/hg/repository-name/rev/3b16791d6642\n"
@@ -323,6 +834,9 @@
 msgid "database error: %s"
 msgstr ""
 
+msgid "command to display child changesets"
+msgstr ""
+
 msgid ""
 "show the children of the given or working directory revision\n"
 "\n"
@@ -340,7 +854,7 @@
 msgid "hg children [-r REV] [FILE]"
 msgstr ""
 
-msgid "command to show certain statistics about revision history"
+msgid "command to display statistics about repository history"
 msgstr ""
 
 #, python-format
@@ -352,15 +866,19 @@
 msgstr ""
 
 msgid ""
-"graph count of revisions grouped by template\n"
-"\n"
-"    Will graph count of changed lines or revisions grouped by template\n"
-"    or alternatively by date, if dateformat is used. In this case it\n"
-"    will override template.\n"
-"\n"
-"    By default statistics are counted for number of changed lines.\n"
-"\n"
-"    Examples:\n"
+"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"
 "      # display count of changed lines for every committer\n"
 "      hg churn -t '{author|email}'\n"
@@ -374,17 +892,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>\n"
-"\n"
-"    By default .hgchurn in the working directory root will be used, if\n"
-"    it exists. Use the --aliases option to override this.\n"
-"    "
-msgstr ""
-
-#, python-format
-msgid "assuming %i character terminal\n"
+"    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\n"
+"    a .hgchurn file will be looked for in the working directory root.\n"
+"    "
 msgstr ""
 
 msgid "count rate for the specified revision or range"
@@ -415,7 +930,7 @@
 msgstr ""
 
 msgid ""
-"add color output to status, qseries, and diff-related commands\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"
@@ -428,52 +943,53 @@
 "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"
-"To enable this extension, add this to your .hgrc file:\n"
-"[extensions]\n"
-"color =\n"
-"\n"
-"Default effects may be overridden from the .hgrc file:\n"
-"\n"
-"[color]\n"
-"status.modified = blue bold underline red_background\n"
-"status.added = green bold\n"
-"status.removed = red bold blue_background\n"
-"status.deleted = cyan bold underline\n"
-"status.unknown = magenta bold underline\n"
-"status.ignored = black bold\n"
-"\n"
-"# 'none' turns off all effects\n"
-"status.clean = none\n"
-"status.copied = none\n"
-"\n"
-"qseries.applied = blue bold underline\n"
-"qseries.unapplied = black bold\n"
-"qseries.missing = red bold\n"
-"\n"
-"diff.diffline = bold\n"
-"diff.extended = cyan bold\n"
-"diff.file_a = red bold\n"
-"diff.file_b = green bold\n"
-"diff.hunk = magenta\n"
-"diff.deleted = red\n"
-"diff.inserted = green\n"
-"diff.changed = white\n"
-"diff.trailingwhitespace = bold red_background\n"
+"Default effects may be overridden from the .hgrc file::\n"
+"\n"
+"  [color]\n"
+"  status.modified = blue bold underline red_background\n"
+"  status.added = green bold\n"
+"  status.removed = red bold blue_background\n"
+"  status.deleted = cyan bold underline\n"
+"  status.unknown = magenta bold underline\n"
+"  status.ignored = black bold\n"
+"\n"
+"  # 'none' turns off all effects\n"
+"  status.clean = none\n"
+"  status.copied = none\n"
+"\n"
+"  qseries.applied = blue bold underline\n"
+"  qseries.unapplied = black bold\n"
+"  qseries.missing = red bold\n"
+"\n"
+"  diff.diffline = bold\n"
+"  diff.extended = cyan bold\n"
+"  diff.file_a = red bold\n"
+"  diff.file_b = green bold\n"
+"  diff.hunk = magenta\n"
+"  diff.deleted = red\n"
+"  diff.inserted = green\n"
+"  diff.changed = white\n"
+"  diff.trailingwhitespace = bold red_background\n"
 msgstr ""
 
 msgid "when to colorize (always, auto, or never)"
 msgstr ""
 
-msgid "don't colorize output"
-msgstr ""
-
-msgid "converting foreign VCS repositories to Mercurial"
+msgid "don't colorize output (DEPRECATED)"
+msgstr ""
+
+#, python-format
+msgid "ignoring unknown color/effect %r (configured in color.%s)\n"
+msgstr ""
+
+msgid "import revisions from foreign VCS repositories into Mercurial"
 msgstr ""
 
 msgid ""
 "convert a foreign SCM repository to a Mercurial one.\n"
 "\n"
 "    Accepted source formats [identifiers]:\n"
+"\n"
 "    - Mercurial [hg]\n"
 "    - CVS [cvs]\n"
 "    - Darcs [darcs]\n"
@@ -485,6 +1001,7 @@
 "    - Perforce [p4]\n"
 "\n"
 "    Accepted destination formats [identifiers]:\n"
+"\n"
 "    - Mercurial [hg]\n"
 "    - Subversion [svn] (history on branches is not preserved)\n"
 "\n"
@@ -496,23 +1013,28 @@
 "    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"
+"    By default, all sources except Mercurial will use --branchsort.\n"
+"    Mercurial uses --sourcesort to preserve original revision numbers\n"
+"    order. Sort modes have the following effects:\n"
+"\n"
+"    --branchsort  convert from parent to child revision when possible,\n"
+"                  which means branches are usually converted one after\n"
+"                  the other. It generates more compact repositories.\n"
+"\n"
+"    --datesort    sort revisions by date. Converted repositories have\n"
+"                  good-looking changelogs but are often an order of\n"
+"                  magnitude larger than the same ones generated by\n"
+"                  --branchsort.\n"
+"\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 file\n"
 "    that maps each source commit ID to the destination ID for that\n"
-"    revision, like so:\n"
-"    <source ID> <destination ID>\n"
+"    revision, like so::\n"
+"\n"
+"      <source ID> <destination ID>\n"
 "\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"
@@ -526,7 +1048,7 @@
 "\n"
 "    The filemap is a file that allows filtering and remapping of files\n"
 "    and directories. Comment lines start with '#'. Each line can\n"
-"    contain one of the following directives:\n"
+"    contain one of the following directives::\n"
 "\n"
 "      include path/to/file\n"
 "\n"
@@ -536,11 +1058,11 @@
 "\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 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\n"
-"    a subdirectory into the root of the repository, use '.' as the\n"
-"    path to rename to.\n"
+"    exclusion of all other files and directories not explicitly\n"
+"    included. The 'exclude' directive causes files or directories to\n"
+"    be omitted. The 'rename' directive renames a file or directory. To\n"
+"    rename from a subdirectory into the root of the repository, use\n"
+"    '.' as the 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"
@@ -565,7 +1087,7 @@
 "    in one repository from \"default\" to a named branch.\n"
 "\n"
 "    Mercurial Source\n"
-"    -----------------\n"
+"    ----------------\n"
 "\n"
 "    --config convert.hg.ignoreerrors=False    (boolean)\n"
 "        ignore integrity errors when reading. Use it to fix Mercurial\n"
@@ -590,43 +1112,31 @@
 "    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"
-"    individual commits to CVS and merge them into changesets. CVS\n"
-"    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 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.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\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\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"
+"    --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 between\n"
+"        commits with identical user and log message in a single\n"
+"        changeset. When very large files were checked in as part of a\n"
+"        changeset then the default may not be long 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"
+"    --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"
+"    An additional \"debugcvsps\" Mercurial command 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"
+"    parameters and output are similar to that of cvsps 2.1. Please see\n"
+"    the command help for more details.\n"
 "\n"
 "    Subversion Source\n"
 "    -----------------\n"
@@ -672,7 +1182,6 @@
 "    --config convert.p4.startrev=0            (perforce changelist number)\n"
 "        specify initial Perforce revision.\n"
 "\n"
-"\n"
 "    Mercurial Destination\n"
 "    ---------------------\n"
 "\n"
@@ -790,18 +1299,10 @@
 msgstr ""
 
 #, python-format
-msgid "running: %s\n"
-msgstr ""
-
-#, python-format
 msgid "%s error:\n"
 msgstr ""
 
 #, python-format
-msgid "%s %s"
-msgstr ""
-
-#, python-format
 msgid "syntax error in %s(%d): key/value pair expected"
 msgstr ""
 
@@ -875,16 +1376,8 @@
 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 ""
-
-msgid "using builtin cvsps\n"
+#, python-format
+msgid "revision %s is not a patchset number"
 msgstr ""
 
 #, python-format
@@ -894,7 +1387,9 @@
 msgid "CVS pserver authentication failed"
 msgstr ""
 
-msgid "server sucks"
+#, python-format
+msgid ""
+"unexpected response from CVS server (expected \"Valid-requests\", but got %r)"
 msgstr ""
 
 #, python-format
@@ -928,10 +1423,6 @@
 msgid "running %s\n"
 msgstr ""
 
-#, python-format
-msgid "prefix=%r directory=%r root=%r\n"
-msgstr ""
-
 msgid "RCS file must be followed by working file"
 msgstr ""
 
@@ -945,10 +1436,6 @@
 msgstr ""
 
 #, python-format
-msgid "found synthetic revision in %s: %r\n"
-msgstr ""
-
-#, python-format
 msgid "writing cvs log cache %s\n"
 msgstr ""
 
@@ -972,13 +1459,13 @@
 msgid "%d changeset entries\n"
 msgstr ""
 
+#, python-format
+msgid "darcs version 2.1 or newer needed (found %r)"
+msgstr ""
+
 msgid "Python ElementTree module is not available"
 msgstr ""
 
-#, python-format
-msgid "cleaning up %s\n"
-msgstr ""
-
 msgid "internal calling inconsistency"
 msgstr ""
 
@@ -1013,22 +1500,6 @@
 msgstr ""
 
 #, python-format
-msgid "applying revision %s...\n"
-msgstr ""
-
-#, python-format
-msgid "computing changeset between %s and %s...\n"
-msgstr ""
-
-#, python-format
-msgid "obtaining revision %s...\n"
-msgstr ""
-
-#, python-format
-msgid "analyzing revision %s...\n"
-msgstr ""
-
-#, python-format
 msgid "could not parse cat-log of %s"
 msgstr ""
 
@@ -1040,12 +1511,6 @@
 msgid "initializing destination %s repository\n"
 msgstr ""
 
-msgid "run hg sink pre-conversion action\n"
-msgstr ""
-
-msgid "run hg sink post-conversion action\n"
-msgstr ""
-
 #, python-format
 msgid "pulling from %s into %s\n"
 msgstr ""
@@ -1064,12 +1529,6 @@
 msgid "ignoring: %s\n"
 msgstr ""
 
-msgid "run hg source pre-conversion action\n"
-msgstr ""
-
-msgid "run hg source post-conversion action\n"
-msgstr ""
-
 #, python-format
 msgid "%s does not look like a monotone repo"
 msgstr ""
@@ -1084,6 +1543,9 @@
 msgid "collecting p4 changelists\n"
 msgstr ""
 
+msgid "Mercurial failed to run itself, check hg executable is in PATH"
+msgstr ""
+
 msgid "Subversion python bindings could not be loaded"
 msgstr ""
 
@@ -1134,84 +1596,22 @@
 msgstr ""
 
 #, python-format
-msgid "ignoring foreign branch %r\n"
-msgstr ""
-
-#, python-format
 msgid "%s not found up to revision %d"
 msgstr ""
 
 #, python-format
-msgid "branch renamed from %s to %s at %d\n"
-msgstr ""
-
-#, python-format
-msgid "reparent to %s\n"
-msgstr ""
-
-#, python-format
-msgid "copied to %s from %s@%s\n"
-msgstr ""
-
-#, python-format
-msgid "gone from %s\n"
-msgstr ""
-
-#, python-format
-msgid "found parent directory %s\n"
-msgstr ""
-
-#, python-format
-msgid "base, entry %s %s\n"
-msgstr ""
-
-msgid "munge-o-matic\n"
-msgstr ""
-
-#, python-format
-msgid "info: %s %s %s %s\n"
-msgstr ""
-
-#, python-format
-msgid "unknown path in revision %d: %s\n"
-msgstr ""
-
-#, python-format
-msgid "mark %s came from %s:%d\n"
-msgstr ""
-
-#, python-format
-msgid "parsing revision %d (%d changes)\n"
-msgstr ""
-
-#, python-format
 msgid "found parent of branch %s at %d: %s\n"
 msgstr ""
 
-msgid "no copyfrom path, don't know what to do.\n"
-msgstr ""
-
 #, python-format
 msgid "fetching revision log for \"%s\" from %d to %d\n"
 msgstr ""
 
 #, python-format
-msgid "skipping blacklisted revision %d\n"
-msgstr ""
-
-#, python-format
-msgid "revision %d has no entries\n"
-msgstr ""
-
-#, python-format
 msgid "svn: branch has no revision %s"
 msgstr ""
 
 #, python-format
-msgid "%r is not under %r, ignoring\n"
-msgstr ""
-
-#, python-format
 msgid "initializing svn repo %r\n"
 msgstr ""
 
@@ -1229,20 +1629,16 @@
 msgstr ""
 
 msgid ""
-"\n"
-"The `extdiff' Mercurial extension allows you to use external programs\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"
+"command to 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 directory. The external\n"
+"diff 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"
+"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"
 "  [extdiff]\n"
 "  # add new command that runs GNU diff(1) in 'context diff' mode\n"
@@ -1258,14 +1654,13 @@
 "  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) Non\n"
+"  # 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 \"hg\n"
-"diff\" command. The `extdiff' extension makes snapshots of only needed\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 ""
@@ -1281,14 +1676,6 @@
 msgid "cannot specify --rev and --change at the same time"
 msgstr ""
 
-#, python-format
-msgid "running %r in %s\n"
-msgstr ""
-
-#, python-format
-msgid "file changed while diffing. Overwriting: %s (src: %s)\n"
-msgstr ""
-
 msgid "cleaning up temp directory\n"
 msgstr ""
 
@@ -1324,10 +1711,25 @@
 msgstr ""
 
 #, python-format
+msgid ""
+"use %(path)s to diff repository (or selected files)\n"
+"\n"
+"    Show differences between revisions for the specified files, using the\n"
+"    %(path)s program.\n"
+"\n"
+"    When two revision arguments are given, then changes are shown between\n"
+"    those revisions. If only one revision is specified then that revision "
+"is\n"
+"    compared to the working directory, and, when no revisions are "
+"specified,\n"
+"    the working directory files are compared to its parent."
+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 ""
@@ -1391,10 +1793,6 @@
 msgstr ""
 
 #, python-format
-msgid "Automated merge with %s"
-msgstr ""
-
-#, python-format
 msgid "new changeset %d:%s merges remote changes with local\n"
 msgstr ""
 
@@ -1413,6 +1811,9 @@
 msgid "hg fetch [SOURCE]"
 msgstr ""
 
+msgid "commands to sign and verify changesets"
+msgstr ""
+
 msgid "error while verifying signature"
 msgstr ""
 
@@ -1463,10 +1864,6 @@
 "force)"
 msgstr ""
 
-#, python-format
-msgid "Added signature for changeset %s"
-msgstr ""
-
 msgid "unknown signature version"
 msgstr ""
 
@@ -1495,7 +1892,7 @@
 msgstr ""
 
 msgid ""
-"show revision graphs in terminal windows\n"
+"command to view revision graphs from a shell\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"
@@ -1540,40 +1937,40 @@
 msgstr ""
 
 msgid ""
-"CIA notification\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"
-"\n"
-"[cia]\n"
-"# your registered CIA user name\n"
-"user = foo\n"
-"# the name of the project in CIA\n"
-"project = foo\n"
-"# the module (subproject) (optional)\n"
-"#module = foo\n"
-"# 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"
-"# Style to use (optional)\n"
-"#style = foo\n"
-"# The URL of the CIA notification service (optional)\n"
-"# You can use mailto: URLs to send by email, eg\n"
-"# mailto:cia@cia.vc\n"
-"# Make sure to set email.from if you do this.\n"
-"#url = http://cia.vc/\n"
-"# print message instead of sending it (optional)\n"
-"#test = False\n"
-"\n"
-"[hooks]\n"
-"# one of these:\n"
-"changegroup.cia = python:hgcia.hook\n"
-"#incoming.cia = python:hgcia.hook\n"
-"\n"
-"[web]\n"
-"# If you want hyperlinks (optional)\n"
-"baseurl = http://server/path/to/repo\n"
+"hooks for integrating with the CIA.vc notification service\n"
+"\n"
+"This is meant to be run as a changegroup or incoming hook. To\n"
+"configure it, set the following options in your hgrc::\n"
+"\n"
+"  [cia]\n"
+"  # your registered CIA user name\n"
+"  user = foo\n"
+"  # the name of the project in CIA\n"
+"  project = foo\n"
+"  # the module (subproject) (optional)\n"
+"  #module = foo\n"
+"  # 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"
+"  # Style to use (optional)\n"
+"  #style = foo\n"
+"  # The URL of the CIA notification service (optional)\n"
+"  # You can use mailto: URLs to send by email, eg\n"
+"  # mailto:cia@cia.vc\n"
+"  # Make sure to set email.from if you do this.\n"
+"  #url = http://cia.vc/\n"
+"  # print message instead of sending it (optional)\n"
+"  #test = False\n"
+"\n"
+"  [hooks]\n"
+"  # one of these:\n"
+"  changegroup.cia = python:hgcia.hook\n"
+"  #incoming.cia = python:hgcia.hook\n"
+"\n"
+"  [web]\n"
+"  # If you want hyperlinks (optional)\n"
+"  baseurl = http://server/path/to/repo\n"
 msgstr ""
 
 #, python-format
@@ -1583,14 +1980,8 @@
 msgid "email.from must be defined when sending by email"
 msgstr ""
 
-msgid "cia: no user specified"
-msgstr ""
-
-msgid "cia: no project specified"
-msgstr ""
-
-msgid ""
-"browsing the repository in a graphical way\n"
+msgid ""
+"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 not\n"
@@ -1599,36 +1990,24 @@
 "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"
 "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 to\n"
-"use your global $HOME/.hgrc file, not one in a repository). You can\n"
-"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 specify\n"
-"the path to hgk in your .hgrc file:\n"
+"the path to hgk in your .hgrc file::\n"
 "\n"
 "  [hgk]\n"
 "  path=/location/of/hgk\n"
 "\n"
 "hgk can make use of the extdiff extension to visualize revisions.\n"
-"Assuming you had already configured extdiff vdiff command, just add:\n"
+"Assuming you had already configured extdiff vdiff command, just add::\n"
 "\n"
 "  [hgk]\n"
 "  vdiff=vdiff\n"
 "\n"
 "Revisions context menu will now display additional entries to fire\n"
-"vdiff on hovered and selected revisions."
+"vdiff on hovered and selected revisions.\n"
 msgstr ""
 
 msgid "diff trees from two commits"
@@ -1688,7 +2067,7 @@
 msgid "hg debug-config"
 msgstr ""
 
-msgid "hg debug-merge-base node node"
+msgid "hg debug-merge-base REV REV"
 msgstr ""
 
 msgid "ignored"
@@ -1709,31 +2088,24 @@
 msgid "max-count"
 msgstr ""
 
-msgid "hg debug-rev-list [options] revs"
-msgstr ""
-
-msgid ""
-"syntax highlighting in hgweb, based on Pygments\n"
+msgid "hg debug-rev-list [OPTION]... REV..."
+msgstr ""
+
+msgid ""
+"syntax highlighting for hgweb (requires Pygments)\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"
-"pygments_style = <style>\n"
+"There is a single configuration option::\n"
+"\n"
+"  [web]\n"
+"  pygments_style = <style>\n"
 "\n"
 "The default is 'colorful'.\n"
-"\n"
-"-- Adam Hupp <adam@hupp.org>\n"
-msgstr ""
-
-msgid "inotify-based status acceleration for Linux systems\n"
+msgstr ""
+
+msgid "accelerate status report using Linux's inotify service"
 msgstr ""
 
 msgid "start an inotify server for this repository"
@@ -1761,15 +2133,12 @@
 msgid "name of file to write process ID to"
 msgstr ""
 
-msgid "hg inserve [OPT]..."
+msgid "hg inserve [OPTION]..."
 msgstr ""
 
 msgid "(found dead inotify server socket; removing it)\n"
 msgstr ""
 
-msgid "(starting inotify server)\n"
-msgstr ""
-
 #, python-format
 msgid "could not start inotify server: %s\n"
 msgstr ""
@@ -1778,9 +2147,6 @@
 msgid "could not talk to new inotify server: %s\n"
 msgstr ""
 
-msgid "(inotify server not running)\n"
-msgstr ""
-
 #, python-format
 msgid "failed to contact inotify server: %s\n"
 msgstr ""
@@ -1838,10 +2204,6 @@
 msgstr ""
 
 #, python-format
-msgid "status: %r dir(%d) -> %s\n"
-msgstr ""
-
-#, python-format
 msgid "status: %r %s -> %s\n"
 msgstr ""
 
@@ -1907,6 +2269,23 @@
 msgid "finished setup\n"
 msgstr ""
 
+msgid ""
+"expand expressions into changelog and summaries\n"
+"\n"
+"This extension allows the use of a special syntax in summaries, which\n"
+"will be automatically expanded into links or any other arbitrary\n"
+"expression, much like InterWiki does.\n"
+"\n"
+"A few example patterns (link to bug tracking, etc.) that may be used\n"
+"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
 msgid "interhg: invalid pattern for %s: %s\n"
 msgstr ""
@@ -1916,7 +2295,7 @@
 msgstr ""
 
 msgid ""
-"keyword expansion in local repositories\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"
@@ -1928,20 +2307,22 @@
 "Configuration is done in the [keyword] and [keywordmaps] sections of\n"
 "hgrc files.\n"
 "\n"
-"Example:\n"
+"Example::\n"
 "\n"
 "    [keyword]\n"
 "    # expand keywords in every python file except those matching \"x*\"\n"
 "    **.py =\n"
 "    x*    = ignore\n"
 "\n"
-"Note: the more specific you are in your filename patterns\n"
-"      the less you lose speed in huge repositories.\n"
+"NOTE: the more specific you are in your filename patterns the less you\n"
+"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"
+"control run \"hg kwdemo\". See \"hg help templates\" for a list of\n"
+"available templates and filters.\n"
+"\n"
+"An additional date template filter {date|utcdate} is provided. It\n"
+"returns a date like \"2006/09/18 15:13:13\".\n"
 "\n"
 "The default template mappings (view with \"hg kwdemo -d\") can be\n"
 "replaced with customized keywords and templates. Again, run \"hg\n"
@@ -1960,8 +2341,8 @@
 "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"
+"like CVS' $Log$, are not supported. A keyword template map \"Log =\n"
+"{desc}\" expands to the first line of the changeset description.\n"
 msgstr ""
 
 #, python-format
@@ -1984,36 +2365,55 @@
 "    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"
-"    "
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"\t%s\n"
+"    Extend the current configuration by specifying maps as arguments\n"
+"    and using -f/--rcfile to source an external hgrc file.\n"
+"\n"
+"    Use -d/--default to disable current configuration.\n"
+"\n"
+"    See \"hg help templates\" for information on templates and filters.\n"
+"    "
 msgstr ""
 
 #, python-format
 msgid "creating temporary repository at %s\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"%s keywords written to %s:\n"
+msgid ""
+"\n"
+"\tconfiguration using custom keyword template maps\n"
+msgstr ""
+
+msgid "\textending current template maps\n"
+msgstr ""
+
+msgid "\toverriding default template maps\n"
+msgstr ""
+
+msgid ""
+"\n"
+"\tconfiguration using default keyword template maps\n"
+msgstr ""
+
+msgid "\tdisabling current template maps\n"
+msgstr ""
+
+msgid ""
+"\n"
+"\tconfiguration using current keyword template maps\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+"keywords written to %s:\n"
 msgstr ""
 
 msgid "unhooked all commit hooks\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"removing temporary repository %s\n"
+msgid ""
+"\n"
+"\tkeywords expanded\n"
 msgstr ""
 
 msgid ""
@@ -2026,11 +2426,25 @@
 msgstr ""
 
 msgid ""
-"print files currently configured for keyword expansion\n"
-"\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"
+"show files configured for keyword expansion\n"
+"\n"
+"    List which files in the working directory are matched by the\n"
+"    [keyword] configuration patterns.\n"
+"\n"
+"    Useful to prevent inadvertent keyword expansion and to speed up\n"
+"    execution by including only files that are actual candidates for\n"
+"    expansion.\n"
+"\n"
+"    See \"hg help keyword\" on how to construct patterns both for\n"
+"    inclusion and exclusion of files.\n"
+"\n"
+"    With -A/--all and -v/--verbose the codes used to show the status\n"
+"    of files are::\n"
+"\n"
+"      K = keyword expansion candidate\n"
+"      k = keyword expansion candidate (not tracked)\n"
+"      I = ignored\n"
+"      i = ignored (not tracked)\n"
 "    "
 msgstr ""
 
@@ -2062,7 +2476,13 @@
 msgid "show files excluded from expansion"
 msgstr ""
 
-msgid "additionally show untracked files"
+msgid "only show unknown (not tracked) files"
+msgstr ""
+
+msgid "show keyword status flags of all files (DEPRECATED)"
+msgstr ""
+
+msgid "only show untracked files (DEPRECATED)"
 msgstr ""
 
 msgid "hg kwfiles [OPTION]... [FILE]..."
@@ -2072,7 +2492,7 @@
 msgstr ""
 
 msgid ""
-"patch management and development\n"
+"manage 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"
@@ -2081,19 +2501,18 @@
 "Known patches are represented as patch files in the .hg/patches\n"
 "directory. Applied patches are both patch files and changesets.\n"
 "\n"
-"Common tasks (use \"hg help command\" for more details):\n"
-"\n"
-"prepare repository to work with patches   qinit\n"
-"create new patch                          qnew\n"
-"import existing patch                     qimport\n"
-"\n"
-"print patch series                        qseries\n"
-"print applied patches                     qapplied\n"
-"print name of top applied patch           qtop\n"
-"\n"
-"add known patch to applied stack          qpush\n"
-"remove patch from applied stack           qpop\n"
-"refresh contents of top applied patch     qrefresh\n"
+"Common tasks (use \"hg help command\" for more details)::\n"
+"\n"
+"  prepare repository to work with patches   qinit\n"
+"  create new patch                          qnew\n"
+"  import existing patch                     qimport\n"
+"\n"
+"  print patch series                        qseries\n"
+"  print applied patches                     qapplied\n"
+"\n"
+"  add known patch to applied stack          qpush\n"
+"  remove patch from applied stack           qpop\n"
+"  refresh contents of top applied patch     qrefresh\n"
 msgstr ""
 
 #, python-format
@@ -2112,10 +2531,6 @@
 msgstr ""
 
 #, python-format
-msgid "active guards: %s\n"
-msgstr ""
-
-#, python-format
 msgid "guard %r too short"
 msgstr ""
 
@@ -2182,7 +2597,7 @@
 msgstr ""
 
 #, python-format
-msgid "Unable to read %s\n"
+msgid "unable to read %s\n"
 msgstr ""
 
 #, python-format
@@ -2213,6 +2628,10 @@
 msgid "cannot delete revision %d above applied patches"
 msgstr ""
 
+#, python-format
+msgid "patch %s finalized without changeset message\n"
+msgstr ""
+
 msgid "qdelete requires at least one revision or patch name"
 msgstr ""
 
@@ -2322,6 +2741,10 @@
 msgid "deletions found between repo revs"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "popping %s\n"
+msgstr "合併 %s 中\n"
+
 msgid "patch queue now empty\n"
 msgstr ""
 
@@ -2427,24 +2850,26 @@
 msgid ""
 "remove patches from queue\n"
 "\n"
-"    The patches must not be applied, unless they are arguments to the\n"
-"    -r/--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\n"
-"    be used as an alternative for qdelete -r, as the latter option is\n"
-"    deprecated.\n"
-"\n"
-"    With -k/--keep, the patch files are preserved in the patch\n"
-"    directory."
+"    The patches must not be applied, and at least one patch is required. "
+"With\n"
+"    -k/--keep, the patch files are preserved in the patch 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"
 msgstr ""
 
+msgid "only one patch applied\n"
+msgstr ""
+
 msgid "print the patches not yet applied"
 msgstr ""
 
+msgid "all patches applied\n"
+msgstr ""
+
 msgid ""
 "import a patch\n"
 "\n"
@@ -2528,15 +2953,9 @@
 msgid "print the name of the next patch"
 msgstr ""
 
-msgid "all patches applied\n"
-msgstr ""
-
 msgid "print the name of the previous patch"
 msgstr ""
 
-msgid "only one patch applied\n"
-msgstr ""
-
 msgid ""
 "create a new patch\n"
 "\n"
@@ -2838,7 +3257,10 @@
 msgid "print first line of patch header"
 msgstr ""
 
-msgid "hg qapplied [-s] [PATCH]"
+msgid "show only the last patch"
+msgstr ""
+
+msgid "hg qapplied [-1] [-s] [PATCH]"
 msgstr ""
 
 msgid "use pull protocol to copy metadata"
@@ -2865,7 +3287,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]..."
@@ -2955,7 +3377,7 @@
 msgid "queue name to pop"
 msgstr ""
 
-msgid "forget any local changes"
+msgid "forget any local changes to patched files"
 msgstr ""
 
 msgid "hg qpop [-a] [-n NAME] [-f] [PATCH | INDEX]"
@@ -2982,16 +3404,16 @@
 msgid "refresh only files already in the patch and specified files"
 msgstr ""
 
-msgid "add/update \"From: <current user>\" in patch"
-msgstr ""
-
-msgid "add/update \"From: <given user>\" in patch"
-msgstr ""
-
-msgid "update \"Date: <current date>\" in patch (if present)"
-msgstr ""
-
-msgid "update \"Date: <given date>\" in patch (if present)"
+msgid "add/update author field in patch with current user"
+msgstr ""
+
+msgid "add/update author field in patch with given user"
+msgstr ""
+
+msgid "add/update date field in patch with current date"
+msgstr ""
+
+msgid "add/update date field in patch with given date"
 msgstr ""
 
 msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..."
@@ -3060,77 +3482,82 @@
 msgid "hg qtop [-s]"
 msgstr ""
 
-msgid "hg qunapplied [-s] [PATCH]"
+msgid "show only the first patch"
+msgstr ""
+
+msgid "hg qunapplied [-1] [-s] [PATCH]"
 msgstr ""
 
 msgid "finish all applied changesets"
 msgstr ""
 
-msgid "hg qfinish [-a] [REV...]"
-msgstr ""
-
-msgid ""
-"hook extension to email notifications on commits/pushes\n"
-"\n"
-"Subscriptions can be managed through hgrc. Default mode is to print\n"
-"messages to stdout, for testing and configuring.\n"
-"\n"
-"To use, configure notify extension and enable in hgrc like this:\n"
-"\n"
-"   [extensions]\n"
-"   hgext.notify =\n"
-"\n"
-"   [hooks]\n"
-"   # one email for each incoming changeset\n"
-"   incoming.notify = python:hgext.notify.hook\n"
-"   # batch emails when many changesets incoming at one time\n"
-"   changegroup.notify = python:hgext.notify.hook\n"
-"\n"
-"   [notify]\n"
-"   # config items go in here\n"
-"\n"
-" config items:\n"
-"\n"
-" REQUIRED:\n"
-"   config = /path/to/file # file containing subscriptions\n"
-"\n"
-" OPTIONAL:\n"
-"   test = True            # print messages to stdout for testing\n"
-"   strip = 3              # number of slashes to strip for url paths\n"
-"   domain = example.com   # domain to use if committer missing domain\n"
-"   style = ...            # style file to use when formatting email\n"
-"   template = ...         # template to use when formatting email\n"
-"   incoming = ...         # template to use when run as incoming hook\n"
-"   changegroup = ...      # template when run as changegroup hook\n"
-"   maxdiff = 300          # max lines of diffs to include (0=none, -1=all)\n"
-"   maxsubject = 67        # truncate subject line longer than this\n"
-"   diffstat = True        # add a diffstat before the diff content\n"
-"   sources = serve        # notify if source of incoming changes in this "
+msgid "hg qfinish [-a] [REV]..."
+msgstr ""
+
+msgid ""
+"hooks for sending email notifications at commit/push time\n"
+"\n"
+"Subscriptions can be managed through a hgrc file. Default mode is to\n"
+"print messages to stdout, for testing and configuring.\n"
+"\n"
+"To use, configure the notify extension and enable it in hgrc like\n"
+"this::\n"
+"\n"
+"  [extensions]\n"
+"  hgext.notify =\n"
+"\n"
+"  [hooks]\n"
+"  # one email for each incoming changeset\n"
+"  incoming.notify = python:hgext.notify.hook\n"
+"  # batch emails when many changesets incoming at one time\n"
+"  changegroup.notify = python:hgext.notify.hook\n"
+"\n"
+"  [notify]\n"
+"  # config items go here\n"
+"\n"
+"Required configuration items::\n"
+"\n"
+"  config = /path/to/file # file containing subscriptions\n"
+"\n"
+"Optional configuration items::\n"
+"\n"
+"  test = True            # print messages to stdout for testing\n"
+"  strip = 3              # number of slashes to strip for url paths\n"
+"  domain = example.com   # domain to use if committer missing domain\n"
+"  style = ...            # style file to use when formatting email\n"
+"  template = ...         # template to use when formatting email\n"
+"  incoming = ...         # template to use when run as incoming hook\n"
+"  changegroup = ...      # template when run as changegroup hook\n"
+"  maxdiff = 300          # max lines of diffs to include (0=none, -1=all)\n"
+"  maxsubject = 67        # truncate subject line longer than this\n"
+"  diffstat = True        # add a diffstat before the diff content\n"
+"  sources = serve        # notify if source of incoming changes in this "
 "list\n"
-"                          # (serve == ssh or http, push, pull, bundle)\n"
-"   [email]\n"
-"   from = user@host.com   # email address to send as if none given\n"
-"   [web]\n"
-"   baseurl = http://hgserver/... # root of hg web site for browsing commits\n"
-"\n"
-" notify config file has same format as regular hgrc. it has two\n"
-" sections so you can express subscriptions in whatever way is handier\n"
-" for you.\n"
-"\n"
-"   [usersubs]\n"
-"   # key is subscriber email, value is \",\"-separated list of glob "
-"patterns\n"
-"   user@host = pattern\n"
-"\n"
-"   [reposubs]\n"
-"   # key is glob pattern, value is \",\"-separated list of subscriber "
-"emails\n"
-"   pattern = user@host\n"
-"\n"
-" 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."
+"                         # (serve == ssh or http, push, pull, bundle)\n"
+"  merge = False          # send notification for merges (default True)\n"
+"  [email]\n"
+"  from = user@host.com   # email address to send as if none given\n"
+"  [web]\n"
+"  baseurl = http://hgserver/... # root of hg web site for browsing commits\n"
+"\n"
+"The notify config file has same format as a regular hgrc file. It has\n"
+"two sections so you can express subscriptions in whatever way is\n"
+"handier for you.\n"
+"\n"
+"::\n"
+"\n"
+"  [usersubs]\n"
+"  # key is subscriber email, value is \",\"-separated list of glob patterns\n"
+"  user@host = pattern\n"
+"\n"
+"  [reposubs]\n"
+"  # key is glob pattern, value is \",\"-separated list of subscriber emails\n"
+"  pattern = user@host\n"
+"\n"
+"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.\n"
 msgstr ""
 
 #, python-format
@@ -3156,17 +3583,13 @@
 msgstr ""
 
 #, python-format
-msgid "notify: no subscribers to repository %s\n"
-msgstr ""
-
-#, python-format
-msgid "notify: changes have source \"%s\" - skipping\n"
-msgstr ""
-
-msgid ""
-"browse command output with external pager\n"
-"\n"
-"To set the pager that should be used, set the application variable:\n"
+msgid "notify: suppressing notification for merge %d:%s\n"
+msgstr ""
+
+msgid ""
+"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"
@@ -3175,19 +3598,19 @@
 "$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"
+"setting::\n"
 "\n"
 "  [pager]\n"
 "  quiet = True\n"
 "\n"
 "You can disable the pager for certain commands by adding them to the\n"
-"pager.ignore list:\n"
+"pager.ignore list::\n"
 "\n"
 "  [pager]\n"
 "  ignore = version, help, update\n"
 "\n"
 "You can also enable the pager only for certain commands using\n"
-"pager.attend:\n"
+"pager.attend::\n"
 "\n"
 "  [pager]\n"
 "  attend = log\n"
@@ -3199,27 +3622,27 @@
 msgstr ""
 
 msgid ""
-"use suffixes to refer to ancestor revisions\n"
+"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"
+"For example, if you can refer to a revision as \"foo\", then::\n"
+"\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"
 "  foo^  = foo^1\n"
 "\n"
-"- foo~N = Nth first grandparent of foo\n"
+"  foo~N = Nth first grandparent of foo\n"
 "  foo~0 = foo\n"
 "  foo~1 = foo^1 = foo^ = first parent of foo\n"
 "  foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n"
 msgstr ""
 
 msgid ""
-"sending Mercurial changesets as a series of patch emails\n"
+"command to send changesets as (a series of) patch emails\n"
 "\n"
 "The series is started off with a \"[PATCH 0 of N]\" introduction, which\n"
 "describes the series as a whole.\n"
@@ -3228,11 +3651,9 @@
 "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"
+"- The changeset description.\n"
+"- [Optional] The result of running diffstat on the patch.\n"
+"- The patch itself, as generated by \"hg export\".\n"
 "\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"
@@ -3242,13 +3663,8 @@
 "with a diffstat summary and the changeset summary, so you can be sure\n"
 "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\n"
-"file:\n"
+"file::\n"
 "\n"
 "  [email]\n"
 "  from = My Name <my@email>\n"
@@ -3271,13 +3687,13 @@
 "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"
+"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"
+"When you are previewing the patchbomb messages, you can use ``formail``\n"
 "(a utility that is commonly installed as part of the procmail\n"
-"package), to send each message out:\n"
+"package), to send each message out::\n"
 "\n"
 "  % formail -s sendmail -bm -t < mbox\n"
 "\n"
@@ -3287,7 +3703,11 @@
 "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."
+"hgrc(5) for details.\n"
+msgstr ""
+
+#, python-format
+msgid "%sPlease enter a valid value"
 msgstr ""
 
 msgid "Please enter a valid value.\n"
@@ -3327,23 +3747,24 @@
 "    single email containing a binary Mercurial bundle as an attachment\n"
 "    will be sent.\n"
 "\n"
-"    Examples:\n"
-"\n"
-"    hg email -r 3000          # send patch 3000 only\n"
-"    hg email -r 3000 -r 3001  # send patches 3000 and 3001\n"
-"    hg email -r 3000:3005     # send patches 3000 through 3005\n"
-"    hg email 3000             # send patch 3000 (deprecated)\n"
-"\n"
-"    hg email -o               # send all patches not in default\n"
-"    hg email -o DEST          # send all patches not in DEST\n"
-"    hg email -o -r 3000       # send all ancestors of 3000 not in default\n"
-"    hg email -o -r 3000 DEST  # send all ancestors of 3000 not in DEST\n"
-"\n"
-"    hg email -b               # send bundle of all patches not in default\n"
-"    hg email -b DEST          # send bundle of all patches not in DEST\n"
-"    hg email -b -r 3000       # bundle of all ancestors of 3000 not in "
+"    Examples::\n"
+"\n"
+"      hg email -r 3000          # send patch 3000 only\n"
+"      hg email -r 3000 -r 3001  # send patches 3000 and 3001\n"
+"      hg email -r 3000:3005     # send patches 3000 through 3005\n"
+"      hg email 3000             # send patch 3000 (deprecated)\n"
+"\n"
+"      hg email -o               # send all patches not in default\n"
+"      hg email -o DEST          # send all patches not in DEST\n"
+"      hg email -o -r 3000       # send all ancestors of 3000 not in default\n"
+"      hg email -o -r 3000 DEST  # send all ancestors of 3000 not in DEST\n"
+"\n"
+"      hg email -b               # send bundle of all patches not in default\n"
+"      hg email -b DEST          # send bundle of all patches not in DEST\n"
+"      hg email -b -r 3000       # bundle of all ancestors of 3000 not in "
 "default\n"
-"    hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in DEST\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\n"
 "    hgrc. See the [email] section in hgrc(5) for details.\n"
@@ -3422,6 +3843,9 @@
 msgid "message identifier to reply to"
 msgstr ""
 
+msgid "flags to add in subject prefixes"
+msgstr ""
+
 msgid "email addresses of recipients"
 msgstr ""
 
@@ -3452,6 +3876,9 @@
 msgid "hg email [OPTION]... [DEST]..."
 msgstr ""
 
+msgid "command to delete untracked files from the working directory"
+msgstr ""
+
 msgid ""
 "removes files not tracked by Mercurial\n"
 "\n"
@@ -3459,13 +3886,16 @@
 "    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\n"
-"       they contain files under source control management\n"
+"\n"
+"    - Unknown files: files marked with \"?\" by \"hg status\"\n"
+"    - Empty directories: in fact Mercurial ignores directories unless\n"
+"      they contain files under source control management\n"
+"\n"
 "    But it will leave untouched:\n"
-"     - Modified and unmodified tracked files\n"
-"     - Ignored files (unless --all is specified)\n"
-"     - New files added to the repository (with \"hg add\")\n"
+"\n"
+"    - Modified and unmodified tracked files\n"
+"    - Ignored files (unless --all is specified)\n"
+"    - New files added to the repository (with \"hg add\")\n"
 "\n"
 "    If directories are given on the command line, only files in these\n"
 "    directories are considered.\n"
@@ -3509,16 +3939,13 @@
 msgstr ""
 
 msgid ""
-"move sets of revisions to a different ancestor\n"
+"command to move sets of revisions to a different ancestor\n"
 "\n"
 "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 "first revision, do not change ancestor\n"
+"http://mercurial.selenic.com/wiki/RebaseExtension\n"
 msgstr ""
 
 msgid ""
@@ -3564,60 +3991,17 @@
 msgid "%d revisions have been skipped\n"
 msgstr ""
 
-msgid " set parents\n"
-msgstr ""
-
-#, python-format
-msgid "rebasing %d:%s\n"
-msgstr ""
-
-#, python-format
-msgid " future parents are %d and %d\n"
-msgstr ""
-
-#, python-format
-msgid " update to %d:%s\n"
-msgstr ""
-
-msgid " already in target\n"
-msgstr ""
-
-#, python-format
-msgid " merge against %d:%s\n"
-msgstr ""
-
 msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
 msgstr ""
 
-msgid "resuming interrupted rebase\n"
-msgstr ""
-
 #, python-format
 msgid "no changes, revision %d skipped\n"
 msgstr ""
 
 #, python-format
-msgid "next revision set to %s\n"
-msgstr ""
-
-#, python-format
 msgid "cannot use revision %d as base, result would have 3 parents"
 msgstr ""
 
-#, python-format
-msgid "revision %d is an mq patch (%s), finalize it.\n"
-msgstr ""
-
-#, python-format
-msgid "import mq patch %d (%s)\n"
-msgstr ""
-
-msgid "rebase status stored\n"
-msgstr ""
-
-msgid "rebase status resumed\n"
-msgstr ""
-
 msgid "no rebase in progress"
 msgstr ""
 
@@ -3630,28 +4014,15 @@
 msgid "cannot rebase onto an applied mq patch"
 msgstr ""
 
-msgid "cannot rebase an ancestor"
-msgstr ""
-
-msgid "cannot rebase a descendant"
-msgstr ""
-
-msgid "already working on current\n"
-msgstr ""
-
-msgid "already working on the current branch\n"
-msgstr ""
-
-#, python-format
-msgid "rebase onto %d starting from %d\n"
+msgid "source is ancestor of destination"
+msgstr ""
+
+msgid "source is descendant of destination"
 msgstr ""
 
 msgid "unable to collapse, there is more than one external parent"
 msgstr ""
 
-msgid "--update and --rebase are not compatible, ignoring the update flag\n"
-msgstr ""
-
 msgid "rebase working directory to branch head"
 msgstr ""
 
@@ -3664,13 +4035,13 @@
 msgid "rebase onto a given revision"
 msgstr ""
 
-msgid "collapse the rebased revisions"
-msgstr ""
-
-msgid "keep original revisions"
-msgstr ""
-
-msgid "keep original branches"
+msgid "collapse the rebased changesets"
+msgstr ""
+
+msgid "keep original changesets"
+msgstr ""
+
+msgid "keep original branch names"
 msgstr ""
 
 msgid "continue an interrupted rebase"
@@ -3684,7 +4055,7 @@
 "| [-c] | [-a]"
 msgstr ""
 
-msgid "interactive change selection during commit or qrefresh"
+msgid "commands to interactively select changes for commit/qrefresh"
 msgstr ""
 
 msgid "this modifies a binary file (all or nothing)\n"
@@ -3724,30 +4095,9 @@
 msgid "&?"
 msgstr ""
 
-msgid "y"
-msgstr ""
-
-msgid "?"
-msgstr ""
-
 msgid "y - record this change"
 msgstr ""
 
-msgid "s"
-msgstr ""
-
-msgid "f"
-msgstr ""
-
-msgid "d"
-msgstr ""
-
-msgid "a"
-msgstr ""
-
-msgid "q"
-msgstr ""
-
 msgid "user quit"
 msgstr ""
 
@@ -3758,6 +4108,9 @@
 msgid " and "
 msgstr ""
 
+msgid "y"
+msgstr ""
+
 #, python-format
 msgid "record this change to %r?"
 msgstr ""
@@ -3777,19 +4130,19 @@
 "    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"
-"    possible:\n"
-"\n"
-"    y - record this change\n"
-"    n - skip this change\n"
-"\n"
-"    s - skip remaining changes to this file\n"
-"    f - record remaining changes to this file\n"
-"\n"
-"    d - done, skip remaining changes and files\n"
-"    a - record all changes to all remaining files\n"
-"    q - quit, recording no changes\n"
-"\n"
-"    ? - display help"
+"    possible::\n"
+"\n"
+"      y - record this change\n"
+"      n - skip this change\n"
+"\n"
+"      s - skip remaining changes to this file\n"
+"      f - record remaining changes to this file\n"
+"\n"
+"      d - done, skip remaining changes and files\n"
+"      a - record all changes to all remaining files\n"
+"      q - quit, recording no changes\n"
+"\n"
+"      ? - display help"
 msgstr ""
 
 msgid "'mq' extension not loaded"
@@ -3801,26 +4154,18 @@
 msgid "no changes to record\n"
 msgstr ""
 
-#, python-format
-msgid "backup %r as %r\n"
-msgstr ""
-
-msgid "applying patch\n"
-msgstr ""
-
 msgid "patch failed to apply"
 msgstr ""
 
-#, python-format
-msgid "restoring %r to %r\n"
-msgstr ""
-
 msgid "hg record [OPTION]... [FILE]..."
 msgstr ""
 
 msgid "hg qrecord [OPTION]... PATCH [FILE]..."
 msgstr ""
 
+msgid "share a common history between several working directories"
+msgstr ""
+
 msgid ""
 "create a new shared repository (experimental)\n"
 "\n"
@@ -3839,7 +4184,7 @@
 msgstr ""
 
 msgid ""
-"patch transplanting tool\n"
+"command to transplant changesets from another branch\n"
 "\n"
 "This extension allows you to transplant patches from another branch.\n"
 "\n"
@@ -3902,9 +4247,9 @@
 "\n"
 "    Selected changesets will be applied on top of the current working\n"
 "    directory with the log of the original changeset. If --log is\n"
-"    specified, log messages will have a comment appended of the form:\n"
-"\n"
-"    (transplanted from CHANGESETHASH)\n"
+"    specified, log messages will have a comment appended of the form::\n"
+"\n"
+"      (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 as\n"
@@ -3985,7 +4330,7 @@
 msgstr ""
 
 msgid ""
-"allow to use MBCS path with problematic encoding.\n"
+"allow the use of MBCS paths with problematic encodings\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"
@@ -3995,40 +4340,63 @@
 "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 on\n"
-"   case-insensitive file system.\n"
+"\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 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 do not use any of problematic encodings.\n"
+"\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\n"
-"   HGENCODING.\n"
-"\n"
-"To use this extension, enable the extension in .hg/hgrc or ~/.hgrc:\n"
-"\n"
-"  [extensions]\n"
-"  hgext.win32mbcs =\n"
+"\n"
+"- You should use single encoding in one repository.\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"
-"\n"
-msgstr ""
-
-#, python-format
-msgid "[win32mbcs] filename conversion fail with %s encoding\n"
+msgstr ""
+
+#, python-format
+msgid "[win32mbcs] filename conversion failed with %s encoding\n"
 msgstr ""
 
 msgid "[win32mbcs] cannot activate on this platform.\n"
 msgstr ""
 
-#, python-format
-msgid "[win32mbcs] activated with encoding: %s\n"
+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
@@ -4067,28 +4435,22 @@
 msgstr ""
 
 msgid ""
-"zeroconf support for Mercurial repositories\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 use the zeroconf extension add the following entry to your hgrc\n"
-"file:\n"
-"\n"
-"[extensions]\n"
-"hgext.zeroconf =\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"
-"\n"
-"You can discover zeroconf enabled repositories by running \"hg paths\".\n"
-"\n"
-" $ hg paths\n"
-" zc-test = http://example.com:8000/test\n"
+"in your repository::\n"
+"\n"
+"  $ cd test\n"
+"  $ hg serve\n"
+"\n"
+"You can discover zeroconf enabled repositories by running \"hg paths\"::\n"
+"\n"
+"  $ hg paths\n"
+"  zc-test = http://example.com:8000/test\n"
 msgstr ""
 
 msgid "archive prefix contains illegal components"
@@ -4324,6 +4686,10 @@
 msgstr ""
 
 #, python-format
+msgid "HG: subrepo %s"
+msgstr ""
+
+#, python-format
 msgid "HG: added %s"
 msgstr ""
 
@@ -4341,6 +4707,7 @@
 msgid "empty commit message"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "add the specified files on the next commit\n"
 "\n"
@@ -4348,7 +4715,7 @@
 "    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"
 "    "
@@ -4363,6 +4730,7 @@
 "    如果沒有指定檔案,則會將所有的檔案都標示為加到 repository。\n"
 "    "
 
+#, fuzzy
 msgid ""
 "add all new files, delete all missing files\n"
 "\n"
@@ -4374,11 +4742,11 @@
 "    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"
+"    parameter greater than 0, this compares every removed file with\n"
+"    every added file and records those similar enough as renames. This\n"
+"    option takes a percentage between 0 (disabled) and 100 (files must\n"
+"    be identical) as its parameter. Detecting renamed files this way\n"
+"    can be expensive.\n"
 "    "
 msgstr ""
 "新增所有未受版本控制的檔案,並刪除所有消失的檔案。\n"
@@ -4441,6 +4809,7 @@
 msgid "%s: binary file\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "create an unversioned archive of a repository revision\n"
 "\n"
@@ -4448,14 +4817,14 @@
 "    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"
-"    \"tar\": tar archive, uncompressed\n"
-"    \"tbz2\": tar archive, compressed using bzip2\n"
-"    \"tgz\": tar archive, compressed using gzip\n"
-"    \"uzip\": zip archive, uncompressed\n"
-"    \"zip\": zip archive, compressed using deflate\n"
+"    types are::\n"
+"\n"
+"      \"files\" (default): a directory full of files\n"
+"      \"tar\": tar archive, uncompressed\n"
+"      \"tbz2\": tar archive, compressed using bzip2\n"
+"      \"tgz\": tar archive, compressed using gzip\n"
+"      \"uzip\": zip archive, uncompressed\n"
+"      \"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"
@@ -4557,10 +4926,6 @@
 msgstr ""
 
 #, python-format
-msgid "Backed out changeset %s"
-msgstr ""
-
-#, python-format
 msgid "changeset %s backs out changeset %s\n"
 msgstr ""
 
@@ -4642,10 +5007,6 @@
 msgstr ""
 
 #, python-format
-msgid "cannot find executable: %s"
-msgstr ""
-
-#, python-format
 msgid "failed to execute %s"
 msgstr ""
 
@@ -4658,9 +5019,10 @@
 msgstr ""
 
 #, python-format
-msgid "Testing changeset %s:%s (%s changesets remaining, ~%s tests)\n"
-msgstr ""
-
+msgid "Testing changeset %d:%s (%d changesets remaining, ~%d tests)\n"
+msgstr ""
+
+#, fuzzy
 msgid ""
 "set or show the current branch name\n"
 "\n"
@@ -4677,7 +5039,8 @@
 "    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"
+"    Use the command 'hg update' to switch to an existing branch. Use\n"
+"    'hg commit --close-branch' to mark this branch as closed.\n"
 "    "
 msgstr ""
 "設定或顯示目前的 branch 名稱\n"
@@ -4709,13 +5072,16 @@
 msgid "marked working directory as branch %s\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "list repository named branches\n"
 "\n"
 "    List the repository's named branches, indicating which ones are\n"
-"    inactive. If active is specified, only show active branches.\n"
-"\n"
-"    A branch is considered active if it contains repository heads.\n"
+"    inactive. If -c/--closed is specified, also list branches which have\n"
+"    been marked closed (see hg commit --close-branch).\n"
+"\n"
+"    If -a/--active is specified, only show active branches. A branch\n"
+"    is considered active if it contains repository heads.\n"
 "\n"
 "    Use the command 'hg update' to switch to an existing branch.\n"
 "    "
@@ -4730,6 +5096,7 @@
 "    Use the command 'hg update' to switch to an existing branch.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "create a changegroup file\n"
 "\n"
@@ -4739,9 +5106,11 @@
 "    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"
-"    -a/--all (or --base null). To change the compression method\n"
-"    applied, use the -t/--type option (by default, bundles are\n"
-"    compressed using bz2).\n"
+"    -a/--all (or --base null).\n"
+"\n"
+"    You can change compression method with the -t/--type option.\n"
+"    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"
@@ -4779,6 +5148,7 @@
 msgid "unknown bundle type specified with --type"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "output the current or given revision of files\n"
 "\n"
@@ -4788,11 +5158,11 @@
 "\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 the same as\n"
-"    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 repository root\n"
-"    %p   root-relative path name of file being printed\n"
+"    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 repository root\n"
+"      %p   root-relative path name of file being printed\n"
 "    "
 msgstr ""
 "輸出目前或是特定 revision 的檔案內容\n"
@@ -4810,6 +5180,7 @@
 "    %p   root-relative path name of file being printed\n"
 "    "
 
+#, fuzzy
 msgid ""
 "make a copy of an existing repository\n"
 "\n"
@@ -4845,7 +5216,7 @@
 "    avoid hardlinking.\n"
 "\n"
 "    In some cases, you can clone repositories and checked out files\n"
-"    using full hardlinks with\n"
+"    using full hardlinks with ::\n"
 "\n"
 "      $ cp -al REPO REPOCLONE\n"
 "\n"
@@ -4855,7 +5226,6 @@
 "    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"
 "    "
 msgstr ""
 "對已存在的 repository 複製一份\n"
@@ -4942,6 +5312,9 @@
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 
+msgid "nothing changed\n"
+msgstr ""
+
 msgid "created new head\n"
 msgstr ""
 
@@ -5121,8 +5494,8 @@
 msgstr ""
 
 msgid ""
-" Internal patcher failure, please report this error to http://www.selenic."
-"com/mercurial/bts\n"
+" Internal patcher failure, please report this error to http://mercurial."
+"selenic.com/bts/\n"
 msgstr ""
 
 msgid "Checking commit editor...\n"
@@ -5214,6 +5587,7 @@
 "    format. For more information, read 'hg help diffs'.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "dump the header and diffs for one or more changesets\n"
 "\n"
@@ -5227,16 +5601,16 @@
 "    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"
-"\n"
-"    %%   literal \"%\" character\n"
-"    %H   changeset hash (40 bytes of hexadecimal)\n"
-"    %N   number of patches being generated\n"
-"    %R   changeset revision number\n"
-"    %b   basename of the exporting repository\n"
-"    %h   short-form changeset hash (12 bytes of hexadecimal)\n"
-"    %n   zero-padded sequence number, starting at 1\n"
-"    %r   zero-padded changeset revision number\n"
+"    given using a format string. The formatting rules are as follows::\n"
+"\n"
+"      %%   literal \"%\" character\n"
+"      %H   changeset hash (40 bytes of hexadecimal)\n"
+"      %N   number of patches being generated\n"
+"      %R   changeset revision number\n"
+"      %b   basename of the exporting repository\n"
+"      %h   short-form changeset hash (12 bytes of hexadecimal)\n"
+"      %n   zero-padded sequence number, starting at 1\n"
+"      %r   zero-padded changeset revision number\n"
 "\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"
@@ -5293,6 +5667,27 @@
 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"
@@ -5329,27 +5724,31 @@
 msgid "grep: invalid match pattern: %s\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "show current repository heads or show branch heads\n"
 "\n"
 "    With no arguments, show all repository head changesets.\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"
+"    Repository \"heads\" are changesets with no child changesets. They are\n"
+"    where development generally takes place and are the usual targets\n"
+"    for update and merge operations.\n"
 "\n"
 "    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"
+"    the named branch associated with the specified changeset(s).\n"
+"\n"
+"    Branch heads are changesets on a named branch with no descendants on\n"
+"    the same branch. A branch head could be a \"true\" (repository) head,\n"
+"    or it could be the last changeset on that branch before it was\n"
+"    merged into another branch, or it could be the last changeset on the\n"
+"    branch before a new branch was created. If none of the branch heads\n"
+"    are true heads, the branch is considered inactive.\n"
+"\n"
+"    If -c/--closed is specified, also show branch heads marked closed\n"
+"    (see hg commit --close-branch).\n"
+"\n"
+"    If STARTREV is specified, only those heads that are descendants of\n"
+"    STARTREV will be displayed.\n"
 "    "
 msgstr ""
 "顯示目前的 repository heads 或是 branch heads\n"
@@ -5374,6 +5773,9 @@
 "    are descendants of STARTREV will be displayed.\n"
 "    "
 
+msgid "you must specify a branch to use --closed"
+msgstr ""
+
 #, python-format
 msgid "no open branch heads on branch %s\n"
 msgstr ""
@@ -5442,24 +5844,20 @@
 msgid "no commands defined\n"
 msgstr "沒有定義的命令\n"
 
-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 "沒有可用的說明文字"
 
-#, python-format
-msgid "%s extension - %s\n"
+#, fuzzy, python-format
+msgid ""
+"%s extension - %s\n"
+"\n"
 msgstr "%s 擴充套件 - %s\n"
 
 msgid "Mercurial Distributed SCM\n"
@@ -5510,6 +5908,7 @@
 "    this revision and a branch name for non-default branches.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "import an ordered set of patches\n"
 "\n"
@@ -5539,7 +5938,8 @@
 "    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"
+"    To read a patch from standard input, use \"-\" as the patch name. If\n"
+"    a URL is specified, the patch will be downloaded from it.\n"
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 msgstr ""
@@ -5581,12 +5981,6 @@
 msgid "no diffs found"
 msgstr ""
 
-#, python-format
-msgid ""
-"message:\n"
-"%s\n"
-msgstr ""
-
 msgid "not a Mercurial patch"
 msgstr ""
 
@@ -5926,6 +6320,7 @@
 "    See 'hg help urls' for more information.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "push changes to the specified destination\n"
 "\n"
@@ -5945,7 +6340,6 @@
 "\n"
 "    Please see 'hg help urls' for important details about ssh://\n"
 "    URLs. If DESTINATION is omitted, a default path will be used.\n"
-"    See 'hg help urls' for more information.\n"
 "    "
 msgstr ""
 "將 changes push 至指定的目的端\n"
@@ -5992,6 +6386,7 @@
 "    suggests it.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "remove the specified files on the next commit\n"
 "\n"
@@ -6005,15 +6400,15 @@
 "\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"
-"    -f     R  RD RD R\n"
-"    -A     W  W  W  R\n"
-"    -Af    R  R  R  R\n"
+"    states are Added [A], Clean [C], Modified [M] and Missing [!] (as\n"
+"    reported by hg status). The actions are Warn, Remove (from branch)\n"
+"    and Delete (from disk)::\n"
+"\n"
+"             A  C  M  !\n"
+"      none   W  RD W  R\n"
+"      -f     R  RD RD R\n"
+"      -A     W  W  W  R\n"
+"      -Af    R  R  R  R\n"
 "\n"
 "    This command schedules the files to be removed at the next commit.\n"
 "    To undo a remove before that, see hg revert.\n"
@@ -6045,9 +6440,6 @@
 "    To undo a remove before that, see hg revert.\n"
 "    "
 
-msgid "no files specified"
-msgstr ""
-
 #, python-format
 msgid "not removing %s: file is untracked\n"
 msgstr ""
@@ -6094,6 +6486,7 @@
 "    before that, see hg revert.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "retry file merges from a merge or update\n"
 "\n"
@@ -6109,9 +6502,10 @@
 "    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"
-"    R = resolved\n"
+"    The codes used to show the status of files are::\n"
+"\n"
+"      U = unresolved\n"
+"      R = resolved\n"
 "    "
 msgstr ""
 "重試經由 merge 或 update 命令所造成、卻未完成的合併\n"
@@ -6239,18 +6633,20 @@
 msgid "no changes needed to %s\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "roll back the last transaction\n"
 "\n"
 "    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"
 "    repository. For example, the following commands are transactional,\n"
-"    and their effects can be rolled back:\n"
+"    and their effects can be rolled back::\n"
 "\n"
 "      commit\n"
 "      import\n"
@@ -6326,6 +6722,7 @@
 msgid "listening at http://%s%s/%s (bound to %s:%d)\n"
 msgstr ""
 
+#, fuzzy
 msgid ""
 "show changed files in the working directory\n"
 "\n"
@@ -6348,15 +6745,16 @@
 "    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"
-"    ! = missing (deleted by non-hg command, but still tracked)\n"
-"    ? = not tracked\n"
-"    I = ignored\n"
-"      = origin of the previous file listed as A (added)\n"
+"    The codes used to show the status of files are::\n"
+"\n"
+"      M = modified\n"
+"      A = added\n"
+"      R = removed\n"
+"      C = clean\n"
+"      ! = missing (deleted by non-hg command, but still tracked)\n"
+"      ? = not tracked\n"
+"      I = ignored\n"
+"        = origin of the previous file listed as A (added)\n"
 "    "
 msgstr ""
 "顯示 working directory 中已變更的檔案\n"
@@ -6392,6 +6790,102 @@
 "    "
 
 msgid ""
+"summarize working directory state\n"
+"\n"
+"    This generates a brief summary of the working directory state,\n"
+"    including parents, branch, commit status, and available updates.\n"
+"\n"
+"    With the --remote option, this will check the default paths for\n"
+"    incoming and outgoing changes. This can be time-consuming.\n"
+"    "
+msgstr ""
+
+msgid " (empty repository)"
+msgstr ""
+
+msgid " (no revision checked out)"
+msgstr ""
+
+#, python-format
+msgid "parent: %d:%s %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "branch: %s\n"
+msgstr "找不到 branch %s"
+
+#, python-format
+msgid "%d added"
+msgstr ""
+
+#, python-format
+msgid "%d modified"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%d removed"
+msgstr "已移除"
+
+#, python-format
+msgid "%d deleted"
+msgstr ""
+
+#, python-format
+msgid "%d ignored"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%d unknown"
+msgstr "未知的 base"
+
+#, fuzzy, python-format
+msgid "%d unresolved"
+msgstr "已移除"
+
+#, fuzzy
+msgid " (merge)"
+msgstr "已合併"
+
+msgid " (new branch)"
+msgstr ""
+
+msgid " (clean)"
+msgstr ""
+
+msgid " (new branch head)"
+msgstr ""
+
+#, python-format
+msgid "commit: %s\n"
+msgstr ""
+
+msgid "update: (current)\n"
+msgstr ""
+
+#, python-format
+msgid "update: %d new changesets (update)\n"
+msgstr ""
+
+#, python-format
+msgid "update: %d new changesets, %d branch heads (merge)\n"
+msgstr ""
+
+msgid "1 or more incoming"
+msgstr ""
+
+#, python-format
+msgid "%d outgoing"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "remote: %s\n"
+msgstr "遠端: "
+
+#, fuzzy
+msgid "remote: (synced)\n"
+msgstr "遠端: "
+
+msgid ""
 "add one or more tags for the current or given revision\n"
 "\n"
 "    Name a particular revision using <name>.\n"
@@ -6455,17 +6949,9 @@
 msgstr ""
 
 #, python-format
-msgid "Removed tag %s"
-msgstr ""
-
-#, python-format
 msgid "tag '%s' already exists (use -f to force)"
 msgstr ""
 
-#, python-format
-msgid "Added tag %s for changeset %s"
-msgstr ""
-
 msgid ""
 "list repository tags\n"
 "\n"
@@ -6517,6 +7003,7 @@
 "    bundle command.\n"
 "    "
 
+#, fuzzy
 msgid ""
 "update working directory\n"
 "\n"
@@ -6533,7 +7020,8 @@
 "\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.\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"
@@ -6578,6 +7066,13 @@
 "    See 'hg help dates' for a list of formats valid for -d/--date.\n"
 "    "
 
+msgid "cannot specify both -c/--check and -C/--clean"
+msgstr ""
+
+#, fuzzy
+msgid "uncommitted local changes"
+msgstr "未同步的變更"
+
 msgid ""
 "verify the integrity of the repository\n"
 "\n"
@@ -6613,7 +7108,7 @@
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
 
-msgid "repository root directory or symbolic path name"
+msgid "repository root directory or name of overlay bundle file"
 msgstr ""
 
 msgid "change working directory"
@@ -6805,6 +7300,9 @@
 msgid "show only branches that have unmerged heads"
 msgstr ""
 
+msgid "show normal and closed branches"
+msgstr ""
+
 msgid "[-a]"
 msgstr ""
 
@@ -6949,10 +7447,10 @@
 msgid "show only heads which are descendants of REV"
 msgstr ""
 
-msgid "show only the active heads from open branches"
-msgstr ""
-
-msgid "show normal and closed heads"
+msgid "show only the active branch heads from open branches"
+msgstr ""
+
+msgid "show normal and closed branch heads"
 msgstr ""
 
 msgid "[-r STARTREV] [REV]..."
@@ -7185,6 +7683,9 @@
 msgid "[-u] [NAME]..."
 msgstr ""
 
+msgid "check for push and pull"
+msgstr ""
+
 msgid "show status of all files"
 msgstr ""
 
@@ -7245,6 +7746,9 @@
 msgid "overwrite locally modified files (no backup)"
 msgstr ""
 
+msgid "check for uncommitted changes"
+msgstr ""
+
 msgid "[-C] [-d DATE] [[-r] REV]"
 msgstr ""
 
@@ -7258,36 +7762,6 @@
 msgid "branch name not in UTF-8!"
 msgstr ""
 
-#, python-format
-msgid "  searching for copies back to rev %d\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"  unmatched files in local:\n"
-"   %s\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"  unmatched files in other:\n"
-"   %s\n"
-msgstr ""
-
-msgid "  all copies found (* = to merge, ! = divergent):\n"
-msgstr ""
-
-msgid "  checking for directory renames\n"
-msgstr ""
-
-#, python-format
-msgid "  dir %s -> %s\n"
-msgstr ""
-
-#, python-format
-msgid "  file %s -> %s\n"
-msgstr ""
-
 msgid "working directory state appears damaged!"
 msgstr ""
 
@@ -7334,16 +7808,16 @@
 msgstr ""
 
 #, python-format
+msgid "hg: %s\n"
+msgstr ""
+
+#, python-format
 msgid ""
 "hg: command '%s' is ambiguous:\n"
 "    %s\n"
 msgstr ""
 
 #, python-format
-msgid "hg: %s\n"
-msgstr ""
-
-#, python-format
 msgid "timed out waiting for lock held by %s"
 msgstr ""
 
@@ -7412,7 +7886,7 @@
 msgid "** unknown exception encountered, details follow\n"
 msgstr ""
 
-msgid "** report bug details to http://www.selenic.com/mercurial/bts\n"
+msgid "** report bug details to http://mercurial.selenic.com/bts/\n"
 msgstr ""
 
 msgid "** or mercurial@selenic.com\n"
@@ -7439,10 +7913,6 @@
 msgstr ""
 
 #, python-format
-msgid "alias '%s' shadows command\n"
-msgstr ""
-
-#, python-format
 msgid "malformed --config option: %s"
 msgstr ""
 
@@ -7457,7 +7927,7 @@
 msgstr ""
 
 msgid ""
-"Option -R has to be separated from other options (i.e. not -qR) and --"
+"Option -R has to be separated from other options (e.g. not -qR) and --"
 "repository may only be abbreviated as --repo!"
 msgstr ""
 
@@ -7506,10 +7976,6 @@
 msgstr "%s 工具需要 GUI 環境\n"
 
 #, python-format
-msgid "picked tool '%s' for %s (binary %s symlink %s)\n"
-msgstr "選用 '%s' 工具來處理 %s (binary %s symlink %s)\n"
-
-#, python-format
 msgid ""
 " no tool found to merge %s\n"
 "keep (l)ocal or take (o)ther?"
@@ -7523,9 +7989,6 @@
 msgid "&Other"
 msgstr ""
 
-msgid "l"
-msgstr ""
-
 #, python-format
 msgid "merging %s and %s to %s\n"
 msgstr "合併 %s 和 %s 至 %s\n"
@@ -7535,13 +7998,6 @@
 msgstr "合併 %s 中\n"
 
 #, python-format
-msgid "my %s other %s ancestor %s\n"
-msgstr ""
-
-msgid " premerge successful\n"
-msgstr ""
-
-#, python-format
 msgid ""
 " output file %s appears unchanged\n"
 "was merge successful (yn)?"
@@ -7553,9 +8009,6 @@
 msgid "&Yes"
 msgstr ""
 
-msgid "n"
-msgstr ""
-
 #, python-format
 msgid "merging %s failed!\n"
 msgstr "合併 %s 失敗!\n"
@@ -7568,450 +8021,38 @@
 msgid "unknown bisect kind %s"
 msgstr ""
 
+#, fuzzy
+msgid "disabled extensions:"
+msgstr ""
+"\n"
+"已啟用的擴充套件:\n"
+"\n"
+
 msgid "Date Formats"
 msgstr "日期格式"
 
-msgid ""
-"\n"
-"    Some commands allow the user to specify a date, e.g.:\n"
-"    * backout, commit, import, tag: Specify the commit date.\n"
-"    * log, revert, update: Select revision(s) by date.\n"
-"\n"
-"    Many date formats are valid. Here are some examples:\n"
-"\n"
-"    \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n"
-"    \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n"
-"    \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n"
-"    \"Dec 6\" (midnight)\n"
-"    \"13:18\" (today assumed)\n"
-"    \"3:39\" (3:39AM assumed)\n"
-"    \"3:39pm\" (15:39)\n"
-"    \"2006-12-06 13:18:29\" (ISO 8601 format)\n"
-"    \"2006-12-6 13:18\"\n"
-"    \"2006-12-6\"\n"
-"    \"12-6\"\n"
-"    \"12/6\"\n"
-"    \"12/6/6\" (Dec 6 2006)\n"
-"\n"
-"    Lastly, there is Mercurial's internal format:\n"
-"\n"
-"    \"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).\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"
-"    \"<{datetime}\" - at or before a given date/time\n"
-"    \">{datetime}\" - on or after a given date/time\n"
-"    \"{datetime} to {datetime}\" - a date range, inclusive\n"
-"    \"-{days}\" - within a given number of days of today\n"
-"    "
-msgstr ""
-
 msgid "File Name Patterns"
 msgstr "檔案名稱樣式"
 
-msgid ""
-"\n"
-"    Mercurial accepts several notations for identifying one or more\n"
-"    files at a time.\n"
-"\n"
-"    By default, Mercurial treats filenames as shell-style extended\n"
-"    glob patterns.\n"
-"\n"
-"    Alternate pattern notations must be specified explicitly.\n"
-"\n"
-"    To use a plain path name without any pattern matching, start it\n"
-"    with \"path:\". These path names must completely match starting at\n"
-"    the current repository root.\n"
-"\n"
-"    To use an extended glob, start a name with \"glob:\". Globs are\n"
-"    rooted at the current directory; a glob such as \"*.c\" will only\n"
-"    match files in the current directory ending with \".c\".\n"
-"\n"
-"    The supported glob syntax extensions are \"**\" to match any string\n"
-"    across path separators and \"{a,b}\" to mean \"a or b\".\n"
-"\n"
-"    To use a Perl/Python regular expression, start a name with \"re:\".\n"
-"    Regexp pattern matching is anchored at the root of the repository.\n"
-"\n"
-"    Plain examples:\n"
-"\n"
-"    path:foo/bar   a name bar in a directory named foo in the root of\n"
-"                   the repository\n"
-"    path:path:name a file or directory named \"path:name\"\n"
-"\n"
-"    Glob examples:\n"
-"\n"
-"    glob:*.c       any name ending in \".c\" in the current directory\n"
-"    *.c            any name ending in \".c\" in the current directory\n"
-"    **.c           any name ending in \".c\" in any subdirectory of the\n"
-"                   current directory including itself.\n"
-"    foo/*.c        any name ending in \".c\" in the directory foo\n"
-"    foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
-"                   including itself.\n"
-"\n"
-"    Regexp examples:\n"
-"\n"
-"    re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
-"\n"
-"    "
-msgstr ""
-
 msgid "Environment Variables"
 msgstr "環境變數"
 
-msgid ""
-"\n"
-"HG::\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"
-"    This is the name of the editor to run when committing. See EDITOR.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGENCODING::\n"
-"    This overrides the default locale setting detected by Mercurial.\n"
-"    This setting is used to convert data including usernames,\n"
-"    changeset descriptions, tag names, and branches. This setting can\n"
-"    be overridden with the --encoding command-line option.\n"
-"\n"
-"HGENCODINGMODE::\n"
-"    This sets Mercurial's behavior for handling unknown characters\n"
-"    while transcoding user input. The default is \"strict\", which\n"
-"    causes Mercurial to abort if it can't map a character. Other\n"
-"    settings include \"replace\", which replaces unknown characters, and\n"
-"    \"ignore\", which drops them. This setting can be overridden with\n"
-"    the --encodingmode command-line option.\n"
-"\n"
-"HGMERGE::\n"
-"    An executable to use for resolving merge conflicts. The program\n"
-"    will be executed with three arguments: local file, remote file,\n"
-"    ancestor file.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGRCPATH::\n"
-"    A list of files or directories to search for hgrc files. Item\n"
-"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
-"    platform default search path is used. If empty, only the .hg/hgrc\n"
-"    from the current repository is read.\n"
-"\n"
-"    For each element in HGRCPATH:\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"
-"    available values will be considered in this order:\n"
-"\n"
-"    * HGUSER (deprecated)\n"
-"    * hgrc files from the HGRCPATH\n"
-"    * EMAIL\n"
-"    * interactive prompt\n"
-"    * LOGNAME (with '@hostname' appended)\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"EMAIL::\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"LOGNAME::\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"VISUAL::\n"
-"    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 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\n"
-"    set appropriately if this Mercurial is not installed system-wide.\n"
-"    "
-msgstr ""
-
 msgid "Specifying Single Revisions"
 msgstr ""
 
-msgid ""
-"\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"
-"\n"
-"    A hexadecimal string less than 40 characters long is treated as a\n"
-"    unique revision identifier, and referred to as a short-form\n"
-"    identifier. A short-form identifier is only valid if it is the\n"
-"    prefix of exactly one full-length identifier.\n"
-"\n"
-"    Any other string is treated as a tag name, which is a symbolic\n"
-"    name associated with a revision identifier. Tag names may not\n"
-"    contain the \":\" character.\n"
-"\n"
-"    The reserved name \"tip\" is a special tag that always identifies\n"
-"    the most recent revision.\n"
-"\n"
-"    The reserved name \"null\" indicates the null revision. This is the\n"
-"    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. If\n"
-"    an uncommitted merge is in progress, \".\" is the revision of the\n"
-"    first parent.\n"
-"    "
-msgstr ""
-
 msgid "Specifying Multiple Revisions"
 msgstr ""
 
-msgid ""
-"\n"
-"    When Mercurial accepts more than one revision, they may be\n"
-"    specified individually, or provided as a topologically continuous\n"
-"    range, separated by the \":\" character.\n"
-"\n"
-"    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 means\n"
-"    \"all revisions\".\n"
-"\n"
-"    If BEGIN is greater than END, revisions are treated in reverse\n"
-"    order.\n"
-"\n"
-"    A range acts as a closed interval. This means that a range of 3:5\n"
-"    gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
-"    "
-msgstr ""
-
 msgid "Diff Formats"
 msgstr ""
 
-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"
-"\n"
-"     - executable status and other permission bits\n"
-"     - copy or rename information\n"
-"     - changes in binary files\n"
-"     - creation or deletion of empty files\n"
-"\n"
-"    Mercurial also supports the extended diff format from the git VCS\n"
-"    which addresses these limitations. The git diff format is not\n"
-"    produced by default because a few widespread tools still do not\n"
-"    understand this format.\n"
-"\n"
-"    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\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\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 ""
-
 msgid "Template Usage"
 msgstr ""
 
-msgid ""
-"\n"
-"    Mercurial allows you to customize output of commands through\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.\n"
-"    Usage:\n"
-"\n"
-"        $ hg log -r1 --style changelog\n"
-"\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\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\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\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"
-"\n"
-"    List of filters:\n"
-"\n"
-"    - addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
-"          every line except the last.\n"
-"    - age: Date. Returns a human-readable date/time difference between\n"
-"          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 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\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\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"
-"    - 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\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\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 ""
-
 msgid "URL Paths"
 msgstr ""
 
-msgid ""
-"\n"
-"    Valid URLs are of the form:\n"
-"\n"
-"      local/filesystem/path (or file://local/filesystem/path)\n"
-"      http://[user[:pass]@]host[:port]/[path]\n"
-"      https://[user[:pass]@]host[:port]/[path]\n"
-"      ssh://[user[:pass]@]host[:port]/[path]\n"
-"\n"
-"    Paths in the local filesystem can either point to Mercurial\n"
-"    repositories or to bundle files (as created by 'hg bundle' or\n"
-"    'hg incoming --bundle').\n"
-"\n"
-"    An optional identifier after # indicates a particular branch, tag,\n"
-"    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 remote\n"
-"    Mercurial server.\n"
-"\n"
-"    Some notes about using SSH with Mercurial:\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\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\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\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"
-"\n"
-"    default:\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"
-"      prefer it over 'default' if both are defined.\n"
-"    "
+msgid "Using additional features"
 msgstr ""
 
 msgid "can only share local repositories"
@@ -8043,27 +8084,20 @@
 msgid "clone from remote to remote not supported"
 msgstr ""
 
-msgid "updated"
-msgstr "已更新"
-
-msgid "merged"
-msgstr "已合併"
-
-msgid "removed"
-msgstr "已移除"
-
-msgid "unresolved"
-msgstr ""
-
-#, python-format
-msgid "%d files %s"
+#, fuzzy, python-format
+msgid "updating to branch %s\n"
+msgstr "正在新增 branch\n"
+
+#, python-format
+msgid ""
+"%d files updated, %d files merged, %d files removed, %d files unresolved\n"
 msgstr ""
 
 msgid "use 'hg resolve' to retry unresolved file merges\n"
 msgstr ""
 
 msgid ""
-"use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to "
+"use 'hg resolve' to retry unresolved file merges or 'hg update -C' to "
 "abandon\n"
 msgstr ""
 
@@ -8139,32 +8173,12 @@
 msgid "unsupported URL component: \"%s\""
 msgstr ""
 
-#, python-format
-msgid "using %s\n"
-msgstr ""
-
-#, python-format
-msgid "capabilities: %s\n"
-msgstr ""
-
 msgid "operation not supported over http"
 msgstr ""
 
-#, python-format
-msgid "sending %s command\n"
-msgstr ""
-
-#, python-format
-msgid "sending %s bytes\n"
-msgstr ""
-
 msgid "authorization failed"
 msgstr ""
 
-#, python-format
-msgid "http error while sending %s command\n"
-msgstr ""
-
 msgid "http error, possibly caused by proxy setting"
 msgstr ""
 
@@ -8173,10 +8187,6 @@
 msgstr ""
 
 #, python-format
-msgid "requested URL: '%s'\n"
-msgstr ""
-
-#, python-format
 msgid "'%s' does not appear to be an hg repository"
 msgstr ""
 
@@ -8211,7 +8221,7 @@
 msgstr ""
 
 #, python-format
-msgid "%s: ignoring invalid syntax '%s'\n"
+msgid "ignoring invalid syntax '%s'"
 msgstr ""
 
 #, python-format
@@ -8242,21 +8252,6 @@
 msgstr ""
 
 #, python-format
-msgid "%s, line %s: %s\n"
-msgstr ""
-
-msgid "cannot parse entry"
-msgstr ""
-
-#, python-format
-msgid "node '%s' is not well formed"
-msgstr ""
-
-#, python-format
-msgid "tag '%s' refers to unknown node"
-msgstr ""
-
-#, python-format
 msgid "working directory has unknown parent '%s'!"
 msgstr ""
 
@@ -8264,10 +8259,6 @@
 msgid "unknown revision '%s'"
 msgstr ""
 
-#, python-format
-msgid "filtering %s through %s\n"
-msgstr ""
-
 msgid "journal already exists - run hg recover"
 msgstr ""
 
@@ -8299,14 +8290,6 @@
 msgid "working directory of %s"
 msgstr ""
 
-#, python-format
-msgid " %s: searching for copy revision for %s\n"
-msgstr ""
-
-#, python-format
-msgid " %s: copy %s:%s\n"
-msgstr ""
-
 msgid "cannot partially commit a merge (do not specify files or patterns)"
 msgstr ""
 
@@ -8319,9 +8302,6 @@
 msgid "file not tracked!"
 msgstr ""
 
-msgid "nothing changed\n"
-msgstr ""
-
 msgid "unresolved merge conflicts (see hg resolve)"
 msgstr ""
 
@@ -8374,41 +8354,6 @@
 msgid "searching for changes\n"
 msgstr ""
 
-#, python-format
-msgid "examining %s:%s\n"
-msgstr ""
-
-msgid "branch already found\n"
-msgstr ""
-
-#, python-format
-msgid "found incomplete branch %s:%s\n"
-msgstr ""
-
-#, python-format
-msgid "found new changeset %s\n"
-msgstr ""
-
-#, python-format
-msgid "request %d: %s\n"
-msgstr ""
-
-#, python-format
-msgid "received %s:%s\n"
-msgstr ""
-
-#, python-format
-msgid "narrowing %d:%d %s\n"
-msgstr ""
-
-#, python-format
-msgid "found new branch changeset %s\n"
-msgstr ""
-
-#, python-format
-msgid "narrowed branch search to %s:%s\n"
-msgstr ""
-
 msgid "already have changeset "
 msgstr ""
 
@@ -8418,16 +8363,6 @@
 msgid "repository is unrelated"
 msgstr ""
 
-msgid "found new changesets starting at "
-msgstr ""
-
-#, python-format
-msgid "%d total queries\n"
-msgstr ""
-
-msgid "common changesets up to "
-msgstr ""
-
 msgid "requesting all changes\n"
 msgstr ""
 
@@ -8453,17 +8388,10 @@
 msgid "%d changesets found\n"
 msgstr ""
 
-msgid "list of changesets:\n"
-msgstr ""
-
 #, python-format
 msgid "empty or missing revlog for %s"
 msgstr ""
 
-#, python-format
-msgid "add changeset %s\n"
-msgstr ""
-
 msgid "adding changesets\n"
 msgstr ""
 
@@ -8476,10 +8404,6 @@
 msgid "adding file changes\n"
 msgstr ""
 
-#, python-format
-msgid "adding %s revisions\n"
-msgstr ""
-
 msgid "received file revlog group is empty"
 msgstr ""
 
@@ -8491,9 +8415,6 @@
 msgid "added %d changesets with %d changes to %d files%s\n"
 msgstr ""
 
-msgid "updating the branch cache\n"
-msgstr ""
-
 msgid "Unexpected response from remote server:"
 msgstr ""
 
@@ -8514,10 +8435,6 @@
 msgstr ""
 
 #, python-format
-msgid "adding %s (%s)\n"
-msgstr ""
-
-#, python-format
 msgid "transferred %s in %.1f seconds (%s/sec)\n"
 msgstr ""
 
@@ -8598,14 +8515,6 @@
 msgstr ""
 
 #, python-format
-msgid " overwrite %s partial %s\n"
-msgstr ""
-
-#, python-format
-msgid " ancestor %s local %s remote %s\n"
-msgstr ""
-
-#, python-format
 msgid ""
 " local changed %s which remote deleted\n"
 "use (c)hanged version or (d)elete?"
@@ -8617,9 +8526,6 @@
 msgid "&Delete"
 msgstr ""
 
-msgid "c"
-msgstr ""
-
 #, python-format
 msgid ""
 "remote changed %s which local deleted\n"
@@ -8630,10 +8536,6 @@
 msgstr ""
 
 #, python-format
-msgid "preserving %s for resolve of %s\n"
-msgstr ""
-
-#, python-format
 msgid "update failed to remove %s: %s!\n"
 msgstr ""
 
@@ -8680,13 +8582,6 @@
 msgstr "無法建立 %s: 無法建立目的端目錄"
 
 #, python-format
-msgid "found patch at byte %d\n"
-msgstr "於 byte %d 找到 patch\n"
-
-msgid "patch generated by hg export\n"
-msgstr "經由 hg export 產生的 patch\n"
-
-#, python-format
 msgid "unable to find '%s' for patching\n"
 msgstr "找不到可 patch 的 '%s'\n"
 
@@ -8757,7 +8652,7 @@
 msgstr "不支援的行尾結束類型: %s"
 
 #, python-format
-msgid "no valid hunks found; trying with %r instead\n"
+msgid " %d files changed, %d insertions(+), %d deletions(-)\n"
 msgstr ""
 
 #, python-format
@@ -8769,13 +8664,6 @@
 msgstr "已被信號 %d 終止"
 
 #, python-format
-msgid "stopped by signal %d"
-msgstr "已被信號 %d 停止"
-
-msgid "invalid exit code"
-msgstr "不合法的 exit code"
-
-#, python-format
 msgid "saving bundle to %s\n"
 msgstr "正在儲存 bundle 至 %s\n"
 
@@ -8846,12 +8734,12 @@
 msgid "could not create remote repo"
 msgstr "無法建立遠端 repo"
 
+msgid "no suitable response from remote hg"
+msgstr ""
+
 msgid "remote: "
 msgstr "遠端: "
 
-msgid "no suitable response from remote hg"
-msgstr ""
-
 #, python-format
 msgid "push refused: %s"
 msgstr "push 被拒絕: %s"
@@ -8869,17 +8757,6 @@
 msgid "invalid entry in fncache, line %s"
 msgstr ""
 
-msgid "scanning\n"
-msgstr "掃描中\n"
-
-#, python-format
-msgid "%d files, %d bytes to transfer\n"
-msgstr "傳送 %d 檔案,%d bytes\n"
-
-#, python-format
-msgid "sending %s (%d bytes)\n"
-msgstr "傳送 %s (%d bytes)\n"
-
 #, python-format
 msgid ""
 " subrepository sources for %s differ\n"
@@ -8889,9 +8766,6 @@
 msgid "&Remote"
 msgstr ""
 
-msgid "r"
-msgstr ""
-
 #, python-format
 msgid ""
 " local changed subrepository %s which remote removed\n"
@@ -8916,6 +8790,17 @@
 msgid "pushing subrepo %s\n"
 msgstr ""
 
+#, python-format
+msgid "%s, line %s: %s\n"
+msgstr ""
+
+msgid "cannot parse entry"
+msgstr ""
+
+#, python-format
+msgid "node '%s' is not well formed"
+msgstr ""
+
 msgid "unmatched quotes"
 msgstr ""
 
@@ -8981,12 +8866,12 @@
 msgid "username %s contains a newline\n"
 msgstr ""
 
+msgid "response expected"
+msgstr ""
+
 msgid "unrecognized response\n"
 msgstr ""
 
-msgid "response expected"
-msgstr ""
-
 msgid "password: "
 msgstr ""
 
@@ -9015,10 +8900,6 @@
 msgstr ""
 
 #, python-format
-msgid "proxying through http://%s:%s\n"
-msgstr ""
-
-#, python-format
 msgid "command '%s' failed: %s"
 msgstr ""
 
@@ -9216,11 +9097,15 @@
 msgstr ""
 
 #, python-format
+msgid "warning: copy source of '%s' not in parents of %s"
+msgstr ""
+
+#, python-format
 msgid "empty or missing copy source revlog %s:%s"
 msgstr ""
 
 #, python-format
-msgid "warning: %s@%s: copy source revision is nullid %s:%s"
+msgid "warning: %s@%s: copy source revision is nullid %s:%s\n"
 msgstr ""
 
 #, python-format