[gtkmm-documentation: 1/4] translate changes.




commit 0b084397e9224cd5a735864e942a43f23dc30b9d
Author: CCTV-1 <script tar gz gmail com>
Date:   Fri Jul 16 12:24:07 2021 +0800

    translate changes.

 docs/tutorial/zh_CN/zh_CN.po | 4175 +++++++++++++++++++++---------------------
 1 file changed, 2120 insertions(+), 2055 deletions(-)
---
diff --git a/docs/tutorial/zh_CN/zh_CN.po b/docs/tutorial/zh_CN/zh_CN.po
index 6b7d1f1..4a3e46d 100644
--- a/docs/tutorial/zh_CN/zh_CN.po
+++ b/docs/tutorial/zh_CN/zh_CN.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gtkmm-documentation master\n"
-"POT-Creation-Date: 2021-01-12 21:45+8000\n"
+"POT-Creation-Date: 2021-07-16 11:49+0800\n"
 "PO-Revision-Date: 2020-12-23 11:40+8000\n"
 "Last-Translator: XiangQun Luo <Script tar gz gmail com>\n"
 "Language-Team: Chinese (China) <i18n-zh googlegroups com>\n"
@@ -19,15 +19,15 @@ msgctxt "_"
 msgid "translator-credits"
 msgstr "译者积分"
 
-#: C/index-in.docbook:45
+#: index-in.docbook:46
 msgid "Programming with <application>gtkmm</application> 4"
 msgstr "<application>gtkmm</application>4 程序设计"
 
-#: C/index-in.docbook:48
+#: index-in.docbook:49
 msgid "<firstname>Murray</firstname> <surname>Cumming</surname>"
 msgstr "<firstname>Murray</firstname> <surname>Cumming</surname>"
 
-#: C/index-in.docbook:52
+#: index-in.docbook:53
 msgid ""
 "<firstname>Bernhard</firstname> <surname>Rieder</surname> <contrib>Chapter "
 "on \"Timeouts\".</contrib>"
@@ -35,7 +35,7 @@ msgstr ""
 "<firstname>Bernhard</firstname> <surname>Rieder</surname><contrib>编写"
 "\"Timeouts\"部分。</contrib>"
 
-#: C/index-in.docbook:57
+#: index-in.docbook:58
 msgid ""
 "<firstname>Jonathon</firstname> <surname>Jongsma</surname> <contrib>Chapter "
 "on \"Drawing with Cairo\".</contrib> <contrib>Chapter on \"Working with "
@@ -46,7 +46,7 @@ msgstr ""
 "罗绘图章节。</contrib><contrib>编写使用gtkmm源代码章节。</contrib><contrib>编"
 "写\"最近的文件\"。</contrib>"
 
-#: C/index-in.docbook:64
+#: index-in.docbook:65
 msgid ""
 "<firstname>Ole</firstname> <surname>Laursen</surname> <contrib>Parts of "
 "chapter on \"Internationalization\".</contrib>"
@@ -54,7 +54,7 @@ msgstr ""
 "<firstname>Ole</firstname> <surname>Laursen</surname> <contrib>编写\"国际化"
 "\"章节的一部分。</contrib>"
 
-#: C/index-in.docbook:69
+#: index-in.docbook:70
 msgid ""
 "<firstname>Marko</firstname> <surname>Anastasov</surname> <contrib>Chapter "
 "on \"Printing\".</contrib> <contrib>Parts of chapter on "
@@ -63,7 +63,7 @@ msgstr ""
 "<firstname>Marko</firstname> <surname>Anastasov</surname> <contrib>编写\"打印"
 "\"章节。</contrib> <contrib>编写\"国际化\"章节的一部分。</contrib>"
 
-#: C/index-in.docbook:75
+#: index-in.docbook:76
 msgid ""
 "<firstname>Daniel</firstname> <surname>Elstner</surname> <contrib>Section "
 "\"Build Structure\" of chapter on \"Wrapping C Libraries with gmmproc\".</"
@@ -72,7 +72,7 @@ msgstr ""
 "<firstname>Daniel</firstname> <surname>Elstner</surname>编写《使用 gmmproc 封"
 "装 C 库》〈构建结构〉章节。"
 
-#: C/index-in.docbook:81
+#: index-in.docbook:82
 msgid ""
 "<firstname>Chris</firstname> <surname>Vine</surname> <contrib>Chapter on "
 "\"Multi-threaded programs\".</contrib>"
@@ -80,7 +80,7 @@ msgstr ""
 "<firstname>Chris</firstname> <surname>Vine</surname><contrib>编写\"多线程编程"
 "\"章节。</contrib>"
 
-#: C/index-in.docbook:86
+#: index-in.docbook:87
 msgid ""
 "<firstname>David</firstname> <surname>King</surname> <contrib>Section on "
 "Gtk::Grid.</contrib>"
@@ -88,7 +88,7 @@ msgstr ""
 "<firstname>David</firstname> <surname>King</surname><contrib>编写Gtk::Grid部"
 "分。</contrib>"
 
-#: C/index-in.docbook:91
+#: index-in.docbook:92
 msgid ""
 "<firstname>Pedro</firstname> <surname>Ferreira</surname> <contrib>Chapter on "
 "Keyboard Events.</contrib>"
@@ -96,7 +96,7 @@ msgstr ""
 "<firstname>Pedro</firstname> <surname>Ferreira</surname><contrib>编写键盘事件"
 "章节。</contrib>"
 
-#: C/index-in.docbook:96
+#: index-in.docbook:97
 msgid ""
 "<firstname>Kjell</firstname> <surname>Ahlstedt</surname> <contrib>Update "
 "from gtkmm 3 to gtkmm 4.</contrib> <contrib>Chapter on \"Building "
@@ -105,7 +105,7 @@ msgstr ""
 "<firstname>Kjell</firstname> <surname>Ahlstedt</surname> <contrib>编写从gtkmm"
 "迁移到gtkmm4指南。</contrib> <contrib>编写\"构建应用\"章节。</contrib>"
 
-#: C/index-in.docbook:107
+#: index-in.docbook:108
 msgid ""
 "This book explains key concepts of the <application>gtkmm</application> C++ "
 "API for creating user interfaces. It also introduces the main user interface "
@@ -114,7 +114,7 @@ msgstr ""
 "本书说明了使用<application>gtkmm</application> C++ API 创建用户界面的重要概"
 "念,并且介绍了主要的用户界面元素(“widget”)。"
 
-#: C/index-in.docbook:112
+#: index-in.docbook:113
 msgid ""
 "<year>2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010</year> "
 "<holder>Murray Cumming</holder>"
@@ -122,7 +122,7 @@ msgstr ""
 "<year>2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010</year> "
 "<holder>Murray Cumming</holder>"
 
-#: C/index-in.docbook:118
+#: index-in.docbook:119
 msgid ""
 "Permission is granted to copy, distribute and/or modify this document under "
 "the terms of the GNU Free Documentation License, Version 1.2 or any later "
@@ -138,15 +138,15 @@ msgstr ""
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 来获得一份 "
 "GNU 自由文档协议。"
 
-#: C/index-in.docbook:130
+#: index-in.docbook:131
 msgid "Introduction"
 msgstr "序言"
 
-#: C/index-in.docbook:133
+#: index-in.docbook:134
 msgid "This book"
 msgstr "本书"
 
-#: C/index-in.docbook:135
+#: index-in.docbook:136
 msgid ""
 "This book explains key concepts of the <application>gtkmm</application> C++ "
 "API for creating user interfaces. It also introduces the main user interface "
@@ -159,13 +159,13 @@ msgstr ""
 "是并不会深入其细节。因此,如果需要完整的 API 信息,您应当顺着链接访问参考文"
 "档。"
 
-#: C/index-in.docbook:137
+#: index-in.docbook:138
 msgid ""
 "This book assumes a good understanding of C++, and how to create C++ "
 "programs."
 msgstr "本书假定读者拥有对 C++ 良好的理解,并且知道如何去创建一个 C++ 程序。"
 
-#: C/index-in.docbook:139
+#: index-in.docbook:140
 msgid ""
 "We would very much like to hear of any problems you have learning "
 "<application>gtkmm</application> with this document, and would appreciate "
@@ -176,7 +176,7 @@ msgstr ""
 "任何问题,并且感激对此作出的改进。请访问 <link linkend=\"chapter-contributing"
 "\">贡献</link> 节以获得进一步的信息。"
 
-#: C/index-in.docbook:145
+#: index-in.docbook:146
 msgid ""
 "This book describes <application>gtkmm</application> 4, but some sections "
 "have not been fully updated. There are paragraphs that describe "
@@ -189,11 +189,11 @@ msgstr ""
 "application>4的段落。不过显式的所有示例都与<application>gtkmm</application>4"
 "兼容。"
 
-#: C/index-in.docbook:154
+#: index-in.docbook:155
 msgid "gtkmm"
 msgstr "gtkmm"
 
-#: C/index-in.docbook:155
+#: index-in.docbook:156
 msgid ""
 "<application>gtkmm</application> is a C++ wrapper for <ulink url=\"http://";
 "www.gtk.org/\">GTK</ulink>, a library used to create graphical user "
@@ -206,7 +206,7 @@ msgstr ""
 "LGPL 协议,因此您可以使用 <application>gtkmm</application> 开发开放软件、自由"
 "软件,甚至商业非免费软件而不需支付任何版权费用。"
 
-#: C/index-in.docbook:163
+#: index-in.docbook:164
 msgid ""
 "<application>gtkmm</application> was originally named gtk-- because GTK was "
 "originally named GTK+ and had a + in the name. However, as -- is not easily "
@@ -217,11 +217,11 @@ msgstr ""
 "有了一个加号。但是,由于 -- 不容易被搜索引擎索引,所以项目名字就渐渐的变成了"
 "<application>gtkmm</application>,后来我们就一直使用这个名字。"
 
-#: C/index-in.docbook:168
+#: index-in.docbook:169
 msgid "Why use <application>gtkmm</application> instead of GTK?"
 msgstr "为什么要使用 <application>gtkmm</application> 而不是 GTK?"
 
-#: C/index-in.docbook:169
+#: index-in.docbook:170
 msgid ""
 "<application>gtkmm</application> allows you to write code using normal C++ "
 "techniques such as encapsulation, derivation, and polymorphism. As a C++ "
@@ -232,7 +232,7 @@ msgstr ""
 "装、继承和多态。作为一个 C++ 程序员,你可能已经意识到这会让代码更加清晰、更加"
 "良好的管理代码。"
 
-#: C/index-in.docbook:170
+#: index-in.docbook:171
 msgid ""
 "<application>gtkmm</application> is more type-safe, so the compiler can "
 "detect errors that would only be detected at run time when using C. This use "
@@ -243,7 +243,7 @@ msgstr ""
 "能在运行时才能检测出来的错误。这种使用特定类型的方法同样使得 API 更加清晰,因"
 "为你只需要通过看一下函数声明就可以知道应该使用什么类型了。"
 
-#: C/index-in.docbook:171
+#: index-in.docbook:172
 msgid ""
 "Inheritance can be used to derive new widgets. The derivation of new widgets "
 "in GTK C code is so complicated and error prone that almost no C coders do "
@@ -254,7 +254,7 @@ msgstr ""
 "且很容易出错,因此几乎没有 C 的程序员这么做。作为 C++ 开发人员,你知道继承是"
 "一个基本的面向对象技术。"
 
-#: C/index-in.docbook:172
+#: index-in.docbook:173
 msgid ""
 "Member instances can be used, simplifying memory management. All GTK C "
 "widgets are dealt with by use of pointers. As a C++ coder you know that "
@@ -263,7 +263,7 @@ msgstr ""
 "可以使用成员实例,简化了内存管理。所有的 GTK 的 C 部件都是使用指针进行操作"
 "的。作为 C++ 程序员,你知道指针应当尽量避免使用。"
 
-#: C/index-in.docbook:173
+#: index-in.docbook:174
 msgid ""
 "<application>gtkmm</application> involves less code compared to GTK, which "
 "uses prefixed function names and lots of cast macros."
@@ -271,11 +271,11 @@ msgstr ""
 "<application>gtkmm</application> 比 GTK 的代码更加简短,GTK 使用了大量带前缀"
 "的函数名以及大量的转型宏。"
 
-#: C/index-in.docbook:177
+#: index-in.docbook:178
 msgid "<application>gtkmm</application> compared to Qt"
 msgstr "<application>gtkmm</application> 对比 Qt"
 
-#: C/index-in.docbook:178
+#: index-in.docbook:179
 msgid ""
 "Trolltech's Qt is the closest competition to <application>gtkmm</"
 "application>, so it deserves discussion."
@@ -283,7 +283,7 @@ msgstr ""
 "Trolltech 公司的 Qt 是和 <application>gtkmm</application> 最相似的有竞争力的"
 "产品,所以应该对其进行一下讨论。"
 
-#: C/index-in.docbook:180
+#: index-in.docbook:181
 msgid ""
 "<application>gtkmm</application> developers tend to prefer "
 "<application>gtkmm</application> to Qt because <application>gtkmm</"
@@ -306,11 +306,11 @@ msgstr ""
 "而无需修改 C++ 语言。请看<ulink url=\"https://wiki.gnome.org/Projects/gtkmm/";
 "FAQ\">常见问题</ulink>以了解具体差异。"
 
-#: C/index-in.docbook:185
+#: index-in.docbook:186
 msgid "<application>gtkmm</application> is a wrapper"
 msgstr "<application>gtkmm</application> 是一个封装"
 
-#: C/index-in.docbook:186
+#: index-in.docbook:187
 msgid ""
 "<application>gtkmm</application> is not a native C++ toolkit, but a C++ "
 "wrapper of a C toolkit. This separation of interface and implementation has "
@@ -330,15 +330,15 @@ msgstr ""
 "行了一点点贡献。因此,GTK 可以从比某个语言特定的工具集更广泛的用户群中获得好"
 "处,有更多的实现、更多的开发人员、更多的测试人员以及更多的用户。"
 
-#: C/index-in.docbook:194
+#: index-in.docbook:195
 msgid "Installation"
 msgstr "安装"
 
-#: C/index-in.docbook:196
+#: index-in.docbook:197
 msgid "Dependencies"
 msgstr "依赖关系"
 
-#: C/index-in.docbook:197
+#: index-in.docbook:198
 msgid ""
 "Before attempting to install <application>gtkmm</"
 "application><application>-4.0</application>, you might first need to install "
@@ -347,65 +347,65 @@ msgstr ""
 "在试图安装 <application>gtkmm</application><application>-4.0</application>之"
 "前,你必须已经安装了这些包。"
 
-#: C/index-in.docbook:202
+#: index-in.docbook:203
 msgid "<application>sigc++-3.0</application>"
 msgstr "<application>sigc++-3.0</application>"
 
-#: C/index-in.docbook:203
+#: index-in.docbook:204
 msgid "<application>gtk4</application>"
 msgstr "<application>gtkmm4</application>"
 
-#: C/index-in.docbook:204
+#: index-in.docbook:205
 msgid "<application>glibmm-2.68</application>"
 msgstr "<application>glibmm-2.68</application>"
 
-#: C/index-in.docbook:205
+#: index-in.docbook:206
 msgid "<application>cairomm-1.16</application>"
 msgstr "<application>cairomm-1.16</application>"
 
-#: C/index-in.docbook:206
+#: index-in.docbook:207
 msgid "<application>pangomm-2.48</application>"
 msgstr "<application>pangomm-2.48</application>"
 
-#: C/index-in.docbook:208
+#: index-in.docbook:209
 msgid ""
 "These dependencies have their own dependencies, including the following "
 "applications and libraries:"
 msgstr "这些依赖有它们自己所依赖的软件包,包括下列应用程序和软件库:"
 
-#: C/index-in.docbook:213
+#: index-in.docbook:214
 msgid "<application>pkg-config</application>"
 msgstr "<application>pkg-config</application>"
 
-#: C/index-in.docbook:214
+#: index-in.docbook:215
 msgid "<application>glib-2.0</application>"
 msgstr "<application>glib-2.0</application>"
 
-#: C/index-in.docbook:215
+#: index-in.docbook:216
 msgid "<application>pango</application>"
 msgstr "<application>pango</application>"
 
-#: C/index-in.docbook:216
+#: index-in.docbook:217
 msgid "<application>cairo</application>"
 msgstr "<application>cairo</application>"
 
-#: C/index-in.docbook:217
+#: index-in.docbook:218
 msgid "<application>gdk-pixbuf-2.0</application>"
 msgstr "<application>gdk-pixbuf-2.0</application>"
 
-#: C/index-in.docbook:218
+#: index-in.docbook:219
 msgid "<application>graphene-1.0</application>"
 msgstr "<application>graphene-1.0</application>"
 
-#: C/index-in.docbook:223
+#: index-in.docbook:224
 msgid "Unix and Linux"
 msgstr "Unix 和 Linux"
 
-#: C/index-in.docbook:226
+#: index-in.docbook:227
 msgid "Prebuilt Packages"
 msgstr "预编译的包"
 
-#: C/index-in.docbook:228
+#: index-in.docbook:229
 msgid ""
 "Recent versions of <application>gtkmm</application> are packaged by nearly "
 "every major Linux distribution these days. So, if you use Linux, you can "
@@ -420,7 +420,7 @@ msgstr ""
 "们的软件库里面包含了 <application>gtkmm</application> 的发布版本有:Debian、"
 "Ubuntu、Red Hat、Fedora、Mandriva、SuSE 等等。"
 
-#: C/index-in.docbook:236
+#: index-in.docbook:237
 msgid ""
 "The names of the <application>gtkmm</application> packages vary from "
 "distribution to distribution (e.g. <application>libgtkmm-4.0-dev</"
@@ -435,7 +435,7 @@ msgstr ""
 "application>),因此,在你的发行版的软件包管理程序中查一下正确的名字,然后像其"
 "它软件包一样的安装它。"
 
-#: C/index-in.docbook:244
+#: index-in.docbook:245
 msgid ""
 "The package names will not change when new API/ABI-compatible versions of "
 "<application>gtkmm</application> are released. Otherwise they would not be "
@@ -448,11 +448,11 @@ msgstr ""
 "<application>libgtkmm-4.0-dev</application> 包中发现提供的实际上是 "
 "<application>gtkmm</application> 4.8 的话不要太惊讶。"
 
-#: C/index-in.docbook:254
+#: index-in.docbook:255
 msgid "Installing From Source"
 msgstr "从源代码安装"
 
-#: C/index-in.docbook:256
+#: index-in.docbook:257
 msgid ""
 "If your distribution does not provide a pre-built <application>gtkmm</"
 "application> package, or if you want to install a different version than the "
@@ -466,7 +466,7 @@ msgstr ""
 "<application>gtkmm</application>。可以从 <ulink url=\"https://download.gnome.";
 "org/sources/gtkmm/\"/> 中下载 <application>gtkmm</application> 的源代码。"
 
-#: C/index-in.docbook:262
+#: index-in.docbook:263
 msgid ""
 "After you've installed all of the dependencies, download the "
 "<application>gtkmm</application> source code, unpack it, and change to the "
@@ -479,7 +479,7 @@ msgstr ""
 "建。 参见你所下载的<application>gtkmm</application>源代码中的"
 "<filename>README</filename>。"
 
-#: C/index-in.docbook:269
+#: index-in.docbook:270
 msgid ""
 "Remember that on a Unix or Linux operating system, you will probably need to "
 "be <literal>root</literal> to install software. The <command>su</command> or "
@@ -490,7 +490,7 @@ msgstr ""
 "安装软件。<command>su</command>或者<command>sudo</command> 命令允许你输入 "
 "<literal>root</literal> 密码,并且临时拥有 <literal>root</literal> 权限。"
 
-#: C/index-in.docbook:276
+#: index-in.docbook:277
 msgid ""
 "The <filename>configure</filename> script or <command>meson</command> will "
 "check to make sure all of the required dependencies are already installed. "
@@ -500,7 +500,7 @@ msgstr ""
 "所有必须的依赖软件包都已经正确的安装了。如果你遗漏了某个依赖软件包的话,它会"
 "退出并提示错误信息。"
 
-#: C/index-in.docbook:287
+#: index-in.docbook:288
 #, no-wrap
 msgid ""
 "\n"
@@ -509,7 +509,7 @@ msgstr ""
 "\n"
 "# ./configure --prefix=/usr\n"
 
-#: C/index-in.docbook:281
+#: index-in.docbook:282
 msgid ""
 "By default, <application>gtkmm</application> if built with Autotools, will "
 "be installed under the <filename>/usr/local</filename> directory. On some "
@@ -522,7 +522,7 @@ msgstr ""
 "同的位置。比如,在 Red Hat Linux 系统中,你也许需要使用 <literal>--prefix</"
 "literal> 选项进行配置,例如:<_:screen-1/>"
 
-#: C/index-in.docbook:292
+#: index-in.docbook:293
 msgid ""
 "You should be very careful when installing to standard system prefixes such "
 "as <filename>/usr</filename>. Linux distributions install software packages "
@@ -536,7 +536,7 @@ msgstr ""
 "会破坏或与使用软件包管理器安装的软件冲突。理想情况下,你应当将从源代码安装的"
 "软件都安装到一个独立位置。"
 
-#: C/index-in.docbook:301
+#: index-in.docbook:302
 msgid ""
 "If you want to help develop <application>gtkmm</application> or experiment "
 "with new features, you can also install <application>gtkmm</application> "
@@ -550,11 +550,11 @@ msgstr ""
 "做,但是如果你对帮助 <application>gtkmm</application> 开发感兴趣,请看附录:"
 "<link linkend=\"chapter-working-with-source\">使用 gtkmm 源代码</link>。"
 
-#: C/index-in.docbook:312
+#: index-in.docbook:313
 msgid "Microsoft Windows"
 msgstr "Microsoft Windows"
 
-#: C/index-in.docbook:313
+#: index-in.docbook:314
 msgid ""
 "GTK and <application>gtkmm</application> were designed to work well with "
 "Microsoft Windows, and the developers encourage its use on the win32 "
@@ -572,11 +572,11 @@ msgstr ""
 "installation\"><application>gtkmm</application>和Win32</link>以得到关于"
 "Windows相关的安装方法和注意事项。"
 
-#: C/index-in.docbook:324
+#: index-in.docbook:325
 msgid "Basics"
 msgstr "基础"
 
-#: C/index-in.docbook:326
+#: index-in.docbook:327
 msgid ""
 "This chapter will introduce some of the most important aspects of "
 "<application>gtkmm</application> coding. These will be demonstrated with "
@@ -587,7 +587,7 @@ msgstr ""
 "一些可以运行的示例代码来演示。然而,这仅仅是一种尝试,你还需要继续看其它章"
 "节,以得到更实质性的信息。"
 
-#: C/index-in.docbook:329
+#: index-in.docbook:330
 msgid ""
 "Your existing knowledge of C++ will help you with <application>gtkmm</"
 "application> as it would with any library. Unless we state otherwise, you "
@@ -600,11 +600,11 @@ msgstr ""
 "application> 类会像任何其它 C++ 类一样,并且你可以期待在 <application>gtkmm</"
 "application> 类上使用你现有的知识。"
 
-#: C/index-in.docbook:334 C/index-in.docbook:3324
+#: index-in.docbook:335 index-in.docbook:3343
 msgid "Simple Example"
 msgstr "简单的例子"
 
-#: C/index-in.docbook:336
+#: index-in.docbook:337
 msgid ""
 "To begin our introduction to <application>gtkmm</application>, we'll start "
 "with the simplest program possible. This program will create an empty 200 x "
@@ -613,7 +613,7 @@ msgstr ""
 "在开始介绍 <application>gtkmm</application> 之前,我们将以一个尽可能简单的程"
 "序开始。这个程序创建一个 200 x 200 像素大小的空窗口。"
 
-#: C/index-in.docbook:341
+#: index-in.docbook:342
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/base\">Source Code</ulink>"
@@ -621,16 +621,16 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/base\">源代码</ulink>"
 
-#: C/index-in.docbook:343
-msgid "We will now explain each line of the example"
-msgstr "我们会逐行讲解这个例子"
+#: index-in.docbook:344
+msgid "We will now explain each part of the example"
+msgstr "我们将会对这个例子的每个部分都进行讲解"
 
-#: C/index-in.docbook:344
+#: index-in.docbook:345
 #, no-wrap
 msgid "#include &lt;gtkmm.h&gt;"
 msgstr "#include &lt;gtkmm.h&gt;"
 
-#: C/index-in.docbook:345
+#: index-in.docbook:346
 msgid ""
 "All <application>gtkmm</application> programs must include certain "
 "<application>gtkmm</application> headers; <literal>gtkmm.h</literal> "
@@ -643,84 +643,132 @@ msgstr ""
 "有 <application>gtkmm</application> 的内容。通常来说,这并不是一个好主意,因"
 "为它包括了一兆左右的头文件。当然,对于这个简单的程序,这就够了。"
 
-#: C/index-in.docbook:355
+#: index-in.docbook:353
+msgid "The next part of the program:"
+msgstr "这个程序的下一部分:"
+
+#: index-in.docbook:354
+#, no-wrap
+msgid ""
+"class MyWindow : public Gtk::Window\n"
+"{\n"
+"public:\n"
+"  MyWindow();\n"
+"};\n"
+"\n"
+"MyWindow::MyWindow()\n"
+"{\n"
+"  set_title(\"Basic application\");\n"
+"  set_default_size(200, 200);\n"
+"}"
+msgstr ""
+"class MyWindow : public Gtk::Window\n"
+"{\n"
+"public:\n"
+"  MyWindow();\n"
+"};\n"
+"\n"
+"MyWindow::MyWindow()\n"
+"{\n"
+"  set_title(\"Basic application\");\n"
+"  set_default_size(200, 200);\n"
+"}"
+
+#: index-in.docbook:365
+msgid ""
+"defines the <classname>MyWindow</classname> class. Its default constructor "
+"sets the window's title and default (initial) size."
+msgstr ""
+"定义<classname>MyWindow</classname>类。这个类的构造函数设置了窗口标题和窗口的"
+"初始默认尺寸。"
+
+#: index-in.docbook:370
+msgid "The <function>main()</function> function's first statement:"
+msgstr "<function>main()</function>函数的第一条语句:"
+
+#: index-in.docbook:371
 #, no-wrap
 msgid "auto app = Gtk::Application::create(\"org.gtkmm.examples.base\");"
 msgstr "auto app = Gtk::Application::create(\"org.gtkmm.examples.base\");"
 
-#: C/index-in.docbook:352
+#: index-in.docbook:372
 msgid ""
-"The next statement: <_:programlisting-1/> creates a <classname>Gtk::"
-"Application</classname> object, stored in a <classname>Glib::RefPtr</"
-"classname> smartpointer. This is needed in all <application>gtkmm</"
-"application> applications. The <methodname>create()</methodname> method for "
-"this object initializes <application>gtkmm</application>."
+"creates a <classname>Gtk::Application</classname> object, stored in a "
+"<classname>Glib::RefPtr</classname> smartpointer. This is needed in all "
+"<application>gtkmm</application> applications. The <methodname>create()</"
+"methodname> method for this object initializes <application>gtkmm</"
+"application>."
 msgstr ""
-"下一条语句: <_:programlisting-1/>创建一个<classname>Gtk::Application</"
+"<_:programlisting-1/>创建一个<classname>Gtk::Application</"
 "classname>对象,将其储存在一个<classname>Glib::RefPtr</classname>智能指针中。"
 "所有的<application>gtkmm</application>应用都需要如此做。该对象的"
 "<methodname>create()</methodname>方法将初始化<application>gtkmm</"
 "application>。"
 
-#: C/index-in.docbook:361
+#: index-in.docbook:377
 msgid ""
-"The next two lines of code create a window and set its default (initial) "
-"size:"
-msgstr "接下来的两行代码创建一个窗口并设置其的初始大小:"
-
-#: C/index-in.docbook:364
-#, no-wrap
-msgid ""
-"Gtk::Window window;\n"
-"window.set_default_size(200, 200);"
-msgstr ""
-"Gtk::Window window;\n"
-"window.set_default_size(200, 200);"
-
-#: C/index-in.docbook:366
-msgid ""
-"The last line shows the window and enters the <application>gtkmm</"
+"The last line creates and shows a window and enters the <application>gtkmm</"
 "application> main processing loop, which will finish when the window is "
 "closed. Your <function>main()</function> function will then return with an "
 "appropriate success or error code. The <parameter>argc</parameter> and "
 "<parameter>argv</parameter> arguments, passed to your application on the "
-"command line, can be checked when <methodname>run()</methodname> is called, "
-"but this simple application does not use those arguments."
+"command line, can be checked when <methodname>make_window_and_run()</"
+"methodname> is called, but this simple application does not use those "
+"arguments."
 msgstr ""
 "最后一行显示窗口并进入<application>gtkmm</application>主循环,当窗口被关闭。"
-"你的<function>main()</function>函数将会返回成功或者适当的错误码。"
+"你的<function>main()</function>函数将会返回成功或者适当的错误码。<parameter>"
+"argc</parameter>和<parameter>argv</parameter>参数会将命令行传递给你的应用程序"
+",可以在<methodname>make_window_and_run()</methodname>被调用时对其进行检查,"
+"不过这个简单的应用程序并不会如此做。"
 
-#: C/index-in.docbook:373
+#: index-in.docbook:383
 #, no-wrap
-msgid "return app-&gt;run(window, argc, argv);"
-msgstr "return app-&gt;run(window, argc, argv);"
+msgid "return app-&gt;make_window_and_run&lt;MyWindow&gt;(argc, argv);"
+msgstr "return app-&gt;make_window_and_run&lt;MyWindow&gt;(argc, argv);"
+
+#: index-in.docbook:385
+msgid ""
+"After putting the source code in <literal>simple.cc</literal> you can "
+"compile the above program with <application>gcc</application> using:"
+msgstr ""
+"将源代码放入<literal>simple.cc</literal>后你可以使用以下<application>"
+"gcc</application>命令编译上述程序:"
 
-#: C/index-in.docbook:378
+#: index-in.docbook:389
 #, no-wrap
-msgid "g++ simple.cc -o simple `pkg-config gtkmm-4.0 --cflags --libs`"
-msgstr "g++ simple.cc -o simple `pkg-config gtkmm-4.0 --cflags --libs`"
+msgid "g++ simple.cc -o simple `pkg-config --cflags --libs gtkmm-4.0` -std=c++17"
+msgstr "g++ simple.cc -o simple `pkg-config --cflags --libs gtkmm-4.0` -std=c++17"
 
-#: C/index-in.docbook:375
+#: index-in.docbook:390
 msgid ""
-"After putting the source code in <literal>simple.cc</literal> you can "
-"compile the above program with <application>gcc</application> using: <_:"
-"programlisting-1/> Note that you must surround the <literal>pkg-config</"
-"literal> invocation with backquotes. Backquotes cause the shell to execute "
-"the command inside them, and to use the command's output as part of the "
-"command line. Note also that <literal>simple.cc</literal> must come before "
-"the <literal>pkg-config</literal> invocation on the command line."
+"Note that you must surround the <literal>pkg-config</literal> invocation "
+"with backquotes. Backquotes cause the shell to execute the command inside "
+"them, and to use the command's output as part of the command line. Note also "
+"that <literal>simple.cc</literal> must come before the <literal>pkg-config</"
+"literal> invocation on the command line. <literal>-std=c++17</literal> is "
+"necessary only if your compiler is not C++17 compliant by default."
 msgstr ""
 "将源代码保存到 <literal>simple.cc</literal> 后,你可以使用 gcc 编译上面的程"
 "序:<_:programlisting-1/> 注意,你必须将 <literal>pkg-config</literal> 的调用"
 "包含在一对反单引号中。反单引号会导致其内的命令由 shell 执行,并且将命令的输出"
 "做为该命令行的一部分来使用。另外请注意,在命令行中<literal>simple.cc</"
-"literal>必须位于<literal>pkg-config</literal>调用之前。"
+"literal>必须位于<literal>pkg-config</literal>调用之前。<literal>-std=c++17</l“
+”iteral>只在你的编译器默认不启用C++17标准的时候才需要。"
 
-#: C/index-in.docbook:388
+#: index-in.docbook:401
 msgid "Headers and Linking"
 msgstr "头文件和链接"
 
-#: C/index-in.docbook:389
+#: index-in.docbook:403
+msgid ""
+"This section describes building with Autotools. The newer <ulink url="
+"\"https://mesonbuild.com/\";>Meson build system</ulink> is a good alternative."
+msgstr ""
+"本小节介绍了如何使用Autotools进行构建。而较新的<ulink url=\"https://mesonbuil";
+"d.com/\">Meson构建系统</ulink>是一个不错的替代选项。"
+
+#: index-in.docbook:409
 msgid ""
 "Although we have shown the compilation command for the simple example, you "
 "really should use the automake and autoconf tools, as described in "
@@ -736,7 +784,7 @@ msgstr ""
 "application> 包内,同时附有适当的编译构建的文件,所以我们以后不会再给出任何编"
 "译命令。你只需要找到恰当的目录然后键入 <literal>make</literal>。"
 
-#: C/index-in.docbook:392
+#: index-in.docbook:412
 msgid ""
 "To simplify compilation, we use <literal>pkg-config</literal>, which is "
 "present in all (properly installed) <application>gtkmm</application> "
@@ -756,12 +804,12 @@ msgstr ""
 "一个需要编译器去链接的库列表和一个用于寻找它们的目录列表。试着在你的命令行提"
 "示符下运行它,看看在你的系统上会有什么样的结果。"
 
-#: C/index-in.docbook:405
+#: index-in.docbook:425
 #, no-wrap
 msgid "PKG_CHECK_MODULES([MYAPP], [gtkmm-4.0 &gt;= 4.8.0])"
 msgstr "PKG_CHECK_MODULES([MYAPP], [gtkmm-4.0 &gt;= 4.8.0])"
 
-#: C/index-in.docbook:402
+#: index-in.docbook:422
 msgid ""
 "However, this is even simpler when using the <function>PKG_CHECK_MODULES()</"
 "function> macro in a standard configure.ac file with autoconf and automake. "
@@ -773,7 +821,7 @@ msgstr ""
 "programlisting-1/> 这将会检查是否存在 gtkmm,并且定义了可以在你的 Makefile."
 "am 文件中使用的 MYAPP_LIBS 和 MYAPP_CFLAGS 变量。"
 
-#: C/index-in.docbook:408
+#: index-in.docbook:428
 msgid ""
 "gtkmm-4.0 is the name of the current stable API. There are older APIs called "
 "gtkmm-2.4 and gtkmm-3.0 which install in parallel when they are available. "
@@ -790,14 +838,14 @@ msgstr ""
 "持兼容。理论上,将来可以有 gtkmm-5.0 API 与现在的 gtkmm-4.0 同时安装到系统,"
 "而现有应用程序不会受到影响。"
 
-#: C/index-in.docbook:415
+#: index-in.docbook:435
 msgid ""
 "Note that if you mention extra modules in addition to gtkmm-4.0, they should "
 "be separated by spaces, not commas."
 msgstr ""
 "注意,如果你提到了除 gtkmm-4.0 之外的模块,它们需要以空格分开,而不是逗号。"
 
-#: C/index-in.docbook:418
+#: index-in.docbook:438
 msgid ""
 "The GNU site has more information about <ulink url=\"https://www.gnu.org/";
 "software/autoconf/\">autoconf</ulink> and <ulink url=\"https://www.gnu.org/";
@@ -807,7 +855,7 @@ msgstr ""
 "\">autoconf</ulink>和<ulink url=\"https://www.gnu.org/software/automake/";
 "\">automake</ulink>的相关信息。"
 
-#: C/index-in.docbook:421
+#: index-in.docbook:441
 msgid ""
 "If you start by experimenting with a small application that you plan to use "
 "just for yourself, it's easier to start with a Makefile similar to the "
@@ -818,11 +866,11 @@ msgstr ""
 "building-applications\">构建应用程序</link>章节的<filename>Makefile.example</"
 "filename>文件从MakeFile开始比较容易。"
 
-#: C/index-in.docbook:429 C/index-in.docbook:5858
+#: index-in.docbook:449 index-in.docbook:5877
 msgid "Widgets"
 msgstr "部件"
 
-#: C/index-in.docbook:430
+#: index-in.docbook:450
 msgid ""
 "<application>gtkmm</application> applications consist of windows containing "
 "widgets, such as buttons and text boxes. In some other systems, widgets are "
@@ -835,7 +883,7 @@ msgstr ""
 "的每个部件,在你的代码里就会有一个对应的 C++ 对象。所以当你想控制部件行为的时"
 "候,只需要调用这个部件对象的相应方法即可。"
 
-#: C/index-in.docbook:432
+#: index-in.docbook:452
 #, no-wrap
 msgid ""
 "m_box.append(m_Button1);\n"
@@ -844,12 +892,12 @@ msgstr ""
 "m_box.append(m_Button1);\n"
 "m_box.append(m_Button2);"
 
-#: C/index-in.docbook:435
+#: index-in.docbook:455
 #, no-wrap
 msgid "m_frame.set_child(m_box);"
 msgstr "m_frame.set_child(m_box);"
 
-#: C/index-in.docbook:431
+#: index-in.docbook:451
 msgid ""
 "Widgets are arranged inside container widgets such as frames and notebooks, "
 "in a hierarchy of widgets within widgets. Some of these container widgets, "
@@ -869,7 +917,7 @@ msgstr ""
 "<classname>Gtk::Box</classname> 添加到一个 <classname>Gtk::Frame</classname> "
 "中,它包含一个可视的边框和标题:<_:programlisting-2/>"
 
-#: C/index-in.docbook:437
+#: index-in.docbook:457
 msgid ""
 "Most of the chapters in this book deal with specific widgets. See the <link "
 "linkend=\"chapter-container-widgets\">Container Widgets</link> section for "
@@ -878,7 +926,7 @@ msgstr ""
 "本书中的大部分章节都是讲解特定的部件。要得到更多关于添加部件到容器部件的信"
 "息,请看 <link linkend=\"chapter-container-widgets\">容器部件</link> 这一章。"
 
-#: C/index-in.docbook:441
+#: index-in.docbook:461
 msgid ""
 "Although you can specify the layout and appearance of windows and widgets "
 "with C++ code, you will probably find it more convenient to design your user "
@@ -891,7 +939,7 @@ msgstr ""
 "载界面是更方便。请参考 <link linkend=\"chapter-builder\">Glade 与 Gtk::"
 "Builder</link> 这一章。"
 
-#: C/index-in.docbook:444
+#: index-in.docbook:464
 msgid ""
 "Although <application>gtkmm</application> widget instances have lifetimes "
 "and scopes just like those of other C++ classes, <application>gtkmm</"
@@ -912,12 +960,12 @@ msgstr ""
 "时它将被一并删除。如果你需要了解更多关于 <application>gtkmm</application> 内"
 "存管理技术的话,请看 <link linkend=\"chapter-memory\">内存管理</link> 章节。"
 
-#: C/index-in.docbook:458 C/index-in.docbook:4696 C/index-in.docbook:4940
-#: C/index-in.docbook:8065
+#: index-in.docbook:478 index-in.docbook:4715 index-in.docbook:4959
+#: index-in.docbook:8084
 msgid "Signals"
 msgstr "信号"
 
-#: C/index-in.docbook:460
+#: index-in.docbook:480
 msgid ""
 "<application>gtkmm</application>, like most GUI toolkits, is <emphasis>event-"
 "driven</emphasis>. When an event occurs, such as the press of a mouse "
@@ -932,7 +980,7 @@ msgstr ""
 "为了使这个按钮点击产生一个动作,我们可以设置一个<emphasis>信号处理函数"
 "(signal handler)</emphasis>来捕捉这个“clicked”信号。"
 
-#: C/index-in.docbook:467
+#: index-in.docbook:487
 msgid ""
 "<application>gtkmm</application> uses the libsigc++ library to implement "
 "signals. Here is an example line of code that connects a Gtk::Button's "
@@ -942,7 +990,7 @@ msgstr ""
 "演示怎样把 Gtk::Button 的“clicked” 信号连接到命名为“on_button_clicked”的信号"
 "处理函数上:"
 
-#: C/index-in.docbook:469
+#: index-in.docbook:489
 #, no-wrap
 msgid ""
 "m_button1.signal_clicked().connect( sigc::mem_fun(*this,\n"
@@ -951,7 +999,7 @@ msgstr ""
 "m_button1.signal_clicked().connect( sigc::mem_fun(*this,\n"
 "  &amp;HelloWorld::on_button_clicked) );"
 
-#: C/index-in.docbook:472
+#: index-in.docbook:492
 msgid ""
 "For more detailed information about signals, see the <link linkend=\"chapter-"
 "signals\">appendix</link>."
@@ -959,7 +1007,7 @@ msgstr ""
 "要得到更多关于信号的信息,请参考<link linkend=\"chapter-signals\">附录</"
 "link>。"
 
-#: C/index-in.docbook:473
+#: index-in.docbook:493
 msgid ""
 "For information about implementing your own signals rather than just "
 "connecting to the existing <application>gtkmm</application> signals, see the "
@@ -969,11 +1017,11 @@ msgstr ""
 "application> 信号,请参考 <link linkend=\"chapter-custom-signals\">附录</"
 "link>。"
 
-#: C/index-in.docbook:479
+#: index-in.docbook:499
 msgid "Glib::ustring"
 msgstr "Glib::ustring"
 
-#: C/index-in.docbook:480
+#: index-in.docbook:500
 msgid ""
 "You might be surprised to learn that <application>gtkmm</application> "
 "doesn't use <classname>std::string</classname> in its interfaces. Instead it "
@@ -990,7 +1038,7 @@ msgstr ""
 "string</classname>来使用,并忽略本节后面的内容。但是如果你希望在你的应用程序"
 "中使用英语以外的语言的话,那么请继续读下去。"
 
-#: C/index-in.docbook:481
+#: index-in.docbook:501
 msgid ""
 "std::string uses 8 bits per character, but 8 bits aren't enough to encode "
 "languages such as Arabic, Chinese, and Japanese. Although the encodings for "
@@ -1008,7 +1056,7 @@ msgstr ""
 "ustring 所包装的东西。它提供了和 std::string 几乎相同的接口,以及和 std::"
 "string 的自动类型转换的功能。"
 
-#: C/index-in.docbook:486
+#: index-in.docbook:506
 msgid ""
 "One of the benefits of UTF-8 is that you don't need to use it unless you "
 "want to, so you don't need to retrofit all of your code at once. "
@@ -1024,7 +1072,7 @@ msgstr ""
 "还会崩溃。那时,你所需要做的就是开始使用 <classname>Glib::ustring</"
 "classname> 来取而代之。"
 
-#: C/index-in.docbook:487
+#: index-in.docbook:507
 msgid ""
 "Note that UTF-8 isn't compatible with 8-bit encodings like ISO-8859-1. For "
 "instance, German umlauts are not in the ASCII range and need more than 1 "
@@ -1037,7 +1085,7 @@ msgstr ""
 "如果你的代码中包含8位的字符串文字,你需要把它们转变成 UTF-8 编码 (比如,巴伐"
 "利亚的问候语“Grüß Gott”可能会显示成“Gr\\xC3\\xBC\\xC3\\x9F Gott”)。"
 
-#: C/index-in.docbook:488
+#: index-in.docbook:508
 msgid ""
 "You should avoid C-style pointer arithmetic, and functions such as strlen(). "
 "In UTF-8, each character might need anywhere from 1 to 6 bytes, so it's not "
@@ -1052,7 +1100,7 @@ msgstr ""
 "可以从字符的层面上考虑使用 Glib::ustring::substr() 这样的函数,而不用再去考虑"
 "字节这样的细节了。"
 
-#: C/index-in.docbook:490
+#: index-in.docbook:510
 msgid ""
 "Unlike the Windows UCS-2 Unicode solution, this does not require any special "
 "compiler options to process string literals, and it does not result in "
@@ -1062,7 +1110,7 @@ msgstr ""
 "这样字符串,也不会导致为 Unicode 编译的可执行文件或库与含为 ASCII 的不兼容之"
 "类的问题。"
 
-#: C/index-in.docbook:492
+#: index-in.docbook:512
 msgid ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.";
 "html\">Reference</ulink>"
@@ -1070,7 +1118,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:494
+#: index-in.docbook:514
 msgid ""
 "See the <link linkend=\"chapter-internationalization\">Internationalization</"
 "link> section for information about providing the UTF-8 string literals."
@@ -1078,11 +1126,11 @@ msgstr ""
 "要得到更多关于 UTF-8 字符的信息,请参考<link linkend=\"chapter-"
 "internationalization\">国际化</link>这一节。"
 
-#: C/index-in.docbook:499
+#: index-in.docbook:519
 msgid "Mixing C and C++ APIs"
 msgstr "混合使用 C 和 C++ API"
 
-#: C/index-in.docbook:500
+#: index-in.docbook:520
 msgid ""
 "You can use C APIs which do not yet have convenient C++ interfaces. It is "
 "generally not a problem to use C APIs from C++, and <application>gtkmm</"
@@ -1096,7 +1144,7 @@ msgstr ""
 "一个简单的方式来从一个 C 对象创建一个 C++ 封装的对象,当然,这个 C API 是需要"
 "基于 <classname>GObject</classname> 系统的。"
 
-#: C/index-in.docbook:506
+#: index-in.docbook:526
 msgid ""
 "To use a <application>gtkmm</application> instance with a C function that "
 "requires a C <classname>GObject</classname> instance, use the C++ instance’s "
@@ -1107,7 +1155,7 @@ msgstr ""
 "<classname>GObject</classname> 实例,使用C++的<function>gobj()</function>接口"
 "函数可以得到一个底层 GObject 实例的指针。例如:"
 
-#: C/index-in.docbook:511
+#: index-in.docbook:531
 #, no-wrap
 msgid ""
 "\n"
@@ -1118,7 +1166,7 @@ msgstr ""
 "Gtk::Button button(\"example\");\n"
 "gtk_button_do_something_that_gtkmm_cannot(button.gobj());\n"
 
-#: C/index-in.docbook:522
+#: index-in.docbook:542
 #, no-wrap
 msgid ""
 "\n"
@@ -1131,19 +1179,19 @@ msgstr ""
 "Gtk::Button* button = Glib::wrap(cbutton);\n"
 "button-&gt;set_label(\"Now I speak C++ too!\");\n"
 
-#: C/index-in.docbook:529
+#: index-in.docbook:549
 msgid ""
 "it's a widget or other class that inherits from <classname>Gtk::Object</"
 "classname>, and"
 msgstr ""
 "它是一个部件或者是继承自<classname>Gtk::Object</classname>的其他类,并且"
 
-#: C/index-in.docbook:530
+#: index-in.docbook:550
 msgid ""
 "the C instance has a floating reference when the wrapper is created, and"
 msgstr "当封装被创建的时候C示例拥有一个浮动引用,并且"
 
-#: C/index-in.docbook:531
+#: index-in.docbook:551
 msgid ""
 "<function>Gtk::manage()</function> has not been called on it (which includes "
 "if it was created with <function>Gtk::make_managed()</function>), or"
@@ -1151,15 +1199,14 @@ msgstr ""
 "并未在其上调用<function>Gtk::manage()</function>(包括使用<function>Gtk::"
 "make_managed()</function>创建的) ,或者"
 
-#: C/index-in.docbook:532
+#: index-in.docbook:552
 msgid ""
 "<function>Gtk::manage()</function> was called on it, but it was never added "
-"to, or was later removed from, its parent."
+"to a parent."
 msgstr ""
-"在其上调用了<function>Gtk::manage()</function>,但是从未将其加入到父项中,也"
-"从未将其从父项中删除。"
+"在其上调用了<function>Gtk::manage()</function>,但是从未将其加入到父项中。"
 
-#: C/index-in.docbook:516
+#: index-in.docbook:536
 msgid ""
 "To obtain a <application>gtkmm</application> instance from a C "
 "<classname>GObject</classname> instance, use one of the many overloaded "
@@ -1178,7 +1225,7 @@ msgstr ""
 "itemizedlist-2/> <function>Glib::wrap()</function>将C和C++示例相互绑定,则应"
 "明确删除C++包装器。请不要在C示例死亡前删除C++实例。"
 
-#: C/index-in.docbook:537
+#: index-in.docbook:557
 msgid ""
 "In all other cases the C++ instance is automatically deleted when the last "
 "reference to the C instance is dropped. This includes all <function>Glib::"
@@ -1189,11 +1236,11 @@ msgstr ""
 "括所有的<function>Glib::wrap()</function>所返回的<classname>Glib::RefPtr</"
 "classname>。"
 
-#: C/index-in.docbook:544
+#: index-in.docbook:564
 msgid "Hello World in <application>gtkmm</application>"
 msgstr "用 <application>gtkmm</application> 写 Hello World"
 
-#: C/index-in.docbook:546
+#: index-in.docbook:566
 msgid ""
 "We've now learned enough to look at a real example. In accordance with an "
 "ancient tradition of computer science, we now introduce Hello World, a la "
@@ -1202,7 +1249,7 @@ msgstr ""
 "目前我们已经可以自己所学的知识来写一个真正的程序了。根据计算机科学的传统,我"
 "们现在以 <application>gtkmm</application> 的方式来介绍 Hello World 程序:"
 
-#: C/index-in.docbook:551
+#: index-in.docbook:571
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/helloworld\">Source Code</ulink>"
@@ -1210,17 +1257,17 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/helloworld\">源代码</ulink>"
 
-#: C/index-in.docbook:553
+#: index-in.docbook:573
 msgid ""
 "Try to compile and run it before going on. You should see something like "
 "this:"
 msgstr "在继续讲解之前,可以尝试着编译并运行这个程序,你会看到这样的结果:"
 
-#: C/index-in.docbook:558
+#: index-in.docbook:578
 msgid "Hello World"
 msgstr "Hello World"
 
-#: C/index-in.docbook:564
+#: index-in.docbook:584
 msgid ""
 "Pretty thrilling, eh? Let's examine the code. First, the "
 "<classname>HelloWorld</classname> class:"
@@ -1228,7 +1275,7 @@ msgstr ""
 "真让人激动,不是吗?让我们回过头来看一下代码。首先看一下 "
 "<classname>HelloWorld</classname> 类:"
 
-#: C/index-in.docbook:569
+#: index-in.docbook:589
 #, no-wrap
 msgid ""
 "class HelloWorld : public Gtk::Window\n"
@@ -1259,7 +1306,7 @@ msgstr ""
 "  Gtk::Button m_button;\n"
 "};"
 
-#: C/index-in.docbook:583
+#: index-in.docbook:603
 msgid ""
 "This class implements the \"Hello World\" window. It's derived from "
 "<classname>Gtk::Window</classname>, and has a single <classname>Gtk::Button</"
@@ -1271,7 +1318,7 @@ msgstr ""
 "并且只有一个 <classname>Gtk::Button</classname> 成员。我们已经使用构造函数为"
 "该窗口完成了所有的初始化工作,包括挂接消息。在这,已经去掉注释的代码:"
 
-#: C/index-in.docbook:592
+#: index-in.docbook:612
 #, no-wrap
 msgid ""
 "HelloWorld::HelloWorld()\n"
@@ -1292,7 +1339,7 @@ msgstr ""
 "  set_child(m_button);\n"
 "}"
 
-#: C/index-in.docbook:601
+#: index-in.docbook:621
 msgid ""
 "Notice that we've used an initialiser statement to give the "
 "<literal>m_button</literal> object the label \"Hello World\"."
@@ -1300,7 +1347,7 @@ msgstr ""
 "注意,我们使用初始化列表的方式给 <literal>m_button</literal> 对象添加了一"
 "个“Hello World”的标签。"
 
-#: C/index-in.docbook:606
+#: index-in.docbook:626
 msgid ""
 "Next we call the Button's <methodname>set_margin()</methodname> method. This "
 "sets the amount of space around the button."
@@ -1308,7 +1355,7 @@ msgstr ""
 "接下来调用 Button 类的 <methodname>set_margin()</methodname> 方法。这将设置按"
 "钮周围空间的大小。"
 
-#: C/index-in.docbook:611
+#: index-in.docbook:631
 msgid ""
 "We then hook up a signal handler to <literal>m_button</literal>'s "
 "<literal>clicked</literal> signal. This prints our friendly greeting to "
@@ -1318,7 +1365,7 @@ msgstr ""
 "信号处理函数上。这会向 <literal>stdout</literal> (标准输出) 打印出友好的问候"
 "语。"
 
-#: C/index-in.docbook:616
+#: index-in.docbook:636
 msgid ""
 "Next, we use the Window's <methodname>set_child()</methodname> method to put "
 "<literal>m_button</literal> in the Window. The <methodname>set_child()</"
@@ -1328,75 +1375,68 @@ msgstr ""
 "<literal>m_button</literal>放入窗口。<methodname>set_child()</methodname>方法"
 "会将部件放入窗口中。"
 
-#: C/index-in.docbook:622
+#: index-in.docbook:642
 msgid ""
 "Now let's look at our program's <function>main()</function> function. Here "
 "it is, without comments:"
 msgstr "现在让我们来看看程序中没有注释过的 <function>main()</function> 函数:"
 
-#: C/index-in.docbook:627
+#: index-in.docbook:647
 #, no-wrap
 msgid ""
 "int main(int argc, char* argv[])\n"
 "{\n"
 "  auto app = Gtk::Application::create(\"org.gtkmm.example\");\n"
-"  HelloWorld helloworld;\n"
-"  return app-&gt;run(helloworld, argc, argv);\n"
+"  return app-&gt;make_window_and_run&lt;HelloWorld&gt;(argc, argv);\n"
 "}"
 msgstr ""
 "int main(int argc, char* argv[])\n"
 "{\n"
 "  auto app = Gtk::Application::create(\"org.gtkmm.example\");\n"
-"  HelloWorld helloworld;\n"
-"  return app-&gt;run(helloworld, argc, argv);\n"
+"  return app-&gt;make_window_and_run&lt;HelloWorld&gt;(argc, argv);\n"
 "}"
 
-#: C/index-in.docbook:634
+#: index-in.docbook:653
 msgid ""
-"First we instantiate an object stored in a <classname>RefPtr</classname> "
-"smartpointer called <literal>app</literal>. This is of type <classname>Gtk::"
-"Application</classname>. Every <application>gtkmm</application> program must "
-"have one of these."
+"First we instantiate an object stored in a <classname>Glib::RefPtr</"
+"classname> smartpointer called <literal>app</literal>. This is of type "
+"<classname>Gtk::Application</classname>. Every <application>gtkmm</"
+"application> program must have one of these."
 msgstr ""
-"我们首先实例化一个储存在名为 <literal>app</literal> 的<classname>RefPtr</"
-"classname>智能指针对象,它的类型为 <classname>Gtk::Application</classname> 。"
-"每一个 <application>gtkmm</application> 程序都有这样的一个东西。"
+"我们首先实例化一个储存在名为<literal>app</literal>的<classname>RefPtr</"
+"classname>智能指针对象,它的类型为<classname>Gtk::Application</classname> 。"
+"每一个<application>gtkmm</application>程序都有这样的一个东西。"
 
-#: C/index-in.docbook:639
+#: index-in.docbook:658
 msgid ""
-"Next we make an object of our <classname>HelloWorld</classname> class, whose "
-"constructor takes no arguments, but it isn't visible yet. When we call "
-"<methodname>Gtk::Application::run()</methodname>, giving it the helloworld "
-"Window and the command-line arguments, it shows the Window and starts the "
-"<application>gtkmm</application> <emphasis>event loop</emphasis>. During the "
-"event loop <application>gtkmm</application> idles, waiting for actions from "
-"the user, and responding appropriately. When the user closes the Window, "
-"<methodname>run()</methodname> will return, causing the final line of our "
-"<function>main()</function> function be to executed. The application will "
-"then finish."
+"Next we call <methodname>make_window_and_run()</methodname> which creates an "
+"object of our <classname>HelloWorld</classname> class, shows that Window and "
+"starts the <application>gtkmm</application> <emphasis>event loop</emphasis>. "
+"During the event loop <application>gtkmm</application> idles, waiting for "
+"actions from the user, and responding appropriately. When the user closes "
+"the Window, <methodname>make_window_and_run()</methodname> will return, "
+"causing our <function>main()</function> function to return. The application "
+"will then finish."
 msgstr ""
-"接着我们创建了 <classname>HelloWorld</classname> 类的对象,它的构造函数没有参"
-"数,当然,它现在还不是可视的。当我们调用<methodname>Gtk::Application::run()</"
-"methodname>并给它提供一个 helloworld 窗口和命令行参数时,它将显示这个窗口并进"
-"入 <application>gtkmm</application><emphasis>消息循环</emphasis>。在消息循环"
-"中,<application>gtkmm</application> 是空闲的,它等待用户的操作并作出相应的反"
-"应。当用户关闭窗口时,<methodname>run()</methodname> 函数将返回,导致"
-"<function>main()</function>函数的最后一行将被执行。然后程序就结束了。"
+"接着我们调用<methodname>make_window_and_run()</methodname>创建了我们的<class"
+"name>HelloWorld</classname>类对象,显示这个窗口并进入<application>gtkmm</app"
+"lication><emphasis>消息循环</emphasis>。在消息循环中,<application>gtkmm</ap"
+"plication>是空闲的,它等待用户的操作并作出相应的反应。当用户关闭窗口时,<met"
+"hodname>run()</methodname> 函数将返回,导致<function>main()</function>函数的"
+"最后一行将被执行。然后程序就结束了。"
 
-#: C/index-in.docbook:648
+#: index-in.docbook:667
 msgid ""
 "Like the simple example we showed earlier, this Hello World program does not "
-"use the command-line parameters. It's not necessary to pass them to "
-"<methodname>run()</methodname>."
+"use the command-line parameters."
 msgstr ""
-"就像我们之前显示的简单示例一样,这个 Hello World 程序不实用命令行参数。不需要"
-"将其传递给<methodname>run()</methodname>。"
+"就像我们之前显示的简单示例一样,这个Hello World程序不使用命令行参数。"
 
-#: C/index-in.docbook:657
+#: index-in.docbook:676
 msgid "Changes in <application>gtkmm</application> 3"
 msgstr "<application>gtkmm</application>3中的变更"
 
-#: C/index-in.docbook:659
+#: index-in.docbook:678
 msgid ""
 "<application>gtkmm</application>-3.0 is an old version of the "
 "<application>gtkmm</application> API that installs in parallel with the "
@@ -1418,7 +1458,7 @@ msgstr ""
 "兼容。如果你从未用过<application>gtkmm</application>-2.4 API 则你可以放心的忽"
 "略本章。"
 
-#: C/index-in.docbook:661
+#: index-in.docbook:680
 msgid ""
 "<application>gtkmm</application> 3's library is called "
 "<literal>libgtkmm-3.0</literal> rather than <literal>libgtkmm-2.4</literal> "
@@ -1431,11 +1471,11 @@ msgstr ""
 "pkg-config应该检索<literal>gtkmm-3.0</literal>而不是<literal>gtkmm-2.4</"
 "literal>。"
 
-#: C/index-in.docbook:664
+#: index-in.docbook:683
 msgid "<application>gtkmm</application> 3 added some new classes:"
 msgstr "<application>gtkmm</application>3添加了一些新的类:"
 
-#: C/index-in.docbook:667
+#: index-in.docbook:686
 msgid ""
 "<classname>Gtk::AppChooser</classname>, <classname>Gtk::AppChooserButton</"
 "classname>, <classname>Gtk::AppChooserDialog</classname> allow the user to "
@@ -1445,7 +1485,7 @@ msgstr ""
 "classname>,<classname>Gtk::AppChooserDialog</classname>允许用户选择已安装的应"
 "用程序用以打开特定类型的内容。"
 
-#: C/index-in.docbook:668
+#: index-in.docbook:687
 msgid ""
 "<classname>Gtk::Grid</classname> is a new container widget that will "
 "eventually replace <classname>Gtk::Box</classname> and <classname>Gtk::"
@@ -1456,7 +1496,7 @@ msgstr ""
 "<classname>Gtk::Box</classname>和<classname>Gtk::Table</classname>。它根据它"
 "的子项的属性而不是自身的布局属性对子项进行排列。"
 
-#: C/index-in.docbook:669
+#: index-in.docbook:688
 msgid ""
 "<classname>Gtk::Switch</classname> displays On/Off states more explictly "
 "than <classname>Gtk::CheckButton</classname>. It may be useful, for "
@@ -1466,7 +1506,7 @@ msgstr ""
 "classname>更明确的显示开/关状态。例如,在允许用户激活硬件的时候,他可能很有"
 "用。"
 
-#: C/index-in.docbook:672
+#: index-in.docbook:691
 msgid ""
 "<application>gtkmm</application> 3 also made several small changes to the "
 "API, which you will probably encounter when porting code that used "
@@ -1476,7 +1516,7 @@ msgstr ""
 "<application>gtkmm</application>-2.4的代码的时候你可能会遇到这些变更。这是一"
 "个简短的清单:"
 
-#: C/index-in.docbook:677
+#: index-in.docbook:696
 msgid ""
 "<classname>Gtk::CellLayout</classname>, used by <classname>Gtk::IconView</"
 "classname>, <classname>Gtk::TreeView::Column</classname> and <classname>Gtk::"
@@ -1489,7 +1529,7 @@ msgstr ""
 "CellLayout</classname>,现在有<classname>Gtk::CellArea</classname>可以用于指"
 "示<classname>CellRenderer</classname>的排列与对齐方式的详情。"
 
-#: C/index-in.docbook:679
+#: index-in.docbook:698
 msgid ""
 "Gtk::ComboBox now derives from CellLayout, allowing easier layout and "
 "alignment of its <classname>Gtk::CellRenderer</classname>s."
@@ -1497,7 +1537,7 @@ msgstr ""
 "Gtk::ComboBox现在从CellLayout派生,从而使更容易对<classname>Gtk::"
 "CellRenderer</classname>进行布局与对齐。"
 
-#: C/index-in.docbook:681
+#: index-in.docbook:700
 msgid ""
 "<classname>Gtk::Adjustment</classname> and <classname>IconSet</classname> "
 "and <classname>Gdk::Cursor</classname> are now used via <classname>Glib::"
@@ -1507,7 +1547,7 @@ msgstr ""
 "和<classname>Gdk::Cursor</classname>类现在通过<classname>Glib::RefPtr</"
 "classname>使用。"
 
-#: C/index-in.docbook:683
+#: index-in.docbook:702
 msgid ""
 "<classname>Gtk::Box</classname>, <classname>Gtk::ButtonBox</classname>, "
 "<classname>Gtk::IconView</classname>, <classname>Gtk::Paned</classname>, "
@@ -1526,7 +1566,7 @@ msgstr ""
 "不使用派生类(例如<classname>Gtk::HBox</classname>)的情况指定其方向(垂直或者水"
 "平)。"
 
-#: C/index-in.docbook:686
+#: index-in.docbook:705
 msgid ""
 "<classname>Gtk::IconView</classname>, <classname>Gtk::TextView</classname>, "
 "<classname>Gtk::TreeView</classname> and other widgets derive from "
@@ -1539,7 +1579,7 @@ msgstr ""
 "己的方法,例如<methodname>get_vadjustment()</methodname>拥有自己的"
 "set_scroll_adjustments信号。"
 
-#: C/index-in.docbook:688
+#: index-in.docbook:707
 msgid ""
 "<classname>Gtk::Style</classname> and <classname>Gtk::Rc</classname> were "
 "removed, replaced by <classname>Gtk::StyleContext</classname>, and "
@@ -1550,7 +1590,7 @@ msgstr ""
 "<classname>Gtk::StyleContext</classname>和<classname>Gtk::StyleProvider</"
 "classname>替换,例如<classname>Gtk::CssProvider</classname>。"
 
-#: C/index-in.docbook:690
+#: index-in.docbook:709
 msgid ""
 "Widget::on_expose_event() was replaced by Widget::on_draw(), which assumes "
 "that cairomm is used for drawing, via the provided <classname>Cairo::"
@@ -1561,7 +1601,7 @@ msgstr ""
 "<classname>Cairo::Context</classname>使用cairomm进行绘制,并且不需要你自己调"
 "用<methodname>Cairo::Context::clip()</methodname>。"
 
-#: C/index-in.docbook:692
+#: index-in.docbook:711
 msgid ""
 "<classname>Gdk::RGBA</classname> replaces <classname>Color</classname>, "
 "adding an alpha component for opacity. <classname>Colormap</classname> was "
@@ -1571,7 +1611,7 @@ msgstr ""
 "分量以支持透明度。<classname>Colormap</classname>与其笨拙的颜色分配方式一并被"
 "删除。"
 
-#: C/index-in.docbook:694
+#: index-in.docbook:713
 msgid ""
 "<classname>Gdk::Pixmap</classname> and <classname>Gdk::Bitmap</classname> "
 "were removed in favour of <classname>Gdk::Pixbuf</classname>."
@@ -1579,7 +1619,7 @@ msgstr ""
 "<classname>Gdk::Pixmap</classname>和<classname>Gdk::Bitmap</classname>现在被"
 "<classname>Gdk::Pixbuf</classname>所取代。"
 
-#: C/index-in.docbook:696
+#: index-in.docbook:715
 msgid ""
 "<classname>Gdk::Drawable</classname> was removed, with its methods moving "
 "into <classname>Gdk::Window</classname>."
@@ -1587,13 +1627,13 @@ msgstr ""
 "<classname>Gdk::Drawable</classname>被删除,与其有关的方法被移动到了"
 "<classname>Gdk::Window</classname>。"
 
-#: C/index-in.docbook:698
+#: index-in.docbook:717
 msgid ""
 "We now use std::vector in several methods instead of the intermediate "
 "*Handle types to make the API clearer."
 msgstr "我们现在使用std::vector而不是使用中间类型(*Handle)以使API更加的清晰。"
 
-#: C/index-in.docbook:703
+#: index-in.docbook:722
 msgid ""
 "All deprecated API was removed in <application>gtkmm</application> 3.0, "
 "though there have been new deprecations in later <application>gtkmm</"
@@ -1602,7 +1642,7 @@ msgstr ""
 "在<application>gtkmm</application> 3.0中我们删除了所有弃用的API,尽管在"
 "<application>gtkmm</application> 3.x版本中出现了新的被弃用的API。"
 
-#: C/index-in.docbook:705
+#: index-in.docbook:724
 msgid ""
 "As a first step to porting your source code to <application>gtkmm</"
 "application>-3.0 you should probably ensure that your application builds "
@@ -1618,7 +1658,7 @@ msgstr ""
 "你通过构建。访问<ulink url=\"https://wiki.gnome.org/Projects/gtkmm/";
 "PortingToGtkmm3\">gtkmm3移植Wiki</ulink>了解更多详情。"
 
-#: C/index-in.docbook:710
+#: index-in.docbook:729
 msgid ""
 "Changes in <application>gtkmm</application>-4.0 and "
 "<application>glibmm-2.68</application>"
@@ -1626,7 +1666,7 @@ msgstr ""
 "<application>gtkmm</application>-4.0和<application>glibmm-2.68</application>"
 "中的变更。"
 
-#: C/index-in.docbook:712
+#: index-in.docbook:731
 msgid ""
 "<application>gtkmm</application>-4.0 is a new version of the "
 "<application>gtkmm</application> API that installs in parallel with the "
@@ -1647,7 +1687,7 @@ msgstr ""
 "本性的区别,虽然有些变更但是保持了二进制兼容。如果你从未使用过"
 "<application>gtkmm</application>-3.0 API则你可以放心的忽略本章。"
 
-#: C/index-in.docbook:720
+#: index-in.docbook:739
 msgid ""
 "<application>gtkmm</application> 4's library is called "
 "<literal>libgtkmm-4.0</literal> rather than <literal>libgtkmm-3.0</literal> "
@@ -1660,7 +1700,7 @@ msgstr ""
 "<application>pkg-config</application>应该检索<literal>gtkmm-4.0</literal>而不"
 "是<literal>gtkmm-3.0</literal>。"
 
-#: C/index-in.docbook:726
+#: index-in.docbook:745
 msgid ""
 "<application>gtkmm</application>-4.0 is used in combination with "
 "<application>glibmm-2.68</application>, which sets the global locale for "
@@ -1686,7 +1726,7 @@ msgstr ""
 "create()</methodname>方法之前添加对<function>Glib::"
 "set_init_to_users_preferred_locale(false)</function>的调用。"
 
-#: C/index-in.docbook:736
+#: index-in.docbook:755
 msgid ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/namespaceGlib.html";
 "\">Reference</ulink>"
@@ -1694,7 +1734,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/namespaceGlib.html\";>"
 "参考</ulink>"
 
-#: C/index-in.docbook:738
+#: index-in.docbook:757
 msgid ""
 "There are lots and lots of differences between <application>gtkmm</"
 "application>-3.0 and <application>gtkmm</application>-4.0. The following "
@@ -1703,7 +1743,7 @@ msgstr ""
 "<application>gtkmm</application>-3.0和<application>gtkmm</application>-4.0之"
 "间有很多不同之处。以下是不完整的列表。"
 
-#: C/index-in.docbook:741
+#: index-in.docbook:760
 msgid ""
 "Some new classes were added in <application>gtkmm</application> 4 and "
 "<application>glibmm</application> 2.68:"
@@ -1711,7 +1751,7 @@ msgstr ""
 "在<application>gtkmm</application> 4和<application>glibmm</application> 2.68"
 "中添加了一些新的类:"
 
-#: C/index-in.docbook:744
+#: index-in.docbook:763
 msgid ""
 "<classname>Glib::ExtraClassInit</classname> and <classname>Gtk::Snapshot</"
 "classname>: These classes are needed only for writing custom widgets. See "
@@ -1721,7 +1761,7 @@ msgstr ""
 "classname>:这些类只用于编写自定义的窗口小部件。参见<link linkend=\"sec-"
 "custom-widgets\">自定义部件</link>小节。"
 
-#: C/index-in.docbook:747
+#: index-in.docbook:766
 msgid ""
 "<classname>Gtk::EventControllerKey</classname>, <classname>Gtk::"
 "EventControllerMotion</classname>, <classname>Gtk::EventControllerScroll</"
@@ -1731,7 +1771,7 @@ msgstr ""
 "EventControllerMotion</classname>, <classname>Gtk::EventControllerScroll</"
 "classname>和<classname>Gtk::GestureStylus</classname>"
 
-#: C/index-in.docbook:750
+#: index-in.docbook:769
 msgid ""
 "<classname>Gdk::Paintable</classname>, <classname>Gdk::Texture</classname>, "
 "<classname>Gtk::Picture</classname> and <classname>Gtk::WidgetPaintable</"
@@ -1741,7 +1781,7 @@ msgstr ""
 "<classname>Gtk::Picture</classname>和<classname>Gtk::WidgetPaintable</"
 "classname>"
 
-#: C/index-in.docbook:753
+#: index-in.docbook:772
 msgid ""
 "<classname>Gdk::Window</classname> has been renamed to <classname>Gdk::"
 "Surface</classname>. (<classname>Gtk::Window</classname> keeps its name.)"
@@ -1749,7 +1789,7 @@ msgstr ""
 "<classname>Gdk::Window</classname>被重命名为<classname>Gdk::Surface</"
 "classname>(<classname>Gtk::Window</classname>名称保持不变)。"
 
-#: C/index-in.docbook:755
+#: index-in.docbook:774
 msgid ""
 "<classname>Gdk::DrawContext</classname> and <classname>Gdk::CairoContext</"
 "classname> are new. <classname>Gdk::DrawingContext</classname> has been "
@@ -1759,7 +1799,7 @@ msgstr ""
 "CairoContext</classname>。<classname>Gdk::DrawingContext</classname>已被删"
 "除。"
 
-#: C/index-in.docbook:757
+#: index-in.docbook:776
 msgid ""
 "<classname>Gtk::Clipboard</classname> has been replaced by the new "
 "<classname>Gdk::Clipboard</classname>."
@@ -1767,7 +1807,7 @@ msgstr ""
 "<classname>Gtk::Clipboard</classname>被新的<classname>Gdk::Clipboard</"
 "classname>替换。"
 
-#: C/index-in.docbook:759
+#: index-in.docbook:778
 msgid ""
 "<classname>Gdk::DragContext</classname> has been split into <classname>Gdk::"
 "Drag</classname> and <classname>Gdk::Drop</classname>."
@@ -1775,7 +1815,7 @@ msgstr ""
 "<classname>Gdk::DragContext</classname>现在被拆分为<classname>Gdk::Drag</"
 "classname>和<classname>Gdk::Drop</classname>。"
 
-#: C/index-in.docbook:763
+#: index-in.docbook:782
 msgid ""
 "There have also been several changes to the API, which you will probably "
 "encounter when porting code that used <application>gtkmm</application>-3.0 "
@@ -1785,11 +1825,11 @@ msgstr ""
 "<application>glibmm</application>-2.4代码时你可能会遇到这些更改。以下是一个简"
 "短的变更列表:"
 
-#: C/index-in.docbook:768
+#: index-in.docbook:787
 msgid "A C++17 compiler is required."
 msgstr "需要支持C++17的编译器"
 
-#: C/index-in.docbook:769
+#: index-in.docbook:788
 msgid ""
 "<classname>Gtk::Button</classname>, <classname>Gtk::ToolButton</classname>, "
 "<classname>Gtk::MenuItem</classname> and <classname>Gtk::Switch</classname> "
@@ -1801,7 +1841,7 @@ msgstr ""
 "了<classname>Gtk::Actionable</classname>接口而不是已被删除的<classname>Gtk::"
 "Activatable</classname>接口。"
 
-#: C/index-in.docbook:773
+#: index-in.docbook:792
 msgid ""
 "<classname>Gtk::FontButton</classname> implements the <classname>Gtk::"
 "FontChooser</classname> interface."
@@ -1809,7 +1849,7 @@ msgstr ""
 "<classname>Gtk::FontButton</classname>实现了<classname>Gtk::FontChooser</"
 "classname>接口。"
 
-#: C/index-in.docbook:774
+#: index-in.docbook:793
 msgid ""
 "<classname>Gtk::Widget</classname>: The <methodname>get_preferred_*_vfunc()</"
 "methodname>s have been replaced by <methodname>measure_vfunc()</methodname>. "
@@ -1819,7 +1859,7 @@ msgstr ""
 "methodname>方法已被<methodname>measure_vfunc()</methodname>方法替代。此变更只"
 "影响自定义部件。"
 
-#: C/index-in.docbook:777
+#: index-in.docbook:796
 msgid ""
 "<classname>sigc::slot</classname>s use the <classname>sigc::slot&lt;"
 "R(Args...)&gt;</classname> syntax. Example: <classname>sigc::slot&lt;"
@@ -1830,13 +1870,13 @@ msgstr ""
 "</classname>语法。 例如: <classname>sigc::slot&lt;void(int, int)&gt;</"
 "classname>而不是使用<classname>sigc::slot&lt;void, int, int&gt;</classname>。"
 
-#: C/index-in.docbook:779
+#: index-in.docbook:798
 msgid ""
 "<classname>Gtk::DrawingArea</classname> uses a draw function instead of the "
 "draw signal."
 msgstr "<classname>Gtk::DrawingArea</classname>使用绘制函数替代绘制信号。"
 
-#: C/index-in.docbook:780
+#: index-in.docbook:799
 msgid ""
 "<classname>Glib::ArrayHandle</classname>, <classname>Glib::"
 "StringArrayHandle</classname>, <classname>Glib::ListHandle</classname> and "
@@ -1853,11 +1893,11 @@ msgstr ""
 "application>-3.0并未使用他们。如果你曾经使用过他们,则将他们替换为标准C++容"
 "器,例如<classname>std::vector</classname>。"
 
-#: C/index-in.docbook:784
+#: index-in.docbook:803
 msgid "<classname>Gtk::Container</classname> has been removed."
 msgstr "<classname>Gtk::Container</classname>已被删除。"
 
-#: C/index-in.docbook:785
+#: index-in.docbook:804
 msgid ""
 "<methodname>Gtk::Widget::show_all()</methodname> has been removed. The "
 "default value of <methodname>Gtk::Widget::property_visible()</methodname>has "
@@ -1867,7 +1907,7 @@ msgstr ""
 "Widget::property_visible()</methodname>的默认值从<literal>false</literal>改为"
 "<literal>true</literal>。"
 
-#: C/index-in.docbook:788
+#: index-in.docbook:807
 msgid ""
 "All event signals have been removed from <classname>Gtk::Widget</classname>. "
 "In most cases you can use one of the subclasses of <classname>Gtk::"
@@ -1887,7 +1927,7 @@ msgstr ""
 "EventControllerKey</classname>替代<methodname>signal_key_press_event()</"
 "methodname>和<methodname>signal_key_release_event()</methodname>。"
 
-#: C/index-in.docbook:795
+#: index-in.docbook:814
 msgid ""
 "<classname>Glib::RefPtr</classname> is an alias for <classname>std::"
 "shared_ptr</classname>. If you make your own <classname>Glib::ObjectBase</"
@@ -1902,7 +1942,7 @@ msgstr ""
 "ObjectBase</classname>的类,则你必须在你的<methodname>create()</methodname>方"
 "法中调用<methodname>Glib::make_refptr_for_instance()</methodname>。"
 
-#: C/index-in.docbook:800
+#: index-in.docbook:819
 msgid ""
 "<methodname>Gtk::Box::pack_start()</methodname> and <methodname>Gtk::Box::"
 "pack_end()</methodname> have been removed. Use the new <classname>Gtk::Box</"
@@ -1916,11 +1956,11 @@ msgstr ""
 "<methodname>insert_child_after()</methodname>和"
 "<methodname>insert_child_at_start()</methodname>方法。"
 
-#: C/index-in.docbook:805
+#: index-in.docbook:824
 msgid "<classname>Gtk::ButtonBox</classname> has been removed."
 msgstr "<classname>Gtk::ButtonBox</classname>已被删除"
 
-#: C/index-in.docbook:806
+#: index-in.docbook:825
 msgid ""
 "<classname>Gtk::RadioButton</classname> and <classname>Gtk::"
 "RadioButtonGroup</classname> have been removed. Use <classname>Gtk::"
@@ -1932,7 +1972,7 @@ msgstr ""
 "<classname>Gtk::ToggleButton</classname>的<methodname>set_group()</"
 "methodname>。"
 
-#: C/index-in.docbook:812
+#: index-in.docbook:831
 msgid ""
 "All deprecated API was removed in <application>gtkmm</application> 4.0 and "
 "<application>glibmm</application> 2.68, though there will be new "
@@ -1941,7 +1981,7 @@ msgstr ""
 "<application>gtkmm</application>和<application>glibmm</application> 2.68移除"
 "了所有之前标记为弃用的API,未来还会有新的API被标记为弃用。"
 
-#: C/index-in.docbook:815
+#: index-in.docbook:834
 msgid ""
 "As a first step to porting your source code to <application>gtkmm</"
 "application>-4.0 you should probably ensure that your application builds "
@@ -1961,7 +2001,7 @@ msgstr ""
 "在编译时定义他们。更多有关详情请参见<ulink url=\"https://wiki.gnome.org/";
 "Projects/gtkmm/PortingToGtkmm3\">从gtkmm-2.4迁移到gtkmm-3.0</ulink>Wiki页面。"
 
-#: C/index-in.docbook:823
+#: index-in.docbook:842
 msgid ""
 "See also <ulink url=\"https://developer.gnome.org/gtk4/unstable/gtk-";
 "migrating-3-to-4.html\"> Migrating from GTK 3.x to GTK 4</ulink>."
@@ -1969,19 +2009,19 @@ msgstr ""
 "另请参见<ulink url=\"https://developer.gnome.org/gtk4/unstable/gtk-";
 "migrating-3-to-4.html\">从GTK3.X迁移到GTK 4</ulink>。"
 
-#: C/index-in.docbook:829
+#: index-in.docbook:848
 msgid "Buttons"
 msgstr "按钮(Buttons)"
 
-#: C/index-in.docbook:831
+#: index-in.docbook:850
 msgid "<application>gtkmm</application> provides four basic types of buttons:"
 msgstr "<application>gtkmm</application> 提供以下四种基本按钮控件:"
 
-#: C/index-in.docbook:838
+#: index-in.docbook:857
 msgid "Push buttons"
 msgstr "按钮类"
 
-#: C/index-in.docbook:840
+#: index-in.docbook:859
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button.";
 "html\"><classname>Gtk::Button</classname></ulink>. Standard buttons, usually "
@@ -1993,11 +2033,11 @@ msgstr ""
 "标签或者图片。按一下就会触发一个动作。参看 <link linkend=\"sec-pushbuttons"
 "\">Button</link> 小节。"
 
-#: C/index-in.docbook:847
+#: index-in.docbook:866
 msgid "Toggle buttons"
 msgstr "开关按钮(ToggleButton)"
 
-#: C/index-in.docbook:849
+#: index-in.docbook:868
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ToggleButton.html\"><classname>Gtk::ToggleButton</classname></"
@@ -2011,11 +2051,11 @@ msgstr ""
 "起。它作为一个开关可能比较有用。参看 <link linkend=\"sec-toggle-buttons"
 "\">ToggleButton</link> 小节。"
 
-#: C/index-in.docbook:857
+#: index-in.docbook:876
 msgid "Check buttons"
 msgstr "复选按钮(CheckButtons)"
 
-#: C/index-in.docbook:859
+#: index-in.docbook:878
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1CheckButton.html\"><classname>Gtk::CheckButton</classname></"
@@ -2030,11 +2070,11 @@ msgstr ""
 "态,而且旁边还有一个文字标签。在大多数需要布尔值设置的情况都可以使用它。参看 "
 "<link linkend=\"sec-checkbuttons\">CheckButton</link> 小节。"
 
-#: C/index-in.docbook:869
+#: index-in.docbook:888
 msgid "Radio buttons"
 msgstr "单选按钮(RadioButton)"
 
-#: C/index-in.docbook:871
+#: index-in.docbook:890
 msgid ""
 "Named after the station selectors on old car radios, these buttons are used "
 "in groups for options which are mutually exclusive. Pressing one causes all "
@@ -2050,7 +2090,7 @@ msgstr ""
 "的单选按钮类。复选按钮和开关按钮可以充当单选按钮。参见<link linkend=\"sec-"
 "radio-buttons\">RadioButton</link> 小节。"
 
-#: C/index-in.docbook:885
+#: index-in.docbook:904
 msgid ""
 "Note that, due to GTK's theming system, the appearance of these widgets will "
 "vary. In the case of check buttons and radio buttons, they may vary "
@@ -2059,11 +2099,11 @@ msgstr ""
 "请注意,由于GTK的主题不同,这些控件外观可能会不同。特别是复选按钮和单选按钮可"
 "能会很不一样。"
 
-#: C/index-in.docbook:892
+#: index-in.docbook:911
 msgid "Button"
 msgstr "按钮(Button)"
 
-#: C/index-in.docbook:894
+#: index-in.docbook:913
 msgid ""
 "There are two ways to create a Button. You can specify a label string in the "
 "<classname>Gtk::Button</classname> constructor, or set it later with "
@@ -2073,7 +2113,7 @@ msgstr ""
 "函数中指定标签字符串,或者以后调用 <methodname>set_label()</methodname> 来指"
 "定标签。"
 
-#: C/index-in.docbook:900
+#: index-in.docbook:919
 msgid ""
 "To define an accelerator key for keyboard navigation, place an underscore "
 "before one of the label's characters and specify <literal>true</literal> for "
@@ -2082,12 +2122,12 @@ msgstr ""
 "如果你想为按钮定义一个快捷键,那么可以在标签字符串中的某个字符前面加上一个下"
 "划线,并且指定可选的参数助记符(mnemonic)为 true。例如:"
 
-#: C/index-in.docbook:902
+#: index-in.docbook:921
 #, no-wrap
 msgid "Gtk::Button* pButton = new Gtk::Button(\"_Something\", true);"
 msgstr "Gtk::Button* pButton = new Gtk::Button(\"_Something\", true);"
 
-#: C/index-in.docbook:904
+#: index-in.docbook:923
 msgid ""
 "<classname>Gtk::Button</classname> is also a container so you could put any "
 "other widget, such as a <classname>Gtk::Image</classname> into it."
@@ -2095,7 +2135,7 @@ msgstr ""
 "<classname>Gtk::Button</classname> 同时也是一个容器,因此你可以在其中放任何其"
 "它的部件,比如放一个 <classname>Gtk::Image</classname> 在里面。"
 
-#: C/index-in.docbook:910
+#: index-in.docbook:929
 msgid ""
 "The <classname>Gtk::Button</classname> widget has the <literal>clicked</"
 "literal> signal which is emitted when the button is pressed and released."
@@ -2103,7 +2143,7 @@ msgstr ""
 "<classname>Gtk::Button</classname>部件具有<literal>clicked</literal>信号,当"
 "按下或释放按钮时将会发出该信号。"
 
-#: C/index-in.docbook:915
+#: index-in.docbook:934
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button.";
 "html\">Reference</ulink>"
@@ -2111,31 +2151,31 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:917 C/index-in.docbook:970 C/index-in.docbook:1027
-#: C/index-in.docbook:1145 C/index-in.docbook:1202 C/index-in.docbook:1510
-#: C/index-in.docbook:1575 C/index-in.docbook:1599 C/index-in.docbook:1629
-#: C/index-in.docbook:1684 C/index-in.docbook:1724 C/index-in.docbook:1765
-#: C/index-in.docbook:1799 C/index-in.docbook:2085 C/index-in.docbook:2115
-#: C/index-in.docbook:2169 C/index-in.docbook:2209 C/index-in.docbook:3882
-#: C/index-in.docbook:3909 C/index-in.docbook:3932 C/index-in.docbook:3956
-#: C/index-in.docbook:3988 C/index-in.docbook:4166 C/index-in.docbook:4312
-#: C/index-in.docbook:4386 C/index-in.docbook:4458 C/index-in.docbook:4523
-#: C/index-in.docbook:4760 C/index-in.docbook:5260 C/index-in.docbook:5566
-#: C/index-in.docbook:5615 C/index-in.docbook:6178 C/index-in.docbook:6298
-#: C/index-in.docbook:6928 C/index-in.docbook:7001 C/index-in.docbook:7227
-#: C/index-in.docbook:8631
+#: index-in.docbook:936 index-in.docbook:989 index-in.docbook:1046
+#: index-in.docbook:1164 index-in.docbook:1221 index-in.docbook:1529
+#: index-in.docbook:1594 index-in.docbook:1618 index-in.docbook:1648
+#: index-in.docbook:1703 index-in.docbook:1743 index-in.docbook:1784
+#: index-in.docbook:1818 index-in.docbook:2104 index-in.docbook:2134
+#: index-in.docbook:2188 index-in.docbook:2228 index-in.docbook:3901
+#: index-in.docbook:3928 index-in.docbook:3951 index-in.docbook:3975
+#: index-in.docbook:4007 index-in.docbook:4185 index-in.docbook:4331
+#: index-in.docbook:4405 index-in.docbook:4477 index-in.docbook:4542
+#: index-in.docbook:4779 index-in.docbook:5279 index-in.docbook:5585
+#: index-in.docbook:5634 index-in.docbook:6197 index-in.docbook:6317
+#: index-in.docbook:6947 index-in.docbook:7020 index-in.docbook:7246
+#: index-in.docbook:8650
 msgid "Example"
 msgstr "示例"
 
-#: C/index-in.docbook:919
+#: index-in.docbook:938
 msgid "This example creates a button with a picture and a label."
 msgstr "这个示例创建了一个有图片和文字标签的按钮。"
 
-#: C/index-in.docbook:924
+#: index-in.docbook:943
 msgid "buttons example"
 msgstr "按钮示例"
 
-#: C/index-in.docbook:930
+#: index-in.docbook:949
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/button\">Source Code</ulink>"
@@ -2143,11 +2183,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/button\">源代码</ulink>"
 
-#: C/index-in.docbook:937
+#: index-in.docbook:956
 msgid "ToggleButton"
 msgstr "开关按钮(ToggleButton)"
 
-#: C/index-in.docbook:939
+#: index-in.docbook:958
 msgid ""
 "<classname>ToggleButton</classname>s are like normal <classname>Button</"
 "classname>s, but when clicked they remain activated, or pressed, until "
@@ -2156,7 +2196,7 @@ msgstr ""
 "<classname>ToggleButton</classname> 和普通的 <classname>Button</classname> 相"
 "似,但是它们在点击后会保持激活(或称为按下的)状态,直到再次点击它为止。"
 
-#: C/index-in.docbook:941
+#: index-in.docbook:960
 msgid ""
 "To retrieve the state of the <classname>ToggleButton</classname>, you can "
 "use the <methodname>get_active()</methodname> method. This returns "
@@ -2171,7 +2211,7 @@ msgstr ""
 "请注意,如果你这样做了,并且它的状态的确改变了,那么这将会引发“clicked”信号。"
 "当然,一般来说,这就是你希望看到的结果。"
 
-#: C/index-in.docbook:948
+#: index-in.docbook:967
 msgid ""
 "You can use the <methodname>toggled()</methodname> method to toggle the "
 "button, rather than forcing it to be up or down: This switches the button's "
@@ -2181,7 +2221,7 @@ msgstr ""
 "行的是设置它是开还是关:这个方法将会改变按钮的状态,并会引发 "
 "<literal>toggled</literal> 信号。"
 
-#: C/index-in.docbook:953
+#: index-in.docbook:972
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ToggleButton.html\">Reference</ulink>"
@@ -2189,11 +2229,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ToggleButton.html\">参考</ulink>"
 
-#: C/index-in.docbook:958 C/index-in.docbook:973
+#: index-in.docbook:977 index-in.docbook:992
 msgid "CheckButton"
 msgstr "多选按钮(CheckButton)"
 
-#: C/index-in.docbook:960
+#: index-in.docbook:979
 msgid ""
 "<classname>Gtk::CheckButton</classname> inherits directly from "
 "<classname>Gtk::Widget</classname>. It is similar to <classname>Gtk::"
@@ -2207,7 +2247,7 @@ msgstr ""
 "同。因此你可以像<classname>Gtk::ToggleButton</classname>一样使用同样的方法来"
 "检查、设置和转换多选按钮的状态。"
 
-#: C/index-in.docbook:968
+#: index-in.docbook:987
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1CheckButton.html\">Reference</ulink>"
@@ -2215,7 +2255,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1CheckButton.html\">参考</ulink>"
 
-#: C/index-in.docbook:979
+#: index-in.docbook:998
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/checkbutton\">Source Code</ulink>"
@@ -2223,11 +2263,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/checkbutton\">源代码</ulink>"
 
-#: C/index-in.docbook:985
+#: index-in.docbook:1004
 msgid "Radio Button"
 msgstr "单选按钮(RadioButton)"
 
-#: C/index-in.docbook:987
+#: index-in.docbook:1006
 msgid ""
 "There is no separate class for radio buttons. Check buttons and toggle "
 "buttons act as radio buttons when they form a group. Only one button in a "
@@ -2236,11 +2276,11 @@ msgstr ""
 "单选按钮没有单独的类。当复选按钮和开关按钮在一个组中的时候它们充当单选按钮。"
 "任何时候只能选择一个组中的一个按钮。"
 
-#: C/index-in.docbook:993
+#: index-in.docbook:1012
 msgid "Groups"
 msgstr "组"
 
-#: C/index-in.docbook:994
+#: index-in.docbook:1013
 msgid ""
 "You create the buttons, and set up their group afterwards. In the following "
 "example, we put 3 radio buttons in a group:"
@@ -2248,7 +2288,7 @@ msgstr ""
 "你创建了三个按钮,然后为他们设置了组。在下面的例子中,我们将三个单选按钮放入"
 "一个组中。"
 
-#: C/index-in.docbook:999
+#: index-in.docbook:1018
 #, no-wrap
 msgid ""
 "\n"
@@ -2265,7 +2305,7 @@ msgstr ""
 "rb2-&gt;set_group(*rb1);\n"
 "rb3-&gt;set_group(*rb1);\n"
 
-#: C/index-in.docbook:1007
+#: index-in.docbook:1026
 msgid ""
 "We told <application>gtkmm</application> to put all three "
 "<classname>CheckButton</classname>s in the same group by using "
@@ -2279,11 +2319,11 @@ msgstr ""
 "<classname>CheckButton</classname>与第一个<classname>CheckButton</classname>"
 "共享这个组。"
 
-#: C/index-in.docbook:1016 C/index-in.docbook:1472 C/index-in.docbook:4634
+#: index-in.docbook:1035 index-in.docbook:1491 index-in.docbook:4653
 msgid "Methods"
 msgstr "方法"
 
-#: C/index-in.docbook:1017
+#: index-in.docbook:1036
 msgid ""
 "<classname>CheckButton</classname>s and <classname>ToggleButton</classname>s "
 "are \"off\" when created; this means that when you first make a group of "
@@ -2294,7 +2334,7 @@ msgstr ""
 "后默认是未选中的,也就是说当你第一次创建一组单选按钮的时候,它们都会是未选中"
 "的。所以别忘了使用<methodname>set_active()</methodname>来选中一个。"
 
-#: C/index-in.docbook:1023
+#: index-in.docbook:1042
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1RadioButton.html\">Reference</ulink>"
@@ -2302,18 +2342,18 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1RadioButton.html\">参考</ulink>"
 
-#: C/index-in.docbook:1028
+#: index-in.docbook:1047
 msgid ""
 "The following example demonstrates the use of grouped "
 "<classname>CheckButton</classname>s:"
 msgstr ""
 "接下来的例子中演示了对<classname>CheckButton</classname>进行分组的用法:"
 
-#: C/index-in.docbook:1034
+#: index-in.docbook:1053
 msgid "RadioButton"
 msgstr "单选按钮(RadioButton)"
 
-#: C/index-in.docbook:1040
+#: index-in.docbook:1059
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/radiobutton\">Source Code</ulink>"
@@ -2321,11 +2361,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buttons/radiobutton\">源代码</ulink>"
 
-#: C/index-in.docbook:1050 C/index-in.docbook:1156
+#: index-in.docbook:1069 index-in.docbook:1175
 msgid "Range Widgets"
 msgstr "范围(Range)部件"
 
-#: C/index-in.docbook:1052
+#: index-in.docbook:1071
 msgid ""
 "<classname>Gtk::Scale</classname> and <classname>Gtk::Scrollbar</classname> "
 "both inherit from <classname>Gtk::Range</classname> and share much "
@@ -2343,7 +2383,7 @@ msgstr ""
 "击的位置移动,可能是移动到终点,也可能是移动一段距离,这取决于你用的是鼠标的"
 "哪个按键。这和滚动条的行为很类似。"
 
-#: C/index-in.docbook:1063
+#: index-in.docbook:1082
 msgid ""
 "As will be explained in the <link linkend=\"chapter-adjustment"
 "\">Adjustments</link> section, all Range widgets are associated with an "
@@ -2367,7 +2407,7 @@ msgstr ""
 "而且还可以和其它部件共享。请参看 <link linkend=\"chapter-adjustment\">调整</"
 "link>部分以得到更详细的信息。"
 
-#: C/index-in.docbook:1077
+#: index-in.docbook:1096
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Range.html";
 "\">Reference</ulink>"
@@ -2375,11 +2415,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Range.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1080
+#: index-in.docbook:1099
 msgid "Scrollbar Widgets"
 msgstr "滚动条部件 (Scrollbar)"
 
-#: C/index-in.docbook:1082
+#: index-in.docbook:1101
 msgid ""
 "These are standard scrollbars. They should be used only to scroll another "
 "widget, such as a <classname>Gtk::Entry</classname> or a <classname>Gtk::"
@@ -2390,14 +2430,14 @@ msgstr ""
 "Entry</classname> 或 <classname>Gtk::Viewport</classname>,当然,通常使用 "
 "<classname>Gtk::ScrolledWindow</classname> 会更容易一些。"
 
-#: C/index-in.docbook:1089
+#: index-in.docbook:1108
 msgid ""
 "The orientation of a <classname>Gtk::Scrollbar</classname> can be either "
 "horizontal or vertical."
 msgstr ""
 "<classname>Gtk::Scrollbar</classname>的方向可以是水平的也可以是垂直的。"
 
-#: C/index-in.docbook:1094
+#: index-in.docbook:1113
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scrollbar.";
 "html\">Reference</ulink>"
@@ -2405,11 +2445,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scrollbar.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:1099
+#: index-in.docbook:1118
 msgid "Scale Widgets"
 msgstr "比例部件 (Scale)"
 
-#: C/index-in.docbook:1101
+#: index-in.docbook:1120
 msgid ""
 "<classname>Gtk::Scale</classname> widgets (or \"sliders\") allow the user to "
 "visually select and manipulate a value within a specific range. You might "
@@ -2421,7 +2461,7 @@ msgstr ""
 "直观地调节它的值。例如,你可以用它来调节一副预览图片的放大率、或者控制颜色的"
 "亮度,或者指定多少分钟后执行屏幕保护。"
 
-#: C/index-in.docbook:1110
+#: index-in.docbook:1129
 msgid ""
 "As with <classname>Scrollbar</classname>s, the orientation can be either "
 "horizontal or vertical. The default constructor creates an "
@@ -2434,11 +2474,11 @@ msgstr ""
 "<literal>0.0</literal>。当然,这显然没有意义,所以你需要设置一些 "
 "<classname>Adjustment</classname> 的细节来让它获得有意义的行为。"
 
-#: C/index-in.docbook:1119
+#: index-in.docbook:1138
 msgid "Useful methods"
 msgstr "一些有用的方法"
 
-#: C/index-in.docbook:1121
+#: index-in.docbook:1140
 msgid ""
 "<classname>Scale</classname> widgets can display their current value as a "
 "number next to the trough. By default they show the value, but you can "
@@ -2448,7 +2488,7 @@ msgstr ""
 "个数值的,但是你可以通过调用 <methodname>set_draw_value()</methodname> 方法来"
 "设置是否显示该值。"
 
-#: C/index-in.docbook:1127
+#: index-in.docbook:1146
 msgid ""
 "The value displayed by a scale widget is rounded to one decimal point by "
 "default, as is the <literal>value</literal> field in its <classname>Gtk::"
@@ -2459,7 +2499,7 @@ msgstr ""
 "<literal>value</literal> 的数值,并且会被四舍五入到一位小数。你可以通过 "
 "<methodname>set_digits()</methodname> 方法来改变显示的小数位数。"
 
-#: C/index-in.docbook:1134
+#: index-in.docbook:1153
 msgid ""
 "Also, the value can be drawn in different positions relative to the trough, "
 "specified by the <methodname>set_value_pos()</methodname> method."
@@ -2467,7 +2507,7 @@ msgstr ""
 "另外,通过使用 <methodname>set_value_pos()</methodname>,可以使值显示在相对于"
 "滑块不同的位置。"
 
-#: C/index-in.docbook:1139
+#: index-in.docbook:1158
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scale.html";
 "\">Reference</ulink>"
@@ -2475,7 +2515,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scale.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1147
+#: index-in.docbook:1166
 msgid ""
 "This example displays a window with three range widgets all connected to the "
 "same adjustment, along with a couple of controls for adjusting some of the "
@@ -2486,7 +2526,7 @@ msgstr ""
 "调整前文讨论过的一些参数,这样你可以很清楚地看到那些参数是如何影响这些部件的"
 "行为方式的。"
 
-#: C/index-in.docbook:1162
+#: index-in.docbook:1181
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/range_widgets\">Source Code</ulink>"
@@ -2494,15 +2534,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/range_widgets\">源代码</ulink>"
 
-#: C/index-in.docbook:1169
+#: index-in.docbook:1188
 msgid "Miscellaneous Widgets"
 msgstr "杂项部件"
 
-#: C/index-in.docbook:1172 C/index-in.docbook:1212
+#: index-in.docbook:1191 index-in.docbook:1231
 msgid "Label"
 msgstr "标签(Label)"
 
-#: C/index-in.docbook:1174
+#: index-in.docbook:1193
 msgid ""
 "Labels are the main method of placing non-editable text in windows, for "
 "instance to place a title next to an <classname>Entry</classname> widget. "
@@ -2515,7 +2555,7 @@ msgstr ""
 "稍后调用<methodname>set_text()</methodname>或<methodname>set_markup()</"
 "methodname>方法设置想要显示的文本。"
 
-#: C/index-in.docbook:1181
+#: index-in.docbook:1200
 msgid ""
 "The width of the label will be adjusted automatically. You can produce multi-"
 "line labels by putting line breaks (\"\\n\") in the label string."
@@ -2523,7 +2563,7 @@ msgstr ""
 "标签会自动调整宽度。你也可以通过在标签锁显示的字符串中放置换行符(\"\\n\")来生"
 "成多行标签。"
 
-#: C/index-in.docbook:1185
+#: index-in.docbook:1204
 msgid ""
 "The label text can be justified using the <methodname>set_justify()</"
 "methodname> method. The widget is also capable of word-wrapping, which can "
@@ -2533,7 +2573,7 @@ msgstr ""
 "还具有自动换行功能,你可以使用<methodname>set_line_wrap()</methodname>激活"
 "它。"
 
-#: C/index-in.docbook:1191
+#: index-in.docbook:1210
 msgid ""
 "Gtk::Label supports some simple formatting, for instance allowing you to "
 "make some text bold, colored, or larger. You can do this by providing a "
@@ -2547,7 +2587,7 @@ msgstr ""
 "PangoMarkupFormat.html\">Pango 标记语法</ulink>。例如, <code> &lt;b&gt;bold "
 "text&lt;/b&gt; and &lt;s&gt;strikethrough text&lt;/s&gt; </code> 。"
 
-#: C/index-in.docbook:1200
+#: index-in.docbook:1219
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Label.html";
 "\">Reference</ulink>"
@@ -2555,7 +2595,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Label.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1203
+#: index-in.docbook:1222
 msgid ""
 "Below is a short example to illustrate these functions. This example makes "
 "use of the Frame widget to better demonstrate the label styles. (The Frame "
@@ -2569,7 +2609,7 @@ msgstr ""
 "link>)仅当你按<keycap>Alt</keycap>键时,<literal>m_Label_Normal</literal>的第"
 "一个字符才显示为下划线的样式。"
 
-#: C/index-in.docbook:1218
+#: index-in.docbook:1237
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/label\">Source Code</ulink>"
@@ -2577,15 +2617,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/label\">源代码</ulink>"
 
-#: C/index-in.docbook:1225 C/index-in.docbook:1282
+#: index-in.docbook:1244 index-in.docbook:1301
 msgid "Entry"
 msgstr "条目(Entry)"
 
-#: C/index-in.docbook:1228
+#: index-in.docbook:1247
 msgid "Simple Use"
 msgstr "简易用法"
 
-#: C/index-in.docbook:1230
+#: index-in.docbook:1249
 msgid ""
 "Entry widgets allow the user to enter text. You can change the contents with "
 "the <methodname>set_text()</methodname> method, and read the current "
@@ -2595,7 +2635,7 @@ msgstr ""
 "改部件当前的内容,还可以使用<methodname>get_text()</methodname>方法读取当前的"
 "内容。"
 
-#: C/index-in.docbook:1235
+#: index-in.docbook:1254
 msgid ""
 "Occasionally you might want to make an <classname>Entry</classname> widget "
 "read-only. This can be done by passing <literal>false</literal> to the "
@@ -2605,7 +2645,7 @@ msgstr ""
 "<methodname>set_editable()</methodname>方法传递<literal>false</literal>做到这"
 "点。"
 
-#: C/index-in.docbook:1241
+#: index-in.docbook:1260
 msgid ""
 "For the input of passwords, passphrases and other information you don't want "
 "echoed on the screen, calling <methodname>set_visibility()</methodname> with "
@@ -2615,7 +2655,7 @@ msgstr ""
 "<methodname>set_visibility()</methodname>方法传递<literal>false</literal>使输"
 "入文本被隐藏。"
 
-#: C/index-in.docbook:1247
+#: index-in.docbook:1266
 msgid ""
 "You might want to be notified whenever the user types in a text entry "
 "widget. <classname>Gtk::Entry</classname> provides two signals, "
@@ -2642,7 +2682,7 @@ msgstr ""
 "linkend=\"sec-comboboxentry\">带有条目的组合框</link>小结包含了使用这些信号的"
 "示例程序。"
 
-#: C/index-in.docbook:1262
+#: index-in.docbook:1281
 msgid ""
 "If you pass <literal>true</literal> to the "
 "<methodname>set_activates_default()</methodname> method, pressing "
@@ -2662,7 +2702,7 @@ msgstr ""
 "<methodname>Gtk::Widget::set_can_default()</methodname>和<methodname>Gtk::"
 "Widget::grab_default()</methodname>。"
 
-#: C/index-in.docbook:1272
+#: index-in.docbook:1291
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Entry.html";
 "\">Reference</ulink>"
@@ -2670,11 +2710,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Entry.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1274
+#: index-in.docbook:1293
 msgid "Simple Entry Example"
 msgstr "简单的条目示例"
 
-#: C/index-in.docbook:1275
+#: index-in.docbook:1294
 msgid ""
 "This example uses <classname>Gtk::Entry</classname>. It also has two "
 "<classname>CheckButton</classname>s, with which you can toggle the editable "
@@ -2684,7 +2724,7 @@ msgstr ""
 "<classname>CheckButton</classname>,你可以使用他们切换条目部件的可见性和可编"
 "辑性标志。"
 
-#: C/index-in.docbook:1288
+#: index-in.docbook:1307
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/simple\">Source Code</ulink>"
@@ -2692,11 +2732,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/simple\">源代码</ulink>"
 
-#: C/index-in.docbook:1295 C/index-in.docbook:1329
+#: index-in.docbook:1314 index-in.docbook:1348
 msgid "Entry Completion"
 msgstr "条目补全(Entry Completion)"
 
-#: C/index-in.docbook:1296
+#: index-in.docbook:1315
 msgid ""
 "An <classname>Entry</classname> widget can offer a drop-down list of pre-"
 "existing choices based on the first few characters typed by the user. For "
@@ -2705,7 +2745,7 @@ msgstr ""
 "<classname>Entry</classname>条目组件可以通过用户输入的前几个字符提供预先准备"
 "好选项的下拉列表。例如,在搜索对话框中提供以前输入过的文本作为建议。"
 
-#: C/index-in.docbook:1301
+#: index-in.docbook:1320
 msgid ""
 "To enable this functionality, you must create an <classname>EntryCompletion</"
 "classname> object, and provide it to the <classname>Entry</classname> widget "
@@ -2715,7 +2755,7 @@ msgstr ""
 "使用<classname>Entry</classname>部件的<methodname>set_completion()</"
 "methodname>方法将其提供给条目部件。"
 
-#: C/index-in.docbook:1306
+#: index-in.docbook:1325
 msgid ""
 "The <classname>EntryCompletion</classname> may use a <classname>TreeModel</"
 "classname> containing possible entries, specified with "
@@ -2728,7 +2768,7 @@ msgstr ""
 "该调用<methodname>set_text_column()</methodname>指定该模型的那一行用以匹配可"
 "能的文本条目。"
 
-#: C/index-in.docbook:1312
+#: index-in.docbook:1331
 msgid ""
 "Alternatively, if a complete list of possible entries would be too large or "
 "too inconvenient to generate, a callback slot may instead be specified with "
@@ -2739,7 +2779,7 @@ msgstr ""
 "<methodname>set_match_func()</methodname>指定一个回调槽。这在你想匹配字符串中"
 "开头以外的部分的时候这会很有用。"
 
-#: C/index-in.docbook:1318
+#: index-in.docbook:1337
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1EntryCompletion.html\">Reference</ulink>"
@@ -2747,11 +2787,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1EntryCompletion.html\">参考</ulink>"
 
-#: C/index-in.docbook:1320
+#: index-in.docbook:1339
 msgid "Entry Completion Example"
 msgstr "条目补全示例"
 
-#: C/index-in.docbook:1321
+#: index-in.docbook:1340
 msgid ""
 "This example creates a <classname>Gtk::EntryCompletion</classname> and "
 "associates it with a <classname>Gtk::Entry</classname> widget. The "
@@ -2762,7 +2802,7 @@ msgstr ""
 "<classname>Gtk::Entry</classname>相关联。补全使用了一个包含了可能条目的"
 "<classname>Gtk::TreeModel</classname>以及一些其他的额外的操作。"
 
-#: C/index-in.docbook:1335
+#: index-in.docbook:1354
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/completion\">Source Code</ulink>"
@@ -2770,11 +2810,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/completion\">源代码</ulink>"
 
-#: C/index-in.docbook:1341
+#: index-in.docbook:1360
 msgid "Entry Icons"
 msgstr "条目图标"
 
-#: C/index-in.docbook:1342
+#: index-in.docbook:1361
 msgid ""
 "An <classname>Entry</classname> widget can show an icon at the start or end "
 "of the text area. The icon can be specifed by methods such as "
@@ -2789,11 +2829,11 @@ msgstr ""
 "标。应用程序可以通过响应<methodname>signal_icon_press</methodname>信号来处理"
 "用户按下图标事件。"
 
-#: C/index-in.docbook:1349
+#: index-in.docbook:1368
 msgid "Entry Icon Example"
 msgstr "条目图标示例"
 
-#: C/index-in.docbook:1350
+#: index-in.docbook:1369
 msgid ""
 "This example shows a <classname>Gtk::Entry</classname> widget with a named "
 "search icon, and prints text to the terminal when the icon is pressed."
@@ -2801,11 +2841,11 @@ msgstr ""
 "这个示例显示带有具名搜索图标的<classname>Gtk::Entry</classname>部件,并且在按"
 "下这个图标的时候将该名称打印到终端上。"
 
-#: C/index-in.docbook:1356
+#: index-in.docbook:1375
 msgid "Entry with Icon"
 msgstr "带图标的条目"
 
-#: C/index-in.docbook:1362
+#: index-in.docbook:1381
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/icon\">Source Code</ulink>"
@@ -2813,11 +2853,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/icon\">源代码</ulink>"
 
-#: C/index-in.docbook:1368
+#: index-in.docbook:1387
 msgid "Entry Progress"
 msgstr "条目进度"
 
-#: C/index-in.docbook:1369
+#: index-in.docbook:1388
 msgid ""
 "An <classname>Entry</classname> widget can show a progress bar inside the "
 "text area, under the entered text. The progress bar will be shown if the "
@@ -2829,21 +2869,21 @@ msgstr ""
 "<methodname>set_progress_pulse_step()</methodname>方法被调用的时候进度条将显"
 "示出来。"
 
-#: C/index-in.docbook:1374
+#: index-in.docbook:1393
 msgid "Entry Progress Example"
 msgstr "条目进度示例"
 
-#: C/index-in.docbook:1375
+#: index-in.docbook:1394
 msgid ""
 "This example shows a <classname>Gtk::Entry</classname> widget with a "
 "progress bar."
 msgstr "这个示例显示一个带有进度条的<classname>Gtk::Entry</classname>部件。"
 
-#: C/index-in.docbook:1381
+#: index-in.docbook:1400
 msgid "Entry with Progress Bar"
 msgstr "带有进度条的条目"
 
-#: C/index-in.docbook:1387
+#: index-in.docbook:1406
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/progress\">Source Code</ulink>"
@@ -2851,11 +2891,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/entry/progress\">源代码</ulink>"
 
-#: C/index-in.docbook:1395 C/index-in.docbook:1517
+#: index-in.docbook:1414 index-in.docbook:1536
 msgid "SpinButton"
 msgstr "微调按钮(SpinButton)"
 
-#: C/index-in.docbook:1397
+#: index-in.docbook:1416
 msgid ""
 "A <classname>SpinButton</classname> allows the user to select a value from a "
 "range of numeric values. It has an <classname>Entry</classname> widget with "
@@ -2869,7 +2909,7 @@ msgstr ""
 "值在可能的范围内“旋转”。你也可以直接在<classname>Entry</classname>部件中输入"
 "一个值。"
 
-#: C/index-in.docbook:1405
+#: index-in.docbook:1424
 msgid ""
 "The value can have an adjustable number of decimal places, and the step size "
 "is configurable. <classname>SpinButton</classname>s have an 'auto-repeat' "
@@ -2880,37 +2920,37 @@ msgstr ""
 "这个值的小数位可以进行调整,步长也可以进行配置。<classname>SpinButton</"
 "classname>具有“自动重复”功能:长按递增、递减按钮该值的变化速度会越来越快。"
 
-#: C/index-in.docbook:1420
+#: index-in.docbook:1439
 msgid "<literal>value</literal>: value for the Spin Button"
 msgstr "<literal>value</literal>:微调按钮的值"
 
-#: C/index-in.docbook:1426
+#: index-in.docbook:1445
 msgid "<literal>lower</literal>: lower range value"
 msgstr "<literal>lower</literal>:微调按钮允许的最小值"
 
-#: C/index-in.docbook:1432
+#: index-in.docbook:1451
 msgid "<literal>upper</literal>: upper range value"
 msgstr "<literal>upper</literal>:微调按钮允许的最大值"
 
-#: C/index-in.docbook:1437
+#: index-in.docbook:1456
 msgid ""
 "<literal>step_increment</literal>: value to increment/decrement when "
 "pressing mouse button 1"
 msgstr ""
 "<literal>step_increment</literal>:鼠标键1(通常是左键)点击一下递增/递减的值"
 
-#: C/index-in.docbook:1444
+#: index-in.docbook:1463
 msgid ""
 "<literal>page_increment</literal>: value to increment/decrement when "
 "pressing mouse button 2"
 msgstr ""
 "<literal>page_increment</literal>:鼠标键2(通常是右键)点击一下递增/递减的值"
 
-#: C/index-in.docbook:1451
+#: index-in.docbook:1470
 msgid "<literal>page_size</literal>: unused"
 msgstr "<literal>page_size</literal>:目前没作用"
 
-#: C/index-in.docbook:1412
+#: index-in.docbook:1431
 msgid ""
 "<classname>SpinButton</classname>s use an <link linkend=\"chapter-adjustment"
 "\">Adjustment</link> object to hold information about the range of values. "
@@ -2921,7 +2961,7 @@ msgstr ""
 "整(Adjustment)</link>对象保存值的范围信息。下述调整属性由微调按钮使用:<_:"
 "itemizedlist-1/>"
 
-#: C/index-in.docbook:1459
+#: index-in.docbook:1478
 msgid ""
 "Additionally, mouse button 3 can be used to jump directly to the "
 "<literal>upper</literal> or <literal>lower</literal> values."
@@ -2929,7 +2969,7 @@ msgstr ""
 "另外,鼠标键3(通常是中键)用于直接跳到<literal>upper</literal>或"
 "<literal>lower</literal> values。"
 
-#: C/index-in.docbook:1464
+#: index-in.docbook:1483
 msgid ""
 "The <classname>SpinButton</classname> can create a default "
 "<classname>Adjustment</classname>, which you can access via the "
@@ -2942,14 +2982,14 @@ msgstr ""
 "classname>,也可以通过<classname>SpinButton</classname>的构造函数直接使用一个"
 "已经存在的<classname>Adjustment</classname>。"
 
-#: C/index-in.docbook:1474
+#: index-in.docbook:1493
 msgid ""
 "The number of decimal places can be altered using the "
 "<methodname>set_digits()</methodname> method."
 msgstr ""
 "数值的小数位可以使用<methodname>set_digits()</methodname>方法进行调整。"
 
-#: C/index-in.docbook:1479
+#: index-in.docbook:1498
 msgid ""
 "You can set the spinbutton's value using the <methodname>set_value()</"
 "methodname> method, and retrieve it with <methodname>get_value()</"
@@ -2958,7 +2998,7 @@ msgstr ""
 "你可以使用<methodname>set_value()</methodname>方法设置微调按钮的值,也可以使"
 "用<methodname>get_value()</methodname>方法获得微调按钮的值。"
 
-#: C/index-in.docbook:1484
+#: index-in.docbook:1503
 msgid ""
 "The <methodname>spin()</methodname> method 'spins' the "
 "<classname>SpinButton</classname>, as if its increment or decrement button "
@@ -2969,7 +3009,7 @@ msgstr ""
 "传递一个<classname>Gtk::SpinType</classname>对象给该方法以指定是递增还是递"
 "减。"
 
-#: C/index-in.docbook:1491
+#: index-in.docbook:1510
 msgid ""
 "To prevent the user from typing non-numeric characters into the entry box, "
 "pass <literal>true</literal> to the <methodname>set_numeric()</methodname> "
@@ -2978,7 +3018,7 @@ msgstr ""
 "将<literal>true</literal>传递给<methodname>set_numeric()</methodname>方法可以"
 "阻止用户在条目框内输入非数字字符。"
 
-#: C/index-in.docbook:1496
+#: index-in.docbook:1515
 msgid ""
 "To make the <classname>SpinButton</classname> 'wrap' between its upper and "
 "lower bounds, use the <methodname>set_wrap()</methodname> method."
@@ -2986,7 +3026,7 @@ msgstr ""
 "使用<methodname>set_wrap()</methodname>方法指定<classname>SpinButton</"
 "classname>的值到达上下限的时候是否绕回。"
 
-#: C/index-in.docbook:1501
+#: index-in.docbook:1520
 msgid ""
 "To force it to snap to the nearest <literal>step_increment</literal>, use "
 "<methodname>set_snap_to_ticks()</methodname>."
@@ -2995,7 +3035,7 @@ msgstr ""
 "效值的时候强制校正到最接近<literal>step_increment</literal>策略可达到的有效"
 "值。"
 
-#: C/index-in.docbook:1506
+#: index-in.docbook:1525
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1SpinButton.html\">Reference</ulink>"
@@ -3003,11 +3043,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1SpinButton.html\">参考</ulink>"
 
-#: C/index-in.docbook:1512
+#: index-in.docbook:1531
 msgid "Here's an example of a <classname>SpinButton</classname> in action:"
 msgstr "这是一个使用<classname>SpinButton</classname>的示例:"
 
-#: C/index-in.docbook:1523
+#: index-in.docbook:1542
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/spinbutton\">Source Code</ulink>"
@@ -3015,11 +3055,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/spinbutton\">源代码</ulink>"
 
-#: C/index-in.docbook:1530 C/index-in.docbook:1578
+#: index-in.docbook:1549 index-in.docbook:1597
 msgid "ProgressBar"
 msgstr "进度条(ProgressBar)"
 
-#: C/index-in.docbook:1532
+#: index-in.docbook:1551
 msgid ""
 "Progress bars are used to show the status of an ongoing operation. For "
 "instance, a <classname>ProgressBar</classname> can show how much of a task "
@@ -3028,7 +3068,7 @@ msgstr ""
 "进度条用于显示正在进行的操作的状态。例如,<classname>ProgressBar</classname>"
 "可以用于显示已经有多少任务被完成。"
 
-#: C/index-in.docbook:1538
+#: index-in.docbook:1557
 msgid ""
 "To change the value shown, use the <methodname>set_fraction()</methodname> "
 "method, passing a <type>double</type> between 0.0 and 1.0 to provide the new "
@@ -3037,7 +3077,7 @@ msgstr ""
 "要修改显示的值,请调用<methodname>set_fraction()</methodname>方法,向该方法传"
 "递一个0.0到1.0之间的<type>double</type>值。"
 
-#: C/index-in.docbook:1543
+#: index-in.docbook:1562
 msgid ""
 "A <classname>ProgressBar</classname> is horizontal and left-to-right by "
 "default, but you can change it to a vertical progress bar by using the "
@@ -3046,7 +3086,7 @@ msgstr ""
 "<classname>ProgressBar</classname>默认是水平且从左向右的,但是你可以使用"
 "<methodname>set_orientation()</methodname>方法来改变这个行为。"
 
-#: C/index-in.docbook:1549
+#: index-in.docbook:1568
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ProgressBar.html\">Reference</ulink>"
@@ -3054,11 +3094,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ProgressBar.html\">参考</ulink>"
 
-#: C/index-in.docbook:1552
+#: index-in.docbook:1571
 msgid "Activity Mode"
 msgstr "活动模式"
 
-#: C/index-in.docbook:1553
+#: index-in.docbook:1572
 msgid ""
 "Besides indicating the amount of progress that has occured, the progress bar "
 "can also be used to indicate that there is some activity; this is done by "
@@ -3073,7 +3113,7 @@ msgstr ""
 "度条显示一个小矩形,该矩形可以在进度条内前后移动。活动模式在无法确定操作的进"
 "度的时候很有用(例如,接受一个长度未知的文件)。"
 
-#: C/index-in.docbook:1563
+#: index-in.docbook:1582
 msgid ""
 "To do this, you need to call the <methodname>pulse()</methodname> method at "
 "regular intervals. You can also choose the step size, with the "
@@ -3082,7 +3122,7 @@ msgstr ""
 "为此,你还需要定时调用<methodname>pulse()</methodname>方法。你还可以使用"
 "<methodname>set_pulse_step()</methodname>方法控制矩形的移动步长。"
 
-#: C/index-in.docbook:1569
+#: index-in.docbook:1588
 msgid ""
 "The progress bar can also display a configurable text string next to the "
 "bar, using the <methodname>set_text()</methodname> method."
@@ -3090,7 +3130,7 @@ msgstr ""
 "进度条还可以使用<methodname>set_text()</methodname>方法来在其边上显示可配置的"
 "文本字符串。"
 
-#: C/index-in.docbook:1584
+#: index-in.docbook:1603
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/progressbar\">Source Code</ulink>"
@@ -3098,11 +3138,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/progressbar\">源代码</ulink>"
 
-#: C/index-in.docbook:1592 C/index-in.docbook:1602
+#: index-in.docbook:1611 index-in.docbook:1621
 msgid "InfoBar"
 msgstr "信息栏(InfoBar)"
 
-#: C/index-in.docbook:1594
+#: index-in.docbook:1613
 msgid ""
 "An <classname>InfoBar</classname> may show small items of information or ask "
 "brief questions. Unlike a <classname>Dialog</classname>, it appears at the "
@@ -3113,7 +3153,7 @@ msgstr ""
 "示在窗口的顶部而不是和<classname>Dialog</classname>一样打开一个新的窗口。但是"
 "他的API和<link linkend=\"chapter-dialogs\">Gtk::Dialog</link>的API十分相似。"
 
-#: C/index-in.docbook:1597
+#: index-in.docbook:1616
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1InfoBar.";
 "html\">Reference</ulink>"
@@ -3121,7 +3161,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1InfoBar.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:1608
+#: index-in.docbook:1627
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/infobar\">Source Code</ulink>"
@@ -3129,11 +3169,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/infobar\">源代码</ulink>"
 
-#: C/index-in.docbook:1615
+#: index-in.docbook:1634
 msgid "Tooltips"
 msgstr "工具提示框(Tooltips)"
 
-#: C/index-in.docbook:1617
+#: index-in.docbook:1636
 msgid ""
 "Tooltips are the little information windows that pop up when you leave your "
 "pointer over a widget for a few seconds. Use <methodname>set_tooltip_text()</"
@@ -3146,7 +3186,7 @@ msgstr ""
 "classname>设置一个文本字符串作为提示。<classname>Gtk::Tooltip</classname>被用"
 "作更高级的提示工具,例如显示图像和文本。"
 
-#: C/index-in.docbook:1626
+#: index-in.docbook:1645
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Widget.";
 "html\">Widget Reference</ulink>"
@@ -3154,7 +3194,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Widget.";
 "html\">部件参考</ulink>"
 
-#: C/index-in.docbook:1627
+#: index-in.docbook:1646
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Tooltip.";
 "html\">Tooltip Reference</ulink>"
@@ -3162,11 +3202,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Tooltip.";
 "html\">工具提示框参考</ulink>"
 
-#: C/index-in.docbook:1632
+#: index-in.docbook:1651
 msgid "Tooltip"
 msgstr "工具提示框(Tooltip)"
 
-#: C/index-in.docbook:1638
+#: index-in.docbook:1657
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/tooltips\">Source Code</ulink>"
@@ -3174,11 +3214,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/tooltips\">源代码</ulink>"
 
-#: C/index-in.docbook:1647
+#: index-in.docbook:1666
 msgid "Container Widgets"
 msgstr "容器(Container)部件"
 
-#: C/index-in.docbook:1649
+#: index-in.docbook:1668
 msgid ""
 "Container widgets, like other widgets, derive from <classname>Gtk::Widget</"
 "classname>. Some container widgets, such as <classname>Gtk::Grid</classname> "
@@ -3191,11 +3231,11 @@ msgstr ""
 "们具有更为复杂的接口。还有些容器部件只能容纳一个子部件,例如<classname>Gtk::"
 "Frame</classname>"
 
-#: C/index-in.docbook:1657
+#: index-in.docbook:1676
 msgid "Single-item Containers"
 msgstr "单项容器"
 
-#: C/index-in.docbook:1659
+#: index-in.docbook:1678
 msgid ""
 "Most single-item container widgets have <methodname>set_child()</methodname> "
 "and <methodname>unset_child()</methodname> methods for the child widget. "
@@ -3208,7 +3248,7 @@ msgstr ""
 "classname>和<classname>Gtk::Window</classname>从技术上来说是单项容器,但是我"
 "们已经在其他地方讨论过它们。"
 
-#: C/index-in.docbook:1666
+#: index-in.docbook:1685
 msgid ""
 "We also discuss the <classname>Gtk::Paned</classname> widget, which allows "
 "you to divide a window into two separate \"panes\". This widget actually "
@@ -3218,11 +3258,11 @@ msgstr ""
 "的\"窗格\",这个部件实际上可以包含两个子部件,但是他只能包含固定数量的部件,"
 "因此也将其称为单项容器。"
 
-#: C/index-in.docbook:1673 C/index-in.docbook:1687
+#: index-in.docbook:1692 index-in.docbook:1706
 msgid "Frame"
 msgstr "框架(Frame)"
 
-#: C/index-in.docbook:1675
+#: index-in.docbook:1694
 msgid ""
 "Frames can enclose one or a group of widgets within a box, optionally with a "
 "title. For instance, you might place a group of <classname>ToggleButton</"
@@ -3233,7 +3273,7 @@ msgstr ""
 "组<classname>ToggleButton</classname>或者<classname>CheckButton</classname>放"
 "入一个<classname>Frame</classname>中。"
 
-#: C/index-in.docbook:1682
+#: index-in.docbook:1701
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Frame.html";
 "\">Reference</ulink>"
@@ -3241,7 +3281,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Frame.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1693
+#: index-in.docbook:1712
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/frame\">Source Code</ulink>"
@@ -3249,11 +3289,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/frame\">源代码</ulink>"
 
-#: C/index-in.docbook:1701 C/index-in.docbook:1727
+#: index-in.docbook:1720 index-in.docbook:1746
 msgid "Paned"
 msgstr "窗格(Paned)"
 
-#: C/index-in.docbook:1703
+#: index-in.docbook:1722
 msgid ""
 "Panes divide a widget into two halves, separated by a moveable divider. The "
 "two halves (panes) can be oriented either horizontally (side by side) or "
@@ -3262,7 +3302,7 @@ msgstr ""
 "窗格用一个可移动的分隔符将一个部件一分为二。其可以水平(使两个窗格并排)也可"
 "以竖直(使两个窗格一个在另一个之上)的分隔部件。"
 
-#: C/index-in.docbook:1709
+#: index-in.docbook:1728
 msgid ""
 "Unlike the other widgets in this section, pane widgets contain not one but "
 "two child widgets, one in each pane. Therefore, you should use "
@@ -3274,7 +3314,7 @@ msgstr ""
 "<methodname>set_end_child()</methodname>替代<methodname>set_child()</"
 "methodname>方法。"
 
-#: C/index-in.docbook:1716
+#: index-in.docbook:1735
 msgid ""
 "You can adjust the position of the divider using the "
 "<methodname>set_position()</methodname> method, and you will probably need "
@@ -3283,7 +3323,7 @@ msgstr ""
 "如果你需要,你可以使用<methodname>set_position()</methodname>调整分割线的位"
 "置。"
 
-#: C/index-in.docbook:1722
+#: index-in.docbook:1741
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Paned.html";
 "\">Reference</ulink>"
@@ -3291,7 +3331,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Paned.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:1733
+#: index-in.docbook:1752
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/paned\">Source Code</ulink>"
@@ -3299,11 +3339,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/paned\">源代码</ulink>"
 
-#: C/index-in.docbook:1740 C/index-in.docbook:1772
+#: index-in.docbook:1759 index-in.docbook:1791
 msgid "ScrolledWindow"
 msgstr "滚动窗口"
 
-#: C/index-in.docbook:1742
+#: index-in.docbook:1761
 msgid ""
 "<classname>ScrolledWindow</classname> widgets create a scrollable area. You "
 "can insert any type of widget into a <classname>ScrolledWindow</classname>, "
@@ -3316,7 +3356,7 @@ msgstr ""
 "都可以通过滚动条来访问它。请注意虽然<classname>ScrolledWindow</classname>的名"
 "称像是<classname>Gtk::Window</classname>的衍生部件,但其实不是。"
 
-#: C/index-in.docbook:1751
+#: index-in.docbook:1770
 msgid ""
 "Scrolled windows have <emphasis>scrollbar policies</emphasis> which "
 "determine whether the <classname>Scrollbar</classname>s will be displayed. "
@@ -3336,7 +3376,7 @@ msgstr ""
 "候,只有在被包含的部件大于可见区域的时候滚动条才会被显示出来。而"
 "<literal>Gtk::PolicyType::ALWAYS</literal>将使滚动条始终显示。"
 
-#: C/index-in.docbook:1763
+#: index-in.docbook:1782
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ScrolledWindow.html\">Reference</ulink>"
@@ -3344,7 +3384,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ScrolledWindow.html\">参考</ulink>"
 
-#: C/index-in.docbook:1767
+#: index-in.docbook:1786
 msgid ""
 "Here is a simple example that packs 100 toggle buttons into a "
 "ScrolledWindow. Try resizing the window to see the scrollbars react."
@@ -3352,7 +3392,7 @@ msgstr ""
 "这是一个简单的示例,其将100个开关按钮放入滚动窗口中。你可以尝试调整窗口的大"
 "小,以查看滚动条的反应。"
 
-#: C/index-in.docbook:1778
+#: index-in.docbook:1797
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/scrolledwindow\">Source Code</ulink>"
@@ -3360,11 +3400,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/scrolledwindow\">源代码</ulink>"
 
-#: C/index-in.docbook:1785 C/index-in.docbook:1807
+#: index-in.docbook:1804 index-in.docbook:1826
 msgid "AspectFrame"
 msgstr "定比框架(AspectFrame)"
 
-#: C/index-in.docbook:1787
+#: index-in.docbook:1806
 msgid ""
 "The <classname>AspectFrame</classname> widget looks like a <classname>Frame</"
 "classname> widget, but it also enforces the <emphasis>aspect ratio</"
@@ -3378,7 +3418,7 @@ msgstr ""
 "保持不变。并在有必要的时候添加额外的空间。例如,这将允许你显示照片并且无需在"
 "用户调整窗口大小的时候对照片进行水平/垂直变形。"
 
-#: C/index-in.docbook:1796
+#: index-in.docbook:1815
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1AspectFrame.html\">Reference</ulink>"
@@ -3386,7 +3426,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1AspectFrame.html\">参考</ulink>"
 
-#: C/index-in.docbook:1800
+#: index-in.docbook:1819
 msgid ""
 "The following program uses a <classname>Gtk::AspectFrame</classname> to "
 "present a drawing area whose aspect ratio will always be 2:1, no matter how "
@@ -3395,7 +3435,7 @@ msgstr ""
 "下面的程序使用<classname>Gtk::AspectFrame</classname>显示一个绘图区域,无论用"
 "户如何调整顶层窗口大小宽高比依旧保持2:1。"
 
-#: C/index-in.docbook:1813
+#: index-in.docbook:1832
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/aspectframe\">Source Code</ulink>"
@@ -3403,11 +3443,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/aspectframe\">源代码</ulink>"
 
-#: C/index-in.docbook:1820
+#: index-in.docbook:1839
 msgid "Other Single-item Containers"
 msgstr "其他单项容器"
 
-#: C/index-in.docbook:1822
+#: index-in.docbook:1841
 msgid ""
 "There are other single-item containers. See the reference documentation for "
 "a complete list. Here are links to some example programs that show "
@@ -3416,7 +3456,7 @@ msgstr ""
 "还有其他的单项容器。请参阅参考文档获取完整列表。这里是一些本教程其他地方未曾"
 "提及的显示容器的示例程序的链接。"
 
-#: C/index-in.docbook:1828
+#: index-in.docbook:1847
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/expander\">Source Code, Expander</ulink>"
@@ -3424,7 +3464,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/expander\">扩展器(Expander)源代码</ulink>"
 
-#: C/index-in.docbook:1829
+#: index-in.docbook:1848
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/popover\">Source Code, Popover</ulink>"
@@ -3432,11 +3472,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/popover\">气泡(Popover)源代码</ulink>"
 
-#: C/index-in.docbook:1836
+#: index-in.docbook:1855
 msgid "Multiple-item Containers"
 msgstr "多项容器"
 
-#: C/index-in.docbook:1838
+#: index-in.docbook:1857
 msgid ""
 "Multiple-item container widgets have other methods than "
 "<methodname>set_child()</methodname> and <methodname>unset_child()</"
@@ -3454,11 +3494,11 @@ msgstr ""
 "方法。多项容器的<methodname>remove()</methodname>方法需要传入一个用于指示需要"
 "删除的部件的参数。"
 
-#: C/index-in.docbook:1848
+#: index-in.docbook:1867
 msgid "Packing"
 msgstr "组装(Packing)"
 
-#: C/index-in.docbook:1849
+#: index-in.docbook:1868
 msgid ""
 "You've probably noticed that <application>gtkmm</application> windows seem "
 "\"elastic\" - they can usually be stretched in many different ways. This is "
@@ -3468,7 +3508,7 @@ msgstr ""
 "通常可以以不同方式进行拉伸。这是<emphasis>部件装填(widget packing)</emphasis>"
 "系统在起作用。"
 
-#: C/index-in.docbook:1854
+#: index-in.docbook:1873
 msgid ""
 "Many GUI toolkits require you to precisely place widgets in a window, using "
 "absolute positioning, often using a visual editor. This leads to several "
@@ -3477,7 +3517,7 @@ msgstr ""
 "许多GUI工具包使用可视化编辑器的时候都要求你使用部件相对于窗口的绝对位置。这将"
 "导致以下几个问题:"
 
-#: C/index-in.docbook:1861
+#: index-in.docbook:1880
 msgid ""
 "The widgets don't rearrange themselves when the window is resized. Some "
 "widgets are hidden when the window is made smaller, and lots of useless "
@@ -3486,7 +3526,7 @@ msgstr ""
 "在调整窗口大小的时候部件不会重新排布自己。窗口变小的时候一些部件会被隐藏窗口"
 "变大的时候会出现很多无用的空间。"
 
-#: C/index-in.docbook:1865
+#: index-in.docbook:1884
 msgid ""
 "It's impossible to predict the amount of space necessary for text after it "
 "has been translated to other languages, or displayed in a different font. On "
@@ -3496,7 +3536,7 @@ msgstr ""
 "将文本翻译成其他语言或者用其他字体显示的时候,无法预测显示文本所需要的空间。"
 "而在Unix上不可能预料在每个主题和窗口管理器下的显示效果。"
 
-#: C/index-in.docbook:1869
+#: index-in.docbook:1888
 msgid ""
 "Changing the layout of a window \"on the fly\", to make some extra widgets "
 "appear, for instance, is complex. It requires tedious recalculation of every "
@@ -3505,7 +3545,7 @@ msgstr ""
 "即时更改窗口布局以显示额外的部件将会很复杂,这需要对每个部件的位置进行繁琐的"
 "重新计算。"
 
-#: C/index-in.docbook:1875
+#: index-in.docbook:1894
 msgid ""
 "<application>gtkmm</application> uses the packing system to solve these "
 "problems. Rather than specifying the position and size of each widget in the "
@@ -3528,7 +3568,7 @@ msgstr ""
 "<application>gtkmm</application>会使用以上的信息在用户操作窗口的时候合理、顺"
 "畅的调整部件们的大小和位置。"
 
-#: C/index-in.docbook:1884
+#: index-in.docbook:1903
 msgid ""
 "<application>gtkmm</application> arranges widgets hierarchically, using "
 "<emphasis>containers</emphasis>. A container widget contains other widgets. "
@@ -3545,7 +3585,7 @@ msgstr ""
 "application>中包括<classname>Gtk::Window</classname>在内的多数容器部件都是单"
 "项部件。"
 
-#: C/index-in.docbook:1893
+#: index-in.docbook:1912
 msgid ""
 "Yes, that's correct: a Window can contain at most one widget. How, then, can "
 "we use a window for anything useful? By placing a multiple-child container "
@@ -3556,7 +3596,7 @@ msgstr ""
 "呢?答案是通过向窗口放入一个多项容器实现。最合理的部件是<classname>Gtk::"
 "Grid</classname>和<classname>Gtk::Box</classname>。"
 
-#: C/index-in.docbook:1904
+#: index-in.docbook:1923
 msgid ""
 "<classname>Gtk::Grid</classname> arranges its child widgets in rows and "
 "columns. Use <methodname>attach()</methodname> and "
@@ -3566,7 +3606,7 @@ msgstr ""
 "<methodname>attach()</methodname>和<methodname>attach_next_to()</methodname>"
 "方法向网格(Grid)部件中插入子部件。"
 
-#: C/index-in.docbook:1912
+#: index-in.docbook:1931
 msgid ""
 "<classname>Gtk::Box</classname> arranges its child widgets vertically or "
 "horizontally. Use <methodname>append()</methodname> to insert child widgets."
@@ -3574,11 +3614,11 @@ msgstr ""
 "<classname>Gtk::Box</classname>将其子部件水平或垂直排列。使用"
 "<methodname>append()</methodname>方法向盒(Box)部件插入子部件。"
 
-#: C/index-in.docbook:1920
+#: index-in.docbook:1939
 msgid "There are several other containers, which we will also discuss."
 msgstr "还有几个容器我们将在之后讨论。"
 
-#: C/index-in.docbook:1924
+#: index-in.docbook:1943
 msgid ""
 "If you've never used a packing toolkit before, it can take some getting used "
 "to. You'll probably find, however, that you don't need to rely on visual "
@@ -3587,22 +3627,22 @@ msgstr ""
 "如果你之前从未使用组装工具包,那可能需要一段时间来适应它。然后你会发现你不需"
 "要和使用其他工具包一样依赖可视化编辑工具。"
 
-#: C/index-in.docbook:1934
+#: index-in.docbook:1953
 msgid "An improved Hello World"
 msgstr "改进后的Hello World"
 
-#: C/index-in.docbook:1936
+#: index-in.docbook:1955
 msgid ""
 "Let's take a look at a slightly improved <literal>helloworld</literal>, "
 "showing what we've learnt."
 msgstr ""
 "让我们看看改进后的<literal>helloworld</literal>,以展示我们所学到的内容。"
 
-#: C/index-in.docbook:1941
+#: index-in.docbook:1960
 msgid "Hello World 2"
 msgstr "Hello World 2"
 
-#: C/index-in.docbook:1947
+#: index-in.docbook:1966
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/helloworld2\">Source Code</ulink>"
@@ -3610,7 +3650,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/helloworld2\">源代码</ulink>"
 
-#: C/index-in.docbook:1949
+#: index-in.docbook:1968
 msgid ""
 "After building and running this program, try resizing the window to see the "
 "behaviour. Also, try playing with <methodname>set_expand()</methodname>, "
@@ -3626,11 +3666,11 @@ msgstr ""
 "<methodname>set_halign()</methodname>和<methodname>set_valign()</methodname>"
 "方法。"
 
-#: C/index-in.docbook:1960
+#: index-in.docbook:1979
 msgid "Boxes"
 msgstr "盒子(Boxes)"
 
-#: C/index-in.docbook:1962
+#: index-in.docbook:1981
 msgid ""
 "Most packing uses boxes as in the above example. These are invisible "
 "containers into which we can pack our widgets. When packing widgets into a "
@@ -3643,15 +3683,15 @@ msgstr ""
 "时候部件从左到右水平插入。将部件装填到垂直盒中的时候部件从上到下垂直插入。你"
 "可以在盒中或盒侧组合使用盒以达到你所需的效果。"
 
-#: C/index-in.docbook:1971
+#: index-in.docbook:1990
 msgid "Adding widgets"
 msgstr "添加部件"
 
-#: C/index-in.docbook:1972
+#: index-in.docbook:1991
 msgid "Per-child packing options"
 msgstr "子部件装填选项"
 
-#: C/index-in.docbook:1973
+#: index-in.docbook:1992
 msgid ""
 "The <methodname>append()</methodname> method places widgets inside these "
 "containers. It will start at the top and work its way down in a "
@@ -3669,7 +3709,7 @@ msgstr ""
 "<methodname>insert_child_at_start()</methodname>方法。我们将在示例中使用"
 "<methodname>append()</methodname>。"
 
-#: C/index-in.docbook:1983
+#: index-in.docbook:2002
 msgid ""
 "There are several options governing how widgets are to be packed, and this "
 "can be confusing at first. You can modify the packing by using "
@@ -3690,15 +3730,15 @@ msgstr ""
 "设计器,看看能不能对你有所帮助。你甚至可以使用<classname>Gtk::Builder</"
 "classname>API在运行时加载GUI。"
 
-#: C/index-in.docbook:1995
+#: index-in.docbook:2014
 msgid "There are basically five different styles, as shown in this picture:"
 msgstr "如图所示,有五种不同的基本样式。"
 
-#: C/index-in.docbook:2001
+#: index-in.docbook:2020
 msgid "Box Packing 1"
 msgstr "组装盒1"
 
-#: C/index-in.docbook:2007
+#: index-in.docbook:2026
 msgid ""
 "Each line contains one horizontal <classname>Box</classname> with several "
 "buttons. Each of the buttons on a line is packed into the <classname>Box</"
@@ -3713,7 +3753,7 @@ msgstr ""
 "methodname>和<methodname>set_margin_end()</methodname>方法装入"
 "<classname>Box</classname>。"
 
-#: C/index-in.docbook:2016
+#: index-in.docbook:2035
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Box.html";
 "\">Reference</ulink>"
@@ -3721,11 +3761,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Box.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:2020
+#: index-in.docbook:2039
 msgid "Per-container packing options"
 msgstr "容器装填选项"
 
-#: C/index-in.docbook:2024
+#: index-in.docbook:2043
 #, no-wrap
 msgid ""
 "Gtk::Box(Gtk::Orientation orientation = Gtk::Orientation::HORIZONTAL, int spacing = 0);\n"
@@ -3738,7 +3778,7 @@ msgstr ""
 "void set_spacing(int spacing);\n"
 "void set_homogeneous(bool homogeneous = true);"
 
-#: C/index-in.docbook:2021
+#: index-in.docbook:2040
 msgid ""
 "Here's the constructor for the <classname>Box</classname> widget, and "
 "methods that set per-container packing options: <_:programlisting-1/> "
@@ -3753,7 +3793,7 @@ msgstr ""
 "都有一样的大小。<parameter>spacing</parameter>是每个部件之间要保留的最小像素"
 "数。"
 
-#: C/index-in.docbook:2034
+#: index-in.docbook:2053
 msgid ""
 "What's the difference between spacing (set when the box is created) and "
 "margins (set separately for each child widget)? Spacing is added between "
@@ -3765,15 +3805,15 @@ msgstr ""
 "加间距,在部件的一侧或多侧添加边距。下图能使你更清楚的理解这一点。所显示的边"
 "距是该行中每个按钮的左右边距。"
 
-#: C/index-in.docbook:2043
+#: index-in.docbook:2062
 msgid "Box Packing 2"
 msgstr "组装盒2"
 
-#: C/index-in.docbook:2053
+#: index-in.docbook:2072
 msgid "Gtk::Application and command-line options"
 msgstr "Gtk::Application和命令行选项"
 
-#: C/index-in.docbook:2054
+#: index-in.docbook:2073
 msgid ""
 "The following example program requires a command-line option. The source "
 "code shows two ways of handling command-line options in combination with "
@@ -3782,7 +3822,7 @@ msgstr ""
 "下面的示例程序需要一个命令行选项。源代码展示了两种<classname>Gtk::"
 "Application</classname>处理命令行选项的方式。"
 
-#: C/index-in.docbook:2060
+#: index-in.docbook:2079
 msgid ""
 "Handle the options in <function>main()</function> and hide them from "
 "<classname>Gtk::Application</classname> by setting <literal>argc = 1</"
@@ -3792,7 +3832,7 @@ msgstr ""
 "literal>将他们从<classname>Gtk::Application</classname>中隐藏,然后调用"
 "<methodname>Gtk::Application::run()</methodname>。"
 
-#: C/index-in.docbook:2066
+#: index-in.docbook:2085
 msgid ""
 "Give all command-line options to <methodname>Gtk::Application::run()</"
 "methodname> and add the flag <literal>Gio::Application::Flags::"
@@ -3804,7 +3844,7 @@ msgstr ""
 "<methodname>Gtk::Application::create()</methodname>方法设置标志<literal>Gio::"
 "Application::Flags::HANDLES_COMMAND_LINE</literal>。"
 
-#: C/index-in.docbook:2073
+#: index-in.docbook:2092
 msgid ""
 "You must set the optional parameter <literal>after = false</literal> in the "
 "call to <literal>signal_command_line().connect()</literal>, because your "
@@ -3821,7 +3861,7 @@ msgstr ""
 "(<classname>Gio::Application</classname>是<classname>Gtk::Application</"
 "classname>的基类)。"
 
-#: C/index-in.docbook:2086
+#: index-in.docbook:2105
 msgid ""
 "Here is the source code for the example that produced the screenshots above. "
 "When you run this example, provide a number between 1 and 3 as a command-"
@@ -3830,7 +3870,7 @@ msgstr ""
 "这是上述截图所运行示例的源代码。在运行此示例时请提供1到3之间的数字作为命令行"
 "选项以查看正在使用不同装填选项的行为。"
 
-#: C/index-in.docbook:2089
+#: index-in.docbook:2108
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/box\">Source Code</ulink>"
@@ -3838,11 +3878,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/box\">源代码</ulink>"
 
-#: C/index-in.docbook:2095 C/index-in.docbook:2124
+#: index-in.docbook:2114 index-in.docbook:2143
 msgid "Grid"
 msgstr "网格(Grid)"
 
-#: C/index-in.docbook:2097
+#: index-in.docbook:2116
 msgid ""
 "A <classname>Grid</classname> dynamically lays out child widgets in rows and "
 "columns. The dimensions of the grid do not need to be specified in the "
@@ -3851,7 +3891,7 @@ msgstr ""
 "<classname>Grid</classname>在行与列中动态的摆放他的子部件。不需要在其构造函数"
 "当中指定维数。"
 
-#: C/index-in.docbook:2102
+#: index-in.docbook:2121
 msgid ""
 "Child widgets can span multiple rows or columns, using <methodname>attach()</"
 "methodname>, or added next to an existing widget inside the grid with "
@@ -3866,7 +3906,7 @@ msgstr ""
 "<methodname>set_column_homogeneous()</methodname>令网格中所有子部件具有一致的"
 "高度或宽度。"
 
-#: C/index-in.docbook:2109
+#: index-in.docbook:2128
 msgid ""
 "You can set the <emphasis>margin</emphasis> and <emphasis>expand</emphasis> "
 "properties of the child <classname>Widget</classname>s to control their "
@@ -3875,7 +3915,7 @@ msgstr ""
 "你可以设置子部件的<emphasis>margin</emphasis>和<emphasis>expand</emphasis>属"
 "性用以控制调整网格大小时它们之间的间距。"
 
-#: C/index-in.docbook:2113
+#: index-in.docbook:2132
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Grid.html";
 "\">Reference</ulink>"
@@ -3883,7 +3923,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Grid.html";
 "\">参考</ulink>"
 
-#: C/index-in.docbook:2116
+#: index-in.docbook:2135
 msgid ""
 "This example creates a window with three buttons in a grid. The first two "
 "buttons are in the upper row, from left to right. A third button is attached "
@@ -3892,7 +3932,7 @@ msgstr ""
 "本示例创建一个窗口其中具有一个包含三个按钮的网格。前两个按钮位于最上行并从左"
 "向右排列。第三个按钮位于第一个按钮的下方,位于最下行并横跨两列。"
 
-#: C/index-in.docbook:2130
+#: index-in.docbook:2149
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/grid\">Source Code</ulink>"
@@ -3900,11 +3940,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/grid\">源代码</ulink>"
 
-#: C/index-in.docbook:2137 C/index-in.docbook:2172
+#: index-in.docbook:2156 index-in.docbook:2191
 msgid "Notebook"
 msgstr "笔记本(Notebook)"
 
-#: C/index-in.docbook:2139
+#: index-in.docbook:2158
 msgid ""
 "A <classname>Notebook</classname> has a set of stacked <literal>pages</"
 "literal>, each of which contains widgets. Labelled <literal>tabs</literal> "
@@ -3917,7 +3957,7 @@ msgstr ""
 "<classname>Notebook</classname>一次只显示一页,这样可以将好几组部件放于很小的"
 "空间当中。例如他们经常在首选项对话框中使用。"
 
-#: C/index-in.docbook:2148
+#: index-in.docbook:2167
 msgid ""
 "Use the <methodname>append_page()</methodname>, <methodname>prepend_page()</"
 "methodname> and <methodname>insert_page()</methodname> methods to add tabbed "
@@ -3928,7 +3968,7 @@ msgstr ""
 "methodname>和<methodname>insert_page()</methodname>方法可以添加带标签的页面到"
 "<literal>Notebook</literal>中,你需要为这些方法提供子部件和标签名。"
 
-#: C/index-in.docbook:2155
+#: index-in.docbook:2174
 msgid ""
 "To discover the currently visible page, use the "
 "<methodname>get_current_page()</methodname> method. This returns the page "
@@ -3939,7 +3979,7 @@ msgstr ""
 "methodname>方法。该方法返回一个页码,你可以将页码传递给"
 "<methodname>get_nth_page()</methodname>获取指向该页当前子部件的指针。"
 
-#: C/index-in.docbook:2162
+#: index-in.docbook:2181
 msgid ""
 "To programmatically change the selected page, use the "
 "<methodname>set_current_page()</methodname> method."
@@ -3947,7 +3987,7 @@ msgstr ""
 "要以编程方式改变所选的页面,请使用<methodname>set_current_page()</methodname>"
 "方法。"
 
-#: C/index-in.docbook:2167
+#: index-in.docbook:2186
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Notebook.";
 "html\">Reference</ulink>"
@@ -3955,7 +3995,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Notebook.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2178
+#: index-in.docbook:2197
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/notebook/\">Source Code</ulink>"
@@ -3963,11 +4003,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/notebook/\">源代码</ulink>"
 
-#: C/index-in.docbook:2185 C/index-in.docbook:2212
+#: index-in.docbook:2204 index-in.docbook:2231
 msgid "Assistant"
 msgstr "助手(Assistant)"
 
-#: C/index-in.docbook:2187
+#: index-in.docbook:2206
 msgid ""
 "An <classname>Assistant</classname> splits a complex operation into steps. "
 "Each step is a page, containing a header, a child widget and an action area. "
@@ -3980,7 +4020,7 @@ msgstr ""
 "按钮,这些按钮会根据页面的类型自动更新(使用<methodname>set_page_type()</"
 "methodname>设置页面类型)。"
 
-#: C/index-in.docbook:2191
+#: index-in.docbook:2210
 msgid ""
 "Use the <methodname>append_page()</methodname>, <methodname>prepend_page</"
 "methodname> and <methodname>insert_page()</methodname> methods to add pages "
@@ -3991,7 +4031,7 @@ msgstr ""
 "methodname>和<methodname>insert_page()</methodname>方法可以向"
 "<classname>Assistant</classname>添加页面,你需要每个页面提供子部件。"
 
-#: C/index-in.docbook:2195
+#: index-in.docbook:2214
 msgid ""
 "To determine the currently-visible page, use the "
 "<methodname>get_current_page()</methodname> method, and pass the result to "
@@ -4004,14 +4044,14 @@ msgstr ""
 "际部件的指针。要想用编程的方式改变当前页,请使用"
 "<methodname>set_current_page()</methodname>方法。"
 
-#: C/index-in.docbook:2199
+#: index-in.docbook:2218
 msgid ""
 "To set the title of a page, use the <methodname>set_page_title()</"
 "methodname> method."
 msgstr ""
 "要为页面设置标题,请使用<methodname>set_page_title()</methodname>方法。"
 
-#: C/index-in.docbook:2203
+#: index-in.docbook:2222
 msgid ""
 "To add widgets to the action area, use the <methodname>add_action_widget()</"
 "methodname> method. They will be packed alongside the default buttons. Use "
@@ -4021,7 +4061,7 @@ msgstr ""
 "法。他们将与默认按钮一并被装填。使用<methodname>remove_action_widget()</"
 "methodname>方法可以删除部件。"
 
-#: C/index-in.docbook:2207
+#: index-in.docbook:2226
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Assistant.";
 "html\">Reference</ulink>"
@@ -4029,7 +4069,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Assistant.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2218
+#: index-in.docbook:2237
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/assistant/\">Source Code</ulink>"
@@ -4037,11 +4077,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/assistant/\">源代码</ulink>"
 
-#: C/index-in.docbook:2225
+#: index-in.docbook:2244
 msgid "Other Multi-item Containers"
 msgstr "其他多项容器"
 
-#: C/index-in.docbook:2227
+#: index-in.docbook:2246
 msgid ""
 "There are other multi-item containers. See the reference documentation for a "
 "complete list. Here are links to some example programs that show containers, "
@@ -4050,7 +4090,7 @@ msgstr ""
 "还有其他多项容器。请参阅文档以获取完整列表。这里是一些本教程未提及的显示容器"
 "的示例程序连接。"
 
-#: C/index-in.docbook:2233
+#: index-in.docbook:2252
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/actionbar\">Source Code, ActionBar</ulink>"
@@ -4058,7 +4098,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/actionbar\">动作条(ActionBar)源代码</ulink>"
 
-#: C/index-in.docbook:2234
+#: index-in.docbook:2253
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/flowbox\">Source Code, FlowBox</ulink>"
@@ -4066,7 +4106,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/flowbox\">流式盒(FlowBox)源代码</ulink>"
 
-#: C/index-in.docbook:2235
+#: index-in.docbook:2254
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/iconview\">Source Code, IconView</ulink>"
@@ -4074,22 +4114,22 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/iconview\">图标视图(IconView)源代码</ulink>"
 
-#: C/index-in.docbook:2245
+#: index-in.docbook:2264
 msgid "The TreeView widget"
 msgstr "树形视图(TreeView)部件"
 
-#: C/index-in.docbook:2246
+#: index-in.docbook:2265
 msgid ""
 "The <classname>Gtk::TreeView</classname> widget can contain lists or trees "
 "of data, in columns."
 msgstr ""
 " <classname>Gtk::TreeView</classname>部件的每一行都可以包含数据列表或数据树。"
 
-#: C/index-in.docbook:2252
+#: index-in.docbook:2271
 msgid "The Model"
 msgstr "模型(Model)"
 
-#: C/index-in.docbook:2253
+#: index-in.docbook:2272
 msgid ""
 "Each <classname>Gtk::TreeView</classname> has an associated <classname>Gtk::"
 "TreeModel</classname>, which contains the data displayed by the "
@@ -4107,7 +4147,7 @@ msgstr ""
 "数据。也允许不同的视图显示同一个模型的不同列的数据,就像是多个SQL查询(或“视"
 "图”)显示同一个数据库表的不同字段一样。"
 
-#: C/index-in.docbook:2263
+#: index-in.docbook:2282
 msgid ""
 "Although you can theoretically implement your own Model, you will normally "
 "use either the <classname>ListStore</classname> or <classname>TreeStore</"
@@ -4116,7 +4156,7 @@ msgstr ""
 "理论上你可以实现自己的模型,但通常情况直接使用<classname>ListStore</"
 "classname>或<classname>TreeStore</classname>可以省略很多麻烦。"
 
-#: C/index-in.docbook:2269
+#: index-in.docbook:2288
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeModel.";
 "html\">Reference</ulink>"
@@ -4124,21 +4164,21 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeModel.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2272
+#: index-in.docbook:2291
 msgid "ListStore, for rows"
 msgstr "列表储存(ListStore)的行"
 
-#: C/index-in.docbook:2273
+#: index-in.docbook:2292
 msgid ""
 "The <classname>ListStore</classname> contains simple rows of data, and each "
 "row has no children."
 msgstr "<classname>ListStore</classname>包含简单的数据行,每个行都没有孩子。"
 
-#: C/index-in.docbook:2279 C/index-in.docbook:2847
+#: index-in.docbook:2298 index-in.docbook:2866
 msgid "TreeView - ListStore"
 msgstr "树形视图 - 列表储存"
 
-#: C/index-in.docbook:2285
+#: index-in.docbook:2304
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ListStore.";
 "html\">Reference</ulink>"
@@ -4146,21 +4186,21 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ListStore.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2290
+#: index-in.docbook:2309
 msgid "TreeStore, for a hierarchy"
 msgstr "具有层次的树状储存"
 
-#: C/index-in.docbook:2291
+#: index-in.docbook:2310
 msgid ""
 "The <classname>TreeStore</classname> contains rows of data, and each row may "
 "have child rows."
 msgstr "<classname>TreeStore</classname>包含数据行,并且每一行都可能有子行。"
 
-#: C/index-in.docbook:2297 C/index-in.docbook:2866
+#: index-in.docbook:2316 index-in.docbook:2885
 msgid "TreeView - TreeStore"
 msgstr "树形视图 - 树状储存"
 
-#: C/index-in.docbook:2303
+#: index-in.docbook:2322
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeStore.";
 "html\">Reference</ulink>"
@@ -4168,11 +4208,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeStore.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2308
+#: index-in.docbook:2327
 msgid "Model Columns"
 msgstr "模型列"
 
-#: C/index-in.docbook:2309
+#: index-in.docbook:2328
 msgid ""
 "The <classname>TreeModelColumnRecord</classname> class is used to keep track "
 "of the columns and their data types. You add <classname>TreeModelColumn</"
@@ -4188,7 +4228,7 @@ msgstr ""
 "列中的数据。你可能会发现,派生一个你自己的包含有<classname>TreeModelColumn</"
 "classname>数据成员的<classname>TreeModelColumnRecord</classname>会更方便。"
 
-#: C/index-in.docbook:2320
+#: index-in.docbook:2339
 #, no-wrap
 msgid ""
 "class ModelColumns : public Gtk::TreeModelColumnRecord\n"
@@ -4217,14 +4257,14 @@ msgstr ""
 "\n"
 "ModelColumns m_Columns;"
 
-#: C/index-in.docbook:2333
+#: index-in.docbook:2352
 msgid ""
 "You specify the <classname>ColumnRecord</classname> when creating the Model, "
 "like so:"
 msgstr ""
 "你可以在创建模型的时候指定<classname>ColumnRecord</classname>,如下所示:"
 
-#: C/index-in.docbook:2337
+#: index-in.docbook:2356
 #, no-wrap
 msgid ""
 "Glib::RefPtr&lt;Gtk::ListStore&gt; refListStore =\n"
@@ -4233,7 +4273,7 @@ msgstr ""
 "Glib::RefPtr&lt;Gtk::ListStore&gt; refListStore =\n"
 "    Gtk::ListStore::create(m_Columns);"
 
-#: C/index-in.docbook:2339
+#: index-in.docbook:2358
 msgid ""
 "As a <classname>TreeModelColumnRecord</classname> describes structure, not "
 "data, it can be shared among multiple models, and this is preferable for "
@@ -4249,11 +4289,11 @@ msgstr ""
 "化后示例化它。最好的解决方案是使他成为惰性初始化的单例,以便在第一个模型访问"
 "他的时候按需构造。"
 
-#: C/index-in.docbook:2351
+#: index-in.docbook:2370
 msgid "Adding Rows"
 msgstr "添加行"
 
-#: C/index-in.docbook:2352
+#: index-in.docbook:2371
 msgid ""
 "Add rows to the model with the <methodname>append()</methodname>, "
 "<methodname>prepend()</methodname>, or <methodname>insert()</methodname> "
@@ -4262,25 +4302,25 @@ msgstr ""
 "使用<methodname>append()</methodname>、<methodname>prepend()</methodname>或"
 "<methodname>insert()</methodname>方法可以向模型添加行。"
 
-#: C/index-in.docbook:2356
+#: index-in.docbook:2375
 #, no-wrap
 msgid "auto iter = m_refListStore-&gt;append();"
 msgstr "auto iter = m_refListStore-&gt;append();"
 
-#: C/index-in.docbook:2357
+#: index-in.docbook:2376
 msgid "You can dereference the iterator to get the Row:"
 msgstr "你可以通过解引用迭代器获得行:"
 
-#: C/index-in.docbook:2359
+#: index-in.docbook:2378
 #, no-wrap
 msgid "auto row = *iter;"
 msgstr "auto row = *iter;"
 
-#: C/index-in.docbook:2360
+#: index-in.docbook:2379
 msgid "Adding child rows"
 msgstr "添加子行"
 
-#: C/index-in.docbook:2361
+#: index-in.docbook:2380
 msgid ""
 "<classname>Gtk::TreeStore</classname> models can have child items. Add them "
 "with the <methodname>append()</methodname>, <methodname>prepend()</"
@@ -4290,7 +4330,7 @@ msgstr ""
 "<methodname>append()</methodname>、<methodname>prepend()</methodname>或"
 "<methodname>insert()</methodname>方法添加,如下所示:"
 
-#: C/index-in.docbook:2366
+#: index-in.docbook:2385
 #, no-wrap
 msgid ""
 "auto iter_child =\n"
@@ -4299,11 +4339,11 @@ msgstr ""
 "auto iter_child =\n"
 "    m_refTreeStore-&gt;append(row.children());"
 
-#: C/index-in.docbook:2373
+#: index-in.docbook:2392
 msgid "Setting values"
 msgstr "设置值"
 
-#: C/index-in.docbook:2374
+#: index-in.docbook:2393
 msgid ""
 "You can use the <methodname>operator[]</methodname> overload to set the data "
 "for a particular column in the row, specifying the "
@@ -4312,16 +4352,16 @@ msgstr ""
 "你可以使用<methodname>operator[]</methodname>重载设置行中的特定列的数据,你需"
 "要使用创建模型时的<classname>TreeModelColumn</classname>指定列。"
 
-#: C/index-in.docbook:2379
+#: index-in.docbook:2398
 #, no-wrap
 msgid "row[m_Columns.m_col_text] = \"sometext\";"
 msgstr "row[m_Columns.m_col_text] = \"sometext\";"
 
-#: C/index-in.docbook:2383
+#: index-in.docbook:2402
 msgid "Getting values"
 msgstr "获取值"
 
-#: C/index-in.docbook:2384
+#: index-in.docbook:2403
 msgid ""
 "You can use the <methodname>operator[]</methodname> overload to get the data "
 "in a particular column in a row, specifying the <classname>TreeModelColumn</"
@@ -4330,7 +4370,7 @@ msgstr ""
 "你可以使用<methodname>operator[]</methodname>重载获取行中特定列的数据,你需要"
 "使用创建模型时的<classname>TreeModelColumn</classname>指定列。"
 
-#: C/index-in.docbook:2389
+#: index-in.docbook:2408
 #, no-wrap
 msgid ""
 "auto strText = row[m_Columns.m_col_text];\n"
@@ -4339,14 +4379,14 @@ msgstr ""
 "auto strText = row[m_Columns.m_col_text];\n"
 "auto number = row[m_Columns.m_col_number];"
 
-#: C/index-in.docbook:2391
+#: index-in.docbook:2410
 msgid ""
 "The compiler will complain if you use an inappropriate type. For instance, "
 "this would generate a compiler error:"
 msgstr ""
 "如果你使用了不合适的类型,编译器会报错。例如,编译器将生成一个编译错误:"
 
-#: C/index-in.docbook:2395
+#: index-in.docbook:2414
 #, no-wrap
 msgid ""
 "//compiler error - no conversion from ustring to int.\n"
@@ -4355,11 +4395,11 @@ msgstr ""
 "//compiler error - no conversion from ustring to int.\n"
 "int number = row[m_Columns.m_col_text];"
 
-#: C/index-in.docbook:2400
+#: index-in.docbook:2419
 msgid "\"Hidden\" Columns"
 msgstr "“隐藏”列"
 
-#: C/index-in.docbook:2401
+#: index-in.docbook:2420
 msgid ""
 "You might want to associate extra data with each row. If so, just add it as "
 "a Model column, but don't add it to the View."
@@ -4367,11 +4407,11 @@ msgstr ""
 "你可能想要将额外的数据和每一行关联。如果是这样,你只需要将其添加到模型的一个"
 "行中而不将其添加到视图中即可。"
 
-#: C/index-in.docbook:2410 C/index-in.docbook:3256
+#: index-in.docbook:2429 index-in.docbook:3275
 msgid "The View"
 msgstr "视图"
 
-#: C/index-in.docbook:2411
+#: index-in.docbook:2430
 msgid ""
 "The View is the actual widget (<classname>Gtk::TreeView</classname>) that "
 "displays the model (<classname>Gtk::TreeModel</classname>) data and allows "
@@ -4382,7 +4422,7 @@ msgstr ""
 "用户与其交互的部件(<classname>Gtk::TreeView</classname>)。视图可以显示模型的"
 "所有列也可以只显示一部分列还可以以不同的方式显示列。"
 
-#: C/index-in.docbook:2418
+#: index-in.docbook:2437
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeView.";
 "html\">Reference</ulink>"
@@ -4390,11 +4430,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeView.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2421
+#: index-in.docbook:2440
 msgid "Using a Model"
 msgstr "使用模型"
 
-#: C/index-in.docbook:2422
+#: index-in.docbook:2441
 msgid ""
 "You can specify a <classname>Gtk::TreeModel</classname> when constructing "
 "the <classname>Gtk::TreeView</classname>, or you can use the "
@@ -4404,16 +4444,16 @@ msgstr ""
 "<classname>Gtk::TreeModel</classname>,也可以构筑完成后使用"
 "<methodname>set_model()</methodname>方法指定,如下所示:"
 
-#: C/index-in.docbook:2427
+#: index-in.docbook:2446
 #, no-wrap
 msgid "m_TreeView.set_model(m_refListStore);"
 msgstr "m_TreeView.set_model(m_refListStore);"
 
-#: C/index-in.docbook:2431
+#: index-in.docbook:2450
 msgid "Adding View Columns"
 msgstr "为视图添加列"
 
-#: C/index-in.docbook:2432
+#: index-in.docbook:2451
 msgid ""
 "You can use the <methodname>append_column()</methodname> method to tell the "
 "View that it should display certain Model columns, in a certain order, with "
@@ -4422,12 +4462,12 @@ msgstr ""
 "你可以使用<methodname>append_column()</methodname>方法告知视图以一定的顺序于"
 "某个列标题下显示模型的某个列。"
 
-#: C/index-in.docbook:2437
+#: index-in.docbook:2456
 #, no-wrap
 msgid "m_TreeView.append_column(\"Messages\", m_Columns.m_col_text);"
 msgstr "m_TreeView.append_column(\"Messages\", m_Columns.m_col_text);"
 
-#: C/index-in.docbook:2438
+#: index-in.docbook:2457
 msgid ""
 "When using this simple <methodname>append_column()</methodname> overload, "
 "the <classname>TreeView</classname> will display the model data with an "
@@ -4452,11 +4492,11 @@ msgstr ""
 "<literal>(unsigned) int</literal>或者<literal>(unsigned) long</literal>作为行"
 "类型。"
 
-#: C/index-in.docbook:2454
+#: index-in.docbook:2473
 msgid "More than one Model Column per View Column"
 msgstr "每个视图列不不止一个模型列"
 
-#: C/index-in.docbook:2455
+#: index-in.docbook:2474
 msgid ""
 "To render more than one model column in a view column, you need to create "
 "the <classname>TreeView::Column</classname> widget manually, and use "
@@ -4466,7 +4506,7 @@ msgstr ""
 "classname>部件,并使用<methodname>pack_start()</methodname>方法向其添加模型"
 "列。"
 
-#: C/index-in.docbook:2461
+#: index-in.docbook:2480
 msgid ""
 "Then use <methodname>append_column()</methodname> to add the view Column to "
 "the View. Notice that <methodname>Gtk::TreeView::append_column()</"
@@ -4481,13 +4521,13 @@ msgstr ""
 "<classname>TreeModelColumn</classname>生成的合适的<classname>Gtk::TreeView::"
 "Column</classname>部件。"
 
-#: C/index-in.docbook:2468
+#: index-in.docbook:2487
 msgid ""
 "Here is some example code, which has a pixbuf icon and a text name in the "
 "same column:"
 msgstr "这是一些示例代码,在同一列中有一个像素缓冲区(pixbuf)图标和一个文本名:"
 
-#: C/index-in.docbook:2471
+#: index-in.docbook:2490
 #, no-wrap
 msgid ""
 "\n"
@@ -4510,11 +4550,11 @@ msgstr ""
 "\n"
 "m_TreeView.append_column(*pColumn);"
 
-#: C/index-in.docbook:2483
+#: index-in.docbook:2502
 msgid "Specifying CellRenderer details"
 msgstr "指定单元格渲染器(CellRenderer)详情"
 
-#: C/index-in.docbook:2484
+#: index-in.docbook:2503
 msgid ""
 "The default <classname>CellRenderers</classname> and their default behaviour "
 "will normally suffice, but you might occasionally need finer control. For "
@@ -4528,7 +4568,7 @@ msgstr ""
 "example_treeview_treestore.cc</filename>的示例代码,附加一个<classname>Gtk::"
 "CellRenderer</classname>部件并指示其各个模型列的外观的各个方面来呈现数据。"
 
-#: C/index-in.docbook:2492
+#: index-in.docbook:2511
 #, no-wrap
 msgid ""
 "auto cols_count = m_TreeView.append_column_editable(\"Alex\", m_columns.alex);\n"
@@ -4547,7 +4587,7 @@ msgstr ""
 "  pColumn-&gt;add_attribute(pRenderer-&gt;property_visible(), m_columns.visible);\n"
 "  pColumn-&gt;add_attribute(pRenderer-&gt;property_activatable(), m_columns.world);"
 
-#: C/index-in.docbook:2500
+#: index-in.docbook:2519
 msgid ""
 "You can also connect to <classname>CellRenderer</classname> signals to "
 "detect user actions. For instance:"
@@ -4555,7 +4595,7 @@ msgstr ""
 "你还可以通过连接到<classname>CellRenderer</classname>的信号以检测用户的操作。"
 "例如:"
 
-#: C/index-in.docbook:2504
+#: index-in.docbook:2523
 #, no-wrap
 msgid ""
 "\n"
@@ -4572,15 +4612,15 @@ msgstr ""
 "        &amp;Example_TreeView_TreeStore::on_cell_toggled), m_columns.dave)\n"
 ");"
 
-#: C/index-in.docbook:2513 C/index-in.docbook:2876
+#: index-in.docbook:2532 index-in.docbook:2895
 msgid "Editable Cells"
 msgstr "可编辑单元格"
 
-#: C/index-in.docbook:2516
+#: index-in.docbook:2535
 msgid "Automatically-stored editable cells."
 msgstr "自动储存的可编辑单元格"
 
-#: C/index-in.docbook:2517
+#: index-in.docbook:2536
 msgid ""
 "Cells in a <classname>TreeView</classname> can be edited in-place by the "
 "user. To allow this, use the <classname>Gtk::TreeView</classname> "
@@ -4600,11 +4640,11 @@ msgstr ""
 "版,只能为简单的列类型实例化(例如,<classname>Glib::ustring</classname>、"
 "<literal>int</literal>和<literal>long</literal>)。"
 
-#: C/index-in.docbook:2531
+#: index-in.docbook:2550
 msgid "Implementing custom logic for editable cells."
 msgstr "为可编辑单元格实现自定义逻辑。"
 
-#: C/index-in.docbook:2532
+#: index-in.docbook:2551
 msgid ""
 "However, you might not want the new values to be stored immediately. For "
 "instance, maybe you want to restrict the input to certain characters or "
@@ -4613,7 +4653,7 @@ msgstr ""
 "但是你可能不希望立刻储存新的值。例如你可能希望对输入进行检测,符合预期的范围"
 "才储存。"
 
-#: C/index-in.docbook:2537
+#: index-in.docbook:2556
 msgid ""
 "To achieve this, you should use the normal <classname>Gtk::TreeView</"
 "classname> <methodname>insert_column()</methodname> and "
@@ -4626,7 +4666,7 @@ msgstr ""
 "<methodname>get_column_cell_renderer()</methodname>方法获取该列使用的"
 "<classname>Gtk::CellRenderer</classname>。"
 
-#: C/index-in.docbook:2543
+#: index-in.docbook:2562
 msgid ""
 "You should then cast that <classname>Gtk::CellRenderer*</classname> to the "
 "specific <classname>CellRenderer</classname> that you expect, so you can use "
@@ -4636,7 +4676,7 @@ msgstr ""
 "<classname>CellRenderer</classname>(例如转换为<classname>CellRendererText</"
 "classname>,以便调用特定的API。"
 
-#: C/index-in.docbook:2547
+#: index-in.docbook:2566
 msgid ""
 "For instance, for a CellRendererText, you would set the cell's "
 "<emphasis>editable</emphasis> property to true, like so:"
@@ -4644,12 +4684,12 @@ msgstr ""
 "例如,对于<classname>CellRendererText</classname>,你应该将单元格的"
 "<emphasis>editable</emphasis>属性设置为<literal>true</literal>,如下所示:"
 
-#: C/index-in.docbook:2550
+#: index-in.docbook:2569
 #, no-wrap
 msgid "cell-&gt;property_editable() = true;"
 msgstr "cell-&gt;property_editable() = true;"
 
-#: C/index-in.docbook:2551
+#: index-in.docbook:2570
 msgid ""
 "For a CellRendererToggle, you would set the <emphasis>activatable</emphasis> "
 "property instead."
@@ -4657,7 +4697,7 @@ msgstr ""
 "对于<classname>CellRendererToggle</classname>,你应该改为设置"
 "<emphasis>activatable</emphasis>属性。"
 
-#: C/index-in.docbook:2555
+#: index-in.docbook:2574
 msgid ""
 "You can then connect to the appropriate \"edited\" signal. For instance, "
 "connect to <methodname>Gtk::CellRendererText::signal_edited()</methodname>, "
@@ -4673,7 +4713,7 @@ msgstr ""
 "TreeView::get_column()</methodname>方法然后再调用<methodname>get_cells()</"
 "methodname>获取目标单元格。"
 
-#: C/index-in.docbook:2563
+#: index-in.docbook:2582
 msgid ""
 "In your signal handler, you should examine the new value and then store it "
 "in the Model if that is appropriate for your application."
@@ -4681,11 +4721,11 @@ msgstr ""
 "在你的信号处理函数中,你应该检查新值如果其对于你的应用程序而言是合适的则将其"
 "储存到你的模型中。"
 
-#: C/index-in.docbook:2575
+#: index-in.docbook:2594
 msgid "Iterating over Model Rows"
 msgstr "遍历模型行"
 
-#: C/index-in.docbook:2576
+#: index-in.docbook:2595
 msgid ""
 "<classname>Gtk::TreeModel</classname> provides a C++ Standard Library-style "
 "container of its children, via the <methodname>children()</methodname> "
@@ -4697,7 +4737,7 @@ msgstr ""
 "<methodname>begin()</methodname>和<methodname>end()</methodname>方法递增迭代"
 "器,如下所示:"
 
-#: C/index-in.docbook:2582
+#: index-in.docbook:2601
 #, no-wrap
 msgid ""
 "\n"
@@ -4716,7 +4756,7 @@ msgstr ""
 "  //Do something with the row - see above for set/get.\n"
 "}"
 
-#: C/index-in.docbook:2589
+#: index-in.docbook:2608
 msgid ""
 "If you always want to iterate across the entire range, much more succinct "
 "syntax is possible using C++'s range-based <literal>for</literal> loop:"
@@ -4724,7 +4764,7 @@ msgstr ""
 "如果你总是想迭代整个范围,则可以使用C++基于范围的更简洁的<literal>for</"
 "literal>循环语法:"
 
-#: C/index-in.docbook:2593
+#: index-in.docbook:2612
 #, no-wrap
 msgid ""
 "\n"
@@ -4739,11 +4779,11 @@ msgstr ""
 "  //Do something with the row - see above for set/get.\n"
 "}"
 
-#: C/index-in.docbook:2600
+#: index-in.docbook:2619
 msgid "Row children"
 msgstr "子行"
 
-#: C/index-in.docbook:2601
+#: index-in.docbook:2620
 msgid ""
 "When using a <classname>Gtk::TreeStore</classname>, the rows can have child "
 "rows, which can have their own children in turn. Use <methodname>Gtk::"
@@ -4754,16 +4794,16 @@ msgstr ""
 "以存在子行。使用<methodname>Gtk::TreeModel::Row::children()</methodname>方法"
 "可以获取<classname>Row</classname>的子行:"
 
-#: C/index-in.docbook:2606
+#: index-in.docbook:2625
 #, no-wrap
 msgid "Gtk::TreeModel::Children children = row.children();"
 msgstr "Gtk::TreeModel::Children children = row.children();"
 
-#: C/index-in.docbook:2612
+#: index-in.docbook:2631
 msgid "The Selection"
 msgstr "选择"
 
-#: C/index-in.docbook:2613
+#: index-in.docbook:2632
 msgid ""
 "To find out what rows the user has selected, get the <classname>Gtk::"
 "TreeView::Selection</classname> object from the <classname>TreeView</"
@@ -4772,39 +4812,39 @@ msgstr ""
 "要找出用户选择了那些行,请从<classname>TreeView</classname>的<classname>Gtk::"
 "TreeView::Selection</classname>对象获取。"
 
-#: C/index-in.docbook:2618
+#: index-in.docbook:2637
 #, no-wrap
 msgid "auto refTreeSelection = m_TreeView.get_selection();"
 msgstr "auto refTreeSelection = m_TreeView.get_selection();"
 
-#: C/index-in.docbook:2621
+#: index-in.docbook:2640
 msgid "Single or multiple selection"
 msgstr "单选或多选"
 
-#: C/index-in.docbook:2622
+#: index-in.docbook:2641
 msgid ""
 "By default, only single rows can be selected, but you can allow multiple "
 "selection by setting the mode, like so:"
 msgstr ""
 "默认情况下,只能选定一行,但是你可以通过设置选择模式选择多行,如下所示:"
 
-#: C/index-in.docbook:2626
+#: index-in.docbook:2645
 #, no-wrap
 msgid "refTreeSelection-&gt;set_mode(Gtk::SELECTION_MULTIPLE);"
 msgstr "refTreeSelection-&gt;set_mode(Gtk::SELECTION_MULTIPLE);"
 
-#: C/index-in.docbook:2630
+#: index-in.docbook:2649
 msgid "The selected rows"
 msgstr "选定的行"
 
-#: C/index-in.docbook:2631
+#: index-in.docbook:2650
 msgid ""
 "For single-selection, you can just call <methodname>get_selected()</"
 "methodname>, like so:"
 msgstr ""
 "对于单选模式,你可以如下所示调用<methodname>get_selected()</methodname>:"
 
-#: C/index-in.docbook:2635
+#: index-in.docbook:2654
 #, no-wrap
 msgid ""
 "auto iter = refTreeSelection-&gt;get_selected();\n"
@@ -4821,7 +4861,7 @@ msgstr ""
 "  //Do something with the row.\n"
 "}"
 
-#: C/index-in.docbook:2642
+#: index-in.docbook:2661
 msgid ""
 "For multiple-selection, you need to call <methodname>get_selected_rows()</"
 "methodname> or define a callback, and give it to "
@@ -4834,7 +4874,7 @@ msgstr ""
 "<methodname>selected_foreach_path()</methodname>或"
 "<methodname>selected_foreach_iter()</methodname>,如下所示:"
 
-#: C/index-in.docbook:2649
+#: index-in.docbook:2668
 #, no-wrap
 msgid ""
 "refTreeSelection-&gt;selected_foreach_iter(\n"
@@ -4857,17 +4897,17 @@ msgstr ""
 "  //Do something with the row.\n"
 "}"
 
-#: C/index-in.docbook:2662
+#: index-in.docbook:2681
 msgid "The \"changed\" signal"
 msgstr "\"changed\"信号"
 
-#: C/index-in.docbook:2663
+#: index-in.docbook:2682
 msgid ""
 "To respond to the user clicking on a row or range of rows, connect to the "
 "signal like so:"
 msgstr "要响应用户单击某行或者某个范围的行,请按以下方式连接信号:"
 
-#: C/index-in.docbook:2667
+#: index-in.docbook:2686
 #, no-wrap
 msgid ""
 "refTreeSelection-&gt;signal_changed().connect(\n"
@@ -4878,11 +4918,11 @@ msgstr ""
 "    sigc::mem_fun(*this, &amp;Example_IconTheme::on_selection_changed)\n"
 ");"
 
-#: C/index-in.docbook:2673
+#: index-in.docbook:2692
 msgid "Preventing row selection"
 msgstr "防止行被选择"
 
-#: C/index-in.docbook:2674
+#: index-in.docbook:2693
 msgid ""
 "Maybe the user should not be able to select every item in your list or tree. "
 "For instance, in the gtk-demo, you can select a demo to see the source code, "
@@ -4891,7 +4931,7 @@ msgstr ""
 "或许用户不应该能选择列表或树中的每个项目。例如在gtk-demo中,你可以选择一个演"
 "示来查看他的源代码,但是你选一个演示类别没有意义。"
 
-#: C/index-in.docbook:2679
+#: index-in.docbook:2698
 msgid ""
 "To control which rows can be selected, use the "
 "<methodname>set_select_function()</methodname> method, providing a "
@@ -4900,7 +4940,7 @@ msgstr ""
 "要控制一个行是否能被选择,请使用<methodname>set_select_function()</"
 "methodname>方法为其提供一个<classname>sigc::slot</classname>回调。例如:"
 
-#: C/index-in.docbook:2684
+#: index-in.docbook:2703
 #, no-wrap
 msgid ""
 "m_refTreeSelection-&gt;set_select_function( sigc::mem_fun(*this,\n"
@@ -4909,11 +4949,11 @@ msgstr ""
 "m_refTreeSelection-&gt;set_select_function( sigc::mem_fun(*this,\n"
 "    &amp;DemoWindow::select_function) );"
 
-#: C/index-in.docbook:2686
+#: index-in.docbook:2705
 msgid "and then"
 msgstr "接着"
 
-#: C/index-in.docbook:2689
+#: index-in.docbook:2708
 #, no-wrap
 msgid ""
 "bool DemoWindow::select_function(\n"
@@ -4932,11 +4972,11 @@ msgstr ""
 "  return iter-&gt;children().empty(); // only allow leaf nodes to be selected\n"
 "}"
 
-#: C/index-in.docbook:2699
+#: index-in.docbook:2718
 msgid "Changing the selection"
 msgstr "修改选择"
 
-#: C/index-in.docbook:2700
+#: index-in.docbook:2719
 msgid ""
 "To change the selection, specify a <classname>Gtk::TreeModel::iterator</"
 "classname> or <classname>Gtk::TreeModel::Row</classname>, like so:"
@@ -4944,7 +4984,7 @@ msgstr ""
 "要更改选择,请指定<classname>Gtk::TreeModel::iterator</classname>或"
 "<classname>Gtk::TreeModel::Row</classname>,然后如下所示:"
 
-#: C/index-in.docbook:2705
+#: index-in.docbook:2724
 #, no-wrap
 msgid ""
 "auto row = m_refModel-&gt;children()[5]; //The sixth row.\n"
@@ -4955,11 +4995,11 @@ msgstr ""
 "if(row)\n"
 "  refTreeSelection-&gt;select(row.get_iter());"
 
-#: C/index-in.docbook:2708
+#: index-in.docbook:2727
 msgid "or"
 msgstr "或者"
 
-#: C/index-in.docbook:2711
+#: index-in.docbook:2730
 #, no-wrap
 msgid ""
 "auto iter = m_refModel-&gt;children().begin()\n"
@@ -4970,11 +5010,11 @@ msgstr ""
 "if(iter)\n"
 "  refTreeSelection-&gt;select(iter);"
 
-#: C/index-in.docbook:2720
+#: index-in.docbook:2739
 msgid "Sorting"
 msgstr "排序"
 
-#: C/index-in.docbook:2721
+#: index-in.docbook:2740
 msgid ""
 "The standard tree models (<classname>TreeStore</classname> and "
 "<classname>ListStore</classname>) derive from <classname>TreeSortable</"
@@ -4990,7 +5030,7 @@ msgstr ""
 "排序。或者向<methodname>set_sort_func()</methodname>提供一个回调函数以实现更"
 "复杂的排序算法。"
 
-#: C/index-in.docbook:2725
+#: index-in.docbook:2744
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TreeSortable.html\">TreeSortable Reference</ulink>"
@@ -4998,11 +5038,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TreeSortable.html\">可排序树参考</ulink>"
 
-#: C/index-in.docbook:2728
+#: index-in.docbook:2747
 msgid "Sorting by clicking on columns"
 msgstr "单击列进行排序"
 
-#: C/index-in.docbook:2729
+#: index-in.docbook:2748
 msgid ""
 "So that a user can click on a <classname>TreeView</classname>'s column "
 "header to sort the <classname>TreeView</classname>'s contents, call "
@@ -5015,7 +5055,7 @@ msgstr ""
 "<methodname>Gtk::TreeView::Column::set_sort_column()</methodname>,以提供此功"
 "能。如下所示:"
 
-#: C/index-in.docbook:2732
+#: index-in.docbook:2751
 #, no-wrap
 msgid ""
 "auto pColumn = treeview.get_column(0);\n"
@@ -5026,11 +5066,11 @@ msgstr ""
 "if(pColumn)\n"
 "  pColumn-&gt;set_sort_column(m_columns.m_col_id);"
 
-#: C/index-in.docbook:2738
+#: index-in.docbook:2757
 msgid "Independently sorted views of the same model"
 msgstr "对同一模型进行独立排序的视图"
 
-#: C/index-in.docbook:2739
+#: index-in.docbook:2758
 msgid ""
 "The <classname>TreeView</classname> already allows you to show the same "
 "<classname>TreeModel</classname> in two <classname>TreeView</classname> "
@@ -5050,7 +5090,7 @@ msgstr ""
 "的将已排序版本。你可以如下所示的将已排序版本模型添加到<classname>TreeView</"
 "classname>:"
 
-#: C/index-in.docbook:2747
+#: index-in.docbook:2766
 #, no-wrap
 msgid ""
 "auto sorted_model = Gtk::TreeModelSort::create(model);\n"
@@ -5061,7 +5101,7 @@ msgstr ""
 "sorted_model-&gt;set_sort_column(columns.m_col_name, Gtk::SORT_ASCENDING);\n"
 "treeview.set_model(sorted_model);"
 
-#: C/index-in.docbook:2751
+#: index-in.docbook:2770
 msgid ""
 "Note, however, that the TreeView will provide iterators to the sorted model. "
 "You must convert them to iterators to the underlying child model in order to "
@@ -5070,7 +5110,7 @@ msgstr ""
 "请注意,这样做树形视图将会提供已排序模型的迭代器。你必须将其转换为基础的子模"
 "型迭代器以便对这个模型进行操作。例如:"
 
-#: C/index-in.docbook:2753
+#: index-in.docbook:2772
 #, no-wrap
 msgid ""
 "void ExampleWindow::on_button_delete()\n"
@@ -5101,7 +5141,7 @@ msgstr ""
 "  }\n"
 "}"
 
-#: C/index-in.docbook:2767
+#: index-in.docbook:2786
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TreeModelSort.html\">TreeModelSort Reference</ulink>"
@@ -5109,12 +5149,12 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TreeModelSort.html\">树模型排序参考</ulink>"
 
-#: C/index-in.docbook:2773 C/index-in.docbook:2895 C/index-in.docbook:4611
-#: C/index-in.docbook:4764
+#: index-in.docbook:2792 index-in.docbook:2914 index-in.docbook:4630
+#: index-in.docbook:4783
 msgid "Drag and Drop"
 msgstr "拖放"
 
-#: C/index-in.docbook:2774
+#: index-in.docbook:2793
 msgid ""
 "<classname>Gtk::TreeView</classname> already implements simple drag-and-drop "
 "when used with the <classname>Gtk::ListStore</classname> or <classname>Gtk::"
@@ -5127,11 +5167,11 @@ msgstr ""
 "果有必要,它还允许你使用常规的<link linkend=\"chapter-draganddrop\">拖放</"
 "link>API实现更复杂的拖放行为。"
 
-#: C/index-in.docbook:2783
+#: index-in.docbook:2802
 msgid "Reorderable rows"
 msgstr "可重排序的行"
 
-#: C/index-in.docbook:2784
+#: index-in.docbook:2803
 msgid ""
 "If you call <methodname>Gtk::TreeView::set_reorderable()</methodname> then "
 "your TreeView's items can be moved within the treeview itself. This is "
@@ -5141,7 +5181,7 @@ msgstr ""
 "视图中移动其本身的项目。<classname>TreeStore</classname>的示例对此进行了演"
 "示。"
 
-#: C/index-in.docbook:2789
+#: index-in.docbook:2808
 msgid ""
 "However, this does not allow you any control of which items can be dragged, "
 "and where they can be dropped. If you need that extra control then you might "
@@ -5161,15 +5201,15 @@ msgstr ""
 "TreeModel::Path</literal>并返回<literal>true</literal>或<literal>false</"
 "literal>来允许或禁止拖放。"
 
-#: C/index-in.docbook:2796
+#: index-in.docbook:2815
 msgid "This is demonstrated in the drag_and_drop example."
 msgstr "在drag_and_drop示例中对此进行了演示。"
 
-#: C/index-in.docbook:2802 C/index-in.docbook:2917
+#: index-in.docbook:2821 index-in.docbook:2936
 msgid "Popup Context Menu"
 msgstr "弹出上下文菜单"
 
-#: C/index-in.docbook:2803
+#: index-in.docbook:2822
 msgid ""
 "Lots of people need to implement right-click context menus for "
 "<classname>TreeView</classname>'s so we will explain how to do that here to "
@@ -5181,11 +5221,11 @@ msgstr ""
 "们在这里说明如何做到这个以节省你的时间。其与普通的上下文菜单只有一两点不同,"
 "如<link linkend=\"sec-menus-popup\">菜单章节</link>所述。"
 
-#: C/index-in.docbook:2812
+#: index-in.docbook:2831
 msgid "Handling <literal>button_press_event</literal>"
 msgstr "处理<literal>button_press_event</literal>"
 
-#: C/index-in.docbook:2813
+#: index-in.docbook:2832
 msgid ""
 "To detect a click of the right mouse button, you need to handle the "
 "<literal>button_press_event</literal> signal, and check exactly which button "
@@ -5204,16 +5244,16 @@ msgstr ""
 "<classname>TreeView</classname>的派生类中覆盖默认信号处理函数。你可能还想在执"
 "行任何其他操作之前先调用默认信号处理函数,以便右键时先选择该行。"
 
-#: C/index-in.docbook:2823
+#: index-in.docbook:2842
 msgid "This is demonstrated in the Popup Context Menu example."
 msgstr "Popup Context Menu示例中对此进行了演示。"
 
-#: C/index-in.docbook:2828 C/index-in.docbook:3322 C/index-in.docbook:3626
-#: C/index-in.docbook:4874
+#: index-in.docbook:2847 index-in.docbook:3341 index-in.docbook:3645
+#: index-in.docbook:4893
 msgid "Examples"
 msgstr "示例"
 
-#: C/index-in.docbook:2830
+#: index-in.docbook:2849
 msgid ""
 "Some <classname>TreeView</classname> examples are shown here. There are more "
 "examples in the <ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-";
@@ -5225,7 +5265,7 @@ msgstr ""
 "documentation/tree/master/examples/book/treeview/\">树形视图文件夹</ulink>还"
 "有更多的示例。"
 
-#: C/index-in.docbook:2834
+#: index-in.docbook:2853
 msgid ""
 "If neither <classname>ListStore</classname> nor <classname>TreeStore</"
 "classname> is suitable for your application, look at the <ulink url="
@@ -5240,11 +5280,11 @@ msgstr ""
 "模型</ulink>示例。它向你展示了如何实现自己的<classname>TreeModel</classname>"
 "接口"
 
-#: C/index-in.docbook:2840
+#: index-in.docbook:2859
 msgid "ListStore"
 msgstr "列表储存(ListStore)"
 
-#: C/index-in.docbook:2841
+#: index-in.docbook:2860
 msgid ""
 "This example has a <classname>Gtk::TreeView</classname> widget, with a "
 "<classname>Gtk::ListStore</classname> model."
@@ -5252,7 +5292,7 @@ msgstr ""
 "这个例子有一个使用<classname>Gtk::ListStore</classname>模型的<classname>Gtk::"
 "TreeView</classname>部件。"
 
-#: C/index-in.docbook:2853
+#: index-in.docbook:2872
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/list/\">Source Code</ulink>"
@@ -5260,11 +5300,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/list/\">源代码</ulink>"
 
-#: C/index-in.docbook:2857
+#: index-in.docbook:2876
 msgid "TreeStore"
 msgstr "树储存(TreeStore)"
 
-#: C/index-in.docbook:2859
+#: index-in.docbook:2878
 msgid ""
 "This example is very similar to the <classname>ListStore</classname> "
 "example, but uses a <classname>Gtk::TreeStore</classname> model instead, and "
@@ -5273,7 +5313,7 @@ msgstr ""
 "这个示例和<classname>ListStore</classname>示例非常的相似,但是使用的是"
 "<classname>Gtk::TreeStore</classname>模型并且添加了子行。"
 
-#: C/index-in.docbook:2872
+#: index-in.docbook:2891
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/tree/\">Source Code</ulink>"
@@ -5281,7 +5321,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/tree/\">源代码</ulink>"
 
-#: C/index-in.docbook:2878
+#: index-in.docbook:2897
 msgid ""
 "This example is identical to the <classname>ListStore</classname> example, "
 "but it uses <methodname>TreeView::append_column_editable()</methodname> "
@@ -5291,11 +5331,11 @@ msgstr ""
 "<methodname>TreeView::append_column_editable()</methodname>代替"
 "<methodname>TreeView::append_column()</methodname>。"
 
-#: C/index-in.docbook:2885
+#: index-in.docbook:2904
 msgid "TreeView - Editable Cells"
 msgstr "树形视图 - 可编辑单元格"
 
-#: C/index-in.docbook:2891
+#: index-in.docbook:2910
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/editable_cells/\">Source Code</ulink>"
@@ -5303,7 +5343,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/editable_cells/\">源代码</ulink>"
 
-#: C/index-in.docbook:2897
+#: index-in.docbook:2916
 msgid ""
 "This example is much like the <classname>TreeStore</classname> example, but "
 "has 2 extra columns to indicate whether the row can be dragged, and whether "
@@ -5317,11 +5357,11 @@ msgstr ""
 "classname>来覆盖虚函数,如<link linkend=\"sec-treeview-draganddrop\">拖放树视"
 "图</link>小节所述。"
 
-#: C/index-in.docbook:2907
+#: index-in.docbook:2926
 msgid "TreeView - Drag And Drop"
 msgstr "树形视图 - 拖放"
 
-#: C/index-in.docbook:2913
+#: index-in.docbook:2932
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/drag_and_drop/\">Source Code</ulink>"
@@ -5329,7 +5369,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/drag_and_drop/\">源代码</ulink>"
 
-#: C/index-in.docbook:2919
+#: index-in.docbook:2938
 msgid ""
 "This example is much like the <classname>ListStore</classname> example, but "
 "derives a custom <classname>TreeView</classname> in order to override the "
@@ -5342,11 +5382,11 @@ msgstr ""
 "literal>,并将树模型代码封装在派生类代码中,请参阅<link linkend=\"sec-"
 "treeview-contextmenu\">树形视图弹出上下文菜单</link>小节。"
 
-#: C/index-in.docbook:2929
+#: index-in.docbook:2948
 msgid "TreeView - Popup Context Menu"
 msgstr "树形视图 - 弹出上下文菜单"
 
-#: C/index-in.docbook:2935
+#: index-in.docbook:2954
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/popup/\">Source Code</ulink>"
@@ -5354,11 +5394,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/treeview/popup/\">源代码</ulink>"
 
-#: C/index-in.docbook:2942
+#: index-in.docbook:2961
 msgid "Combo Boxes"
 msgstr "组合框(Combo Boxes)"
 
-#: C/index-in.docbook:2944
+#: index-in.docbook:2963
 msgid ""
 "The <classname>ComboBox</classname> widget offers a list (or tree) of "
 "choices in a dropdown menu. If appropriate, it can show extra information "
@@ -5373,7 +5413,7 @@ msgstr ""
 "<classname>ComboBox</classname>部件通常将显示用户的可选项,但是它可以有一个"
 "<classname>Entry</classname>以允许用户在没有合适的选项的时候输入任意文本。"
 
-#: C/index-in.docbook:2947
+#: index-in.docbook:2966
 msgid ""
 "The list is provided via a <classname>TreeModel</classname>, and columns "
 "from this model are added to the ComboBox's view with the "
@@ -5387,7 +5427,7 @@ msgstr ""
 "供了灵活性和编译时的类型安全,在不需要灵活性的情况下,"
 "<classname>ComboBoxText</classname>类提供了更简单的基于文本的特化支持。"
 
-#: C/index-in.docbook:2950
+#: index-in.docbook:2969
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ComboBox.";
 "html\">Reference</ulink>"
@@ -5395,11 +5435,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ComboBox.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:2953
+#: index-in.docbook:2972
 msgid "The model"
 msgstr "模型"
 
-#: C/index-in.docbook:2954
+#: index-in.docbook:2973
 msgid ""
 "The model for a ComboBox can be defined and filled exactly as for a "
 "<classname>TreeView</classname>. For instance, you might derive a ComboBox "
@@ -5408,7 +5448,7 @@ msgstr ""
 "可以像<classname>TreeView</classname>一样定义和填充组合框的模型。你可以与如下"
 "所示的一样派生具有一个整数行和一个文本行的组合框类:"
 
-#: C/index-in.docbook:2956
+#: index-in.docbook:2975
 #, no-wrap
 msgid ""
 "class ModelColumns : public Gtk::TreeModel::ColumnRecord\n"
@@ -5435,7 +5475,7 @@ msgstr ""
 "\n"
 "ModelColumns m_columns;"
 
-#: C/index-in.docbook:2968
+#: index-in.docbook:2987
 msgid ""
 "After appending rows to this model, you should provide the model to the "
 "<classname>ComboBox</classname> with the <methodname>set_model()</"
@@ -5458,11 +5498,11 @@ msgstr ""
 "methodname>或<methodname>set_cell_data_func()</methodname>指定具体映射到哪"
 "行。请注意这些方法在<classname>CellLayout</classname>基类中。"
 
-#: C/index-in.docbook:2972
+#: index-in.docbook:2991
 msgid "The chosen item"
 msgstr "所选项"
 
-#: C/index-in.docbook:2973
+#: index-in.docbook:2992
 msgid ""
 "To discover what item, if any, the user has chosen from the ComboBox, call "
 "<methodname>ComboBox::get_active()</methodname>. This returns a "
@@ -5478,7 +5518,7 @@ msgstr ""
 "以在组合框中只显示人类可读的描述,然后你可以读取模型中储存于该行的整数ID值"
 "(于并未被显示的列)。例如:"
 
-#: C/index-in.docbook:2975
+#: index-in.docbook:2994
 #, no-wrap
 msgid ""
 "Gtk::TreeModel::iterator iter = m_Combo.get_active();\n"
@@ -5507,11 +5547,11 @@ msgstr ""
 "else\n"
 "  set_nothing_chosen(); //Your own function."
 
-#: C/index-in.docbook:2990 C/index-in.docbook:3046
+#: index-in.docbook:3009 index-in.docbook:3065
 msgid "Responding to changes"
 msgstr "响应变更"
 
-#: C/index-in.docbook:2991
+#: index-in.docbook:3010
 msgid ""
 "You might need to react to every change of selection in the ComboBox, for "
 "instance to update other widgets. To do so, you should handle the "
@@ -5520,7 +5560,7 @@ msgstr ""
 "你可能需要对组合框中每个选择的变更进行响应,例如更新其他的部件。为此你应该处"
 "理<literal>changed</literal>。例如:"
 
-#: C/index-in.docbook:2994
+#: index-in.docbook:3013
 #, no-wrap
 msgid ""
 "m_combo.signal_changed().connect( sigc::mem_fun(*this,\n"
@@ -5529,15 +5569,15 @@ msgstr ""
 "m_combo.signal_changed().connect( sigc::mem_fun(*this,\n"
 "      &amp;ExampleWindow::on_combo_changed) );"
 
-#: C/index-in.docbook:2998 C/index-in.docbook:3079
+#: index-in.docbook:3017 index-in.docbook:3098
 msgid "Full Example"
 msgstr "完整例子"
 
-#: C/index-in.docbook:3001
+#: index-in.docbook:3020
 msgid "ComboBox"
 msgstr "组合框(ComboBox)"
 
-#: C/index-in.docbook:3007
+#: index-in.docbook:3026
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/complex\">Source Code</ulink>"
@@ -5545,15 +5585,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/complex\">源代码</ulink>"
 
-#: C/index-in.docbook:3011 C/index-in.docbook:3092
+#: index-in.docbook:3030 index-in.docbook:3111
 msgid "Simple Text Example"
 msgstr "简单文字示例"
 
-#: C/index-in.docbook:3014
+#: index-in.docbook:3033
 msgid "ComboBoxText"
 msgstr "文本组合框(ComboBoxText)"
 
-#: C/index-in.docbook:3020
+#: index-in.docbook:3039
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/text\">Source Code</ulink>"
@@ -5561,11 +5601,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/text\">源代码</ulink>"
 
-#: C/index-in.docbook:3025
+#: index-in.docbook:3044
 msgid "ComboBox with an Entry"
 msgstr "带有条目的组合框"
 
-#: C/index-in.docbook:3027
+#: index-in.docbook:3046
 msgid ""
 "A <classname>ComboBox</classname> may contain an <classname>Entry</"
 "classname> widget for entering of arbitrary text, by specifying "
@@ -5576,11 +5616,11 @@ msgstr ""
 "参数为<literal>true</literal>,可以令其包含一个<classname>Entry</classname>部"
 "件用以输入任意文本。"
 
-#: C/index-in.docbook:3030
+#: index-in.docbook:3049
 msgid "The text column"
 msgstr "文本列"
 
-#: C/index-in.docbook:3031
+#: index-in.docbook:3050
 msgid ""
 "So that the <classname>Entry</classname> can interact with the drop-down "
 "list of choices, you must specify which of your model columns is the text "
@@ -5590,12 +5630,12 @@ msgstr ""
 "<methodname>set_entry_text_column()</methodname>指定哪些模型列是文本列。例"
 "如:"
 
-#: C/index-in.docbook:3033
+#: index-in.docbook:3052
 #, no-wrap
 msgid "m_combo.set_entry_text_column(m_columns.m_col_name);"
 msgstr "m_combo.set_entry_text_column(m_columns.m_col_name);"
 
-#: C/index-in.docbook:3034
+#: index-in.docbook:3053
 msgid ""
 "When you select a choice from the drop-down menu, the value from this column "
 "will be placed in the <classname>Entry</classname>."
@@ -5603,11 +5643,11 @@ msgstr ""
 "当你从下拉菜单中选择一个选项的时候,该列的值将被放于<classname>Entry</"
 "classname>中。"
 
-#: C/index-in.docbook:3040
+#: index-in.docbook:3059
 msgid "The entry"
 msgstr "条目"
 
-#: C/index-in.docbook:3041
+#: index-in.docbook:3060
 msgid ""
 "Because the user may enter arbitrary text, an active model row isn't enough "
 "to tell us what text the user has entered. Therefore, you should retrieve "
@@ -5620,7 +5660,7 @@ msgstr ""
 "中的<classname>Entry</classname>部件并在其上调用<methodname>get_text()</"
 "methodname>。"
 
-#: C/index-in.docbook:3055
+#: index-in.docbook:3074
 #, no-wrap
 msgid ""
 "auto entry = m_Combo.get_entry();\n"
@@ -5651,7 +5691,7 @@ msgstr ""
 "    &amp;ExampleWindow::on_entry_focus_out_event) );\n"
 "}"
 
-#: C/index-in.docbook:3047
+#: index-in.docbook:3066
 msgid ""
 "When the user enters arbitrary text, it may not be enough to connect to the "
 "<literal>changed</literal> signal, which is emitted for every typed "
@@ -5676,7 +5716,7 @@ msgstr ""
 "<literal>changed</literal>信号,你可以连接它们中的任意一个。但是在这里只有"
 "<classname>Entry</classname>的<literal>focus_out_event</literal>信号才有用。"
 
-#: C/index-in.docbook:3073
+#: index-in.docbook:3092
 msgid ""
 "X events are described in more detail in the <link linkend=\"sec-"
 "xeventsignals\">X Event signals</link> section in the appendix."
@@ -5684,11 +5724,11 @@ msgstr ""
 "X事件在附录的<link linkend=\"sec-xeventsignals\">X事件信号</link>小节有更详细"
 "的描述。"
 
-#: C/index-in.docbook:3082
+#: index-in.docbook:3101
 msgid "ComboBox with Entry"
 msgstr "带条目的组合框"
 
-#: C/index-in.docbook:3088
+#: index-in.docbook:3107
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/entry_complex\">Source Code</ulink>"
@@ -5696,11 +5736,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/entry_complex\">源代码</ulink>"
 
-#: C/index-in.docbook:3095
+#: index-in.docbook:3114
 msgid "ComboBoxText with Entry"
 msgstr "带条目的文本组合框"
 
-#: C/index-in.docbook:3101
+#: index-in.docbook:3120
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/entry_text\">Source Code</ulink>"
@@ -5708,11 +5748,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/combobox/entry_text\">源代码</ulink>"
 
-#: C/index-in.docbook:3114 C/index-in.docbook:3327
+#: index-in.docbook:3133 index-in.docbook:3346
 msgid "TextView"
 msgstr "文本视图(TextView)"
 
-#: C/index-in.docbook:3115
+#: index-in.docbook:3134
 msgid ""
 "The <classname>TextView</classname> widget can be used to display and edit "
 "large amounts of formatted text. Like the <classname>TreeView</classname>, "
@@ -5723,11 +5763,11 @@ msgstr ""
 "<classname>TreeView</classname>一样,它具有模型/视图设计。"
 "<classname>TextBuffer</classname>是它预期的模型。"
 
-#: C/index-in.docbook:3123
+#: index-in.docbook:3142
 msgid "The Buffer"
 msgstr "缓冲区"
 
-#: C/index-in.docbook:3124
+#: index-in.docbook:3143
 msgid ""
 "<classname>Gtk::TextBuffer</classname> is a model containing the data for "
 "the <classname>Gtk::TextView</classname>, like the <classname>Gtk::"
@@ -5745,7 +5785,7 @@ msgstr ""
 "方式显示文本缓冲区。你也可以维护多个<classname>Gtk::TextBuffer</classname>并"
 "让同一个<classname>Gtk::TextView</classname>部件于不同时候分别显示它们。"
 
-#: C/index-in.docbook:3134
+#: index-in.docbook:3153
 msgid ""
 "The <classname>TextView</classname> creates its own default "
 "<classname>TextBuffer</classname>, which you can access via the "
@@ -5755,7 +5795,7 @@ msgstr ""
 "<classname>TextBuffer</classname>,你可以通过<methodname>get_buffer()</"
 "methodname>方法访问这个缓冲区。"
 
-#: C/index-in.docbook:3140
+#: index-in.docbook:3159
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextBuffer.html\">Reference</ulink>"
@@ -5763,11 +5803,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextBuffer.html\">参考</ulink>"
 
-#: C/index-in.docbook:3143
+#: index-in.docbook:3162
 msgid "Iterators"
 msgstr "迭代器"
 
-#: C/index-in.docbook:3144
+#: index-in.docbook:3163
 msgid ""
 "A <classname>Gtk::TextBuffer::iterator</classname> and a <classname>Gtk::"
 "TextBuffer::const_iterator</classname> represent a position between two "
@@ -5783,7 +5823,7 @@ msgstr ""
 "效。因此,迭代器不能用于保存越过缓冲区被修改部分的位置。如果想保存位置,请使"
 "用<classname>Gtk::TextBuffer::Mark</classname>。"
 
-#: C/index-in.docbook:3151
+#: index-in.docbook:3170
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextIter.";
 "html\">Reference</ulink>"
@@ -5791,15 +5831,15 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextIter.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:3155
+#: index-in.docbook:3174
 msgid "Tags and Formatting"
 msgstr "标签和格式"
 
-#: C/index-in.docbook:3158
+#: index-in.docbook:3177
 msgid "Tags"
 msgstr "标签(Tags)"
 
-#: C/index-in.docbook:3159
+#: index-in.docbook:3178
 msgid ""
 "To specify that some text in the buffer should have specific formatting, you "
 "must define a tag to hold that formatting information, and then apply that "
@@ -5809,7 +5849,7 @@ msgstr ""
 "要指定缓冲区中的一些文本具有特定的格式,你需要定义一个标签来保存格式信息,并"
 "将该标签应用于文本区域。例如,定义标签及其属性:"
 
-#: C/index-in.docbook:3162
+#: index-in.docbook:3181
 #, no-wrap
 msgid ""
 "auto refTagMatch = Gtk::TextBuffer::Tag::create();\n"
@@ -5818,7 +5858,7 @@ msgstr ""
 "auto refTagMatch = Gtk::TextBuffer::Tag::create();\n"
 "refTagMatch-&gt;property_background() = \"orange\";"
 
-#: C/index-in.docbook:3164
+#: index-in.docbook:3183
 msgid ""
 "You can specify a name for the <classname>Tag</classname> when using the "
 "<methodname>create()</methodname> method, but it is not necessary."
@@ -5826,11 +5866,11 @@ msgstr ""
 "你可以在使用<classname>Tag</classname>的<methodname>create()</methodname>方法"
 "时为其指定一个名称,但这不是必须的。"
 
-#: C/index-in.docbook:3169
+#: index-in.docbook:3188
 msgid "The <classname>Tag</classname> class has many other properties."
 msgstr "<classname>Tag</classname>类还有许多其他的特性。"
 
-#: C/index-in.docbook:3173
+#: index-in.docbook:3192
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextTag.";
 "html\">Reference</ulink>"
@@ -5838,11 +5878,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextTag.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:3178
+#: index-in.docbook:3197
 msgid "TagTable"
 msgstr "标签表(TagTable)"
 
-#: C/index-in.docbook:3180
+#: index-in.docbook:3199
 msgid ""
 "Each <classname>Gtk::TextBuffer</classname> uses a <classname>Gtk::"
 "TextBuffer::TagTable</classname>, which contains the <classname>Tag</"
@@ -5857,7 +5897,7 @@ msgstr ""
 "<classname>TagTable</classname>。当你创建<classname>Tag</classname>的时候,你"
 "应该将其加入<classname>TagTable</classname>。例如:"
 
-#: C/index-in.docbook:3188
+#: index-in.docbook:3207
 #, no-wrap
 msgid ""
 "auto refTagTable = Gtk::TextBuffer::TagTable::create();\n"
@@ -5872,7 +5912,7 @@ msgstr ""
 "//for use after creation of the buffer.\n"
 "auto refBuffer = Gtk::TextBuffer::create(refTagTable);"
 
-#: C/index-in.docbook:3194
+#: index-in.docbook:3213
 msgid ""
 "You can also use <methodname>get_tag_table()</methodname> to get, and maybe "
 "modify, the <classname>TextBuffer</classname>'s default <classname>TagTable</"
@@ -5882,7 +5922,7 @@ msgstr ""
 "<classname>TextBuffer</classname>的默认<classname>TagTable</classname>,而不"
 "是显示创建一个。"
 
-#: C/index-in.docbook:3200
+#: index-in.docbook:3219
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextTagTable.html\">Reference</ulink>"
@@ -5890,11 +5930,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextTagTable.html\">参考</ulink>"
 
-#: C/index-in.docbook:3205
+#: index-in.docbook:3224
 msgid "Applying Tags"
 msgstr "应用标签"
 
-#: C/index-in.docbook:3206
+#: index-in.docbook:3225
 msgid ""
 "If you have created a <classname>Tag</classname> and added it to the "
 "<classname>TagTable</classname>, you may apply that tag to part of the "
@@ -5907,21 +5947,21 @@ msgstr ""
 "用该格式显示某些文本。你可以通过使用<classname>Gtk::TextBuffer::iterator</"
 "classname>指示文本的开始和结束范围。例如:"
 
-#: C/index-in.docbook:3213
+#: index-in.docbook:3232
 #, no-wrap
 msgid "refBuffer-&gt;apply_tag(refTagMatch, iterRangeStart, iterRangeStop);"
 msgstr "refBuffer-&gt;apply_tag(refTagMatch, iterRangeStart, iterRangeStop);"
 
-#: C/index-in.docbook:3214
+#: index-in.docbook:3233
 msgid "Or you could specify the tag when first inserting the text:"
 msgstr "或者你可以在首次插入文本的时候指定标签:"
 
-#: C/index-in.docbook:3217
+#: index-in.docbook:3236
 #, no-wrap
 msgid "refBuffer-&gt;insert_with_tag(iter, \"Some text\", refTagMatch);"
 msgstr "refBuffer-&gt;insert_with_tag(iter, \"Some text\", refTagMatch);"
 
-#: C/index-in.docbook:3219
+#: index-in.docbook:3238
 msgid ""
 "You can apply more than one <classname>Tag</classname> to the same text, by "
 "using <methodname>apply_tag()</methodname> more than once, or by using "
@@ -5934,11 +5974,11 @@ msgstr ""
 "应用于同一文本。<classname>Tag</classname>可能会为同一属性指定不同的值,但你"
 "可以使用<methodname>Tag::set_priority()</methodname>解决这些冲突。"
 
-#: C/index-in.docbook:3231
+#: index-in.docbook:3250
 msgid "Marks"
 msgstr "标记(Marks)"
 
-#: C/index-in.docbook:3232
+#: index-in.docbook:3251
 msgid ""
 "<classname>TextBuffer</classname> iterators are generally invalidated when "
 "the text changes, but you can use a <classname>Gtk::TextBuffer::Mark</"
@@ -5947,12 +5987,12 @@ msgstr ""
 "当文本发生更改的时候<classname>TextBuffer</classname>迭代器通常会失效,但是你"
 "可以使用<classname>Gtk::TextBuffer::Mark</classname>记住位置,例如:"
 
-#: C/index-in.docbook:3237
+#: index-in.docbook:3256
 #, no-wrap
 msgid "auto refMark = refBuffer-&gt;create_mark(iter);"
 msgstr "auto refMark = refBuffer-&gt;create_mark(iter);"
 
-#: C/index-in.docbook:3239
+#: index-in.docbook:3258
 msgid ""
 "You can then use the <methodname>get_iter()</methodname> method later to "
 "create an iterator for the <classname>Mark</classname>'s new position."
@@ -5960,7 +6000,7 @@ msgstr ""
 "你可以在之后使用<methodname>get_iter()</methodname>方法为<classname>Mark</"
 "classname>的新位置创建迭代器。"
 
-#: C/index-in.docbook:3244
+#: index-in.docbook:3263
 msgid ""
 "There are two built-in <classname>Mark</classname>s - <literal>insert</"
 "literal> and <literal>selection_bound</literal>, which you can access with "
@@ -5972,7 +6012,7 @@ msgstr ""
 "classname>的<methodname>get_insert()</methodname>和"
 "<methodname>get_selection_bound()</methodname>方法访问它们。"
 
-#: C/index-in.docbook:3251
+#: index-in.docbook:3270
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextMark.";
 "html\">Reference</ulink>"
@@ -5980,7 +6020,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextMark.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:3257
+#: index-in.docbook:3276
 msgid ""
 "As mentioned above, each <classname>TextView</classname> has a "
 "<classname>TextBuffer</classname>, and one or more <classname>TextView</"
@@ -5990,7 +6030,7 @@ msgstr ""
 "classname>,并且多个<classname>TextView</classname>可以共享同一个"
 "<classname>TextBuffer</classname>。"
 
-#: C/index-in.docbook:3264
+#: index-in.docbook:3283
 msgid ""
 "Like the <classname>TreeView</classname>, you should probably put your "
 "<classname>TextView</classname> inside a <classname>ScrolledWindow</"
@@ -6001,7 +6041,7 @@ msgstr ""
 "classname>放入<classname>ScrolledWindow</classname>中以允许用户使用滚动条查看"
 "并在整个文本区域中移动。"
 
-#: C/index-in.docbook:3271
+#: index-in.docbook:3290
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextView.";
 "html\">Reference</ulink>"
@@ -6009,11 +6049,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextView.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:3274
+#: index-in.docbook:3293
 msgid "Default formatting"
 msgstr "默认格式"
 
-#: C/index-in.docbook:3275
+#: index-in.docbook:3294
 msgid ""
 "<classname>TextView</classname> has various methods which allow you to "
 "change the presentation of the buffer for this particular view. Some of "
@@ -6028,11 +6068,11 @@ msgstr ""
 "<methodname>set_right_margin()</methodname>、<methodname>set_indent()</"
 "methodname>等。"
 
-#: C/index-in.docbook:3286
+#: index-in.docbook:3305
 msgid "Scrolling"
 msgstr "滚动"
 
-#: C/index-in.docbook:3287
+#: index-in.docbook:3306
 msgid ""
 "<classname>Gtk::TextView</classname> has various <methodname>scroll_to()</"
 "methodname> methods. These allow you to ensure that a particular part of the "
@@ -6044,11 +6084,11 @@ msgstr ""
 "methodname>方法。这些可以确保你能看到缓冲区中的特定部分。例如你的应用程序可能"
 "会使用<methodname>Gtk::TextView::scroll_to()</methodname>方法显示找到的文本。"
 
-#: C/index-in.docbook:3302
+#: index-in.docbook:3321
 msgid "Widgets and ChildAnchors"
 msgstr "部件和子锚(ChildAnchors)"
 
-#: C/index-in.docbook:3303
+#: index-in.docbook:3322
 msgid ""
 "You can embed widgets, such as <classname>Gtk::Button</classname>s, in the "
 "text. Each such child widget needs a <classname>ChildAnchor</classname>. "
@@ -6061,12 +6101,12 @@ msgstr ""
 "如,使用<methodname>Gtk::TextBuffer::create_child_anchor()</methodname>于特定"
 "位置创建子锚:"
 
-#: C/index-in.docbook:3310
+#: index-in.docbook:3329
 #, no-wrap
 msgid "auto refAnchor = refBuffer-&gt;create_child_anchor(iter);"
 msgstr "auto refAnchor = refBuffer-&gt;create_child_anchor(iter);"
 
-#: C/index-in.docbook:3312
+#: index-in.docbook:3331
 msgid ""
 "Then, to add a widget at that position, use <methodname>Gtk::TextView::"
 "add_child_at_anchor()</methodname>:"
@@ -6074,12 +6114,12 @@ msgstr ""
 "然后使用<methodname>Gtk::TextView::add_child_at_anchor()</methodname>将部件添"
 "加到该位置:"
 
-#: C/index-in.docbook:3316
+#: index-in.docbook:3335
 #, no-wrap
 msgid "m_TextView.add_child_at_anchor(m_Button, refAnchor);"
 msgstr "m_TextView.add_child_at_anchor(m_Button, refAnchor);"
 
-#: C/index-in.docbook:3318
+#: index-in.docbook:3337
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextChildAnchor.html\">Reference</ulink>"
@@ -6087,7 +6127,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1TextChildAnchor.html\">参考</ulink>"
 
-#: C/index-in.docbook:3333
+#: index-in.docbook:3352
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/textview/\">Source Code</ulink>"
@@ -6095,11 +6135,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/textview/\">源代码</ulink>"
 
-#: C/index-in.docbook:3342
+#: index-in.docbook:3361
 msgid "Menus and Toolbars"
 msgstr "菜单和工具栏"
 
-#: C/index-in.docbook:3344
+#: index-in.docbook:3363
 msgid ""
 "There are specific APIs for menus and toolbars, but you should usually deal "
 "with them together, creating <classname>Gio::SimpleAction</classname>s that "
@@ -6114,7 +6154,7 @@ msgstr ""
 "被激活而不需要分别响应菜单和工具栏。你可以通过动作启用或者禁用菜单和工具栏"
 "项。<classname>Gtk::Builder</classname>可以创建菜单和工具栏。"
 
-#: C/index-in.docbook:3352
+#: index-in.docbook:3371
 msgid ""
 "This involves the use of the <classname>Gio::SimpleActionGroup</classname>, "
 "<classname>Gio::SimpleAction</classname> and <classname>Gtk::Builder</"
@@ -6127,11 +6167,11 @@ msgstr ""
 "这些类都需要通过返回<classname>RefPtr</classname>的<methodname>create()</"
 "methodname>方法进行实例化。"
 
-#: C/index-in.docbook:3360
+#: index-in.docbook:3379
 msgid "Actions"
 msgstr "动作(Actions)"
 
-#: C/index-in.docbook:3361
+#: index-in.docbook:3380
 msgid ""
 "First create the <classname>Gio::SimpleAction</classname>s and add them to a "
 "<classname>Gio::SimpleActionGroup</classname>, with <methodname>Gio::"
@@ -6146,7 +6186,7 @@ msgstr ""
 "<classname>Gio::SimpleActionGroup</classname>的基类。)。然后将动作组使用"
 "<methodname>Gtk::Widget::insert_action_group()</methodname>加入到你的窗口中。"
 
-#: C/index-in.docbook:3369
+#: index-in.docbook:3388
 msgid ""
 "The arguments to <methodname>add_action()</methodname> specify the action's "
 "name, which is used in the menu items and toolbar buttons. You can also "
@@ -6158,11 +6198,11 @@ msgstr ""
 "具栏按钮使用。你还可以在调用<methodname>add_action()</methodname>时指定信号处"
 "理函数。在菜单项或工具栏按钮被激活的时候此信号处理函数被调用。"
 
-#: C/index-in.docbook:3377 C/index-in.docbook:3503
+#: index-in.docbook:3396 index-in.docbook:3522
 msgid "For instance:"
 msgstr "例如:"
 
-#: C/index-in.docbook:3379
+#: index-in.docbook:3398
 #, no-wrap
 msgid ""
 "\n"
@@ -6183,7 +6223,7 @@ msgstr ""
 "\n"
 "insert_action_group(\"example\", m_refActionGroup);\n"
 
-#: C/index-in.docbook:3389
+#: index-in.docbook:3408
 msgid ""
 "If you use an <classname>Gtk::ApplicationWindow</classname>, you don't have "
 "to create your own action group. <classname>Gio::ActionGroup</classname> and "
@@ -6194,11 +6234,11 @@ msgstr ""
 "作组。因为<classname>Gio::ActionGroup</classname>和<classname>Gio::"
 "ActionMap</classname>是<classname>Gtk::ApplicationWindow</classname>的基类。"
 
-#: C/index-in.docbook:3400
+#: index-in.docbook:3419
 msgid "Menubar and Toolbar"
 msgstr "菜单和工具栏"
 
-#: C/index-in.docbook:3401
+#: index-in.docbook:3420
 msgid ""
 "Next you should create a <classname>Gtk::Builder</classname>. At this point "
 "is also a good idea to tell the application to respond to keyboard "
@@ -6209,12 +6249,12 @@ msgstr ""
 "<methodname>Gtk::Application::set_accel_for_action()</methodname>告诉应用程序"
 "响应键盘快捷键也是一个好主意。"
 
-#: C/index-in.docbook:3407 C/index-in.docbook:5053 C/index-in.docbook:5118
-#: C/index-in.docbook:10564
+#: index-in.docbook:3426 index-in.docbook:5072 index-in.docbook:5137
+#: index-in.docbook:10583
 msgid "For instance,"
 msgstr "例如:"
 
-#: C/index-in.docbook:3409
+#: index-in.docbook:3428
 #, no-wrap
 msgid ""
 "\n"
@@ -6233,7 +6273,7 @@ msgstr ""
 "app-&gt;set_accel_for_action(\"example.copy\", \"&lt;Primary&gt;c\");\n"
 "app-&gt;set_accel_for_action(\"example.paste\", \"&lt;Primary&gt;v\");\n"
 
-#: C/index-in.docbook:3417
+#: index-in.docbook:3436
 msgid ""
 "If your main window is derived from <classname>ApplicationWindow</classname> "
 "and you instantiate your menubar with <methodname>Gtk::Application::"
@@ -6246,7 +6286,7 @@ msgstr ""
 "则你不需要调用<methodname>set_accel_for_action()</methodname>。有关示例参见:"
 "<link linkend=\"menu-example-main\">应用程序菜单和主菜单示例</link>。"
 
-#: C/index-in.docbook:3425
+#: index-in.docbook:3444
 msgid ""
 "Then, you can define the actual visible layout of the menus and toolbars, "
 "and add the UI layout to the <classname>Builder</classname>. This \"ui string"
@@ -6257,7 +6297,7 @@ msgstr ""
 "<classname>Builder</classname>。这个\"UI字符串\"使用XML格式,你应该在其中使用"
 "你已经创建的动作的名称。例如:"
 
-#: C/index-in.docbook:3431
+#: index-in.docbook:3450
 #, no-wrap
 msgid ""
 "\n"
@@ -6340,7 +6380,7 @@ msgstr ""
 "m_refBuilder-&gt;add_from_string(ui_info);\n"
 "m_refBuilder-&gt;add_from_resource(\"/toolbar/toolbar.glade\");\n"
 
-#: C/index-in.docbook:3472
+#: index-in.docbook:3491
 msgid ""
 "This is where we specify the names of the menu items as they will be seen by "
 "users in the menu. Therefore, this is where you should make strings "
@@ -6349,7 +6389,7 @@ msgstr ""
 "这里我们指定菜单项的名称,因为用户可以在菜单中看到它们。因此你应该添加"
 "<literal>translatable='yes'</literal>使这些的字符串可以被翻译。"
 
-#: C/index-in.docbook:3476
+#: index-in.docbook:3495
 msgid ""
 "To instantiate a <classname>Gtk::MenuBar</classname> and <classname>Gtk::"
 "Toolbar</classname> which you can actually show, you should use the "
@@ -6362,7 +6402,7 @@ msgstr ""
 "methodname>和<methodname>Builder::get_widget()</methodname>方法,然后将部件加"
 "入容器中。例如:"
 
-#: C/index-in.docbook:3483
+#: index-in.docbook:3502
 #, no-wrap
 msgid ""
 "\n"
@@ -6381,11 +6421,11 @@ msgstr ""
 "auto toolbar = m_refBuilder-&gt;get_widget&lt;Gtk::Toolbar&gt;(\"toolbar\");\n"
 "m_Box.append(*toolbar);\n"
 
-#: C/index-in.docbook:3495
+#: index-in.docbook:3514
 msgid "Popup Menus"
 msgstr "弹出菜单"
 
-#: C/index-in.docbook:3496
+#: index-in.docbook:3515
 msgid ""
 "<classname>Menus</classname> are normally just added to a window, but they "
 "can also be displayed temporarily as the result of a mouse button click. For "
@@ -6395,7 +6435,7 @@ msgstr ""
 "<classname>Menus</classname>通常将直接被加入到窗口中,但也可以通过鼠标单击来"
 "临时显示他们。例如当用户单击鼠标右键的时候,可能需要显示上下文菜单。"
 
-#: C/index-in.docbook:3505
+#: index-in.docbook:3524
 #, no-wrap
 msgid ""
 "\n"
@@ -6450,7 +6490,7 @@ msgstr ""
 "auto gmenu = m_refBuilder-&gt;get_object&lt;Gio::Menu&gt;(\"menu-examplepopup\");\n"
 "m_pMenuPopup = std::make_unique&lt;Gtk::Menu&gt;(gmenu);\n"
 
-#: C/index-in.docbook:3532
+#: index-in.docbook:3551
 msgid ""
 "To show the popup menu, use <classname>Gtk::Menu</classname>'s "
 "<methodname>popup()</methodname> method, providing the button identifier and "
@@ -6462,7 +6502,7 @@ msgstr ""
 "信号提供的激活时机(鼠标单双三击、按下还是释放)和按钮标识(哪个鼠标按键)。"
 "例如:"
 
-#: C/index-in.docbook:3538
+#: index-in.docbook:3557
 #, no-wrap
 msgid ""
 "\n"
@@ -6495,11 +6535,11 @@ msgstr ""
 "    return false;\n"
 "}\n"
 
-#: C/index-in.docbook:3557
+#: index-in.docbook:3576
 msgid "Gio::Resource and glib-compile-resources"
 msgstr "Gio::Resource和glib-compile-resources"
 
-#: C/index-in.docbook:3559
+#: index-in.docbook:3578
 msgid ""
 "Applications and libraries often contain binary or textual data that is "
 "really part of the application, rather than user data. For instance "
@@ -6515,7 +6555,7 @@ msgstr ""
 "文件、图标等。这些通常这些文件放于<filename class=\"directory\">$datadir/"
 "appname</filename>目录下,也可以将其转换为文本字面量手动包含在代码中。"
 
-#: C/index-in.docbook:3567
+#: index-in.docbook:3586
 msgid ""
 "The <classname>Gio::Resource</classname> API and the <application>glib-"
 "compile-resources</application> program provide a convenient and efficient "
@@ -6535,7 +6575,7 @@ msgstr ""
 "例共享)且很简单(无需对IO错误进行检查和在文件系统中查找文件)。这也使得创建"
 "可重定位应用程序变得更为简单。"
 
-#: C/index-in.docbook:3576
+#: index-in.docbook:3595
 msgid ""
 "Resource bundles are created by the <ulink url=\"https://developer.gnome.org/";
 "gio/stable/glib-compile-resources.html\">glib-compile-resources</ulink> "
@@ -6548,7 +6588,7 @@ msgstr ""
 "文件描述资源包并由该XML文件指示资源包引用了那些文件。被引用的文件和XML文件将"
 "被组合为一个二进制的资源包。"
 
-#: C/index-in.docbook:3582
+#: index-in.docbook:3601
 msgid ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGio_1_1Resource.";
 "html\">Gio::Resource Reference</ulink>"
@@ -6556,7 +6596,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGio_1_1Resource.";
 "html\">Gio::Resource参考</ulink>"
 
-#: C/index-in.docbook:3585
+#: index-in.docbook:3604
 #, no-wrap
 msgid ""
 "\n"
@@ -6577,15 +6617,15 @@ msgstr ""
 "  &lt;/gresource&gt;\n"
 "&lt;/gresources&gt;\n"
 
-#: C/index-in.docbook:3596
+#: index-in.docbook:3615
 msgid "<filename>/toolbar/toolbar.glade</filename>"
 msgstr "<filename>/toolbar/toolbar.glade</filename>"
 
-#: C/index-in.docbook:3597
+#: index-in.docbook:3616
 msgid "<filename>/toolbar/rain.png</filename>"
 msgstr "<filename>/toolbar/rain.png</filename>"
 
-#: C/index-in.docbook:3583
+#: index-in.docbook:3602
 msgid ""
 "An example: <_:programlisting-1/> This will create a resource bundle with "
 "the files <_:itemizedlist-2/>"
@@ -6593,12 +6633,12 @@ msgstr ""
 "一个示例:<_:programlisting-1/> 这将创建一个包含以下文件的资源包:<_:"
 "itemizedlist-2/>"
 
-#: C/index-in.docbook:3605
+#: index-in.docbook:3624
 #, no-wrap
 msgid "$ glib-compile-resources --target=resources.c --generate-source toolbar.gresource.xml"
 msgstr "$ glib-compile-resources --target=resources.c --generate-source toolbar.gresource.xml"
 
-#: C/index-in.docbook:3600
+#: index-in.docbook:3619
 msgid ""
 "You can then use <application>glib-compile-resources</application> to "
 "compile the xml to a binary bundle that you can load with <methodname>Gio::"
@@ -6612,7 +6652,7 @@ msgstr ""
 "包。但是使用--generate-source生成C源文件直接链接到你的应用程序更为常见。例"
 "如:<_:screen-1/>"
 
-#: C/index-in.docbook:3607
+#: index-in.docbook:3626
 msgid ""
 "Once a <classname>Gio::Resource</classname> has been created and registered "
 "all the data in it can be accessed globally in the process by using API "
@@ -6629,7 +6669,7 @@ msgstr ""
 "的全局访问数据。你还可以使用类似于<uri>resource:///toolbar/rain.png</uri>的"
 "URI通过<classname>Gio::File</classname>访问资源数据。"
 
-#: C/index-in.docbook:3615
+#: index-in.docbook:3634
 msgid ""
 "Often you don't need a <classname>Gio::Resource</classname> instance, "
 "because resource data can be loaded with methods such as <methodname>Gdk::"
@@ -6642,11 +6682,11 @@ msgstr ""
 "<methodname>Gtk::Builder::add_from_resource()</methodname>和<methodname>Gtk::"
 "Image::set_from_resource()</methodname>直接加载资源数据。"
 
-#: C/index-in.docbook:3628
+#: index-in.docbook:3647
 msgid "Application Menu and Main Menu example"
 msgstr "应用程序菜单和主菜单实例"
 
-#: C/index-in.docbook:3629
+#: index-in.docbook:3648
 msgid ""
 "This program contains an application menu, a menubar and a toolbar. Classes "
 "are derived from <classname>Gtk::Application</classname> and <classname>Gtk::"
@@ -6656,11 +6696,11 @@ msgstr ""
 "<classname>Gtk::Application</classname>和<classname>Gtk::ApplicationWindow</"
 "classname>派生而来的。"
 
-#: C/index-in.docbook:3636
+#: index-in.docbook:3655
 msgid "App and Main Menu"
 msgstr "应用程序和主菜单"
 
-#: C/index-in.docbook:3642
+#: index-in.docbook:3661
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus/main_menu/\">Source Code</ulink>"
@@ -6668,11 +6708,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus/main_menu/\">源代码</ulink>"
 
-#: C/index-in.docbook:3646
+#: index-in.docbook:3665
 msgid "Main Menu example"
 msgstr "主菜单示例"
 
-#: C/index-in.docbook:3647
+#: index-in.docbook:3666
 msgid ""
 "This program contains a menubar and a toolbar. A class is derived from "
 "<classname>Gtk::Window</classname>."
@@ -6680,11 +6720,11 @@ msgstr ""
 "该程序包含一个菜单栏和一个工具栏。一个从<classname>Gtk::Window</classname>派"
 "生的类。"
 
-#: C/index-in.docbook:3653
+#: index-in.docbook:3672
 msgid "Main Menu"
 msgstr "主菜单"
 
-#: C/index-in.docbook:3659
+#: index-in.docbook:3678
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus_and_toolbars\">Source Code</ulink>"
@@ -6692,15 +6732,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus_and_toolbars\">源代码</ulink>"
 
-#: C/index-in.docbook:3663
+#: index-in.docbook:3682
 msgid "Popup Menu example"
 msgstr "弹出菜单示例"
 
-#: C/index-in.docbook:3666
+#: index-in.docbook:3685
 msgid "Popup Menu"
 msgstr "弹出菜单"
 
-#: C/index-in.docbook:3672
+#: index-in.docbook:3691
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus/popup/\">Source Code</ulink>"
@@ -6708,11 +6748,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/menus/popup/\">源代码</ulink>"
 
-#: C/index-in.docbook:3681
+#: index-in.docbook:3700
 msgid "Adjustments"
 msgstr "调整(Adjustments)"
 
-#: C/index-in.docbook:3683
+#: index-in.docbook:3702
 msgid ""
 "<application>gtkmm</application> has various widgets that can be visually "
 "adjusted using the mouse or the keyboard, such as the <classname>Range</"
@@ -6728,7 +6768,7 @@ msgstr ""
 "<classname>Viewport</classname>部件。这些部件的<classname>Gtk::Adjustment</"
 "classname>对象表达了它的共有部分的API。"
 
-#: C/index-in.docbook:3693
+#: index-in.docbook:3712
 msgid ""
 "So that applications can react to changes, for instance when a user moves a "
 "scrollbar, <classname>Gtk::Adjustment</classname> has a "
@@ -6740,11 +6780,11 @@ msgstr ""
 "号。你可以在信号处理函数中使用<methodname>get_value()</methodname>方法获取新"
 "的值。"
 
-#: C/index-in.docbook:3701
+#: index-in.docbook:3720
 msgid "Creating an Adjustment"
 msgstr "创建调整"
 
-#: C/index-in.docbook:3703
+#: index-in.docbook:3722
 msgid ""
 "The <classname>Gtk::Adjustment</classname> is created by its "
 "<methodname>create()</methodname> method which is as follows:"
@@ -6752,7 +6792,7 @@ msgstr ""
 "<classname>Gtk::Adjustment</classname>由它的<methodname>create()</methodname>"
 "方法创建,该方法的声明如下:"
 
-#: C/index-in.docbook:3708
+#: index-in.docbook:3727
 #, no-wrap
 msgid ""
 "Glib::RefPtr&lt;Gtk::Adjustment&gt; Gtk::Adjustment::create(\n"
@@ -6771,7 +6811,7 @@ msgstr ""
 "  double page_increment = 10,\n"
 "  double page_size = 0);"
 
-#: C/index-in.docbook:3716
+#: index-in.docbook:3735
 msgid ""
 "The <parameter>value</parameter> argument is the initial value of the "
 "adjustment, usually corresponding to the topmost or leftmost position of an "
@@ -6793,11 +6833,11 @@ msgstr ""
 "种方式与平移部件能见到的区域大小。<parameter>upper</parameter>参数被用于表示"
 "平移子部件最底端或最右端的坐标。"
 
-#: C/index-in.docbook:3735
+#: index-in.docbook:3754
 msgid "Using Adjustments the Easy Way"
 msgstr "轻松使用调整"
 
-#: C/index-in.docbook:3737
+#: index-in.docbook:3756
 msgid ""
 "The adjustable widgets can be roughly divided into those which use and "
 "require specific units for these values, and those which treat them as "
@@ -6805,7 +6845,7 @@ msgid ""
 msgstr ""
 "可调整部件大致可以分为使用并要求这些值使用特定单位的和将它们视作任意数字的。"
 
-#: C/index-in.docbook:3742
+#: index-in.docbook:3761
 msgid ""
 "The group which treats the values as arbitrary numbers includes the "
 "<classname>Range</classname> widgets (<classname>Scrollbar</classname> and "
@@ -6825,7 +6865,7 @@ msgstr ""
 "整的<parameter>value</parameter>的范围。默认情况下它们只会修改调整的"
 "<parameter>value</parameter>。"
 
-#: C/index-in.docbook:3754
+#: index-in.docbook:3773
 msgid ""
 "The other group includes the <classname>Viewport</classname> widget and the "
 "<classname>ScrolledWindow</classname> widget. All of these widgets use pixel "
@@ -6839,7 +6879,7 @@ msgstr ""
 "的修改调整的值。虽然所有使用调整的部件都可以创建自己的调整也可以使用你提供的"
 "调整,但是通常情况下你都会希望使用这些部件自行创建的调整。"
 
-#: C/index-in.docbook:3763
+#: index-in.docbook:3782
 msgid ""
 "If you share an adjustment object between a Scrollbar and a TextView widget, "
 "manipulating the scrollbar will automagically adjust the TextView widget. "
@@ -6848,7 +6888,7 @@ msgstr ""
 "如果你使滚动条和文本视图部件共享一个调整对象,则你操纵滚动条的时候文本视图将"
 "被自动调整。你可以这样设置:"
 
-#: C/index-in.docbook:3768
+#: index-in.docbook:3787
 #, no-wrap
 msgid ""
 "// creates its own adjustments\n"
@@ -6861,11 +6901,11 @@ msgstr ""
 "// uses the newly-created adjustment for the scrollbar as well\n"
 "Gtk::Scrollbar vscrollbar (textview.get_vadjustment(), Gtk::ORIENTATION_VERTICAL);"
 
-#: C/index-in.docbook:3776
+#: index-in.docbook:3795
 msgid "Adjustment Internals"
 msgstr "调整的内部"
 
-#: C/index-in.docbook:3778
+#: index-in.docbook:3797
 msgid ""
 "OK, you say, that's nice, but what if I want to create my own handlers to "
 "respond when the user adjusts a <classname>Range</classname> widget or a "
@@ -6878,7 +6918,7 @@ msgstr ""
 "Adjustment</classname>的<methodname>get_value()</methodname>和"
 "<methodname>set_value()</methodname>方法访问其值:"
 
-#: C/index-in.docbook:3786
+#: index-in.docbook:3805
 msgid ""
 "As mentioned earlier, <classname>Gtk::Adjustment</classname> can emit "
 "signals. This is, of course, how updates happen automatically when you share "
@@ -6893,7 +6933,7 @@ msgstr ""
 "享一个<classname>Adjustment</classname>对象时,如果你操纵滚动条与其共享调整对"
 "象的其他可调整部件将会自动更新。"
 
-#: C/index-in.docbook:3795
+#: index-in.docbook:3814
 msgid ""
 "So, for example, if you have a <classname>Scale</classname> widget, and you "
 "want to change the rotation of a picture whenever its value changes, you "
@@ -6902,7 +6942,7 @@ msgstr ""
 "因此,例如,如果你有一个<classname>Scale</classname>部件并且你想要当调整值变"
 "更以后更改图片的旋转角度,你可以创建一个如下所示的信号处理函数:"
 
-#: C/index-in.docbook:3800
+#: index-in.docbook:3819
 #, no-wrap
 msgid ""
 "void cb_rotate_picture (MyPicture* picture)\n"
@@ -6915,11 +6955,11 @@ msgstr ""
 "  picture-&gt;set_rotation(adj-&gt;get_value());\n"
 "..."
 
-#: C/index-in.docbook:3804
+#: index-in.docbook:3823
 msgid "and connect it to the scale widget's adjustment like this:"
 msgstr "并且将其连接到比例部件的调整对象上,如下所示:"
 
-#: C/index-in.docbook:3807
+#: index-in.docbook:3826
 #, no-wrap
 msgid ""
 "adj-&gt;signal_value_changed().connect(sigc::bind&lt;MyPicture*&gt;(sigc::mem_fun(*this,\n"
@@ -6928,7 +6968,7 @@ msgstr ""
 "adj-&gt;signal_value_changed().connect(sigc::bind&lt;MyPicture*&gt;(sigc::mem_fun(*this,\n"
 "    &amp;cb_rotate_picture), picture));"
 
-#: C/index-in.docbook:3810
+#: index-in.docbook:3829
 msgid ""
 "What if a widget reconfigures the <parameter>upper</parameter> or "
 "<parameter>lower</parameter> fields of its <classname>Adjustment</"
@@ -6939,7 +6979,7 @@ msgstr ""
 "parameter>和<parameter>lower</parameter>字段(例如:用户向文本部件添加了更多"
 "的文本),那么它将发出<literal>changed</literal>信号。"
 
-#: C/index-in.docbook:3817
+#: index-in.docbook:3836
 msgid ""
 "<classname>Range</classname> widgets typically connect a handler to this "
 "signal, which changes their appearance to reflect the change - for example, "
@@ -6952,23 +6992,23 @@ msgstr ""
 "<parameter>lower</parameter>与<parameter>upper</parameter>的差值的增大逐渐变"
 "小,反之则逐渐增大。"
 
-#: C/index-in.docbook:3826
+#: index-in.docbook:3845
 msgid ""
 "You probably won't ever need to attach a handler to this signal, unless "
 "you're writing a new type of range widget."
 msgstr ""
 "除非你正在编写新的范围部件,否则你可能永远不需要将处理程序连接到这个信号。"
 
-#: C/index-in.docbook:3830
+#: index-in.docbook:3849
 #, no-wrap
 msgid "adjustment-&gt;signal_changed();"
 msgstr "adjustment-&gt;signal_changed();"
 
-#: C/index-in.docbook:3837
+#: index-in.docbook:3856
 msgid "Dialogs"
 msgstr "对话框(Dialogs)"
 
-#: C/index-in.docbook:3839
+#: index-in.docbook:3858
 msgid ""
 "Dialogs are used as secondary windows, to provide specific information or to "
 "ask questions. <classname>Gtk::Dialog</classname> windows contain a few pre-"
@@ -6979,7 +7019,7 @@ msgstr ""
 "classname>窗口包含了一些预装部件以确保一致性,且有一个<methodname>run()</"
 "methodname>方法可以阻塞到用户关闭对话框。"
 
-#: C/index-in.docbook:3846
+#: index-in.docbook:3865
 msgid ""
 "There are several derived <classname>Dialog</classname> classes which you "
 "might find useful. <classname>Gtk::MessageDialog</classname> is used for "
@@ -6990,7 +7030,7 @@ msgstr ""
 "<classname>Gtk::MessageDialog</classname>多被用于简单的通知。但有时候你也需要"
 "派生自己的对话框类以提供更为复杂的功能。"
 
-#: C/index-in.docbook:3853
+#: index-in.docbook:3872
 msgid ""
 "To pack widgets into a custom dialog, you should pack them into the "
 "<classname>Gtk::Box</classname>, available via "
@@ -7004,7 +7044,7 @@ msgstr ""
 "<classname>Button</classname>,那么你可以直接使用<methodname>add_button()</"
 "methodname>方法。"
 
-#: C/index-in.docbook:3861
+#: index-in.docbook:3880
 msgid ""
 "The <methodname>run()</methodname> method returns an <literal>int</literal>. "
 "This may be a value from the <literal>Gtk::ResponseType</literal> if the "
@@ -7017,7 +7057,7 @@ msgstr ""
 "literal>中的一个也可能是使用<methodname>add_button()</methodname>时你所指定的"
 "值。"
 
-#: C/index-in.docbook:3868
+#: index-in.docbook:3887
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Dialog.";
 "html\">Reference</ulink>"
@@ -7025,11 +7065,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Dialog.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:3870 C/index-in.docbook:3885
+#: index-in.docbook:3889 index-in.docbook:3904
 msgid "MessageDialog"
 msgstr "消息对话框(MessageDialog)"
 
-#: C/index-in.docbook:3871
+#: index-in.docbook:3890
 msgid ""
 "<classname>MessageDialog</classname> is a convenience class, used to create "
 "simple, standard message dialogs, with a message, an icon, and buttons for "
@@ -7042,7 +7082,7 @@ msgstr ""
 "消息文本,也可以通过<literal>Gtk::ButtonsType</literal>枚举指定其包含的标准按"
 "钮。"
 
-#: C/index-in.docbook:3879
+#: index-in.docbook:3898
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1MessageDialog.html\">Reference</ulink>"
@@ -7050,7 +7090,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1MessageDialog.html\">参考</ulink>"
 
-#: C/index-in.docbook:3891
+#: index-in.docbook:3910
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/messagedialog\">Source Code</ulink>"
@@ -7058,18 +7098,18 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/messagedialog\">源代码</ulink>"
 
-#: C/index-in.docbook:3896
+#: index-in.docbook:3915
 msgid "FileChooserDialog"
 msgstr "文件选择对话框(FileChooserDialog)"
 
-#: C/index-in.docbook:3897
+#: index-in.docbook:3916
 msgid ""
 "The <classname>FileChooserDialog</classname> is suitable for use with \"Open"
 "\" or \"Save\" menu items."
 msgstr ""
 "<classname>FileChooserDialog</classname>通常被用于\"打开\"或\"保存\"菜单项。"
 
-#: C/index-in.docbook:3901
+#: index-in.docbook:3920
 msgid ""
 "Most of the useful member methods for this class are actually in the "
 "<classname>Gtk::FileChooser</classname> base class."
@@ -7077,7 +7117,7 @@ msgstr ""
 "该类的大部分有用的成员函数都在其基类<classname>Gtk::FileChooser</classname>"
 "中。"
 
-#: C/index-in.docbook:3906
+#: index-in.docbook:3925
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1FileChooserDialog.html\">Reference</ulink>"
@@ -7085,11 +7125,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1FileChooserDialog.html\">参考</ulink>"
 
-#: C/index-in.docbook:3912 C/index-in.docbook:5440
+#: index-in.docbook:3931 index-in.docbook:5459
 msgid "FileChooser"
 msgstr "文件选择器(FileChooser)"
 
-#: C/index-in.docbook:3918
+#: index-in.docbook:3937
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/filechooserdialog\">Source Code</ulink>"
@@ -7097,11 +7137,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/filechooserdialog\">源代码</ulink>"
 
-#: C/index-in.docbook:3922 C/index-in.docbook:3935
+#: index-in.docbook:3941 index-in.docbook:3954
 msgid "ColorChooserDialog"
 msgstr "颜色选择器对话框(ColorChooserDialog)"
 
-#: C/index-in.docbook:3923
+#: index-in.docbook:3942
 msgid ""
 "The <classname>ColorChooserDialog</classname> allows the user to choose a "
 "color. The <classname>ColorButton</classname> opens a color selection dialog "
@@ -7110,7 +7150,7 @@ msgstr ""
 "<classname>ColorChooserDialog</classname>允许用户选择一个颜色。当"
 "<classname>ColorButton</classname>被点击的时会打开一个颜色选择对话框。"
 
-#: C/index-in.docbook:3929
+#: index-in.docbook:3948
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ColorChooserDialog.html\">Reference</ulink>"
@@ -7118,7 +7158,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1ColorChooserDialog.html\">参考</ulink>"
 
-#: C/index-in.docbook:3941
+#: index-in.docbook:3960
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/colorchooserdialog\">Source Code</ulink>"
@@ -7126,11 +7166,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/colorchooserdialog\">源代码</ulink>"
 
-#: C/index-in.docbook:3946 C/index-in.docbook:3959
+#: index-in.docbook:3965 index-in.docbook:3978
 msgid "FontChooserDialog"
 msgstr "字体选择器对话框(FontChooserDialog)"
 
-#: C/index-in.docbook:3947
+#: index-in.docbook:3966
 msgid ""
 "The <classname>FontChooserDialog</classname> allows the user to choose a "
 "font. The <classname>FontButton</classname> opens a font chooser dialog when "
@@ -7139,7 +7179,7 @@ msgstr ""
 "<classname>FontChooserDialog</classname>允许用户选择一个字体。当"
 "<classname>FontButton</classname>被点击时将打开一个字体选择对话框。"
 
-#: C/index-in.docbook:3953
+#: index-in.docbook:3972
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1FontChooserDialog.html\">Reference</ulink>"
@@ -7147,7 +7187,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1FontChooserDialog.html\">参考</ulink>"
 
-#: C/index-in.docbook:3965
+#: index-in.docbook:3984
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/fontchooserdialog\">Source Code</ulink>"
@@ -7155,11 +7195,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/fontchooserdialog\">源代码</ulink>"
 
-#: C/index-in.docbook:3970
+#: index-in.docbook:3989
 msgid "Non-modal AboutDialog"
 msgstr "非模态关于对话框(AboutDialog)"
 
-#: C/index-in.docbook:3971
+#: index-in.docbook:3990
 msgid ""
 "The <classname>AboutDialog</classname> offers a simple way to display "
 "information about a program, like its logo, name, copyright, website and "
@@ -7168,7 +7208,7 @@ msgstr ""
 "<classname>AboutDialog</classname>提供了一个简单的显示程序有关信息(例如标"
 "志、名称、版权、网站、许可证)的方式。"
 
-#: C/index-in.docbook:3975
+#: index-in.docbook:3994
 msgid ""
 "Most dialogs in this chapter are modal, that is, they freeze the rest of the "
 "application while they are shown. It's also possible to create a non-modal "
@@ -7184,7 +7224,7 @@ msgstr ""
 "不会想要将该对话框做成非模态,但这不表示非模态对话框在其它情况下没有用。例"
 "如:在<application>gedit</application>中搜索和替换对话框就是非模态的。"
 
-#: C/index-in.docbook:3985
+#: index-in.docbook:4004
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1AboutDialog.html\">Reference</ulink>"
@@ -7192,11 +7232,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1AboutDialog.html\">参考</ulink>"
 
-#: C/index-in.docbook:3991
+#: index-in.docbook:4010
 msgid "AboutDialog"
 msgstr "关于对话框"
 
-#: C/index-in.docbook:3997
+#: index-in.docbook:4016
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/aboutdialog\">Source Code</ulink>"
@@ -7204,11 +7244,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/dialogs/aboutdialog\">源代码</ulink>"
 
-#: C/index-in.docbook:4005
+#: index-in.docbook:4024
 msgid "The DrawingArea Widget"
 msgstr "绘图区域部件(DrawingArea Widget)"
 
-#: C/index-in.docbook:4006
+#: index-in.docbook:4025
 msgid ""
 "The <classname>DrawingArea</classname> widget is a blank window that gives "
 "you the freedom to create any graphic you desire. Along with that freedom "
@@ -7227,7 +7267,7 @@ msgstr ""
 "确定如何绘制绘部件的内容。你可以调用<methodname>set_draw_func()</methodname>"
 "成员函数来设置绘图函数。"
 
-#: C/index-in.docbook:4018
+#: index-in.docbook:4037
 msgid ""
 "GTK uses the <ulink url=\"http://cairographics.org\";>Cairo</ulink> drawing "
 "API. With <application>gtkmm</application>, you may use the <ulink url="
@@ -7237,7 +7277,7 @@ msgstr ""
 "<application>gtkmm</application>中你可以使用由<ulink url=\"http://www.";
 "cairographics.org/cairomm/\">cairomm</ulink>提供的开罗C++ API。"
 
-#: C/index-in.docbook:4023
+#: index-in.docbook:4042
 msgid ""
 "You can draw very sophisticated shapes using Cairo, but the methods to do so "
 "are quite basic. Cairo provides methods for drawing straight lines, curved "
@@ -7252,11 +7292,11 @@ msgstr ""
 "复杂的形状和路径,然后用纯色、渐变、模式等进行填充。除此之外,开罗还可以进行"
 "复杂的转换、合成图像和渲染抗锯齿文本等。"
 
-#: C/index-in.docbook:4033
+#: index-in.docbook:4052
 msgid "Cairo and Pango"
 msgstr "开罗和Pango"
 
-#: C/index-in.docbook:4034
+#: index-in.docbook:4053
 msgid ""
 "Although Cairo can render text, it's not meant to be a replacement for "
 "Pango. Pango is a better choice if you need to perform more advanced text "
@@ -7267,7 +7307,7 @@ msgstr ""
 "渲染(例如环绕和省略文本)则Pango会是更好的选择。只有当文本是图形的一部分的时"
 "候才应该使用开罗绘制文本。"
 
-#: C/index-in.docbook:4039
+#: index-in.docbook:4058
 msgid ""
 "In this section of the tutorial, we'll cover the basic Cairo drawing model, "
 "describe each of the basic drawing elements in some detail (with examples), "
@@ -7277,11 +7317,11 @@ msgstr ""
 "在本教程的这一部分中,我们将介绍开罗的基本绘图模型,详细描述每个基本绘制元素"
 "(包括示例),然后介绍一个使用开罗绘制自定义时钟部件的简单应用程序。"
 
-#: C/index-in.docbook:4046
+#: index-in.docbook:4065
 msgid "The Cairo Drawing Model"
 msgstr "开罗绘制模型"
 
-#: C/index-in.docbook:4047
+#: index-in.docbook:4066
 msgid ""
 "The basic concept of drawing in Cairo involves defining 'invisible' paths "
 "and then stroking or filling them to make them visible."
@@ -7289,7 +7329,7 @@ msgstr ""
 "开罗的基本概念包括定义'不可见'路径然后描绘(stroking)或者填充(filling)它们使其"
 "可见。"
 
-#: C/index-in.docbook:4051
+#: index-in.docbook:4070
 msgid ""
 "To do any drawing in <application>gtkmm</application> with Cairo, you must "
 "first get a <classname>Cairo::Context</classname> object. This class holds "
@@ -7321,7 +7361,7 @@ msgstr ""
 "RefPtr&lt;Cairo::Context&gt;</classname>对象(请注意区分<classname>Gdk::"
 "CairoContext</classname>与<classname>Cairo::Context</classname>。)。"
 
-#: C/index-in.docbook:4068
+#: index-in.docbook:4087
 msgid ""
 "The following example shows how to set up a Cairo context with a foreground "
 "color of red and a width of 2. Any drawing functions that use this context "
@@ -7330,7 +7370,7 @@ msgstr ""
 "以下示例显示如何设置一个开罗上下文(Cairo Context)的前景色为红色且宽度为2。任"
 "何使用该上下文的绘图函数都将使用这些设置。"
 
-#: C/index-in.docbook:4073
+#: index-in.docbook:4092
 #, no-wrap
 msgid ""
 "\n"
@@ -7349,7 +7389,7 @@ msgstr ""
 "myContext-&gt;set_line_width(2.0);\n"
 "    "
 
-#: C/index-in.docbook:4080
+#: index-in.docbook:4099
 msgid ""
 "Each <classname>Cairo::Context</classname> is associated with a particular "
 "<classname>Gdk::Surface</classname>, so the first line of the above example "
@@ -7364,7 +7404,7 @@ msgstr ""
 "Surface</classname>创建一个<classname>Cairo::Context</classname>对象。最后两"
 "行更改上下文的图形状态。"
 
-#: C/index-in.docbook:4088
+#: index-in.docbook:4107
 msgid ""
 "There are a number of graphics state variables that can be set for a Cairo "
 "context. The most common context attributes are color (using "
@@ -7391,7 +7431,7 @@ msgstr ""
 "填充规则、是否执行抗锯齿规则等。更多详情请参阅<ulink url=\"http://www.";
 "cairographics.org/cairomm/\">cairomm</ulink>API文档。"
 
-#: C/index-in.docbook:4120
+#: index-in.docbook:4139
 msgid ""
 "It is good practice to put all modifications to the graphics state between "
 "<methodname>save()</methodname>/<methodname>restore()</methodname> function "
@@ -7403,7 +7443,7 @@ msgstr ""
 "methodname>调用之间进行所有对图形状态的更改。例如,如果你有一个将"
 "<classname>Cairo::Context</classname>的引用作为参数的函数,你可以这样实现它:"
 
-#: C/index-in.docbook:4126
+#: index-in.docbook:4145
 #, no-wrap
 msgid ""
 "void doSomething(const Cairo::RefPtr&lt;Cairo::Context&gt;&amp; context, int x)\n"
@@ -7422,7 +7462,7 @@ msgstr ""
 "    context-&gt;restore();\n"
 "}"
 
-#: C/index-in.docbook:4103
+#: index-in.docbook:4122
 msgid ""
 "The current state of a <classname>Cairo::Context</classname> can be saved to "
 "an internal stack of saved states and later be restored to the state it was "
@@ -7449,7 +7489,7 @@ msgstr ""
 "<methodname>restore()</methodname>调用都会将恢复状态到与之相对应的"
 "<methodname>save()</methodname>所保存的状态。 <_:tip-1/>"
 
-#: C/index-in.docbook:4135
+#: index-in.docbook:4154
 msgid ""
 "The draw function that you set with a call to <methodname>set_draw_func()</"
 "methodname> is called with a Cairo context that you shall use for drawing in "
@@ -7461,11 +7501,11 @@ msgstr ""
 "要在绘图函数中对此开罗上下文进行保存和恢复(部件会在调用绘图函数时做保存与恢"
 "复)。"
 
-#: C/index-in.docbook:4143
+#: index-in.docbook:4162
 msgid "Drawing Straight Lines"
 msgstr "画直线"
 
-#: C/index-in.docbook:4152
+#: index-in.docbook:4171
 msgid ""
 "Since the Cairo graphics library was written with support for multiple "
 "output targets (the X window system, PNG images, OpenGL, etc), there is a "
@@ -7484,7 +7524,7 @@ msgstr ""
 "你可能会需要使一个窗口的宽和高在调整比例后的坐标系中取值范围均处于0到1之间"
 "(单位正方形)。"
 
-#: C/index-in.docbook:4144
+#: index-in.docbook:4163
 msgid ""
 "Now that we understand the basics of the Cairo graphics library, we're "
 "almost ready to start drawing. We'll start with the simplest of drawing "
@@ -7497,7 +7537,7 @@ msgstr ""
 "元素:直线 开始。但是在此之前你需要对开罗的坐标系有所了解。开罗的坐标系原点在"
 "窗口的左上角,从左向右X的值逐渐增大,从上往下Y的值逐渐增大。 <_:tip-1/>"
 
-#: C/index-in.docbook:4167
+#: index-in.docbook:4186
 msgid ""
 "In this example, we'll construct a small but fully functional "
 "<application>gtkmm</application> program and draw some lines into the "
@@ -7516,7 +7556,7 @@ msgstr ""
 "方 -- 在你移动到的点和你之前所在的点直接不会画出一条线。使用"
 "<methodname>line_to()</methodname>函数可以在两点之间画线。"
 
-#: C/index-in.docbook:4179
+#: index-in.docbook:4198
 msgid ""
 "After you've finished creating your path, you still haven't drawn anything "
 "visible yet. To make the path visible, you must use the function "
@@ -7530,7 +7570,7 @@ msgstr ""
 "Context</classname>对象中保存的线宽与样式绘制当前的路径。描绘完成后,当前路径"
 "将被清除,以便你可以从下一个路径开始。"
 
-#: C/index-in.docbook:4188
+#: index-in.docbook:4207
 msgid ""
 "Many Cairo drawing functions have a <methodname>_preserve()</methodname> "
 "variant. Normally drawing functions such as <methodname>clip()</methodname>, "
@@ -7545,11 +7585,11 @@ msgstr ""
 "<methodname>_preserve()</methodname>变体,则当前路径会被保留,以便下一个绘图"
 "函数能继续在一样的路径上绘制。"
 
-#: C/index-in.docbook:4198 C/index-in.docbook:4318
+#: index-in.docbook:4217 index-in.docbook:4337
 msgid "Drawing Area - Lines"
 msgstr "绘图区域 - 线"
 
-#: C/index-in.docbook:4204
+#: index-in.docbook:4223
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/simple\">Source Code</ulink>"
@@ -7557,7 +7597,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/simple\">源代码</ulink>"
 
-#: C/index-in.docbook:4206
+#: index-in.docbook:4225
 msgid ""
 "This program contains a single class, <classname>MyArea</classname>, which "
 "is a subclass of <classname>Gtk::DrawingArea</classname> and contains an "
@@ -7587,11 +7627,11 @@ msgstr ""
 "<methodname>move_to()</methodname>和<methodname>line_to()</methodname>函数创"
 "建一个新的路径,然后使用<methodname>stroke()</methodname>绘制了这个路径。"
 
-#: C/index-in.docbook:4225
+#: index-in.docbook:4244
 msgid "Drawing with relative coordinates"
 msgstr "使用相对坐标绘图"
 
-#: C/index-in.docbook:4226
+#: index-in.docbook:4245
 msgid ""
 "In the example above we drew everything using absolute coordinates. You can "
 "also draw using relative coordinates. For a straight line, this is done with "
@@ -7601,11 +7641,11 @@ msgstr ""
 "直线而言,你可以通过<methodname>Cairo::Context::rel_line_to()</methodname>完"
 "成用相对坐标绘图。"
 
-#: C/index-in.docbook:4232
+#: index-in.docbook:4251
 msgid "Line styles"
 msgstr "线型"
 
-#: C/index-in.docbook:4233
+#: index-in.docbook:4252
 msgid ""
 "In addition to drawing basic straight lines, there are a number of things "
 "that you can customize about a line. You've already seen examples of setting "
@@ -7614,7 +7654,7 @@ msgstr ""
 "除了绘制基本直线以外,你还可以对线条进行很多自定义。你已经看到了对线条颜色和"
 "线条宽度的示例,但还有其他示例。"
 
-#: C/index-in.docbook:4239
+#: index-in.docbook:4258
 msgid ""
 "If you've drawn a series of lines that form a path, you may want them to "
 "join together in a certain way. Cairo offers three different ways to join "
@@ -7624,11 +7664,11 @@ msgstr ""
 "提供了三种不同的连接线条的方式:斜接(Miter)、斜切(Bevel)、圆(Round)。这些连接"
 "方式的示意图如下:"
 
-#: C/index-in.docbook:4246
+#: index-in.docbook:4265
 msgid "Different join types in Cairo"
 msgstr "开罗的不同连接类型"
 
-#: C/index-in.docbook:4251
+#: index-in.docbook:4270
 msgid ""
 "The line join style is set using the function <methodname>Cairo::Context::"
 "set_line_join()</methodname>."
@@ -7636,7 +7676,7 @@ msgstr ""
 "线条连接样式由<methodname>Cairo::Context::set_line_join()</methodname>函数进"
 "行设置。"
 
-#: C/index-in.docbook:4255
+#: index-in.docbook:4274
 msgid ""
 "Line ends can have different styles as well. The default style is for the "
 "line to start and stop exactly at the destination points of the line. This "
@@ -7650,7 +7690,7 @@ msgstr ""
 "方形的中心)。这可以使用<methodname>Cairo::Context::set_line_cap()</"
 "methodname>函数使用。"
 
-#: C/index-in.docbook:4265
+#: index-in.docbook:4284
 msgid ""
 "There are other things you can customize as well, including creating dashed "
 "lines and other things. For more information, see the Cairo API "
@@ -7658,11 +7698,11 @@ msgid ""
 msgstr ""
 "你还可以自定义其他内容,比如创建虚线等。更多有关信息请参阅开罗API文档。"
 
-#: C/index-in.docbook:4272
+#: index-in.docbook:4291
 msgid "Drawing thin lines"
 msgstr "画细线"
 
-#: C/index-in.docbook:4273
+#: index-in.docbook:4292
 msgid ""
 "If you try to draw one pixel wide lines, you may notice that the line "
 "sometimes comes up blurred and wider than it ought to be. This happens "
@@ -7679,7 +7719,7 @@ msgstr ""
 "能做到的(像素是最小的单位)。所以当像素的宽度是奇数的时候就会出现这种情况"
 "(不只是一个像素的时候)。"
 
-#: C/index-in.docbook:4283
+#: index-in.docbook:4302
 msgid ""
 "The trick is to position in the middle of the pixel where you want the line "
 "to be drawn, and thus guaranteeing you get the desired results. See <ulink "
@@ -7689,11 +7729,11 @@ msgstr ""
 "<ulink url=\"http://cairographics.org/FAQ/#sharp_lines\";>开罗常见问题</"
 "ulink>。"
 
-#: C/index-in.docbook:4290
+#: index-in.docbook:4309
 msgid "Drawing Area - Thin Lines"
 msgstr "绘图区域 - 细线"
 
-#: C/index-in.docbook:4296
+#: index-in.docbook:4315
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/thin_lines\">Source Code</ulink>"
@@ -7701,11 +7741,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/thin_lines\">源代码</ulink>"
 
-#: C/index-in.docbook:4301
+#: index-in.docbook:4320
 msgid "Drawing Curved Lines"
 msgstr "画曲线"
 
-#: C/index-in.docbook:4302
+#: index-in.docbook:4321
 msgid ""
 "In addition to drawing straight lines Cairo allows you to easily draw curved "
 "lines (technically a cubic Bézier spline) using the <methodname>Cairo::"
@@ -7719,13 +7759,13 @@ msgstr ""
 "的绘制曲线(从技术上而言是三次贝塞尔曲线)。这些函数需要一个目标点的坐标和两"
 "个'控制'点的坐标。这最好用一个示例来解释,所以让我们开始吧。"
 
-#: C/index-in.docbook:4313
+#: index-in.docbook:4332
 msgid ""
 "This simple application draws a curve with Cairo and displays the control "
 "points for each end of the curve."
 msgstr "这个简单的示例程序使用开罗绘制了一条曲线并显示了曲线两端的控制点。"
 
-#: C/index-in.docbook:4324
+#: index-in.docbook:4343
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/curve\">Source Code</ulink>"
@@ -7733,7 +7773,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/curve\">源代码</ulink>"
 
-#: C/index-in.docbook:4325
+#: index-in.docbook:4344
 msgid ""
 "The only difference between this example and the straight line example is in "
 "the <methodname>on_draw()</methodname> function, but there are a few new "
@@ -7742,7 +7782,7 @@ msgstr ""
 "这个示例与绘制直线示例的唯一区别在它们的<methodname>on_draw()</methodname>函"
 "数,不过这里引入了一些新的概念和函数,所以让我们简要的介绍一下它们。"
 
-#: C/index-in.docbook:4331
+#: index-in.docbook:4350
 msgid ""
 "We make a call to <methodname>Cairo::Context::scale()</methodname>, passing "
 "in the width and height of the drawing area. This scales the user-space "
@@ -7755,7 +7795,7 @@ msgstr ""
 "其实并没有什么特别的要对坐标系进行缩放的理由,只是为了使绘图操作有时候更易"
 "用。"
 
-#: C/index-in.docbook:4340
+#: index-in.docbook:4359
 msgid ""
 "The call to <methodname>Cairo::Context::curve_to()</methodname> should be "
 "fairly self-explanatory. The first pair of coordinates define the control "
@@ -7778,11 +7818,11 @@ msgstr ""
 "<methodname>set_source_rgba()</methodname>实现的。这个函数使用第四个参数来接"
 "受指定颜色的alpha值(值的有效区间为0到1)。"
 
-#: C/index-in.docbook:4358
+#: index-in.docbook:4377
 msgid "Drawing Arcs and Circles"
 msgstr "画圆弧和圆"
 
-#: C/index-in.docbook:4359
+#: index-in.docbook:4378
 msgid ""
 "With Cairo, the same function is used to draw arcs, circles, or ellipses: "
 "<methodname>Cairo::Context::arc()</methodname>. This function takes five "
@@ -7805,7 +7845,7 @@ msgstr ""
 "沿着X轴的正方向向Y轴的正方向逐渐增加。所以使用默认的变换矩阵的时候,角度沿着"
 "顺时针方向增加(请记住Y轴的正方向指向下方)。"
 
-#: C/index-in.docbook:4374
+#: index-in.docbook:4393
 msgid ""
 "To draw an ellipse, you can scale the current transformation matrix by "
 "different amounts in the X and Y directions. For example, to draw an ellipse "
@@ -7816,7 +7856,7 @@ msgstr ""
 "想要绘制一个以<varname>x</varname>,<varname>y</varname>为中心,大小为"
 "<varname>width</varname>,<varname>height</varname>的椭圆:"
 
-#: C/index-in.docbook:4380
+#: index-in.docbook:4399
 #, no-wrap
 msgid ""
 "context-&gt;save();\n"
@@ -7831,17 +7871,17 @@ msgstr ""
 "context-&gt;arc(0.0, 0.0, 1.0, 0.0, 2 * M_PI);\n"
 "context-&gt;restore();"
 
-#: C/index-in.docbook:4387
+#: index-in.docbook:4406
 msgid ""
 "Here's an example of a simple program that draws an arc, a circle and an "
 "ellipse into a drawing area."
 msgstr "这是一个简单的示例程序,它在绘图区域绘制了一个圆弧、一个圆和一个椭圆。"
 
-#: C/index-in.docbook:4392
+#: index-in.docbook:4411
 msgid "Drawing Area - Arcs"
 msgstr "绘图区域 - 圆弧"
 
-#: C/index-in.docbook:4399
+#: index-in.docbook:4418
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/arcs\">Source Code</ulink>"
@@ -7849,7 +7889,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/arcs\">源代码</ulink>"
 
-#: C/index-in.docbook:4401
+#: index-in.docbook:4420
 msgid ""
 "There are a couple of things to note about this example code. Again, the "
 "only real difference between this example and the previous ones is the "
@@ -7861,7 +7901,7 @@ msgstr ""
 "<methodname>on_draw()</methodname>函数中,因此我们重点接受这个函数。另外,函"
 "数的第一部分与之前的也几乎一样,所以我们将会跳过该部分。"
 
-#: C/index-in.docbook:4409
+#: index-in.docbook:4428
 msgid ""
 "Note that in this case, we've expressed nearly everything in terms of the "
 "height and width of the window, including the width of the lines. Because of "
@@ -7876,7 +7916,7 @@ msgstr ""
 "methodname>/<methodname>restore()</methodname>包裹,以便我们在每次绘完图都能"
 "返回已知状态。"
 
-#: C/index-in.docbook:4418
+#: index-in.docbook:4437
 msgid ""
 "The section for drawing an arc introduces one new function, "
 "<methodname>close_path()</methodname>. This function will in effect draw a "
@@ -7895,11 +7935,11 @@ msgstr ""
 "起。如果你改用<methodname>line_to()</methodname>,那么这些线将在同一个点结束"
 "但是开罗不会对此做任何特殊的连接。"
 
-#: C/index-in.docbook:4431
+#: index-in.docbook:4450
 msgid "Drawing counter-clockwise"
 msgstr "逆时针绘图"
 
-#: C/index-in.docbook:4432
+#: index-in.docbook:4451
 msgid ""
 "The function <methodname>Cairo::Context::arc_negative()</methodname> is "
 "exactly the same as <methodname>Cairo::Context::arc()</methodname> but the "
@@ -7909,15 +7949,15 @@ msgstr ""
 "<methodname>Cairo::Context::arc()</methodname>函数完全一致,但是他们的绘制方"
 "向是相反的。"
 
-#: C/index-in.docbook:4444
+#: index-in.docbook:4463
 msgid "Drawing Text"
 msgstr "绘制文本"
 
-#: C/index-in.docbook:4446
+#: index-in.docbook:4465
 msgid "Drawing Text with Pango"
 msgstr "使用Pango绘制文本"
 
-#: C/index-in.docbook:4447
+#: index-in.docbook:4466
 msgid ""
 "Text is drawn via Pango Layouts. The easiest way to create a "
 "<classname>Pango::Layout</classname> is to use <methodname>Gtk::Widget::"
@@ -7931,7 +7971,7 @@ msgstr ""
 "以后,可以通过各种方式操纵布局,包括更改文本、字体等。然后可以使用"
 "<methodname>Pango::Layout::show_in_cairo_context()</methodname>方法渲染布局。"
 
-#: C/index-in.docbook:4459
+#: index-in.docbook:4478
 msgid ""
 "Here is an example of a program that draws some text, some of it upside-"
 "down. The Printing chapter contains another <link linkend=\"sec-printing-"
@@ -7940,11 +7980,11 @@ msgstr ""
 "这是一个绘制一些文本的示例程序,其中的一些文本上下颠倒。打印一章包含了另一个"
 "绘制文本的<link linkend=\"sec-printing-example\">示例</link>。"
 
-#: C/index-in.docbook:4465
+#: index-in.docbook:4484
 msgid "Drawing Area - Text"
 msgstr "绘图区域 - 文本"
 
-#: C/index-in.docbook:4471
+#: index-in.docbook:4490
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/pango_text\">Source Code</ulink>"
@@ -7952,11 +7992,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/pango_text\">源代码</ulink>"
 
-#: C/index-in.docbook:4482
+#: index-in.docbook:4501
 msgid "Drawing Images"
 msgstr "绘制图片"
 
-#: C/index-in.docbook:4483
+#: index-in.docbook:4502
 msgid ""
 "There is a method for drawing from a <classname>Gdk::Pixbuf</classname> to a "
 "<classname>Cairo::Context</classname>. A <classname>Gdk::Pixbuf</classname> "
@@ -7967,7 +8007,7 @@ msgstr ""
 "Context</classname>。<classname>Gdk::Pixbuf</classname>缓冲区是对像素集合的有"
 "效封装,它提供了从文件读取以及各种操纵像素的方式。"
 
-#: C/index-in.docbook:4490
+#: index-in.docbook:4509
 msgid ""
 "Probably the most common way of creating <classname>Gdk::Pixbuf</classname>s "
 "is to use <methodname>Gdk::Pixbuf::create_from_file()</methodname> or "
@@ -7979,7 +8019,7 @@ msgstr ""
 "create_from_resource()</methodname>,它们可以将图像文件(例如png文件)读取到"
 "pixbuf中用于渲染。"
 
-#: C/index-in.docbook:4498
+#: index-in.docbook:4517
 msgid ""
 "The <classname>Gdk::Pixbuf</classname> can be rendered by setting it as the "
 "source pattern of the Cairo context with <methodname>Gdk::Cairo::"
@@ -7999,7 +8039,7 @@ msgstr ""
 "<methodname>set_source_pixbuf()</methodname>不是<classname>Cairo::Context</"
 "classname>的成员函数。<classname>Cairo::Context</classname>是它的第一个参数。"
 
-#: C/index-in.docbook:4509
+#: index-in.docbook:4528
 msgid ""
 "Here is a small bit of code to tie it all together: (Note that usually you "
 "wouldn't load the image every time in the draw signal handler! It's just "
@@ -8008,7 +8048,7 @@ msgstr ""
 "这是一小段将他们结合在一起的代码(请注意,通常你不应该在每次调用绘制信号处理"
 "函数的时候都加载一次图片):"
 
-#: C/index-in.docbook:4514
+#: index-in.docbook:4533
 #, no-wrap
 msgid ""
 "void MyArea::on_draw(const Cairo::RefPtr&lt;Cairo::Context&gt;&amp; cr, int width, int height)\n"
@@ -8029,12 +8069,12 @@ msgstr ""
 "  cr-&gt;fill();\n"
 "}"
 
-#: C/index-in.docbook:4531
+#: index-in.docbook:4550
 #, no-wrap
 msgid "$ glib-compile-resources --target=resources.c --generate-source image.gresource.xml"
 msgstr "$ glib-compile-resources --target=resources.c --generate-source image.gresource.xml"
 
-#: C/index-in.docbook:4524
+#: index-in.docbook:4543
 msgid ""
 "Here is an example of a simple program that draws an image. The program "
 "loads the image from a resource file. See the <link linkend=\"sec-gio-"
@@ -8048,11 +8088,11 @@ msgstr ""
 "节。使用<application>glib-compile-resources</application>将资源文件编译为C源"
 "文件,然后将该源文件与C++代码一起编译链接。例如:<_:screen-1/>"
 
-#: C/index-in.docbook:4534
+#: index-in.docbook:4553
 msgid "Drawing Area - Image"
 msgstr "绘图区域 - 图像"
 
-#: C/index-in.docbook:4540
+#: index-in.docbook:4559
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/image\">Source Code</ulink>"
@@ -8060,11 +8100,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/image\">源代码</ulink>"
 
-#: C/index-in.docbook:4554
+#: index-in.docbook:4573
 msgid "Example Application: Creating a Clock with Cairo"
 msgstr "示例程序:使用开罗创建时钟"
 
-#: C/index-in.docbook:4555
+#: index-in.docbook:4574
 msgid ""
 "Now that we've covered the basics of drawing with Cairo, let's try to put it "
 "all together and create a simple application that actually does something. "
@@ -8077,7 +8117,7 @@ msgstr ""
 "定义的<classname>Clock</classname>部件。这个时钟有秒针、分针、时针,并且每一"
 "秒更新一次。"
 
-#: C/index-in.docbook:4566
+#: index-in.docbook:4585
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/clock\">Source Code</ulink>"
@@ -8085,7 +8125,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drawingarea/clock\">源代码</ulink>"
 
-#: C/index-in.docbook:4567
+#: index-in.docbook:4586
 msgid ""
 "As before, almost all of the interesting stuff is done in the draw function "
 "<methodname>on_draw()</methodname>. Before we dig into the draw function, "
@@ -8103,7 +8143,7 @@ msgstr ""
 "将每秒被调用一次。这个函数的唯一任务就是使窗口无效,以便<application>gtkmm</"
 "application>强制重绘它。"
 
-#: C/index-in.docbook:4578
+#: index-in.docbook:4597
 msgid ""
 "Now let's take a look at the code that performs the actual drawing. The "
 "first section of <methodname>on_draw()</methodname> should be pretty "
@@ -8118,7 +8158,7 @@ msgstr ""
 "按窗口大小的百分比绘制时钟。此外坐标系是按比例缩放的,所以(0,0)坐标位于窗口的"
 "正中央。"
 
-#: C/index-in.docbook:4588
+#: index-in.docbook:4607
 msgid ""
 "The function <methodname>Cairo::Context::paint()</methodname> is used here "
 "to set the background color of the window. This function takes no arguments "
@@ -8136,7 +8176,7 @@ msgstr ""
 "行描边。请注意,这两个操作都用<methodname>_preserve</methodname>变体以保留当"
 "前路径,然后对相同的路径进行剪辑以确保我们下一行不会超过时钟的轮廓。"
 
-#: C/index-in.docbook:4600
+#: index-in.docbook:4619
 msgid ""
 "After drawing the outline, we go around the clock and draw ticks for every "
 "hour, with a larger tick at 12, 3, 6, and 9. Now we're finally ready to "
@@ -8148,7 +8188,7 @@ msgstr ""
 "线。接着我们就可以实现时钟的计时功能了 -- 获取当前时间的时、分、秒然后以正确"
 "的角度将指针绘制出来。"
 
-#: C/index-in.docbook:4612
+#: index-in.docbook:4631
 msgid ""
 "<classname>Gtk::Widget</classname> has several methods and signals which are "
 "prefixed with \"drag_\". These are used for Drag and Drop."
@@ -8156,11 +8196,11 @@ msgstr ""
 "<classname>Gtk::Widget</classname>提供了几个带有\"drag_\"前缀的方法和信号用以"
 "支持拖放。"
 
-#: C/index-in.docbook:4617
+#: index-in.docbook:4636
 msgid "Sources and Destinations"
 msgstr "源与目的地"
 
-#: C/index-in.docbook:4618
+#: index-in.docbook:4637
 msgid ""
 "Things are dragged from <literal>sources</literal> to be dropped on "
 "<literal>destinations</literal>. Each source and destination has information "
@@ -8175,7 +8215,7 @@ msgstr ""
 "送或接受的数据格式的相关信息。放置目的地只会在拖动项与其具有共同的兼容类型时"
 "才会接受它们。然后将会发出适当的信号,告诉信号处理函数使用了那种格式。"
 
-#: C/index-in.docbook:4626
+#: index-in.docbook:4645
 msgid ""
 "<classname>Gdk::ContentFormats</classname> objects contain information about "
 "available <type>GType</type>s and mime types (media types)."
@@ -8183,7 +8223,7 @@ msgstr ""
 "<classname>Gdk::ContentFormats</classname>对象包含了可用的<type>GType</type>"
 "和MIME类型(媒体类型)的相关信息。"
 
-#: C/index-in.docbook:4635
+#: index-in.docbook:4654
 msgid ""
 "<classname>Widget</classname>s can be identified as sources or destinations "
 "using these <classname>Gtk::Widget</classname> methods:"
@@ -8191,7 +8231,7 @@ msgstr ""
 "<classname>Gtk::Widget</classname>的以下方法可以将<classname>Widget</"
 "classname>作为源或者目标:"
 
-#: C/index-in.docbook:4639
+#: index-in.docbook:4658
 #, no-wrap
 msgid ""
 "void drag_source_set(const Glib::RefPtr&lt;Gdk::ContentFormats&gt;&amp; targets,\n"
@@ -8200,7 +8240,7 @@ msgstr ""
 "void drag_source_set(const Glib::RefPtr&lt;Gdk::ContentFormats&gt;&amp; targets,\n"
 "      Gdk::ModifierType start_button_mask, Gdk::DragAction actions);"
 
-#: C/index-in.docbook:4644
+#: index-in.docbook:4663
 msgid ""
 "<literal>targets</literal> is a <classname>Gdk::ContentFormats</classname> "
 "object."
@@ -8208,7 +8248,7 @@ msgstr ""
 "<literal>targets</literal>是一个<classname>Gdk::ContentFormats</classname>对"
 "象。"
 
-#: C/index-in.docbook:4649
+#: index-in.docbook:4668
 msgid ""
 "<literal>start_button_mask</literal> is an ORed combination of values, which "
 "specify which modifier key or mouse button must be pressed to start the drag."
@@ -8216,7 +8256,7 @@ msgstr ""
 "<literal>start_button_mask</literal>是一组值异或后的结果,用于指定按下哪个组"
 "合键或鼠标按键才能开始拖动。"
 
-#: C/index-in.docbook:4656
+#: index-in.docbook:4675
 msgid ""
 "<literal>actions</literal> is an ORed combination of values, which specify "
 "which Drag and Drop operations will be possible from this source - for "
@@ -8230,7 +8270,7 @@ msgstr ""
 "<keycap>Shift</keycap>键将动作从<literal>copy</literal>改变为<literal>move</"
 "literal>,这还会使光标显示不同的样式。"
 
-#: C/index-in.docbook:4667
+#: index-in.docbook:4686
 #, no-wrap
 msgid ""
 "void drag_dest_set(const Glib::RefPtr&lt;Gdk::ContentFormats&gt;&amp; targets,\n"
@@ -8239,42 +8279,42 @@ msgstr ""
 "void drag_dest_set(const Glib::RefPtr&lt;Gdk::ContentFormats&gt;&amp; targets,\n"
 "    Gtk::DestDefaults flags, Gdk::DragAction actions);"
 
-#: C/index-in.docbook:4672
+#: index-in.docbook:4691
 msgid ""
 "<literal>flags</literal> is an ORed combination of values which indicates "
 "how the widget will respond visually to Drag and Drop items."
 msgstr "是一组值异或后的结果,用于表示部件在视觉上如何响应拖放项。"
 
-#: C/index-in.docbook:4678
+#: index-in.docbook:4697
 msgid ""
 "<literal>actions</literal> indicates the Drag and Drop actions which this "
 "destination can receive - see the description above."
 msgstr ""
 "<literal>actions</literal>指示此目的地可以接受的拖放动作 - 请参阅上面的描述。"
 
-#: C/index-in.docbook:4687
+#: index-in.docbook:4706
 msgid "<methodname>drag_source_add_text_targets()</methodname>"
 msgstr "<methodname>drag_source_add_text_targets()</methodname>"
 
-#: C/index-in.docbook:4688
+#: index-in.docbook:4707
 msgid "<methodname>drag_source_add_image_targets()</methodname>"
 msgstr "<methodname>drag_source_add_image_targets()</methodname>"
 
-#: C/index-in.docbook:4689
+#: index-in.docbook:4708
 msgid "<methodname>drag_dest_add_text_targets()</methodname>"
 msgstr "<methodname>drag_dest_add_text_targets()</methodname>"
 
-#: C/index-in.docbook:4690
+#: index-in.docbook:4709
 msgid "<methodname>drag_dest_add_image_targets()</methodname>"
 msgstr "<methodname>drag_dest_add_image_targets()</methodname>"
 
-#: C/index-in.docbook:4684
+#: index-in.docbook:4703
 msgid ""
 "There are several methods to add source formats and destination formats. "
 "Examples: <_:itemizedlist-1/>"
 msgstr "有些添加源格式和目的地格式的方法。例如:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:4697
+#: index-in.docbook:4716
 msgid ""
 "When a drop destination has accepted a dragged item, certain signals will be "
 "emitted, depending on what action has been selected. For instance, the user "
@@ -8290,17 +8330,17 @@ msgstr ""
 "<methodname>drag_dest_set()</methodname>和<methodname>drag_source_set()</"
 "methodname>时所指定的动作。"
 
-#: C/index-in.docbook:4708 C/index-in.docbook:4829
+#: index-in.docbook:4727 index-in.docbook:4848
 msgid "Copy"
 msgstr "复制"
 
-#: C/index-in.docbook:4712
+#: index-in.docbook:4731
 msgid ""
 "<literal>drag_begin</literal>: Provides a <classname>Gdk::Drag</classname>."
 msgstr ""
 "<literal>drag_begin</literal>:提供一个<classname>Gdk::Drag</classname>。"
 
-#: C/index-in.docbook:4713
+#: index-in.docbook:4732
 msgid ""
 "<literal>drag_data_get</literal>: Provides a <classname>Gdk::Drag</"
 "classname>, and a <classname>Gtk::SelectionData</classname> object, in which "
@@ -8310,18 +8350,18 @@ msgstr ""
 "一个<classname>Gtk::SelectionData</classname>对象,你应该在其中放入所请求的数"
 "据。"
 
-#: C/index-in.docbook:4715
+#: index-in.docbook:4734
 msgid ""
 "<literal>drag_end</literal>: Provides a <classname>Gdk::Drag</classname>."
 msgstr ""
 "<literal>drag_end</literal>:提供一个<classname>Gdk::Drag</classname>。"
 
-#: C/index-in.docbook:4709
+#: index-in.docbook:4728
 msgid ""
 "The source widget will emit these signals, in this order: <_:itemizedlist-1/>"
 msgstr "源部件将按以下顺序发出这些信号:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:4721
+#: index-in.docbook:4740
 msgid ""
 "<literal>drag_motion</literal>: Provides a <classname>Gdk::Drop</classname> "
 "and coordinates. You can call the <methodname>status()</methodname> method "
@@ -8332,7 +8372,7 @@ msgstr ""
 "坐标。你可以调用<classname>Gdk::Drop</classname>的<methodname>status()</"
 "methodname>方法来指示要接受的动作。"
 
-#: C/index-in.docbook:4724
+#: index-in.docbook:4743
 msgid ""
 "<literal>drag_drop</literal>: Provides a <classname>Gdk::Drop</classname> "
 "and coordinates. You can call <methodname>drag_get_data()</methodname>, "
@@ -8345,7 +8385,7 @@ msgstr ""
 "<literal>drag_data_get</literal>信号,并在之后触发目的地部件的"
 "<literal>drag_data_received</literal>信号。"
 
-#: C/index-in.docbook:4729
+#: index-in.docbook:4748
 msgid ""
 "<literal>drag_data_received</literal>: Provides a <classname>Gdk::Drop</"
 "classname>, and a <methodname>Gtk::SelectionData</methodname> object which "
@@ -8359,23 +8399,23 @@ msgstr ""
 "对象。你应该调用<classname>Gdk::Drop</classname>的<methodname>finish()</"
 "methodname>或<methodname>failed()</methodname>方法来指示操作是否成功。"
 
-#: C/index-in.docbook:4718
+#: index-in.docbook:4737
 msgid ""
 "The destination widget will emit these signals, in this order: <_:"
 "itemizedlist-1/>"
 msgstr "目的地部件将按以下顺序发出这些信号:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:4743
+#: index-in.docbook:4762
 msgid "Move"
 msgstr "移动"
 
-#: C/index-in.docbook:4746
+#: index-in.docbook:4765
 msgid ""
 "<literal>drag_data_delete</literal>: Gives the source the opportunity to "
 "delete the original data if that's appropriate."
 msgstr "<literal>drag_data_delete</literal>:给源删除原始数据的合适时机。"
 
-#: C/index-in.docbook:4744
+#: index-in.docbook:4763
 msgid ""
 "During a <literal>move</literal>, the source widget will also emit this "
 "signal: <_:itemizedlist-1/>"
@@ -8383,13 +8423,13 @@ msgstr ""
 "在<literal>move</literal>的过程中,源部件还将会发出以下信号:<_:"
 "itemizedlist-1/>"
 
-#: C/index-in.docbook:4761
+#: index-in.docbook:4780
 msgid ""
 "Here is a very simple example, demonstrating a drag and drop <literal>Copy</"
 "literal> operation:"
 msgstr "这是一个非常简单的示例,演示了拖放的<literal>Copy</literal>操作:"
 
-#: C/index-in.docbook:4770
+#: index-in.docbook:4789
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drag_and_drop\">Source Code</ulink>"
@@ -8397,15 +8437,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/drag_and_drop\">源代码</ulink>"
 
-#: C/index-in.docbook:4772
+#: index-in.docbook:4791
 msgid "There is a more complex example in examples/others/dnd."
 msgstr "在examples/others/dnd中有一个更复杂的示例。"
 
-#: C/index-in.docbook:4781
+#: index-in.docbook:4800
 msgid "The Clipboard"
 msgstr "剪切板(Clipboard)"
 
-#: C/index-in.docbook:4782
+#: index-in.docbook:4801
 msgid ""
 "Simple text copy-paste functionality is provided for free by widgets such as "
 "<classname>Gtk::Entry</classname> and <classname>Gtk::TextView</classname>, "
@@ -8418,7 +8458,7 @@ msgstr ""
 "编写特定的代码。例如,绘图程序需要编写特定的代码以支持在视图内或文档之间进行"
 "复制粘贴。"
 
-#: C/index-in.docbook:4788
+#: index-in.docbook:4807
 msgid ""
 "You can get a clipboard instance with <methodname>Gtk::Widget::"
 "get_clipboard()</methodname> or <methodname>Gdk::Display::get_clipboard()</"
@@ -8427,7 +8467,7 @@ msgstr ""
 "你可以使用<methodname>Gtk::Widget::get_clipboard()</methodname>或"
 "<methodname>Gdk::Display::get_clipboard()</methodname>获取剪切板实例。"
 
-#: C/index-in.docbook:4793
+#: index-in.docbook:4812
 msgid ""
 "Your application doesn't need to wait for clipboard operations, particularly "
 "between the time when the user chooses Copy and then later chooses Paste. "
@@ -8441,7 +8481,7 @@ msgstr ""
 "classname>,它们指定了回调函数。当<classname>Gdk::Clipboard</classname>准备就"
 "绪时,它将会调用这些回调函数,并向其提供所请求的数据。"
 
-#: C/index-in.docbook:4801
+#: index-in.docbook:4820
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGdk_1_1Clipboard.";
 "html\">Reference</ulink>"
@@ -8449,11 +8489,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGdk_1_1Clipboard.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:4804
+#: index-in.docbook:4823
 msgid "Formats"
 msgstr "格式"
 
-#: C/index-in.docbook:4805
+#: index-in.docbook:4824
 msgid ""
 "Different applications contain different types of data, and they might make "
 "that data available in a variety of formats. <application>gtkmm</"
@@ -8462,7 +8502,7 @@ msgstr ""
 "不同的应用程序包含不同类型的数据,并且它们可能使用多种可用格式提供数据。"
 "<application>gtkmm</application>称这些数据类型为<literal>format</literal>。"
 
-#: C/index-in.docbook:4809
+#: index-in.docbook:4828
 msgid ""
 "For instance, <application>gedit</application> can supply and receive the "
 "<literal>text/plain</literal> mime type, so you can paste data into "
@@ -8478,7 +8518,7 @@ msgstr ""
 "各种图像格式。只要其中一个应用程序可以接收其他应用程序提供的一种格式,那么你"
 "就可以将数据从一个复制到另一个。"
 
-#: C/index-in.docbook:4817
+#: index-in.docbook:4836
 msgid ""
 "Clipboard data can be in a variety of binary formats. This chapter, and the "
 "examples, assume that the data is 8-bit text. This would allow us to use an "
@@ -8488,7 +8528,7 @@ msgstr ""
 "剪切板数据可以使用多种二进制格式。本章和示例程序假定数据是8位文本。这将使我们"
 "可以对剪切板数据使用XML格式。但这可能不适合二进制数据(例如图像)。"
 
-#: C/index-in.docbook:4824
+#: index-in.docbook:4843
 msgid ""
 "The <link linkend=\"chapter-draganddrop\">Drag and Drop</link> API uses the "
 "same mechanism. You should probably use the same data formats for both "
@@ -8497,7 +8537,7 @@ msgstr ""
 "<link linkend=\"chapter-draganddrop\">拖放</link>API使用一样的机制。剪切板和"
 "拖放操作都应该使用一样的数据格式。"
 
-#: C/index-in.docbook:4830
+#: index-in.docbook:4849
 msgid ""
 "When the user asks to copy some data, you should copy the data to the "
 "<classname>Clipboard</classname>. For instance,"
@@ -8505,7 +8545,7 @@ msgstr ""
 "当用户要复制某些数据的时候,你应该将数据复制到<classname>Clipboard</"
 "classname>。例如:"
 
-#: C/index-in.docbook:4834
+#: index-in.docbook:4853
 #, no-wrap
 msgid ""
 "void ExampleWindow::on_button_copy()\n"
@@ -8518,11 +8558,11 @@ msgstr ""
 "  get_clipboard()-&gt;set_text(\"example_custom_target\");\n"
 "}"
 
-#: C/index-in.docbook:4842
+#: index-in.docbook:4861
 msgid "Paste"
 msgstr "粘贴"
 
-#: C/index-in.docbook:4843
+#: index-in.docbook:4862
 msgid ""
 "When the user asks to paste data from the <classname>Clipboard</classname>, "
 "you should request a specific format and provide a callback method which "
@@ -8531,7 +8571,7 @@ msgstr ""
 "当用户要从<classname>Clipboard</classname>中粘贴数据时,你应该请求一种特定的"
 "格式并提供一个回调函数,该回调函数将与实际数据一并被调用。例如:"
 
-#: C/index-in.docbook:4848
+#: index-in.docbook:4867
 #, no-wrap
 msgid ""
 "void ExampleWindow::on_button_paste()\n"
@@ -8546,11 +8586,11 @@ msgstr ""
 "              &amp;ExampleWindow::on_clipboard_received));\n"
 "}"
 
-#: C/index-in.docbook:4854
+#: index-in.docbook:4873
 msgid "Here is an example callback method:"
 msgstr "这是一个回调函数的示例:"
 
-#: C/index-in.docbook:4856
+#: index-in.docbook:4875
 #, no-wrap
 msgid ""
 "void ExampleWindow::on_clipboard_received(Glib::RefPtr&lt;Gio::AsyncResult&gt;&amp; result)\n"
@@ -8565,11 +8605,11 @@ msgstr ""
 "  //Do something with the pasted data.\n"
 "}"
 
-#: C/index-in.docbook:4863
+#: index-in.docbook:4882
 msgid "Discovering the available formats"
 msgstr "发现可用格式"
 
-#: C/index-in.docbook:4864
+#: index-in.docbook:4883
 msgid ""
 "To find out what formats are currently available on the "
 "<classname>Clipboard</classname> for pasting, call the "
@@ -8581,11 +8621,11 @@ msgstr ""
 "<methodname>get_formats()</methodname>方法。然后调用<classname>Gdk::"
 "ContentFormats</classname>方法来确定你的应用程序所支持的格式是否可用。"
 
-#: C/index-in.docbook:4876 C/index-in.docbook:5263
+#: index-in.docbook:4895 index-in.docbook:5282
 msgid "Simple"
 msgstr "简单"
 
-#: C/index-in.docbook:4877
+#: index-in.docbook:4896
 msgid ""
 "This example allows copy and pasting of application-specific data, using the "
 "standard text format. Although this is simple, it's not ideal because it "
@@ -8596,11 +8636,11 @@ msgstr ""
 "并不够理想,因为他不能将<classname>Clipboard</classname>的数据标识为特定的类"
 "型。"
 
-#: C/index-in.docbook:4885
+#: index-in.docbook:4904
 msgid "Clipboard - Simple"
 msgstr "剪切板 - 简单"
 
-#: C/index-in.docbook:4891
+#: index-in.docbook:4910
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/clipboard/simple/\">Source Code</ulink>"
@@ -8608,15 +8648,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/clipboard/simple/\">源代码</ulink>"
 
-#: C/index-in.docbook:4895
+#: index-in.docbook:4914
 msgid "Ideal"
 msgstr "理想"
 
-#: C/index-in.docbook:4898
+#: index-in.docbook:4917
 msgid "Defines a custom clipboard target, though the format is still text."
 msgstr "定义了一个自定义剪切板目标,尽管格式依旧是文本。"
 
-#: C/index-in.docbook:4899
+#: index-in.docbook:4918
 msgid ""
 "It uses the <methodname>Gdk::ContentFormats::signal_changed()</methodname> "
 "signal and disables the Paste button if it can't use anything on the "
@@ -8625,15 +8665,15 @@ msgstr ""
 "它使用<methodname>Gdk::ContentFormats::signal_changed()</methodname>信号并在"
 "剪切板不可用的时候禁用粘贴按钮。"
 
-#: C/index-in.docbook:4896
+#: index-in.docbook:4915
 msgid "This is like the simple example, but it <_:orderedlist-1/>"
 msgstr "这个与简单示例类型,但是它<_:orderedlist-1/>"
 
-#: C/index-in.docbook:4905
+#: index-in.docbook:4924
 msgid "Clipboard - Ideal"
 msgstr "剪切板 - 理想"
 
-#: C/index-in.docbook:4911
+#: index-in.docbook:4930
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/clipboard/ideal/\">Source Code</ulink>"
@@ -8641,11 +8681,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/clipboard/ideal/\">源代码</ulink>"
 
-#: C/index-in.docbook:4921
+#: index-in.docbook:4940
 msgid "Printing"
 msgstr "打印"
 
-#: C/index-in.docbook:4923
+#: index-in.docbook:4942
 msgid ""
 "At the application development level, <application>gtkmm</application>'s "
 "printing API provides dialogs that are consistent across applications and "
@@ -8657,11 +8697,11 @@ msgstr ""
 "容的对话框,并允许使用开罗通用绘制API和Pango驱动的文本渲染。在此通用API实现"
 "中,使用了特定平台的后端和特定打印机的驱动。"
 
-#: C/index-in.docbook:4929
+#: index-in.docbook:4948
 msgid "PrintOperation"
 msgstr "打印操作"
 
-#: C/index-in.docbook:4931
+#: index-in.docbook:4950
 msgid ""
 "The primary object is <classname>Gtk::PrintOperation</classname>, allocated "
 "for each print operation. To handle page drawing connect to its signals, or "
@@ -8673,7 +8713,7 @@ msgstr ""
 "处理绘制页请连接到它的信号,或从其继承并覆盖默认的虚信号处理函数。"
 "<classname>PrintOperation</classname>将自动处理所有影响打印循环的设置。"
 
-#: C/index-in.docbook:4948
+#: index-in.docbook:4967
 msgid ""
 "<literal>begin_print</literal>: You must handle this signal, because this is "
 "where you create and set up a <classname>Pango::Layout</classname> using the "
@@ -8684,7 +8724,7 @@ msgstr ""
 "<classname>Gtk::PrintContext</classname>创建和设置<classname>Pango::Layout</"
 "classname>的地方,以及对你的打印输出进行分页的地方。"
 
-#: C/index-in.docbook:4958
+#: index-in.docbook:4977
 msgid ""
 "<literal>paginate</literal>: Pagination is potentially slow so if you need "
 "to monitor it you can call the <methodname>PrintOperation::"
@@ -8694,7 +8734,7 @@ msgstr ""
 "<methodname>PrintOperation::set_show_progress()</methodname>方法并处理此信"
 "号。"
 
-#: C/index-in.docbook:4972
+#: index-in.docbook:4991
 msgid ""
 "<literal>request_page_setup</literal>: Provides a <classname>PrintContext</"
 "classname>, page number and <classname>Gtk::PageSetup</classname>. Handle "
@@ -8704,7 +8744,7 @@ msgstr ""
 "classname>、页码和<classname>Gtk::PageSetup</classname>。如果你需要逐页的修改"
 "页面设置,请处理此信号。"
 
-#: C/index-in.docbook:4981
+#: index-in.docbook:5000
 msgid ""
 "<literal>draw_page</literal>: You must handle this signal, which provides a "
 "<classname>PrintContext</classname> and a page number. The "
@@ -8720,13 +8760,13 @@ msgstr ""
 "<literal>begin_print</literal>处理程序中创建的<classname>Pango::Layout</"
 "classname>。"
 
-#: C/index-in.docbook:4967
+#: index-in.docbook:4986
 msgid ""
 "For each page that needs to be rendered, the following signals are emitted: "
 "<_:itemizedlist-1/>"
 msgstr "对于每个要渲染的页面,都会发出以下信号:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:4996
+#: index-in.docbook:5015
 msgid ""
 "<literal>end_print</literal>: A handler for it is a safe place to free any "
 "resources related to a <classname>PrintOperation</classname>. If you have "
@@ -8738,7 +8778,7 @@ msgstr ""
 "<classname>PrintOperation</classname>创建了自定义类,则直接在自定义类的析构函"
 "数中进行此操作会更简单。"
 
-#: C/index-in.docbook:5006
+#: index-in.docbook:5025
 msgid ""
 "<literal>done</literal>: This signal is emitted when printing is finished, "
 "meaning when the print data is spooled. Note that the provided <literal>Gtk::"
@@ -8749,7 +8789,7 @@ msgstr ""
 "意,所提供的<literal>Gtk::PrintOperationResult</literal>可能表明发生了错误。"
 "无论如何你都应该让用户知道最终的状态。"
 
-#: C/index-in.docbook:5016
+#: index-in.docbook:5035
 msgid ""
 "<literal>status_changed</literal>: Emitted whenever a print job's status "
 "changes, until it is finished. Call the <methodname>PrintOperation::"
@@ -8763,7 +8803,7 @@ msgstr ""
 "<methodname>get_status()</methodname>或<methodname>get_status_string()</"
 "methodname>。"
 
-#: C/index-in.docbook:4942
+#: index-in.docbook:4961
 msgid ""
 "The <methodname>PrintOperation::run()</methodname> method starts the print "
 "loop, during which various signals are emitted: <_:itemizedlist-1/>"
@@ -8771,7 +8811,7 @@ msgstr ""
 "<methodname>PrintOperation::run()</methodname>方法启动打印循环,在此期间会发"
 "出以下信号:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:5029
+#: index-in.docbook:5048
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1PrintOperation.html\">Reference</ulink>"
@@ -8779,11 +8819,11 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1PrintOperation.html\">参考</ulink>"
 
-#: C/index-in.docbook:5038
+#: index-in.docbook:5057
 msgid "Page setup"
 msgstr "页面设置"
 
-#: C/index-in.docbook:5040
+#: index-in.docbook:5059
 msgid ""
 "The <classname>PrintOperation</classname> class has a method called "
 "<methodname>set_default_page_setup()</methodname> which selects the default "
@@ -8803,7 +8843,7 @@ msgstr ""
 "PaperSize</classname>、<literal>Gtk::PageOrientation</literal>和特定打印机的"
 "边距。"
 
-#: C/index-in.docbook:5050
+#: index-in.docbook:5069
 msgid ""
 "You should save the chosen <classname>Gtk::PageSetup</classname> so you can "
 "use it again if the page setup dialog is shown again."
@@ -8811,7 +8851,7 @@ msgstr ""
 "你应该保存所选的<classname>Gtk::PageSetup</classname>以便在下次打开页面设置对"
 "话框的时候使用。"
 
-#: C/index-in.docbook:5054
+#: index-in.docbook:5073
 #, no-wrap
 msgid ""
 "\n"
@@ -8826,7 +8866,7 @@ msgstr ""
 "auto new_page_setup = Gtk::run_page_setup_dialog(*this, m_refPageSetup, m_refSettings);\n"
 "m_refPageSetup = new_page_setup;\n"
 
-#: C/index-in.docbook:5061
+#: index-in.docbook:5080
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1PageSetup.";
 "html\">Reference</ulink>"
@@ -8834,7 +8874,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1PageSetup.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:5065
+#: index-in.docbook:5084
 msgid ""
 "The Cairo coordinate system, in the <literal>draw_page</literal> handler, is "
 "automatically rotated to the current page orientation. It is normally within "
@@ -8848,11 +8888,11 @@ msgstr ""
 "set_use_full_page()</methodname>方法来更改它。默认的度量单位是设备像素。要选"
 "择其他单位请使用<methodname>PrintOperation::set_unit()</methodname>方法。"
 
-#: C/index-in.docbook:5077
+#: index-in.docbook:5096
 msgid "Rendering text"
 msgstr "渲染文本"
 
-#: C/index-in.docbook:5079
+#: index-in.docbook:5098
 msgid ""
 "Text rendering is done using Pango. The <classname>Pango::Layout</classname> "
 "object for printing should be created by calling the "
@@ -8875,7 +8915,7 @@ msgstr ""
 "get_cairo_context()</methodname>获取<classname>Cairo::Context</classname>并显"
 "示在请求的页码中出现的<classname>Pango::LayoutLine</classname>。"
 
-#: C/index-in.docbook:5094
+#: index-in.docbook:5113
 msgid ""
 "See <link linkend=\"sec-printing-example-simple\">an example</link> of "
 "exactly how this can be done."
@@ -8883,11 +8923,11 @@ msgstr ""
 "请看<link linkend=\"sec-printing-example-simple\">具体示例</link>如何做到这"
 "点。"
 
-#: C/index-in.docbook:5102
+#: index-in.docbook:5121
 msgid "Asynchronous operations"
 msgstr "异步操作"
 
-#: C/index-in.docbook:5104
+#: index-in.docbook:5123
 msgid ""
 "By default, <methodname>PrintOperation::run()</methodname> returns when a "
 "print operation is completed. If you need to run a non-blocking print "
@@ -8901,19 +8941,18 @@ msgstr ""
 "<methodname>set_allow_async()</methodname>,但<literal>done</literal>信号仍然"
 "会被发出。"
 
-#: C/index-in.docbook:5111
+#: index-in.docbook:5130
 msgid ""
 "<methodname>run()</methodname> may return <literal>PrintOperation::Result::"
 "IN_PROGRESS</literal>. To track status and handle the result or error you "
 "need to implement signal handlers for the <literal>done</literal> and "
 "<literal>status_changed</literal> signals:"
 msgstr ""
-"<methodname>run()</methodname>可能会返回"
-"<literal>PrintOperation::Result::IN_PROGRESS</literal>。要跟踪状态并处理结果或"
-"错误,你需要实现<literal>done</literal>和<literal>status_changed</literal>信"
-"号的信号处理函数。"
+"<methodname>run()</methodname>可能会返回<literal>PrintOperation::Result::"
+"IN_PROGRESS</literal>。要跟踪状态并处理结果或错误,你需要实现<literal>done</"
+"literal>和<literal>status_changed</literal>信号的信号处理函数。"
 
-#: C/index-in.docbook:5119
+#: index-in.docbook:5138
 #, no-wrap
 msgid ""
 "\n"
@@ -8932,14 +8971,13 @@ msgstr ""
 "  *this, &amp;ExampleWindow::on_printoperation_done), op));\n"
 "// run the op\n"
 
-#: C/index-in.docbook:5128
+#: index-in.docbook:5147
 msgid ""
 "Second, check for an error and connect to the <literal>status_changed</"
 "literal> signal. For instance:"
-msgstr ""
-"然后,检查错误并连接到<literal>status_changed</literal>信号,例如:"
+msgstr "然后,检查错误并连接到<literal>status_changed</literal>信号,例如:"
 
-#: C/index-in.docbook:5130
+#: index-in.docbook:5149
 #, no-wrap
 msgid ""
 "\n"
@@ -8970,11 +9008,11 @@ msgstr ""
 "      *this, &amp;ExampleWindow::on_printoperation_status_changed), op));\n"
 "}\n"
 
-#: C/index-in.docbook:5145
+#: index-in.docbook:5164
 msgid "Finally, check the status. For instance,"
 msgstr "最后检查状态。例如:"
 
-#: C/index-in.docbook:5146
+#: index-in.docbook:5165
 #, no-wrap
 msgid ""
 "\n"
@@ -8999,11 +9037,11 @@ msgstr ""
 "  //update UI\n"
 "}\n"
 
-#: C/index-in.docbook:5161
+#: index-in.docbook:5180
 msgid "Export to PDF"
 msgstr "导出为PDF"
 
-#: C/index-in.docbook:5162
+#: index-in.docbook:5181
 msgid ""
 "The 'Print to file' option is available in the print dialog, without the "
 "need for extra implementation. However, it is sometimes useful to generate a "
@@ -9012,7 +9050,7 @@ msgstr ""
 "\"打印到文件\"选项在打印对话框可用,不需要额外实现。但是有时候从代码直接生成"
 "PDF文件会很有用。例如:"
 
-#: C/index-in.docbook:5165
+#: index-in.docbook:5184
 #, no-wrap
 msgid ""
 "\n"
@@ -9027,11 +9065,11 @@ msgstr ""
 "op-&gt;set_export_filename(\"test.pdf\");\n"
 "auto res = op-&gt;run(Gtk::PrintOperation::Action::EXPORT);\n"
 
-#: C/index-in.docbook:5175
+#: index-in.docbook:5194
 msgid "Extending the print dialog"
 msgstr "扩展打印对话框"
 
-#: C/index-in.docbook:5182
+#: index-in.docbook:5201
 msgid ""
 "Set the title of the tab via <methodname>PrintOperation::"
 "set_custom_tab_label()</methodname>, create a new widget and return it from "
@@ -9042,18 +9080,18 @@ msgstr ""
 "标题,创建一个新的部件然后从<literal>create_custom_widget</literal>的信号处理"
 "函数中返回它。你可能希望它是一个容器部件,在其中包含一些其他部件。"
 
-#: C/index-in.docbook:5192
+#: index-in.docbook:5211
 msgid ""
 "Get the data from the widgets in the <literal>custom_widget_apply</literal> "
 "signal handler."
 msgstr ""
 "从部件的<literal>custom_widget_apply</literal>的信号处理函数中获取数据。"
 
-#: C/index-in.docbook:5177
+#: index-in.docbook:5196
 msgid "You may add a custom tab to the print dialog: <_:itemizedlist-1/>"
 msgstr "你可以在打印对话框中添加自定义标签: <_:itemizedlist-1/>"
 
-#: C/index-in.docbook:5200
+#: index-in.docbook:5219
 msgid ""
 "Although the <literal>custom_widget_apply</literal> signal provides the "
 "widget you previously created, to simplify things you can keep the widgets "
@@ -9067,7 +9105,7 @@ msgstr ""
 "叫做<literal>m_Entry</literal>的<classname>Gtk::Entry</classname>拥有"
 "<classname>CustomPrintOperation</classname>作为类成员:"
 
-#: C/index-in.docbook:5207
+#: index-in.docbook:5226
 #, no-wrap
 msgid ""
 "\n"
@@ -9114,22 +9152,22 @@ msgstr ""
 "  //...\n"
 "}\n"
 
-#: C/index-in.docbook:5230
+#: index-in.docbook:5249
 msgid "The example in examples/book/printing/advanced demonstrates this."
 msgstr "examples/book/printing/advanced示例对此进行了演示。"
 
-#: C/index-in.docbook:5237
+#: index-in.docbook:5256
 msgid "Preview"
 msgstr "预览"
 
-#: C/index-in.docbook:5239
+#: index-in.docbook:5258
 msgid ""
 "The native GTK print dialog has a preview button, but you may also start a "
 "preview directly from an application:"
 msgstr ""
 "原生的GTK打印对话框有一个预览按钮,但是你也可以自己从应用程序开始预览:"
 
-#: C/index-in.docbook:5243
+#: index-in.docbook:5262
 #, no-wrap
 msgid ""
 "\n"
@@ -9144,7 +9182,7 @@ msgstr ""
 "// ...set up op...\n"
 "op-&gt;run(Gtk::PrintOperation::Action::PREVIEW, *this);\n"
 
-#: C/index-in.docbook:5250
+#: index-in.docbook:5269
 msgid ""
 "On Unix, the default preview handler uses an external viewer program. On "
 "Windows, the native preview dialog will be shown. If necessary you may "
@@ -9155,7 +9193,7 @@ msgstr ""
 "话框。如果有必要,你可以覆盖此默认行为并为此提供一个自定义的预览对话框。请参"
 "阅位于/examples/book/printing/advanced的示例。"
 
-#: C/index-in.docbook:5265
+#: index-in.docbook:5284
 msgid ""
 "The following example demonstrates how to print some input from a user "
 "interface. It shows how to implement <literal>on_begin_print</literal> and "
@@ -9166,11 +9204,11 @@ msgstr ""
 "<literal>on_begin_print</literal>和<literal>on_draw_page</literal>,以及如何"
 "跟踪打印状态和更新打印设置。"
 
-#: C/index-in.docbook:5273
+#: index-in.docbook:5292
 msgid "Printing - Simple"
 msgstr "打印 - 简单"
 
-#: C/index-in.docbook:5279
+#: index-in.docbook:5298
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/printing/simple/\">Source Code</ulink>"
@@ -9178,11 +9216,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/printing/simple/\">源代码</ulink>"
 
-#: C/index-in.docbook:5288
+#: index-in.docbook:5307
 msgid "Recently Used Documents"
 msgstr "最近使用过的文件"
 
-#: C/index-in.docbook:5290
+#: index-in.docbook:5309
 msgid ""
 "<application>gtkmm</application> provides an easy way to manage recently "
 "used documents. This functionality is implemented in the <classname>Gtk::"
@@ -9191,7 +9229,7 @@ msgstr ""
 "<application>gtkmm</application>提供了一种管理最近使用文件的简便方法。该功能"
 "在<classname>Gtk::RecentManager</classname>类中实现。"
 
-#: C/index-in.docbook:5294
+#: index-in.docbook:5313
 msgid ""
 "Each item in the list of recently used files is identified by its URI, and "
 "can have associated metadata. The metadata can be used to specify how the "
@@ -9203,11 +9241,11 @@ msgstr ""
 "以用于指定如何显示文件、如何描述文件、及其它的MIME类型、哪个应用程序注册了"
 "它、对于注册的应用程序是不是私有的等。"
 
-#: C/index-in.docbook:5302
+#: index-in.docbook:5321
 msgid "RecentManager"
 msgstr "最近管理器(RecentManager)"
 
-#: C/index-in.docbook:5303
+#: index-in.docbook:5322
 msgid ""
 "<classname>RecentManager</classname> acts as a database of recently used "
 "files. You use this class to register new files, remove files from the list, "
@@ -9218,7 +9256,7 @@ msgstr ""
 "注册新文件、从列表中删除文件、查找最近使用文件。每个用户都拥有一个最近使用的"
 "文件列表。"
 
-#: C/index-in.docbook:5309
+#: index-in.docbook:5328
 msgid ""
 "You can create a new <classname>RecentManager</classname>, but you'll most "
 "likely just want to use the default one. You can get a reference to the "
@@ -9229,18 +9267,18 @@ msgstr ""
 "那个。你可以通过<methodname>get_default()</methodname>获取默认"
 "<classname>RecentManager</classname>的引用。"
 
-#: C/index-in.docbook:5316
+#: index-in.docbook:5335
 msgid "Adding Items to the List of Recent Files"
 msgstr "将项目添加到最近文件列表"
 
-#: C/index-in.docbook:5317
+#: index-in.docbook:5336
 msgid ""
 "To add a new file to the list of recent documents, in the simplest case, you "
 "only need to provide the URI. For example:"
 msgstr ""
 "在最简单的情况下,要添加项目到最近文件列表只需要提供一个URI即可。例如:"
 
-#: C/index-in.docbook:5321
+#: index-in.docbook:5340
 #, no-wrap
 msgid ""
 "auto recent_manager = Gtk::RecentManager::get_default();\n"
@@ -9249,7 +9287,7 @@ msgstr ""
 "auto recent_manager = Gtk::RecentManager::get_default();\n"
 "recent_manager-&gt;add_item(uri);"
 
-#: C/index-in.docbook:5323
+#: index-in.docbook:5342
 msgid ""
 "If you want to register a file with metadata, you can pass a "
 "<classname>RecentManager::Data</classname> parameter to "
@@ -9260,7 +9298,7 @@ msgstr ""
 "classname>参数传递给<methodname>add_item()</methodname>。可以在特定的文件项上"
 "设置的元数据如下所示:"
 
-#: C/index-in.docbook:5331
+#: index-in.docbook:5350
 msgid ""
 "<varname>app_exec</varname>: The command line to be used to launch this "
 "resource. This string may contain the \"f\" and \"u\" escape characters "
@@ -9269,25 +9307,25 @@ msgstr ""
 "<varname>app_exec</varname>:用于启动此资源的命令行。此字符串可以包含\"f\"和"
 "\"u\"转义字符,它们将分别扩展为资源文件路径和URI"
 
-#: C/index-in.docbook:5337
+#: index-in.docbook:5356
 msgid ""
 "<varname>app_name</varname>: The name of the application that registered the "
 "resource"
 msgstr "<varname>app_name</varname>:此资源注册的应用程序名"
 
-#: C/index-in.docbook:5341
+#: index-in.docbook:5360
 msgid ""
 "<varname>description</varname>: A short description of the resource as a "
 "UTF-8 encoded string"
 msgstr "<varname>description</varname>:资源的简单描述(UTF-8编码字符串)"
 
-#: C/index-in.docbook:5345
+#: index-in.docbook:5364
 msgid ""
 "<varname>display_name</varname>: The name of the resource to be used for "
 "display as a UTF-8 encoded string"
 msgstr "<varname>display_name</varname>:用于显示的资源名(UTF-8编码字符串)"
 
-#: C/index-in.docbook:5349
+#: index-in.docbook:5368
 msgid ""
 "<varname>groups</varname>: A list of groups associated with this item. "
 "Groups are essentially arbitrary strings associated with a particular "
@@ -9297,28 +9335,28 @@ msgstr ""
 "<varname>groups</varname>:与该项相关联的组列表。组本质上是与特定资源相关联的"
 "任意字符串。可以将它们视为资源的类别(例如:电子邮件、图形等)或标签"
 
-#: C/index-in.docbook:5355
+#: index-in.docbook:5374
 msgid ""
 "<varname>is_private</varname>: Whether this resource should be visible only "
 "to applications that have registered it or not"
 msgstr ""
 "<varname>is_private</varname>:此资源是否仅对已注册该资源的应用程序可见"
 
-#: C/index-in.docbook:5359
+#: index-in.docbook:5378
 msgid "<varname>mime_type</varname>: The MIME type of the resource"
 msgstr "<varname>mime_type</varname>:此资源的MIME类型"
 
-#: C/index-in.docbook:5362
+#: index-in.docbook:5381
 msgid ""
 "In addition to adding items to the list, you can also look up items from the "
 "list and modify or remove items."
 msgstr "除了向列表中添加项目以外,你还可以从列表项中删除、修改、查找项目。"
 
-#: C/index-in.docbook:5368
+#: index-in.docbook:5387
 msgid "Looking up Items in the List of Recent Files"
 msgstr "在最近文件列表中查找项目"
 
-#: C/index-in.docbook:5369
+#: index-in.docbook:5388
 msgid ""
 "To look up recently used files, <classname>RecentManager</classname> "
 "provides several functions. To look up a specific item by its URI, you can "
@@ -9333,7 +9371,7 @@ msgstr ""
 "件列表中不存在,则<methodname>lookup_item()</methodname>将抛出一个"
 "<classname>RecentManagerError</classname>异常。例如:"
 
-#: C/index-in.docbook:5378
+#: index-in.docbook:5397
 #, no-wrap
 msgid ""
 "Glib::RefPtr&lt;Gtk::RecentInfo&gt; info;\n"
@@ -9364,7 +9402,7 @@ msgstr ""
 "  // item was found\n"
 "}"
 
-#: C/index-in.docbook:5391
+#: index-in.docbook:5410
 msgid ""
 "A <classname>RecentInfo</classname> object is essentially an object "
 "containing all of the metadata about a single recently-used file. You can "
@@ -9375,7 +9413,7 @@ msgstr ""
 "据的对象。你可以使用该对象查找<link linkend=\"list-file-metadata\">这里</"
 "link>所列出的任何属性。"
 
-#: C/index-in.docbook:5397
+#: index-in.docbook:5416
 msgid ""
 "If you don't want to look for a specific URI, but instead want to get a list "
 "of all recently used items, <classname>RecentManager</classname> provides "
@@ -9389,12 +9427,12 @@ msgstr ""
 "methodname>函数。这个函数返回值是一个<classname>std::vector</classname>,其包"
 "含了所有最近使用的文件。以下代码演示了你该如何获取最近使用文件列表:"
 
-#: C/index-in.docbook:5405
+#: index-in.docbook:5424
 #, no-wrap
 msgid "auto info_list = recent_manager-&gt;get_items();"
 msgstr "auto info_list = recent_manager-&gt;get_items();"
 
-#: C/index-in.docbook:5406
+#: index-in.docbook:5425
 msgid ""
 "The maximum age of items in the recently used files list can be set with "
 "<methodname>Gtk::Settings::property_gtk_recent_files_max_age()</methodname>. "
@@ -9403,11 +9441,11 @@ msgstr ""
 "可以使用<methodname>Gtk::Settings::property_gtk_recent_files_max_age()</"
 "methodname>设置最近使用文件列表中项目的最长使用期限。默认时长是:30天。"
 
-#: C/index-in.docbook:5413
+#: index-in.docbook:5432
 msgid "Modifying the List of Recent Files"
 msgstr "修改最近使用文件列表"
 
-#: C/index-in.docbook:5414
+#: index-in.docbook:5433
 msgid ""
 "There may be times when you need to modify the list of recent files. For "
 "instance, if a file is moved or renamed, you may need to update the file's "
@@ -9419,7 +9457,7 @@ msgstr ""
 "新该文件在最近使用文件列表中的位置,以使其不会指向错误的位置。你可以使用"
 "<methodname>move_item()</methodname>来更新项目的位置。"
 
-#: C/index-in.docbook:5421
+#: index-in.docbook:5440
 msgid ""
 "In addition to changing a file's URI, you can also remove items from the "
 "list, either one at a time or by clearing them all at once. The former is "
@@ -9430,7 +9468,7 @@ msgstr ""
 "用<methodname>remove_item()</methodname>,后者使用<methodname>purge_items()</"
 "methodname>。"
 
-#: C/index-in.docbook:5428
+#: index-in.docbook:5447
 msgid ""
 "The functions <methodname>move_item()</methodname>, "
 "<methodname>remove_item()</methodname> and <methodname>purge_items()</"
@@ -9441,7 +9479,7 @@ msgstr ""
 "和<methodname>purge_items()</methodname>并不影响URI所引用的真实文件,它们只是"
 "对最近文件列表进行修改。"
 
-#: C/index-in.docbook:5441
+#: index-in.docbook:5460
 msgid ""
 "<classname>FileChooser</classname> is an interface that can be implemented "
 "by widgets displaying a list of files. <application>gtkmm</application> "
@@ -9456,7 +9494,7 @@ msgstr ""
 "<classname>FileChooserDialog</classname>、<classname>FileChooserNative</"
 "classname>。"
 
-#: C/index-in.docbook:5450
+#: index-in.docbook:5469
 msgid ""
 "<classname>FileChooserWidget</classname> is a simple widget for displaying a "
 "list of recently used files or other files. <classname>FileChooserWidget</"
@@ -9468,11 +9506,11 @@ msgstr ""
 "<classname>FileChooserDialog</classname>的基本构建块,但是你根据需要可以将其"
 "嵌入到用户界面中。"
 
-#: C/index-in.docbook:5458
+#: index-in.docbook:5477
 msgid "Simple FileChooserDialog example"
 msgstr "简单的文件选择对话框示例"
 
-#: C/index-in.docbook:5459
+#: index-in.docbook:5478
 msgid ""
 "Shown below is a simple example of how to use the "
 "<classname>FileChooserDialog</classname> class in a program. This simple "
@@ -9487,7 +9525,7 @@ msgstr ""
 "如果你选中侧边栏的<guimenuitem>Recent</guimenuitem>,则对话框将显示最近使用文"
 "件列表。"
 
-#: C/index-in.docbook:5469
+#: index-in.docbook:5488
 msgid ""
 "If this is the first time you're using a program that uses the Recent Files "
 "framework, the dialog may be empty at first. Otherwise it should show the "
@@ -9496,7 +9534,7 @@ msgstr ""
 "如果这是你第一次使用使用了最近文件框架的应用程序,那么对话框最初可能是空的。"
 "否则它应该显示其他应用程序注册的最近使用文件列表。"
 
-#: C/index-in.docbook:5476
+#: index-in.docbook:5495
 msgid ""
 "After selecting the <guimenuitem>File Chooser Dialog</guimenuitem> menu item "
 "and the <guimenuitem>Recent</guimenuitem> sidebar item, you should see "
@@ -9505,7 +9543,7 @@ msgstr ""
 "选择<guimenuitem>File Chooser Dialog</guimenuitem>菜单项和"
 "<guimenuitem>Recent</guimenuitem>侧边项后,你将看到与下方窗口类似的内容。"
 
-#: C/index-in.docbook:5484
+#: index-in.docbook:5503
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/recent_files\">Source Code</ulink>"
@@ -9513,7 +9551,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/recent_files\">源代码</ulink>"
 
-#: C/index-in.docbook:5485
+#: index-in.docbook:5504
 msgid ""
 "The constructor for <classname>ExampleWindow</classname> creates the menu "
 "and the toolbar using <classname>Builder</classname> (see <xref linkend="
@@ -9524,11 +9562,11 @@ msgstr ""
 "classname>创建菜单和工具栏(更多有关信息请参阅<xref linkend=\"chapter-menus-"
 "and-toolbars\"/>)。然后将菜单和工具栏添加到窗口中。"
 
-#: C/index-in.docbook:5493
+#: index-in.docbook:5512
 msgid "Filtering Files"
 msgstr "筛选文件"
 
-#: C/index-in.docbook:5494
+#: index-in.docbook:5513
 msgid ""
 "For any of the <classname>FileChooser</classname> classes, if you don't wish "
 "to display all of the items in the list of files, you can filter the list to "
@@ -9543,7 +9581,7 @@ msgstr ""
 "(<methodname>add_pattern()</methodname>)或MIME类型"
 "(<methodname>add_mime_type()</methodname>)筛选文件。"
 
-#: C/index-in.docbook:5503
+#: index-in.docbook:5522
 msgid ""
 "After you've created and set up the filter to match only the items you want, "
 "you can apply a filter to a chooser widget with the <methodname>FileChooser::"
@@ -9553,11 +9591,11 @@ msgstr ""
 "<methodname>FileChooser::add_filter()</methodname>函数将筛选器应用于你所选的"
 "部件。"
 
-#: C/index-in.docbook:5513
+#: index-in.docbook:5532
 msgid "Keyboard Events"
 msgstr "键盘事件"
 
-#: C/index-in.docbook:5514
+#: index-in.docbook:5533
 msgid ""
 "X events differ in some ways from other signals. These differences are "
 "described in the <link linkend=\"sec-xeventsignals\">X Event signals</link> "
@@ -9568,11 +9606,11 @@ msgstr ""
 "xeventsignals\">X事件信号</link>小节中说明。在这,我们将使用键盘事件说明如何"
 "在程序中使用X事件。"
 
-#: C/index-in.docbook:5521
+#: index-in.docbook:5540
 msgid "Overview"
 msgstr "总览"
 
-#: C/index-in.docbook:5522
+#: index-in.docbook:5541
 msgid ""
 "Whenever you press or release a key, an event is emitted. You can connect a "
 "signal handler to handle such events."
@@ -9580,7 +9618,7 @@ msgstr ""
 "每当你按下或放开一个按键,就会发出一个事件。你可以连接到信号处理函数来处理此"
 "类事件。"
 
-#: C/index-in.docbook:5526
+#: index-in.docbook:5545
 msgid ""
 "The event signal handler will receive an argument that depends on the type "
 "of event. For keyboard events it's a <type>GdkEventKey*</type>. As discribed "
@@ -9594,7 +9632,7 @@ msgstr ""
 "link>中所述,事件处理函数返回一个<type>bool</type>值,以表示信号已经被完全处"
 "理(返回<literal>true</literal>)或允许事件传播(<literal>false</literal>)。"
 
-#: C/index-in.docbook:5535
+#: index-in.docbook:5554
 msgid ""
 "To determine which key was pressed or released, you read the value of "
 "<varname>GdkEventKey::keyval</varname> and compare it with a constant in the "
@@ -9607,11 +9645,11 @@ msgstr ""
 "较。<varname>GdkEventKey::state</varname>的位标志可以用作表示修饰键(shift、"
 "ctrl等)的状态。"
 
-#: C/index-in.docbook:5542 C/index-in.docbook:8400
+#: index-in.docbook:5561 index-in.docbook:8419
 msgid "Here's a simple example:"
 msgstr "这是一个简单的例子:"
 
-#: C/index-in.docbook:5545
+#: index-in.docbook:5564
 #, no-wrap
 msgid ""
 "\n"
@@ -9652,7 +9690,7 @@ msgstr ""
 "m_entry.signal_key_press_event().connect( sigc::ptr_fun(&amp;on_key_press_or_release_event) );\n"
 "m_entry.signal_key_release_event().connect( sigc::ptr_fun(&amp;on_key_press_or_release_event) );\n"
 
-#: C/index-in.docbook:5567
+#: index-in.docbook:5586
 msgid ""
 "In this example there are three keyboard shortcuts: <keycap>Alt</keycap>"
 "+<keycap>1</keycap> selects the first radio button, <keycap>Alt</keycap>"
@@ -9667,11 +9705,11 @@ msgstr ""
 "linkend=\"sec-overriding-default-signal-handlers\">覆盖默认信号处理程序</"
 "link>小节所述。"
 
-#: C/index-in.docbook:5578
+#: index-in.docbook:5597
 msgid "Keyboard Events - Simple"
 msgstr "键盘事件 - 简单"
 
-#: C/index-in.docbook:5584
+#: index-in.docbook:5603
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/keyboard_events/simple/\">Source Code</ulink>"
@@ -9679,11 +9717,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/keyboard_events/simple/\">源代码</ulink>"
 
-#: C/index-in.docbook:5589
+#: index-in.docbook:5608
 msgid "Event Propagation"
 msgstr "事件传播"
 
-#: C/index-in.docbook:5590
+#: index-in.docbook:5609
 msgid ""
 "Event propagation means that, when an event is emitted on a particular "
 "widget, it can be passed to its parent widget (and that widget can pass it "
@@ -9694,7 +9732,7 @@ msgstr ""
 "个部件又可以将信号传递给它的父部件,以此类推),如果父部件有对该事件的事件处"
 "理程序,该处理程序将被调用。"
 
-#: C/index-in.docbook:5596
+#: index-in.docbook:5615
 msgid ""
 "Contrary to other events, keyboard events are first sent to the toplevel "
 "window (<classname>Gtk::Window</classname>), where it will be checked for "
@@ -9708,7 +9746,7 @@ msgstr ""
 "键、助记符)。然后(假设事件没有被处理)将其发送到焦点部件,然后从此部件开始"
 "传播。"
 
-#: C/index-in.docbook:5604
+#: index-in.docbook:5623
 msgid ""
 "The event will propagate until it reaches the top-level widget, or until you "
 "stop the propagation by returning <literal>true</literal> from an event "
@@ -9717,13 +9755,13 @@ msgstr ""
 "事件将一直传播直到顶级窗口为止或直到你通过事件处理程序返回<literal>true</"
 "literal>为止。"
 
-#: C/index-in.docbook:5609
+#: index-in.docbook:5628
 msgid ""
 "Notice, that after canceling an event, no other function will be called "
 "(even if it is from the same widget)."
 msgstr "请注意,取消事件之后,不再会调用其他函数(哪怕它来自同一个部件)。"
 
-#: C/index-in.docbook:5616
+#: index-in.docbook:5635
 msgid ""
 "In this example there are three event handlers that are called after "
 "<classname>Gtk::Window</classname>'s default event handler, one in the "
@@ -9735,7 +9773,7 @@ msgstr ""
 "<classname>Gtk::Grid</classname>中、一个在<classname>Gtk::Window</classname>"
 "中。"
 
-#: C/index-in.docbook:5622
+#: index-in.docbook:5641
 msgid ""
 "In the <classname>Gtk::Window</classname>, we have also the default handler "
 "overridden (<methodname>on_key_release_event()</methodname>), and another "
@@ -9746,13 +9784,13 @@ msgstr ""
 "(<methodname>on_key_release_event()</methodname>),并在调用默认处理程序之前"
 "调用了另一个处理程序(<methodname>windowKeyReleaseBefore()</methodname>)。"
 
-#: C/index-in.docbook:5628
+#: index-in.docbook:5647
 msgid ""
 "The purpose of this example is to show the steps the event takes when it is "
 "emitted."
 msgstr "本示例的目的是显示事件发出时进行的步骤。"
 
-#: C/index-in.docbook:5631
+#: index-in.docbook:5650
 msgid ""
 "When you write in the entry, a key release event will be emitted, which will "
 "go first to the toplevel window (<classname>Gtk::Window</classname>), since "
@@ -9774,11 +9812,11 @@ msgstr ""
 "播,你写入的文本将出现在<classname>Entry</classname>上方的<classname>Label</"
 "classname>中。"
 
-#: C/index-in.docbook:5646
+#: index-in.docbook:5665
 msgid "Keyboard Events - Event Propagation"
 msgstr "键盘事件 - 事件传播"
 
-#: C/index-in.docbook:5652
+#: index-in.docbook:5671
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/keyboard_events/propagation/\">Source Code</ulink>"
@@ -9786,15 +9824,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/keyboard_events/propagation/\">源代码</ulink>"
 
-#: C/index-in.docbook:5658
+#: index-in.docbook:5677
 msgid "Timeouts, I/O and Idle Functions"
 msgstr "超时,I/O和空闲函数"
 
-#: C/index-in.docbook:5661
+#: index-in.docbook:5680
 msgid "Timeouts"
 msgstr "超时"
 
-#: C/index-in.docbook:5663
+#: index-in.docbook:5682
 msgid ""
 "You may be wondering how to make <application>gtkmm</application> do useful "
 "work while it's idling along. Happily, you have several options. Using the "
@@ -9804,7 +9842,7 @@ msgstr ""
 "你可能想知道如何使<application>gtkmm</application>在空闲的时候做一些有用的工"
 "作。幸运的是你有几种选择。你可以创建一个每几毫秒就调用的超时方法。"
 
-#: C/index-in.docbook:5669
+#: index-in.docbook:5688
 #, no-wrap
 msgid ""
 "\n"
@@ -9815,7 +9853,7 @@ msgstr ""
 "sigc::connection Glib::SignalTimeout::connect(const sigc::slot&lt;bool()&gt;&amp; slot,\n"
 "                                      unsigned int interval, int priority = Glib::PRIORITY_DEFAULT);\n"
 
-#: C/index-in.docbook:5674
+#: index-in.docbook:5693
 msgid ""
 "The first argument is a <classname>slot</classname> you wish to have called "
 "when the timeout occurs. The second argument is the number of milliseconds "
@@ -9828,7 +9866,7 @@ msgstr ""
 "classname>对象,可以在该对象上调用<methodname>disconnect()</methodname>方法断"
 "开连接。"
 
-#: C/index-in.docbook:5682
+#: index-in.docbook:5701
 #, no-wrap
 msgid ""
 "\n"
@@ -9837,7 +9875,7 @@ msgstr ""
 "\n"
 "my_connection.disconnect();\n"
 
-#: C/index-in.docbook:5686
+#: index-in.docbook:5705
 msgid ""
 "Another way of destroying the connection is your signal handler. It has to "
 "be of the type <classname>sigc::slot&lt;bool()&gt;</classname>. As you see "
@@ -9849,7 +9887,7 @@ msgstr ""
 "<classname>sigc::slot&lt;bool()&gt;</classname>。从定义可以看出信号处理函数必"
 "须返回一个<literal>bool</literal>类型的值。示例方法的定义可能如下所示:"
 
-#: C/index-in.docbook:5694
+#: index-in.docbook:5713
 #, no-wrap
 msgid ""
 "\n"
@@ -9858,7 +9896,7 @@ msgstr ""
 "\n"
 "bool MyCallback() { std::cout &lt;&lt; \"Hello World!\\n\" &lt;&lt; std::endl; return true; }\n"
 
-#: C/index-in.docbook:5698
+#: index-in.docbook:5717
 msgid ""
 "You can stop the timeout method by returning <literal>false</literal> from "
 "your signal handler. Therefore, if you want your method to be called "
@@ -9868,11 +9906,11 @@ msgstr ""
 "此,如果你还想重复调用此方法,则你需要让信号处理函数返回<literal>true</"
 "literal>。"
 
-#: C/index-in.docbook:5704
+#: index-in.docbook:5723
 msgid "Here's an example of this technique:"
 msgstr "这是此技术的示例:"
 
-#: C/index-in.docbook:5708
+#: index-in.docbook:5727
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/timeout/\">Source Code</ulink>"
@@ -9880,11 +9918,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/timeout/\">源代码</ulink>"
 
-#: C/index-in.docbook:5713
+#: index-in.docbook:5732
 msgid "Monitoring I/O"
 msgstr "监视I/O"
 
-#: C/index-in.docbook:5715
+#: index-in.docbook:5734
 msgid ""
 "A nifty feature of Glib (one of the libraries underlying <application>gtkmm</"
 "application>) is the ability to have it check for data on a file descriptor "
@@ -9895,7 +9933,7 @@ msgstr ""
 "帮你检查文件描述符中的数据的能力。这对于需要联网的应用程序十分的有用。使用以"
 "下方法来执行此操作:"
 
-#: C/index-in.docbook:5722
+#: index-in.docbook:5741
 #, no-wrap
 msgid ""
 "\n"
@@ -9908,7 +9946,7 @@ msgstr ""
 "                                 Glib::PollFD::fd_t fd, Glib::IOCondition condition,\n"
 "                                 int priority = Glib::PRIORITY_DEFAULT);\n"
 
-#: C/index-in.docbook:5728
+#: index-in.docbook:5747
 msgid ""
 "The first argument is a slot you wish to have called when the specified "
 "event (see argument 3) occurs on the file descriptor you specify using "
@@ -9920,37 +9958,37 @@ msgstr ""
 "使用<literal>|</literal>,例如:<literal>Glib::IO_IN | Glib::IO_OUT | Glib::"
 "IO_PRI</literal>):"
 
-#: C/index-in.docbook:5738
+#: index-in.docbook:5757
 msgid ""
 "Glib::IO_IN - Call your method when there is data ready for reading on your "
 "file descriptor."
 msgstr "Glib::IO_IN - 当你提供的文件描述符有数据准备好被读取时调用你的方法。"
 
-#: C/index-in.docbook:5746
+#: index-in.docbook:5765
 msgid ""
 "Glib::IO_OUT - Call your method when the file descriptor is ready for "
 "writing."
 msgstr "Glib::IO_OUT - 当提供的文件描述符准备好被写入时调用你的方法。"
 
-#: C/index-in.docbook:5754
+#: index-in.docbook:5773
 msgid ""
 "Glib::IO_PRI - Call your method when the file descriptor has urgent data to "
 "be read."
 msgstr "Glib::IO_PRI - 当提供的文件描述符有紧急数据要读取时调用你的方法。"
 
-#: C/index-in.docbook:5761
+#: index-in.docbook:5780
 msgid ""
 "Glib::IO_ERR - Call your method when an error has occurred on the file "
 "descriptor."
 msgstr "Glib::IO_ERR - 当提供的文件描述符上发生错误的时候调用你的方法。"
 
-#: C/index-in.docbook:5768
+#: index-in.docbook:5787
 msgid ""
 "Glib::IO_HUP - Call your method when hung up (the connection has been broken "
 "usually for pipes and sockets)."
 msgstr "Glib::IO_HUP - 挂起时(常见于管道和套接字的连接被断开)调用你的方法。"
 
-#: C/index-in.docbook:5775
+#: index-in.docbook:5794
 msgid ""
 "The return value is a <classname>sigc::connection</classname> that may be "
 "used to stop monitoring this file descriptor using its "
@@ -9961,7 +9999,7 @@ msgstr ""
 "<methodname>disconnect()</methodname>方法以停止对该文件描述符的监视。信号处理"
 "函数<parameter>slot</parameter>应声明如下:"
 
-#: C/index-in.docbook:5781
+#: index-in.docbook:5800
 #, no-wrap
 msgid ""
 "\n"
@@ -9970,7 +10008,7 @@ msgstr ""
 "\n"
 "bool input_callback(Glib::IOCondition condition);\n"
 
-#: C/index-in.docbook:5785
+#: index-in.docbook:5804
 msgid ""
 "where <parameter>condition</parameter> is as specified above. As usual the "
 "slot is created with <function>sigc::mem_fun()</function> (for a member "
@@ -9981,7 +10019,7 @@ msgstr ""
 "mem_fun()</function>(通过一个对象的成员函数创建)或<function>sigc::"
 "ptr_fun()</function>(通过一个普通函数创建)函数创建槽。"
 
-#: C/index-in.docbook:5792
+#: index-in.docbook:5811
 msgid ""
 "A little example follows. To use the example just execute it from a "
 "terminal; it doesn't create a window. It will create a pipe named "
@@ -9995,7 +10033,7 @@ msgstr ""
 "shell并执行<literal>echo \"Hello\" &gt; testfifo</literal>。该示例将打印你输"
 "入的每一行直到你执行<literal>echo \"Q\" &gt; testfifo</literal>"
 
-#: C/index-in.docbook:5801
+#: index-in.docbook:5820
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/input/\">Source Code</ulink>"
@@ -10003,17 +10041,17 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/input/\">源代码</ulink>"
 
-#: C/index-in.docbook:5806
+#: index-in.docbook:5825
 msgid "Idle Functions"
 msgstr "空闲函数"
 
-#: C/index-in.docbook:5808
+#: index-in.docbook:5827
 msgid ""
 "If you want to specify a method that gets called when nothing else is "
 "happening, use the following:"
 msgstr "如果你想要指定一个在无事发生时调用的方法,请使用以下函数:"
 
-#: C/index-in.docbook:5812
+#: index-in.docbook:5831
 #, no-wrap
 msgid ""
 "\n"
@@ -10024,7 +10062,7 @@ msgstr ""
 "sigc::connection  Glib::SignalIdle::connect(const sigc::slot&lt;bool()&gt;&amp; slot,\n"
 "                                    int priority = Glib::PRIORITY_DEFAULT_IDLE);\n"
 
-#: C/index-in.docbook:5817
+#: index-in.docbook:5836
 msgid ""
 "This causes <application>gtkmm</application> to call the specified method "
 "whenever nothing else is happening. You can add a priority (lower numbers "
@@ -10039,7 +10077,7 @@ msgstr ""
 "methodname>、在信号处理程序中返回<literal>false</literal>,信号处理程序的声明"
 "应如下所示:"
 
-#: C/index-in.docbook:5826
+#: index-in.docbook:5845
 #, no-wrap
 msgid ""
 "\n"
@@ -10048,14 +10086,14 @@ msgstr ""
 "\n"
 "bool idleFunc();\n"
 
-#: C/index-in.docbook:5830
+#: index-in.docbook:5849
 msgid ""
 "Since this is very similar to the methods above this explanation should be "
 "sufficient to understand what's going on. However, here's a little example:"
 msgstr ""
 "这与前一小节的方法极其类似,所以在此不再进行过多的解释。以下是个小例子:"
 
-#: C/index-in.docbook:5835
+#: index-in.docbook:5854
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/idle/\">Source Code</ulink>"
@@ -10063,7 +10101,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/idle/\">源代码</ulink>"
 
-#: C/index-in.docbook:5837
+#: index-in.docbook:5856
 msgid ""
 "This example points out the difference of idle and timeout methods a little. "
 "If you need methods that are called periodically, and speed is not very "
@@ -10075,7 +10113,7 @@ msgstr ""
 "则你应该使用超时方法。如果你需要尽可能多的调用方法(例如在后台计算分形)那你"
 "应该使用空闲方法。"
 
-#: C/index-in.docbook:5845
+#: index-in.docbook:5864
 msgid ""
 "Try executing the example and increasing the system load. The upper progress "
 "bar will increase steadily; the lower one will slow down."
@@ -10083,15 +10121,15 @@ msgstr ""
 "尝试执行此示例并逐渐增加系统的负载。上方的进度条将稳定的逐渐增加;下方的则会"
 "增加的越来越慢。"
 
-#: C/index-in.docbook:5855
+#: index-in.docbook:5874
 msgid "Memory management"
 msgstr "内存管理"
 
-#: C/index-in.docbook:5861
+#: index-in.docbook:5880
 msgid "Normal C++ memory management"
 msgstr "标准C++内存管理"
 
-#: C/index-in.docbook:5863
+#: index-in.docbook:5882
 msgid ""
 "<application>gtkmm</application> allows the programmer to control the "
 "lifetime (that is, the construction and destruction) of any widget in the "
@@ -10110,15 +10148,15 @@ msgstr ""
 "灵活性在某些C++ GUI工具包中不存在,这些工具包限制程序员只能使用C++内存管理特"
 "性中的一部分。"
 
-#: C/index-in.docbook:5875
+#: index-in.docbook:5894
 msgid "Here are some examples of normal C++ memory management:"
 msgstr "以下是一些使用标准C++进行内存管理的示例:"
 
-#: C/index-in.docbook:5878
+#: index-in.docbook:5897
 msgid "Class Scope widgets"
 msgstr "类作用域部件"
 
-#: C/index-in.docbook:5880
+#: index-in.docbook:5899
 msgid ""
 "If a programmer does not need dynamic memory allocation, automatic widgets "
 "in class scope may be used. One advantage of automatic widgets in class "
@@ -10129,7 +10167,7 @@ msgstr ""
 "类作用域中使用自动储存期的部件的优点之一是内存管理被集中在一个地方。程序员不"
 "需要承担因<literal>delete</literal>部件出现差错而导致内存泄漏的风险。"
 
-#: C/index-in.docbook:5887
+#: index-in.docbook:5906
 msgid ""
 "The primary disadvantage of using class scope widgets is revealing the class "
 "implementation rather than the class interface in the class header."
@@ -10137,7 +10175,7 @@ msgstr ""
 "使用类作用域部件的主要缺点是在包含类声明的头文件中展示了类的实现而不只是类的"
 "接口。"
 
-#: C/index-in.docbook:5892
+#: index-in.docbook:5911
 #, no-wrap
 msgid ""
 "\n"
@@ -10160,11 +10198,11 @@ msgstr ""
 "  // will be destroyed when the Foo object is destroyed\n"
 "};\n"
 
-#: C/index-in.docbook:5905
+#: index-in.docbook:5924
 msgid "Function scope widgets"
 msgstr "函数作用域部件"
 
-#: C/index-in.docbook:5907
+#: index-in.docbook:5926
 msgid ""
 "If a programmer does not need a class scope widget, a function scope widget "
 "may also be used. The advantages to function scope over class scope are the "
@@ -10173,7 +10211,7 @@ msgstr ""
 "如果程序员不需要类作用域部件,那么也可以使用函数作用域部件。函数作用域相比于"
 "类作用域的优点是增加了数据的隐蔽性和隐藏了依赖。"
 
-#: C/index-in.docbook:5912
+#: index-in.docbook:5931
 #, no-wrap
 msgid ""
 "\n"
@@ -10192,11 +10230,11 @@ msgstr ""
 "  app-&gt;run();\n"
 "}\n"
 
-#: C/index-in.docbook:5923
+#: index-in.docbook:5942
 msgid "Dynamic allocation with new and delete"
 msgstr "使用new和delete进行动态分配"
 
-#: C/index-in.docbook:5933
+#: index-in.docbook:5952
 #, no-wrap
 msgid ""
 "\n"
@@ -10213,7 +10251,7 @@ msgstr ""
 "\n"
 "delete pButton;\n"
 
-#: C/index-in.docbook:5925
+#: index-in.docbook:5944
 msgid ""
 "Usually, the programmer will prefer to allow containers to automatically "
 "destroy their children by creating them using <function>Gtk::make_managed()</"
@@ -10232,11 +10270,11 @@ msgstr ""
 "让他们的父部件销毁它们,而不是手动执行动态内存分配。<_:programlisting-1/> 在"
 "这,程序员删除<varname>pButton</varname>以防止内存泄漏。"
 
-#: C/index-in.docbook:5947
+#: index-in.docbook:5966
 msgid "Managed Widgets"
 msgstr "托管部件"
 
-#: C/index-in.docbook:5949
+#: index-in.docbook:5968
 msgid ""
 "Alternatively, you can let a widget's container control when the widget is "
 "destroyed. In most cases, you want a widget to last only as long as the "
@@ -10252,11 +10290,11 @@ msgstr ""
 "<methodname>Gtk::Box::append()</methodname>这类的方法将其装入容器中。这样部件"
 "就会随着容器一并销毁。"
 
-#: C/index-in.docbook:5959
+#: index-in.docbook:5978
 msgid "Dynamic allocation with make_managed() and append()"
 msgstr "使用make_managed()和append()进行动态分配"
 
-#: C/index-in.docbook:5961
+#: index-in.docbook:5980
 msgid ""
 "<application>gtkmm</application> provides ways including the "
 "<function>make_managed()</function> function and <methodname>Gtk::Box::"
@@ -10267,7 +10305,7 @@ msgstr ""
 "函数和<methodname>Gtk::Box::append()</methodname>方法在内的用于简化创建和销毁"
 "部件的很多方法。这些部件的生命周期可以由其父部件进行管理。"
 
-#: C/index-in.docbook:5967
+#: index-in.docbook:5986
 msgid ""
 "Every widget except a top-level window must be added to a parent container "
 "in order to be displayed. The <function>manage()</function> function marks a "
@@ -10284,7 +10322,7 @@ msgstr ""
 "行管理的部件的原始方法是调用<function>manage()</function>,并将向其传入使用"
 "<literal>new</literal>表达式创建的动态分配的部件。"
 
-#: C/index-in.docbook:5977
+#: index-in.docbook:5996
 msgid ""
 "However, usually, when you create such a widget, you will already know that "
 "its parent container should be responsible for destroying it, In addition, "
@@ -10303,7 +10341,7 @@ msgstr ""
 "数,这个函数将两个步骤合并到了一起。这避免了让你编写现代C++风格不建议的带有"
 "<literal>new</literal>的代码,并更清楚的表达了创建托管部件的意图。"
 
-#: C/index-in.docbook:5988
+#: index-in.docbook:6007
 #, no-wrap
 msgid ""
 "\n"
@@ -10320,19 +10358,18 @@ msgstr ""
 "  append(*pButton); //add *pButton to MyContainer\n"
 "}\n"
 
-#: C/index-in.docbook:5995
+#: index-in.docbook:6014
 msgid ""
 "Now, when objects of type <classname>MyContainer</classname> are destroyed, "
 "the button will also be deleted. It is no longer necessary to delete "
 "<varname>pButton</varname> to free the button's memory; its deletion has "
 "been delegated to the <classname>MyContainer</classname> object."
 msgstr ""
-"现在,当你销毁<classname>MyContainer</classname>类型对"
-"象时,该按钮也被销毁。不再需要主动<literal>delete</literal><varname>pButton</"
-"varname>以释放其内存;对其的删除操作委托给了<classname>MyContainer</"
-"classname>对象。"
+"现在,当你销毁<classname>MyContainer</classname>类型对象时,该按钮也被销毁。"
+"不再需要主动<literal>delete</literal><varname>pButton</varname>以释放其内存;"
+"对其的删除操作委托给了<classname>MyContainer</classname>对象。"
 
-#: C/index-in.docbook:6002
+#: index-in.docbook:6021
 msgid ""
 "Note that if you never added the widget to any parent container, or you did "
 "but later <methodname>Gtk::Container::remove()</methodname>d it from said "
@@ -10347,7 +10384,7 @@ msgstr ""
 "<function>manage()</function>之前的状态,这通常意味着删除部件的责任被归还给了"
 "用户。"
 
-#: C/index-in.docbook:6010
+#: index-in.docbook:6029
 msgid ""
 "Of course, a top-level container will not be added to another container. The "
 "programmer is responsible for destroying the top-level container using one "
@@ -10358,11 +10395,11 @@ msgstr ""
 "级容器。例如,你的顶级窗口可能只是<function>main()</function>函数中的一个实"
 "例。"
 
-#: C/index-in.docbook:6022
+#: index-in.docbook:6041
 msgid "Shared resources"
 msgstr "共享资源"
 
-#: C/index-in.docbook:6024
+#: index-in.docbook:6043
 msgid ""
 "Some objects, such as <classname>Gdk::Pixbuf</classname>s and "
 "<classname>Pango::Font</classname>s, are obtained from a shared store. "
@@ -10378,7 +10415,7 @@ msgstr ""
 "智能指针<classname>Glib::RefPtr&lt;&gt;</classname>而不是要求你引用和解引用这"
 "些对象。开罗有自己的智能指针:<classname>Cairo::RefPtr&lt;&gt;</classname>。"
 
-#: C/index-in.docbook:6034
+#: index-in.docbook:6053
 msgid ""
 "Objects such as <classname>Gdk::Pixbuf</classname> can only be instantiated "
 "with a <methodname>create()</methodname> function. For instance,"
@@ -10386,7 +10423,7 @@ msgstr ""
 "诸如<classname>Gdk::Pixbuf</classname>之类的对象只能通过"
 "<methodname>create()</methodname>函数进行实例化。例如:"
 
-#: C/index-in.docbook:6038
+#: index-in.docbook:6057
 #, no-wrap
 msgid ""
 "\n"
@@ -10395,7 +10432,7 @@ msgstr ""
 "\n"
 "auto pixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 
-#: C/index-in.docbook:6042
+#: index-in.docbook:6061
 msgid ""
 "You have no way of getting a bare <classname>Gdk::Pixbuf</classname>. In the "
 "example, <varname>pixbuf</varname> is a smart pointer, so you can do this, "
@@ -10404,7 +10441,7 @@ msgstr ""
 "你无法暴露<classname>Gdk::Pixbuf</classname>对象。在示例中,<varname>pixbuf</"
 "varname>是一个智能指针,因此可以像正常指针一样执行此操作:"
 
-#: C/index-in.docbook:6047
+#: index-in.docbook:6066
 #, no-wrap
 msgid ""
 "\n"
@@ -10421,7 +10458,7 @@ msgstr ""
 "  width = pixbuf-&gt;get_width();\n"
 "}\n"
 
-#: C/index-in.docbook:6055
+#: index-in.docbook:6074
 msgid ""
 "When <varname>pixbuf</varname> goes out of scope an <methodname>unref()</"
 "methodname> will happen in the background and you don't need to worry about "
@@ -10432,7 +10469,7 @@ msgstr ""
 "methodname>,你无需为它担心。没有进行<literal>new</literal>因此也不需要进行"
 "<literal>delete</literal>。"
 
-#: C/index-in.docbook:6063
+#: index-in.docbook:6082
 #, no-wrap
 msgid ""
 "\n"
@@ -10441,7 +10478,7 @@ msgstr ""
 "\n"
 "auto pixbuf2 = pixbuf;\n"
 
-#: C/index-in.docbook:6061
+#: index-in.docbook:6080
 msgid ""
 "If you copy a <classname>RefPtr</classname>, for instance <_:"
 "programlisting-1/> , or if you pass it as a method argument or a return "
@@ -10454,35 +10491,35 @@ msgstr ""
 "做必要的引用以确保在最后一个<classname>RefPtr</classname>超出作用域之前该实例"
 "不会被销毁。"
 
-#: C/index-in.docbook:6071
+#: index-in.docbook:6090
 msgid ""
 "See the <link linkend=\"chapter-refptr\">appendix</link> for detailed "
 "information about RefPtr."
 msgstr ""
 "更多与RefPtr有关的信息,请参见<link linkend=\"chapter-refptr\">附录</link>。"
 
-#: C/index-in.docbook:6076
+#: index-in.docbook:6095
 msgid ""
 "Bjarne Stroustrup, \"The C++ Programming Language\" Forth Edition - section "
 "34.3"
 msgstr "Bjarne Stroustrup,《C++编程语言》第四版 第34章第3小节"
 
-#: C/index-in.docbook:6079
+#: index-in.docbook:6098
 msgid "Nicolai M. Josuttis, \"The C++ Standard Library\" - section 4.2"
 msgstr "Nicolai M. Josuttis,《C++标准库》第4章第2节"
 
-#: C/index-in.docbook:6072
+#: index-in.docbook:6091
 msgid ""
 "If you wish to learn more about smartpointers, you might look in these "
 "books: <_:itemizedlist-1/>"
 msgstr ""
 "如果你想了解与智能指针更多的有关信息,请阅读以下书籍:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:6090
+#: index-in.docbook:6109
 msgid "Glade and Gtk::Builder"
 msgstr "Glade和Gtk::Builder"
 
-#: C/index-in.docbook:6091
+#: index-in.docbook:6110
 msgid ""
 "Although you can use C++ code to instantiate and arrange widgets, this can "
 "soon become tedious and repetitive. And it requires a recompilation to show "
@@ -10498,23 +10535,23 @@ msgstr ""
 "<application>Gtk::Builder</application>API在运行时加载该XML文件,并获取特定名"
 "称部件实例的指针。"
 
-#: C/index-in.docbook:6104
+#: index-in.docbook:6123
 msgid "Less C++ code is required."
 msgstr "需要的C++代码更少。"
 
-#: C/index-in.docbook:6105
+#: index-in.docbook:6124
 msgid "UI changes can be seen more quickly, so UIs are able to improve."
 msgstr "可以更快的看到UI的更改,更便于改进UI。"
 
-#: C/index-in.docbook:6106
+#: index-in.docbook:6125
 msgid "Designers without programming skills can create and edit UIs."
 msgstr "没有编程技能的设计人员可以创建和编辑UI。"
 
-#: C/index-in.docbook:6101
+#: index-in.docbook:6120
 msgid "This has the following advantages: <_:orderedlist-1/>"
 msgstr "这具有以下优点:<_:orderedlist-1/>"
 
-#: C/index-in.docbook:6110
+#: index-in.docbook:6129
 msgid ""
 "You still need C++ code to deal with User Interface changes triggered by "
 "user actions, but using <application>Gtk::Builder</application> for the "
@@ -10523,11 +10560,11 @@ msgstr ""
 "你仍然需要编写C++代码以处理由用户操作触发的UI更改,但是将<application>Gtk::"
 "Builder</application>用于部件布局允许你更专注的实现该功能。"
 
-#: C/index-in.docbook:6117
+#: index-in.docbook:6136
 msgid "Loading the .glade file"
 msgstr "加载.glade文件"
 
-#: C/index-in.docbook:6122
+#: index-in.docbook:6141
 #, no-wrap
 msgid ""
 "\n"
@@ -10536,7 +10573,7 @@ msgstr ""
 "\n"
 "auto builder = Gtk::Builder::create_from_file(\"basic.glade\");\n"
 
-#: C/index-in.docbook:6118
+#: index-in.docbook:6137
 msgid ""
 "<classname>Gtk::Builder</classname> must be used via a <classname>Glib::"
 "RefPtr</classname>. Like all such classes, you need to use a "
@@ -10549,7 +10586,7 @@ msgstr ""
 "methodname>方法实例化它。例如:<_:programlisting-1/>这将实例化<filename>."
 "glade</filename>文件中定义的窗口。"
 
-#: C/index-in.docbook:6128
+#: index-in.docbook:6147
 msgid ""
 "To instantiate just one window, or just one of the child widgets, you can "
 "specify the name of a widget as the second parameter. For instance,"
@@ -10557,7 +10594,7 @@ msgstr ""
 "如果只想实例化一个窗口或实例化一个子部件,你可以将部件的名称指定为第二个参"
 "数。例如:"
 
-#: C/index-in.docbook:6130
+#: index-in.docbook:6149
 #, no-wrap
 msgid ""
 "\n"
@@ -10566,11 +10603,11 @@ msgstr ""
 "\n"
 "auto builder = Gtk::Builder::create_from_file(\"basic.glade\", \"treeview_products\");\n"
 
-#: C/index-in.docbook:6137
+#: index-in.docbook:6156
 msgid "Accessing widgets"
 msgstr "访问部件"
 
-#: C/index-in.docbook:6139
+#: index-in.docbook:6158
 msgid ""
 "To access a widget, for instance to <methodname>show()</methodname> a "
 "dialog, use the <methodname>get_widget()</methodname> method, providing the "
@@ -10583,7 +10620,7 @@ msgstr ""
 "在<application>Glade</application>的窗口属性中指定。如果找不到该部件或是部件"
 "的类型不对,则指针将被设为<literal>nullptr</literal>。"
 
-#: C/index-in.docbook:6146
+#: index-in.docbook:6165
 #, no-wrap
 msgid ""
 "\n"
@@ -10592,7 +10629,7 @@ msgstr ""
 "\n"
 "auto pDialog = builder-&gt;get_widget&lt;Gtk::Dialog&gt;(\"DialogBasic\");\n"
 
-#: C/index-in.docbook:6150
+#: index-in.docbook:6169
 msgid ""
 "<application>Gtk::Builder</application> checks for a null pointer, and "
 "checks that the widget is of the expected type, and will show warnings on "
@@ -10601,7 +10638,7 @@ msgstr ""
 "<application>Gtk::Builder</application>会进行空指针和部件类型检查,并在命令行"
 "上显示相关的警告。"
 
-#: C/index-in.docbook:6156
+#: index-in.docbook:6175
 msgid ""
 "Remember that you are not instantiating a widget with "
 "<methodname>get_widget()</methodname>, you are just obtaining a pointer to "
@@ -10617,7 +10654,7 @@ msgstr ""
 "例的指针。部件在函数<methodname>Gtk::Builder::create_from_file()</methodname>"
 "执行期间被实例化。"
 
-#: C/index-in.docbook:6165
+#: index-in.docbook:6184
 msgid ""
 "<methodname>get_widget()</methodname> returns child widgets that are "
 "<function>manage()</function>ed (see the <link linkend=\"chapter-memory"
@@ -10635,7 +10672,7 @@ msgstr ""
 "须在某个时候删除它们。<classname>Gtk::Builder</classname>的文档中有更多关于对"
 "不同类型的对象如何进行内存管理的介绍。"
 
-#: C/index-in.docbook:6175
+#: index-in.docbook:6194
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Builder.";
 "html\">Reference</ulink>"
@@ -10643,7 +10680,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Builder.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:6179
+#: index-in.docbook:6198
 msgid ""
 "This simple example shows how to load a <application>Glade</application> "
 "file at runtime and access the widgets with <application>Gtk::Builder</"
@@ -10652,7 +10689,7 @@ msgstr ""
 "这个简单示例展示了如何在运行时加载<application>Glade</application>文件并使用"
 "<application>Gtk::Builder</application>访问部件。"
 
-#: C/index-in.docbook:6184
+#: index-in.docbook:6203
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/builder/basic\">Source Code</ulink>"
@@ -10660,11 +10697,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/builder/basic\">源代码</ulink>"
 
-#: C/index-in.docbook:6191
+#: index-in.docbook:6210
 msgid "Using derived widgets"
 msgstr "使用派生部件"
 
-#: C/index-in.docbook:6192
+#: index-in.docbook:6211
 msgid ""
 "You can use <classname>Gtk::Builder</classname> and <application>Glade</"
 "application> to layout your own custom widgets derived from "
@@ -10678,13 +10715,12 @@ msgstr ""
 "这使得你的代码保持有序和封装性,将声明式表述与业务逻辑分离开来,避免你的大多"
 "数源代码都是在设置属性和装填容器。"
 
-#: C/index-in.docbook:6200
+#: index-in.docbook:6219
 msgid ""
 "Use <methodname>Gtk::Builder::get_widget_derived()</methodname> like so:"
-msgstr ""
-"像这样用<methodname>Gtk::Builder::get_widget_derived()</methodname>:"
+msgstr "像这样用<methodname>Gtk::Builder::get_widget_derived()</methodname>:"
 
-#: C/index-in.docbook:6202
+#: index-in.docbook:6221
 #, no-wrap
 msgid ""
 "\n"
@@ -10693,7 +10729,7 @@ msgstr ""
 "\n"
 "auto pDialog = Gtk::Builder::get_widget_derived&lt;DerivedDialog&gt;(builder, \"DialogDerived\");\n"
 
-#: C/index-in.docbook:6206
+#: index-in.docbook:6225
 msgid ""
 "Your derived class must have a constructor that takes a pointer to the "
 "underlying C type, and the <classname>Gtk::Builder</classname> instance. All "
@@ -10708,14 +10744,14 @@ msgstr ""
 "classname>(例如:<classname>Gtk::Dialog</classname>将<type>GtkDialog</type>"
 "别名为<classname>BaseObjectType</classname>)。"
 
-#: C/index-in.docbook:6213
+#: index-in.docbook:6232
 msgid ""
 "You must call the base class's constructor in the initialization list, "
 "providing the C pointer. For instance,"
 msgstr ""
 "你必须在初始化列表中调用基类的构造函数,并提供C指针。例如:"
 
-#: C/index-in.docbook:6217
+#: index-in.docbook:6236
 #, no-wrap
 msgid ""
 "\n"
@@ -10730,7 +10766,7 @@ msgstr ""
 "{\n"
 "}\n"
 
-#: C/index-in.docbook:6224
+#: index-in.docbook:6243
 msgid ""
 "You could then encapsulate the manipulation of the child widgets in the "
 "constructor of the derived class, maybe using <methodname>get_widget()</"
@@ -10741,7 +10777,7 @@ msgstr ""
 "<methodname>get_widget()</methodname>或<methodname>get_widget_derived()</"
 "methodname>。例如:"
 
-#: C/index-in.docbook:6229
+#: index-in.docbook:6248
 #, no-wrap
 msgid ""
 "\n"
@@ -10770,7 +10806,7 @@ msgstr ""
 "  }\n"
 "}\n"
 
-#: C/index-in.docbook:6247
+#: index-in.docbook:6266
 #, no-wrap
 msgid ""
 "\n"
@@ -10779,7 +10815,7 @@ msgstr ""
 "\n"
 "auto pDialog = Gtk::Builder::get_widget_derived&lt;DerivedDialog&gt;(builder, \"DialogDerived\", true);\n"
 
-#: C/index-in.docbook:6251
+#: index-in.docbook:6270
 #, no-wrap
 msgid ""
 "\n"
@@ -10800,7 +10836,7 @@ msgstr ""
 "  // ....\n"
 "}\n"
 
-#: C/index-in.docbook:6243
+#: index-in.docbook:6262
 msgid ""
 "It's possible to pass additional arguments from "
 "<methodname>get_widget_derived()</methodname> to the constructor of the "
@@ -10812,11 +10848,11 @@ msgstr ""
 "发给派生部件的构造函数。例如这样调用<methodname>get_widget_derived()</"
 "methodname>:<_:programlisting-1/>可以调用此构造函数:<_:programlisting-2/>"
 
-#: C/index-in.docbook:6263
+#: index-in.docbook:6282
 msgid "Gtk::Builder and Glib::Property"
 msgstr "Gtk::Builder和Glib::Property"
 
-#: C/index-in.docbook:6264
+#: index-in.docbook:6283
 msgid ""
 "If your derived widget uses <classname>Glib::Property</classname>, it "
 "becomes slightly more complicated. A derived widget that contains "
@@ -10838,7 +10874,7 @@ msgstr ""
 "methodname>所需的所有参数以及调用<classname>Glib::ObjectBase</classname>构造"
 "函数以注册<type>GType</type>的构造函数。"
 
-#: C/index-in.docbook:6275
+#: index-in.docbook:6294
 #, no-wrap
 msgid ""
 "\n"
@@ -10861,7 +10897,7 @@ msgstr ""
 "  // ....\n"
 "}\n"
 
-#: C/index-in.docbook:6285
+#: index-in.docbook:6304
 msgid ""
 "When using <application>gtkmm</application> with a version of "
 "<application>glibmm</application> from 2.62 onwards, it is possible also to "
@@ -10882,7 +10918,7 @@ msgstr ""
 "性,但这应该能通过使用<ulink url=\"https://developer.gnome.org/gladeui/";
 "stable/properties.html\">属性类定义</ulink>和声明一个新属性目录来实现。"
 
-#: C/index-in.docbook:6299
+#: index-in.docbook:6318
 msgid ""
 "This example shows how to load a <application>Glade</application> file at "
 "runtime and access the widgets via derived classes."
@@ -10890,7 +10926,7 @@ msgstr ""
 "本示例展示了如何在运行时加载<application>Glade</application>文件以及如何通过"
 "派生类访问部件。"
 
-#: C/index-in.docbook:6303
+#: index-in.docbook:6322
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/builder/derived\">Source Code</ulink>"
@@ -10898,11 +10934,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/builder/derived\">源代码</ulink>"
 
-#: C/index-in.docbook:6312
+#: index-in.docbook:6331
 msgid "Internationalization and Localization"
 msgstr "国际化和本地化"
 
-#: C/index-in.docbook:6314
+#: index-in.docbook:6333
 msgid ""
 "<application>gtkmm</application> applications can easily support multiple "
 "languages, including non-European languages such as Chinese and right-to-"
@@ -10915,7 +10951,7 @@ msgstr ""
 "<application>gtkmm</application>应用程序可以在运行时根据用户环境使用合适的语"
 "言。"
 
-#: C/index-in.docbook:6320
+#: index-in.docbook:6339
 msgid ""
 "You might not anticipate the need to support additional languages, but you "
 "can never rule it out. And it's easier to develop the application properly "
@@ -10924,7 +10960,7 @@ msgstr ""
 "你可能没有预料到需要支持其他语言,但你永远不能排除这种可能性。而且事先准备好"
 "支持多语言比后来改进要容易的多。"
 
-#: C/index-in.docbook:6326
+#: index-in.docbook:6345
 msgid ""
 "The process of writing source code that allows for translation is called "
 "<literal>internationalization</literal>, often abbreviated to <literal>i18n</"
@@ -10936,7 +10972,7 @@ msgstr ""
 "通常被缩写为<literal>i18n</literal>。而根据该源代码提供其他语言的翻译文本的过"
 "程<literal>Localization</literal>通常被简写为<literal>l10n</literal>。"
 
-#: C/index-in.docbook:6334
+#: index-in.docbook:6353
 msgid ""
 "The main activity in the internationalization process is finding strings "
 "seen by users and marking them for translation. You do not need to do it all "
@@ -10948,7 +10984,7 @@ msgstr ""
 "要一次性完成所有的操作 - 只要你的项目准备好了进行国际化无论你有多少个字符串被"
 "标记为可翻译都不会影响程序的正常运行。"
 
-#: C/index-in.docbook:6342
+#: index-in.docbook:6361
 msgid ""
 "String literals should be typed in the source code in English, but "
 "surrounded by a macro. The <application>gettext</application> (or intltool) "
@@ -10959,11 +10995,11 @@ msgstr ""
 "application>(或intltool)实用程序可以提取被标记的字符串进行翻译,并在运行时"
 "将其替换为翻译后的文本。"
 
-#: C/index-in.docbook:6350
+#: index-in.docbook:6369
 msgid "Preparing your project"
 msgstr "准备你的项目"
 
-#: C/index-in.docbook:6353
+#: index-in.docbook:6372
 msgid ""
 "In the instructions below we will assume that you will not be using "
 "<application>gettext</application> directly, but <application>intltool</"
@@ -10982,7 +11018,7 @@ msgstr ""
 "单详情、glade的GUI资源文件)中提取字符串写入到标准的<application>gettext</"
 "application><filename>.pot/.po</filename>文件中。"
 
-#: C/index-in.docbook:6364
+#: index-in.docbook:6383
 msgid ""
 "We also assume that you are using autotools (e.g. <application>automake</"
 "application> and <application>autoconf</application>) to build your project, "
@@ -10999,7 +11035,7 @@ msgstr ""
 "ulink>或与之类似的<literal>autogen.sh</literal>文件,在这里它负责初始化"
 "<application>intltool</application>。"
 
-#: C/index-in.docbook:6378
+#: index-in.docbook:6397
 msgid ""
 "An alternative to <application>gnome-common</application>'s <literal>autogen."
 "sh</literal> may look like this:"
@@ -11007,7 +11043,7 @@ msgstr ""
 "<application>gnome-common</application>的<literal>autogen.sh</literal>的替代"
 "方案可能如下所示:"
 
-#: C/index-in.docbook:6382
+#: index-in.docbook:6401
 #, no-wrap
 msgid ""
 "#! /bin/sh -e\n"
@@ -11028,7 +11064,7 @@ msgstr ""
 "intltoolize --copy --force --automake\n"
 "test -n \"$NOCONFIGURE\" || \"$srcdir/configure\" \"$@\""
 
-#: C/index-in.docbook:6391
+#: index-in.docbook:6410
 msgid ""
 "Create a sub-directory named <literal>po</literal> in your project's root "
 "directory. This directory will eventually contain all of your translations. "
@@ -11042,7 +11078,7 @@ msgstr ""
 "<literal>POTFILES.in</literal>的文件。通常做法是在<literal>po</literal>文件夹"
 "再创建一个<literal>ChangeLog</literal>文件以便翻译人员跟踪翻译更改。"
 
-#: C/index-in.docbook:6401
+#: index-in.docbook:6420
 msgid ""
 "<literal>LINGUAS</literal> contains an alphabetically sorted list of codes "
 "identifying the languages for which your program is translated (comment "
@@ -11057,7 +11093,7 @@ msgstr ""
 "文件。因此如果你的程序有德语和日语翻译,你的<literal>LINGUAS</literal>应如下"
 "所示:"
 
-#: C/index-in.docbook:6410
+#: index-in.docbook:6429
 #, no-wrap
 msgid ""
 "# keep this file sorted alphabetically, one language code per line\n"
@@ -11068,7 +11104,7 @@ msgstr ""
 "de\n"
 "ja"
 
-#: C/index-in.docbook:6413
+#: index-in.docbook:6432
 msgid ""
 "(In addition, you'd have the files <literal>ja.po</literal> and <literal>de."
 "po</literal> in your <literal>po</literal> directory which contain the "
@@ -11077,7 +11113,7 @@ msgstr ""
 "(此外,你的<literal>po</literal>文件夹必须有包含德语和日语翻译的<literal>ja."
 "po</literal>和<literal>de.po</literal>文件)"
 
-#: C/index-in.docbook:6420
+#: index-in.docbook:6439
 msgid ""
 "<literal>POTFILES.in</literal> is a list of paths to all files which contain "
 "strings marked up for translation, starting from the project root directory. "
@@ -11091,7 +11127,7 @@ msgstr ""
 "中,其中有两个文件包含有需要被翻译的字符串,则你的<literal>POTFILES.in</"
 "literal>可能如下所示:"
 
-#: C/index-in.docbook:6429
+#: index-in.docbook:6448
 #, no-wrap
 msgid ""
 "src/main.cc\n"
@@ -11100,7 +11136,7 @@ msgstr ""
 "src/main.cc\n"
 "src/other.cc"
 
-#: C/index-in.docbook:6432
+#: index-in.docbook:6451
 msgid ""
 "If you are using <application>gettext</application> directly, you can only "
 "mark strings for translation if they are in source code file. However, if "
@@ -11120,7 +11156,7 @@ msgstr ""
 "了应用程序UI,则你还需要将<filename>.glade</filename>添加到你的"
 "<literal>POTFILES.in</literal>列表中。"
 
-#: C/index-in.docbook:6445
+#: index-in.docbook:6464
 msgid ""
 "Now that there is a place to put your translations, you need to initialize "
 "<application>intltool</application> and <application>gettext</application>. "
@@ -11131,7 +11167,7 @@ msgstr ""
 "<application>gettext</application>。将一下代码添加到你的<literal>configure."
 "ac</literal>,将\"programname\"替换为你的程序的名称:"
 
-#: C/index-in.docbook:6452
+#: index-in.docbook:6471
 #, no-wrap
 msgid ""
 "IT_PROG_INTLTOOL([0.35.0])\n"
@@ -11158,7 +11194,7 @@ msgstr ""
 "PROGRAMNAME_LOCALEDIR=[${datadir}/locale]\n"
 "AC_SUBST(PROGRAMNAME_LOCALEDIR)"
 
-#: C/index-in.docbook:6464
+#: index-in.docbook:6483
 msgid ""
 "This <varname>PROGRAMNAME_LOCALEDIR</varname> variable will be used later in "
 "the <literal>Makefile.am</literal> file, to define a macro that will be used "
@@ -11168,7 +11204,7 @@ msgstr ""
 "literal>文件使用。以定义在源代码中初始化<application>gettext</application>时"
 "将用到的宏。"
 
-#: C/index-in.docbook:6471
+#: index-in.docbook:6490
 msgid ""
 "<literal>AM_GLIB_GNU_GETTEXT</literal> has been an alternative to "
 "<literal>AM_GNU_GETTEXT</literal> and <literal>AM_GNU_GETTEXT_VERSION</"
@@ -11179,7 +11215,7 @@ msgstr ""
 "<literal>AM_GNU_GETTEXT_VERSION</literal>替代,且"
 "<literal>AM_GLIB_GNU_GETTEXT</literal>已被弃用,不应在任何新代码中使用。"
 
-#: C/index-in.docbook:6482
+#: index-in.docbook:6501
 msgid ""
 "Add <literal>po</literal> to the <literal>SUBDIRS</literal> variable. "
 "Without this, your translations won't get built and installed when you build "
@@ -11188,7 +11224,7 @@ msgstr ""
 "将<literal>po</literal>添加到<literal>SUBDIRS</literal>变量中。如果没有这个,"
 "在构建程序时不会生成和安装翻译。"
 
-#: C/index-in.docbook:6489
+#: index-in.docbook:6508
 #, no-wrap
 msgid ""
 "INTLTOOL_FILES = intltool-extract.in \\\n"
@@ -11199,11 +11235,11 @@ msgstr ""
 "                 intltool-merge.in \\\n"
 "                 intltool-update.in"
 
-#: C/index-in.docbook:6487
+#: index-in.docbook:6506
 msgid "Define <literal>INTLTOOL_FILES</literal> as: <_:programlisting-1/>"
 msgstr "定义<literal>INTLTOOL_FILES</literal>为:<_:programlisting-1/>"
 
-#: C/index-in.docbook:6495
+#: index-in.docbook:6514
 msgid ""
 "Add <literal>INTLTOOL_FILES</literal> to the <literal>EXTRA_DIST</literal> "
 "list of files. This ensures that when you do a <command>make dist</command>, "
@@ -11212,7 +11248,7 @@ msgstr ""
 "将<literal>INTLTOOL_FILES</literal>添加到<literal>EXTRA_DIST</literal>文件列"
 "表。这样可以确保执行<command>make dist</command>时这些文件包含在源压缩包中。"
 
-#: C/index-in.docbook:6505
+#: index-in.docbook:6524
 #, no-wrap
 msgid ""
 "DISTCLEANFILES = ... intltool-extract \\\n"
@@ -11225,11 +11261,11 @@ msgstr ""
 "                 intltool-update \\\n"
 "                 po/.intltool-merge-cache"
 
-#: C/index-in.docbook:6503
+#: index-in.docbook:6522
 msgid "Update your <literal>DISTCLEANFILES</literal>: <_:programlisting-1/>"
 msgstr "更新你的<literal>DISTCLEANFILES</literal>:<_:programlisting-1/>"
 
-#: C/index-in.docbook:6515
+#: index-in.docbook:6534
 #, no-wrap
 msgid ""
 "desktopdir = $(datadir)/applications\n"
@@ -11242,17 +11278,17 @@ msgstr ""
 "desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)\n"
 "@INTLTOOL_DESKTOP_RULE@"
 
-#: C/index-in.docbook:6512
+#: index-in.docbook:6531
 msgid ""
 "Depending on the types of files that contain translatable strings, add code "
 "such as <_:programlisting-1/>"
 msgstr "根据包含可翻译字符串的文件类型,添加以下代码:<_:programlisting-1/>"
 
-#: C/index-in.docbook:6478
+#: index-in.docbook:6497
 msgid "In the top-level Makefile.am: <_:itemizedlist-1/>"
 msgstr "在顶层<literal>Makefile.am</literal>中:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:6524
+#: index-in.docbook:6543
 msgid ""
 "In your <literal>src/Makefile.am</literal>, update your "
 "<literal>AM_CPPFLAGS</literal> to add the following preprocessor macro "
@@ -11261,22 +11297,22 @@ msgstr ""
 "在你的<literal>src/Makefile.am</literal>中,更新你的<literal>AM_CPPFLAGS</"
 "literal>以添加以下预处理宏定义:"
 
-#: C/index-in.docbook:6529
+#: index-in.docbook:6548
 #, no-wrap
 msgid "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
 msgstr "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
 
-#: C/index-in.docbook:6530
+#: index-in.docbook:6549
 msgid ""
 "This macro will be used when you initialize <literal>gettext</literal> in "
 "your source code."
 msgstr "在你的源代码中初始化<literal>gettext</literal>时将使用这个宏。"
 
-#: C/index-in.docbook:6537
+#: index-in.docbook:6556
 msgid "Marking strings for translation"
 msgstr "标记要翻译的字符串"
 
-#: C/index-in.docbook:6539
+#: index-in.docbook:6558
 msgid ""
 "String literals should be typed in the source code in English, but they "
 "should be surrounded by a call to the <function>gettext()</function> "
@@ -11287,7 +11323,7 @@ msgstr ""
 "function>函数的调用中。这些字符串将被提取以进行翻译,并且在运行时翻译可以替代"
 "原始的英文字符串。"
 
-#: C/index-in.docbook:6547
+#: index-in.docbook:6566
 msgid ""
 "The <application>GNU gettext</application> package allows you to mark "
 "strings in source code, extract those strings for translation, and use the "
@@ -11296,17 +11332,17 @@ msgstr ""
 "<application>GNU gettext</application>允许你标记源代码中的字符串,提取这些字"
 "符串进行翻译,并在你的应用程序中使用翻译好的字符串。"
 
-#: C/index-in.docbook:6559
+#: index-in.docbook:6578
 #, no-wrap
 msgid "display_message(\"Getting ready for i18n.\");"
 msgstr "display_message(\"Getting ready for i18n.\");"
 
-#: C/index-in.docbook:6561
+#: index-in.docbook:6580
 #, no-wrap
 msgid "display_message(_(\"Getting ready for i18n.\"));"
 msgstr "display_message(_(\"Getting ready for i18n.\"));"
 
-#: C/index-in.docbook:6553
+#: index-in.docbook:6572
 msgid ""
 "However, <application>Glib</application> defines <function>gettext()</"
 "function> support macros which are shorter wrappers in an easy-to-use form. "
@@ -11318,7 +11354,7 @@ msgstr ""
 "些宏更为简单易用,要使用这些宏请<literal>#include &lt;glibmm/i18n.h&gt;</"
 "literal>然后将:<_:programlisting-1/>替换为:<_:programlisting-2/>"
 
-#: C/index-in.docbook:6564
+#: index-in.docbook:6583
 msgid ""
 "For reference, it is possible to generate a file which contains all strings "
 "which appear in your code, even if they are not marked for translation, "
@@ -11330,12 +11366,12 @@ msgstr ""
 "名与行号引用的文件作为参考。要生成名为<literal>my-strings</literal>的文件,请"
 "在源代码目录执行以下命令:"
 
-#: C/index-in.docbook:6573
+#: index-in.docbook:6592
 #, no-wrap
 msgid "xgettext -a -o my-strings --omit-header *.cc *.h"
 msgstr "xgettext -a -o my-strings --omit-header *.cc *.h"
 
-#: C/index-in.docbook:6575
+#: index-in.docbook:6594
 msgid ""
 "Finally, to let your program use the translation for the current locale, add "
 "this code to the beginning of your <filename>main.cc</filename> file, to "
@@ -11344,7 +11380,7 @@ msgstr ""
 "最后,要让你的程序使用当前环境的翻译,请将以下代码添加到你的<filename>main."
 "cc</filename>文件的开头,以初始化<function>gettext()</function>。"
 
-#: C/index-in.docbook:6580
+#: index-in.docbook:6599
 #, no-wrap
 msgid ""
 "bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR);\n"
@@ -11355,11 +11391,11 @@ msgstr ""
 "bind_textdomain_codeset(GETTEXT_PACKAGE, \"UTF-8\");\n"
 "textdomain(GETTEXT_PACKAGE);"
 
-#: C/index-in.docbook:6585
+#: index-in.docbook:6604
 msgid "How gettext works"
 msgstr "gettext如何工作"
 
-#: C/index-in.docbook:6587
+#: index-in.docbook:6606
 msgid ""
 "The <application>intltool-update</application> or <application>xgettext</"
 "application> script extracts the strings and puts them in a "
@@ -11381,7 +11417,7 @@ msgstr ""
 "application>脚本重新生成的<filename>.pot</filename>文件更新"
 "<filename>localename.po</filename>文件。"
 
-#: C/index-in.docbook:6601
+#: index-in.docbook:6620
 msgid ""
 "At install time, the <filename>.po</filename> files are converted to a "
 "binary format (with the extension <filename>.mo</filename>) and placed in a "
@@ -11392,7 +11428,7 @@ msgstr ""
 "mo</filename>),并将其放置于系统所有的区域设置文件夹中,例如<filename>/usr/"
 "share/locale/</filename>。"
 
-#: C/index-in.docbook:6608
+#: index-in.docbook:6627
 msgid ""
 "When the application runs, the <application>gettext</application> library "
 "checks the system-wide directory to see if there is a <filename>.mo</"
@@ -11408,11 +11444,11 @@ msgstr ""
 "后在程序到达<literal>gettext</literal>调用时,它将从中寻找特定字符串的翻译,"
 "如果未找到则使用原始字符串。"
 
-#: C/index-in.docbook:6620
+#: index-in.docbook:6639
 msgid "Testing and adding translations"
 msgstr "测试和添加翻译"
 
-#: C/index-in.docbook:6622
+#: index-in.docbook:6641
 msgid ""
 "To convince yourself that you've done well, you may wish to add a "
 "translation for a new locale. In order to do that, go to the <filename>po</"
@@ -11421,12 +11457,12 @@ msgstr ""
 "为了说服自己做得很好,你可能希望为新的语言环境添加翻译。为此请转到项目的"
 "<filename>po</filename>子文件夹并执行以下命令:"
 
-#: C/index-in.docbook:6628
+#: index-in.docbook:6647
 #, no-wrap
 msgid "intltool-update --pot"
 msgstr "intltool-update --pot"
 
-#: C/index-in.docbook:6630
+#: index-in.docbook:6649
 msgid ""
 "That will create a file named <filename>programname.pot</filename>. Now copy "
 "that file to <filename>languagecode.po</filename>, such as <filename>de.po</"
@@ -11444,7 +11480,7 @@ msgstr ""
 "留了空间。请确保将<filename>.po</filename>文件的编码设置(在标头中指定,但也"
 "指定其内容的编码)为了<literal>UTF-8</literal>。"
 
-#: C/index-in.docbook:6643
+#: index-in.docbook:6662
 msgid ""
 "It's possible that certain strings will be marked as <literal>fuzzy</"
 "literal> in the <filename>.po</filename> file. These translations will not "
@@ -11456,11 +11492,11 @@ msgstr ""
 "<literal>fuzzy</literal>标记删除即可(通常该标记意味着翻译需要更新,不检查翻"
 "译直接删除标记是不对的)。"
 
-#: C/index-in.docbook:6653
+#: index-in.docbook:6672
 msgid "Resources"
 msgstr "资源"
 
-#: C/index-in.docbook:6661
+#: index-in.docbook:6680
 msgid ""
 "<ulink url=\"https://wiki.gnome.org/TranslationProject/DevGuidelines\";> L10N "
 "Guidelines for Developers</ulink>"
@@ -11468,7 +11504,7 @@ msgstr ""
 "<ulink url=\"https://wiki.gnome.org/TranslationProject/DevGuidelines\";>本地化"
 "开发人员指南</ulink>"
 
-#: C/index-in.docbook:6668
+#: index-in.docbook:6687
 msgid ""
 "<ulink url=\"http://bazaar.launchpad.net/~intltool/intltool/trunk/view/head:/";
 "README\">Intltool README</ulink>"
@@ -11476,7 +11512,7 @@ msgstr ""
 "<ulink url=\"http://bazaar.launchpad.net/~intltool/intltool/trunk/view/head:/";
 "README\">Intltool自述文件</ulink>"
 
-#: C/index-in.docbook:6674
+#: index-in.docbook:6693
 msgid ""
 "<ulink url=\"https://wiki.gnome.org/TranslationProject/GitHowTo\";>How to use "
 "Git for GNOME translators</ulink>"
@@ -11484,7 +11520,7 @@ msgstr ""
 "<ulink url=\"https://wiki.gnome.org/TranslationProject/GitHowTo\";>GNOME译者如"
 "何使用Git</ulink>"
 
-#: C/index-in.docbook:6680
+#: index-in.docbook:6699
 msgid ""
 "<ulink url=\"http://www.gnu.org/software/gettext/manual/gettext.html";
 "\">gettext manual</ulink>"
@@ -11492,7 +11528,7 @@ msgstr ""
 "<ulink url=\"http://www.gnu.org/software/gettext/manual/gettext.html";
 "\">gettext手册</ulink>"
 
-#: C/index-in.docbook:6686
+#: index-in.docbook:6705
 msgid ""
 "<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gtkmm_hello/";
 "\"><literal>gtkmm_hello</literal> example package</ulink>"
@@ -11500,7 +11536,7 @@ msgstr ""
 "<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gtkmm_hello/";
 "\"><literal>gtkmm_hello</literal>示例包</ulink>"
 
-#: C/index-in.docbook:6692
+#: index-in.docbook:6711
 msgid ""
 "<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gnomemm_hello/";
 "\"><literal>gnomemm_hello</literal> example package</ulink>"
@@ -11508,17 +11544,17 @@ msgstr ""
 "<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gnomemm_hello/";
 "\"><literal>gnomemm_hello</literal>示例包</ulink>"
 
-#: C/index-in.docbook:6655
+#: index-in.docbook:6674
 msgid ""
 "More information about what lies behind the internationalization and "
 "localization process is presented and demonstrated in: <_:itemizedlist-1/>"
 msgstr "更多与国际化与本地化有关的信息,请参阅以下内容:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:6703
+#: index-in.docbook:6722
 msgid "Expecting UTF8"
 msgstr "期望使用UTF8"
 
-#: C/index-in.docbook:6704
+#: index-in.docbook:6723
 msgid ""
 "A properly internationalized application will not make assumptions about the "
 "number of bytes in a character. That means that you shouldn't use pointer "
@@ -11531,7 +11567,7 @@ msgstr ""
 "<function>strlen()</function>这样的与字符串有关的标准C函数,因为他们都对字符"
 "的字节数做了假设。"
 
-#: C/index-in.docbook:6711
+#: index-in.docbook:6730
 msgid ""
 "However, you probably already avoid bare char* arrays and pointer arithmetic "
 "by using <classname>std::string</classname>, so you just need to start using "
@@ -11544,11 +11580,11 @@ msgstr ""
 "换成使用<classname>Glib::ustring</classname>即可。更多详情请参阅<link "
 "linkend=\"sec-basics-ustring\">Glib::ustring基础</link>章节。"
 
-#: C/index-in.docbook:6720
+#: index-in.docbook:6739
 msgid "Glib::ustring and std::iostreams"
 msgstr "Glib::ustring和std::iostreams"
 
-#: C/index-in.docbook:6722
+#: index-in.docbook:6741
 msgid ""
 "Unfortunately, the integration with the standard iostreams is not completely "
 "foolproof. <application>gtkmm</application> converts <classname>Glib::"
@@ -11580,7 +11616,7 @@ msgstr ""
 "<classname>ostringstream</classname>中接受<classname>std::string</"
 "classname>:"
 
-#: C/index-in.docbook:6738
+#: index-in.docbook:6757
 #, no-wrap
 msgid ""
 "std::locale::global(std::locale(\"\")); // Set the global locale to the user's preferred locale.\n"
@@ -11597,21 +11633,21 @@ msgstr ""
 "output &lt;&lt; percentage &lt;&lt; \" % done\";\n"
 "label-&gt;set_text(Glib::locale_to_utf8(output.str()));"
 
-#: C/index-in.docbook:6749
+#: index-in.docbook:6768
 msgid "Pitfalls"
 msgstr "陷阱"
 
-#: C/index-in.docbook:6751
+#: index-in.docbook:6770
 msgid ""
 "There are a few common mistakes that you would discover eventually yourself. "
 "But this section might help you to avoid them."
 msgstr "有几个你最终会自己发现的错误。但本小节可能能帮助你避免它们。"
 
-#: C/index-in.docbook:6754
+#: index-in.docbook:6773
 msgid "Same strings, different semantics"
 msgstr "不同语义的同一字符串。"
 
-#: C/index-in.docbook:6756
+#: index-in.docbook:6775
 msgid ""
 "Sometimes two English strings are identical but have different meanings in "
 "different contexts, so they would probably not be identical when translated. "
@@ -11620,7 +11656,7 @@ msgstr ""
 "有时,两个英文字符串是相同的但是在不同的上下文中有不同的含义,因此他们的译文"
 "不一定相同。此时用英文字符串作为查找键会引起问题。"
 
-#: C/index-in.docbook:6760
+#: index-in.docbook:6779
 msgid ""
 "In these cases, you should add extra characters to the strings. For "
 "instance, use <literal>\"jumps[noun]\"</literal> and <literal>"
@@ -11636,7 +11672,7 @@ msgstr ""
 "离。如果你添加了额外的字符,你还应该在调用<function>gettext</function>之前为"
 "译者添加注释。这样的注释将被显示于<filename>.po</filename>中。例如:"
 
-#: C/index-in.docbook:6769
+#: index-in.docbook:6788
 #, no-wrap
 msgid ""
 "// note to translators: don't translate the \"[noun]\" part - it is\n"
@@ -11647,7 +11683,7 @@ msgstr ""
 "// just here to distinguish the string from another \"jumps\" string\n"
 "text = strip(gettext(\"jumps[noun]\"), \"[noun]\");"
 
-#: C/index-in.docbook:6773
+#: index-in.docbook:6792
 msgid ""
 "If you use <application>Glib</application>'s support macros, it's easier. "
 "Use <function>C_()</function> instead of <function>_()</function>. For "
@@ -11656,16 +11692,16 @@ msgstr ""
 "如果你使用<application>Glib</application>宏,将会更为方便。你只需要使用"
 "<function>C_()</function>替换<function>_()</function>。例如:"
 
-#: C/index-in.docbook:6777
+#: index-in.docbook:6796
 #, no-wrap
 msgid "GLib::ustring text(C_(\"noun\", \"jumps\"));"
 msgstr "GLib::ustring text(C_(\"noun\", \"jumps\"));"
 
-#: C/index-in.docbook:6782
+#: index-in.docbook:6801
 msgid "Composition of strings"
 msgstr "合成字符串"
 
-#: C/index-in.docbook:6784
+#: index-in.docbook:6803
 msgid ""
 "C programmers use <function>sprintf()</function> to compose and concatenate "
 "strings. C++ favours streams, but unfortunately, this approach makes "
@@ -11677,11 +11713,11 @@ msgstr ""
 "的是,使用这种方法生成的字符串将给翻译带来困难,因为文本被分成了多个片段,译"
 "者必须分开翻译多个片段而不能进行重新排列,这会导致很多字符串无法被正确翻译。"
 
-#: C/index-in.docbook:6791
+#: index-in.docbook:6810
 msgid "For instance, this code would be problematic:"
 msgstr "例如,此代码将会出现问题:"
 
-#: C/index-in.docbook:6793
+#: index-in.docbook:6812
 #, no-wrap
 msgid ""
 "std::cout &lt;&lt; _(\"Current amount: \") &lt;&lt; amount\n"
@@ -11694,7 +11730,7 @@ msgstr ""
 "\n"
 "label.set_text(_(\"Really delete \") + filename + _(\" now?\"));"
 
-#: C/index-in.docbook:6798
+#: index-in.docbook:6817
 msgid ""
 "So you should either avoid this situation or use <ulink url=\"http://";
 "developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.html"
@@ -11705,7 +11741,7 @@ msgstr ""
 "glibmm/unstable/classGlib_1_1ustring.html\"><function>Glib::ustring::"
 "compose()</function></ulink>以支持如下所示的语法:"
 
-#: C/index-in.docbook:6803
+#: index-in.docbook:6822
 #, no-wrap
 msgid ""
 "std::cout &lt;&lt; Glib::ustring::compose(\n"
@@ -11718,11 +11754,11 @@ msgstr ""
 "\n"
 "label.set_text(Glib::ustring::compose(_(\"Really delete %1 now?\"), filename));"
 
-#: C/index-in.docbook:6810
+#: index-in.docbook:6829
 msgid "Assuming the displayed size of strings"
 msgstr "假设显示字符串所需的空间"
 
-#: C/index-in.docbook:6812
+#: index-in.docbook:6831
 msgid ""
 "You never know how much space a string will take on screen when translated. "
 "It might very possibly be twice the size of the original English string. "
@@ -11733,11 +11769,11 @@ msgstr ""
 "英文字符串的两倍甚至更多。幸运的是 <application>gtkmm</application>的多数部件"
 "都能在运行时自动扩展到需要的尺寸。"
 
-#: C/index-in.docbook:6816
+#: index-in.docbook:6835
 msgid "Unusual words"
 msgstr "\"黑话\""
 
-#: C/index-in.docbook:6818
+#: index-in.docbook:6837
 msgid ""
 "You should avoid cryptic abbreviations, slang, or jargon. They are usually "
 "difficult to translate, and are often difficult for even native speakers to "
@@ -11747,11 +11783,11 @@ msgstr ""
 "译,甚至将该语言作为母语的译者也无法理解。例如,最好使用\"application\"而不是"
 "\"app\""
 
-#: C/index-in.docbook:6824
+#: index-in.docbook:6843
 msgid "Using non-ASCII characters in strings"
 msgstr "在字符串中使用非ASCII字符"
 
-#: C/index-in.docbook:6826
+#: index-in.docbook:6845
 msgid ""
 "Currently, <application>gettext</application> does not support non-ASCII "
 "characters (i.e. any characters with a code above 127) in source code. For "
@@ -11760,7 +11796,7 @@ msgstr ""
 "当前,<application>gettext</application>并不支持在源代码中使用非ASCII字符。例"
 "如,你不能使用版权标志(©)"
 
-#: C/index-in.docbook:6832
+#: index-in.docbook:6851
 msgid ""
 "To work around this, you could write a comment in the source code just "
 "before the string, telling the translators to use the special character if "
@@ -11771,11 +11807,11 @@ msgstr ""
 "要解决这个问题你可以使用注释提醒译者可以使用他们语言中可用的特殊字符。对于英"
 "语用户你可以在美国英语<filename>en_US.po</filename>翻译中使用特殊字符。"
 
-#: C/index-in.docbook:6840
+#: index-in.docbook:6859
 msgid "Getting help with translations"
 msgstr "获取翻译帮助"
 
-#: C/index-in.docbook:6842
+#: index-in.docbook:6861
 msgid ""
 "If your program is free software, there is a whole <literal>GNOME</literal> "
 "subproject devoted to helping you make translations, the <ulink url="
@@ -11786,7 +11822,7 @@ msgstr ""
 "子项目:<ulink url=\"https://wiki.gnome.org/TranslationProject/";
 "\"><literal>GNOME</literal>翻译项目</ulink>。"
 
-#: C/index-in.docbook:6847
+#: index-in.docbook:6866
 msgid ""
 "The way it works is that you upload your source code to a git repository "
 "where translators can access it, then contact the gnome-i18n mailing list "
@@ -11797,7 +11833,7 @@ msgstr ""
 "gnome-i18n请求将你的程序添加到<ulink url=\"http://l10n.gnome.org/module/\";>待"
 "翻译模块列表</ulink>中。"
 
-#: C/index-in.docbook:6852
+#: index-in.docbook:6871
 msgid ""
 "Then you make sure you update the file <filename>POTFILES.in</filename> in "
 "the <filename>po/</filename> subdirectory (<command>intltool-update -m</"
@@ -11815,7 +11851,7 @@ msgstr ""
 "以及程序的受欢迎程度,译者将逐渐向你提交<filename>languagename.po</filename>"
 "文件。"
 
-#: C/index-in.docbook:6864
+#: index-in.docbook:6883
 msgid ""
 "Note that most language teams only consist of 1-3 persons, so if your "
 "program contains a lot of strings, it might last a while before anyone has "
@@ -11828,11 +11864,11 @@ msgstr ""
 "串,则可能需要很长时间才有译者查看它。此外,大多数译者都不想浪费时间,因此如"
 "果他们认为你的项目质量很低,他们可能不会想为你提供翻译。"
 
-#: C/index-in.docbook:6876 C/index-in.docbook:6947
+#: index-in.docbook:6895 index-in.docbook:6966
 msgid "Custom Widgets"
 msgstr "自定义部件"
 
-#: C/index-in.docbook:6878
+#: index-in.docbook:6897
 msgid ""
 "<application>gtkmm</application> makes it very easy to derive new widgets by "
 "inheriting from an existing widget class, either by deriving from a "
@@ -11845,11 +11881,11 @@ msgstr ""
 "向其中添加子部件、从单项部件派生并修改其行为等手段派生新的部件。但有时你会发"
 "现找不到合适的起点。在这种情况下你可以从头实现部件。"
 
-#: C/index-in.docbook:6885
+#: index-in.docbook:6904
 msgid "Custom Containers"
 msgstr "自定义容器"
 
-#: C/index-in.docbook:6889
+#: index-in.docbook:6908
 msgid ""
 "<methodname>get_request_mode_vfunc()</methodname>: Return what <literal>Gtk::"
 "SizeRequestMode</literal> is preferred by the container."
@@ -11857,14 +11893,14 @@ msgstr ""
 "<methodname>get_request_mode_vfunc()</methodname>:返回容器的<literal>Gtk::"
 "SizeRequestMode</literal>偏好。"
 
-#: C/index-in.docbook:6890
+#: index-in.docbook:6909
 msgid ""
 "<methodname>measure_vfunc()</methodname>: Calculate the minimum and natural "
 "width or height of the container."
 msgstr ""
 "<methodname>measure_vfunc()</methodname>:返回容器的最小自然宽度或高度。"
 
-#: C/index-in.docbook:6891
+#: index-in.docbook:6910
 msgid ""
 "<methodname>on_size_allocate()</methodname>: Position the child widgets, "
 "given the height and width that the container has actually been given."
@@ -11872,7 +11908,7 @@ msgstr ""
 "<methodname>on_size_allocate()</methodname>:根据容器实际宽度和高度定位子部"
 "件。"
 
-#: C/index-in.docbook:6886
+#: index-in.docbook:6905
 msgid ""
 "When deriving a custom container widget directly from <classname>Gtk::"
 "Widget</classname>, you should override the following virtual methods: <_:"
@@ -11881,7 +11917,7 @@ msgstr ""
 "直接从<classname>Gtk::Widget</classname>派生自定义容器部件时,应重写一下虚方"
 "法:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:6895
+#: index-in.docbook:6914
 msgid ""
 "The <methodname>get_request_mode_vfunc()</methodname>, "
 "<methodname>measure_vfunc()</methodname>, and "
@@ -11908,7 +11944,7 @@ msgstr ""
 "这个结果确保部件获得足够的空间。通过对每个部件的父部件进行检查最终确认顶级窗"
 "口的大小。"
 
-#: C/index-in.docbook:6912
+#: index-in.docbook:6931
 msgid ""
 "You are not guaranteed to get the <literal>Gtk::SizeRequestMode</literal> "
 "that you request. Therefore <methodname>measure_vfunc()</methodname> must "
@@ -11923,7 +11959,7 @@ msgstr ""
 "<methodname>Gtk::Widget::measure()</methodname>的描述可能比查看"
 "<methodname>measure_vfunc()</methodname>的文档更好。"
 
-#: C/index-in.docbook:6919
+#: index-in.docbook:6938
 msgid ""
 "<methodname>on_size_allocate()</methodname> receives the actual height and "
 "width that the parent container has decided to give to your widget. This "
@@ -11938,7 +11974,7 @@ msgstr ""
 "以选择忽略多余的空间留出一个空白区域,或者选择扩展子部件以填充该空间,或者是"
 "选择扩展部件之间的填充。"
 
-#: C/index-in.docbook:6930
+#: index-in.docbook:6949
 msgid ""
 "This example implements a container with two child widgets, one above the "
 "other. Of course, in this case it would be far simpler just to use a "
@@ -11948,11 +11984,11 @@ msgstr ""
 "使用垂直<classname>Gtk::Box</classname>或<classname>Gtk::Grid</classname>会更"
 "简单。"
 
-#: C/index-in.docbook:6935
+#: index-in.docbook:6954
 msgid "Custom Container"
 msgstr "自定义容器"
 
-#: C/index-in.docbook:6941
+#: index-in.docbook:6960
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/custom/custom_container/\">Source Code</ulink>"
@@ -11960,7 +11996,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/custom/custom_container/\">源代码</ulink>"
 
-#: C/index-in.docbook:6948
+#: index-in.docbook:6967
 msgid ""
 "By deriving directly from <classname>Gtk::Widget</classname> you can do all "
 "the drawing for your widget directly, instead of just arranging child "
@@ -11971,7 +12007,7 @@ msgstr ""
 "而不仅仅是排列子部件。例如:<classname>Gtk::Label</classname>不需要使用其他部"
 "件即可绘制标签文本。"
 
-#: C/index-in.docbook:6959
+#: index-in.docbook:6978
 msgid ""
 "<methodname>get_request_mode_vfunc()</methodname>: (optional) Return what "
 "<literal>Gtk::SizeRequestMode</literal> is preferred by the widget."
@@ -11979,14 +12015,14 @@ msgstr ""
 "<methodname>get_request_mode_vfunc()</methodname>:覆写此虚函数是可选的,返回"
 "此部件的<literal>Gtk::SizeRequestMode</literal>偏好。"
 
-#: C/index-in.docbook:6960
+#: index-in.docbook:6979
 msgid ""
 "<methodname>measure_vfunc()</methodname>: Calculate the minimum and natural "
 "width or height of the widget."
 msgstr ""
 "<methodname>measure_vfunc()</methodname>:计算此部件的最小自然高度或宽度。"
 
-#: C/index-in.docbook:6961
+#: index-in.docbook:6980
 msgid ""
 "<methodname>on_size_allocate()</methodname>: Position the widget, given the "
 "height and width that it has actually been given."
@@ -11994,7 +12030,7 @@ msgstr ""
 "<methodname>on_size_allocate()</methodname>:提供将实际给予部件的宽度和高度以"
 "定位部件。"
 
-#: C/index-in.docbook:6962
+#: index-in.docbook:6981
 msgid ""
 "<methodname>on_realize()</methodname>: Associate a <classname>Gdk::Surface</"
 "classname> with the widget."
@@ -12002,7 +12038,7 @@ msgstr ""
 "<methodname>on_realize()</methodname>:将一个<classname>Gdk::Surface</"
 "classname>与部件相关联。"
 
-#: C/index-in.docbook:6963
+#: index-in.docbook:6982
 msgid ""
 "<methodname>on_unrealize()</methodname>: (optional) Break the association "
 "with the <classname>Gdk::Surface</classname>."
@@ -12010,15 +12046,15 @@ msgstr ""
 "<methodname>on_unrealize()</methodname>:覆写此虚函数是可选的,断开"
 "<classname>Gdk::Surface</classname>与部件的关联。"
 
-#: C/index-in.docbook:6964
+#: index-in.docbook:6983
 msgid "<methodname>on_map()</methodname>: (optional)"
 msgstr "<methodname>on_map()</methodname>:覆写此虚函数是可选的。"
 
-#: C/index-in.docbook:6965
+#: index-in.docbook:6984
 msgid "<methodname>on_unmap()</methodname>: (optional)"
 msgstr "<methodname>on_unmap()</methodname>:覆写此虚函数是可选的。"
 
-#: C/index-in.docbook:6966
+#: index-in.docbook:6985
 msgid ""
 "<methodname>snapshot_vfunc()</methodname>: Create a render node, e.g. a "
 "<classname>Cairo::Context</classname> node, and draw on it."
@@ -12026,7 +12062,7 @@ msgstr ""
 "<methodname>snapshot_vfunc()</methodname>:创建一个渲染节点(例如:一个"
 "<classname>Cairo::Context</classname>节点),并在其上进行绘制。"
 
-#: C/index-in.docbook:6954
+#: index-in.docbook:6973
 msgid ""
 "When deriving from <classname>Gtk::Widget</classname>, you should override "
 "the following virtual methods. The methods marked (optional) need not be "
@@ -12037,7 +12073,7 @@ msgstr ""
 "中标记为可选的的虚函数不必在所有自定义部件中都进行覆写。它们的基类方法通常情"
 "况下已经很合适。<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:6970
+#: index-in.docbook:6989
 msgid ""
 "The first 3 methods in the previous table are also overridden in custom "
 "containers. They are briefly described in the <link linkend=\"sec-custom-"
@@ -12046,11 +12082,11 @@ msgstr ""
 "上述前三个函数在自定义容器中也被覆写。它们在<link linkend=\"sec-custom-"
 "containers\">自定义容器</link>小节做了简要说明。"
 
-#: C/index-in.docbook:6976
+#: index-in.docbook:6995
 msgid "Class Init and Instance Init Functions"
 msgstr "类初始化和实例初始化函数"
 
-#: C/index-in.docbook:6978
+#: index-in.docbook:6997
 msgid ""
 "Some <application>GTK</application> functions, if called at all, must be "
 "called from the class init function. Some other <application>GTK</"
@@ -12066,11 +12102,11 @@ msgstr ""
 "ExtraClassInit</classname>派生一个类,并从该类派生你的自定义类。以下示例演示"
 "了如何完成这些操作。"
 
-#: C/index-in.docbook:6987
+#: index-in.docbook:7006
 msgid "Custom Style Information"
 msgstr "自定义样式信息"
 
-#: C/index-in.docbook:6989
+#: index-in.docbook:7008
 msgid ""
 "Your widget class, whether it's derived directly from <classname>Gtk::"
 "Widget</classname> or from another widget class, can read some style "
@@ -12093,15 +12129,15 @@ msgstr ""
 "的支持情况。以下是示例演示了<methodname>Gtk::StyleContext::get_padding()</"
 "methodname>的简单用法。"
 
-#: C/index-in.docbook:7003
+#: index-in.docbook:7022
 msgid "This example implements a widget which draws Penrose triangles."
 msgstr "本示例实现了绘制彭罗斯三角形的部件"
 
-#: C/index-in.docbook:7006
+#: index-in.docbook:7025
 msgid "Custom Widget"
 msgstr "自定义部件"
 
-#: C/index-in.docbook:7012
+#: index-in.docbook:7031
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/custom/custom_widget/\">Source Code</ulink>"
@@ -12109,15 +12145,15 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/custom/custom_widget/\">源代码</ulink>"
 
-#: C/index-in.docbook:7020
+#: index-in.docbook:7039
 msgid "Multi-threaded programs"
 msgstr "多线程程序"
 
-#: C/index-in.docbook:7023
+#: index-in.docbook:7042
 msgid "The constraints"
 msgstr "约束条件"
 
-#: C/index-in.docbook:7034
+#: index-in.docbook:7053
 msgid ""
 "These interactions arise from the fact that, amongst other things, a class "
 "inheriting from <classname>sigc::trackable</classname> will, via that "
@@ -12147,7 +12183,7 @@ msgstr ""
 "<methodname>connect()</methodname>方法或任何与该连接有关的<classname>sigc::"
 "connection</classname>对象进行更新。"
 
-#: C/index-in.docbook:7025
+#: index-in.docbook:7044
 msgid ""
 "Care is required when writing programs based on <application>gtkmm</"
 "application> using multiple threads of execution, arising from the fact that "
@@ -12162,11 +12198,11 @@ msgstr ""
 "多线程程序时需要格外小心。这是因为使用<application>libsigc++</application>时"
 "在幕后发生的复杂交互不受互斥量或其他同步方式的保护。"
 
-#: C/index-in.docbook:7058
+#: index-in.docbook:7077
 msgid "The rules"
 msgstr "规则"
 
-#: C/index-in.docbook:7060
+#: index-in.docbook:7079
 msgid ""
 "This requires a number of rules to be observed when writing multi-threaded "
 "programs using <application>gtkmm</application>. These are set out below, "
@@ -12178,7 +12214,7 @@ msgstr ""
 "规则下下面列出,但要注意的一点是从<classname>sigc::trackable</classname>派生"
 "类时需要格外小心,因为效果很不直观(特别是下述4、5条)。"
 
-#: C/index-in.docbook:7071
+#: index-in.docbook:7090
 msgid ""
 "Use <classname>Glib::Dispatcher</classname> to invoke <application>gtkmm</"
 "application> functions from worker threads (this is dealt with in more "
@@ -12187,7 +12223,7 @@ msgstr ""
 "使用<classname>Glib::Dispatcher</classname>在工作线程中调用"
 "<application>gtkmm</application>函数(这点将在下一节详细介绍)"
 
-#: C/index-in.docbook:7079
+#: index-in.docbook:7098
 msgid ""
 "A <classname>sigc::signal</classname> object should be regarded as owned by "
 "the thread which created it. Only that thread should connect a "
@@ -12209,7 +12245,7 @@ msgstr ""
 "作,以及任何从<classname>sigc::trackable</classname>派生的对象(其非静态方法"
 "由连接到信号对象的槽引用)都应该在该线程中销毁。"
 
-#: C/index-in.docbook:7095
+#: index-in.docbook:7114
 msgid ""
 "Any <classname>sigc::connection</classname> object should be regarded as "
 "owned by the thread in which the method returning the <classname>sigc::"
@@ -12220,7 +12256,7 @@ msgstr ""
 "了返回<classname>sigc::connection</classname>对象的方法。只有该线程才应在此对"
 "象上调用<classname>sigc::connection</classname>方法。"
 
-#: C/index-in.docbook:7105
+#: index-in.docbook:7124
 msgid ""
 "A <classname>sigc::slot</classname> object created by a call to "
 "<function>sigc::mem_fun()</function> which references a method of a class "
@@ -12232,7 +12268,7 @@ msgstr ""
 "classname>对象具有由<classname>sigc::trackable</classname>所派生类的成员函数"
 "的引用,请勿将其复制到另一个线程中,也不要让除创建线程以外的线程销毁它。"
 
-#: C/index-in.docbook:7115
+#: index-in.docbook:7134
 msgid ""
 "If a particular class object derives from <classname>sigc::trackable</"
 "classname>, only one thread should create <classname>sigc::slot</classname> "
@@ -12250,7 +12286,7 @@ msgstr ""
 "用该函数以创建槽,或者在<classname>sigc::trackable</classname>对象断开连接和"
 "被销毁时将那些槽无效化。"
 
-#: C/index-in.docbook:7129
+#: index-in.docbook:7148
 msgid ""
 "Although <application>glib</application> is itself thread-safe, any "
 "<application>glibmm</application> wrappers which use <application>libsigc++</"
@@ -12269,7 +12305,7 @@ msgstr ""
 "connect()</methodname>、<methodname>Glib::SignalTimeout::connect_seconds</"
 "methodname>或是处理由它们返回的<classname>sigc::connection</classname>对象。"
 
-#: C/index-in.docbook:7141
+#: index-in.docbook:7160
 msgid ""
 "The connect*_once() variants, <methodname>Glib::SignalIdle::connect_once()</"
 "methodname>, <methodname>Glib::SignalTimeout::connect_once()</methodname>, "
@@ -12285,11 +12321,11 @@ msgstr ""
 "trackable</classname>派生类的成员函数调用<function>sigc::mem_fun()</function>"
 "创建的,那么它们在任何情况下都是线程安全的。"
 
-#: C/index-in.docbook:7159
+#: index-in.docbook:7178
 msgid "Using Glib::Dispatcher"
 msgstr "使用<classname>Glib::Dispatcher</classname>"
 
-#: C/index-in.docbook:7161
+#: index-in.docbook:7180
 msgid ""
 "The slots connected to <classname>sigc::signal</classname> objects execute "
 "in the thread which calls <methodname>emit()</methodname> or "
@@ -12310,7 +12346,7 @@ msgstr ""
 "classname>,任何工作线程都可以在其上调用<methodname>emit()</methodname>并让槽"
 "安全的执行连接的<application>gtkmm</application>函数。"
 
-#: C/index-in.docbook:7175
+#: index-in.docbook:7194
 msgid ""
 "Some thread safety rules on the use of <classname>Glib::Dispatcher</"
 "classname> still apply. As mentioned, a <classname>Glib::Dispatcher</"
@@ -12341,7 +12377,7 @@ msgstr ""
 "<methodname>emit()</methodname>,但前提是该对象是在工作线程启动前构造的,如果"
 "不是则需要进行额外的同步以确保可见性。"
 
-#: C/index-in.docbook:7195
+#: index-in.docbook:7214
 msgid ""
 "Aside from the fact that connected slots always execute in the receiver "
 "thread, <classname>Glib::Dispatcher</classname> objects are similar to "
@@ -12360,7 +12396,7 @@ msgstr ""
 "是编写<application>glibmm</application>时没有(尽管线程安全与强异常安全结合有"
 "些微妙,但编写它们相对容易)。"
 
-#: C/index-in.docbook:7208
+#: index-in.docbook:7227
 msgid ""
 "A <classname>Glib::Dispatcher</classname> object can be emitted on by the "
 "receiver thread as well as by a worker thread, although this should be done "
@@ -12385,7 +12421,7 @@ msgstr ""
 "收者线程想要发出信号可以使用普通的<classname>sigc::signal&lt;void()&gt;</"
 "classname>对象。"
 
-#: C/index-in.docbook:7228
+#: index-in.docbook:7247
 msgid ""
 "This is an example program with two threads, one GUI thread, like in all "
 "<application>gtkmm</application> programs, and one worker thread. The worker "
@@ -12398,7 +12434,7 @@ msgstr ""
 "将创建工作线程,当工作完成或你按下<literal>Stop work</literal>按钮或是你按下"
 "<literal>Quit</literal>按钮时该线程将被删除。"
 
-#: C/index-in.docbook:7236
+#: index-in.docbook:7255
 msgid ""
 "A <classname>Glib::Dispatcher</classname> is used for sending notifications "
 "from the worker thread to the GUI thread. The <classname>ExampleWorker</"
@@ -12410,7 +12446,7 @@ msgstr ""
 "<classname>ExampleWorker</classname>包含两个线程都可以访问的数据。该数据被一"
 "个<classname>std::mutex</classname>保护。只有GUI线程对GUI进行更新。"
 
-#: C/index-in.docbook:7244
+#: index-in.docbook:7263
 msgid ""
 "Compiling and linking a multi-threaded program can require special compiler "
 "and linker options. If you use the <application>g++</application> compiler, "
@@ -12425,11 +12461,11 @@ msgstr ""
 "果你在构建脚本中添加了<function>dependency('threads')</function>,它会帮你处"
 "理多线程的复杂性。"
 
-#: C/index-in.docbook:7253
+#: index-in.docbook:7272
 msgid "Multi-Threaded Program"
 msgstr "多线程程序"
 
-#: C/index-in.docbook:7259
+#: index-in.docbook:7278
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/multithread\">Source Code</ulink>"
@@ -12437,11 +12473,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/multithread\">源代码</ulink>"
 
-#: C/index-in.docbook:7266
+#: index-in.docbook:7285
 msgid "Recommended Techniques"
 msgstr "推荐技术"
 
-#: C/index-in.docbook:7268
+#: index-in.docbook:7287
 msgid ""
 "This section is simply a gathering of wisdom, general style guidelines and "
 "hints for creating <application>gtkmm</application> applications."
@@ -12449,7 +12485,7 @@ msgstr ""
 "本小节将向你展示一些创建<application>gtkmm</application>应用程序的智慧、风格"
 "指南和提示。"
 
-#: C/index-in.docbook:7272
+#: index-in.docbook:7291
 msgid ""
 "Use GNU <application>autoconf</application> and <application>automake</"
 "application>! They are your friends :) <application>Automake</application> "
@@ -12465,7 +12501,7 @@ msgstr ""
 "<application>Autoconf</application>允许自动配置软件的安装,处理大量来自系统本"
 "身的差异以增强可移植性。"
 
-#: C/index-in.docbook:7282
+#: index-in.docbook:7301
 msgid ""
 "Subclass Widgets to better organize your code. You should probably subclass "
 "your main <classname>Window</classname> at least. Then you can make your "
@@ -12474,7 +12510,7 @@ msgstr ""
 "子类部件可以更好的组织你的代码。至少你的主窗口类应该继承<classname>Window</"
 "classname>。这样你可以使主窗口的子部件和信号处理函数成为该类的成员。"
 
-#: C/index-in.docbook:7287
+#: index-in.docbook:7306
 msgid ""
 "Create your own signals instead of passing pointers around. Objects can "
 "communicate with each other via signals and signal handlers. This is much "
@@ -12490,11 +12526,11 @@ msgstr ""
 "classname>,但你应该使用<application>libsigc++</application>所述的正常"
 "<classname>sigc::signal</classname>。"
 
-#: C/index-in.docbook:7296
+#: index-in.docbook:7315
 msgid "Application Lifetime"
 msgstr "应用程序生命周期"
 
-#: C/index-in.docbook:7297
+#: index-in.docbook:7316
 msgid ""
 "Most applications will have only one <classname>Window</classname>, or only "
 "one main window. These applications can use the <methodname>Gtk::"
@@ -12516,15 +12552,15 @@ msgstr ""
 "未保存变更你可能想弹出对话框询问用户是否确定要关闭窗口,再根据用户选择确定是"
 "否要关闭窗口)。"
 
-#: C/index-in.docbook:7306
+#: index-in.docbook:7325
 msgid "Most of our examples use this technique."
 msgstr "我们的大多数示例都是用这种技术。"
 
-#: C/index-in.docbook:7310
+#: index-in.docbook:7329
 msgid "Using a <application>gtkmm</application> widget"
 msgstr "使用<application>gtkmm</application>部件"
 
-#: C/index-in.docbook:7312
+#: index-in.docbook:7331
 msgid ""
 "Our examples all tend to have the same structure. They follow these steps "
 "for using a <classname>Widget</classname>:"
@@ -12532,7 +12568,7 @@ msgstr ""
 "我们的示例都倾向于使用相同的结构。它们按以下步骤使用<classname>Widget</"
 "classname>:"
 
-#: C/index-in.docbook:7321
+#: index-in.docbook:7340
 msgid ""
 "Declare a variable of the type of <classname>Widget</classname> you wish to "
 "use, generally as member variable of a derived container class. You could "
@@ -12546,7 +12582,7 @@ msgstr ""
 "<literal>new</literal>创建它。即使通过指针使用部件,也应该使该指针成为容器类"
 "的成员变量,以便你后续访问它。"
 
-#: C/index-in.docbook:7332
+#: index-in.docbook:7351
 msgid ""
 "Set the attributes of the widget. If the widget has no default constructor, "
 "then you will need to initialize the widget in the initalizer list of your "
@@ -12555,11 +12591,11 @@ msgstr ""
 "设置部件的属性。如果部件没有默认构造函数,则你需要在容器类的构造函数的初始化"
 "列表中初始化部件。"
 
-#: C/index-in.docbook:7338
+#: index-in.docbook:7357
 msgid "Connect any signals you wish to use to the appropriate handlers."
 msgstr "为所以你需要使用的信号连接合适的信号处理函数。"
 
-#: C/index-in.docbook:7344
+#: index-in.docbook:7363
 msgid ""
 "Pack the widget into a container using the appropriate call, e.g. "
 "<methodname>Gtk::Box::append()</methodname>."
@@ -12567,7 +12603,7 @@ msgstr ""
 "调用适当的函数将部件装入容器中,例如:<methodname>Gtk::Box::append()</"
 "methodname>。"
 
-#: C/index-in.docbook:7354
+#: index-in.docbook:7373
 msgid ""
 "If you don't want all widgets to be shown, call <methodname>Gtk::Widget::"
 "hide()</methodname> on the widgets that you don't want to show. If a "
@@ -12578,11 +12614,11 @@ msgstr ""
 "hide()</methodname>可以将其隐藏,当一个容器部件被隐藏,它的所有子部件将一并被"
 "隐藏,即便你没有在那些子部件上调用<methodname>hide()</methodname>。"
 
-#: C/index-in.docbook:7365
+#: index-in.docbook:7384
 msgid "Building applications"
 msgstr "构建应用程序"
 
-#: C/index-in.docbook:7367
+#: index-in.docbook:7386
 msgid ""
 "This chapter is similar to the \"Building applications\" chapter in the "
 "<ulink url=\"https://developer.gnome.org/gtk4/unstable/\";>GTK4 Reference "
@@ -12592,19 +12628,19 @@ msgstr ""
 "本章节与<ulink url=\"https://developer.gnome.org/gtk4/unstable/\";>GTK4参考文"
 "档</ulink>的\"Building applications\"章节十分类似。"
 
-#: C/index-in.docbook:7376
+#: index-in.docbook:7395
 msgid "The binary file"
 msgstr "二进制文件"
 
-#: C/index-in.docbook:7377
+#: index-in.docbook:7396
 msgid "This gets installed in <filename>/usr/bin</filename>."
 msgstr "这将被安装在<filename>/usr/bin</filename>。"
 
-#: C/index-in.docbook:7380
+#: index-in.docbook:7399
 msgid "A desktop file"
 msgstr "桌面文件"
 
-#: C/index-in.docbook:7381
+#: index-in.docbook:7400
 msgid ""
 "The desktop file provides important information about the application to the "
 "desktop shell, such as its name, icon, D-Bus name, commandline to launch it, "
@@ -12614,11 +12650,11 @@ msgstr ""
 "Bus名、启动时的命令行等。此文件将安装在<filename>/usr/share/applications</"
 "filename>。"
 
-#: C/index-in.docbook:7386
+#: index-in.docbook:7405
 msgid "An icon"
 msgstr "图标"
 
-#: C/index-in.docbook:7387
+#: index-in.docbook:7406
 msgid ""
 "The icon gets installed in <filename>/usr/share/icons/hicolor/48x48/apps</"
 "filename>, where it will be found regardless of the current theme."
@@ -12626,11 +12662,11 @@ msgstr ""
 "图标将被安装在<filename>/usr/share/icons/hicolor/48x48/apps</filename>,无论"
 "当前主题是什么你都可以在其中找到图标。"
 
-#: C/index-in.docbook:7391
+#: index-in.docbook:7410
 msgid "A settings schema"
 msgstr "设置模式"
 
-#: C/index-in.docbook:7392
+#: index-in.docbook:7411
 msgid ""
 "If the application uses <classname>Gio::Settings</classname>, it will "
 "install its schema in <filename>/usr/share/glib-2.0/schemas</filename>, so "
@@ -12640,11 +12676,11 @@ msgstr ""
 "到<filename>/usr/share/glib-2.0/schemas</filename>,以便dconf-editor之类的工"
 "具可以找到它。"
 
-#: C/index-in.docbook:7397
+#: index-in.docbook:7416
 msgid "Other resources"
 msgstr "其他资源"
 
-#: C/index-in.docbook:7398
+#: index-in.docbook:7417
 msgid ""
 "Other files, such as <classname>Gtk::Builder</classname> ui files, are best "
 "loaded from resources stored in the application binary itself. This "
@@ -12656,11 +12692,11 @@ msgstr ""
 "自身的二进制中加载。这样就不需要按照传统将大多数文件安装在<filename>/usr/"
 "share</filename>中特定应用程序的位置。"
 
-#: C/index-in.docbook:7372
+#: index-in.docbook:7391
 msgid "An application consists of a number of files: <_:variablelist-1/>"
 msgstr "一个应用程序由许多文件组成:<_:variablelist-1/>"
 
-#: C/index-in.docbook:7406
+#: index-in.docbook:7425
 msgid ""
 "<application>gtkmm</application> includes application support that is built "
 "on top of <classname>Gio::Application</classname>. In this chapter we'll "
@@ -12679,7 +12715,7 @@ msgstr ""
 "<classname>Gtk::SearchBar</classname>、<classname>Gtk::ListBox</classname>等"
 "内容。"
 
-#: C/index-in.docbook:7415
+#: index-in.docbook:7434
 msgid ""
 "The full, buildable sources for these examples can be found in the "
 "<filename>examples/book/buildapp</filename> directory of the "
@@ -12703,11 +12739,11 @@ msgstr ""
 "一个示例。更多有关信息,请参见<filename>buildapp</filename>目录中包含的"
 "<filename>README</filename>文件。"
 
-#: C/index-in.docbook:7428 C/index-in.docbook:7472
+#: index-in.docbook:7447 index-in.docbook:7491
 msgid "A trivial application"
 msgstr "简单的应用程序"
 
-#: C/index-in.docbook:7430
+#: index-in.docbook:7449
 msgid ""
 "When using <classname>Gtk::Application</classname>, the <function>main()</"
 "function> function can be very simple. We just call <methodname>Gtk::"
@@ -12717,7 +12753,7 @@ msgstr ""
 "数可以非常简单。我们只是在应用程序类实例上调用<methodname>Gtk::Application::"
 "run()</methodname>。"
 
-#: C/index-in.docbook:7436
+#: index-in.docbook:7455
 msgid ""
 "All the application logic is in the application class, which is a subclass "
 "of <classname>Gtk::Application</classname>. Our example does not yet have "
@@ -12733,7 +12769,7 @@ msgstr ""
 "我们的应用程序类尝试打开文件,但是应用程序的窗口子类并没有执行应执行的操"
 "作)。"
 
-#: C/index-in.docbook:7445
+#: index-in.docbook:7464
 msgid ""
 "To handle these two cases, we override <methodname>signal_activate()</"
 "methodname>'s default handler, which gets called when the application is "
@@ -12745,7 +12781,7 @@ msgstr ""
 "<methodname>signal_open()</methodname>的默认处理函数,在没有命令行参数时前者"
 "的处理函数被调用,有命令行参数时后者的处理函数被调用。"
 
-#: C/index-in.docbook:7452
+#: index-in.docbook:7471
 msgid ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/";
 "classGio_1_1Application.html\">Gio::Application Reference</ulink>"
@@ -12753,7 +12789,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/";
 "classGio_1_1Application.html\">Gio::Application参考</ulink>"
 
-#: C/index-in.docbook:7453
+#: index-in.docbook:7472
 msgid ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1Application.html\">Gtk::Application Reference</ulink>"
@@ -12761,7 +12797,7 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/gtkmm/unstable/";
 "classGtk_1_1Application.html\">Gtk::Application参考</ulink>"
 
-#: C/index-in.docbook:7455
+#: index-in.docbook:7474
 msgid ""
 "Another important class that is part of the application support in "
 "<application>gtkmm</application> is <classname>Gtk::ApplicationWindow</"
@@ -12772,7 +12808,7 @@ msgstr ""
 "<classname>Gtk::ApplicationWindow</classname>。通常我们也会将其子类化。此时我"
 "们的子类还没有做任何事,所以我们只会得到一个空白的窗口。"
 
-#: C/index-in.docbook:7461
+#: index-in.docbook:7480
 msgid ""
 "As part of the initial setup of our application, we also create an icon and "
 "a desktop file. Note that @bindir@ in the desktop file needs to be replaced "
@@ -12781,11 +12817,11 @@ msgstr ""
 "作为应用程序初始设置的一部分,我们还为其创建了一个图标和桌面文件。请注意在使"
 "用这个桌面文件之前你还需要将文件中的@bindir@替换为应用程序二进制的实际路径。"
 
-#: C/index-in.docbook:7467
+#: index-in.docbook:7486
 msgid "Here is what we've achieved so far:"
 msgstr "到目前为止我们做到了:"
 
-#: C/index-in.docbook:7478
+#: index-in.docbook:7497
 msgid ""
 "This does not look very impressive yet, but our application is already "
 "presenting itself on the session bus, it has single-instance semantics, and "
@@ -12794,7 +12830,7 @@ msgstr ""
 "这看起来还无法让人印象深刻,但是我们的应用程序已经在会话总线上展示了自己。现"
 "在它具有单实例语义,并且接受命令行参数作为文件路径。"
 
-#: C/index-in.docbook:7483
+#: index-in.docbook:7502
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step1\">Source Code</ulink>"
@@ -12802,11 +12838,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step1\">源代码</ulink>"
 
-#: C/index-in.docbook:7488 C/index-in.docbook:7531
+#: index-in.docbook:7507 index-in.docbook:7550
 msgid "Populating the window"
 msgstr "填充窗口"
 
-#: C/index-in.docbook:7490
+#: index-in.docbook:7509
 msgid ""
 "In this step, we use a <classname>Gtk::Builder</classname> instance to "
 "associate a <classname>Gtk::Builder</classname> ui file with our application "
@@ -12815,7 +12851,7 @@ msgstr ""
 "再次步骤中,我们使用<classname>Gtk::Builder</classname>实例将<classname>Gtk::"
 "Builder</classname> UI文件和我们的应用程序窗口类相关联。"
 
-#: C/index-in.docbook:7495
+#: index-in.docbook:7514
 msgid ""
 "Our simple ui file gives the window a title, and puts a <classname>Gtk::"
 "Stack</classname> widget as the main content."
@@ -12823,7 +12859,7 @@ msgstr ""
 "我们的简单UI文件为窗口设定了一个标题,并将一个<classname>Gtk::Stack</"
 "classname>文件放入了窗口中。"
 
-#: C/index-in.docbook:7500
+#: index-in.docbook:7519
 msgid ""
 "To make use of this file in our application, we revisit our <classname>Gtk::"
 "ApplicationWindow</classname> subclass, and call <methodname>Gtk::Builder::"
@@ -12843,12 +12879,12 @@ msgstr ""
 "<methodname>get_widget_derived()</methodname>的信息,请参见<link linkend="
 "\"sec-builder-using-derived-widgets\">使用派生部件</link>小节。"
 
-#: C/index-in.docbook:7519
+#: index-in.docbook:7538
 #, no-wrap
 msgid "$ glib-compile-resources --target=resources.c --generate-source exampleapp.gresource.xml"
 msgstr "$ glib-compile-resources --target=resources.c --generate-source exampleapp.gresource.xml"
 
-#: C/index-in.docbook:7511
+#: index-in.docbook:7530
 msgid ""
 "You may have noticed that we use the <methodname>_from_resource()</"
 "methodname> variant of the method that reads the ui file. Now we need to use "
@@ -12873,11 +12909,11 @@ msgstr ""
 "用Meson <ulink url=\"https://mesonbuild.com/Gnome-module.html\";>GNOME模块</"
 "ulink>中的<function>compile_resources()</function>函数。"
 
-#: C/index-in.docbook:7526
+#: index-in.docbook:7545
 msgid "Our application now looks like this:"
 msgstr "我们的应用程序现在看起来像这样:"
 
-#: C/index-in.docbook:7537
+#: index-in.docbook:7556
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step2\">Source Code</ulink>"
@@ -12885,17 +12921,17 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step2\">源代码</ulink>"
 
-#: C/index-in.docbook:7542 C/index-in.docbook:7578
+#: index-in.docbook:7561 index-in.docbook:7597
 msgid "Opening files"
 msgstr "打开文件"
 
-#: C/index-in.docbook:7544
+#: index-in.docbook:7563
 msgid ""
 "In this step, we make our application show the contents of all the files "
 "that it is given on the commandline."
 msgstr "在这一步中,我们使我们的应用程序显示由命令行参数给定的文件的所有内容。"
 
-#: C/index-in.docbook:7549
+#: index-in.docbook:7568
 msgid ""
 "To this end, we add a data member to our application window and keep a "
 "pointer to the <classname>Gtk::Stack</classname> there. We get the pointer "
@@ -12906,7 +12942,7 @@ msgstr ""
 "<classname>Gtk::Stack</classname>的指针。我们通过在应用程序窗口的构造函数中调"
 "用<methodname>Gtk::Builder::get_widget()</methodname>获得指向该子部件的指针。"
 
-#: C/index-in.docbook:7555
+#: index-in.docbook:7574
 msgid ""
 "Now we revisit the <methodname>ExampleAppWindow::open_file_view()</"
 "methodname> method that is called for each commandline argument, and "
@@ -12917,7 +12953,7 @@ msgstr ""
 "open_file_view()</methodname>成员函数,并构造一个<classname>Gtk::TextView</"
 "classname>然后将其作为页面添加到<classname>Gtk::Stack</classname>中。"
 
-#: C/index-in.docbook:7561
+#: index-in.docbook:7580
 msgid ""
 "Lastly, we add a <classname>Gtk::StackSwitcher</classname> to the titlebar "
 "area in the ui file, and we tell it to display information about our stack."
@@ -12925,7 +12961,7 @@ msgstr ""
 "最后,我们将<classname>Gtk::StackSwitcher</classname>添加到UI文件的标题栏区"
 "域,并告诉它如何显示<classname>Gtk::Stack</classname>的相关信息。"
 
-#: C/index-in.docbook:7566
+#: index-in.docbook:7585
 msgid ""
 "The stack switcher gets all its information it needs to display tabs from "
 "the stack that it belongs to. Here, we are passing the label to show for "
@@ -12936,11 +12972,11 @@ msgstr ""
 "信息。在这,作为<methodname>Gtk::Stack::add()</methodname>方法的最后一个参"
 "数,我们为每个显示的文件传递一个标签。"
 
-#: C/index-in.docbook:7573
+#: index-in.docbook:7592
 msgid "Our application is beginning to take shape:"
 msgstr "我们的应用程序开始成形:"
 
-#: C/index-in.docbook:7584
+#: index-in.docbook:7603
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step3\">Source Code</ulink>"
@@ -12948,17 +12984,17 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step3\">源代码</ulink>"
 
-#: C/index-in.docbook:7589 C/index-in.docbook:7624
+#: index-in.docbook:7608 index-in.docbook:7643
 msgid "A menu"
 msgstr "菜单"
 
-#: C/index-in.docbook:7591
+#: index-in.docbook:7610
 msgid ""
 "The menu is shown at the right side of the headerbar. It is meant to collect "
 "infrequently used actions that affect the whole application."
 msgstr "菜单显示在标题栏的右侧。它旨在放置所有应用程序不常用的动作。"
 
-#: C/index-in.docbook:7596
+#: index-in.docbook:7615
 msgid ""
 "Just like the application window, we specify our menu in a ui file, and add "
 "it as a resource to our binary."
@@ -12966,7 +13002,7 @@ msgstr ""
 "就像应用程序窗口一样,我们在UI文件中指定一个菜单,并将其作为资源添加到二进制"
 "中。"
 
-#: C/index-in.docbook:7601
+#: index-in.docbook:7620
 msgid ""
 "To make the menu appear, we have to load the ui file and associate the "
 "resulting menu model with the menu button that we've added to the headerbar. "
@@ -12977,7 +13013,7 @@ msgstr ""
 "单按钮相关联。由于菜单通过激活<classname>Gio::Action</classname>工作,我们还"
 "需要向应用程序中添加一组合适的动作。"
 
-#: C/index-in.docbook:7608
+#: index-in.docbook:7627
 msgid ""
 "Adding the actions is best done in the <methodname>on_startup()</methodname> "
 "default signal handler, which is guaranteed to be called once for each "
@@ -12986,7 +13022,7 @@ msgstr ""
 "最好在<methodname>on_startup()</methodname>的默认信号处理函数中完成添加动作,"
 "并确保每个应用程序实例都只调用一次。"
 
-#: C/index-in.docbook:7613
+#: index-in.docbook:7632
 msgid ""
 "Our preferences menu item does not do anything yet, but the Quit menu item "
 "is fully functional. It can also be activated by the usual Ctrl-Q shortcut. "
@@ -12997,11 +13033,11 @@ msgstr ""
 "Q快捷键激活它。快捷键通过<methodname>Gtk::Application::"
 "set_accel_for_action()</methodname>添加。"
 
-#: C/index-in.docbook:7619
+#: index-in.docbook:7638
 msgid "The menu looks like this:"
 msgstr "菜单如下所示"
 
-#: C/index-in.docbook:7630
+#: index-in.docbook:7649
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step4\">Source Code</ulink>"
@@ -13009,11 +13045,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step4\">源代码</ulink>"
 
-#: C/index-in.docbook:7635
+#: index-in.docbook:7654
 msgid "A preference dialog"
 msgstr "首选项对话框"
 
-#: C/index-in.docbook:7637
+#: index-in.docbook:7656
 msgid ""
 "A typical application will have some preferences that should be remembered "
 "from one run to the next. Even for our simple example application, we may "
@@ -13022,7 +13058,7 @@ msgstr ""
 "经典的应用程序会有一些首选项,它们应该被记住而不需要在下次运行时在进行设置。"
 "即使对于我们这个简单的应用程序示例,我们可能也想改变用于文本内容的字体。"
 
-#: C/index-in.docbook:7643
+#: index-in.docbook:7662
 msgid ""
 "We are going to use <classname>Gio::Settings</classname> to store our "
 "preferences. <classname>Gio::Settings</classname> requires a schema that "
@@ -13033,7 +13069,7 @@ msgstr ""
 "<classname>Gio::Settings</classname>需要一个用于描述我们的设置的模式,在本例"
 "中为<filename>org.gtkmm.exampleapp.gschema.xml</filename>文件。"
 
-#: C/index-in.docbook:7649
+#: index-in.docbook:7668
 msgid ""
 "Before we can make use of this schema in our application, we need to compile "
 "it into the binary form that <classname>Gio::Settings</classname> expects. "
@@ -13050,7 +13086,7 @@ msgstr ""
 "com/Gnome-module.html\">GNOME模块</ulink>中提供了"
 "<function>compile_schemas()</function>执行此操作。"
 
-#: C/index-in.docbook:7658
+#: index-in.docbook:7677
 msgid ""
 "Next, we need to connect our settings to the widgets that they are supposed "
 "to control. One convenient way to do this is to use <methodname>Gio::"
@@ -13063,7 +13099,7 @@ msgstr ""
 "就像我们在<classname>ExampleAppWindow</classname>的构造函数中做的过渡设置一"
 "样。"
 
-#: C/index-in.docbook:7664
+#: index-in.docbook:7683
 #, no-wrap
 msgid ""
 "\n"
@@ -13074,7 +13110,7 @@ msgstr ""
 "m_settings = Gio::Settings::create(\"org.gtkmm.exampleapp\");\n"
 "m_settings-&gt;bind(\"transition\", m_stack-&gt;property_transition_type());\n"
 
-#: C/index-in.docbook:7669
+#: index-in.docbook:7688
 msgid ""
 "The code to connect the font setting is a little more involved, since it "
 "corresponds to an object property in a <classname>Gtk::TextTag</classname> "
@@ -13085,7 +13121,7 @@ msgstr ""
 "TextTag</classname>。以下代码在<methodname>ExampleAppWindow::"
 "open_file_view()</methodname>函数中。"
 
-#: C/index-in.docbook:7674
+#: index-in.docbook:7693
 #, no-wrap
 msgid ""
 "\n"
@@ -13098,7 +13134,7 @@ msgstr ""
 "m_settings-&gt;bind(\"font\", tag-&gt;property_font());\n"
 "buffer-&gt;apply_tag(tag, buffer-&gt;begin(), buffer-&gt;end());\n"
 
-#: C/index-in.docbook:7680
+#: index-in.docbook:7699
 msgid ""
 "At this point, the application will already react if you change one of the "
 "settings, e.g. using the <command>gsettings</command> commandline tool. Of "
@@ -13115,7 +13151,7 @@ msgstr ""
 "classname>中看到的技术:<classname>Gtk::Builder</classname> UI文件和设置绑"
 "定。"
 
-#: C/index-in.docbook:7689
+#: index-in.docbook:7708
 msgid ""
 "When we've created the <filename>prefs.ui</filename> file and the "
 "<classname>ExampleAppPrefs</classname> class, we revisit the "
@@ -13127,7 +13163,7 @@ msgstr ""
 "on_action_preferences()</methodname>成员函数,并使其打开一个新的首选项对话"
 "框。"
 
-#: C/index-in.docbook:7694
+#: index-in.docbook:7713
 #, no-wrap
 msgid ""
 "\n"
@@ -13138,17 +13174,17 @@ msgstr ""
 "auto prefs_dialog = ExampleAppPrefs::create(*get_active_window());\n"
 "prefs_dialog-&gt;present();\n"
 
-#: C/index-in.docbook:7699
+#: index-in.docbook:7718
 msgid ""
 "After all this work, our application can now show a preference dialog like "
 "this:"
 msgstr "完成所有工作后,我们的应用程序现在可以显示如下所示的首选项对话框:"
 
-#: C/index-in.docbook:7704
+#: index-in.docbook:7723
 msgid "An preference dialog"
 msgstr "首选项对话框"
 
-#: C/index-in.docbook:7710
+#: index-in.docbook:7729
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step5\">Source Code</ulink>"
@@ -13156,11 +13192,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step5\">源代码</ulink>"
 
-#: C/index-in.docbook:7715 C/index-in.docbook:7758
+#: index-in.docbook:7734 index-in.docbook:7777
 msgid "Adding a search bar"
 msgstr "添加搜索栏"
 
-#: C/index-in.docbook:7717
+#: index-in.docbook:7736
 msgid ""
 "We continue to flesh out the functionality of our application. For now, we "
 "add search. <application>gtkmm</application> supports this with "
@@ -13173,7 +13209,7 @@ msgstr ""
 "<classname>Gtk::SearchBar</classname>对此提供了支持。搜索栏是一个部件,可以从"
 "从顶部滑入以显示搜索条目。"
 
-#: C/index-in.docbook:7723
+#: index-in.docbook:7742
 msgid ""
 "We add a toggle button to the header bar, which can be used to slide out the "
 "search bar below the header bar. The new widgets are added in the "
@@ -13182,7 +13218,7 @@ msgstr ""
 "我们向标题栏添加了一个开关按钮,可以用于滑出位于标题栏下方的搜索栏。新的部件"
 "将添加到<filename>window.ui</filename>文件中。"
 
-#: C/index-in.docbook:7728
+#: index-in.docbook:7747
 msgid ""
 "Implementing the search needs quite a few code changes that we are not going "
 "to completely go over here. The central piece of the search implementation "
@@ -13193,7 +13229,7 @@ msgstr ""
 "部分是一个信号处理函数,它监听搜索条目的变更,此处显示的示例没有进行错误处"
 "理。"
 
-#: C/index-in.docbook:7733
+#: index-in.docbook:7752
 #, no-wrap
 msgid ""
 "\n"
@@ -13234,11 +13270,11 @@ msgstr ""
 "  }\n"
 "}\n"
 
-#: C/index-in.docbook:7753
+#: index-in.docbook:7772
 msgid "With the search bar, our application now looks like this:"
 msgstr "有了搜索栏后,我们的应用程序看起来像这样:"
 
-#: C/index-in.docbook:7764
+#: index-in.docbook:7783
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step6\">Source Code</ulink>"
@@ -13246,11 +13282,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step6\">源代码</ulink>"
 
-#: C/index-in.docbook:7769 C/index-in.docbook:7804
+#: index-in.docbook:7788 index-in.docbook:7823
 msgid "Adding a side bar"
 msgstr "添加侧边栏"
 
-#: C/index-in.docbook:7771
+#: index-in.docbook:7790
 msgid ""
 "As another piece of functionality, we are adding a sidebar, which "
 "demonstrates <classname>Gtk::Revealer</classname> and <classname>Gtk::"
@@ -13261,7 +13297,7 @@ msgstr ""
 "Revealer</classname>和<classname>Gtk::ListBox</classname>。新的部件将被添加到"
 "<filename>window.ui</filename>文件中。"
 
-#: C/index-in.docbook:7777
+#: index-in.docbook:7796
 msgid ""
 "The code to populate the sidebar with buttons for the words found in each "
 "file is a little too involved to go into here. But we'll look at the code to "
@@ -13272,7 +13308,7 @@ msgstr ""
 "我们将对为菜单中添加新功能的多选按钮的代码进行介绍。菜单项将被添加到"
 "<filename>gears_menu.ui</filename> UI文件中。"
 
-#: C/index-in.docbook:7784
+#: index-in.docbook:7803
 msgid ""
 "To connect the menu item to the new <literal>show-words</literal> setting, "
 "we use a <classname>Gio::Action</classname> corresponding to the given "
@@ -13283,7 +13319,7 @@ msgstr ""
 "classname>键相关联,以使菜单项与新的<literal>show-words</literal>设置向连接。"
 "在<classname>ExampleAppWindow</classname>构造函数中:"
 
-#: C/index-in.docbook:7789
+#: index-in.docbook:7808
 #, no-wrap
 msgid ""
 "\n"
@@ -13304,11 +13340,11 @@ msgstr ""
 "m_gears-&gt;set_menu_model(menu);\n"
 "add_action(m_settings-&gt;create_action(\"show-words\"));\n"
 
-#: C/index-in.docbook:7799
+#: index-in.docbook:7818
 msgid "What our application looks like now:"
 msgstr "现在我们的应用程序看起来像这样:"
 
-#: C/index-in.docbook:7810
+#: index-in.docbook:7829
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step7\">Source Code</ulink>"
@@ -13316,11 +13352,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step7\">源代码</ulink>"
 
-#: C/index-in.docbook:7816 C/index-in.docbook:7858
+#: index-in.docbook:7835 index-in.docbook:7877
 msgid "Properties"
 msgstr "属性"
 
-#: C/index-in.docbook:7818
+#: index-in.docbook:7837
 msgid ""
 "Widgets and other objects have many useful properties. Here we show some "
 "ways to use them in new and flexible ways, by wrapping them in actions with "
@@ -13331,7 +13367,7 @@ msgstr ""
 "它们的方法。例如,将它们包装在<classname>Gio::PropertyAction</classname>动作"
 "中或将它们与<classname>Glib::Binding</classname>绑定。"
 
-#: C/index-in.docbook:7824
+#: index-in.docbook:7843
 msgid ""
 "To set this up, we add two labels to the header bar in our <filename>window."
 "ui</filename> file, named <literal>lines_label</literal> and <literal>lines</"
@@ -13344,7 +13380,7 @@ msgstr ""
 "的构造函数中获取指向它们的指针。接着我们向齿轮菜单中添加了一个新的\"Lines\"菜"
 "单项,该菜单项会触发<literal>show-lines</literal>动作。"
 
-#: C/index-in.docbook:7832
+#: index-in.docbook:7851
 msgid ""
 "To make this menu item do something, we create a property action for the "
 "<literal>visible</literal> property of the <literal>lines</literal> label, "
@@ -13362,7 +13398,7 @@ msgstr ""
 "literal>属性绑定到<literal>lines</literal>部件的相同属性上。在"
 "<classname>ExampleAppWindow</classname>的构造函数中:"
 
-#: C/index-in.docbook:7842
+#: index-in.docbook:7861
 #, no-wrap
 msgid ""
 "add_action(Gio::PropertyAction::create(\"show-lines\", m_lines-&gt;property_visible()));\n"
@@ -13375,7 +13411,7 @@ msgstr ""
 "  m_lines_label-&gt;property_visible());\n"
 "\n"
 
-#: C/index-in.docbook:7848
+#: index-in.docbook:7867
 msgid ""
 "We also need a function that counts the lines of the currently active tab, "
 "and updates the <literal>lines</literal> label. See the full source if you "
@@ -13384,11 +13420,11 @@ msgstr ""
 "我们还需要一个函数对当前标签页的行进行计数,并更新<literal>lines</literal>标"
 "签。如果你对此感兴趣请阅读完整源代码。"
 
-#: C/index-in.docbook:7853
+#: index-in.docbook:7872
 msgid "This brings our example application to this appearance:"
 msgstr "现在我们的示例应用程序看起来如下:"
 
-#: C/index-in.docbook:7864
+#: index-in.docbook:7883
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step8\">Source Code</ulink>"
@@ -13396,11 +13432,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step8\">源代码</ulink>"
 
-#: C/index-in.docbook:7869 C/index-in.docbook:7895
+#: index-in.docbook:7888 index-in.docbook:7914
 msgid "Header bar"
 msgstr "标题栏"
 
-#: C/index-in.docbook:7871
+#: index-in.docbook:7890
 msgid ""
 "Our application already uses a <classname>Gtk::HeaderBar</classname> instead "
 "of a 'normal' window titlebar. The header bar is a direct child of the "
@@ -13411,7 +13447,7 @@ msgstr ""
 "栏。标题栏是窗口的直接子项,其类型为<literal>titlebar</literal>。这些由"
 "<filename>window.ui</filename>文件进行设置。"
 
-#: C/index-in.docbook:7878
+#: index-in.docbook:7897
 msgid ""
 "Here we'll just make two small changes to the header bar. The "
 "<literal>decoration-layout</literal> property is set in the <filename>window."
@@ -13425,7 +13461,7 @@ msgstr ""
 "最小化和最大化按钮。我们还在资源文件中包含了一个图标,并将其设置为窗口图标。"
 "在<classname>ExampleAppWindow</classname>的构造函数中:"
 
-#: C/index-in.docbook:7885
+#: index-in.docbook:7904
 #, no-wrap
 msgid ""
 "Gtk::IconTheme::get_for_display(get_display())-&gt;add_resource_path(\"/org/gtkmm/exampleapp\");\n"
@@ -13436,11 +13472,11 @@ msgstr ""
 "set_icon_name(\"exampleapp\");\n"
 "\n"
 
-#: C/index-in.docbook:7890
+#: index-in.docbook:7909
 msgid "Here is how the application now looks:"
 msgstr "现在应用程序看起来如下所示:"
 
-#: C/index-in.docbook:7901
+#: index-in.docbook:7920
 msgid ""
 "The <filename>window.ui</filename> file sets a header bar title, but this "
 "title is not shown. That's because the stack switcher is a child of type "
@@ -13451,7 +13487,7 @@ msgstr ""
 "为堆切换器是<literal>title</literal>的子类型。此时堆切换器成为了自定义标题并"
 "将正常的标题标签隐藏。"
 
-#: C/index-in.docbook:7907
+#: index-in.docbook:7926
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step9\">Source Code</ulink>"
@@ -13459,11 +13495,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/buildapp/step9\">源代码</ulink>"
 
-#: C/index-in.docbook:7914
+#: index-in.docbook:7933
 msgid "Contributing"
 msgstr "贡献"
 
-#: C/index-in.docbook:7916
+#: index-in.docbook:7935
 msgid ""
 "This document, like so much other great software out there, was created for "
 "free by volunteers. If you are at all knowledgeable about any aspect of "
@@ -13474,7 +13510,7 @@ msgstr ""
 "<application>gtkmm</application>没有文档的部分有所了解,请考虑帮助编写/翻译本"
 "文档。"
 
-#: C/index-in.docbook:7922
+#: index-in.docbook:7941
 msgid ""
 "Ideally, we would like you to <ulink url=\"https://gitlab.gnome.org/GNOME/";
 "gtkmm-documentation/-/merge_requests\"> provide a merge request</ulink> to "
@@ -13486,7 +13522,7 @@ msgstr ""
 "C/index-in.docbook</filename>提供MR。该文件位于GNOME的gitlab <literal>gtkmm-"
 "documentation</literal>模块中。"
 
-#: C/index-in.docbook:7928
+#: index-in.docbook:7947
 msgid ""
 "If you do decide to contribute, please post your contribution to the "
 "<application>gtkmm</application> mailing list at <ulink url=\"mailto:gtkmm-";
@@ -13505,11 +13541,11 @@ msgstr ""
 "免费的,你添加所有内容也需要是免费的。也就是说人们必须能够在程序中使用示例的"
 "任何部分,以及自由分发本文档的副本。"
 
-#: C/index-in.docbook:7941
+#: index-in.docbook:7960
 msgid "The RefPtr smartpointer"
 msgstr "RefPtr智能指针"
 
-#: C/index-in.docbook:7942
+#: index-in.docbook:7961
 msgid ""
 "<classname>Glib::RefPtr</classname> is a smartpointer. Specifically, it is a "
 "reference-counting smartpointer. You might be familiar with <classname>std::"
@@ -13534,7 +13570,7 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/glibmm/-/issues/24\";>问题24</"
 "ulink>)。"
 
-#: C/index-in.docbook:7953
+#: index-in.docbook:7972
 msgid ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1RefPtr.";
 "html\">Reference</ulink>"
@@ -13542,16 +13578,16 @@ msgstr ""
 "<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1RefPtr.";
 "html\">参考</ulink>"
 
-#: C/index-in.docbook:7955
+#: index-in.docbook:7974
 msgid ""
 "A smartpointer acts much like a normal pointer. Here are a few examples."
 msgstr "智能指针的行为很像普通指针。这里有几个例子。"
 
-#: C/index-in.docbook:7958
+#: index-in.docbook:7977
 msgid "Copying"
 msgstr "复制"
 
-#: C/index-in.docbook:7959
+#: index-in.docbook:7978
 msgid ""
 "You can copy <classname>RefPtr</classname>s, just like normal pointers. But "
 "unlike normal pointers, you don't need to worry about deleting the "
@@ -13560,7 +13596,7 @@ msgstr ""
 "你可以像复制普通指针一样复制<classname>RefPtr</classname>,你不需要担心删除底"
 "层实例。"
 
-#: C/index-in.docbook:7964
+#: index-in.docbook:7983
 #, no-wrap
 msgid ""
 "\n"
@@ -13571,7 +13607,7 @@ msgstr ""
 "auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "auto refPixbuf2 = refPixbuf;\n"
 
-#: C/index-in.docbook:7968
+#: index-in.docbook:7987
 msgid ""
 "Of course this means that you can store <classname>RefPtr</classname>s in "
 "standard containers, such as <classname>std::vector</classname> or "
@@ -13580,7 +13616,7 @@ msgstr ""
 "这意味着你可以将<classname>RefPtr</classname>储存于标准容器中,例如:"
 "<classname>std::vector</classname>或<classname>std::list</classname>。"
 
-#: C/index-in.docbook:7972
+#: index-in.docbook:7991
 #, no-wrap
 msgid ""
 "\n"
@@ -13593,18 +13629,18 @@ msgstr ""
 "auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "listPixbufs.push_back(refPixbuf);\n"
 
-#: C/index-in.docbook:7979
+#: index-in.docbook:7998
 msgid "Dereferencing"
 msgstr "解引用"
 
-#: C/index-in.docbook:7980
+#: index-in.docbook:7999
 msgid ""
 "You can dereference a smartpointer with the -&gt; operator, to call the "
 "methods of the underlying instance, just like a normal pointer."
 msgstr ""
 "你可以使用-&gt;操作符解引用智能指针,就像使用普通指针访问底层实例的方法一样。"
 
-#: C/index-in.docbook:7983
+#: index-in.docbook:8002
 #, no-wrap
 msgid ""
 "\n"
@@ -13615,7 +13651,7 @@ msgstr ""
 "auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "auto width = refPixbuf-&gt;get_width();\n"
 
-#: C/index-in.docbook:7987
+#: index-in.docbook:8006
 msgid ""
 "You can also use the * operator and the <methodname>get()</methodname> "
 "method to access the underlying instance, but it's usually a bad idea to do "
@@ -13626,7 +13662,7 @@ msgstr ""
 "这不是一个好主意。除非你非常的谨慎没有犯错,否则你将得到一个不存在于引用计数"
 "中的指向底层实例的指针或底层实例的引用。"
 
-#: C/index-in.docbook:7992
+#: index-in.docbook:8011
 #, no-wrap
 msgid ""
 "\n"
@@ -13637,11 +13673,11 @@ msgstr ""
 "auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "auto&amp; underlying = *refPixbuf; // Possible, but not recommended\n"
 
-#: C/index-in.docbook:7998
+#: index-in.docbook:8017
 msgid "Casting"
 msgstr "类型转换"
 
-#: C/index-in.docbook:7999
+#: index-in.docbook:8018
 msgid ""
 "You can cast <classname>RefPtr</classname>s to base types, just like normal "
 "pointers."
@@ -13649,7 +13685,7 @@ msgstr ""
 "你可以像对正常指针进行类型转换一样,将<classname>RefPtr</classname>转换到基础"
 "类型。"
 
-#: C/index-in.docbook:8003
+#: index-in.docbook:8022
 #, no-wrap
 msgid ""
 "\n"
@@ -13660,7 +13696,7 @@ msgstr ""
 "auto refStore = Gtk::TreeStore::create(columns);\n"
 "Glib::RefPtr&lt;Gtk::TreeModel&gt; refModel = refStore;\n"
 
-#: C/index-in.docbook:8007
+#: index-in.docbook:8026
 msgid ""
 "This means that any method which takes a <type>const Glib::RefPtr&lt;"
 "BaseType&gt;&amp;</type> argument can also take a <type>const Glib::"
@@ -13671,13 +13707,13 @@ msgstr ""
 "数也能接受<type>const Glib::RefPtr&lt;DerivedType&gt;&amp;</type>对象。此转换"
 "和普通指针一样是隐式的。"
 
-#: C/index-in.docbook:8011
+#: index-in.docbook:8030
 msgid ""
 "You can also cast to a derived type, but the syntax is a little different "
 "than with a normal pointer."
 msgstr "你还可以将其转换为派生类型,但是语法和普通指针的语法略有不同。"
 
-#: C/index-in.docbook:8014
+#: index-in.docbook:8033
 #, no-wrap
 msgid ""
 "\n"
@@ -13688,18 +13724,18 @@ msgstr ""
 "auto refStore = std::dynamic_pointer_cast&lt;Gtk::TreeStore&gt;(refModel);\n"
 "auto refStore2 = std::static_pointer_cast&lt;Gtk::TreeStore&gt;(refModel);\n"
 
-#: C/index-in.docbook:8020
+#: index-in.docbook:8039
 msgid "Checking for nullptr"
 msgstr "nullptr检查"
 
-#: C/index-in.docbook:8021
+#: index-in.docbook:8040
 msgid ""
 "Just like normal pointers, you can check whether a <classname>RefPtr</"
 "classname> points to anything."
 msgstr ""
 "就像普通指针一样,你可以检查<classname>RefPtr</classname>是否指向了任何东西。"
 
-#: C/index-in.docbook:8025
+#: index-in.docbook:8044
 #, no-wrap
 msgid ""
 "\n"
@@ -13718,7 +13754,7 @@ msgstr ""
 "  ...\n"
 "}\n"
 
-#: C/index-in.docbook:8033
+#: index-in.docbook:8052
 msgid ""
 "But unlike normal pointers, <classname>RefPtr</classname>s are automatically "
 "initialized to <literal>nullptr</literal> so you don't need to remember to "
@@ -13727,11 +13763,11 @@ msgstr ""
 "和普通指针不一样的是,<classname>RefPtr</classname>将会自动初始化为"
 "<literal>nullptr</literal>,不需要你自己进行置空。"
 
-#: C/index-in.docbook:8039
+#: index-in.docbook:8058
 msgid "Constness"
 msgstr "常数"
 
-#: C/index-in.docbook:8040
+#: index-in.docbook:8059
 msgid ""
 "The use of the <literal>const</literal> keyword in C++ is not always clear. "
 "You might not realise that <type>const Something*</type> declares a pointer "
@@ -13742,7 +13778,7 @@ msgstr ""
 "<type>const Something*</type>声明了一个指向<type>const Something</type>的指"
 "针。这个指针的指向是可以被改变的,其指向的<type>Something</type>不能被改变。"
 
-#: C/index-in.docbook:8046
+#: index-in.docbook:8065
 msgid ""
 "Therefore, the <classname>RefPtr</classname> equivalent of <type>Something*</"
 "type> for a method parameter is <type>const Glib::RefPtr&lt;Something&gt;"
@@ -13754,7 +13790,7 @@ msgstr ""
 "<type>const Something*</type>等效的是<type>const Glib::RefPtr&lt;const "
 "Something&gt;&amp;</type>。"
 
-#: C/index-in.docbook:8053
+#: index-in.docbook:8072
 msgid ""
 "The <literal>const ... &amp;</literal> around both is just for efficiency, "
 "like using <classname>const std::string&amp;</classname> instead of "
@@ -13765,11 +13801,11 @@ msgstr ""
 "<classname>const std::string&amp;</classname>而不是用<classname>std::string</"
 "classname>一样,这是为了避免不必要的复制。"
 
-#: C/index-in.docbook:8068
+#: index-in.docbook:8087
 msgid "Connecting signal handlers"
 msgstr "连接到信号处理函数"
 
-#: C/index-in.docbook:8069
+#: index-in.docbook:8088
 msgid ""
 "<application>gtkmm</application> widget classes have signal accessor "
 "methods, such as <methodname>Gtk::Button::signal_clicked()</methodname>, "
@@ -13787,11 +13823,11 @@ msgstr ""
 "使用任何函数作为信号的处理程序,不过通常你会希望使用类的成员函数。在"
 "<application>GTK</application>的C代码中,这些信号处理程序被称为回调。"
 
-#: C/index-in.docbook:8079
+#: index-in.docbook:8098
 msgid "Here's an example of a signal handler being connected to a signal:"
 msgstr "这是将信号处理函数与信号相连接的示例:"
 
-#: C/index-in.docbook:8083
+#: index-in.docbook:8102
 #, no-wrap
 msgid ""
 "\n"
@@ -13822,17 +13858,17 @@ msgstr ""
 "    button.signal_clicked().connect(sigc::ptr_fun(&amp;on_button_clicked));\n"
 "}\n"
 
-#: C/index-in.docbook:8098
+#: index-in.docbook:8117
 msgid ""
 "There's rather a lot to think about in this (non-functional) code. First "
 "let's identify the parties involved:"
 msgstr "在此代码(非功能性)中有很多事情要考虑,首先让我们确定代码的行为:"
 
-#: C/index-in.docbook:8106
+#: index-in.docbook:8125
 msgid "The signal handler is <methodname>on_button_clicked()</methodname>."
 msgstr "信号处理函数是<methodname>on_button_clicked()</methodname>。"
 
-#: C/index-in.docbook:8112
+#: index-in.docbook:8131
 msgid ""
 "We're hooking it up to the <classname>Gtk::Button</classname> object called "
 "<varname>button</varname>."
@@ -13840,7 +13876,7 @@ msgstr ""
 "我们将其连接到一个名为<varname>button</varname>的<classname>Gtk::Button</"
 "classname>对象。"
 
-#: C/index-in.docbook:8119
+#: index-in.docbook:8138
 msgid ""
 "When the Button emits its <literal>clicked</literal> signal, "
 "<methodname>on_button_clicked()</methodname> will be called."
@@ -13848,11 +13884,11 @@ msgstr ""
 "当<varname>button</varname>发出<literal>clicked</literal>信号时,"
 "<methodname>on_button_clicked()</methodname>将被调用。"
 
-#: C/index-in.docbook:8127
+#: index-in.docbook:8146
 msgid "Now let's look at the connection again:"
 msgstr "现在,我们再次看一下连接:"
 
-#: C/index-in.docbook:8131
+#: index-in.docbook:8150
 #, no-wrap
 msgid ""
 "\n"
@@ -13865,7 +13901,7 @@ msgstr ""
 "    button.signal_clicked().connect(sigc::ptr_fun(&amp;on_button_clicked));\n"
 "    ...\n"
 
-#: C/index-in.docbook:8137
+#: index-in.docbook:8156
 msgid ""
 "Note that we don't pass a pointer to <methodname>on_button_clicked()</"
 "methodname> directly to the signal's <methodname>connect()</methodname> "
@@ -13877,7 +13913,7 @@ msgstr ""
 "<function>sigc::ptr_fun()</function>并将其返回值传递给<methodname>connect()</"
 "methodname>。"
 
-#: C/index-in.docbook:8144
+#: index-in.docbook:8163
 msgid ""
 "<function>sigc::ptr_fun()</function> generates a <classname>sigc::slot</"
 "classname>. A slot is an object which looks and feels like a function, but "
@@ -13891,11 +13927,11 @@ msgstr ""
 "数对象或是函子。<function>sigc::ptr_fun()</function>为独立函数或静态成员函数"
 "生成槽。<function>sigc::mem_fun()</function>为特定实例的成员函数生成槽。"
 
-#: C/index-in.docbook:8153
+#: index-in.docbook:8172
 msgid "Here's a slightly larger example of slots in action:"
 msgstr "这是一个在动作中使用槽的较大示例:"
 
-#: C/index-in.docbook:8157
+#: index-in.docbook:8176
 #, no-wrap
 msgid ""
 "\n"
@@ -13932,14 +13968,14 @@ msgstr ""
 "    button.signal_clicked().connect( sigc::mem_fun(some_object, &amp;some_class::on_button_clicked) );\n"
 "}\n"
 
-#: C/index-in.docbook:8175
+#: index-in.docbook:8194
 msgid ""
 "The first call to <methodname>connect()</methodname> is just like the one we "
 "saw last time; nothing new here."
 msgstr ""
 "第一个<methodname>connect()</methodname>调用与我们之前看到的没有什么区别。"
 
-#: C/index-in.docbook:8178
+#: index-in.docbook:8197
 msgid ""
 "The next is more interesting. <function>sigc::mem_fun()</function> is called "
 "with two arguments. The first argument is <parameter>some_object</"
@@ -13956,7 +13992,7 @@ msgstr ""
 "调用指定对象上函数指针所指向的成员函数,在这个情况下调用的是"
 "<methodname>some_object.on_button_clicked()</methodname>。"
 
-#: C/index-in.docbook:8188
+#: index-in.docbook:8207
 msgid ""
 "Another thing to note about this example is that we made the call to "
 "<methodname>connect()</methodname> twice for the same signal object. This is "
@@ -13967,7 +14003,7 @@ msgstr ""
 "<methodname>connect()</methodname>。所以当该按钮被点击时,这两个信号处理函数"
 "都将被调用。"
 
-#: C/index-in.docbook:8195
+#: index-in.docbook:8214
 msgid ""
 "We just told you that the button's <literal>clicked</literal> signal is "
 "expecting to call a method with no arguments. All signals have requirements "
@@ -13981,11 +14017,11 @@ msgstr ""
 "函数与期望所调用函数不接受参数的信号相关联,当然你可以通过使用"
 "<function>sigc::bind()</function>之类的适配器在一定程度上绕过这个限制。"
 
-#: C/index-in.docbook:8207
+#: index-in.docbook:8226
 msgid "Writing signal handlers"
 msgstr "编写信号处理函数"
 
-#: C/index-in.docbook:8209
+#: index-in.docbook:8228
 msgid ""
 "To find out what type of signal handler you can connect to a signal, you can "
 "look it up in the reference documentation or the header file. Here's an "
@@ -13996,7 +14032,7 @@ msgstr ""
 "件。这是一个你可能在<application>gtkmm</application>头文件中看到的信号声明示"
 "例:"
 
-#: C/index-in.docbook:8215
+#: index-in.docbook:8234
 #, no-wrap
 msgid ""
 "\n"
@@ -14005,7 +14041,7 @@ msgstr ""
 "\n"
 "Glib::SignalProxy&lt;bool(Gtk::DirectionType)&gt; signal_focus()\n"
 
-#: C/index-in.docbook:8219
+#: index-in.docbook:8238
 msgid ""
 "Other than the signal's name (<literal>focus</literal>), the template "
 "arguments are important to note here. The first argument, <type>bool</type>, "
@@ -14019,7 +14055,7 @@ msgstr ""
 "括号中的<type>Gtk::DirectionType</type>表示信号所期望调用的函数的第一个也是唯"
 "一一个参数的类型。通过查看参考文档你还可以看到参数的名称。"
 
-#: C/index-in.docbook:8228
+#: index-in.docbook:8247
 msgid ""
 "The same principles apply for signals which have more arguments. Here's one "
 "with three (taken from <filename>&lt;gtkmm/textbuffer.h&gt;</filename>):"
@@ -14027,7 +14063,7 @@ msgstr ""
 "对于接受期望调用的函数有更多参数的信号也是一样的阅读规则。以下声明取自"
 "<filename>&lt;gtkmm/textbuffer.h&gt;</filename>:"
 
-#: C/index-in.docbook:8233
+#: index-in.docbook:8252
 #, no-wrap
 msgid ""
 "\n"
@@ -14036,7 +14072,7 @@ msgstr ""
 "\n"
 "Glib::SignalProxy&lt;void(TextBuffer::iterator&amp;, const Glib::ustrin&amp;, int)&gt; signal_insert();\n"
 
-#: C/index-in.docbook:8237
+#: index-in.docbook:8256
 msgid ""
 "It follows the same form. The first type is <type>void</type>, so that "
 "should be our signal handler's return type. The following three types are "
@@ -14047,7 +14083,7 @@ msgstr ""
 "type>,括号内三种类型为函数的三个参数类型。所以我们的信号处理函数原型可能如下"
 "所示:"
 
-#: C/index-in.docbook:8244
+#: index-in.docbook:8263
 #, no-wrap
 msgid ""
 "\n"
@@ -14056,16 +14092,16 @@ msgstr ""
 "\n"
 "void on_insert(TextBuffer::iterator&amp; pos, const Glib::ustring&amp; text, int bytes)\n"
 
-#: C/index-in.docbook:8250
+#: index-in.docbook:8269
 msgid "Disconnecting signal handlers"
 msgstr "断开信号处理函数"
 
-#: C/index-in.docbook:8252
+#: index-in.docbook:8271
 msgid ""
 "Let's take another look at a Signal's <literal>connect</literal> method:"
 msgstr "让我们再来看看信号的<literal>connect</literal>成员函数:"
 
-#: C/index-in.docbook:8256
+#: index-in.docbook:8275
 #, no-wrap
 msgid ""
 "\n"
@@ -14074,7 +14110,7 @@ msgstr ""
 "\n"
 "sigc::connection signal&lt;void(int)&gt;::connect(const sigc::slot&lt;void(int)&gt;&amp;);\n"
 
-#: C/index-in.docbook:8260
+#: index-in.docbook:8279
 msgid ""
 "The returned <classname>sigc::connection</classname> can be used to control "
 "the connection. By keeping a connection object you can disconnect its "
@@ -14085,11 +14121,11 @@ msgstr ""
 "连接对象就可以断开与其相关联的信号处理函数的连接。若你想如此做,只需对对象调"
 "用<methodname>sigc::connection::disconnect()</methodname>成员函数即可。"
 
-#: C/index-in.docbook:8268
+#: index-in.docbook:8287
 msgid "Overriding default signal handlers"
 msgstr "覆写默认信号处理函数"
 
-#: C/index-in.docbook:8270
+#: index-in.docbook:8289
 msgid ""
 "So far we've told you to perform actions in response to button-presses and "
 "the like by handling signals. That's certainly a good way to do things, but "
@@ -14098,7 +14134,7 @@ msgstr ""
 "到现在为止,你已经学会了通过将自定义的信号处理函数连接到信号来响应按钮按下等"
 "动作。这是一种好方法,但不是唯一的方法。"
 
-#: C/index-in.docbook:8277
+#: index-in.docbook:8296
 msgid ""
 "Instead of laboriously connecting signal handlers to signals, you can simply "
 "make a new class which inherits from a widget - say, a Button - and then "
@@ -14108,7 +14144,7 @@ msgstr ""
 "你还可以创建一个从部件继承而来的新类,然后覆盖默认的信号处理函数(例如,"
 "Button::on_clicked()),这样你就可以省去将信号处理函数连接到信号的步骤。"
 
-#: C/index-in.docbook:8284
+#: index-in.docbook:8303
 msgid ""
 "Subclassing isn't always the best way to accomplish things. It is only "
 "useful when you want the widget to handle its own signal by itself. If you "
@@ -14122,7 +14158,7 @@ msgstr ""
 "个对象处理同一个信号或者需要一个信号处理函数处理不同的对象的信号的时候会很不"
 "方便。"
 
-#: C/index-in.docbook:8289
+#: index-in.docbook:8308
 msgid ""
 "<application>gtkmm</application> classes are designed with overriding in "
 "mind; they contain virtual member methods specifically intended to be "
@@ -14131,11 +14167,11 @@ msgstr ""
 "<application>gtkmm</application>类在设计的时候已经考虑到了覆写;它们包含了专"
 "门用于被覆写的虚成员函数。"
 
-#: C/index-in.docbook:8294
+#: index-in.docbook:8313
 msgid "Let's look at an example of overriding:"
 msgstr "让我们看一个覆写的例子:"
 
-#: C/index-in.docbook:8298
+#: index-in.docbook:8317
 #, no-wrap
 msgid ""
 "\n"
@@ -14172,7 +14208,7 @@ msgstr ""
 "  Gtk::Button::on_clicked();\n"
 "}\n"
 
-#: C/index-in.docbook:8316
+#: index-in.docbook:8335
 msgid ""
 "Here we define a new class called <classname>OverriddenButton</classname>, "
 "which inherits from <classname>Gtk::Button</classname>. The only thing we "
@@ -14190,7 +14226,7 @@ msgstr ""
 "数将字符串\"Hello World\"打印到<literal>stdout</literal>,然后调用"
 "<classname>Gtk::Button</classname>已被覆写本该被调用的成员函数。"
 
-#: C/index-in.docbook:8327
+#: index-in.docbook:8346
 msgid ""
 "You don't always need to call the parent's method; there are times when you "
 "might not want to. Note that we called the parent method <emphasis>after</"
@@ -14206,11 +14242,11 @@ msgstr ""
 "任何你想调用父方法的位置调用它。这对于通过连接到信号调用的信号处理函数是无法"
 "做到的。"
 
-#: C/index-in.docbook:8341
+#: index-in.docbook:8360
 msgid "Binding extra arguments"
 msgstr "绑定额外参数"
 
-#: C/index-in.docbook:8348
+#: index-in.docbook:8367
 #, no-wrap
 msgid ""
 "\n"
@@ -14219,7 +14255,7 @@ msgstr ""
 "\n"
 "m_button1.signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &amp;HelloWorld::on_button_clicked), 
\"button 1\"));\n"
 
-#: C/index-in.docbook:8355
+#: index-in.docbook:8374
 #, no-wrap
 msgid ""
 "\n"
@@ -14228,7 +14264,7 @@ msgstr ""
 "\n"
 "void on_button_clicked(const Glib::ustring&amp; data);\n"
 
-#: C/index-in.docbook:8342
+#: index-in.docbook:8361
 msgid ""
 "If you use one signal handler to catch the same signal from several widgets, "
 "you might like that signal handler to receive some extra information. For "
@@ -14250,7 +14286,7 @@ msgstr ""
 "添加额外的参数:<_:programlisting-2/>。当然,正常的\"clicked\"信号处理函数是没"
 "有参数的。"
 
-#: C/index-in.docbook:8360
+#: index-in.docbook:8379
 msgid ""
 "<function>sigc::bind()</function> is not commonly used, but you might find "
 "it helpful sometimes. If you are familiar with <application>GTK</"
@@ -14270,11 +14306,11 @@ msgstr ""
 "有效降低代码复杂度。而在<application>gtkmm</application>中派生部件类十分的简"
 "单,所以这种强侵入式的写法不再需要了。"
 
-#: C/index-in.docbook:8372
+#: index-in.docbook:8391
 msgid "X Event signals"
 msgstr "X事件信号"
 
-#: C/index-in.docbook:8373
+#: index-in.docbook:8392
 msgid ""
 "The <classname>Widget</classname> class has some special signals which "
 "correspond to the underlying X-Windows events. These are suffixed by "
@@ -14285,7 +14321,7 @@ msgstr ""
 "<literal>_event</literal>后缀。例如:<methodname>Widget::"
 "signal_button_press_event()</methodname>。"
 
-#: C/index-in.docbook:8379
+#: index-in.docbook:8398
 msgid ""
 "You might occasionally find it useful to handle X events when there's "
 "something you can't accomplish with normal signals. <classname>Gtk::Button</"
@@ -14299,7 +14335,7 @@ msgstr ""
 "标指针的坐标,而<literal>button_press_event</literal>信号会。X事件也用于处理"
 "按键。"
 
-#: C/index-in.docbook:8388
+#: index-in.docbook:8407
 msgid ""
 "These signals behave slightly differently. The value returned from the "
 "signal handler indicates whether it has fully \"handled\" the event. If the "
@@ -14312,7 +14348,7 @@ msgstr ""
 "将会把事件再次发送到下一个信号处理函数。如果返回值为<literal>true</literal>则"
 "不再传播信号不再调用其他的信号处理函数。"
 
-#: C/index-in.docbook:8393
+#: index-in.docbook:8412
 msgid ""
 "Handling an X event doesn't affect the Widget's other signals. If you handle "
 "<literal>button_press_event</literal> for <classname>Gtk::Button</"
@@ -14323,7 +14359,7 @@ msgstr ""
 "的<literal>button_press_event</literal>信号,你依旧可以得到<literal>clicked</"
 "literal>信号。这两个信号将几乎于同一时间被发出。"
 
-#: C/index-in.docbook:8402
+#: index-in.docbook:8421
 #, no-wrap
 msgid ""
 "\n"
@@ -14336,7 +14372,7 @@ msgstr ""
 "Gtk::Button button(\"label\");\n"
 "button.signal_button_press_event().connect( sigc::ptr_fun(&amp;on_button_press) );\n"
 
-#: C/index-in.docbook:8407
+#: index-in.docbook:8426
 msgid ""
 "When the mouse is over the button and a mouse button is pressed, "
 "<methodname>on_button_press()</methodname> will be called."
@@ -14344,7 +14380,7 @@ msgstr ""
 "当鼠标悬停在鼠标上方并按下鼠标按钮时,<methodname>on_button_press()</"
 "methodname>将被调用。"
 
-#: C/index-in.docbook:8412
+#: index-in.docbook:8431
 msgid ""
 "<type>GdkEventButton</type> is a structure containing the event's "
 "parameters, such as the coordinates of the mouse pointer at the time the "
@@ -14355,11 +14391,11 @@ msgstr ""
 "指针的坐标等一系列信息。对于不同的事件,有不同的<type>GdkEvent</type>结构体类"
 "型与之对应。"
 
-#: C/index-in.docbook:8420
+#: index-in.docbook:8439
 msgid "Signal Handler sequence"
 msgstr "信号处理函数序列"
 
-#: C/index-in.docbook:8421
+#: index-in.docbook:8440
 msgid ""
 "By default, your signal handlers are called after any previously-connected "
 "signal handlers. However, this can be a problem with the X Event signals. "
@@ -14376,7 +14412,7 @@ msgstr ""
 "被调用。你可以指定可选参数<literal>after</literal>为<literal>false</"
 "literal>,这样你的信号处理函数就总是会被调用。例如:"
 
-#: C/index-in.docbook:8429
+#: index-in.docbook:8448
 #, no-wrap
 msgid ""
 "\n"
@@ -14385,7 +14421,7 @@ msgstr ""
 "\n"
 "button.signal_button_press_event().connect( sigc::ptr_fun(&amp;on_mywindow_button_press), false );\n"
 
-#: C/index-in.docbook:8432
+#: index-in.docbook:8451
 msgid ""
 "The event is delivered first to the widget the event occurred in. If all "
 "signal handlers in that widget return <literal>false</literal> (indicating "
@@ -14397,11 +14433,11 @@ msgstr ""
 "<literal>false</literal>。则该信号将被传播到部件的父部件中。如果后续没有人处"
 "理事件,信号会一直传播到顶级窗口部件。"
 
-#: C/index-in.docbook:8443
+#: index-in.docbook:8462
 msgid "Exceptions in signal handlers"
 msgstr "信号处理函数中的异常"
 
-#: C/index-in.docbook:8444
+#: index-in.docbook:8463
 msgid ""
 "When a program is aborted because of an unhandled C++ exception, it's "
 "sometimes possible to use a debugger to find the location where the "
@@ -14411,7 +14447,7 @@ msgstr ""
 "当程序因未处理C++异常而终止时,有时候可以使用调试器查找抛出异常的位置。但是如"
 "果异常是在信号处理函数中抛出的,这将会比平常困难的多。"
 
-#: C/index-in.docbook:8449
+#: index-in.docbook:8468
 msgid ""
 "This section describes primarily what you can expect on a Linux system, when "
 "you use <ulink url=\"http://www.gnu.org/software/gdb/\";>the gdb debugger</"
@@ -14420,14 +14456,14 @@ msgstr ""
 "本小节组要介绍使用<ulink url=\"http://www.gnu.org/software/gdb/\";>gdb调试器</"
 "ulink>在Linux系统上调试异常。"
 
-#: C/index-in.docbook:8453
+#: index-in.docbook:8472
 msgid ""
 "First, let's look at a simple example where an exception is thrown from a "
 "normal function (no signal handler)."
 msgstr ""
 "首先让我们看一个简单的示例,其中的一个普通函数(非信号处理函数)抛出异常:"
 
-#: C/index-in.docbook:8457
+#: index-in.docbook:8476
 #, no-wrap
 msgid ""
 "\n"
@@ -14464,7 +14500,7 @@ msgstr ""
 "  return app-&gt;run();\n"
 "}\n"
 
-#: C/index-in.docbook:8477
+#: index-in.docbook:8496
 #, no-wrap
 msgid ""
 "\n"
@@ -14487,7 +14523,7 @@ msgstr ""
 "#7  0x08048864 in throwSomething () at without_signal.cc:6\n"
 "#8  0x0804887d in main (argc=1, argv=0xbfffecd4) at without_signal.cc:12\n"
 
-#: C/index-in.docbook:8474
+#: index-in.docbook:8493
 msgid ""
 "Here is an excerpt from a <application>gdb</application> session. Only the "
 "most interesting parts of the output are shown. <_:programlisting-1/> You "
@@ -14498,14 +14534,14 @@ msgstr ""
 "programlisting-1/> 你可以看到在<filename>without_signal.cc</filename>的第六行"
 "抛出了异常(<code>throw \"Something\";</code>)。"
 
-#: C/index-in.docbook:8490
+#: index-in.docbook:8509
 msgid ""
 "Now let's see what happens when an exception is thrown from a signal "
 "handler. Here's the source code."
 msgstr ""
 "现在,让我们看看从信号处理函数中抛出异常会发生什么。这是源代码:"
 
-#: C/index-in.docbook:8494
+#: index-in.docbook:8513
 #, no-wrap
 msgid ""
 "\n"
@@ -14544,7 +14580,7 @@ msgstr ""
 "  return app-&gt;run();\n"
 "}\n"
 
-#: C/index-in.docbook:8514
+#: index-in.docbook:8533
 #, no-wrap
 msgid ""
 "\n"
@@ -14575,7 +14611,7 @@ msgstr ""
 "#13 0x002e1b31 in Gtk::Application::run (this=0x804f300) at application.cc:178\n"
 "#14 0x08048ccc in main (argc=1, argv=0xbfffecd4) at with_signal.cc:16\n"
 
-#: C/index-in.docbook:8512
+#: index-in.docbook:8531
 msgid ""
 "And here's an excerpt from a <application>gdb</application> session. <_:"
 "programlisting-1/> The exception is caught in <application>glibmm</"
@@ -14591,7 +14627,7 @@ msgstr ""
 "异常都会被<application>glibmm</application>或<application>gtkmm</application>"
 "所捕获,并且<application>gdb</application>将无法看到异常被抛出的具体位置。"
 
-#: C/index-in.docbook:8534
+#: index-in.docbook:8553
 msgid ""
 "To see where the exception is thrown, you can use the <application>gdb</"
 "application> command <userinput>catch throw</userinput>."
@@ -14599,7 +14635,7 @@ msgstr ""
 "要查看哪里抛出了异常,你可以使用<application>gdb</application>的"
 "<userinput>catch throw</userinput>命令。"
 
-#: C/index-in.docbook:8538
+#: index-in.docbook:8557
 #, no-wrap
 msgid ""
 "\n"
@@ -14634,7 +14670,7 @@ msgstr ""
 "\n"
 "Program received signal SIGTRAP, Trace/breakpoint trap.\n"
 
-#: C/index-in.docbook:8558
+#: index-in.docbook:8577
 #, no-wrap
 msgid ""
 "\n"
@@ -14655,7 +14691,7 @@ msgstr ""
 "(gdb) set pagination off\n"
 "(gdb) run\n"
 
-#: C/index-in.docbook:8554
+#: index-in.docbook:8573
 msgid ""
 "If there are many caught exceptions before the interesting uncaught one, "
 "this method can be tedious. It can be automated with the following "
@@ -14669,11 +14705,11 @@ msgstr ""
 "programlisting-1/> 这些命令将在每次抛出时打印回溯信息并继续。通常最后一个或第"
 "一个<code>throw</code>是你所需要的。"
 
-#: C/index-in.docbook:8577
+#: index-in.docbook:8596
 msgid "Creating your own signals"
 msgstr "创建属于你的信号"
 
-#: C/index-in.docbook:8578
+#: index-in.docbook:8597
 msgid ""
 "Now that you've seen signals and signal handlers in <application>gtkmm</"
 "application>, you might like to use the same technique to allow interaction "
@@ -14684,7 +14720,7 @@ msgstr ""
 "能希望你自己的类使用相同的技术进行交互。你可以很轻松的使用"
 "<application>libsigc++</application>库实现这个需求。"
 
-#: C/index-in.docbook:8584
+#: index-in.docbook:8603
 msgid ""
 "This isn't purely a <application>gtkmm</application> or GUI issue. "
 "<application>gtkmm</application> uses <application>libsigc++</application> "
@@ -14698,7 +14734,7 @@ msgstr ""
 "号,你可以使用<classname>sigc::signal&lt;&gt;</classname>模版创建属于自己的C+"
 "+信号。"
 
-#: C/index-in.docbook:8591
+#: index-in.docbook:8610
 msgid ""
 "For instance, to create a signal that sends 2 parameters, a <type>bool</"
 "type> and an <type>int</type>, just declare a <classname>sigc::signal</"
@@ -14707,7 +14743,7 @@ msgstr ""
 "例如,要创建一个发送参数类型分别为<type>bool</type>和<type>int</type>的信号,"
 "只需要按如下所示声明一个<classname>sigc::signal</classname>即可:"
 
-#: C/index-in.docbook:8596
+#: index-in.docbook:8615
 #, no-wrap
 msgid ""
 "\n"
@@ -14716,7 +14752,7 @@ msgstr ""
 "\n"
 "sigc::signal&lt;void(bool, int)&gt; signal_something;\n"
 
-#: C/index-in.docbook:8599
+#: index-in.docbook:8618
 msgid ""
 "You could just declare that signal as a public member variable, but some "
 "people find that distasteful and prefer to make it available via an accessor "
@@ -14725,7 +14761,7 @@ msgstr ""
 "你可以简单的将信号声明为公有成员变量,但是有些人讨厌这种声明,他们更喜欢如下"
 "所示的访问器方法:"
 
-#: C/index-in.docbook:8604
+#: index-in.docbook:8623
 #, no-wrap
 msgid ""
 "\n"
@@ -14762,7 +14798,7 @@ msgstr ""
 "  return m_signal_something;\n"
 "}\n"
 
-#: C/index-in.docbook:8622
+#: index-in.docbook:8641
 msgid ""
 "You can then connect to the signal using the same syntax used when "
 "connecting to <application>gtkmm</application> signals. For instance,"
@@ -14770,7 +14806,7 @@ msgstr ""
 "然后你可以使用与连接<application>gtkmm</application>信号一样的语法连接到这个"
 "信号。例如:"
 
-#: C/index-in.docbook:8626
+#: index-in.docbook:8645
 #, no-wrap
 msgid ""
 "\n"
@@ -14781,11 +14817,11 @@ msgstr ""
 "server.signal_something().connect(\n"
 "  sigc::mem_fun(client, &amp;Client::on_server_something) );\n"
 
-#: C/index-in.docbook:8633
+#: index-in.docbook:8652
 msgid "This is a full working example that defines and uses custom signals."
 msgstr "这是一个完整的定义了并使用了自定义信号的示例。"
 
-#: C/index-in.docbook:8637
+#: index-in.docbook:8656
 msgid ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/signals/custom/\">Source Code</ulink>"
@@ -14793,11 +14829,11 @@ msgstr ""
 "<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/";
 "examples/book/signals/custom/\">源代码</ulink>"
 
-#: C/index-in.docbook:8645
+#: index-in.docbook:8664
 msgid "Comparison with other signalling systems"
 msgstr "与其他信号系统的比较"
 
-#: C/index-in.docbook:8646
+#: index-in.docbook:8665
 msgid ""
 "(An aside: <application>GTK</application> calls this scheme \"signalling\"; "
 "the sharp-eyed reader with GUI toolkit experience will note that this same "
@@ -14819,7 +14855,7 @@ msgstr ""
 "<application>gtkmm</application>中,信号对象扮演广播者的角色,而槽扮演监听者"
 "的角色。"
 
-#: C/index-in.docbook:8660
+#: index-in.docbook:8679
 msgid ""
 "<application>gtkmm</application> signal handlers are strongly-typed, whereas "
 "<application>GTK</application> C code allows you to connect a callback with "
@@ -14832,7 +14868,7 @@ msgstr ""
 "的回调函数,这会导致运行时出现段错误。并且和<application>Qt</application>不"
 "同,<application>gtkmm</application>不需要对C++语言进行修改即可达到此目的。"
 
-#: C/index-in.docbook:8666
+#: index-in.docbook:8685
 msgid ""
 "Re. Overriding signal handlers: You can do this in the straight-C world of "
 "GTK too; that's what GTK's object system is for. But in GTK, you have to go "
@@ -14844,7 +14880,7 @@ msgstr ""
 "言对于高级特性的支持特别弱,你需要编写一系列复杂的代码才能做到继承和重载。而"
 "在C++中,因为语言本身就支持这些特性,所以你可以让编译器代为完成肮脏的工作。"
 
-#: C/index-in.docbook:8674
+#: index-in.docbook:8693
 msgid ""
 "This is one of the places where the beauty of C++ really comes out. One "
 "wouldn't think of subclassing a GTK widget simply to override its action "
@@ -14858,11 +14894,11 @@ msgstr ""
 "+中覆写成员函数非常简单,因此为了修改部件的某个行为而将其子类化是完全可行且明"
 "智的。"
 
-#: C/index-in.docbook:8685
+#: index-in.docbook:8704
 msgid "<application>gtkmm</application> and Win32"
 msgstr "<application>gtkmm</application>与Win32"
 
-#: C/index-in.docbook:8686
+#: index-in.docbook:8705
 msgid ""
 "One of the major advantages of <application>gtkmm</application> is that it "
 "is crossplatform. <application>gtkmm</application> programs written on other "
@@ -14873,7 +14909,7 @@ msgstr ""
 "的<application>gtkmm</application>程序只需要修改很少一部分的源代码就可以从"
 "GNU/Linux移植到Windows,当然反之亦然。"
 
-#: C/index-in.docbook:8691
+#: index-in.docbook:8710
 msgid ""
 "<application>gtkmm</application> currently works with the <ulink url="
 "\"http://mingw.org/\";>MinGW/GCC compiler</ulink> with a compiler version "
@@ -14896,7 +14932,7 @@ msgstr ""
 "情况下可以混合使用VS2017和2019完成构建,但是在构建带有-mm依赖的"
 "<application>gtkmm</application>时千万不要如此做。"
 
-#: C/index-in.docbook:8704
+#: index-in.docbook:8723
 msgid ""
 "Refer to the <ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm/tree/master/";
 "README.win32\">README.win32</ulink>, as well as the <ulink url=\"https://";
@@ -14909,11 +14945,11 @@ msgstr ""
 "GNOME/gtkmm/tree/master/MSVC_NMake/README\">自述文件</ulink>中关于如何在"
 "WIndwos上构建<application>gtkmm</application>的说明。"
 
-#: C/index-in.docbook:8711
+#: index-in.docbook:8730
 msgid "Working with gtkmm's Source Code"
 msgstr "使用gtkmm源代码"
 
-#: C/index-in.docbook:8712
+#: index-in.docbook:8731
 msgid ""
 "If you are interested in helping out with the development of "
 "<application>gtkmm</application>, or fixing a bug in <application>gtkmm</"
@@ -14928,7 +14964,7 @@ msgstr ""
 "application>的开发版。但是你不应该将开发版本覆盖稳定版。你应该选择已存在"
 "<application>gtkmm</application>版本的目录外的路径安装开发版。"
 
-#: C/index-in.docbook:8719
+#: index-in.docbook:8738
 msgid ""
 "The easiest way to do this is using <ulink url=\"https://wiki.gnome.org/";
 "Projects/Jhbuild\">jhbuild</ulink>. <application>jhbuild</application> is a "
@@ -14949,7 +14985,7 @@ msgstr ""
 "最新信息,请参考<ulink url=\"http://developer.gnome.org/jhbuild/unstable/";
 "\">jhbuild手册</ulink>。"
 
-#: C/index-in.docbook:8731
+#: index-in.docbook:8750
 msgid ""
 "Note that to build <application>gtkmm</application> from git, you'll often "
 "need to build many of its dependencies from git as well. "
@@ -14963,7 +14999,7 @@ msgstr ""
 "和安装这些依赖依旧需要相当长的时间。在这过程中你可能会遇到构建问题,因为"
 "master分支并不总是能构建成功的,当然构建问题通常很快就会被修复。"
 
-#: C/index-in.docbook:8739
+#: index-in.docbook:8758
 msgid ""
 "<application>gnome-build-meta</application> is an alternative to "
 "<application>jhbuild</application>. It is described at the <ulink url="
@@ -14976,16 +15012,16 @@ msgstr ""
 "BuildSystemComponent\">构建系统组件</ulink>维基页面对其进行了详细的介绍,在这"
 "里我们只介绍<application>jhbuild</application>。"
 
-#: C/index-in.docbook:8746
+#: index-in.docbook:8765
 msgid "Setting up jhbuild"
 msgstr "设置jhbuild"
 
-#: C/index-in.docbook:8755
+#: index-in.docbook:8774
 #, no-wrap
 msgid "$ cp examples/sample.jhbuildrc ~/.config/jhbuildrc"
 msgstr "$ cp examples/sample.jhbuildrc ~/.config/jhbuildrc"
 
-#: C/index-in.docbook:8747
+#: index-in.docbook:8766
 msgid ""
 "To set up <application>jhbuild</application>, follow the basic installation "
 "instructions from the <ulink url=\"http://developer.gnome.org/jhbuild/";
@@ -15001,7 +15037,7 @@ msgstr ""
 "application>目录执行以下命令将示例<application>jhbuild</application>配置文件"
 "复制到你的主目录中:<_:screen-1/>"
 
-#: C/index-in.docbook:8757
+#: index-in.docbook:8776
 msgid ""
 "The <application>gtkmm</application> module is defined in the "
 "<filename>gnome-suites-core-deps-latest.modules</filename> moduleset. So "
@@ -15012,12 +15048,12 @@ msgstr ""
 "latest.modules</filename>中的模块组(moduleset)定义。因此你需要按以下方式编辑"
 "你的<filename>jhbuildrc</filename>文件并设置你的模块组:"
 
-#: C/index-in.docbook:8762
+#: index-in.docbook:8781
 #, no-wrap
 msgid "moduleset = 'gnome-suites-core-deps-latest'"
 msgstr "moduleset = 'gnome-suites-core-deps-latest'"
 
-#: C/index-in.docbook:8763
+#: index-in.docbook:8782
 msgid ""
 "After setting the correct moduleset, you need to tell <application>jhbuild</"
 "application> which module or modules to build. To build <application>gtkmm</"
@@ -15028,12 +15064,12 @@ msgstr ""
 "构建。想要构建<application>gtkmm</application>以及所有相关的依赖项,请按如下"
 "所示设置<varname>modules</varname>:"
 
-#: C/index-in.docbook:8769
+#: index-in.docbook:8788
 #, no-wrap
 msgid "modules = [ 'gtkmm' ]"
 msgstr "modules = [ 'gtkmm' ]"
 
-#: C/index-in.docbook:8770
+#: index-in.docbook:8789
 msgid ""
 "You can build several modules by setting the <varname>modules</varname> "
 "variable to a meta-package, e.g. <literal>meta-gnome-core</literal>, or "
@@ -15048,11 +15084,11 @@ msgstr ""
 "哪些模块。你始终可以用命令行指定其他模块组来构建其他模块组(例如:"
 "<command>jhbuild build gtkmm</command>)。"
 
-#: C/index-in.docbook:8780
+#: index-in.docbook:8799
 msgid "Setting a prefix"
 msgstr "设置前缀"
 
-#: C/index-in.docbook:8781
+#: index-in.docbook:8800
 msgid ""
 "By default, <application>jhbuild</application>'s configuration is configured "
 "to install all software built with <application>jhbuild</application> under "
@@ -15069,7 +15105,7 @@ msgstr ""
 "前缀设置为<filename>/usr</filename>。如果你遵循jhbuild的说明进行操作,该前缀"
 "属于你的用户,你将无需以<literal>root</literal>用户权限运行jhbuild。"
 
-#: C/index-in.docbook:8793
+#: index-in.docbook:8812
 msgid ""
 "When you downloaded <application>jhbuild</application> from the git "
 "repository, you got a number of <filename>.modules</filename> files, "
@@ -15086,12 +15122,12 @@ msgstr ""
 "<filename>.jhbuildrc</filename>文件中定义<varname>use_local_modulesets</"
 "varname>以修改此行为。"
 
-#: C/index-in.docbook:8804
+#: index-in.docbook:8823
 msgid ""
 "Installing and Using the git version of <application>gtkmm</application>"
 msgstr "安装和使用<application>gtkmm</application>的git版本"
 
-#: C/index-in.docbook:8812
+#: index-in.docbook:8831
 #, no-wrap
 msgid ""
 "$ jhbuild bootstrap\n"
@@ -15100,7 +15136,7 @@ msgstr ""
 "$ jhbuild bootstrap\n"
 "$ jhbuild sanitycheck"
 
-#: C/index-in.docbook:8805
+#: index-in.docbook:8824
 msgid ""
 "Once you've configured <application>jhbuild</application> as described "
 "above, building <application>gtkmm</application> should be relatively "
@@ -15114,14 +15150,14 @@ msgstr ""
 "application>时,你应运行以下命令序列,以确保<application>jhbuild</"
 "application>拥有所有所需的工具以及验证设置是否正确:<_:screen-1/>"
 
-#: C/index-in.docbook:8816
+#: index-in.docbook:8835
 msgid ""
 "Installing <application>gtkmm</application> with <application>jhbuild</"
 "application>"
 msgstr ""
 "用<application>jhbuild</application>安装<application>gtkmm</application>"
 
-#: C/index-in.docbook:8817
+#: index-in.docbook:8836
 msgid ""
 "If everything worked correctly, you should be able to build "
 "<application>gtkmm</application> and all of its dependencies from git by "
@@ -15134,7 +15170,7 @@ msgstr ""
 "那也可以使用命令<command>jhbuild build gtkmm</command>来进行构建)来从git构建"
 "<application>gtkmm</application>以及所有有关的依赖项。"
 
-#: C/index-in.docbook:8824
+#: index-in.docbook:8843
 msgid ""
 "This command will build and install a series of modules and will probably "
 "take quite a long time the first time through. After the first time, "
@@ -15151,11 +15187,11 @@ msgstr ""
 "gtkmm</command>重新构建<application>gtkmm</application>(不需要重新构建相关依"
 "赖)。"
 
-#: C/index-in.docbook:8835
+#: index-in.docbook:8854
 msgid "Using the git version of <application>gtkmm</application>"
 msgstr "使用git版本的<application>gtkmm</application>"
 
-#: C/index-in.docbook:8836
+#: index-in.docbook:8855
 msgid ""
 "After you've installed the git version of <application>gtkmm</application>, "
 "you're ready to start using and experimenting with it. In order to use the "
@@ -15178,7 +15214,7 @@ msgstr ""
 "有环境变量的shell。现在如果你和往常一样重新配置并构建你的项目,它应该链接到新"
 "的库。要返回之前的环境你只需要<application>jhbuild</application> shell即可。"
 
-#: C/index-in.docbook:8850
+#: index-in.docbook:8869
 msgid ""
 "Once you've built your software, you'll need to run your program within the "
 "jhbuild environment as well. To do this, you can again use the "
@@ -15197,11 +15233,11 @@ msgstr ""
 "command-name</command>。在这种情况下,命令将在设置了正确的环境变量的环境中运"
 "行,命令退出后,环境将恢复到之前的状态。"
 
-#: C/index-in.docbook:8867
+#: index-in.docbook:8886
 msgid "Wrapping C Libraries with gmmproc"
 msgstr "使用gmmproc封装C库"
 
-#: C/index-in.docbook:8868
+#: index-in.docbook:8887
 msgid ""
 "<application>gtkmm</application> uses the <command>gmmproc</command> tool to "
 "generate most of its source code, using .defs files that define the APIs of "
@@ -15213,18 +15249,18 @@ msgstr ""
 "库的API。因此,可以很容易为其他基于glib/Gobject的库创建类似于gtkmm风格的封"
 "装。"
 
-#: C/index-in.docbook:8873
+#: index-in.docbook:8892
 msgid ""
 "This involves a variety of tools, some of them crufty, but at least they "
 "work, and has been used successfully by several projects."
 msgstr ""
 "这涉及到很多工具,其中有一些很笨重,不过还算能用,并且已经被多个项目使用。"
 
-#: C/index-in.docbook:8878
+#: index-in.docbook:8897
 msgid "The build structure"
 msgstr "构建结构"
 
-#: C/index-in.docbook:8879
+#: index-in.docbook:8898
 msgid ""
 "Generation of the source code for a gtkmm-style wrapper API requires use of "
 "tools such as <command>gmmproc</command> and <filename>generate_wrap_init."
@@ -15240,7 +15276,7 @@ msgstr ""
 "利用<application>mm-common</application>模块提供的构建基础设施。选择一个已经"
 "存在绑定的模块作为示例对于开始使用gmmproc很有帮助。"
 
-#: C/index-in.docbook:8887
+#: index-in.docbook:8906
 msgid ""
 "For instance, let's pretend that we are wrapping a C library called "
 "libsomething. It provides a <classname>GObject</classname>-based API with "
@@ -15251,11 +15287,11 @@ msgstr ""
 "classname> API的具名类型,例如类型名为:<classname>SomeWidget</classname>和"
 "<classname>SomeStuff</classname>。"
 
-#: C/index-in.docbook:8893
+#: index-in.docbook:8912
 msgid "Copying the skeleton project"
 msgstr "复制skeleton项目"
 
-#: C/index-in.docbook:8895
+#: index-in.docbook:8914
 msgid ""
 "Typically our wrapper library would be called libsomethingmm. We can start "
 "by copying the <ulink url=\"https://gitlab.gnome.org/GNOME/mm-common/tree/";
@@ -15270,7 +15306,7 @@ msgstr ""
 "common</application> 1.0.0开始skeleton应用程序使用<ulink url=\"https://";
 "mesonbuild.com/\">Meson构建系统</ulink>进行构建。"
 
-#: C/index-in.docbook:8901
+#: index-in.docbook:8920
 #, no-wrap
 msgid ""
 "\n"
@@ -15281,11 +15317,11 @@ msgstr ""
 "  $ git clone https://gitlab.gnome.org/GNOME/mm-common.git\n";
 "  $ cp -a mm-common/skeletonmm libsomethingmm\n"
 
-#: C/index-in.docbook:8910
+#: index-in.docbook:8929
 msgid "<filename>libsomethingmm</filename>: The top-level directory."
 msgstr "<filename>libsomethingmm</filename>:顶级目录。"
 
-#: C/index-in.docbook:8912
+#: index-in.docbook:8931
 msgid ""
 "<filename>libsomething</filename>: Contains the main include file and the "
 "pkg-config .pc file."
@@ -15293,16 +15329,16 @@ msgstr ""
 "<filename>libsomething</filename>:包含主要的被包含文件(被#include的文件)和由"
 "<application>pkg-config</application>所需的.pc文件。"
 
-#: C/index-in.docbook:8914
+#: index-in.docbook:8933
 msgid "<filename>src</filename>: Contains .hg and .ccg source files."
 msgstr "<filename>src</filename>:包含.hg和.ccg源文件。"
 
-#: C/index-in.docbook:8915
+#: index-in.docbook:8934
 msgid ""
 "<filename>libsomethingmm</filename>: Contains hand-written .h and .cc files."
 msgstr "<filename>libsomethingmm</filename>:包含手写的.h和.cc文件。"
 
-#: C/index-in.docbook:8905
+#: index-in.docbook:8924
 msgid ""
 "This provides a directory structure for the source .hg and .ccg files and "
 "the hand-written .h and .cc files, with <filename>meson.build</filename> "
@@ -15314,7 +15350,7 @@ msgstr ""
 "filename>文件可以通过各种变量指定Meson使用哪些文件进行编译。适当的重命名目录"
 "后,目录结构将如下所示:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:8926
+#: index-in.docbook:8945
 #, no-wrap
 msgid ""
 "\n"
@@ -15327,7 +15363,7 @@ msgstr ""
 "    d=\"${f%/*}\"; b=\"${f##*/}\"; mv \"$f\" \"$d/${b//skeleton/libsomething}\"; \\\n"
 "  done\n"
 
-#: C/index-in.docbook:8924
+#: index-in.docbook:8943
 msgid ""
 "As well as renaming the directories, we should rename some of the source "
 "files. For instance: <_:programlisting-1/> A number of the skeleton files "
@@ -15336,7 +15372,7 @@ msgstr ""
 "除了重命名目录外,我们还应该重命名一些源文件。例如:<_:programlisting-1/>然"
 "后,还有些skeleton文件需要在特定项目内容完成后填写。"
 
-#: C/index-in.docbook:8933
+#: index-in.docbook:8952
 msgid ""
 "Note that files ending in <filename>.in</filename> will be used to generate "
 "files with the same name but without the <filename>.in</filename> suffix, by "
@@ -15345,7 +15381,7 @@ msgstr ""
 "请注意,在配置阶段中某些变量将会替换为实际值,这将会生成与<filename>.in</"
 "filename>相同名称但不带<filename>.in</filename>后缀的文件。"
 
-#: C/index-in.docbook:8936
+#: index-in.docbook:8955
 msgid ""
 "Generated files are saved in the build tree, which is separated from the "
 "source tree when <command>meson</command> and <command>ninja</command> are "
@@ -15354,11 +15390,11 @@ msgstr ""
 "生成的文件被保存在构建树中,当使用<command>meson</command>和<command>ninja</"
 "command>时构建树会与源树分离。"
 
-#: C/index-in.docbook:8941
+#: index-in.docbook:8960
 msgid "Modifying build files"
 msgstr "修改构建文件"
 
-#: C/index-in.docbook:8943
+#: index-in.docbook:8962
 msgid ""
 "Now we edit the files to adapt them to our needs. You might prefer to use a "
 "multiple-file search-replace utility for this, such as <command>regexxer</"
@@ -15371,7 +15407,7 @@ msgstr ""
 "提供的所有文件几乎都包含了占位符。因此,应该进行全局替换而不是仅对Meson文件替"
 "换。"
 
-#: C/index-in.docbook:8947
+#: index-in.docbook:8966
 msgid ""
 "All mentions of <varname>skeleton</varname> should be replaced by the "
 "correct name of the C library you are wrapping, such as \"something\" or "
@@ -15384,7 +15420,7 @@ msgstr ""
 "varname>都应该被替换成\"SOMETHING\"或\"LIBSOMETHING\",以及所有的"
 "<varname>Skeleton</varname>都应该被替换为\"Something\"。"
 
-#: C/index-in.docbook:8951
+#: index-in.docbook:8970
 msgid ""
 "Likewise, replace all instances of <varname>Joe Hacker</varname> by the name "
 "of the intended copyright holder, which is probably you. Do the same for the "
@@ -15394,11 +15430,11 @@ msgstr ""
 "就是你的名称。然后对<varname>joe example com</varname>邮件地址进行同样的操"
 "作。"
 
-#: C/index-in.docbook:8956
+#: index-in.docbook:8975
 msgid "meson.build in the top-level directory"
 msgstr "顶级目录中的meson.build"
 
-#: C/index-in.docbook:8959
+#: index-in.docbook:8978
 msgid ""
 "It is common for binding modules to track the version number of the library "
 "they are wrapping. So, for instance, if the C library is at version 1.23.4, "
@@ -15410,14 +15446,14 @@ msgstr ""
 "的初始版本为1.23.0。但是请尽量避免以偶数次要版本开始,因为这通常意味着该版本"
 "是稳定版本。"
 
-#: C/index-in.docbook:8964
+#: index-in.docbook:8983
 msgid ""
 "In the <function>project()</function> function, change the license and the C+"
 "+ version, if necessary."
 msgstr ""
 "如果有必要,请在<function>project()</function>函数中修改许可证和C++版本。"
 
-#: C/index-in.docbook:8966
+#: index-in.docbook:8985
 msgid ""
 "You probably need to add more required modules than <application>glibmm</"
 "application> and <application>skeleton</application> "
@@ -15426,11 +15462,11 @@ msgstr ""
 "你可能需要添加除<application>glibmm</application>和"
 "<application>skeleton(libsomething)</application>以外的必需模块。"
 
-#: C/index-in.docbook:8974
+#: index-in.docbook:8993
 msgid "Other meson.build files"
 msgstr "其他meson.build文件"
 
-#: C/index-in.docbook:8977
+#: index-in.docbook:8996
 msgid ""
 "<filename>skeleton/meson.build</filename>: Perhaps not much to change here "
 "more than the global name substitutions."
@@ -15438,34 +15474,34 @@ msgstr ""
 "<filename>skeleton/meson.build</filename>:在这除了全局替换以外基本上不需要做"
 "什么。"
 
-#: C/index-in.docbook:8980
+#: index-in.docbook:8999
 msgid "<filename>skeleton/skeletonmm/meson.build</filename>"
 msgstr "<filename>skeleton/skeletonmm/meson.build</filename>"
 
-#: C/index-in.docbook:8983
+#: index-in.docbook:9002
 msgid "<varname>defs_basefiles</varname>"
 msgstr "<varname>defs_basefiles</varname>"
 
-#: C/index-in.docbook:8984
+#: index-in.docbook:9003
 msgid "If we have more .defs and docs.xml files, we add them here."
 msgstr "在这添加额外的.defs和docs.xml文件"
 
-#: C/index-in.docbook:8988
+#: index-in.docbook:9007
 msgid "<varname>hg_ccg_basenames</varname>"
 msgstr "<varname>hg_ccg_basenames</varname>"
 
-#: C/index-in.docbook:8989
+#: index-in.docbook:9008
 msgid ""
 "We must mention all of our <filename>.hg</filename> and <filename>.ccg</"
 "filename> files here."
 msgstr ""
 "必须在这里提及所有的<filename>.hg</filename>和<filename>.ccg</filename>。"
 
-#: C/index-in.docbook:8993
+#: index-in.docbook:9012
 msgid "<varname>extra_cc_files, extra_h_files</varname>"
 msgstr "<varname>extra_cc_files, extra_h_files</varname>"
 
-#: C/index-in.docbook:8994
+#: index-in.docbook:9013
 msgid ""
 "Any additional hand-written <filename>.h</filename> and <filename>.cc</"
 "filename> source files go here."
@@ -15473,7 +15509,7 @@ msgstr ""
 "所有手写的<filename>.h</filename>和<filename>.cc</filename>源文件都需要写在"
 "这。"
 
-#: C/index-in.docbook:8975
+#: index-in.docbook:8994
 msgid ""
 "Next we must adapt the other <filename>meson.build</filename> files: <_:"
 "itemizedlist-1/>"
@@ -15481,11 +15517,11 @@ msgstr ""
 "接下来我们必须对其他的<filename>meson.build</filename>文件进行修改:<_:"
 "itemizedlist-1/>"
 
-#: C/index-in.docbook:9004
+#: index-in.docbook:9023
 msgid "Creating .hg and .ccg files"
 msgstr "创建.hg个.ccg文件"
 
-#: C/index-in.docbook:9005
+#: index-in.docbook:9024
 msgid ""
 "We should now create our first <filename>.hg</filename> and <filename>.ccg</"
 "filename> files, to wrap one of the objects in the C library. One pair of "
@@ -15497,7 +15533,7 @@ msgstr ""
 "<filename>skeleton.ccg</filename>和<filename>skeleton.hg</filename>。请根据需"
 "要创建这些文件的副本。"
 
-#: C/index-in.docbook:9009
+#: index-in.docbook:9028
 msgid ""
 "In the <link linkend=\"sec-wrapping-hg-files\">.hg and .ccg files</link> "
 "section you can learn about the syntax used in these files."
@@ -15505,35 +15541,35 @@ msgstr ""
 "在<link linkend=\"sec-wrapping-hg-files\">.hg和.ccg文件</link>小节你可以学到"
 "这些文件使用的语法。"
 
-#: C/index-in.docbook:9016
+#: index-in.docbook:9035
 msgid "Generating the .defs files."
 msgstr "生成.defs文件"
 
-#: C/index-in.docbook:9020
+#: index-in.docbook:9039
 msgid "objects (GObjects, widgets, interfaces, boxed-types and plain structs)"
 msgstr "对象(GObjects、部件、接口、装箱类型、普通结构体)"
 
-#: C/index-in.docbook:9021
+#: index-in.docbook:9040
 msgid "functions"
 msgstr "函数"
 
-#: C/index-in.docbook:9022
+#: index-in.docbook:9041
 msgid "enums"
 msgstr "枚举"
 
-#: C/index-in.docbook:9023
+#: index-in.docbook:9042
 msgid "signals"
 msgstr "信号"
 
-#: C/index-in.docbook:9024
+#: index-in.docbook:9043
 msgid "properties"
 msgstr "属性"
 
-#: C/index-in.docbook:9025
+#: index-in.docbook:9044
 msgid "vfuncs"
 msgstr "虚函数(vfuncs)"
 
-#: C/index-in.docbook:9017
+#: index-in.docbook:9036
 msgid ""
 "The <filename>.defs</filename> files are text files, in a lisp format, that "
 "describe the API of a C library, including its <_:itemizedlist-1/>"
@@ -15541,47 +15577,47 @@ msgstr ""
 "<filename>.defs</filename>是一种使用lisp格式的文本文件,它描述了C库的API,其"
 "中包括了以下内容:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:9034
+#: index-in.docbook:9053
 msgid "<filename>gtk.defs</filename>"
 msgstr "<filename>gtk.defs</filename>"
 
-#: C/index-in.docbook:9035
+#: index-in.docbook:9054
 msgid "Includes the other files."
 msgstr "包含其他文件。"
 
-#: C/index-in.docbook:9038
+#: index-in.docbook:9057
 msgid "<filename>gtk_methods.defs</filename>"
 msgstr "<filename>gtk_methods.defs</filename>"
 
-#: C/index-in.docbook:9039
+#: index-in.docbook:9058
 msgid "Objects and functions."
 msgstr "对象和函数。"
 
-#: C/index-in.docbook:9042
+#: index-in.docbook:9061
 msgid "<filename>gtk_enums.defs</filename>"
 msgstr "<filename>gtk_enums.defs</filename>"
 
-#: C/index-in.docbook:9043
+#: index-in.docbook:9062
 msgid "Enumerations."
 msgstr "枚举。"
 
-#: C/index-in.docbook:9046
+#: index-in.docbook:9065
 msgid "<filename>gtk_signals.defs</filename>"
 msgstr "<filename>gtk_signals.defs</filename>"
 
-#: C/index-in.docbook:9047
+#: index-in.docbook:9066
 msgid "Signals and properties."
 msgstr "信号和属性。"
 
-#: C/index-in.docbook:9050
+#: index-in.docbook:9069
 msgid "<filename>gtk_vfuncs.defs</filename>"
 msgstr "<filename>gtk_vfuncs.defs</filename>"
 
-#: C/index-in.docbook:9051
+#: index-in.docbook:9070
 msgid "vfuncs (function pointer member fields in structs), written by hand."
 msgstr "虚函数(结构体中的函数指针字段),手动编写。"
 
-#: C/index-in.docbook:9028
+#: index-in.docbook:9047
 msgid ""
 "At the moment, we have separate tools for generating different parts of "
 "these <filename>.defs</filename>, so we split them up into separate files. "
@@ -15593,7 +15629,7 @@ msgstr ""
 "我们将它们拆分为单独的文件,例如在gtkmm源的<filename>gtk/src</filename>目录中"
 "你将看到以下文件:<_:variablelist-1/>"
 
-#: C/index-in.docbook:9055
+#: index-in.docbook:9074
 msgid ""
 "The <filename>skeletonmm/tools/generate_defs_and_docs.sh</filename> script "
 "generates all <filename>.defs</filename> files and the <filename>*_docs.xml</"
@@ -15604,11 +15640,11 @@ msgstr ""
 "些<filename>.defs</filename>以及<filename>*_docs.xml</filename>文件,如该小节"
 "的<link linkend=\"sec-wrapping-documentation\">文档</link>所述。"
 
-#: C/index-in.docbook:9061
+#: index-in.docbook:9080
 msgid "Generating the methods .defs"
 msgstr "生成_methods.defs文件"
 
-#: C/index-in.docbook:9062
+#: index-in.docbook:9081
 msgid ""
 "This <filename>.defs</filename> file describes objects and their functions. "
 "It is generated by the <command>h2def.py</command> script which you can find "
@@ -15618,7 +15654,7 @@ msgstr ""
 "py</command>脚本生成的,你可以在glibmm的<filename>tools/defs_gen</filename>文"
 "件夹中找到该脚本。例如:"
 
-#: C/index-in.docbook:9066
+#: index-in.docbook:9085
 #, no-wrap
 msgid ""
 "\n"
@@ -15627,11 +15663,11 @@ msgstr ""
 "\n"
 "$ ./h2def.py /usr/include/gtk-4.0/gtk/*.h &gt; gtk_methods.defs\n"
 
-#: C/index-in.docbook:9072
+#: index-in.docbook:9091
 msgid "Generating the enums .defs"
 msgstr "生成_enums.defs文件"
 
-#: C/index-in.docbook:9073
+#: index-in.docbook:9092
 msgid ""
 "This <filename>.defs</filename> file describes enum types and their possible "
 "values. It is generated by the <filename>enum.pl</filename> script which you "
@@ -15641,7 +15677,7 @@ msgstr ""
 "<filename>enum.pl</filename>脚本生成的,你可以在glibmm的<filename>tools</"
 "filename>文件夹中找到该脚本。例如:"
 
-#: C/index-in.docbook:9077
+#: index-in.docbook:9096
 #, no-wrap
 msgid ""
 "\n"
@@ -15650,11 +15686,11 @@ msgstr ""
 "\n"
 "$ ./enum.pl /usr/include/gtk-4.0/gtk/*.h &gt; gtk_enums.defs\n"
 
-#: C/index-in.docbook:9083
+#: index-in.docbook:9102
 msgid "Generating the signals and properties .defs"
 msgstr "生成_signals.defs文件"
 
-#: C/index-in.docbook:9084
+#: index-in.docbook:9103
 msgid ""
 "This <filename>.defs</filename> file describes signals and properties. It is "
 "generated by the special <filename>generate_extra_defs</filename> utility "
@@ -15665,7 +15701,7 @@ msgstr ""
 "<filename>generate_extra_defs</filename>实用程序生成的,你可以在类似于"
 "<filename>gtkmm/tools/extra_defs_gen/</filename>的目录下找到它。例如:"
 
-#: C/index-in.docbook:9089
+#: index-in.docbook:9108
 #, no-wrap
 msgid ""
 "\n"
@@ -15676,7 +15712,7 @@ msgstr ""
 "$ cd tools/extra_defs_gen\n"
 "$ ./generate_extra_defs &gt; gtk_signals.defs\n"
 
-#: C/index-in.docbook:9093
+#: index-in.docbook:9112
 msgid ""
 "You must edit the source code of your own <filename>generate_extra_defs</"
 "filename> tool in order to generate the <filename>.defs</filename> for the "
@@ -15693,7 +15729,7 @@ msgstr ""
 "filename>。你需要将文件重命名为正确的文件名(按前一小节所述),然后在"
 "<filename>tools/extra_defs_gen/meson.build</filename>文件中提到新的源文件名。"
 
-#: C/index-in.docbook:9100
+#: index-in.docbook:9119
 msgid ""
 "Then edit the <filename>.cc</filename> file to specify the correct types. "
 "For instance, your <function>main()</function> function might look like this:"
@@ -15701,7 +15737,7 @@ msgstr ""
 "然后编辑<filename>.cc</filename>以指定正确的类型。例如,你的"
 "<function>main()</function>函数可能如下所示:"
 
-#: C/index-in.docbook:9103
+#: index-in.docbook:9122
 #, no-wrap
 msgid ""
 "\n"
@@ -15732,11 +15768,11 @@ msgstr ""
 "  return 0;\n"
 "}\n"
 
-#: C/index-in.docbook:9120
+#: index-in.docbook:9139
 msgid "Writing the vfuncs .defs"
 msgstr "编写_vfunc.defs文件"
 
-#: C/index-in.docbook:9121
+#: index-in.docbook:9140
 msgid ""
 "This <filename>.defs</filename> file describes virtual functions (vfuncs). "
 "It must be written by hand. There is the skeleton file <filename>skeleton/"
@@ -15749,11 +15785,11 @@ msgstr ""
 "以从<application>gtkmm</application>的<filename>gtk/src/gtk_vfuncs.defs</"
 "filename>文件开始。"
 
-#: C/index-in.docbook:9132
+#: index-in.docbook:9151
 msgid "The .hg and .ccg files"
 msgstr ".hg和.ccg文件"
 
-#: C/index-in.docbook:9133
+#: index-in.docbook:9152
 msgid ""
 "The .hg and .ccg source files are very much like .h and .cc C++ source "
 "files, but they contain extra macros, such as <function>_CLASS_GOBJECT()</"
@@ -15767,7 +15803,7 @@ msgstr ""
 "<command>gmmproc</command>会使用这些宏在头文件中的相同位置生成合适的C++源代"
 "码。而所有其他的C++源代码会按原样复制到相应的.h或.cc文件中。"
 
-#: C/index-in.docbook:9141
+#: index-in.docbook:9160
 msgid ""
 "A .hg file will typically include some headers and then declare a class, "
 "using some macros to add API or behaviour to this class. For instance, "
@@ -15778,7 +15814,7 @@ msgstr ""
 "如,<application>gtkmm</application>的<filename>button.hg</filename>文件看起"
 "来大概这样:"
 
-#: C/index-in.docbook:9146
+#: index-in.docbook:9165
 #, no-wrap
 msgid ""
 "\n"
@@ -15847,11 +15883,11 @@ msgstr ""
 "\n"
 "} // namespace Gtk\n"
 
-#: C/index-in.docbook:9182
+#: index-in.docbook:9201
 msgid "<function>_DEFS()</function>"
 msgstr "<function>_DEFS()</function>"
 
-#: C/index-in.docbook:9183
+#: index-in.docbook:9202
 msgid ""
 "Specifies the destination directory for generated sources, and the name of "
 "the main .defs file that <command>gmmproc</command> should parse."
@@ -15859,11 +15895,11 @@ msgstr ""
 "指定所生成源代码的目标目录,以及<command>gmmproc</command>应该解析的主要.defs"
 "文件的名称。"
 
-#: C/index-in.docbook:9186
+#: index-in.docbook:9205
 msgid "<function>_PINCLUDE()</function>"
 msgstr "<function>_PINCLUDE()</function>"
 
-#: C/index-in.docbook:9187
+#: index-in.docbook:9206
 msgid ""
 "Tells <command>gmmproc</command> to include a header in the generated "
 "<filename>private/button_p.h</filename> file."
@@ -15871,11 +15907,11 @@ msgstr ""
 "告诉<command>gmmproc</command>在生成的文件中包含<filename>private/button_p."
 "h</filename>头文件。"
 
-#: C/index-in.docbook:9190
+#: index-in.docbook:9209
 msgid "<function>_CLASS_GTKOBJECT()</function>"
 msgstr "<function>_CLASS_GTKOBJECT()</function>"
 
-#: C/index-in.docbook:9191
+#: index-in.docbook:9210
 msgid ""
 "Tells <command>gmmproc</command> to add some typedefs, constructors, and "
 "standard methods to this class, as appropriate when wrapping a widget."
@@ -15883,25 +15919,25 @@ msgstr ""
 "告诉<command>gmmproc</command>在封装部件类时在类中添加一些类型定义(typedef)、"
 "构造函数、标准方法。"
 
-#: C/index-in.docbook:9194
+#: index-in.docbook:9213
 msgid "<function>_IMPLEMENTS_INTERFACE()</function>"
 msgstr "<function>_IMPLEMENTS_INTERFACE()</function>"
 
-#: C/index-in.docbook:9195
+#: index-in.docbook:9214
 msgid ""
 "Tells <command>gmmproc</command> to add initialization code for the "
 "interface."
 msgstr "告诉<command>gmmproc</command>为接口添加初始化代码。"
 
-#: C/index-in.docbook:9198
+#: index-in.docbook:9217
 msgid "<function>_CTOR_DEFAULT</function>"
 msgstr "<function>_CTOR_DEFAULT</function>"
 
-#: C/index-in.docbook:9199
+#: index-in.docbook:9218
 msgid "Adds a default constructor."
 msgstr "添加默认构造函数。"
 
-#: C/index-in.docbook:9202
+#: index-in.docbook:9221
 msgid ""
 "<function>_WRAP_METHOD()</function>, <function>_WRAP_SIGNAL()</function>, "
 "and <function>_WRAP_PROPERTY()</function>"
@@ -15909,15 +15945,15 @@ msgstr ""
 "<function>_WRAP_METHOD()</function>、<function>_WRAP_SIGNAL()</function>和"
 "<function>_WRAP_PROPERTY()</function>"
 
-#: C/index-in.docbook:9205
+#: index-in.docbook:9224
 msgid "Add methods to wrap parts of the C API."
 msgstr "添加用于封装C API的一部分的方法。"
 
-#: C/index-in.docbook:9179
+#: index-in.docbook:9198
 msgid "The macros in this example do the following: <_:variablelist-1/>"
 msgstr "本示例中的宏执行下述操作:<_:variablelist-1/>"
 
-#: C/index-in.docbook:9209
+#: index-in.docbook:9228
 msgid ""
 "The .h and .cc files will be generated from the .hg and .ccg files by "
 "processing them with <command>gmmproc</command> like so, though this happens "
@@ -15926,7 +15962,7 @@ msgstr ""
 "通过这样使用<command>gmmproc</command>处理.hg和.ccg文件,可以从.hg和.ccg文件"
 "生成.h和.cc文件,尽管这在使用上述的构建结构时会自动进行:"
 
-#: C/index-in.docbook:9213
+#: index-in.docbook:9232
 #, no-wrap
 msgid ""
 "\n"
@@ -15937,7 +15973,7 @@ msgstr ""
 "$ cd gtk/src\n"
 "$ /usr/lib/glibmm-2.68/proc/gmmproc -I ../../tools/m4 --defs . button . ./../gtkmm\n"
 
-#: C/index-in.docbook:9217
+#: index-in.docbook:9236
 msgid ""
 "Notice that we provided <command>gmmproc</command> with the path to the .m4 "
 "convert files, the path to the .defs file, the name of a .hg file, the "
@@ -15946,7 +15982,7 @@ msgstr ""
 "请注意我们为<command>gmmproc</command>提供了.m4转换文件、.defs文件路径、.hg文"
 "件名、源代码目录、目标目录。"
 
-#: C/index-in.docbook:9220
+#: index-in.docbook:9239
 msgid ""
 "You should avoid including the C header from your C++ header, to avoid "
 "polluting the global namespace, and to avoid exporting unnecessary public "
@@ -15956,15 +15992,15 @@ msgstr ""
 "你应该避免在C++头文件中包含C头文件,以免污染全局名称空间,以免导出不必要的公"
 "共API。但是你需要在你的.ccg文件中包含必要的C头文件。"
 
-#: C/index-in.docbook:9225
+#: index-in.docbook:9244
 msgid "The macros are explained in more detail in the following sections."
 msgstr "以下各节将对宏进行详细说明。"
 
-#: C/index-in.docbook:9228
+#: index-in.docbook:9247
 msgid "m4 Conversions"
 msgstr "m4转换"
 
-#: C/index-in.docbook:9229
+#: index-in.docbook:9248
 msgid ""
 "The macros that you use in the .hg and .ccg files often need to know how to "
 "convert a C++ type to a C type, or vice-versa. <command>gmmproc</command> "
@@ -15982,7 +16018,7 @@ msgstr ""
 "<command>gmmproc</command>如何将<classname>GtkTreeView</classname>指针转换为"
 "<classname>Gtk::TreeView</classname>指针:"
 
-#: C/index-in.docbook:9237
+#: index-in.docbook:9256
 #, no-wrap
 msgid ""
 "\n"
@@ -15991,7 +16027,7 @@ msgstr ""
 "\n"
 "_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
 
-#: C/index-in.docbook:9241
+#: index-in.docbook:9260
 msgid ""
 "<literal>$3</literal> will be replaced by the parameter name when this "
 "conversion is used by <command>gmmproc</command>."
@@ -15999,7 +16035,7 @@ msgstr ""
 "当此转换被<command>gmmproc</command>使用时,<literal>$3</literal>将会被参数名"
 "称替换。"
 
-#: C/index-in.docbook:9245
+#: index-in.docbook:9264
 msgid ""
 "Some extra macros make this easier and consistent. Look in "
 "<application>gtkmm</application>'s .m4 files for examples. For instance:"
@@ -16007,7 +16043,7 @@ msgstr ""
 "使用一些额外的宏可以使其变得更简单和一致。例如<application>gtkmm</"
 "application>中的.m4文件:"
 
-#: C/index-in.docbook:9249
+#: index-in.docbook:9268
 #, no-wrap
 msgid ""
 "\n"
@@ -16020,11 +16056,11 @@ msgstr ""
 "_CONVERSION(`const PrintSettings&amp;',`GtkPrintSettings*',__FCR2P)\n"
 "_CONVERSION(`const Glib::RefPtr&lt;Printer&gt;&amp;',`GtkPrinter*',__CONVERT_REFPTR_TO_P($3))\n"
 
-#: C/index-in.docbook:9257
+#: index-in.docbook:9276
 msgid "m4 Initializations"
 msgstr "安装m4"
 
-#: C/index-in.docbook:9258
+#: index-in.docbook:9277
 msgid ""
 "Often when wrapping methods, it is desirable to store the return of the C "
 "function in what is called an output parameter. In this case, the C++ method "
@@ -16039,7 +16075,7 @@ msgstr ""
 "<command>gmmproc</command>支持此功能,但是必须使用适当的初始化宏来告诉"
 "<command>gmmproc</command>如何从C函数的返回值初始化C++参数。"
 
-#: C/index-in.docbook:9267
+#: index-in.docbook:9286
 msgid ""
 "For example, if there was a C function that returned a <type>GtkWidget*</"
 "type> and for some reason, instead of having the C++ method also return the "
@@ -16051,7 +16087,7 @@ msgstr ""
 "让C++方法返回此部件,而是希望C++方法将此部件放入指定的输出参数中,则如下所示"
 "的初始化宏是必须的:"
 
-#: C/index-in.docbook:9274
+#: index-in.docbook:9293
 #, no-wrap
 msgid ""
 "\n"
@@ -16060,7 +16096,7 @@ msgstr ""
 "\n"
 "_INITIALIZATION(`Gtk::Widget&amp;',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
 
-#: C/index-in.docbook:9278
+#: index-in.docbook:9297
 msgid ""
 "<literal>$3</literal> will be replaced by the output parameter name of the C+"
 "+ method and <literal>$4</literal> will be replaced by the return of the C "
@@ -16074,11 +16110,11 @@ msgstr ""
 "<literal>$1</literal>也将被不带<literal>&amp;</literal>符的C++类型替换,而"
 "<literal>$2</literal>将被替换为C类型。"
 
-#: C/index-in.docbook:9289
+#: index-in.docbook:9308
 msgid "Class macros"
 msgstr "类宏"
 
-#: C/index-in.docbook:9290
+#: index-in.docbook:9309
 msgid ""
 "The class macro declares the class itself and its relationship with the "
 "underlying C type. It generates some internal constructors, the member "
@@ -16091,7 +16127,7 @@ msgstr ""
 "function>访问器、<function>Glib::wrap()</function>成员函数、并进行类型注册"
 "等。"
 
-#: C/index-in.docbook:9295
+#: index-in.docbook:9314
 msgid ""
 "Other macros, such as <function>_WRAP_METHOD()</function> and "
 "<function>_WRAP_SIGNAL()</function> may only be used after a call to a "
@@ -16100,11 +16136,11 @@ msgstr ""
 "其他像<function>_WRAP_METHOD()</function>和<function>_WRAP_SIGNAL()</"
 "function>这样的宏只能在调用<function>_CLASS_*</function>宏之后使用。"
 
-#: C/index-in.docbook:9300
+#: index-in.docbook:9319
 msgid "_CLASS_GOBJECT"
 msgstr "_CLASS_GOBJECT"
 
-#: C/index-in.docbook:9301
+#: index-in.docbook:9320
 msgid ""
 "This macro declares a wrapper for a type that is derived from "
 "<classname>GObject</classname>, but whose wrapper is not derived from "
@@ -16113,18 +16149,18 @@ msgstr ""
 "这个宏为从<classname>GObject</classname>派生的类型声明了一个类型包装器,但是"
 "此包装器并不会派生自<classname>Gtk::Object</classname>。"
 
-#: C/index-in.docbook:9304
+#: index-in.docbook:9323
 msgid ""
 "<function>_CLASS_GOBJECT( C++ class, C class, C casting macro, C++ base "
 "class, C base class )</function>"
 msgstr ""
 "<function>_CLASS_GOBJECT( C++类, C类, C转换宏, C++基类, C基类 )</function>"
 
-#: C/index-in.docbook:9305
+#: index-in.docbook:9324
 msgid "For instance, from <filename>adjustment.hg</filename>:"
 msgstr "示例来自于<filename>entry.hg</filename>:"
 
-#: C/index-in.docbook:9306
+#: index-in.docbook:9325
 #, no-wrap
 msgid ""
 "\n"
@@ -16133,11 +16169,11 @@ msgstr ""
 "\n"
 "_CLASS_GOBJECT(Adjustment, GtkAdjustment, GTK_ADJUSTMENT, Glib::Object, GObject)\n"
 
-#: C/index-in.docbook:9312
+#: index-in.docbook:9331
 msgid "_CLASS_GTKOBJECT"
 msgstr "_CLASS_GTKOBJECT"
 
-#: C/index-in.docbook:9313
+#: index-in.docbook:9332
 msgid ""
 "This macro declares a wrapper for a type whose wrapper is derived from "
 "<classname>Gtk::Object</classname>, such as a widget or dialog."
@@ -16145,18 +16181,18 @@ msgstr ""
 "这个宏为类型声明了一个类型派生包装器,此包装器将派生自<classname>Gtk::"
 "Object</classname>,例如部件(Widget)和对话框(Dialog)。"
 
-#: C/index-in.docbook:9315
+#: index-in.docbook:9334
 msgid ""
 "<function>_CLASS_GTKOBJECT( C++ class, C class, C casting macro, C++ base "
 "class, C base class )</function>"
 msgstr ""
 "<function>_CLASS_GTKOBJECT( C++类, C类, C转换宏, C++基类, C基类 )</function>"
 
-#: C/index-in.docbook:9316 C/index-in.docbook:9790 C/index-in.docbook:9894
+#: index-in.docbook:9335 index-in.docbook:9809 index-in.docbook:9913
 msgid "For instance, from <filename>button.hg</filename>:"
 msgstr "来自<filename>button.hg</filename>文件中的例子:"
 
-#: C/index-in.docbook:9317
+#: index-in.docbook:9336
 #, no-wrap
 msgid ""
 "\n"
@@ -16165,7 +16201,7 @@ msgstr ""
 "\n"
 "_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Widget, GtkWidget)\n"
 
-#: C/index-in.docbook:9320
+#: index-in.docbook:9339
 msgid ""
 "You will typically use this macro when the class already derives from "
 "<classname>Gtk::Object</classname>. For instance, you will use it when "
@@ -16176,7 +16212,7 @@ msgstr ""
 "将在封装GTK部件时使用它,因为<classname>Gtk::Widget</classname>派生自"
 "<classname>Gtk::Object</classname>。"
 
-#: C/index-in.docbook:9324
+#: index-in.docbook:9343
 msgid ""
 "You might also derive non-widget classes from <classname>Gtk::Object</"
 "classname> so they can be used without <classname>Glib::RefPtr</classname>. "
@@ -16191,11 +16227,11 @@ msgstr ""
 "化。这样你可以自行决定是否对它们使用引用计数。我们认为对部件使用引用计数很有"
 "用。"
 
-#: C/index-in.docbook:9334
+#: index-in.docbook:9353
 msgid "_CLASS_BOXEDTYPE"
 msgstr "_CLASS_BOXEDTYPE"
 
-#: C/index-in.docbook:9335
+#: index-in.docbook:9354
 msgid ""
 "This macro declares a wrapper for a non-<classname>GObject</classname> "
 "struct, registered with <function>g_boxed_type_register_static()</function>."
@@ -16203,7 +16239,7 @@ msgstr ""
 "这个宏声明了一个非<classname>GObject</classname>结构体类型的包装器,并使用"
 "<function>g_boxed_type_register_static()</function>对该类型进行注册。"
 
-#: C/index-in.docbook:9338
+#: index-in.docbook:9357
 msgid ""
 "<function>_CLASS_BOXEDTYPE( C++ class, C class, new function, copy function, "
 "free function )</function>"
@@ -16211,11 +16247,11 @@ msgstr ""
 "<function>_CLASS_BOXEDTYPE( C++类, C类, new函数, copy函数, free函数 )</"
 "function>"
 
-#: C/index-in.docbook:9339
+#: index-in.docbook:9358
 msgid "For instance, from <classname>Gdk::RGBA</classname>:"
 msgstr "示例来自<classname>Gdk::RGBA</classname>:"
 
-#: C/index-in.docbook:9340
+#: index-in.docbook:9359
 #, no-wrap
 msgid ""
 "\n"
@@ -16224,11 +16260,11 @@ msgstr ""
 "\n"
 "_CLASS_BOXEDTYPE(RGBA, GdkRGBA, NONE, gdk_rgba_copy, gdk_rgba_free)\n"
 
-#: C/index-in.docbook:9346
+#: index-in.docbook:9365
 msgid "_CLASS_BOXEDTYPE_STATIC"
 msgstr "_CLASS_BOXEDTYPE_STATIC"
 
-#: C/index-in.docbook:9347
+#: index-in.docbook:9366
 msgid ""
 "This macro declares a wrapper for a simple assignable struct such as "
 "<classname>GdkRectangle</classname>. It is similar to "
@@ -16239,15 +16275,15 @@ msgstr ""
 "一个包装器。它和<function>_CLASS_BOXEDTYPE</function>类似,不过其包装的C结构"
 "体不是动态分配的。"
 
-#: C/index-in.docbook:9351
+#: index-in.docbook:9370
 msgid "<function>_CLASS_BOXEDTYPE_STATIC( C++ class, C class )</function>"
 msgstr "<function>_CLASS_BOXEDTYPE_STATIC( C++类, C类 )</function>"
 
-#: C/index-in.docbook:9352
+#: index-in.docbook:9371
 msgid "For instance, for <classname>Gdk::Rectangle</classname>:"
 msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
 
-#: C/index-in.docbook:9353
+#: index-in.docbook:9372
 #, no-wrap
 msgid ""
 "\n"
@@ -16256,11 +16292,11 @@ msgstr ""
 "\n"
 "_CLASS_BOXEDTYPE_STATIC(Rectangle, GdkRectangle)\n"
 
-#: C/index-in.docbook:9359
+#: index-in.docbook:9378
 msgid "_CLASS_OPAQUE_COPYABLE"
 msgstr "_CLASS_OPAQUE_COPYABLE"
 
-#: C/index-in.docbook:9360
+#: index-in.docbook:9379
 msgid ""
 "This macro declares a wrapper for an opaque struct that has copy and free "
 "functions. The new, copy and free functions will be used to instantiate the "
@@ -16269,7 +16305,7 @@ msgstr ""
 "这个宏为具有复制和释放函数的不透明结构体声明了一个包装器。新建(new)、复制"
 "(copy)、释放(free)函数将用于实例化默认构造函数、复制构造函数、析构函数。"
 
-#: C/index-in.docbook:9363
+#: index-in.docbook:9382
 msgid ""
 "<function>_CLASS_OPAQUE_COPYABLE( C++ class, C class, new function, copy "
 "function, free function )</function>"
@@ -16277,11 +16313,11 @@ msgstr ""
 "<function>_CLASS_OPAQUE_COPYABLE( C++类, C类, new函数, copy函数, free函数 )</"
 "function>"
 
-#: C/index-in.docbook:9364
+#: index-in.docbook:9383
 msgid "For instance, from <classname>Glib::VariantType</classname>:"
 msgstr "示例来自<classname>Glib::Checksum</classname>:"
 
-#: C/index-in.docbook:9365
+#: index-in.docbook:9384
 #, no-wrap
 msgid ""
 "\n"
@@ -16290,11 +16326,11 @@ msgstr ""
 "\n"
 "_CLASS_OPAQUE_COPYABLE(VariantType, GVariantType, NONE, g_variant_type_copy, g_variant_type_free)\n"
 
-#: C/index-in.docbook:9371
+#: index-in.docbook:9390
 msgid "_CLASS_OPAQUE_REFCOUNTED"
 msgstr "_CLASS_OPAQUE_REFCOUNTED"
 
-#: C/index-in.docbook:9372
+#: index-in.docbook:9391
 msgid ""
 "This macro declares a wrapper for a reference-counted opaque struct. The C++ "
 "wrapper cannot be directly instantiated and can only be used with "
@@ -16303,7 +16339,7 @@ msgstr ""
 "这个宏为使用引用计数的不透明结构体声明了一个包装器。C++包装器将不能直接实例"
 "化,需要与<classname>Glib::RefPtr</classname>一起使用。"
 
-#: C/index-in.docbook:9375
+#: index-in.docbook:9394
 msgid ""
 "<function>_CLASS_OPAQUE_REFCOUNTED( C++ class, C class, new function, ref "
 "function, unref function )</function>"
@@ -16311,11 +16347,11 @@ msgstr ""
 "<function>_CLASS_OPAQUE_REFCOUNTED( C++函数, C函数, new函数, ref函数, unref函"
 "数 )</function>"
 
-#: C/index-in.docbook:9376
+#: index-in.docbook:9395
 msgid "For instance, for <classname>Gtk::CssSection</classname>:"
 msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
 
-#: C/index-in.docbook:9377
+#: index-in.docbook:9396
 #, no-wrap
 msgid ""
 "\n"
@@ -16324,25 +16360,25 @@ msgstr ""
 "\n"
 "_CLASS_OPAQUE_REFCOUNTED(CssSection, GtkCssSection, NONE, gtk_css_section_ref, gtk_css_section_unref)\n"
 
-#: C/index-in.docbook:9383
+#: index-in.docbook:9402
 msgid "_CLASS_GENERIC"
 msgstr "_CLASS_GENERIC"
 
-#: C/index-in.docbook:9384
+#: index-in.docbook:9403
 msgid ""
 "This macro can be used to wrap structs which don't fit into any specialized "
 "category."
 msgstr "这个宏用于包装任何不属于专用包装宏的结构体。"
 
-#: C/index-in.docbook:9386
+#: index-in.docbook:9405
 msgid "<function>_CLASS_GENERIC( C++ class, C class )</function>"
 msgstr "<function>_CLASS_GENERIC( C++类, C类 )</function>"
 
-#: C/index-in.docbook:9387
+#: index-in.docbook:9406
 msgid "For instance, for <classname>Gdk::TimeCoord</classname>:"
 msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
 
-#: C/index-in.docbook:9388
+#: index-in.docbook:9407
 #, no-wrap
 msgid ""
 "\n"
@@ -16351,18 +16387,18 @@ msgstr ""
 "\n"
 "_CLASS_GENERIC(TimeCoord, GdkTimeCoord)\n"
 
-#: C/index-in.docbook:9394
+#: index-in.docbook:9413
 msgid "_CLASS_INTERFACE"
 msgstr "_CLASS_INTERFACE"
 
-#: C/index-in.docbook:9395
+#: index-in.docbook:9414
 msgid ""
 "This macro declares a wrapper for a type that is derived from "
 "<classname>GTypeInterface</classname>."
 msgstr ""
 "这个宏为派生自<classname>GTypeInterface</classname>的类型声明了一个包装器。"
 
-#: C/index-in.docbook:9398
+#: index-in.docbook:9417
 msgid ""
 "<function>_CLASS_INTERFACE( C++ class, C class, C casting macro, C interface "
 "struct, Base C++ class (optional), Base C class (optional) )</function>"
@@ -16370,11 +16406,11 @@ msgstr ""
 "<function>_CLASS_INTERFACE( C++类, C类, C转换宏, C接口结构体, C++基类(可选"
 "的), C基类(可选的) )</function>"
 
-#: C/index-in.docbook:9399
+#: index-in.docbook:9418
 msgid "For instance, from <filename>celleditable.hg</filename>:"
 msgstr "示例来自与<filename>celleditable.hg</filename>:"
 
-#: C/index-in.docbook:9401
+#: index-in.docbook:9420
 #, no-wrap
 msgid ""
 "\n"
@@ -16383,7 +16419,7 @@ msgstr ""
 "\n"
 "_CLASS_INTERFACE(CellEditable, GtkCellEditable, GTK_CELL_EDITABLE, GtkCellEditableIface)\n"
 
-#: C/index-in.docbook:9404
+#: index-in.docbook:9423
 msgid ""
 "Two extra optional parameters were once added, for the case that the "
 "interface derives from another interface, which was believed to be the case "
@@ -16397,7 +16433,7 @@ msgstr ""
 "GInterface作为先决条件时属于此情况。示例来自于<filename>loadableicon.hg</"
 "filename>:"
 
-#: C/index-in.docbook:9410
+#: index-in.docbook:9429
 #, no-wrap
 msgid ""
 "\n"
@@ -16406,11 +16442,11 @@ msgstr ""
 "\n"
 "_CLASS_INTERFACE(LoadableIcon, GLoadableIcon, G_LOADABLE_ICON, GLoadableIconIface, Icon, GIcon)\n"
 
-#: C/index-in.docbook:9418
+#: index-in.docbook:9437
 msgid "Constructor macros"
 msgstr "构造函数宏"
 
-#: C/index-in.docbook:9419
+#: index-in.docbook:9438
 msgid ""
 "The <function>_CTOR_DEFAULT()</function> and <function>_WRAP_CTOR()</"
 "function> macros add constructors, wrapping the specified <function>*_new()</"
@@ -16430,7 +16466,7 @@ msgstr ""
 "数,因为<application>gtkmm</application>必须实例化派生的GType,而"
 "<function>*_new()</function> C函数只是用于给C程序员提供便利。"
 
-#: C/index-in.docbook:9429
+#: index-in.docbook:9448
 msgid ""
 "When using <function>_CLASS_GOBJECT()</function>, the constructors should be "
 "protected (rather than public) and each constructor should have a "
@@ -16443,7 +16479,7 @@ msgstr ""
 "<function>_WRAP_CREATE()</function>。这样可以防止在不使用<classname>RefPtr</"
 "classname>的情况下直接实例化这个类。例如:"
 
-#: C/index-in.docbook:9434
+#: index-in.docbook:9453
 #, no-wrap
 msgid ""
 "\n"
@@ -16468,19 +16504,19 @@ msgstr ""
 "public:\n"
 "  _WRAP_CREATE(const Glib::ustring&amp; name, bool left_gravity = true)\n"
 
-#: C/index-in.docbook:9447
+#: index-in.docbook:9466
 msgid "_CTOR_DEFAULT"
 msgstr "_CTOR_DEFAULT"
 
-#: C/index-in.docbook:9448
+#: index-in.docbook:9467
 msgid "This macro creates a default constructor with no arguments."
 msgstr "这个宏创建一个不接受参数的默认构造函数"
 
-#: C/index-in.docbook:9453
+#: index-in.docbook:9472
 msgid "_WRAP_CTOR"
 msgstr "_WRAP_CTOR"
 
-#: C/index-in.docbook:9454
+#: index-in.docbook:9473
 msgid ""
 "This macro creates a constructor with arguments, equivalent to a "
 "<function>*_new()</function> C function. It won't actually call the "
@@ -16492,11 +16528,11 @@ msgstr ""
 "但是他不会调用<function>*_new()</function>函数,只会创建有相同参数类型的构造"
 "函数。它需要一个C++构造函数签名和一个C函数名。"
 
-#: C/index-in.docbook:9464 C/index-in.docbook:9960
+#: index-in.docbook:9483 index-in.docbook:9979
 msgid "errthrow"
 msgstr "errthrow"
 
-#: C/index-in.docbook:9466
+#: index-in.docbook:9485
 msgid ""
 "This tells <command>gmmproc</command> that the C <function>*_new()</"
 "function> has a final <type>GError**</type> parameter which should be "
@@ -16505,15 +16541,15 @@ msgstr ""
 "这告诉<command>gmmproc</command>,<function>*_new()</function>的最后一个 "
 "<type>GError**</type>是否应该被忽略。"
 
-#: C/index-in.docbook:9461
+#: index-in.docbook:9480
 msgid "It also takes an optional extra argument: <_:variablelist-1/>"
 msgstr "他还有需要额外的可选参数:<_:variablelist-1/>"
 
-#: C/index-in.docbook:9475
+#: index-in.docbook:9494
 msgid "Hand-coding constructors"
 msgstr "手工编码构造函数"
 
-#: C/index-in.docbook:9476
+#: index-in.docbook:9495
 msgid ""
 "When a constructor must be partly hand written because, for instance, the "
 "<function>*_new()</function> C function's parameters do not correspond "
@@ -16531,7 +16567,7 @@ msgstr ""
 "function>宏接受一系列属性名与值作为参数。示例来自<filename>button.ccg</"
 "filename>:"
 
-#: C/index-in.docbook:9484
+#: index-in.docbook:9503
 #, no-wrap
 msgid ""
 "\n"
@@ -16546,11 +16582,11 @@ msgstr ""
 "  _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
 "{}\n"
 
-#: C/index-in.docbook:9495
+#: index-in.docbook:9514
 msgid "Macros that suppress generation of some code"
 msgstr "抑制某些代码生成的宏"
 
-#: C/index-in.docbook:9496
+#: index-in.docbook:9515
 msgid ""
 "Some macros suppress the generation of some code when they are used after a "
 "<function>_CLASS_*</function> macro. Some suppress the definition in the "
@@ -16561,11 +16597,11 @@ msgstr ""
 "成。一些抑制在.cc文件中生成定义,另一些抑制在.h文件中生成的声明和.cc文件中生"
 "成的定义。"
 
-#: C/index-in.docbook:9503
+#: index-in.docbook:9522
 msgid "_CUSTOM_DEFAULT_CTOR"
 msgstr "_CUSTOM_DEFAULT_CTOR"
 
-#: C/index-in.docbook:9504
+#: index-in.docbook:9523
 msgid ""
 "Suppresses declaration and definition of default constructor in "
 "<function>_CLASS_BOXEDTYPE</function>, <function>_CLASS_BOXEDTYPE_STATIC</"
@@ -16575,11 +16611,11 @@ msgstr ""
 "<function>_CLASS_BOXEDTYPE_STATIC</function>、"
 "<function>_CLASS_OPAQUE_COPYABLE</function>生成默认构造函数的声明和定义。"
 
-#: C/index-in.docbook:9511
+#: index-in.docbook:9530
 msgid "_CUSTOM_CTOR_CAST"
 msgstr "_CUSTOM_CTOR_CAST"
 
-#: C/index-in.docbook:9512
+#: index-in.docbook:9531
 msgid ""
 "Suppresses declaration and definition of the constructor that takes a "
 "pointer to the wrapped C object in <function>_CLASS_BOXEDTYPE</function> and "
@@ -16589,7 +16625,7 @@ msgstr ""
 "<function>_CLASS_BOXEDTYPE_STATIC</function>生成接受指向其所包装的C类型的指针"
 "的构造函数的声明和定义。"
 
-#: C/index-in.docbook:9516
+#: index-in.docbook:9535
 msgid ""
 "Suppresses definition of the constructor that takes a pointer to the wrapped "
 "C object in <function>_CLASS_INTERFACE</function> and "
@@ -16598,7 +16634,7 @@ msgstr ""
 "抑制<function>_CLASS_INTERFACE</function>和<function>_CLASS_OPAQUE_COPYABLE</"
 "function>生成接受指向其所包装的C类型的指针的构造函数的定义。"
 
-#: C/index-in.docbook:9520
+#: index-in.docbook:9539
 msgid ""
 "Suppresses definition of the constructor that takes a pointer to the wrapped "
 "C object and the constructor that takes construct_params in "
@@ -16609,11 +16645,11 @@ msgstr ""
 "function>生成接受指向其所包装的C类型的指针且接受其他构造参数的构造函数的定"
 "义。"
 
-#: C/index-in.docbook:9527
+#: index-in.docbook:9546
 msgid "_CUSTOM_DTOR"
 msgstr "_CUSTOM_DTOR"
 
-#: C/index-in.docbook:9528
+#: index-in.docbook:9547
 msgid ""
 "Suppresses definition of destructor in <function>_CLASS_GOBJECT</function> "
 "and <function>_CLASS_GTKOBJECT</function>."
@@ -16621,11 +16657,11 @@ msgstr ""
 "抑制<function>_CLASS_GOBJECT</function>和<function>_CLASS_GTKOBJECT</"
 "function>生成析构函数的定义"
 
-#: C/index-in.docbook:9534
+#: index-in.docbook:9553
 msgid "_CUSTOM_MOVE_OPERATIONS"
 msgstr "_CUSTOM_MOVE_OPERATIONS"
 
-#: C/index-in.docbook:9535
+#: index-in.docbook:9554
 msgid ""
 "Suppresses declaration and definition of move constructor and move "
 "assignment operator in <function>_CLASS_GOBJECT</function> and "
@@ -16634,11 +16670,11 @@ msgstr ""
 "抑制<function>_CLASS_GOBJECT</function><function>_CLASS_GTKOBJECT</function>"
 "生成移动构造函数和移动赋值运算符的声明和定义。"
 
-#: C/index-in.docbook:9539
+#: index-in.docbook:9558
 msgid "For example:"
 msgstr "例如:"
 
-#: C/index-in.docbook:9540
+#: index-in.docbook:9559
 #, no-wrap
 msgid ""
 "\n"
@@ -16667,11 +16703,11 @@ msgstr ""
 "  // ...\n"
 "};\n"
 
-#: C/index-in.docbook:9556
+#: index-in.docbook:9575
 msgid "_CUSTOM_WRAP_NEW"
 msgstr "_CUSTOM_WRAP_NEW"
 
-#: C/index-in.docbook:9557
+#: index-in.docbook:9576
 msgid ""
 "Suppresses definition of <function>Glib::wrap_new()</function> function in "
 "<function>_CLASS_GOBJECT</function>."
@@ -16679,11 +16715,11 @@ msgstr ""
 "抑制<function>_CLASS_GOBJECT</function>生成<function>Glib::wrap_new()</"
 "function>的定义。"
 
-#: C/index-in.docbook:9563
+#: index-in.docbook:9582
 msgid "_CUSTOM_WRAP_FUNCTION"
 msgstr "_CUSTOM_WRAP_FUNCTION"
 
-#: C/index-in.docbook:9564
+#: index-in.docbook:9583
 msgid ""
 "Suppresses definition of <function>Glib::wrap()</function> function in "
 "<function>_CLASS_GOBJECT</function> and <function>_CLASS_GTKOBJECT</"
@@ -16692,11 +16728,11 @@ msgstr ""
 "抑制<function>_CLASS_GOBJECT</function>和<function>_CLASS_GTKOBJECT</"
 "function>生成<function>Glib::wrap()</function>函数的定义。"
 
-#: C/index-in.docbook:9570
+#: index-in.docbook:9589
 msgid "_NO_WRAP_FUNCTION"
 msgstr "_NO_WRAP_FUNCTION"
 
-#: C/index-in.docbook:9571
+#: index-in.docbook:9590
 msgid ""
 "Suppresses declaration and definition of <function>Glib::wrap()</function> "
 "function in <function>_CLASS_GOBJECT</function>, <function>_CLASS_BOXEDTYPE</"
@@ -16710,28 +16746,28 @@ msgstr ""
 "function>和<function>_CLASS_GTKOBJECT</function>生成<function>Glib::wrap()</"
 "function>函数的声明和定义。"
 
-#: C/index-in.docbook:9581
+#: index-in.docbook:9600
 msgid "Method macros"
 msgstr "方法宏"
 
-#: C/index-in.docbook:9584
+#: index-in.docbook:9603
 msgid "_WRAP_METHOD"
 msgstr "_WRAP_METHOD"
 
-#: C/index-in.docbook:9585
+#: index-in.docbook:9604
 msgid "This macro generates the C++ method to wrap a C function."
 msgstr "这个宏用于生成封装C函数的C++方法。"
 
-#: C/index-in.docbook:9586
+#: index-in.docbook:9605
 msgid ""
 "<function>_WRAP_METHOD( C++ method signature, C function name)</function>"
 msgstr "<function>_WRAP_METHOD( C++方法签名, C函数名)</function>"
 
-#: C/index-in.docbook:9587
+#: index-in.docbook:9606
 msgid "For instance, from <filename>entry.hg</filename>:"
 msgstr "示例来自于<filename>entry.hg</filename>:"
 
-#: C/index-in.docbook:9588
+#: index-in.docbook:9607
 #, no-wrap
 msgid ""
 "\n"
@@ -16740,7 +16776,7 @@ msgstr ""
 "\n"
 "_WRAP_METHOD(void set_text(const Glib::ustring&amp; text), gtk_entry_set_text)\n"
 
-#: C/index-in.docbook:9591
+#: index-in.docbook:9610
 msgid ""
 "The C function (e.g. <function>gtk_entry_set_text</function>) is described "
 "more fully in the .defs file, and the <filename>convert*.m4</filename> files "
@@ -16753,22 +16789,22 @@ msgstr ""
 "含了从C++参数类型到C参数类型的必要转换。这个宏还基于<filename>*_docs.xml</"
 "filename>和<filename>*_docs_override.xml</filename>文件生成doxygen文档注释。"
 
-#: C/index-in.docbook:9600 C/index-in.docbook:9827 C/index-in.docbook:9935
+#: index-in.docbook:9619 index-in.docbook:9846 index-in.docbook:9954
 msgid "refreturn"
 msgstr "refreturn"
 
-#: C/index-in.docbook:9602
+#: index-in.docbook:9621
 msgid ""
 "Do an extra <function>reference()</function> on the return value, in case "
 "the C function does not provide a reference."
 msgstr ""
 "在C函数不提供引用时,对其返回值额外调用一次<function>reference()</function>。"
 
-#: C/index-in.docbook:9607 C/index-in.docbook:9729
+#: index-in.docbook:9626 index-in.docbook:9748
 msgid "errthrow [\"&lt;exceptions&gt;\"]"
 msgstr "errthrow [\"&lt;exceptions&gt;\"]"
 
-#: C/index-in.docbook:9609
+#: index-in.docbook:9628
 msgid ""
 "Use the last GError** parameter of the C function to throw an exception. The "
 "optional \"&lt;exceptions&gt;\" is a comma-separated list of exceptions that "
@@ -16784,56 +16820,56 @@ msgstr ""
 "号,请使用反斜杠对其进行转义。例如:<code>errthrow \"Glib::OptionError Hello"
 "\\, world, Glib::ConvertError\"</code>"
 
-#: C/index-in.docbook:9620 C/index-in.docbook:9835 C/index-in.docbook:9901
-#: C/index-in.docbook:10140
+#: index-in.docbook:9639 index-in.docbook:9854 index-in.docbook:9920
+#: index-in.docbook:10159
 msgid "deprecated [\"&lt;text&gt;\"]"
 msgstr "deprecated [\"&lt;text&gt;\"]"
 
-#: C/index-in.docbook:9622 C/index-in.docbook:9837 C/index-in.docbook:9903
-#: C/index-in.docbook:10142
+#: index-in.docbook:9641 index-in.docbook:9856 index-in.docbook:9922
+#: index-in.docbook:10161
 msgid ""
 "Puts the generated code in #ifdef blocks. Text about the deprecation can be "
 "specified as an optional parameter."
 msgstr ""
 "将生成的代码放入#ifdef块中。text是可选参数,用于提供与弃用有关的文本信息。"
 
-#: C/index-in.docbook:9628
+#: index-in.docbook:9647
 msgid "constversion"
 msgstr "constversion"
 
-#: C/index-in.docbook:9630
+#: index-in.docbook:9649
 msgid ""
 "Just call the non-const version of the same function, instead of generating "
 "almost duplicate code."
 msgstr "直接调用同一个函数的非const版本,而不是生成几乎相同的代码。"
 
-#: C/index-in.docbook:9635 C/index-in.docbook:9742 C/index-in.docbook:9842
-#: C/index-in.docbook:9908 C/index-in.docbook:10147
+#: index-in.docbook:9654 index-in.docbook:9761 index-in.docbook:9861
+#: index-in.docbook:9927 index-in.docbook:10166
 msgid "newin \"&lt;version&gt;\""
 msgstr "newin \"&lt;version&gt;\""
 
-#: C/index-in.docbook:9637 C/index-in.docbook:9744 C/index-in.docbook:9844
-#: C/index-in.docbook:9910 C/index-in.docbook:10149
+#: index-in.docbook:9656 index-in.docbook:9763 index-in.docbook:9863
+#: index-in.docbook:9929 index-in.docbook:10168
 msgid ""
 "Adds a @newin Doxygen command to the documentation, or replaces the @newin "
 "command generated from the C documentation."
 msgstr "在文档中添加@newin Doxygen命令,或替换从C文档中生成的@newin命令。"
 
-#: C/index-in.docbook:9642 C/index-in.docbook:9849 C/index-in.docbook:9982
-#: C/index-in.docbook:10068
+#: index-in.docbook:9661 index-in.docbook:9868 index-in.docbook:10001
+#: index-in.docbook:10087
 msgid "ifdef &lt;identifier&gt;"
 msgstr "ifdef &lt;identifier&gt;"
 
-#: C/index-in.docbook:9644 C/index-in.docbook:9851 C/index-in.docbook:9984
-#: C/index-in.docbook:10070
+#: index-in.docbook:9663 index-in.docbook:9870 index-in.docbook:10003
+#: index-in.docbook:10089
 msgid "Puts the generated code in #ifdef blocks."
 msgstr "将生成的代码放入ifdef &lt;identifier&gt;块中。"
 
-#: C/index-in.docbook:9648 C/index-in.docbook:9988
+#: index-in.docbook:9667 index-in.docbook:10007
 msgid "slot_name &lt;parameter_name&gt;"
 msgstr "slot_name &lt;parameter_name&gt;"
 
-#: C/index-in.docbook:9650 C/index-in.docbook:9990
+#: index-in.docbook:9669 index-in.docbook:10009
 msgid ""
 "Specifies the name of the slot parameter of the method, if it has one. This "
 "enables <command>gmmproc</command> to generate code to copy the slot and "
@@ -16847,11 +16883,11 @@ msgstr ""
 "literal>参数的代码。<literal>slot_callback</literal>参数需要使用此选项指定的"
 "名称。"
 
-#: C/index-in.docbook:9660 C/index-in.docbook:10000
+#: index-in.docbook:9679 index-in.docbook:10019
 msgid "slot_callback &lt;function_name&gt;"
 msgstr "slot_callback &lt;function_name&gt;"
 
-#: C/index-in.docbook:9662 C/index-in.docbook:10002
+#: index-in.docbook:9681 index-in.docbook:10021
 msgid ""
 "Used in conjunction with the <literal>slot_name</literal> option to specify "
 "the name of the glue callback function that handles extracting the slot and "
@@ -16862,11 +16898,11 @@ msgstr ""
 "指定的胶水回调函数处理提取槽然后调用它。这个回调函数的函数指针也将被传递给封"
 "装此C函数的方法。"
 
-#: C/index-in.docbook:9670 C/index-in.docbook:10010
+#: index-in.docbook:9689 index-in.docbook:10029
 msgid "no_slot_copy"
 msgstr "no_slot_copy"
 
-#: C/index-in.docbook:9672 C/index-in.docbook:10012
+#: index-in.docbook:9691 index-in.docbook:10031
 msgid ""
 "Tells <command>gmmproc</command> not to pass a copy of the slot to the C "
 "function, if the method has one. Instead the slot itself is passed. The slot "
@@ -16878,12 +16914,12 @@ msgstr ""
 "直接传递槽本身。槽的参数名和胶水回调函数必须分别使用<literal>slot_name</"
 "literal>和<literal>slot_callback</literal>选项指定。"
 
-#: C/index-in.docbook:9597 C/index-in.docbook:9726 C/index-in.docbook:9797
-#: C/index-in.docbook:9898 C/index-in.docbook:9932 C/index-in.docbook:10085
+#: index-in.docbook:9616 index-in.docbook:9745 index-in.docbook:9816
+#: index-in.docbook:9917 index-in.docbook:9951 index-in.docbook:10104
 msgid "There are some optional extra arguments: <_:variablelist-1/>"
 msgstr "有一些可选的额外参数:<_:variablelist-1/>"
 
-#: C/index-in.docbook:9685
+#: index-in.docbook:9704
 msgid ""
 "Objects used via <classname>RefPtr</classname>: Pass the <classname>RefPtr</"
 "classname> as a const reference. For instance, <code>const Glib::RefPtr&lt;"
@@ -16893,7 +16929,7 @@ msgstr ""
 "classname>的const引用。例如:<code>const Glib::RefPtr&lt;Gtk::FileFilter&gt;"
 "&amp; filter</code>。"
 
-#: C/index-in.docbook:9689
+#: index-in.docbook:9708
 msgid ""
 "Const Objects used via <classname>RefPtr</classname>: If the object should "
 "not be changed by the function, then make sure that the object is const, "
@@ -16905,7 +16941,7 @@ msgstr ""
 "的。例如:<code>const Glib::RefPtr&lt;const Gtk::FileFilter&gt;&amp; filter</"
 "code>。"
 
-#: C/index-in.docbook:9694
+#: index-in.docbook:9713
 msgid ""
 "Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
 "parameters: First, you need to discover what objects are contained in the "
@@ -16921,12 +16957,12 @@ msgstr ""
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt;&gt;</code>。你可能需要定义一个Traits类型来指"
 "示C类型和C++类型如何相互转换。"
 
-#: C/index-in.docbook:9710
+#: index-in.docbook:9729
 #, no-wrap
 msgid "#m4 
_CONVERSION(`GSList*',`std::vector&lt;Widget*&gt;',`Glib::SListHandler&lt;Widget*&gt;::slist_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')"
 msgstr "#m4 
_CONVERSION(`GSList*',`std::vector&lt;Widget*&gt;',`Glib::SListHandler&lt;Widget*&gt;::slist_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')"
 
-#: C/index-in.docbook:9702
+#: index-in.docbook:9721
 msgid ""
 "Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
 "return types: You must discover whether the caller should free the list and "
@@ -16942,7 +16978,7 @@ msgstr ""
 "将其直接放在.hg文件中,因为所有权取决于函数本身而不是其类型。例如:<_:"
 "programlisting-1/>"
 
-#: C/index-in.docbook:9681
+#: index-in.docbook:9700
 msgid ""
 "Selecting which C++ types should be used is also important when wrapping C "
 "API. Though it's usually obvious what C++ types should be used in the C++ "
@@ -16951,11 +16987,11 @@ msgstr ""
 "封装C API时,选择对应的C++类型也很重要。尽管多数时候应该在C++方法中使用什么C+"
 "+类型是很明显的,但我们还是想给你一些提示:<_:itemizedlist-1/>"
 
-#: C/index-in.docbook:9716
+#: index-in.docbook:9735
 msgid "_WRAP_METHOD_DOCS_ONLY"
 msgstr "_WRAP_METHOD_DOCS_ONLY"
 
-#: C/index-in.docbook:9717
+#: index-in.docbook:9736
 msgid ""
 "This macro is like <function>_WRAP_METHOD()</function>, but it generates "
 "only the documentation for a C++ method that wraps a C function. Use this "
@@ -16965,15 +17001,15 @@ msgstr ""
 "这个宏类似于<function>_WRAP_METHOD()</function>,但是它只生成封装C函数的C++方"
 "法的文档。当你需要手动编写该方法又不想手动编写文档时,请使用这个宏。"
 
-#: C/index-in.docbook:9721
+#: index-in.docbook:9740
 msgid "<function>_WRAP_METHOD_DOCS_ONLY(C function name)</function>"
 msgstr "<function>_WRAP_METHOD_DOCS_ONLY(C function name)</function>"
 
-#: C/index-in.docbook:9722
+#: index-in.docbook:9741
 msgid "For instance, from <filename>recentinfo.hg</filename>:"
 msgstr "示例来自于<filename>container.hg</filename>:"
 
-#: C/index-in.docbook:9723
+#: index-in.docbook:9742
 #, no-wrap
 msgid ""
 "\n"
@@ -16982,7 +17018,7 @@ msgstr ""
 "\n"
 "_WRAP_METHOD_DOCS_ONLY(gtk_recent_info_get_applications)\n"
 
-#: C/index-in.docbook:9731
+#: index-in.docbook:9750
 msgid ""
 "Excludes documentation of the last GError** parameter of the C function. The "
 "optional \"&lt;exceptions&gt;\" is a comma-separated list of exceptions that "
@@ -16998,11 +17034,11 @@ msgstr ""
 "需要在异常描述中使用逗号,请使用反斜杠对其进行转义。例如:<code>errthrow "
 "\"Glib::OptionError Hello\\, world, Glib::ConvertError\"</code>"
 
-#: C/index-in.docbook:9749
+#: index-in.docbook:9768
 msgid "voidreturn"
 msgstr "voidreturn"
 
-#: C/index-in.docbook:9751
+#: index-in.docbook:9770
 msgid ""
 "Don't include a @return Doxygen command in the documentation. Useful if the "
 "wrapped C function returns a value, but the corresponding C++ method returns "
@@ -17011,11 +17047,11 @@ msgstr ""
 "不要再文档中包含@return Doxygen命令。如果被封装的C函数有返回而封装它的C++方法"
 "返回<type>void</type>,这将很有用。"
 
-#: C/index-in.docbook:9761
+#: index-in.docbook:9780
 msgid "_IGNORE, _IGNORE_SIGNAL, _IGNORE_PROPERTY"
 msgstr "_IGNORE, _IGNORE_SIGNAL, _IGNORE_PROPERTY"
 
-#: C/index-in.docbook:9762
+#: index-in.docbook:9781
 msgid ""
 "<command>gmmproc</command> will warn you on stdout about functions, signals, "
 "properties and child properties that you have forgotten to wrap, helping to "
@@ -17030,7 +17066,7 @@ msgstr ""
 "_IGNORE_SIGNAL()、_IGNORE_PROPERTY()宏使<command>gmmproc</command>停止发出部"
 "分警告。"
 
-#: C/index-in.docbook:9770
+#: index-in.docbook:9789
 #, no-wrap
 msgid ""
 "<function>_IGNORE(C function name 1, C function name 2, etc)\n"
@@ -17041,11 +17077,11 @@ msgstr ""
 "_IGNORE_SIGNAL(C属性名1, C属性名2, ...)\n"
 "_IGNORE_PROPERTY(C属性名1, C属性名2, ...)</function>"
 
-#: C/index-in.docbook:9774
+#: index-in.docbook:9793
 msgid "For instance, from <filename>flowbox.hg</filename>:"
 msgstr "示例来自<filename>flowbox.hg</filename>:"
 
-#: C/index-in.docbook:9775
+#: index-in.docbook:9794
 #, no-wrap
 msgid ""
 "\n"
@@ -17056,11 +17092,11 @@ msgstr ""
 "_IGNORE(gtk_flow_box_set_filter_func, gtk_flow_box_set_sort_func)\n"
 "_IGNORE_SIGNAL(activate-cursor-child, toggle-cursor-child, move-cursor)\n"
 
-#: C/index-in.docbook:9782
+#: index-in.docbook:9801
 msgid "_WRAP_SIGNAL"
 msgstr "_WRAP_SIGNAL"
 
-#: C/index-in.docbook:9783
+#: index-in.docbook:9802
 msgid ""
 "This macro generates the C++ libsigc++-style signal to wrap a C GObject "
 "signal. It actually generates a public accessor method, such as "
@@ -17073,13 +17109,13 @@ msgstr ""
 "象。<command>gmmproc</command>使用.defs文件寻找C参数类型并使用.m4转换文件查找"
 "如何将其转换为适当的类型。"
 
-#: C/index-in.docbook:9789
+#: index-in.docbook:9808
 msgid ""
 "<function>_WRAP_SIGNAL( C++ signal handler signature, C signal name)</"
 "function>"
 msgstr "<function>_WRAP_SIGNAL( C++信号处理函数签名, C信号名)</function>"
 
-#: C/index-in.docbook:9791
+#: index-in.docbook:9810
 #, no-wrap
 msgid ""
 "\n"
@@ -17088,7 +17124,7 @@ msgstr ""
 "\n"
 "_WRAP_SIGNAL(void clicked(),\"clicked\")\n"
 
-#: C/index-in.docbook:9794
+#: index-in.docbook:9813
 msgid ""
 "Signals usually have function pointers in the GTK struct, with a "
 "corresponding enum value and a <function>g_signal_new()</function> in the .c "
@@ -17097,11 +17133,11 @@ msgstr ""
 "信号通常在GTK结构体中具有函数指针,在.c文件中有对应的枚举值和"
 "<function>g_signal_new()</function>函数。"
 
-#: C/index-in.docbook:9800
+#: index-in.docbook:9819
 msgid "no_default_handler"
 msgstr "no_default_handler"
 
-#: C/index-in.docbook:9802
+#: index-in.docbook:9821
 msgid ""
 "Do not generate an <function>on_something()</function> virtual method to "
 "allow easy overriding of the default signal handler. Use this when adding a "
@@ -17113,11 +17149,11 @@ msgstr ""
 "处理函数。可以在添加一个具有默认信号处理函数的信号会使虚函数表尺寸变大以至于"
 "破坏ABI的时候,或是在需要添加一个非公共C默认处理函数的时候,使用此可选参数。"
 
-#: C/index-in.docbook:9811
+#: index-in.docbook:9830
 msgid "custom_default_handler"
 msgstr "custom_default_handler"
 
-#: C/index-in.docbook:9813
+#: index-in.docbook:9832
 msgid ""
 "Generate a declaration of the <function>on_something()</function> virtual "
 "method in the <filename>.h</filename> file, but do not generate a definition "
@@ -17128,18 +17164,18 @@ msgstr ""
 "函数的声明,但不在<filename>.cc</filename>文件中生成该函数的定义。请在你需要"
 "手动编写函数定义的时候使用此可选参数。"
 
-#: C/index-in.docbook:9820
+#: index-in.docbook:9839
 msgid "custom_c_callback"
 msgstr "custom_c_callback"
 
-#: C/index-in.docbook:9822
+#: index-in.docbook:9841
 msgid ""
 "Do not generate a C callback function for the signal. Use this when you must "
 "generate the callback function by hand."
 msgstr ""
 "不要为信号生成C回调函数。请在你需要手动编写回调函数的时候使用此可选参数。"
 
-#: C/index-in.docbook:9829
+#: index-in.docbook:9848
 msgid ""
 "Do an extra <function>reference()</function> on the return value of the "
 "<function>on_something()</function> virtual method, in case the C function "
@@ -17148,11 +17184,11 @@ msgstr ""
 "当C函数没有提供引用的时候,在<function>on_something()</function>虚成员函数的"
 "返回值上额外调用一次<function>reference()</function>。"
 
-#: C/index-in.docbook:9855 C/index-in.docbook:10036
+#: index-in.docbook:9874 index-in.docbook:10055
 msgid "exception_handler &lt;method_name&gt;"
 msgstr "exception_handler &lt;method_name&gt;"
 
-#: C/index-in.docbook:9857 C/index-in.docbook:10038
+#: index-in.docbook:9876 index-in.docbook:10057
 msgid ""
 "Allows to use custom exception handler instead of default one. Exception "
 "might be rethrown by user-defined handler, and it will be caught by default "
@@ -17161,11 +17197,11 @@ msgstr ""
 "允许使用自定义异常处理函数而不是使用默认异常处理函数。如果异常被用户自定义的"
 "处理函数程序抛出,则该异常将被默认异常处理函数捕获。"
 
-#: C/index-in.docbook:9863
+#: index-in.docbook:9882
 msgid "detail_name &lt;parameter_name&gt;"
 msgstr "detail_name &lt;parameter_name&gt;"
 
-#: C/index-in.docbook:9865
+#: index-in.docbook:9884
 msgid ""
 "Adds a <type>const Glib::ustring&amp;</type> parameter to the "
 "<methodname>signal_something()</methodname> method. Use it, if the signal "
@@ -17177,11 +17213,11 @@ msgstr ""
 "了<literal>G_SIGNAL_DETAILED</literal>标志注册这个信号,则使用该参数作为详细"
 "信号名。"
 
-#: C/index-in.docbook:9872
+#: index-in.docbook:9891
 msgid "two_signal_methods"
 msgstr "two_signal_methods"
 
-#: C/index-in.docbook:9874
+#: index-in.docbook:9893
 msgid ""
 "Used in conjunction with the <literal>detail_name</literal> option to "
 "generate two <methodname>signal_something()</methodname> methods, one "
@@ -17196,11 +17232,11 @@ msgstr ""
 "literal>选项,则只生成一个成员函数,此成员函数将接受一个参数且此参数有默认"
 "值。请再需要保持ABI不变的情况下使用此选项。"
 
-#: C/index-in.docbook:9888
+#: index-in.docbook:9907
 msgid "_WRAP_PROPERTY"
 msgstr "_WRAP_PROPERTY"
 
-#: C/index-in.docbook:9889
+#: index-in.docbook:9908
 msgid ""
 "This macro generates the C++ method to wrap a C GObject property. You must "
 "specify the property name and the wanted C++ type for the property. "
@@ -17211,11 +17247,11 @@ msgstr ""
 "需的C++类型。<command>gmmproc</command>使用.defs文件寻找C参数类型并使用.m4转"
 "换文件查找如何将其转换为适当的类型。"
 
-#: C/index-in.docbook:9893
+#: index-in.docbook:9912
 msgid "<function>_WRAP_PROPERTY(C property name, C++ type)</function>"
 msgstr "<function>_WRAP_PROPERTY(C属性名, C++类型)</function>"
 
-#: C/index-in.docbook:9895
+#: index-in.docbook:9914
 #, no-wrap
 msgid ""
 "\n"
@@ -17224,24 +17260,24 @@ msgstr ""
 "\n"
 "_WRAP_PROPERTY(\"label\", Glib::ustring)\n"
 
-#: C/index-in.docbook:9919
+#: index-in.docbook:9938
 msgid "_WRAP_VFUNC"
 msgstr "_WRAP_VFUNC"
 
-#: C/index-in.docbook:9920
+#: index-in.docbook:9939
 msgid "This macro generates the C++ method to wrap a virtual C function."
 msgstr "这个宏生成用于封装C虚函数的C++成员函数。"
 
-#: C/index-in.docbook:9921
+#: index-in.docbook:9940
 msgid ""
 "<function>_WRAP_VFUNC( C++ method signature, C function name)</function>"
 msgstr "<function>_WRAP_VFUNC( C++成员函数签名, C函数名)</function>"
 
-#: C/index-in.docbook:9922
+#: index-in.docbook:9941
 msgid "For instance, from <filename>widget.hg</filename>:"
 msgstr "示例来自于<filename>widget.hg</filename>:"
 
-#: C/index-in.docbook:9923
+#: index-in.docbook:9942
 #, no-wrap
 msgid ""
 "\n"
@@ -17250,7 +17286,7 @@ msgstr ""
 "\n"
 "_WRAP_VFUNC(SizeRequestMode get_request_mode() const, get_request_mode)\n"
 
-#: C/index-in.docbook:9926
+#: index-in.docbook:9945
 msgid ""
 "The C function (e.g. <function>get_request_mode</function>) is described "
 "more fully in the <filename>*_vfuncs.defs</filename> file, and the "
@@ -17264,7 +17300,7 @@ msgstr ""
 "换。转换也可以写入.hg文件。虚函数通常需要额外的转换,这些转换最好保存在使用这"
 "些虚函数的.hg文件文件中。"
 
-#: C/index-in.docbook:9937
+#: index-in.docbook:9956
 msgid ""
 "Do an extra <function>reference()</function> on the return value of the "
 "<function>something_vfunc()</function> function, in case the virtual C "
@@ -17273,11 +17309,11 @@ msgstr ""
 "当C虚函数没有提供引用的时候,在<function>something_vfunc()</function>函数的返"
 "回值上额外调用一次<function>reference()</function>。"
 
-#: C/index-in.docbook:9943
+#: index-in.docbook:9962
 msgid "refreturn_ctype"
 msgstr "refreturn_ctype"
 
-#: C/index-in.docbook:9945
+#: index-in.docbook:9964
 msgid ""
 "Do an extra <function>reference()</function> on the return value of an "
 "overridden <function>something_vfunc()</function> function in the C callback "
@@ -17287,11 +17323,11 @@ msgstr ""
 "<function>something_vfunc()</function>函数的返回值额外调用一次"
 "<function>reference()</function>。"
 
-#: C/index-in.docbook:9952
+#: index-in.docbook:9971
 msgid "keep_return"
 msgstr "keep_return"
 
-#: C/index-in.docbook:9954
+#: index-in.docbook:9973
 msgid ""
 "Keep a copy of the return value in the C callback function, in case the "
 "calling C function does not expect to get its own reference."
@@ -17299,17 +17335,17 @@ msgstr ""
 "当被调用的C函数不想要得到属于它的引用的时候,在C回调函数中保留一份返回值的副"
 "本。"
 
-#: C/index-in.docbook:9962
+#: index-in.docbook:9981
 msgid ""
 "Use the last GError** parameter of the C virtual function (if there is one) "
 "to throw an exception."
 msgstr "如果C虚函数的参数中的最后有一个GError**参数,则使用此参数抛出异常。"
 
-#: C/index-in.docbook:9967
+#: index-in.docbook:9986
 msgid "custom_vfunc"
 msgstr "custom_vfunc"
 
-#: C/index-in.docbook:9969
+#: index-in.docbook:9988
 msgid ""
 "Do not generate a definition of the vfunc in the <filename>.cc</filename> "
 "file. Use this when you must generate the vfunc by hand."
@@ -17317,29 +17353,29 @@ msgstr ""
 "不在<filename>.cc</filename>文件中生成虚函数的定义。请在你需要手写虚函数的时"
 "候使用此可选参数。"
 
-#: C/index-in.docbook:9975
+#: index-in.docbook:9994
 msgid "custom_vfunc_callback"
 msgstr "custom_vfunc_callback"
 
-#: C/index-in.docbook:9977
+#: index-in.docbook:9996
 msgid ""
 "Do not generate a C callback function for the vfunc. Use this when you must "
 "generate the callback function by hand."
 msgstr "不为虚函数生成C回调函数。请在你需要手写回调函数时使用此可选参数。"
 
-#: C/index-in.docbook:10020
+#: index-in.docbook:10039
 msgid "return_value &lt;value&gt;"
 msgstr "return_value &lt;value&gt;"
 
-#: C/index-in.docbook:10022
+#: index-in.docbook:10041
 msgid "Defines a non-default return value."
 msgstr "定义非默认的返回值。"
 
-#: C/index-in.docbook:10026
+#: index-in.docbook:10045
 msgid "err_return_value &lt;value&gt;"
 msgstr "err_return_value &lt;value&gt;"
 
-#: C/index-in.docbook:10028
+#: index-in.docbook:10047
 msgid ""
 "Defines a non-default return value, used only if the C++ "
 "<function>something_vfunc()</function> function throws an exception which is "
@@ -17351,7 +17387,7 @@ msgstr ""
 "了C回调函数中的时候才使用的非默认返回值。如果指定了return_value但没有指定"
 "err_return_value,则将err_return_value的值视作return_value的值。"
 
-#: C/index-in.docbook:10045
+#: index-in.docbook:10064
 msgid ""
 "A rule to which there may be exceptions: If the virtual C function returns a "
 "pointer to an object derived from <classname>GObject</classname>, i.e. a "
@@ -17365,27 +17401,27 @@ msgstr ""
 "<classname>Glib::RefPtr&lt;&gt;</classname>对象。且需要<parameter>refreturn</"
 "parameter>或<parameter>refreturn_ctype</parameter>额外参数。"
 
-#: C/index-in.docbook:10056
+#: index-in.docbook:10075
 msgid "Other macros"
 msgstr "其他宏"
 
-#: C/index-in.docbook:10058
+#: index-in.docbook:10077
 msgid "_IMPLEMENTS_INTERFACE"
 msgstr "_IMPLEMENTS_INTERFACE"
 
-#: C/index-in.docbook:10059
+#: index-in.docbook:10078
 msgid "This macro generates initialization code for the interface."
 msgstr "这个宏为接口生成初始化代码"
 
-#: C/index-in.docbook:10060
+#: index-in.docbook:10079
 msgid "<function>_IMPLEMENTS_INTERFACE(C++ interface name)</function>"
 msgstr "<function>_IMPLEMENTS_INTERFACE(C++接口名)</function>"
 
-#: C/index-in.docbook:10061
+#: index-in.docbook:10080
 msgid "For instance, from <filename>grid.hg</filename>:"
 msgstr "示例来自于<filename>grid.hg</filename>:"
 
-#: C/index-in.docbook:10062
+#: index-in.docbook:10081
 #, no-wrap
 msgid ""
 "\n"
@@ -17394,26 +17430,26 @@ msgstr ""
 "\n"
 "_IMPLEMENTS_INTERFACE(Orientable)\n"
 
-#: C/index-in.docbook:10065
+#: index-in.docbook:10084
 msgid "There is one optional extra argument: <_:variablelist-1/>"
 msgstr "有一个可选的额外参数:<_:variablelist-1/>"
 
-#: C/index-in.docbook:10078
+#: index-in.docbook:10097
 msgid "_WRAP_ENUM"
 msgstr "_WRAP_ENUM"
 
-#: C/index-in.docbook:10079
+#: index-in.docbook:10098
 msgid ""
 "This macro generates a C++ enum to wrap a C enum. You must specify the "
 "desired C++ name and the name of the underlying C enum."
 msgstr ""
 "这个宏生成一个C++枚举以包装C枚举。你必须指定所需的C++名称和底层C枚举的名称。"
 
-#: C/index-in.docbook:10081
+#: index-in.docbook:10100
 msgid "For instance, from <filename>enums.hg</filename>:"
 msgstr "示例来自于<filename>enums.hg</filename>:"
 
-#: C/index-in.docbook:10082
+#: index-in.docbook:10101
 #, no-wrap
 msgid ""
 "\n"
@@ -17422,11 +17458,11 @@ msgstr ""
 "\n"
 "_WRAP_ENUM(Orientation, GtkOrientation)\n"
 
-#: C/index-in.docbook:10088
+#: index-in.docbook:10107
 msgid "NO_GTYPE"
 msgstr "NO_GTYPE"
 
-#: C/index-in.docbook:10090
+#: index-in.docbook:10109
 msgid ""
 "Use this option, if the enum is not a <classname>GType</classname>. This is "
 "the case when there is no <function>*_get_type()</function> function for the "
@@ -17438,7 +17474,7 @@ msgstr ""
 "举没有<function>*_get_type()</function>函数,你不需要为该函数额外包含头文件。"
 "但你应该此为对C API提交一个bug,因为所有的枚举都应该被注册为GTypes。"
 
-#: C/index-in.docbook:10095
+#: index-in.docbook:10114
 msgid ""
 "If you specify <literal>NO_GTYPE</literal>, don't use that enum as the type "
 "in _WRAP_PROPERTY. It would cause a runtime error, when the generated "
@@ -17448,11 +17484,11 @@ msgstr ""
 "型。这会导致生成的<methodname>property_*()</methodname>成员函数被调用时出现运"
 "行时错误。"
 
-#: C/index-in.docbook:10098
+#: index-in.docbook:10117
 msgid "For example, from <filename>icontheme.hg</filename>:"
 msgstr "示例来自于<filename>icontheme.hg</filename>:"
 
-#: C/index-in.docbook:10099
+#: index-in.docbook:10118
 #, no-wrap
 msgid ""
 "\n"
@@ -17463,11 +17499,11 @@ msgstr ""
 "_WRAP_ENUM(IconLookupFlags, GtkIconLookupFlags, NO_GTYPE)\n"
 "      "
 
-#: C/index-in.docbook:10105
+#: index-in.docbook:10124
 msgid "gtype_func &lt;function_name&gt;"
 msgstr "gtype_func &lt;function_name&gt;"
 
-#: C/index-in.docbook:10107
+#: index-in.docbook:10126
 msgid ""
 "Specifies the name of the <function>*_get_type()</function> function for the "
 "C enum. Use this parameter if <command>gmmproc</command> can't deduce the "
@@ -17476,12 +17512,11 @@ msgstr ""
 "指定C枚举的<function>*_get_type()</function>函数名。如果<command>gmmproc</"
 "command>无法从C枚举类型的名称推断出正确的函数名,请使用此额外参数。"
 
-#: C/index-in.docbook:10110
+#: index-in.docbook:10129
 msgid "For example, from <filename>dbusproxy.hg</filename> in glibmm:"
-msgstr ""
-"示例来自于glibmm的<filename>dbusproxy.hg</filename>:"
+msgstr "示例来自于glibmm的<filename>dbusproxy.hg</filename>:"
 
-#: C/index-in.docbook:10111
+#: index-in.docbook:10130
 #, no-wrap
 msgid ""
 "\n"
@@ -17492,11 +17527,11 @@ msgstr ""
 "_WRAP_ENUM(ProxyFlags, GDBusProxyFlags, gtype_func g_dbus_proxy_flags_get_type)\n"
 "      "
 
-#: C/index-in.docbook:10117
+#: index-in.docbook:10136
 msgid "CONV_TO_INT"
 msgstr "CONV_TO_INT"
 
-#: C/index-in.docbook:10119
+#: index-in.docbook:10138
 msgid ""
 "\"Convertible to int.\" Generates a plain enum (not an enum class) within a "
 "class. Such an enum is scoped like an enum class, but unlike an enum class, "
@@ -17505,11 +17540,11 @@ msgstr ""
 "在一个类中生成普通枚举而不是生成枚举类。这将允许该枚举类型的值可以直接转换为"
 "<type>int</type>类型的值,且这样的枚举还拥有与枚举类类似的作用域。"
 
-#: C/index-in.docbook:10122
+#: index-in.docbook:10141
 msgid "For example, from <filename>dialog.hg</filename>:"
 msgstr "示例来自于<filename>dialog.hg</filename>:"
 
-#: C/index-in.docbook:10123
+#: index-in.docbook:10142
 #, no-wrap
 msgid ""
 "\n"
@@ -17520,22 +17555,21 @@ msgstr ""
 "_WRAP_ENUM(ResponseType, GtkResponseType, CONV_TO_INT)\n"
 "      "
 
-#: C/index-in.docbook:10129
+#: index-in.docbook:10148
 msgid "s#&lt;from&gt;#&lt;to&gt;#"
 msgstr "s#&lt;from&gt;#&lt;to&gt;#"
 
-#: C/index-in.docbook:10131
+#: index-in.docbook:10150
 msgid ""
 "Substitutes (part of) the name of one or more enum constants. You can add "
 "any number of substitutions."
 msgstr "替换一个或多个枚举常量名称的全部或一部分。你可以添加任意数量的替换。"
 
-#: C/index-in.docbook:10133
+#: index-in.docbook:10152
 msgid "For example, from <filename>iochannel.hg</filename> in glibmm:"
-msgstr ""
-"示例来自于glibmm中的<filename>iochannel.hg</filename>:"
+msgstr "示例来自于glibmm中的<filename>iochannel.hg</filename>:"
 
-#: C/index-in.docbook:10134
+#: index-in.docbook:10153
 #, no-wrap
 msgid ""
 "\n"
@@ -17546,11 +17580,11 @@ msgstr ""
 "_WRAP_ENUM(SeekType, GSeekType, NO_GTYPE, s#^SEEK_#SEEK_TYPE_#)\n"
 "      "
 
-#: C/index-in.docbook:10158
+#: index-in.docbook:10177
 msgid "_WRAP_ENUM_DOCS_ONLY"
 msgstr "_WRAP_ENUM_DOCS_ONLY"
 
-#: C/index-in.docbook:10159
+#: index-in.docbook:10178
 msgid ""
 "This macro just generates a Doxygen documentationn block for the enum. This "
 "is useful for enums that can't be wrapped with <function>_WRAP_ENUM()</"
@@ -17566,11 +17600,11 @@ msgstr ""
 "成的文档的枚举类型很有用。它与<function>_WRAP_ENUM()</function>使用同一语法,"
 "也处理一样的参数(尽管有些额外参数因为没有作用会被忽略)"
 
-#: C/index-in.docbook:10171
+#: index-in.docbook:10190
 msgid "_WRAP_GERROR"
 msgstr "_WRAP_GERROR"
 
-#: C/index-in.docbook:10172
+#: index-in.docbook:10191
 msgid ""
 "This macro generates a C++ exception class, derived from <classname>Glib::"
 "Error</classname>, with a <type>Code</type> enum and a <methodname>code()</"
@@ -17581,17 +17615,17 @@ msgstr ""
 "并具有一个<type>Code</type>枚举成员变量和一个<methodname>code()</methodname>"
 "成员函数。你必须指定所需的C++名称、以及与其对应的C枚举名、C枚举值前缀。"
 
-#: C/index-in.docbook:10175
+#: index-in.docbook:10194
 msgid ""
 "This exception can then be thrown by methods which are generated from "
 "_WRAP_METHOD() with the errthrow option."
 msgstr "然后可以由带有errthrow选项的_WRAP_METHOD()生成的成员函数抛出此异常。"
 
-#: C/index-in.docbook:10177
+#: index-in.docbook:10196
 msgid "For instance, from <filename>pixbuf.hg</filename>:"
 msgstr "示例来自于<filename>pixbuf.hg</filename>:"
 
-#: C/index-in.docbook:10178
+#: index-in.docbook:10197
 #, no-wrap
 msgid ""
 "\n"
@@ -17600,7 +17634,7 @@ msgstr ""
 "\n"
 "_WRAP_GERROR(PixbufError, GdkPixbufError, GDK_PIXBUF_ERROR)\n"
 
-#: C/index-in.docbook:10181
+#: index-in.docbook:10200
 msgid ""
 "_WRAP_GERROR() accepts the same optional arguments as _WRAP_ENUM() (though "
 "CONV_TO_INT is ignored because all exception class enums are plain enums "
@@ -17609,11 +17643,11 @@ msgstr ""
 "_WRAP_GERROR()接受与_WRAP_ENUM()一样的可选参数(尽管CONV_TO_INT参数因为没有作"
 "用而被忽略)。"
 
-#: C/index-in.docbook:10187
+#: index-in.docbook:10206
 msgid "_MEMBER_GET / _MEMBER_SET"
 msgstr "_MEMBER_GET / _MEMBER_SET"
 
-#: C/index-in.docbook:10188
+#: index-in.docbook:10207
 msgid ""
 "Use these macros if you're wrapping a simple struct or boxed type that "
 "provides direct access to its data members, to create getters and setters "
@@ -17622,28 +17656,28 @@ msgstr ""
 "如果要包装可以被直接访问其数据成员的简单结构体或装箱类型,请使用这些宏。这些"
 "宏会为其数据成员创建访问器成员函数(getter和setter)。"
 
-#: C/index-in.docbook:10192
+#: index-in.docbook:10211
 msgid "<function>_MEMBER_GET(C++ name, C name, C++ type, C type)</function>"
 msgstr "<function>_MEMBER_GET(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10193
+#: index-in.docbook:10212
 msgid "<function>_MEMBER_SET(C++ name, C name, C++ type, C type)</function>"
 msgstr "<function>_MEMBER_SET(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10194
+#: index-in.docbook:10213
 msgid "For example, in <filename>rectangle.hg</filename>:"
 msgstr "示例来自于<filename>rectangle.hg</filename>:"
 
-#: C/index-in.docbook:10197
+#: index-in.docbook:10216
 #, no-wrap
 msgid "_MEMBER_GET(x, x, int, int)"
 msgstr "_MEMBER_GET(x, x, int, int)"
 
-#: C/index-in.docbook:10200
+#: index-in.docbook:10219
 msgid "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
 msgstr "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
 
-#: C/index-in.docbook:10201
+#: index-in.docbook:10220
 msgid ""
 "Use these macros to automatically provide getters and setters for a data "
 "member that is a pointer type. For the getter function, it will create two "
@@ -17652,18 +17686,17 @@ msgstr ""
 "使用这些宏可以自动为指针类型的数据成员提供访问器(getter和setter)。对于"
 "getter函数,将创建两个版本,一个const版本一个非const版本。"
 
-#: C/index-in.docbook:10206
+#: index-in.docbook:10225
 msgid ""
 "<function>_MEMBER_GET_PTR(C++ name, C name, C++ type, C type)</function>"
 msgstr "<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10207
+#: index-in.docbook:10226
 msgid ""
 "<function>_MEMBER_SET_PTR(C++ name, C name, C++ type, C type)</function>"
-msgstr ""
-"<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
+msgstr "<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10208
+#: index-in.docbook:10227
 msgid ""
 "For example, for <classname>Pango::Analysis</classname> in <filename>item."
 "hg</filename>:"
@@ -17671,7 +17704,7 @@ msgstr ""
 "示例来自于<filename>item.hg</filename>文件中的<classname>Pango::Analysis</"
 "classname>:"
 
-#: C/index-in.docbook:10210
+#: index-in.docbook:10229
 #, no-wrap
 msgid ""
 "\n"
@@ -17682,11 +17715,11 @@ msgstr ""
 "// _MEMBER_GET_PTR(engine_lang, lang_engine, EngineLang*, PangoEngineLang*)\n"
 "// It's just a comment. It's difficult to find a real-world example.\n"
 
-#: C/index-in.docbook:10216
+#: index-in.docbook:10235
 msgid "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
 msgstr "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
 
-#: C/index-in.docbook:10217
+#: index-in.docbook:10236
 msgid ""
 "Use these macros to provide getters and setters for a data member that is a "
 "<classname>GObject</classname> type that must be referenced before being "
@@ -17695,22 +17728,21 @@ msgstr ""
 "使用这些宏可以为返回之前必须被引用的<classname>GObject</classname>类型数据成"
 "员提供访问器(getters和setters)。"
 
-#: C/index-in.docbook:10222
+#: index-in.docbook:10241
 msgid ""
 "<function>_MEMBER_GET_GOBJECT(C++ name, C name, C++ type, C type)</function>"
 msgstr "<function>_MEMBER_GET_GOBJECT(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10223
+#: index-in.docbook:10242
 msgid ""
 "<function>_MEMBER_SET_GOBJECT(C++ name, C name, C++ type, C type)</function>"
 msgstr "<function>_MEMBER_SET_GOBJECT(C++名, C名, C++类型, C类型)</function>"
 
-#: C/index-in.docbook:10224
+#: index-in.docbook:10243
 msgid "For example, in Pangomm, <filename>layoutline.hg</filename>:"
-msgstr ""
-"示例来自于Pangomm中的<filename>layoutline.hg</filename>:"
+msgstr "示例来自于Pangomm中的<filename>layoutline.hg</filename>:"
 
-#: C/index-in.docbook:10225
+#: index-in.docbook:10244
 #, no-wrap
 msgid ""
 "\n"
@@ -17719,11 +17751,11 @@ msgstr ""
 "\n"
 "_MEMBER_GET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)\n"
 
-#: C/index-in.docbook:10233
+#: index-in.docbook:10252
 msgid "gmmproc Parameter Processing"
 msgstr "gmmproc参数处理"
 
-#: C/index-in.docbook:10234
+#: index-in.docbook:10253
 msgid ""
 "<command>gmmproc</command> allows processing the parameters in a method "
 "signature for the macros that process method signatures (like "
@@ -17734,11 +17766,11 @@ msgstr ""
 "<function>_WRAP_METHOD()</function>、<function>_WRAP_CTOR()</function>、"
 "<function>_WRAP_CREATE()</function>)处理成员函数签名中的参数:"
 
-#: C/index-in.docbook:10241
+#: index-in.docbook:10260
 msgid "Parameter Reordering"
 msgstr "对参数重新排序"
 
-#: C/index-in.docbook:10248
+#: index-in.docbook:10267
 #, no-wrap
 msgid ""
 "\n"
@@ -17749,7 +17781,7 @@ msgstr ""
 "void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device,\n"
 "  GdkEventMask events);\n"
 
-#: C/index-in.docbook:10255
+#: index-in.docbook:10274
 #, no-wrap
 msgid ""
 "\n"
@@ -17762,7 +17794,7 @@ msgstr ""
 "  const Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{device}),\n"
 "  gtk_widget_set_device_events)\n"
 
-#: C/index-in.docbook:10265
+#: index-in.docbook:10284
 #, no-wrap
 msgid ""
 "\n"
@@ -17775,7 +17807,7 @@ msgstr ""
 "  const Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{.}),\n"
 "  gtk_widget_set_device_events)\n"
 
-#: C/index-in.docbook:10242
+#: index-in.docbook:10261
 msgid ""
 "For all the macros that process method signatures, it is possible to specify "
 "a different order for the C++ parameters than the existing order in the C "
@@ -17798,7 +17830,7 @@ msgstr ""
 "知<command>gmmproc</command>将C++参数映射到<literal>{}</literal>内的C参数。由"
 "于C++参数名与C参数名相对应,所以上述代码可以被重写为:<_:programlisting-3/>"
 
-#: C/index-in.docbook:10272
+#: index-in.docbook:10291
 msgid ""
 "Please note that when reordering parameters for a <function>_WRAP_SIGNAL()</"
 "function> method signature, the C parameter names would always be "
@@ -17812,11 +17844,11 @@ msgstr ""
 "<filename>generate_extra_defs</filename>实用工具使用,而该实用工具不在乎C API"
 "中的参数名是什么。"
 
-#: C/index-in.docbook:10284
+#: index-in.docbook:10303
 msgid "Optional Parameter Processing"
 msgstr "可选参数处理"
 
-#: C/index-in.docbook:10293
+#: index-in.docbook:10312
 #, no-wrap
 msgid ""
 "\n"
@@ -17825,7 +17857,7 @@ msgstr ""
 "\n"
 "GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label);\n"
 
-#: C/index-in.docbook:10302
+#: index-in.docbook:10321
 #, no-wrap
 msgid ""
 "\n"
@@ -17836,7 +17868,7 @@ msgstr ""
 "_WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp; label{?}),\n"
 "  gtk_tool_button_new)\n"
 
-#: C/index-in.docbook:10285
+#: index-in.docbook:10304
 msgid ""
 "For all macros processing method signatures except <function>_WRAP_SIGNAL()</"
 "function> and <function>_WRAP_VFUNC()</function> it is also possible to make "
@@ -17862,11 +17894,11 @@ msgstr ""
 "数的原始构造函数和一个带有可选参数的构造函数。在如下所示的情况下:<_:"
 "programlisting-2/> 将生成两个构造函数:一个带可选参数,另一个不带可选参数。"
 
-#: C/index-in.docbook:10312
+#: index-in.docbook:10331
 msgid "Output Parameter Processing"
 msgstr "输出参数处理"
 
-#: C/index-in.docbook:10322
+#: index-in.docbook:10341
 #, no-wrap
 msgid ""
 "\n"
@@ -17875,7 +17907,7 @@ msgstr ""
 "\n"
 "GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
 
-#: C/index-in.docbook:10328
+#: index-in.docbook:10347
 #, no-wrap
 msgid ""
 "\n"
@@ -17886,7 +17918,7 @@ msgstr ""
 "_WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT}) const,\n"
 "  gtk_widget_get_request_mode)\n"
 
-#: C/index-in.docbook:10337
+#: index-in.docbook:10356
 #, no-wrap
 msgid ""
 "\n"
@@ -17895,7 +17927,7 @@ msgstr ""
 "\n"
 "_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = (SizeRequestMode)($4)')\n"
 
-#: C/index-in.docbook:10341
+#: index-in.docbook:10360
 #, no-wrap
 msgid ""
 "\n"
@@ -17904,7 +17936,7 @@ msgstr ""
 "\n"
 "_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = ($1)($4)')\n"
 
-#: C/index-in.docbook:10313
+#: index-in.docbook:10332
 msgid ""
 "With <function>_WRAP_METHOD()</function> it is also possible for the return "
 "of the wrapped C function (if it has one) to be placed in an output "
@@ -17934,7 +17966,7 @@ msgstr ""
 "必须指定必要的初始化宏。如下所示:<_:programlisting-3/>也可以写成:<_:"
 "programlisting-4/>"
 
-#: C/index-in.docbook:10351
+#: index-in.docbook:10370
 #, no-wrap
 msgid ""
 "\n"
@@ -17945,7 +17977,7 @@ msgstr ""
 "gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view,\n"
 "  GtkTreePath* path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
 
-#: C/index-in.docbook:10358
+#: index-in.docbook:10377
 #, no-wrap
 msgid ""
 "\n"
@@ -17958,7 +17990,7 @@ msgstr ""
 "  const CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
 "  gtk_icon_view_get_cell_rect)\n"
 
-#: C/index-in.docbook:10373
+#: index-in.docbook:10392
 #, no-wrap
 msgid ""
 "\n"
@@ -17967,7 +17999,7 @@ msgstr ""
 "\n"
 "_INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle',`$3 = Glib::wrap(&amp;($4))')\n"
 
-#: C/index-in.docbook:10345
+#: index-in.docbook:10364
 msgid ""
 "<function>_WRAP_METHOD()</function> also supports setting C++ output "
 "parameters from C output parameters if the C function being wrapped has any. "
@@ -18000,11 +18032,11 @@ msgstr ""
 "<classname>GdkRectangle*</classname>设置一个<classname>Gdk::Rectangle&amp;</"
 "classname>。如下所示:<_:programlisting-3/>"
 
-#: C/index-in.docbook:10380
+#: index-in.docbook:10399
 msgid "String Parameter Processing"
 msgstr "处理字符串参数"
 
-#: C/index-in.docbook:10381
+#: index-in.docbook:10400
 msgid ""
 "A string-valued input parameter in a C++ method is usually a <type>const "
 "Glib::ustring&amp;</type> or a <type>const std::string&amp;</type>. In C "
@@ -18022,13 +18054,13 @@ msgstr ""
 "<methodname>c_str()</methodname>)。一些C函数的一些参数接受<literal>nullptr</"
 "literal>,并以特殊方式解释它。其他参数不能为<literal>nullptr</literal>。"
 
-#: C/index-in.docbook:10394
+#: index-in.docbook:10413
 msgid ""
 "for mandatory parameters (with or without default values): empty string to "
 "empty string,"
 msgstr "对于带有或不带有默认值的强制性参数:空字符串到空字符串"
 
-#: C/index-in.docbook:10396
+#: index-in.docbook:10415
 msgid ""
 "for optional parameters (with appended <literal>{?}</literal>): empty string "
 "to <literal>nullptr</literal>."
@@ -18036,7 +18068,7 @@ msgstr ""
 "对于附加了<literal>{?}</literal>的可选参数:空字符串到<literal>nullptr</"
 "literal>。"
 
-#: C/index-in.docbook:10390
+#: index-in.docbook:10409
 msgid ""
 "The default conversion in <function>_WRAP_METHOD()</function> and similar "
 "macros is <_:itemizedlist-1/> If the default conversion is not the best "
@@ -18052,11 +18084,11 @@ msgstr ""
 "为非<literal>NULL</literal>)。如果想同时添加C参数名和<literal>NULL</"
 "literal>,则用空格对它们进行分隔:<literal>{c_param_name NULL}</literal>。"
 
-#: C/index-in.docbook:10410
+#: index-in.docbook:10429
 msgid "Basic Types"
 msgstr "基本类型"
 
-#: C/index-in.docbook:10411
+#: index-in.docbook:10430
 msgid ""
 "Some of the basic types that are used in C APIs have better alternatives in C"
 "++. For example, there's no need for a <type>gboolean</type> type since C++ "
@@ -18067,66 +18099,66 @@ msgstr ""
 "type>类型,所以不需要<type>gboolean</type>类型。以下列表显示了C API中的一些常"
 "用类型,以及你可以在C++封装库中将它们转换为哪些类型。"
 
-#: C/index-in.docbook:10416
+#: index-in.docbook:10435
 msgid "Basic Type equivalents"
 msgstr "基本类型的等效项"
 
-#: C/index-in.docbook:10418
+#: index-in.docbook:10437
 msgid "C type"
 msgstr "C 类型"
 
-#: C/index-in.docbook:10419
+#: index-in.docbook:10438
 msgid "C++ type"
 msgstr "C++类型"
 
-#: C/index-in.docbook:10420
+#: index-in.docbook:10439
 msgid "<type>gboolean</type>"
 msgstr "<type>gboolean</type>"
 
-#: C/index-in.docbook:10420
+#: index-in.docbook:10439
 msgid "<type>bool</type>"
 msgstr "<type>bool</type>"
 
-#: C/index-in.docbook:10421
+#: index-in.docbook:10440
 msgid "<type>gint</type>"
 msgstr "<type>gint</type>"
 
-#: C/index-in.docbook:10421
+#: index-in.docbook:10440
 msgid "<type>int</type>"
 msgstr "<type>int</type>"
 
-#: C/index-in.docbook:10422
+#: index-in.docbook:10441
 msgid "<type>guint</type>"
 msgstr "<type>guint</type>"
 
-#: C/index-in.docbook:10423
+#: index-in.docbook:10442
 msgid "<type>gdouble</type>"
 msgstr "<type>gdouble</type>"
 
-#: C/index-in.docbook:10423
+#: index-in.docbook:10442
 msgid "<type>double</type>"
 msgstr "<type>double</type>"
 
-#: C/index-in.docbook:10424
+#: index-in.docbook:10443
 msgid "<type>gunichar</type>"
 msgstr "<type>gunichar</type>"
 
-#: C/index-in.docbook:10425
+#: index-in.docbook:10444
 msgid "<type>gchar*</type>"
 msgstr "<type>gchar*</type>"
 
-#: C/index-in.docbook:10425
+#: index-in.docbook:10444
 msgid ""
 "<classname>Glib::ustring</classname> (or <classname>std::string</classname> "
 "for filenames)"
 msgstr ""
 "<classname>Glib::ustring</classname>(或<classname>std::string</classname>)"
 
-#: C/index-in.docbook:10432
+#: index-in.docbook:10451
 msgid "Hand-coded source files"
 msgstr "手工编码源文件"
 
-#: C/index-in.docbook:10433
+#: index-in.docbook:10452
 msgid ""
 "You might want to include additional source files that will not be generated "
 "by <command>gmmproc</command> from <filename>.hg</filename> and <filename>."
@@ -18141,11 +18173,11 @@ msgstr ""
 "<filename>meson.build</filename>的<varname>extra_h_files</varname>和"
 "<varname>extra_cc_files</varname>变量提到它们。"
 
-#: C/index-in.docbook:10443
+#: index-in.docbook:10462
 msgid "Initialization"
 msgstr "初始化"
 
-#: C/index-in.docbook:10444
+#: index-in.docbook:10463
 msgid ""
 "Your library must be initialized before it can be used, to register the new "
 "types that it makes available. Also, the C library that you are wrapping "
@@ -18162,7 +18194,7 @@ msgstr ""
 "函数中完成此操作。这个函数应该初始化你的依赖项和调用你生成的"
 "<function>wrap_init()</function>函数。例如:"
 
-#: C/index-in.docbook:10452
+#: index-in.docbook:10471
 #, no-wrap
 msgid ""
 "\n"
@@ -18179,7 +18211,7 @@ msgstr ""
 "  wrap_init(); //Tells the Glib::wrap() table about the libsomethingmm classes.\n"
 "}\n"
 
-#: C/index-in.docbook:10459
+#: index-in.docbook:10478
 msgid ""
 "The implementation of the <function>wrap_init()</function> method in "
 "<filename>wrap_init.cc</filename> is generated by "
@@ -18194,11 +18226,11 @@ msgstr ""
 "<filename>wrap_init.h</filename>文件以使<function>wrap_init()</function>函数"
 "出现在正确的C++命名空间中。"
 
-#: C/index-in.docbook:10468
+#: index-in.docbook:10487
 msgid "Problems in the C API."
 msgstr "C API中的问题"
 
-#: C/index-in.docbook:10469
+#: index-in.docbook:10488
 msgid ""
 "You are likely to encounter some problems in the library that you are "
 "wrapping, particularly if it is a new project. Here are some common "
@@ -18207,16 +18239,16 @@ msgstr ""
 "你可能会在封装库的过程中遇到一些问题。特别是它是一个新项目的时候。以下是一些"
 "常见问题以及解决方案。"
 
-#: C/index-in.docbook:10471
+#: index-in.docbook:10490
 msgid "Unable to predeclare structs"
 msgstr "无法提前声明的结构体"
 
-#: C/index-in.docbook:10472
+#: index-in.docbook:10491
 msgid "By convention, structs are declared in glib/GTK-style headers like so:"
 msgstr ""
 "按照约定,glib/GTK风格的头文件中结构体声明应如下所示:"
 
-#: C/index-in.docbook:10473
+#: index-in.docbook:10492
 #, no-wrap
 msgid ""
 "\n"
@@ -18235,7 +18267,7 @@ msgstr ""
 "  ...\n"
 "};\n"
 
-#: C/index-in.docbook:10481
+#: index-in.docbook:10500
 msgid ""
 "The extra typedef allows the struct to be used in a header without including "
 "its full definition, simply by predeclaring it, by repeating that typedef. "
@@ -18249,7 +18281,7 @@ msgstr ""
 "件。,从而将其排除在你的公共API之外。<command>gmmproc</command>假定使用了这个"
 "技术,因此如果没使用这种技术就会遇到编译错误。"
 
-#: C/index-in.docbook:10488
+#: index-in.docbook:10507
 #, no-wrap
 msgid ""
 "\n"
@@ -18262,7 +18294,7 @@ msgstr ""
 "../../libexample/libexamplemm/example-widget.h:34: error: 'ExampleWidget' has a previous declaration here\n"
 "make[4]: *** [example-widget.lo] Error 1\n"
 
-#: C/index-in.docbook:10494
+#: index-in.docbook:10513
 #, no-wrap
 msgid ""
 "\n"
@@ -18273,7 +18305,7 @@ msgstr ""
 "example-widget.h:60: error: '_ExampleWidget ExampleWidget' redeclared as different kind of symbol\n"
 "../../libexample/libexamplemm/example-widget.h:34: error: previous declaration of 'typedef struct 
_ExampleWidget ExampleWidget'\n"
 
-#: C/index-in.docbook:10486
+#: index-in.docbook:10505
 msgid ""
 "This compiler error might look like this: <_:programlisting-1/> or this: <_:"
 "programlisting-2/>"
@@ -18281,17 +18313,17 @@ msgstr ""
 "编译错误看起来可能如下所示:<_:programlisting-1/>或如下所示:<_:"
 "programlisting-2/>"
 
-#: C/index-in.docbook:10499
+#: index-in.docbook:10518
 msgid ""
 "This is easy to correct in the C library, so do send a patch to the relevant "
 "maintainer."
 msgstr "这很容易在C库中修复,你可以向相关库的维护者发送补丁。"
 
-#: C/index-in.docbook:10503
+#: index-in.docbook:10522
 msgid "Lack of properties"
 msgstr "缺少属性"
 
-#: C/index-in.docbook:10504
+#: index-in.docbook:10523
 msgid ""
 "By convention, glib/GTK-style objects have <function>*_new()</function> "
 "functions, such as <function>example_widget_new()</function> that do nothing "
@@ -18305,7 +18337,7 @@ msgstr ""
 "function>并返回其结果。输入参数为<function>g_object_new()</function>函数提供"
 "属性名和属性值。例如:"
 
-#: C/index-in.docbook:10510
+#: index-in.docbook:10529
 #, no-wrap
 msgid ""
 "\n"
@@ -18320,7 +18352,7 @@ msgstr ""
 "        return g_object_new (EXAMPLE_TYPE_WIDGET, \"something\", something, \"thing\", thing, NULL);\n"
 "}\n"
 
-#: C/index-in.docbook:10516
+#: index-in.docbook:10535
 msgid ""
 "This allows language bindings to implement their own equivalents (such as C+"
 "+ constructors), without using the <function>*_new()</function> function. "
@@ -18331,7 +18363,7 @@ msgstr ""
 "<function>*_new()</function>函数。这通常是必须的,这是为了让它们可以实例化派"
 "生的GType,这样就可以为信号处理函数和虚函数添加自己的钩子。"
 
-#: C/index-in.docbook:10520
+#: index-in.docbook:10539
 msgid ""
 "At the least, the <function>_new()</function> function should not use any "
 "private API (functions that are only in a .c file). Even when there are no "
@@ -18343,7 +18375,7 @@ msgstr ""
 "对应的函数,有时我们也可以在<function>_new()</function>函数中重新实现2到3行代"
 "码,只要这些行使用的API是可用的。"
 
-#: C/index-in.docbook:10525
+#: index-in.docbook:10544
 msgid ""
 "Another workaround is to add a <function>*_construct()</function> function "
 "that the C++ constructor can call after instantiating its own type. For "
@@ -18352,7 +18384,7 @@ msgstr ""
 "另一个解决方法是添加一个C++构造函数可以在实例化自身类型后调用的"
 "<function>*_construct()</function>函数。例如:"
 
-#: C/index-in.docbook:10528
+#: index-in.docbook:10547
 #, no-wrap
 msgid ""
 "\n"
@@ -18385,7 +18417,7 @@ msgstr ""
 "        do_something(something);\n"
 "}\n"
 
-#: C/index-in.docbook:10543
+#: index-in.docbook:10562
 msgid ""
 "Adding properties, and ensuring that they interact properly with each other, "
 "is relatively difficult to correct in the C library, but it is possible, so "
@@ -18395,11 +18427,11 @@ msgstr ""
 "的。若你发现了一个bug请联系相关的维护人员并向其提供相关信息以便尽快修复该"
 "bug。"
 
-#: C/index-in.docbook:10551
+#: index-in.docbook:10570
 msgid "Documentation"
 msgstr "文档"
 
-#: C/index-in.docbook:10552
+#: index-in.docbook:10571
 msgid ""
 "In general, gtkmm-style projects use Doxygen, which reads specially "
 "formatted C++ comments and generates HTML documentation. You may write these "
@@ -18408,11 +18440,11 @@ msgstr ""
 "通常,gtkmm风格项目使用Doxygen生成文档,它会读取特殊格式的C++注释并生成HTML文"
 "档。你可以直接将这些doxygen可读的注释写到头文件中。"
 
-#: C/index-in.docbook:10555
+#: index-in.docbook:10574
 msgid "Reusing C documentation"
 msgstr "重用C文档"
 
-#: C/index-in.docbook:10556
+#: index-in.docbook:10575
 msgid ""
 "You might wish to reuse documentation that exists for the C library that you "
 "are wrapping. GTK-style C libraries typically use gtk-doc and therefore have "
@@ -18430,12 +18462,12 @@ msgstr ""
 "doxygen注释。<command>gmmproc</command>甚至会尝试转换文档以使其更适合C++ "
 "API。"
 
-#: C/index-in.docbook:10566
+#: index-in.docbook:10585
 #, no-wrap
 msgid "./docextract_to_xml.py -s ~/checkout/gnome/gtk/gtk/ &gt; gtk_docs.xml\n"
 msgstr "./docextract_to_xml.py -s ~/checkout/gnome/gtk/gtk/ &gt; gtk_docs.xml\n"
 
-#: C/index-in.docbook:10568
+#: index-in.docbook:10587
 msgid ""
 "Because this automatic transformation is not always appropriate, you might "
 "want to provide hand-written text for a particular method. You can do this "
@@ -18449,11 +18481,11 @@ msgstr ""
 "<filename>something_docs_override.xml</filename>文件并更改其内容。你也可以在"
 "<filename>.hg</filename>文件中编写自己的文档。"
 
-#: C/index-in.docbook:10578
+#: index-in.docbook:10597
 msgid "Documentation build structure"
 msgstr "文档构建结构"
 
-#: C/index-in.docbook:10579
+#: index-in.docbook:10598
 msgid ""
 "If you copied the skeleton source tree in <application>mm-common</"
 "application> and substituted the placeholder text, then you will already "
@@ -18473,6 +18505,19 @@ msgstr ""
 "入文件不是通过Doxygen配置文件定义的,而是由<command>meson/ninja</command>传递"
 "文件内容到<command>doxygen</command>的标准输入。"
 
+#~ msgid ""
+#~ "The next two lines of code create a window and set its default (initial) "
+#~ "size:"
+#~ msgstr "接下来的两行代码创建一个窗口并设置其的初始大小:"
+
+#, no-wrap
+#~ msgid ""
+#~ "Gtk::Window window;\n"
+#~ "window.set_default_size(200, 200);"
+#~ msgstr ""
+#~ "Gtk::Window window;\n"
+#~ "window.set_default_size(200, 200);"
+
 #~ msgid "For instance, <_:programlisting-1/>"
 #~ msgstr "例如:<_:programlisting-1/>"
 
@@ -18484,10 +18529,12 @@ msgstr ""
 
 #~ msgid ""
 #~ "\n"
-#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref, 
pango_coverage_unref)\n"
+#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, "
+#~ "pango_coverage_ref, pango_coverage_unref)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref, 
pango_coverage_unref)\n"
+#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, "
+#~ "pango_coverage_ref, pango_coverage_unref)\n"
 
 #~ msgid ""
 #~ "For instance, for <classname>Pango::Coverage</classname>: <_:"
@@ -18625,6 +18672,24 @@ msgstr ""
 #~ msgid "cairo"
 #~ msgstr "cairo"
 
+#~ msgid "cairomm"
+#~ msgstr "cairomm"
+
+#~ msgid "pkg-config"
+#~ msgstr "pkg-config"
+
+#~ msgid "glib"
+#~ msgstr "glib"
+
+#~ msgid "ATK"
+#~ msgstr "ATK"
+
+#~ msgid "Pango"
+#~ msgstr "Pango"
+
+#~ msgid "cairo"
+#~ msgstr "cairo"
+
 #~ msgid ""
 #~ "\n"
 #~ "# ./configure\n"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]