changeset 767:55e2953f82d6

Update Chinese translation
author Dongsheng Song <songdongsheng@live.cn>
date Sun, 05 Apr 2009 12:12:00 +0800
parents 3b33dd6aba87
children a79fb712fe20
files Makefile Makefile.vars.tmpl en/00book.xml po/zh.po
diffstat 4 files changed, 237 insertions(+), 588 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Thu Apr 02 09:24:36 2009 +0800
+++ b/Makefile	Sun Apr 05 12:12:00 2009 +0800
@@ -14,7 +14,9 @@
 	   -o nodefault="<programlisting> <screen>" \
 	   -o untranslated="<programlisting> <screen>"
 TRANSLATE = PERLLIB=$(PO4A_LIB) $(PO4A_HOME)/po4a-translate -M UTF-8 \
-	   -f docbook -o doctype=docbook \
+	   -f docbook -o doctype=docbook -o includeexternal \
+	   -o nodefault="<programlisting> <screen>" \
+	   -o untranslated="<programlisting> <screen>" \
 	   -k 0
 
 #rev_id = $(shell hg parents --template '{node|short} ({date|isodate})')
@@ -122,8 +124,6 @@
 ifneq "$(findstring $(LINGUA),$(PO_LANGUAGES))" ""
 	(cd po; \
 	$(UPDATEPO) -m ../en/00book.xml -p $(LINGUA).po; \
-	cat $(LINGUA).po | sed 's/&emdash;/—/' > $(LINGUA).po.tmp; \
-	mv $(LINGUA).po.tmp $(LINGUA).po \
 	)
 	$(MAKE) tidypo LINGUA=$(LINGUA)
 endif
@@ -142,7 +142,7 @@
 $(LINGUA)/examples/.run:
 	(cd $(LINGUA)/examples; ./run-example -v -a)
 
-build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) $(LINGUA)/examples/.run $(images)
+build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) $(LINGUA)/examples/.run
 	mkdir -p build/$(LINGUA)/source/figs
 	cp $(LINGUA)/figs/*.png build/$(LINGUA)/source/figs
 	cp stylesheets/hgbook.css build/$(LINGUA)/source
@@ -155,12 +155,14 @@
 build/en/source/hgbook.xml:
 	${MAKE} LINGUA=en $@
 
-build/$(LINGUA)/source/hgbook.xml: build/en/source/hgbook.xml po/$(LINGUA).po $(images)
+build/$(LINGUA)/source/hgbook.xml: $(wildcard en/*.xml) po/$(LINGUA).po $(images)
 	mkdir -p build/$(LINGUA)/source/figs
 	cp en/figs/*.png build/$(LINGUA)/source/figs
 	cp stylesheets/hgbook.css build/$(LINGUA)/source
-	$(TRANSLATE) -m build/en/source/hgbook.xml.tmp -p po/$(LINGUA).po -l $@.tmp
+	$(TRANSLATE) -m en/00book.xml -p po/$(LINGUA).po -l en/hgbook.xml.$(LINGUA)
+	xmllint --nonet --noent --xinclude --postvalid --output $@.tmp en/hgbook.xml.$(LINGUA)
 	cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@
+	mv en/hgbook.xml.$(LINGUA) build/$(LINGUA)/source
 endif
 
 endif
@@ -220,7 +222,7 @@
 
 build/$(LINGUA)/pdf/hgbook.pdf: build/$(LINGUA)/source/hgbook.xml stylesheets/fo.xsl stylesheets/$(LINGUA)/fo.xsl
 	mkdir -p build/$(LINGUA)/pdf
-	java -classpath $(JAVA_SHARE)/saxon65.jar:$(JAVA_SHARE)/saxon65-dbxsl.jar:$(JAVA_SHARE)/xml-commons-resolver-1.2.jar:$(JAVA_SHARE) \
+	java -classpath $(JAVA_LIB)/saxon65.jar:$(JAVA_LIB)/saxon65-dbxsl.jar:$(JAVA_LIB)/xml-commons-resolver-1.2.jar:$(JAVA_LIB) \
 	    com.icl.saxon.StyleSheet \
 	    -x org.apache.xml.resolver.tools.ResolvingXMLReader \
 	    -y org.apache.xml.resolver.tools.ResolvingXMLReader \
--- a/Makefile.vars.tmpl	Thu Apr 02 09:24:36 2009 +0800
+++ b/Makefile.vars.tmpl	Sun Apr 05 12:12:00 2009 +0800
@@ -11,7 +11,7 @@
 PO4A_LIB=$(PO4A_HOME)/lib
 
 # saxon65.jar, saxon65-dbxsl.jar, xml-commons-resolver-1.2.jar: Only for pdf format !
-JAVA_SHARE=/home/dongsheng/var/svn/i18n-zh/trunk/lib/share/java
+JAVA_LIB=/home/dongsheng/var/svn/i18n-zh/trunk/lib/share/java
 
 # fop (>= 0.9.6): Only for pdf format !
 FOP_HOME=/home/dongsheng/var/svn/i18n-zh/trunk/lib/fop
--- a/en/00book.xml	Thu Apr 02 09:24:36 2009 +0800
+++ b/en/00book.xml	Sun Apr 05 12:12:00 2009 +0800
@@ -96,8 +96,6 @@
   &ch12;
   <!-- BEGIN ch13 -->
   &ch13;
-  <!-- BEGIN appA -->
-  <!-- &appA; -->
   <!-- BEGIN appB -->
   &appB;
   <!-- BEGIN appC -->
--- a/po/zh.po	Thu Apr 02 09:24:36 2009 +0800
+++ b/po/zh.po	Sun Apr 05 12:12:00 2009 +0800
@@ -41,9 +41,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: hgbook 1.2\n"
-"POT-Creation-Date: 2009-04-02 09:21+0800\n"
-"PO-Revision-Date: 2009-03-31 10:12+0800\n"
-"Last-Translator: \n"
+"POT-Creation-Date: 2009-04-05 11:48+0800\n"
+"PO-Revision-Date: 2009-04-05 12:10+0800\n"
+"Last-Translator: 宋冬生 <songdonogsheng@live.cn>\n"
 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -65,7 +65,7 @@
 #. type: Content of: <book><bookinfo>
 #: ../en/00book.xml:48
 msgid "<edition>1</edition> <isbn>9780596800673</isbn>"
-msgstr ""
+msgstr "<edition>1</edition> <isbn>9780596800673</isbn>"
 
 #. type: Content of: <book><bookinfo><authorgroup><author><firstname>
 #: ../en/00book.xml:52
@@ -89,340 +89,6 @@
 "year> <holder>Bryan O'Sullivan</holder> </copyright>"
 
 #. type: Content of: <book><appendix><title>
-#: ../en/appA-cmdref.xml:5
-msgid "Command reference"
-msgstr "命令参考"
-
-#. type: Content of: <book><appendix><para>
-#: ../en/appA-cmdref.xml:7
-msgid ""
-"\\cmdref{add}{add files at the next commit} \\optref{add}{I}{include} \\optref"
-"{add}{X}{exclude} \\optref{add}{n}{dry-run}"
-msgstr ""
-
-#. type: Content of: <book><appendix><para>
-#: ../en/appA-cmdref.xml:12
-msgid "\\cmdref{diff}{print changes in history or working directory}"
-msgstr ""
-
-#. type: Content of: <book><appendix><para>
-#: ../en/appA-cmdref.xml:14
-msgid ""
-"Show differences between revisions for the specified files or directories, "
-"using the unified diff format.  For a description of the unified diff format, "
-"see <xref linkend=\"sec:mq:patch\"/>."
-msgstr ""
-
-#. type: Content of: <book><appendix><para>
-#: ../en/appA-cmdref.xml:18
-msgid ""
-"By default, this command does not print diffs for files that Mercurial "
-"considers to contain binary data.  To control this behaviour, see the <option "
-"role=\"hg-opt-diff\">-a</option> and <option role=\"hg-opt-diff\">--git</"
-"option> options."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><title>
-#: ../en/appA-cmdref.xml:23
-msgid "Options"
-msgstr "选项"
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:25
-msgid "\\loptref{diff}{nodates}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:27
-msgid "Omit date and time information when printing diff headers."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:29
-msgid "\\optref{diff}{B}{ignore-blank-lines}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:31
-msgid ""
-"Do not print changes that only insert or delete blank lines.  A line that "
-"contains only whitespace is not considered blank."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:35
-msgid "\\optref{diff}{I}{include}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:38
-msgid "Include files and directories whose names match the given patterns."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:41
-msgid "\\optref{diff}{X}{exclude}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:44
-msgid "Exclude files and directories whose names match the given patterns."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:47
-msgid "\\optref{diff}{a}{text}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:50
-msgid ""
-"If this option is not specified, <command role=\"hg-cmd\">hg diff</command> "
-"will refuse to print diffs for files that it detects as binary. Specifying "
-"<option role=\"hg-opt-diff\">-a</option> forces <command role=\"hg-cmd\">hg "
-"diff</command> to treat all files as text, and generate diffs for all of them."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:56
-msgid ""
-"This option is useful for files that are <quote>mostly text</quote> but have "
-"a few embedded NUL characters.  If you use it on files that contain a lot of "
-"binary data, its output will be incomprehensible."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:61
-msgid "\\optref{diff}{b}{ignore-space-change}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:64
-msgid ""
-"Do not print a line if the only change to that line is in the amount of white "
-"space it contains."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:68
-msgid "\\optref{diff}{g}{git}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:71
-msgid ""
-"Print <command>git</command>-compatible diffs.  XXX reference a format "
-"description."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:75
-msgid "\\optref{diff}{p}{show-function}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:78
-msgid ""
-"Display the name of the enclosing function in a hunk header, using a simple "
-"heuristic.  This functionality is enabled by default, so the <option role="
-"\"hg-opt-diff\">-p</option> option has no effect unless you change the value "
-"of the <envar role=\"rc-item-diff\">showfunc</envar> config item, as in the "
-"following example."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:85
-msgid "\\optref{diff}{r}{rev}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:88
-msgid ""
-"Specify one or more revisions to compare.  The <command role=\"hg-cmd\">hg "
-"diff</command> command accepts up to two <option role=\"hg-opt-diff\">-r</"
-"option> options to specify the revisions to compare."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><orderedlist><listitem><para>
-#: ../en/appA-cmdref.xml:94
-msgid ""
-"Display the differences between the parent revision of the working directory "
-"and the working directory."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><orderedlist><listitem><para>
-#: ../en/appA-cmdref.xml:98
-msgid ""
-"Display the differences between the specified changeset and the working "
-"directory."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><orderedlist><listitem><para>
-#: ../en/appA-cmdref.xml:102
-msgid "Display the differences between the two specified changesets."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:106
-msgid ""
-"You can specify two revisions using either two <option role=\"hg-opt-diff\">-"
-"r</option> options or revision range notation.  For example, the two revision "
-"specifications below are equivalent."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:113
-msgid ""
-"When you provide two revisions, Mercurial treats the order of those revisions "
-"as significant.  Thus, <command role=\"hg-cmd\">hg diff -r10:20</command> "
-"will produce a diff that will transform files from their contents as of "
-"revision 10 to their contents as of revision 20, while <command role=\"hg-cmd"
-"\">hg diff -r20:10</command> means the opposite: the diff that will transform "
-"files from their revision 20 contents to their revision 10 contents.  You "
-"cannot reverse the ordering in this way if you are diffing against the "
-"working directory."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:123
-msgid "\\optref{diff}{w}{ignore-all-space}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:126
-msgid "\\cmdref{version}{print version and copyright information}"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><para>
-#: ../en/appA-cmdref.xml:129
-msgid ""
-"This command displays the version of Mercurial you are running, and its "
-"copyright license.  There are four kinds of version string that you may see."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><itemizedlist><listitem><para>
-#: ../en/appA-cmdref.xml:134
-msgid ""
-"The string <quote><literal>unknown</literal></quote>. This version of "
-"Mercurial was not built in a Mercurial repository, and cannot determine its "
-"own version."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><itemizedlist><listitem><para>
-#: ../en/appA-cmdref.xml:139
-msgid ""
-"A short numeric string, such as <quote><literal>1.1</literal></quote>. This "
-"is a build of a revision of Mercurial that was identified by a specific tag "
-"in the repository where it was built.  (This doesn't necessarily mean that "
-"you're running an official release; someone else could have added that tag to "
-"any revision in the repository where they built Mercurial.)"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><itemizedlist><listitem><para>
-#: ../en/appA-cmdref.xml:147
-msgid ""
-"A hexadecimal string, such as <quote><literal>875489e31abe</literal></"
-"quote>.  This is a build of the given revision of Mercurial."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><itemizedlist><listitem><para>
-#: ../en/appA-cmdref.xml:151
-msgid ""
-"A hexadecimal string followed by a date, such as <quote><literal>875489e31abe"
-"+20070205</literal></quote>.  This is a build of the given revision of "
-"Mercurial, where the build repository contained some local changes that had "
-"not been committed."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><title>
-#: ../en/appA-cmdref.xml:160
-msgid "Tips and tricks"
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><title>
-#: ../en/appA-cmdref.xml:163
-msgid ""
-"Why do the results of <command role=\"hg-cmd\">hg diff</command> and <command "
-"role=\"hg-cmd\">hg status</command> differ?"
-msgstr ""
-"为什么 <command role=\"hg-cmd\">hg diff</command> 与 <command role=\"hg-cmd"
-"\">hg status</command> 的结果不同 ?"
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:165
-msgid ""
-"When you run the <command role=\"hg-cmd\">hg status</command> command, you'll "
-"see a list of files that Mercurial will record changes for the next time you "
-"perform a commit.  If you run the <command role=\"hg-cmd\">hg diff</command> "
-"command, you may notice that it prints diffs for only a <emphasis>subset</"
-"emphasis> of the files that <command role=\"hg-cmd\">hg status</command> "
-"listed.  There are two possible reasons for this."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:172
-msgid ""
-"The first is that <command role=\"hg-cmd\">hg status</command> prints some "
-"kinds of modifications that <command role=\"hg-cmd\">hg diff</command> "
-"doesn't normally display.  The <command role=\"hg-cmd\">hg diff</command> "
-"command normally outputs unified diffs, which don't have the ability to "
-"represent some changes that Mercurial can track.  Most notably, traditional "
-"diffs can't represent a change in whether or not a file is executable, but "
-"Mercurial records this information."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:180
-msgid ""
-"If you use the <option role=\"hg-opt-diff\">--git</option> option to <command "
-"role=\"hg-cmd\">hg diff</command>, it will display <command>git</command>-"
-"compatible diffs that <emphasis>can</emphasis> display this extra information."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:185
-msgid ""
-"The second possible reason that <command role=\"hg-cmd\">hg diff</command> "
-"might be printing diffs for a subset of the files displayed by <command role="
-"\"hg-cmd\">hg status</command> is that if you invoke it without any "
-"arguments, <command role=\"hg-cmd\">hg diff</command> prints diffs against "
-"the first parent of the working directory.  If you have run <command role="
-"\"hg-cmd\">hg merge</command> to merge two changesets, but you haven't yet "
-"committed the results of the merge, your working directory has two parents "
-"(use <command role=\"hg-cmd\">hg parents</command> to see them).  While "
-"<command role=\"hg-cmd\">hg status</command> prints modifications relative to "
-"<emphasis>both</emphasis> parents after an uncommitted merge, <command role="
-"\"hg-cmd\">hg diff</command> still operates relative only to the first "
-"parent.  You can get it to print diffs relative to the second parent by "
-"specifying that parent with the <option role=\"hg-opt-diff\">-r</option> "
-"option.  There is no way to print diffs relative to both parents."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><title>
-#: ../en/appA-cmdref.xml:201
-msgid "Generating safe binary diffs"
-msgstr "生成安全的二进制差异"
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:203
-msgid ""
-"If you use the <option role=\"hg-opt-diff\">-a</option> option to force "
-"Mercurial to print diffs of files that are either <quote>mostly text</quote> "
-"or contain lots of binary data, those diffs cannot subsequently be applied by "
-"either Mercurial's <command role=\"hg-cmd\">hg import</command> command or "
-"the system's <command>patch</command> command."
-msgstr ""
-
-#. type: Content of: <book><appendix><sect2><sect3><para>
-#: ../en/appA-cmdref.xml:210
-msgid ""
-"If you want to generate a diff of a binary file that is safe to use as input "
-"for <command role=\"hg-cmd\">hg import</command>, use the <command role=\"hg-"
-"cmd\">hg diff</command>{--git} option when you generate the patch.  The "
-"system <command>patch</command> command cannot handle binary patches at all."
-msgstr ""
-
-#. type: Content of: <book><appendix><title>
 #: ../en/appB-mq-ref.xml:5
 msgid "Mercurial Queues reference"
 msgstr "Mercurial 队列参考"
@@ -441,8 +107,8 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:14
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qapplied</command>—print applied patches"
+msgid ""
+"<command role=\"hg-ext-mq\">qapplied</command>&emdash;print applied patches"
 msgstr "<command role=\"hg-ext-mq\">qapplied</command>—显示已应用的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -455,10 +121,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:24
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qcommit</command>—commit changes in the queue "
-"repository"
+msgid ""
+"<command role=\"hg-ext-mq\">qcommit</command>&emdash;commit changes in the "
+"queue repository"
 msgstr "<command role=\"hg-ext-mq\">qcommit</command>—提交队列中的修改"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -483,9 +148,8 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:43
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qdelete</command>—delete a patch from the "
+msgid ""
+"<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a patch from the "
 "<filename role=\"special\">series</filename> file"
 msgstr ""
 "<command role=\"hg-ext-mq\">qdelete</command>—从文件 <filename role=\"special"
@@ -508,7 +172,7 @@
 #: ../en/appB-mq-ref.xml:335 ../en/appB-mq-ref.xml:404
 #: ../en/appB-mq-ref.xml:497
 msgid "Options:"
-msgstr ""
+msgstr "选项:"
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/appB-mq-ref.xml:59
@@ -518,10 +182,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:66
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qdiff</command>—print a diff of the topmost "
-"applied patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qdiff</command>&emdash;print a diff of the "
+"topmost applied patch"
 msgstr "<command role=\"hg-ext-mq\">qdiff</command>—显示最新应用补丁的差异"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -534,10 +197,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:75
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qfold</command>—merge (<quote>fold</quote>) "
-"several patches into one"
+msgid ""
+"<command role=\"hg-ext-mq\">qfold</command>&emdash;merge (<quote>fold</"
+"quote>) several patches into one"
 msgstr ""
 "<command role=\"hg-ext-mq\">qfold</command>—将多个补丁合并(<quote>折叠</"
 "quote>)成一个"
@@ -594,10 +256,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:119
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qheader</command>—display the header/description "
-"of a patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qheader</command>&emdash;display the header/"
+"description of a patch"
 msgstr "<command role=\"hg-ext-mq\">qheader</command>—显示补丁头部描述"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -610,10 +271,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:130
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qimport</command>—import a third-party patch into "
-"the queue"
+msgid ""
+"<command role=\"hg-ext-mq\">qimport</command>&emdash;import a third-party "
+"patch into the queue"
 msgstr "<command role=\"hg-ext-mq\">qimport</command>—将第三方补丁导入队列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -637,10 +297,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:149
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qinit</command>—prepare a repository to work with "
-"MQ"
+msgid ""
+"<command role=\"hg-ext-mq\">qinit</command>&emdash;prepare a repository to "
+"work with MQ"
 msgstr "<command role=\"hg-ext-mq\">qinit</command>—为使用 MQ 配置版本库"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -671,8 +330,7 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:178
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qnew</command>—create a new patch"
+msgid "<command role=\"hg-ext-mq\">qnew</command>&emdash;create a new patch"
 msgstr "<command role=\"hg-ext-mq\">qnew</command>—创建新补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -714,9 +372,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:215
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qnext</command>—print the name of the next patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qnext</command>&emdash;print the name of the next "
+"patch"
 msgstr "<command role=\"hg-ext-mq\">qnext</command>—显示下个补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -730,8 +388,8 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:227
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qpop</command>—pop patches off the stack"
+msgid ""
+"<command role=\"hg-ext-mq\">qpop</command>&emdash;pop patches off the stack"
 msgstr "<command role=\"hg-ext-mq\">qpop</command>—删除堆栈顶部的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -814,10 +472,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:288
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qprev</command>—print the name of the previous "
-"patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qprev</command>&emdash;print the name of the "
+"previous patch"
 msgstr "<command role=\"hg-ext-mq\">qprev</command>—显示上个补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -831,8 +488,8 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:300
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qpush</command>—push patches onto the stack"
+msgid ""
+"<command role=\"hg-ext-mq\">qpush</command>&emdash;push patches onto the stack"
 msgstr "<command role=\"hg-ext-mq\">qpush</command>—增加补丁到堆栈"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -929,10 +586,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:368
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qrefresh</command>—update the topmost applied "
-"patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qrefresh</command>&emdash;update the topmost "
+"applied patch"
 msgstr "<command role=\"hg-ext-mq\">qrefresh</command>—更新最新的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1007,8 +663,7 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:424
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qrename</command>—rename a patch"
+msgid "<command role=\"hg-ext-mq\">qrename</command>&emdash;rename a patch"
 msgstr "<command role=\"hg-ext-mq\">qrename</command>—改名补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1029,8 +684,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:438
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qrestore</command>—restore saved queue state"
+msgid ""
+"<command role=\"hg-ext-mq\">qrestore</command>&emdash;restore saved queue "
+"state"
 msgstr "<command role=\"hg-ext-mq\">qrestore</command>—恢复保存的队列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1040,8 +696,8 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:446
-#, fuzzy
-msgid "<command role=\"hg-ext-mq\">qsave</command>—save current queue state"
+msgid ""
+"<command role=\"hg-ext-mq\">qsave</command>&emdash;save current queue state"
 msgstr "<command role=\"hg-ext-mq\">qsave</command>—保存当前的队列状态"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1051,9 +707,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:453
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qseries</command>—print the entire patch series"
+msgid ""
+"<command role=\"hg-ext-mq\">qseries</command>&emdash;print the entire patch "
+"series"
 msgstr "<command role=\"hg-ext-mq\">qseries</command>—显示补丁序列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1067,9 +723,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:464
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qtop</command>—print the name of the current patch"
+msgid ""
+"<command role=\"hg-ext-mq\">qtop</command>&emdash;print the name of the "
+"current patch"
 msgstr "<command role=\"hg-ext-mq\">qtop</command>—显示当前补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1081,9 +737,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:472
-#, fuzzy
-msgid ""
-"<command role=\"hg-ext-mq\">qunapplied</command>—print patches not yet applied"
+msgid ""
+"<command role=\"hg-ext-mq\">qunapplied</command>&emdash;print patches not yet "
+"applied"
 msgstr "<command role=\"hg-ext-mq\">qunapplied</command>—显示尚未应用的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1097,9 +753,9 @@
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
 #: ../en/appB-mq-ref.xml:484
-#, fuzzy
-msgid ""
-"<command role=\"hg-cmd\">hg strip</command>—remove a revision and descendants"
+msgid ""
+"<command role=\"hg-cmd\">hg strip</command>&emdash;remove a revision and "
+"descendants"
 msgstr "<command role=\"hg-cmd\">hg strip</command>—删除一个版本及其后继"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
@@ -1632,8 +1288,9 @@
 #. type: Content of: <book><preface><sect1><sect2><para>
 #: ../en/ch00-preface.xml:71
 msgid ""
-"Most of these reasons are equally valid—at least in theory&emdash;whether "
-"you're working on a project by yourself, or with a hundred other people."
+"Most of these reasons are equally valid&emdash;at least in theory&emdash;"
+"whether you're working on a project by yourself, or with a hundred other "
+"people."
 msgstr ""
 
 #. type: Content of: <book><preface><sect1><sect2><para>
@@ -1753,10 +1410,10 @@
 #: ../en/ch00-preface.xml:146
 msgid ""
 "This book takes an unusual approach to code samples.  Every example is "
-"<quote>live</quote>—each one is actually the result of a shell script that "
-"executes the Mercurial commands you see.  Every time an image of the book is "
-"built from its sources, all the example scripts are automatically run, and "
-"their current results compared against their expected results."
+"<quote>live</quote>&emdash;each one is actually the result of a shell script "
+"that executes the Mercurial commands you see.  Every time an image of the "
+"book is built from its sources, all the example scripts are automatically "
+"run, and their current results compared against their expected results."
 msgstr ""
 
 #. type: Content of: <book><preface><sect1><para>
@@ -2021,10 +1678,11 @@
 "scalability.  It's not unusual for an expensive centralised system to fall "
 "over under the combined load of just a few dozen concurrent users.  Once "
 "again, the typical response tends to be an expensive and clunky replication "
-"facility.  Since the load on a central server—if you have one at all—is many "
-"times lower with a distributed tool (because all of the data is replicated "
-"everywhere), a single cheap server can handle the needs of a much larger "
-"team, and replication to balance load becomes a simple matter of scripting."
+"facility.  Since the load on a central server&emdash;if you have one at "
+"all&emdash;is many times lower with a distributed tool (because all of the "
+"data is replicated everywhere), a single cheap server can handle the needs of "
+"a much larger team, and replication to balance load becomes a simple matter "
+"of scripting."
 msgstr ""
 
 #. type: Content of: <book><preface><sect1><sect2><para>
@@ -2222,7 +1880,7 @@
 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
 #: ../en/ch00-preface.xml:499 ../en/ch00-preface.xml:638
 msgid "Git"
-msgstr ""
+msgstr "Git"
 
 #. type: Content of: <book><preface><sect1><sect2><para>
 #: ../en/ch00-preface.xml:501
@@ -2280,7 +1938,7 @@
 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
 #: ../en/ch00-preface.xml:541 ../en/ch00-preface.xml:637
 msgid "CVS"
-msgstr ""
+msgstr "CVS"
 
 #. type: Content of: <book><preface><sect1><sect2><para>
 #: ../en/ch00-preface.xml:543
@@ -2412,7 +2070,7 @@
 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
 #: ../en/ch00-preface.xml:639
 msgid "Darcs"
-msgstr ""
+msgstr "Darcs"
 
 #. type: Content of: <book><preface><sect1><para>
 #: ../en/ch00-preface.xml:641
@@ -2542,8 +2200,7 @@
 
 #. type: Content of: <book><preface><sect1><title>
 #: ../en/ch00-preface.xml:740
-#, fuzzy
-msgid "Colophon—this book is Free"
+msgid "Colophon&emdash;this book is Free"
 msgstr "后记—本书是自由的!"
 
 #. type: Content of: <book><preface><sect1><para>
@@ -2586,7 +2243,7 @@
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch01-tour-basic.xml:15
 msgid "Windows"
-msgstr ""
+msgstr "Windows"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch01-tour-basic.xml:17
@@ -2643,13 +2300,12 @@
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch01-tour-basic.xml:52
 msgid "Ubuntu and Debian:"
-msgstr ""
+msgstr "Ubuntu 与 Debian:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch01-tour-basic.xml:54
-#, fuzzy
 msgid "Fedora and OpenSUSE:"
-msgstr "OpenSUSE:"
+msgstr "Fedora and OpenSUSE:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch01-tour-basic.xml:56
@@ -2663,14 +2319,12 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch01-tour-basic.xml:64
-#, fuzzy
 msgid ""
 "SunFreeWare, at <ulink url=\"http://www.sunfreeware.com\">http://www."
 "sunfreeware.com</ulink>, provides prebuilt packages of Mercurial."
 msgstr ""
 "位于 <ulink url=\"http://www.sunfreeware.com\">http://www.sunfreeware.com</"
-"ulink> 的 SunFreeWare 是很好的二进制安装源,它包含 Intel 和 Sparc 架构的 32 位"
-"和 64 位包,包含 Mercurial 的当前版本。"
+"ulink> 的 SunFreeWare 提供了 Mercurial 的二进制安装包。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch01-tour-basic.xml:73
@@ -3645,10 +3299,10 @@
 "reason for this: you can use <command role=\"hg-cmd\">hg update</command> to "
 "update the working directory to the state it was in at <emphasis>any "
 "revision</emphasis> in the history of the repository.  If you had the working "
-"directory updated to an old revision—to hunt down the origin of a bug, say—"
-"and ran a <command role=\"hg-cmd\">hg pull</command> which automatically "
-"updated the working directory to a new revision, you might not be terribly "
-"happy."
+"directory updated to an old revision&emdash;to hunt down the origin of a bug, "
+"say&emdash;and ran a <command role=\"hg-cmd\">hg pull</command> which "
+"automatically updated the working directory to a new revision, you might not "
+"be terribly happy."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -4940,9 +4594,9 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-concepts.xml:498
 msgid ""
-"There are more details—merging has plenty of corner cases&emdash;but these "
-"are the most common choices that are involved in a merge.  As you can see, "
-"most cases are completely automatic, and indeed most merges finish "
+"There are more details&emdash;merging has plenty of corner cases&emdash;but "
+"these are the most common choices that are involved in a merge.  As you can "
+"see, most cases are completely automatic, and indeed most merges finish "
 "automatically, without requiring your input to resolve any conflicts."
 msgstr ""
 
@@ -5268,11 +4922,11 @@
 "you added before the commit will no longer be listed in the output of "
 "<command role=\"hg-cmd\">hg status</command>.  The reason for this is that "
 "<command role=\"hg-cmd\">hg status</command> only tells you about "
-"<quote>interesting</quote> files—those that you have modified or told "
-"Mercurial to do something with—by default.  If you have a repository that "
-"contains thousands of files, you will rarely want to know about files that "
-"Mercurial is tracking, but that have not changed.  (You can still get this "
-"information; we'll return to this later.)"
+"<quote>interesting</quote> files&emdash;those that you have modified or told "
+"Mercurial to do something with&emdash;by default.  If you have a repository "
+"that contains thousands of files, you will rarely want to know about files "
+"that Mercurial is tracking, but that have not changed.  (You can still get "
+"this information; we'll return to this later.)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -5484,8 +5138,7 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch04-daily.xml:198
-#, fuzzy
-msgid "Useful shorthand—adding and removing files in one step"
+msgid "Useful shorthand&emdash;adding and removing files in one step"
 msgstr "有用的速记—一个步骤添加和删除文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -5810,8 +5463,8 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch04-daily.xml:454
 msgid ""
-"The case of diverging names occurs when two developers start with a file—"
-"let's call it <filename>foo</filename>&emdash;in their respective "
+"The case of diverging names occurs when two developers start with a "
+"file&emdash;let's call it <filename>foo</filename>&emdash;in their respective "
 "repositories."
 msgstr ""
 
@@ -8613,8 +8266,7 @@
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch07-branch.xml:228
-#, fuzzy
-msgid "The flow of changes—big picture vs. little"
+msgid "The flow of changes&emdash;big picture vs. little"
 msgstr "修改流程—宏观与微观"
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -8667,11 +8319,11 @@
 #: ../en/ch07-branch.xml:260
 msgid ""
 "The easiest way to isolate a <quote>big picture</quote> branch in Mercurial "
-"is in a dedicated repository.  If you have an existing shared repository—"
-"let's call it <literal>myproject</literal>&emdash;that reaches a <quote>1.0</"
-"quote> milestone, you can start to prepare for future maintenance releases on "
-"top of version 1.0 by tagging the revision from which you prepared the 1.0 "
-"release."
+"is in a dedicated repository.  If you have an existing shared "
+"repository&emdash;let's call it <literal>myproject</literal>&emdash;that "
+"reaches a <quote>1.0</quote> milestone, you can start to prepare for future "
+"maintenance releases on top of version 1.0 by tagging the revision from which "
+"you prepared the 1.0 release."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -9092,9 +8744,9 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch08-undo.xml:65
 msgid ""
-"However, luck is with me—I've caught my error before I pushed the changeset.  "
-"I use the <command role=\"hg-cmd\">hg rollback</command> command, and "
-"Mercurial makes that last changeset vanish."
+"However, luck is with me&emdash;I've caught my error before I pushed the "
+"changeset.  I use the <command role=\"hg-cmd\">hg rollback</command> command, "
+"and Mercurial makes that last changeset vanish."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -9164,12 +8816,12 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch08-undo.xml:126
 msgid ""
-"If you've pushed a change to another repository—particularly if it's a shared "
-"repository—it has essentially <quote>escaped into the wild,</quote> and "
-"you'll have to recover from your mistake in a different way.  What will "
-"happen if you push a changeset somewhere, then roll it back, then pull from "
-"the repository you pushed to, is that the changeset will reappear in your "
-"repository."
+"If you've pushed a change to another repository&emdash;particularly if it's a "
+"shared repository&emdash;it has essentially <quote>escaped into the wild,</"
+"quote> and you'll have to recover from your mistake in a different way.  What "
+"will happen if you push a changeset somewhere, then roll it back, then pull "
+"from the repository you pushed to, is that the changeset will reappear in "
+"your repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -9291,7 +8943,7 @@
 msgid ""
 "The <command role=\"hg-cmd\">hg revert</command> command is useful for more "
 "than just modified files.  It lets you reverse the results of all of "
-"Mercurial's file management commands—<command role=\"hg-cmd\">hg add</"
+"Mercurial's file management commands&emdash;<command role=\"hg-cmd\">hg add</"
 "command>, <command role=\"hg-cmd\">hg remove</command>, and so on."
 msgstr ""
 
@@ -9794,12 +9446,13 @@
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch08-undo.xml:616
 msgid ""
-"Since Mercurial treats history as accumulative—every change builds on top of "
-"all changes that preceded it—you generally can't just make disastrous changes "
-"disappear.  The one exception is when you've just committed a change, and it "
-"hasn't been pushed or pulled into another repository.  That's when you can "
-"safely use the <command role=\"hg-cmd\">hg rollback</command> command, as I "
-"detailed in <xref linkend=\"sec:undo:rollback\"/>."
+"Since Mercurial treats history as accumulative&emdash;every change builds on "
+"top of all changes that preceded it&emdash;you generally can't just make "
+"disastrous changes disappear.  The one exception is when you've just "
+"committed a change, and it hasn't been pushed or pulled into another "
+"repository.  That's when you can safely use the <command role=\"hg-cmd\">hg "
+"rollback</command> command, as I detailed in <xref linkend=\"sec:undo:rollback"
+"\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -10820,10 +10473,11 @@
 msgid ""
 "In practice, putting a centralised bottleneck like this in place is not often "
 "a good idea, and transaction visibility has nothing to do with the problem.  "
-"As the size of a project—and the time it takes to build and test—grows, you "
-"rapidly run into a wall with this <quote>try before you buy</quote> approach, "
-"where you have more changesets to test than time in which to deal with them.  "
-"The inevitable result is frustration on the part of all involved."
+"As the size of a project&emdash;and the time it takes to build and "
+"test&emdash;grows, you rapidly run into a wall with this <quote>try before "
+"you buy</quote> approach, where you have more changesets to test than time in "
+"which to deal with them.  The inevitable result is frustration on the part of "
+"all involved."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -10983,8 +10637,9 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch09-hook.xml:464
 msgid ""
-"You can write a hook either as a normal program—typically a shell script—or "
-"as a Python function that is executed within the Mercurial process."
+"You can write a hook either as a normal program&emdash;typically a shell "
+"script&emdash;or as a Python function that is executed within the Mercurial "
+"process."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -11278,9 +10933,8 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:716
-#, fuzzy
-msgid ""
-"<literal role=\"hg-ext\">acl</literal>—access control for parts of a "
+msgid ""
+"<literal role=\"hg-ext\">acl</literal>&emdash;access control for parts of a "
 "repository"
 msgstr "<literal role=\"hg-ext\">acl</literal>—版本库的访问控制"
 
@@ -11427,8 +11081,8 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:844
-#, fuzzy
-msgid "<literal role=\"hg-ext\">bugzilla</literal>—integration with Bugzilla"
+msgid ""
+"<literal role=\"hg-ext\">bugzilla</literal>&emdash;integration with Bugzilla"
 msgstr "<literal role=\"hg-ext\">bugzilla</literal>—与 Bugzilla 的集成"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -11444,7 +11098,7 @@
 #: ../en/ch09-hook.xml:855
 msgid ""
 "It adds a comment to the bug that looks like this (you can configure the "
-"contents of the comment—see below):"
+"contents of the comment&emdash;see below):"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -11760,8 +11414,8 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1150
-#, fuzzy
-msgid "<literal role=\"hg-ext\">notify</literal>—send email notifications"
+msgid ""
+"<literal role=\"hg-ext\">notify</literal>&emdash;send email notifications"
 msgstr "<literal role=\"hg-ext\">notify</literal>—邮件通知"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12085,8 +11739,7 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
 #: ../en/ch09-hook.xml:1431
-#, fuzzy
-msgid "Where changes are going—remote repository URLs"
+msgid "Where changes are going&emdash;remote repository URLs"
 msgstr "修改集要到哪里—远程版本库的地址"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
@@ -12111,21 +11764,21 @@
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
 #: ../en/ch09-hook.xml:1449
 msgid ""
-"<literal>remote:ssh:1.2.3.4</literal>—remote ssh client, at the IP address "
-"<literal>1.2.3.4</literal>."
+"<literal>remote:ssh:1.2.3.4</literal>&emdash;remote ssh client, at the IP "
+"address <literal>1.2.3.4</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
 #: ../en/ch09-hook.xml:1454
 msgid ""
-"<literal>remote:http:1.2.3.4</literal>—remote http client, at the IP address "
-"<literal>1.2.3.4</literal>.  If the client is using SSL, this will be of the "
-"form <literal>remote:https:1.2.3.4</literal>."
+"<literal>remote:http:1.2.3.4</literal>&emdash;remote http client, at the IP "
+"address <literal>1.2.3.4</literal>.  If the client is using SSL, this will be "
+"of the form <literal>remote:https:1.2.3.4</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
 #: ../en/ch09-hook.xml:1461
-msgid "Empty—no information could be discovered about the remote client."
+msgid "Empty&emdash;no information could be discovered about the remote client."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
@@ -12135,9 +11788,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1473
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">changegroup</literal>—after remote changesets added"
+msgid ""
+"<literal role=\"hook\">changegroup</literal>&emdash;after remote changesets "
+"added"
 msgstr "<literal role=\"hook\">changegroup</literal>—增加远程修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12204,8 +11857,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1526
-#, fuzzy
-msgid "<literal role=\"hook\">commit</literal>—after a new changeset is created"
+msgid ""
+"<literal role=\"hook\">commit</literal>&emdash;after a new changeset is "
+"created"
 msgstr "<literal role=\"hook\">commit</literal>—创建新修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12244,9 +11898,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1559
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">incoming</literal>—after one remote changeset is added"
+msgid ""
+"<literal role=\"hook\">incoming</literal>&emdash;after one remote changeset "
+"is added"
 msgstr "<literal role=\"hook\">incoming</literal>—增加远程修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12285,9 +11939,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1605
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">outgoing</literal>—after changesets are propagated"
+msgid ""
+"<literal role=\"hook\">outgoing</literal>&emdash;after changesets are "
+"propagated"
 msgstr "<literal role=\"hook\">outgoing</literal>—传播修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12333,10 +11987,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1652
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">prechangegroup</literal>—before starting to add remote "
-"changesets"
+msgid ""
+"<literal role=\"hook\">prechangegroup</literal>&emdash;before starting to add "
+"remote changesets"
 msgstr "<literal role=\"hook\">prechangegroup</literal>—增加远程修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12374,9 +12027,8 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1698
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">precommit</literal>—before starting to commit a "
+msgid ""
+"<literal role=\"hook\">precommit</literal>&emdash;before starting to commit a "
 "changeset"
 msgstr "<literal role=\"hook\">precommit</literal>—提交修改集之前"
 
@@ -12427,10 +12079,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1738
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">preoutgoing</literal>—before starting to propagate "
-"changesets"
+msgid ""
+"<literal role=\"hook\">preoutgoing</literal>&emdash;before starting to "
+"propagate changesets"
 msgstr "<literal role=\"hook\">preoutgoing</literal>—传播修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12466,8 +12117,8 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1775
-#, fuzzy
-msgid "<literal role=\"hook\">pretag</literal>—before tagging a changeset"
+msgid ""
+"<literal role=\"hook\">pretag</literal>&emdash;before tagging a changeset"
 msgstr "<literal role=\"hook\">pretag</literal>—创建标签之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12516,21 +12167,20 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1815
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">pretxnchangegroup</literal>—before completing addition "
-"of remote changesets"
+msgid ""
+"<literal role=\"hook\">pretxnchangegroup</literal>&emdash;before completing "
+"addition of remote changesets"
 msgstr ""
 "<literal role=\"hook\">pretxnchangegroup</literal>—完成增加远程修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch09-hook.xml:1819
 msgid ""
-"This controlling hook is run before a transaction—that manages the addition "
-"of a group of new changesets from outside the repository—completes.  If the "
-"hook succeeds, the transaction completes, and all of the changesets become "
-"permanent within this repository.  If the hook fails, the transaction is "
-"rolled back, and the data for the changesets is erased."
+"This controlling hook is run before a transaction&emdash;that manages the "
+"addition of a group of new changesets from outside the repository&emdash;"
+"completes.  If the hook succeeds, the transaction completes, and all of the "
+"changesets become permanent within this repository.  If the hook fails, the "
+"transaction is rolled back, and the data for the changesets is erased."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12569,19 +12219,18 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1881
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">pretxncommit</literal>—before completing commit of new "
-"changeset"
+msgid ""
+"<literal role=\"hook\">pretxncommit</literal>&emdash;before completing commit "
+"of new changeset"
 msgstr "<literal role=\"hook\">pretxncommit</literal>—完成提交之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch09-hook.xml:1884
 msgid ""
-"This controlling hook is run before a transaction—that manages a new commit—"
-"completes.  If the hook succeeds, the transaction completes and the changeset "
-"becomes permanent within this repository.  If the hook fails, the transaction "
-"is rolled back, and the commit data is erased."
+"This controlling hook is run before a transaction&emdash;that manages a new "
+"commit&emdash;completes.  If the hook succeeds, the transaction completes and "
+"the changeset becomes permanent within this repository.  If the hook fails, "
+"the transaction is rolled back, and the commit data is erased."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12612,10 +12261,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1929
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">preupdate</literal>—before updating or merging working "
-"directory"
+msgid ""
+"<literal role=\"hook\">preupdate</literal>&emdash;before updating or merging "
+"working directory"
 msgstr "<literal role=\"hook\">preupdate</literal>—更新或合并工作目录之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12652,8 +12300,7 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1961
-#, fuzzy
-msgid "<literal role=\"hook\">tag</literal>—after tagging a changeset"
+msgid "<literal role=\"hook\">tag</literal>&emdash;after tagging a changeset"
 msgstr "<literal role=\"hook\">tag</literal>—创建标签之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12701,10 +12348,9 @@
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch09-hook.xml:1998
-#, fuzzy
-msgid ""
-"<literal role=\"hook\">update</literal>—after updating or merging working "
-"directory"
+msgid ""
+"<literal role=\"hook\">update</literal>&emdash;after updating or merging "
+"working directory"
 msgstr "<literal role=\"hook\">update</literal>—更新或合并工作目录之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
@@ -12783,9 +12429,9 @@
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch10-template.xml:26
 msgid ""
-"This is somewhat informative, but it takes up a lot of space—five lines of "
-"output per changeset.  The <literal>compact</literal> style reduces this to "
-"three lines, presented in a sparse manner."
+"This is somewhat informative, but it takes up a lot of space&emdash;five "
+"lines of output per changeset.  The <literal>compact</literal> style reduces "
+"this to three lines, presented in a sparse manner."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -13856,8 +13502,9 @@
 #: ../en/ch11-mq.xml:149
 msgid ""
 "A major reason that patches have persisted in the free software and open "
-"source world—in spite of the availability of increasingly capable revision "
-"control tools over the years—is the <emphasis>agility</emphasis> they offer."
+"source world&emdash;in spite of the availability of increasingly capable "
+"revision control tools over the years&emdash;is the <emphasis>agility</"
+"emphasis> they offer."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -13866,8 +13513,8 @@
 "Traditional revision control tools make a permanent, irreversible record of "
 "everything that you do.  While this has great value, it's also somewhat "
 "stifling.  If you want to perform a wild-eyed experiment, you have to be "
-"careful in how you go about it, or you risk leaving unneeded—or worse, "
-"misleading or destabilising—traces of your missteps and errors in the "
+"careful in how you go about it, or you risk leaving unneeded&emdash;or worse, "
+"misleading or destabilising&emdash;traces of your missteps and errors in the "
 "permanent revision record."
 msgstr ""
 
@@ -13878,23 +13525,23 @@
 "it much easier to isolate your work.  Your patches live on top of normal "
 "revision history, and you can make them disappear or reappear at will.  If "
 "you don't like a patch, you can drop it.  If a patch isn't quite as you want "
-"it to be, simply fix it—as many times as you need to, until you have refined "
-"it into the form you desire."
+"it to be, simply fix it&emdash;as many times as you need to, until you have "
+"refined it into the form you desire."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch11-mq.xml:171
 msgid ""
 "As an example, the integration of patches with revision control makes "
-"understanding patches and debugging their effects—and their interplay with "
-"the code they're based on—<emphasis>enormously</emphasis> easier. Since every "
-"applied patch has an associated changeset, you can give <command role=\"hg-cmd"
-"\">hg log</command> a file name to see which changesets and patches affected "
-"the file.  You can use the <command role=\"hg-cmd\">hg bisect</command> "
-"command to binary-search through all changesets and applied patches to see "
-"where a bug got introduced or fixed.  You can use the <command role=\"hg-cmd"
-"\">hg annotate</command> command to see which changeset or patch modified a "
-"particular line of a source file.  And so on."
+"understanding patches and debugging their effects&emdash;and their interplay "
+"with the code they're based on&emdash;<emphasis>enormously</emphasis> easier. "
+"Since every applied patch has an associated changeset, you can give <command "
+"role=\"hg-cmd\">hg log</command> a file name to see which changesets and "
+"patches affected the file.  You can use the <command role=\"hg-cmd\">hg "
+"bisect</command> command to binary-search through all changesets and applied "
+"patches to see where a bug got introduced or fixed.  You can use the <command "
+"role=\"hg-cmd\">hg annotate</command> command to see which changeset or patch "
+"modified a particular line of a source file.  And so on."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -14266,14 +13913,15 @@
 msgid ""
 "Here's an example that illustrates how you can use this ability. Let's say "
 "you're developing a new feature as two patches.  The first is a change to the "
-"core of your software, and the second—layered on top of the first—changes the "
-"user interface to use the code you just added to the core.  If you notice a "
-"bug in the core while you're working on the UI patch, it's easy to fix the "
-"core.  Simply <command role=\"hg-ext-mq\">qrefresh</command> the UI patch to "
-"save your in-progress changes, and <command role=\"hg-ext-mq\">qpop</command> "
-"down to the core patch.  Fix the core bug, <command role=\"hg-ext-mq"
-"\">qrefresh</command> the core patch, and <command role=\"hg-ext-mq\">qpush</"
-"command> back to the UI patch to continue where you left off."
+"core of your software, and the second&emdash;layered on top of the "
+"first&emdash;changes the user interface to use the code you just added to the "
+"core.  If you notice a bug in the core while you're working on the UI patch, "
+"it's easy to fix the core.  Simply <command role=\"hg-ext-mq\">qrefresh</"
+"command> the UI patch to save your in-progress changes, and <command role="
+"\"hg-ext-mq\">qpop</command> down to the core patch.  Fix the core bug, "
+"<command role=\"hg-ext-mq\">qrefresh</command> the core patch, and <command "
+"role=\"hg-ext-mq\">qpush</command> back to the UI patch to continue where you "
+"left off."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
@@ -14576,8 +14224,8 @@
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch11-mq.xml:731
 msgid ""
-"A large hunk might apply better—either entirely or in part&emdash;if it was "
-"broken up into smaller hunks."
+"A large hunk might apply better&emdash;either entirely or in part&emdash;if "
+"it was broken up into smaller hunks."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
@@ -15076,12 +14724,12 @@
 msgid ""
 "The <command>diffstat</command> command <citation>web:diffstat</citation> "
 "generates a histogram of the modifications made to each file in a patch.  It "
-"provides a good way to <quote>get a sense of</quote> a patch—which files it "
-"affects, and how much change it introduces to each file and as a whole.  (I "
-"find that it's a good idea to use <command>diffstat</command>'s <option role="
-"\"cmd-opt-diffstat\">-p</option> option as a matter of course, as otherwise "
-"it will try to do clever things with prefixes of file names that inevitably "
-"confuse at least me.)"
+"provides a good way to <quote>get a sense of</quote> a patch&emdash;which "
+"files it affects, and how much change it introduces to each file and as a "
+"whole.  (I find that it's a good idea to use <command>diffstat</command>'s "
+"<option role=\"cmd-opt-diffstat\">-p</option> option as a matter of course, "
+"as otherwise it will try to do clever things with prefixes of file names that "
+"inevitably confuse at least me.)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -15131,12 +14779,13 @@
 #: ../en/ch11-mq.xml:1160
 msgid ""
 "Be aware of what patch you're working on.  Use the <command role=\"hg-ext-mq"
-"\">qtop</command> command and skim over the text of your patches frequently—"
-"for example, using <command role=\"hg-cmd\">hg tip <option role=\"hg-opt-tip"
-"\">-p</option></command>)—to be sure of where you stand.  I have several "
-"times worked on and <command role=\"hg-ext-mq\">qrefresh</command>ed a patch "
-"other than the one I intended, and it's often tricky to migrate changes into "
-"the right patch after making them in the wrong one."
+"\">qtop</command> command and skim over the text of your patches "
+"frequently&emdash;for example, using <command role=\"hg-cmd\">hg tip <option "
+"role=\"hg-opt-tip\">-p</option></command>)&emdash;to be sure of where you "
+"stand.  I have several times worked on and <command role=\"hg-ext-mq"
+"\">qrefresh</command>ed a patch other than the one I intended, and it's often "
+"tricky to migrate changes into the right patch after making them in the wrong "
+"one."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
@@ -15966,7 +15615,7 @@
 msgstr ""
 
 #
-#. 	&example.hg-interdiff; 
+#. 	&example.hg-interdiff;
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch12-mq-collab.xml:466
 msgid ""