[gnome-devel-docs] Updated galician translations



commit 0e9b389b78b282f7ba575ecfd3cf45da2b76eea2
Author: Fran Diéguez <fran dieguez mabishu com>
Date:   Wed Apr 17 13:02:13 2013 +0200

    Updated galician translations

 integration-guide/gl/gl.po  |    8 +-
 optimization-guide/gl/gl.po |    2 +-
 platform-demos/gl/gl.po     | 5829 +++++++++++++++++++++++++------------------
 platform-overview/gl/gl.po  |   12 +-
 4 files changed, 3472 insertions(+), 2379 deletions(-)
---
diff --git a/integration-guide/gl/gl.po b/integration-guide/gl/gl.po
index 38a2f22..4534d97 100644
--- a/integration-guide/gl/gl.po
+++ b/integration-guide/gl/gl.po
@@ -1,12 +1,12 @@
 # Galician translation for gnome-devel-docs.
 # Copyright (C) 2011 gnome-devel-docs's COPYRIGHT HOLDER
 # This file is distributed under the same license as the gnome-devel-docs package.
-# Fran Dieguez <frandieguez gnome org>, 2011, 2012.
+# Fran Dieguez <frandieguez gnome org>, 2011, 2012, 2013.
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
 "POT-Creation-Date: 2012-10-31 14:50+0000\n"
-"PO-Revision-Date: 2012-12-25 15:39+0200\n"
+"PO-Revision-Date: 2013-04-17 13:02+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
 "Language-Team: gnome-l10n-gl gnome org\n"
 "Language: gl\n"
@@ -21,7 +21,7 @@ msgstr ""
 #| msgid "translator-credits"
 msgctxt "_"
 msgid "translator-credits"
-msgstr "Fran Dieguez <frandieguez gnome org>, 2011, 2012"
+msgstr "Fran Dieguez <frandieguez gnome org>, 2009-2013."
 
 #: C/index.docbook:8(bookinfo/title)
 msgid "Integrating existing software with GNOME"
@@ -1199,7 +1199,7 @@ msgstr ""
 "na <xref linkend=\"startup-notification\"/>. Ademais, se o seu software crea "
 "documentos ou outros datos imprimíbeis pode instanciar instalar unha "
 "utilidade de xestión de miniaturas para permitir ao xestor de ficheiros de "
-"GONME crear imaxes en miniatura específicas para o seu programa."
+"GNOME crear imaxes en miniatura específicas para o seu programa."
 
 #: C/index.docbook:826(section/title)
 msgid "Startup notification"
diff --git a/optimization-guide/gl/gl.po b/optimization-guide/gl/gl.po
index d5ff8fd..058bed6 100644
--- a/optimization-guide/gl/gl.po
+++ b/optimization-guide/gl/gl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
 "POT-Creation-Date: 2012-10-31 14:51+0000\n"
-"PO-Revision-Date: 2013-03-05 15:17+0200\n"
+"PO-Revision-Date: 2013-03-27 13:43+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
 "Language-Team: gnome-l10n-gl gnome org\n"
 "Language: gl\n"
diff --git a/platform-demos/gl/gl.po b/platform-demos/gl/gl.po
index c2512f1..d581fa2 100644
--- a/platform-demos/gl/gl.po
+++ b/platform-demos/gl/gl.po
@@ -2,12 +2,12 @@
 # Copyright (C) 2011 gnome-devel-docs's COPYRIGHT HOLDER
 # This file is distributed under the same license as the gnome-devel-docs package.
 # Fran Diéguez <frandieguez gnome org>, 2011.
-# Fran Dieguez <frandieguez gnome org>, 2011, 2012.
+# Fran Dieguez <frandieguez gnome org>, 2011, 2012, 2013.
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-12-21 09:12+0000\n"
-"PO-Revision-Date: 2012-12-25 17:38+0200\n"
+"POT-Creation-Date: 2013-03-11 13:22+0000\n"
+"PO-Revision-Date: 2013-03-27 13:40+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
 "Language-Team: gnome-l10n-gl gnome org\n"
 "Language: gl\n"
@@ -19,11 +19,10 @@ msgstr ""
 "X-Project-Style: gnome\n"
 
 #. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
-#, fuzzy
 #| msgid "translator-credits"
 msgctxt "_"
 msgid "translator-credits"
-msgstr "Fran Dieguez <frandieguez gnome org>, 2011-2012."
+msgstr "Fran Dieguez <frandieguez gnome org>, 2012-2013."
 
 #: C/index.page:7(credit/name)
 msgid "GNOME Documentation Team"
@@ -57,12 +56,12 @@ msgid "Johannes Schmid"
 msgstr "Johannes Schmid"
 
 #: C/index.page:19(credit/years) C/bug-filing.page:11(credit/years)
-#: C/documentation.page:12(credit/years) C/entry.py.page:20(credit/years)
-#: C/model-view-controller.py.page:16(credit/years)
-#: C/properties.py.page:16(credit/years)
-#: C/signals-callbacks.py.page:16(credit/years)
-#: C/strings.py.page:16(credit/years) C/textview.py.page:16(credit/years)
-#: C/toolbar_builder.py.page:28(credit/years)
+#: C/documentation.page:12(credit/years) C/entry.py.page:22(credit/years)
+#: C/model-view-controller.py.page:17(credit/years)
+#: C/properties.py.page:17(credit/years)
+#: C/signals-callbacks.py.page:17(credit/years)
+#: C/strings.py.page:17(credit/years) C/textview.py.page:17(credit/years)
+#: C/toolbar_builder.py.page:29(credit/years)
 #: C/translate.page:12(credit/years)
 msgid "2011"
 msgstr "2011"
@@ -78,18 +77,18 @@ msgstr "2011"
 #: C/entry.vala.page:12(credit/name)
 #: C/filechooserdialog.vala.page:15(credit/name)
 #: C/gmenu.c.page:12(credit/name) C/gmenu.js.page:12(credit/name)
-#: C/gmenu.py.page:12(credit/name) C/gmenu.vala.page:19(credit/name)
-#: C/grid.py.page:13(credit/name) C/grid.vala.page:14(credit/name)
+#: C/gmenu.py.page:14(credit/name) C/gmenu.vala.page:19(credit/name)
+#: C/grid.py.page:14(credit/name) C/grid.vala.page:14(credit/name)
 #: C/GtkApplicationWindow.c.page:12(credit/name)
 #: C/GtkApplicationWindow.js.page:12(credit/name)
-#: C/GtkApplicationWindow.py.page:12(credit/name)
+#: C/GtkApplicationWindow.py.page:14(credit/name)
 #: C/GtkApplicationWindow.vala.page:12(credit/name)
 #: C/guitar-tuner.vala.page:21(credit/name)
 #: C/helloWorld.js.page:19(credit/name) C/image.vala.page:12(credit/name)
 #: C/image-viewer.vala.page:26(credit/name) C/js.page:11(credit/name)
 #: C/label.vala.page:12(credit/name) C/linkbutton.vala.page:12(credit/name)
 #: C/menubar.py.page:14(credit/name) C/menubar.vala.page:14(credit/name)
-#: C/menubutton.py.page:12(credit/name) C/menubutton.vala.page:12(credit/name)
+#: C/menubutton.py.page:13(credit/name) C/menubutton.vala.page:12(credit/name)
 #: C/messagedialog.vala.page:12(credit/name)
 #: C/progressbar.vala.page:12(credit/name) C/py.page:10(credit/name)
 #: C/radiobutton.vala.page:15(credit/name) C/scale.vala.page:14(credit/name)
@@ -99,12 +98,12 @@ msgstr "2011"
 #: C/textview.vala.page:12(credit/name)
 #: C/togglebutton.vala.page:15(credit/name) C/toolbar.js.page:12(credit/name)
 #: C/toolbar.vala.page:13(credit/name)
-#: C/toolbar_builder.py.page:14(credit/name)
+#: C/toolbar_builder.py.page:15(credit/name)
 #: C/toolbar_builder.vala.page:14(credit/name)
 #: C/treeview_simple_liststore.vala.page:14(credit/name)
 #: C/translate.page:10(credit/name) C/tutorial.py.page:14(credit/name)
 #: C/vala.page:10(credit/name) C/window.c.page:12(credit/name)
-#: C/window.py.page:12(credit/name) C/window.vala.page:12(credit/name)
+#: C/window.py.page:14(credit/name) C/window.vala.page:12(credit/name)
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
@@ -114,11 +113,11 @@ msgstr "Demostracións da plataforma de desenvolvemento de GNOME"
 
 #: C/index.page:30(section/title)
 msgid "How to set up your development environment"
-msgstr ""
+msgstr "Como configurar o seu ambiente de desenvolvemento"
 
 #: C/index.page:34(section/title)
 msgid "Tutorials, code samples, platform demos and more"
-msgstr ""
+msgstr "Titoriais, exemplos de código, demostración da plataforma e máis"
 
 #: C/index.page:38(section/title)
 msgid "Get Involved"
@@ -129,8 +128,6 @@ msgstr "Involucrarse"
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:94(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_01.png'; md5=3fdc22d361cf801f71557fdc76ae5b49"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
@@ -142,8 +139,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:149(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_02.png'; md5=07db86b0043ba5c3c24a90d7322bd81e"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
@@ -155,8 +150,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:166(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_03.png'; md5=817351e73c687d47253c56ed06b6629f"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
@@ -168,8 +161,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:196(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_04.png'; md5=eeaead27cee2851877fc3cfe66177f07"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
@@ -181,8 +172,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:205(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_05.png'; md5=a3ad12f432d5977fc1f66302ad5b7498"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
@@ -194,8 +183,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:216(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_06.png'; md5=450e48dbf6b8f5ce1c208e4812e1714b"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
@@ -207,8 +194,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:226(media)
-#| msgid ""
-#| "@@image: 'media/02_jsgrid_07.png'; md5=0b304d70728903fbb2601d55bf00fdb9"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
@@ -220,7 +205,6 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/02_welcome_to_the_grid.js.page:248(media)
-#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 msgctxt "_"
 msgid ""
 "external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
@@ -254,101 +238,100 @@ msgstr "Taryn Fox"
 #: C/aboutdialog.py.page:15(credit/years)
 #: C/aboutdialog.vala.page:16(credit/years)
 #: C/beginner.js.page:12(credit/years) C/button.c.page:16(credit/years)
-#: C/button.js.page:14(credit/years) C/button.py.page:15(credit/years)
-#: C/button.vala.page:15(credit/years) C/buttonbox.py.page:15(credit/years)
+#: C/button.js.page:14(credit/years) C/button.py.page:16(credit/years)
+#: C/button.vala.page:15(credit/years) C/buttonbox.py.page:16(credit/years)
 #: C/checkbutton.c.page:14(credit/years)
 #: C/checkbutton.js.page:14(credit/years)
 #: C/checkbutton.py.page:15(credit/years)
 #: C/checkbutton.vala.page:14(credit/years)
-#: C/colorbutton.py.page:14(credit/years)
+#: C/colorbutton.py.page:15(credit/years)
 #: C/colorbutton.vala.page:16(credit/years)
 #: C/comboboxtext.js.page:16(credit/years) C/combobox.js.page:18(credit/years)
-#: C/combobox.py.page:14(credit/years) C/combobox.vala.page:14(credit/years)
+#: C/combobox.py.page:16(credit/years) C/combobox.vala.page:14(credit/years)
 #: C/combobox_multicolumn.py.page:15(credit/years)
 #: C/dialog.c.page:16(credit/years) C/dialog.js.page:14(credit/years)
-#: C/dialog.py.page:15(credit/years) C/dialog.vala.page:14(credit/years)
+#: C/dialog.py.page:16(credit/years) C/dialog.vala.page:14(credit/years)
 #: C/entry.c.page:14(credit/years) C/entry.js.page:14(credit/years)
-#: C/entry.py.page:14(credit/years) C/entry.vala.page:14(credit/years)
-#: C/filechooserdialog.py.page:17(credit/years)
+#: C/entry.py.page:16(credit/years) C/entry.vala.page:14(credit/years)
+#: C/filechooserdialog.py.page:18(credit/years)
 #: C/filechooserdialog.vala.page:17(credit/years)
-#: C/fontchooserwidget.py.page:15(credit/years)
+#: C/fontchooserwidget.py.page:16(credit/years)
 #: C/gmenu.c.page:14(credit/years) C/gmenu.js.page:14(credit/years)
-#: C/gmenu.py.page:14(credit/years) C/gmenu.py.page:20(credit/years)
+#: C/gmenu.py.page:16(credit/years) C/gmenu.py.page:22(credit/years)
 #: C/gmenu.vala.page:15(credit/years) C/grid.c.page:14(credit/years)
-#: C/grid.js.page:14(credit/years) C/grid.py.page:15(credit/years)
-#: C/grid.py.page:21(credit/years) C/grid.vala.page:16(credit/years)
+#: C/grid.js.page:14(credit/years) C/grid.py.page:16(credit/years)
+#: C/grid.py.page:22(credit/years) C/grid.vala.page:16(credit/years)
 #: C/GtkApplicationWindow.c.page:14(credit/years)
 #: C/GtkApplicationWindow.js.page:14(credit/years)
-#: C/GtkApplicationWindow.py.page:14(credit/years)
-#: C/GtkApplicationWindow.py.page:19(credit/years)
+#: C/GtkApplicationWindow.py.page:16(credit/years)
+#: C/GtkApplicationWindow.py.page:21(credit/years)
 #: C/GtkApplicationWindow.vala.page:14(credit/years)
 #: C/guitar-tuner.js.page:13(credit/years)
 #: C/hellognome.js.page:13(credit/years) C/helloWorld.js.page:16(credit/years)
 #: C/image.c.page:14(credit/years) C/image.js.page:13(credit/years)
-#: C/image.py.page:14(credit/years) C/image.vala.page:14(credit/years)
+#: C/image.py.page:16(credit/years) C/image.vala.page:14(credit/years)
 #: C/label.c.page:15(credit/years) C/label.js.page:14(credit/years)
-#: C/label.py.page:15(credit/years) C/label.py.page:20(credit/years)
+#: C/label.py.page:17(credit/years) C/label.py.page:22(credit/years)
 #: C/label.vala.page:14(credit/years) C/linkbutton.c.page:14(credit/years)
 #: C/linkbutton.js.page:14(credit/years) C/linkbutton.py.page:15(credit/years)
-#: C/linkbutton.vala.page:14(credit/years) C/menubar.py.page:16(credit/years)
-#: C/menubar.py.page:21(credit/years) C/menubar.vala.page:16(credit/years)
-#: C/menubutton.js.page:14(credit/years) C/menubutton.py.page:14(credit/years)
-#: C/menubutton.py.page:20(credit/years)
+#: C/linkbutton.vala.page:14(credit/years) C/menubar.c.page:16(credit/years)
+#: C/menubar.py.page:16(credit/years) C/menubar.py.page:21(credit/years)
+#: C/menubar.vala.page:16(credit/years) C/menubutton.js.page:14(credit/years)
+#: C/menubutton.py.page:15(credit/years) C/menubutton.py.page:21(credit/years)
 #: C/menubutton.vala.page:14(credit/years)
 #: C/messagedialog.c.page:15(credit/years)
 #: C/messagedialog.js.page:17(credit/years)
 #: C/messagedialog.py.page:15(credit/years)
 #: C/messagedialog.vala.page:14(credit/years)
-#: C/model-view-controller.py.page:21(credit/years)
-#: C/paned.py.page:14(credit/years) C/progressbar.c.page:15(credit/years)
+#: C/model-view-controller.py.page:22(credit/years)
+#: C/paned.py.page:15(credit/years) C/progressbar.c.page:15(credit/years)
 #: C/progressbar.js.page:13(credit/years)
-#: C/progressbar.py.page:14(credit/years)
+#: C/progressbar.py.page:15(credit/years)
 #: C/progressbar.vala.page:14(credit/years)
-#: C/properties.py.page:21(credit/years) C/radiobutton.c.page:16(credit/years)
+#: C/properties.py.page:22(credit/years) C/radiobutton.c.page:16(credit/years)
 #: C/radiobutton.js.page:14(credit/years)
-#: C/radiobutton.py.page:18(credit/years)
+#: C/radiobutton.py.page:16(credit/years)
 #: C/radiobutton.vala.page:17(credit/years) C/scale.c.page:16(credit/years)
-#: C/scale.js.page:14(credit/years) C/scale.py.page:15(credit/years)
-#: C/scale.vala.page:16(credit/years)
-#: C/scrolledwindow.py.page:14(credit/years)
+#: C/scale.js.page:14(credit/years) C/scale.py.page:16(credit/years)
+#: C/scale.vala.page:16(credit/years) C/scrolledwindow.c.page:16(credit/years)
+#: C/scrolledwindow.py.page:15(credit/years)
 #: C/scrolledwindow.vala.page:15(credit/years)
-#: C/separator.py.page:15(credit/years)
+#: C/separator.py.page:16(credit/years)
 #: C/set-up-gedit.js.page:13(credit/years)
-#: C/signals-callbacks.py.page:21(credit/years)
+#: C/signals-callbacks.py.page:22(credit/years)
 #: C/spinbutton.c.page:17(credit/years) C/spinbutton.js.page:17(credit/years)
-#: C/spinbutton.py.page:15(credit/years)
+#: C/spinbutton.py.page:16(credit/years)
 #: C/spinbutton.vala.page:16(credit/years) C/spinner.c.page:15(credit/years)
-#: C/spinner.js.page:14(credit/years) C/spinner.py.page:14(credit/years)
+#: C/spinner.js.page:14(credit/years) C/spinner.py.page:15(credit/years)
 #: C/spinner.vala.page:14(credit/years) C/statusbar.c.page:18(credit/years)
-#: C/statusbar.js.page:14(credit/years) C/statusbar.py.page:17(credit/years)
-#: C/statusbar.vala.page:17(credit/years) C/strings.py.page:21(credit/years)
+#: C/statusbar.js.page:14(credit/years) C/statusbar.py.page:16(credit/years)
+#: C/statusbar.vala.page:17(credit/years) C/strings.py.page:22(credit/years)
 #: C/switch.c.page:14(credit/years) C/switch.js.page:14(credit/years)
-#: C/switch.py.page:19(credit/years) C/switch.vala.page:18(credit/years)
+#: C/switch.py.page:15(credit/years) C/switch.vala.page:18(credit/years)
 #: C/textview.c.page:14(credit/years) C/textview.js.page:18(credit/years)
-#: C/textview.py.page:22(credit/years) C/textview.vala.page:14(credit/years)
+#: C/textview.py.page:23(credit/years) C/textview.vala.page:14(credit/years)
 #: C/togglebutton.c.page:18(credit/years)
 #: C/togglebutton.js.page:14(credit/years)
-#: C/togglebutton.py.page:17(credit/years)
-#: C/togglebutton.vala.page:17(credit/years)
-#: C/toolbar.js.page:14(credit/years) C/toolbar.py.page:15(credit/years)
+#: C/togglebutton.py.page:15(credit/years)
+#: C/togglebutton.vala.page:17(credit/years) C/toolbar.c.page:16(credit/years)
+#: C/toolbar.js.page:14(credit/years) C/toolbar.py.page:16(credit/years)
 #: C/toolbar.vala.page:15(credit/years)
-#: C/toolbar_builder.py.page:16(credit/years)
-#: C/toolbar_builder.py.page:22(credit/years)
+#: C/toolbar_builder.py.page:17(credit/years)
+#: C/toolbar_builder.py.page:23(credit/years)
 #: C/toolbar_builder.vala.page:16(credit/years)
-#: C/tooltip.py.page:15(credit/years)
-#: C/treeview_advanced_liststore.py.page:17(credit/years)
-#: C/treeview_cellrenderertoggle.py.page:14(credit/years)
+#: C/tooltip.py.page:16(credit/years)
+#: C/treeview_advanced_liststore.py.page:15(credit/years)
+#: C/treeview_cellrenderertoggle.py.page:15(credit/years)
 #: C/treeview_simple_liststore.js.page:17(credit/years)
 #: C/treeview_simple_liststore.py.page:16(credit/years)
 #: C/treeview_simple_liststore.vala.page:16(credit/years)
-#: C/treeview_treestore.py.page:14(credit/years)
-#: C/tutorial.py.page:16(credit/years) C/tutorial.py.page:21(credit/years)
-#: C/weatherApp.js.page:13(credit/years)
+#: C/treeview_treestore.py.page:16(credit/years)
+#: C/tutorial.py.page:16(credit/years) C/weatherApp.js.page:13(credit/years)
 #: C/weatherAppMain.js.page:12(credit/years)
 #: C/weatherAutotools.js.page:12(credit/years)
 #: C/weatherGeonames.js.page:12(credit/years) C/window.c.page:14(credit/years)
-#: C/window.js.page:14(credit/years) C/window.py.page:14(credit/years)
-#: C/window.py.page:19(credit/years) C/window.vala.page:14(credit/years)
+#: C/window.js.page:14(credit/years) C/window.py.page:16(credit/years)
+#: C/window.py.page:21(credit/years) C/window.vala.page:14(credit/years)
 msgid "2012"
 msgstr "2012"
 
@@ -376,8 +359,8 @@ msgid ""
 "Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
 "series</link> already? You'll want to do so before continuing."
 msgstr ""
-"Ollou xa <link xref=\"hellognome.js\">o primeiro titorial nesta serie</link>? "
-"Debería facelo antes de continuar."
+"Ollou xa <link xref=\"hellognome.js\">o primeiro titorial nesta serie</"
+"link>? Debería facelo antes de continuar."
 
 #: C/02_welcome_to_the_grid.js.page:31(section/title)
 msgid "Going native"
@@ -399,28 +382,40 @@ msgstr ""
 "fora unha páxina web."
 
 #: C/02_welcome_to_the_grid.js.page:34(section/p)
+#| msgid ""
+#| "This time, we're going to use only native GNOME widgets. A widget is just "
+#| "a thing, like a checkbox or picture, and GNOME has a wide variety of them "
+#| "to choose from. We call them \"native\" widgets to distinguish them from "
+#| "things like the button and header in the web app we wrote. Because "
+#| "instead of using web code, these are going to be 100 percent GNOME, using "
+#| "Gtk+."
 msgid ""
 "This time, we're going to use only native GNOME widgets. A widget is just a "
 "thing, like a checkbox or picture, and GNOME has a wide variety of them to "
 "choose from. We call them \"native\" widgets to distinguish them from things "
 "like the button and header in the web app we wrote. Because instead of using "
-"web code, these are going to be 100 percent GNOME, using Gtk+."
+"web code, these are going to be 100 percent GNOME, using GTK+."
 msgstr ""
 "Desta vez imos usar só widgets de GNOME nativos. Un widget é simplemente "
 "unha cousa, como un campo de verificación ou unha imaxe, e GNOME ten unha "
 "gran cantidade de widgets onde escoller. Chamámolos widgets «nativos» para "
 "distinguilos das cousas como un botón e cabeceira no aplicativo web que "
 "escribimos. Xa que no lugar de usar código web, estes serán 100% GNOME, "
-"usando Gtk+."
+"usando GTK+."
 
 #: C/02_welcome_to_the_grid.js.page:35(note/p)
+#| msgid ""
+#| "Gtk+ stands for \"GIMP Toolkit\". It's like a toolbox of widgets that you "
+#| "can reach into, while building your applications. It was originally "
+#| "written for <link href=\"http://www.gimp.org/\";>the GIMP</link>, which is "
+#| "a free software image editor."
 msgid ""
-"Gtk+ stands for \"GIMP Toolkit\". It's like a toolbox of widgets that you "
+"GTK+ stands for \"GIMP Toolkit\". It's like a toolbox of widgets that you "
 "can reach into, while building your applications. It was originally written "
 "for <link href=\"http://www.gimp.org/\";>the GIMP</link>, which is a free "
 "software image editor."
 msgstr ""
-"Gtk+ significa «GIMP Toolkit». É como unha caixa de ferramentas de widgets "
+"GTK+ significa «GIMP Toolkit». É como unha caixa de ferramentas de widgets "
 "que pode obter, mentres constrúe os seus aplicativos. Foi escrito "
 "orixinalmente para <link href=\"http://www.gimp.org/\";>GIMP</link>, que é un "
 "editor de imaxes software libre."
@@ -430,11 +425,14 @@ msgid "Setting up our application"
 msgstr "Configurar o seu aplicativo"
 
 #: C/02_welcome_to_the_grid.js.page:41(section/p)
+#| msgid ""
+#| "Before we dig out any widgets from the Gtk+ toolbox, we first need to "
+#| "write the basic boilerplate code that our application requires."
 msgid ""
-"Before we dig out any widgets from the Gtk+ toolbox, we first need to write "
+"Before we dig out any widgets from the GTK+ toolbox, we first need to write "
 "the basic boilerplate code that our application requires."
 msgstr ""
-"Antes de profundizar en calquera widget da caixa de ferramentas de Gtk+, "
+"Antes de profundizar en calquera widget da caixa de ferramentas de GTK+, "
 "primeiro debemos escribir un código básico de arrinque que o noso aplicativo "
 "require."
 
@@ -507,14 +505,11 @@ msgstr ""
 "        this.application = new Gtk.Application();\n"
 "\n"
 "        // Conectar os sinais 'activate' e 'startup' ás funcións callback\n"
-"        this.application.connect('activate', Lang.bind(this, "
-"this._onActivate));\n"
-"        this.application.connect('startup', Lang.bind(this, "
-"this._onStartup));\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
 "    },\n"
 "\n"
-"    // Función callback para o sinal 'activate' presente cando a xanela se "
-"active\n"
+"    // Función callback para o sinal 'activate' presente cando a xanela se active\n"
 "    _onActivate: function() {\n"
 "        this._window.present();\n"
 "    },\n"
@@ -531,12 +526,17 @@ msgid ""
 "going to call _window, and it tells our window to present itself whenever "
 "needed."
 msgstr ""
+"Isto é o inicio do aplicativo en si, e a función _init o que o crea. Dille a "
+"_buildUI que cree un ApplicationWindow, que imos chamar a _window, e dílle "
+"á nosa anela presentarse a si mesmo onde sexa preciso."
 
 #: C/02_welcome_to_the_grid.js.page:74(section/p)
 msgid ""
 "This part, again, is pretty much copy-and-paste, but you always want to give "
 "your application a unique name."
 msgstr ""
+"Esta parte, de nogo é principalmente copiar e pegar, pero sempre quererá "
+"darlle un nome único ao seu aplicativo."
 
 #: C/02_welcome_to_the_grid.js.page:76(section/code)
 #, no-wrap
@@ -571,22 +571,32 @@ msgid ""
 "10 pixels between the outside edge and any widgets inside of it. We also "
 "give it a title, which will appear at the top of the window."
 msgstr ""
+"Finalmente, iniciamos coa función _buildUI creando un novo "
+"ApplicationWindow. Especificamos como ten que ir o aplicativo, debe aparecer "
+"no centro da pantalla e debería ter cando menos 10 píxeles de espacio entre "
+"o borde da xanela e calquera widget dentro dela. Tamén fornécelle un "
+"título, o cal aparecerá na parte superior da xanela."
 
 #: C/02_welcome_to_the_grid.js.page:91(section/title)
-msgid "Reaching into the Gtk+ toolbox"
-msgstr ""
+#| msgid "Reacting to the clicks"
+msgid "Reaching into the GTK+ toolbox"
+msgstr "Ollando a caixa de ferramentas de GTK+"
 
 #: C/02_welcome_to_the_grid.js.page:92(section/p)
 msgid ""
 "What widgets should we use? Well, let's say we want to write an application "
 "that looks like this:"
 msgstr ""
+"Que widgets debería usar? Ben, digamos que quere escribir un aplicativo que "
+"se semelle a isto:"
 
 #: C/02_welcome_to_the_grid.js.page:96(section/p)
 msgid ""
 "We're going to need, at the very least, a picture and a text label to go "
 "with it. Let's start with the picture:"
 msgstr ""
+"Precisaremos, cando menos, unha imaxe e unha etiqueta de texto para ir con "
+"ela. Comecemos pola imaxe"
 
 #: C/02_welcome_to_the_grid.js.page:97(section/code)
 #, no-wrap
@@ -606,6 +616,10 @@ msgid ""
 "png\">here</link>. Be sure to put it in the same directory as the code "
 "you're writing."
 msgstr ""
+"pode descargar o ficheiro da imaxe usado neste exemplo <link href=\"https://l";
+"ive.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=gnome-"
+"image.png\">aquí</link>. Asegúrese de que o pon no mesmo cartafol onde está "
+"escribindo o código."
 
 #: C/02_welcome_to_the_grid.js.page:104(section/code)
 #, no-wrap
@@ -614,6 +628,9 @@ msgid ""
 "        // Create a label\n"
 "        this._label = new Gtk.Label ({ label: \"Welcome to GNOME, too!\" });\n"
 msgstr ""
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({ label: \"Benvido a GNOME, tamén!\" });\n"
 
 #: C/02_welcome_to_the_grid.js.page:108(section/p)
 msgid ""
@@ -623,6 +640,11 @@ msgid ""
 "be the filename of the picture we want, and the Label's label property to be "
 "the sentence that we want beneath the picture."
 msgstr ""
+"Este código engade a etiqueta embaixo. Pode ver como creamos widgets, aquí; "
+"cada unha é unha parte de GTK, e podemos darlle propiedades para "
+"personalizar o seu comportamento. Neste caso, estabelecemos a propiedade de "
+"ficheiro da imaxe para que sexa o nome do ficheiro da imaxe que queremos e a "
+"propiedade de etiqueta da etiqueta que quere embaixo da imaxe."
 
 #: C/02_welcome_to_the_grid.js.page:109(note/p)
 msgid ""
@@ -630,6 +652,10 @@ msgid ""
 "Other widgets that contain text have a label property, so it's "
 "<em>consistent</em> for the Label widget to have one too."
 msgstr ""
+"Si, sona redundante que unha etiqueta teña unha propiedade de etiqueta, pero "
+"non é así. Outros widgets que conteñen texto teñen unha propiedade de "
+"etiqueta, polo que é <em>consistente</em> para o widget de etiqueta que "
+"teñen unha tamén."
 
 #: C/02_welcome_to_the_grid.js.page:110(section/p)
 msgid ""
@@ -637,6 +663,8 @@ msgid ""
 "HTML elements appear in the order you write them. That's because an "
 "ApplicationWindow can only contain one widget."
 msgstr ""
+"Non se pode engadir estes widgets á súa xanela en orde como se faría cos "
+"elementos HTML. Isto é porque ApplicationWindow só pode conter un widget."
 
 #: C/02_welcome_to_the_grid.js.page:111(section/p)
 msgid ""
@@ -644,6 +672,8 @@ msgid ""
 "which can hold more than one widget and organize them inside it. Behold: The "
 "Grid."
 msgstr ""
+"Como o solucionamos? Facendo que o widget sexa un widget contedor, que "
+"poderá conter máis dun widget e organizalos. Polo tanto: A grella."
 
 #: C/02_welcome_to_the_grid.js.page:112(section/code)
 #, no-wrap
@@ -652,6 +682,9 @@ msgid ""
 "        // Create the Grid\n"
 "        this._grid = new Gtk.Grid ();\n"
 msgstr ""
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ();\n"
 
 #: C/02_welcome_to_the_grid.js.page:117(section/p)
 msgid ""
@@ -678,6 +711,8 @@ msgid ""
 "This code looks awfully complicated, but it's not. Here's what those numbers "
 "mean:"
 msgstr ""
+"Este código semella moi complicado, pero non é así. Isto é o que significan "
+"ditos números:"
 
 #: C/02_welcome_to_the_grid.js.page:126(item/p)
 msgid ""
@@ -1483,7 +1518,7 @@ msgstr ""
 
 #: C/03_getting_the_signal.js.page:154(section/p)
 msgid ""
-"Buttons aren't the only input widgets in our Gtk+ toolbox. We can also use "
+"Buttons aren't the only input widgets in our GTK+ toolbox. We can also use "
 "switches, like the one in this example. Switches don't have a label "
 "property, so we have to create a separate Label that says what it does to go "
 "next to it."
@@ -2334,11 +2369,13 @@ msgstr "AboutDialog (C)"
 #: C/dialog.c.page:14(credit/name) C/entry.c.page:12(credit/name)
 #: C/grid.c.page:12(credit/name) C/image.c.page:12(credit/name)
 #: C/label.c.page:13(credit/name) C/linkbutton.c.page:12(credit/name)
-#: C/messagedialog.c.page:13(credit/name) C/progressbar.c.page:13(credit/name)
-#: C/radiobutton.c.page:14(credit/name) C/scale.c.page:14(credit/name)
+#: C/menubar.c.page:14(credit/name) C/messagedialog.c.page:13(credit/name)
+#: C/progressbar.c.page:13(credit/name) C/radiobutton.c.page:14(credit/name)
+#: C/scale.c.page:14(credit/name) C/scrolledwindow.c.page:14(credit/name)
 #: C/spinbutton.c.page:15(credit/name) C/spinner.c.page:13(credit/name)
 #: C/statusbar.c.page:16(credit/name) C/switch.c.page:12(credit/name)
 #: C/textview.c.page:12(credit/name) C/togglebutton.c.page:16(credit/name)
+#: C/toolbar.c.page:14(credit/name)
 msgid "Monica Kochofar"
 msgstr "Monica Kochofar"
 
@@ -2357,7 +2394,7 @@ msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
 msgstr "Un exemplo de AboutDialog usando Gtk.ApplicationWindow e Menu"
 
 #: C/aboutdialog.c.page:26(note/p) C/aboutdialog.vala.page:31(note/p)
-#: C/gmenu.c.page:23(note/p) C/gmenu.py.page:29(note/p)
+#: C/gmenu.c.page:23(note/p)
 msgid ""
 "<em style=\"bold\">You need to be running Gtk3.4 or later for this to work</"
 "em>"
@@ -2538,63 +2575,65 @@ msgstr ""
 #: C/aboutdialog.c.page:30(page/p) C/aboutdialog.js.page:24(page/p)
 #: C/aboutdialog.py.page:41(section/p) C/aboutdialog.vala.page:34(page/p)
 #: C/button.c.page:29(page/p) C/button.js.page:26(page/p)
-#: C/button.py.page:50(section/p) C/buttonbox.py.page:45(section/p)
-#: C/checkbutton.c.page:25(page/p) C/checkbutton.py.page:44(section/p)
-#: C/checkbutton.vala.page:25(page/p) C/colorbutton.py.page:38(section/p)
+#: C/button.py.page:52(section/p) C/buttonbox.py.page:46(section/p)
+#: C/checkbutton.c.page:25(page/p) C/checkbutton.py.page:42(section/p)
+#: C/checkbutton.vala.page:25(page/p) C/colorbutton.py.page:40(section/p)
 #: C/colorbutton.vala.page:27(page/p) C/comboboxtext.js.page:176(section/p)
-#: C/combobox.js.page:233(section/p) C/combobox.py.page:38(section/p)
+#: C/combobox.js.page:233(section/p) C/combobox.py.page:42(section/p)
 #: C/combobox.vala.page:25(page/p)
 #: C/combobox_multicolumn.py.page:41(section/p) C/dialog.c.page:29(page/p)
-#: C/dialog.js.page:25(page/p) C/dialog.py.page:45(section/p)
+#: C/dialog.js.page:25(page/p) C/dialog.py.page:46(section/p)
 #: C/dialog.vala.page:27(page/p) C/entry.c.page:27(page/p)
-#: C/entry.js.page:25(page/p) C/entry.py.page:59(section/p)
-#: C/entry.vala.page:25(page/p) C/filechooserdialog.py.page:69(section/p)
+#: C/entry.js.page:25(page/p) C/entry.py.page:61(section/p)
+#: C/entry.vala.page:25(page/p) C/filechooserdialog.py.page:70(section/p)
 #: C/filechooserdialog.vala.page:35(section/p)
-#: C/fontchooserwidget.py.page:43(section/p) C/gmenu.c.page:27(page/p)
-#: C/gmenu.js.page:25(page/p) C/gmenu.py.page:74(section/p)
+#: C/fontchooserwidget.py.page:44(section/p) C/gmenu.c.page:27(page/p)
+#: C/gmenu.js.page:25(page/p) C/gmenu.py.page:77(section/p)
 #: C/gmenu.vala.page:37(page/p) C/grid.c.page:27(page/p)
-#: C/grid.js.page:29(page/p) C/grid.py.page:53(section/p)
+#: C/grid.js.page:29(page/p) C/grid.py.page:54(section/p)
 #: C/grid.vala.page:27(page/p) C/GtkApplicationWindow.c.page:25(page/p)
 #: C/GtkApplicationWindow.js.page:26(page/p)
-#: C/GtkApplicationWindow.py.page:48(section/p)
+#: C/GtkApplicationWindow.py.page:50(section/p)
 #: C/GtkApplicationWindow.vala.page:26(page/p) C/image.c.page:28(page/p)
-#: C/image.js.page:27(page/p) C/image.py.page:98(section/p)
+#: C/image.js.page:27(page/p) C/image.py.page:100(section/p)
 #: C/image.vala.page:27(page/p) C/label.c.page:32(page/p)
-#: C/label.js.page:25(page/p) C/label.py.page:86(section/p)
+#: C/label.js.page:25(page/p) C/label.py.page:87(section/p)
 #: C/label.vala.page:26(page/p) C/linkbutton.c.page:27(page/p)
 #: C/linkbutton.js.page:25(page/p) C/linkbutton.py.page:44(section/p)
-#: C/linkbutton.vala.page:25(page/p) C/menubar.py.page:181(section/p)
-#: C/menubar.vala.page:187(section/p) C/menubutton.js.page:28(page/p)
-#: C/menubutton.py.page:50(section/p) C/menubutton.vala.page:28(page/p)
-#: C/messagedialog.c.page:31(page/p) C/messagedialog.js.page:189(section/p)
+#: C/linkbutton.vala.page:25(page/p) C/menubar.c.page:32(page/p)
+#: C/menubar.py.page:183(section/p) C/menubar.vala.page:187(section/p)
+#: C/menubutton.js.page:28(page/p) C/menubutton.py.page:53(section/p)
+#: C/menubutton.vala.page:28(page/p) C/messagedialog.c.page:31(page/p)
+#: C/messagedialog.js.page:189(section/p)
 #: C/messagedialog.py.page:54(section/p) C/messagedialog.vala.page:26(page/p)
-#: C/paned.py.page:38(section/p) C/progressbar.c.page:28(page/p)
-#: C/progressbar.js.page:34(page/p) C/progressbar.py.page:53(section/p)
+#: C/paned.py.page:39(section/p) C/progressbar.c.page:28(page/p)
+#: C/progressbar.js.page:34(page/p) C/progressbar.py.page:54(section/p)
 #: C/progressbar.vala.page:25(page/p) C/radiobutton.c.page:29(page/p)
-#: C/radiobutton.py.page:49(section/p) C/radiobutton.vala.page:28(page/p)
-#: C/scale.c.page:29(page/p) C/scale.py.page:53(section/p)
-#: C/scale.vala.page:27(page/p) C/scrolledwindow.py.page:41(section/p)
-#: C/scrolledwindow.vala.page:26(page/p) C/separator.py.page:35(section/p)
-#: C/spinbutton.c.page:30(page/p) C/spinbutton.py.page:45(section/p)
+#: C/radiobutton.py.page:46(section/p) C/radiobutton.vala.page:28(page/p)
+#: C/scale.c.page:29(page/p) C/scale.py.page:54(section/p)
+#: C/scale.vala.page:27(page/p) C/scrolledwindow.c.page:29(page/p)
+#: C/scrolledwindow.py.page:42(section/p)
+#: C/scrolledwindow.vala.page:26(page/p) C/separator.py.page:36(section/p)
+#: C/spinbutton.c.page:30(page/p) C/spinbutton.py.page:46(section/p)
 #: C/spinbutton.vala.page:27(page/p) C/spinner.c.page:28(page/p)
-#: C/spinner.js.page:25(page/p) C/spinner.py.page:38(section/p)
+#: C/spinner.js.page:25(page/p) C/spinner.py.page:39(section/p)
 #: C/spinner.vala.page:25(page/p) C/statusbar.c.page:31(page/p)
 #: C/statusbar.py.page:50(section/p) C/statusbar.vala.page:28(page/p)
-#: C/switch.c.page:28(page/p) C/switch.py.page:46(section/p)
+#: C/switch.c.page:28(page/p) C/switch.py.page:42(section/p)
 #: C/switch.vala.page:31(page/p) C/textview.c.page:31(page/p)
 #: C/textview.py.page:93(section/p) C/textview.vala.page:30(page/p)
-#: C/togglebutton.c.page:31(page/p) C/togglebutton.py.page:43(section/p)
-#: C/togglebutton.vala.page:28(page/p) C/toolbar.js.page:26(page/p)
-#: C/toolbar.py.page:50(section/p) C/toolbar.vala.page:29(page/p)
-#: C/toolbar_builder.py.page:189(section/p)
-#: C/toolbar_builder.vala.page:146(page/p) C/tooltip.py.page:53(section/p)
-#: C/treeview_advanced_liststore.py.page:43(section/p)
-#: C/treeview_cellrenderertoggle.py.page:39(section/p)
+#: C/togglebutton.c.page:31(page/p) C/togglebutton.py.page:41(section/p)
+#: C/togglebutton.vala.page:28(page/p) C/toolbar.c.page:30(page/p)
+#: C/toolbar.js.page:26(page/p) C/toolbar.py.page:52(section/p)
+#: C/toolbar.vala.page:29(page/p) C/toolbar_builder.py.page:191(section/p)
+#: C/toolbar_builder.vala.page:146(page/p) C/tooltip.py.page:55(section/p)
+#: C/treeview_advanced_liststore.py.page:41(section/p)
+#: C/treeview_cellrenderertoggle.py.page:41(section/p)
 #: C/treeview_simple_liststore.js.page:272(section/p)
-#: C/treeview_simple_liststore.py.page:41(section/p)
+#: C/treeview_simple_liststore.py.page:42(section/p)
 #: C/treeview_simple_liststore.vala.page:27(page/p)
-#: C/treeview_treestore.py.page:39(section/p) C/window.c.page:29(page/p)
-#: C/window.py.page:60(section/p) C/window.vala.page:33(page/p)
+#: C/treeview_treestore.py.page:41(section/p) C/window.c.page:29(page/p)
+#: C/window.py.page:61(section/p) C/window.vala.page:33(page/p)
 msgid "In this sample we used the following:"
 msgstr "Neste exemplo empregaremos o seguinte:"
 
@@ -2791,17 +2830,18 @@ msgid ""
 msgstr ""
 
 #: C/aboutdialog.js.page:28(item/p) C/gmenu.c.page:31(item/p)
-#: C/gmenu.js.page:29(item/p) C/gmenu.py.page:76(item/p)
+#: C/gmenu.js.page:29(item/p) C/gmenu.py.page:79(item/p)
 #: C/messagedialog.js.page:193(item/p) C/switch.js.page:265(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</"
 "link>"
 msgstr ""
 
-#: C/aboutdialog.js.page:29(item/p) C/filechooserdialog.py.page:78(item/p)
+#: C/aboutdialog.js.page:29(item/p) C/filechooserdialog.py.page:79(item/p)
 #: C/gmenu.c.page:32(item/p) C/gmenu.js.page:30(item/p)
-#: C/gmenu.py.page:77(item/p) C/messagedialog.js.page:194(item/p)
-#: C/messagedialog.py.page:61(item/p) C/switch.js.page:266(item/p)
+#: C/gmenu.py.page:80(item/p) C/menubar.c.page:38(item/p)
+#: C/messagedialog.js.page:194(item/p) C/messagedialog.py.page:61(item/p)
+#: C/switch.js.page:266(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html";
 "\">GSimpleAction</link>"
@@ -2872,35 +2912,50 @@ msgctxt "text"
 msgid "AboutDialog (Python)"
 msgstr "AboutDialog (Python)"
 
-#: C/aboutdialog.py.page:13(credit/name) C/button.py.page:13(credit/name)
-#: C/buttonbox.py.page:13(credit/name) C/checkbutton.py.page:13(credit/name)
-#: C/colorbutton.py.page:12(credit/name) C/combobox.py.page:12(credit/name)
+#: C/aboutdialog.py.page:13(credit/name) C/beginner.c.page:19(credit/name)
+#: C/beginner.js.page:15(credit/name) C/beginner.py.page:18(credit/name)
+#: C/beginner.vala.page:18(credit/name) C/button.py.page:14(credit/name)
+#: C/buttonbox.py.page:14(credit/name) C/checkbutton.py.page:13(credit/name)
+#: C/colorbutton.py.page:13(credit/name) C/combobox.py.page:14(credit/name)
 #: C/combobox_multicolumn.py.page:13(credit/name)
-#: C/dialog.py.page:13(credit/name) C/entry.py.page:12(credit/name)
-#: C/filechooserdialog.py.page:15(credit/name)
-#: C/fontchooserwidget.py.page:13(credit/name) C/gmenu.py.page:18(credit/name)
-#: C/grid.py.page:19(credit/name)
-#: C/GtkApplicationWindow.py.page:17(credit/name)
-#: C/image.py.page:12(credit/name) C/label.py.page:13(credit/name)
-#: C/linkbutton.py.page:13(credit/name) C/menubar.py.page:19(credit/name)
-#: C/menubutton.py.page:18(credit/name)
+#: C/dialog.py.page:14(credit/name) C/entry.py.page:14(credit/name)
+#: C/filechooserdialog.py.page:16(credit/name)
+#: C/fontchooserwidget.py.page:14(credit/name) C/gmenu.py.page:20(credit/name)
+#: C/grid.py.page:20(credit/name)
+#: C/GtkApplicationWindow.py.page:19(credit/name)
+#: C/guitar-tuner.c.page:22(credit/name)
+#: C/guitar-tuner.cpp.page:20(credit/name)
+#: C/guitar-tuner.py.page:22(credit/name)
+#: C/guitar-tuner.py.page:27(credit/name)
+#: C/guitar-tuner.vala.page:25(credit/name) C/image.py.page:14(credit/name)
+#: C/image-viewer.c.page:22(credit/name)
+#: C/image-viewer.cpp.page:20(credit/name)
+#: C/image-viewer.js.page:22(credit/name)
+#: C/image-viewer.py.page:22(credit/name)
+#: C/image-viewer.vala.page:30(credit/name) C/js.page:15(credit/name)
+#: C/label.py.page:15(credit/name) C/linkbutton.py.page:13(credit/name)
+#: C/magic-mirror.vala.page:22(credit/name) C/menubar.py.page:19(credit/name)
+#: C/menubutton.py.page:19(credit/name) C/message-board.c.page:19(credit/name)
 #: C/messagedialog.py.page:13(credit/name)
-#: C/model-view-controller.py.page:19(credit/name)
-#: C/paned.py.page:12(credit/name) C/progressbar.py.page:12(credit/name)
-#: C/properties.py.page:19(credit/name) C/radiobutton.py.page:16(credit/name)
-#: C/scale.py.page:13(credit/name) C/scrolledwindow.py.page:12(credit/name)
-#: C/separator.py.page:13(credit/name)
-#: C/signals-callbacks.py.page:19(credit/name)
-#: C/spinbutton.py.page:13(credit/name) C/spinner.py.page:12(credit/name)
-#: C/statusbar.py.page:15(credit/name) C/strings.py.page:19(credit/name)
-#: C/switch.py.page:17(credit/name) C/textview.py.page:20(credit/name)
-#: C/togglebutton.py.page:15(credit/name) C/toolbar.py.page:13(credit/name)
-#: C/toolbar_builder.py.page:20(credit/name) C/tooltip.py.page:13(credit/name)
-#: C/treeview_advanced_liststore.py.page:15(credit/name)
-#: C/treeview_cellrenderertoggle.py.page:12(credit/name)
+#: C/model-view-controller.py.page:20(credit/name)
+#: C/paned.py.page:13(credit/name) C/photo-wall.c.page:21(credit/name)
+#: C/progressbar.py.page:13(credit/name) C/properties.py.page:20(credit/name)
+#: C/py.page:14(credit/name) C/radiobutton.py.page:14(credit/name)
+#: C/record-collection.js.page:22(credit/name) C/scale.py.page:14(credit/name)
+#: C/scrolledwindow.py.page:13(credit/name)
+#: C/separator.py.page:14(credit/name)
+#: C/signals-callbacks.py.page:20(credit/name)
+#: C/spinbutton.py.page:14(credit/name) C/spinner.py.page:13(credit/name)
+#: C/statusbar.py.page:14(credit/name) C/strings.py.page:20(credit/name)
+#: C/switch.py.page:13(credit/name) C/textview.py.page:21(credit/name)
+#: C/togglebutton.py.page:13(credit/name) C/toolbar.py.page:14(credit/name)
+#: C/toolbar_builder.py.page:21(credit/name) C/tooltip.py.page:14(credit/name)
+#: C/treeview_advanced_liststore.py.page:13(credit/name)
+#: C/treeview_cellrenderertoggle.py.page:13(credit/name)
 #: C/treeview_simple_liststore.py.page:14(credit/name)
-#: C/treeview_treestore.py.page:12(credit/name)
-#: C/tutorial.py.page:19(credit/name) C/window.py.page:17(credit/name)
+#: C/treeview_treestore.py.page:14(credit/name)
+#: C/tutorial.py.page:19(credit/name) C/vala.page:14(credit/name)
+#: C/weatherApp.js.page:16(credit/name) C/window.py.page:19(credit/name)
 msgid "Marta Maria Casetti"
 msgstr "Marta Maria Casetti"
 
@@ -2914,37 +2969,37 @@ msgid ""
 "is displayed if \"About\" in the menu is selected)."
 msgstr ""
 
-#: C/aboutdialog.py.page:28(section/title) C/button.py.page:29(section/title)
-#: C/buttonbox.py.page:29(section/title)
+#: C/aboutdialog.py.page:28(section/title) C/button.py.page:30(section/title)
+#: C/buttonbox.py.page:30(section/title)
 #: C/checkbutton.py.page:28(section/title)
-#: C/colorbutton.py.page:27(section/title)
-#: C/combobox.py.page:27(section/title)
+#: C/colorbutton.py.page:28(section/title)
+#: C/combobox.py.page:29(section/title)
 #: C/combobox_multicolumn.py.page:28(section/title)
-#: C/dialog.py.page:28(section/title) C/entry.py.page:32(section/title)
-#: C/filechooserdialog.py.page:51(section/title)
-#: C/fontchooserwidget.py.page:29(section/title)
-#: C/gmenu.py.page:34(section/title) C/grid.py.page:35(section/title)
-#: C/GtkApplicationWindow.py.page:32(section/title)
-#: C/image.py.page:31(section/title) C/label.py.page:33(section/title)
+#: C/dialog.py.page:29(section/title) C/entry.py.page:34(section/title)
+#: C/filechooserdialog.py.page:52(section/title)
+#: C/fontchooserwidget.py.page:30(section/title)
+#: C/gmenu.py.page:35(section/title) C/grid.py.page:36(section/title)
+#: C/GtkApplicationWindow.py.page:34(section/title)
+#: C/image.py.page:33(section/title) C/label.py.page:35(section/title)
 #: C/linkbutton.py.page:29(section/title)
-#: C/menubutton.py.page:35(section/title)
-#: C/messagedialog.py.page:28(section/title) C/paned.py.page:27(section/title)
-#: C/progressbar.py.page:37(section/title)
-#: C/radiobutton.py.page:31(section/title) C/scale.py.page:28(section/title)
-#: C/scrolledwindow.py.page:27(section/title)
-#: C/separator.py.page:29(section/title)
-#: C/spinbutton.py.page:28(section/title) C/spinner.py.page:27(section/title)
-#: C/statusbar.py.page:30(section/title) C/switch.py.page:34(section/title)
-#: C/textview.py.page:42(section/title)
-#: C/togglebutton.py.page:30(section/title)
-#: C/toolbar.py.page:29(section/title)
-#: C/toolbar_builder.py.page:162(section/title)
-#: C/tooltip.py.page:28(section/title)
-#: C/treeview_advanced_liststore.py.page:30(section/title)
-#: C/treeview_cellrenderertoggle.py.page:27(section/title)
+#: C/menubutton.py.page:36(section/title)
+#: C/messagedialog.py.page:28(section/title) C/paned.py.page:28(section/title)
+#: C/progressbar.py.page:38(section/title)
+#: C/radiobutton.py.page:29(section/title) C/scale.py.page:29(section/title)
+#: C/scrolledwindow.py.page:28(section/title)
+#: C/separator.py.page:30(section/title)
+#: C/spinbutton.py.page:29(section/title) C/spinner.py.page:28(section/title)
+#: C/statusbar.py.page:29(section/title) C/switch.py.page:30(section/title)
+#: C/textview.py.page:43(section/title)
+#: C/togglebutton.py.page:28(section/title)
+#: C/toolbar.py.page:30(section/title)
+#: C/toolbar_builder.py.page:163(section/title)
+#: C/tooltip.py.page:29(section/title)
+#: C/treeview_advanced_liststore.py.page:28(section/title)
+#: C/treeview_cellrenderertoggle.py.page:28(section/title)
 #: C/treeview_simple_liststore.py.page:29(section/title)
-#: C/treeview_treestore.py.page:27(section/title)
-#: C/window.py.page:42(section/title)
+#: C/treeview_treestore.py.page:29(section/title)
+#: C/window.py.page:44(section/title)
 msgid "Code used to generate this example"
 msgstr "Código usado para xerar este exemplo"
 
@@ -3037,45 +3092,44 @@ msgstr ""
 msgid "Useful methods for an AboutDialog widget"
 msgstr "Métodos útiles para o widget AboutDialog"
 
-#: C/aboutdialog.py.page:36(section/p) C/button.py.page:34(section/p)
-#: C/dialog.py.page:36(section/p) C/fontchooserwidget.py.page:34(section/p)
-#: C/messagedialog.py.page:36(section/p) C/radiobutton.py.page:37(section/p)
-#: C/togglebutton.py.page:38(section/p)
+#: C/aboutdialog.py.page:36(section/p)
 msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>."
+"In line 15 the signal <code>\"activate\"</code> is connected to the callback "
+"function <code>about_cb()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
 msgstr ""
 
-#: C/aboutdialog.py.page:40(section/title) C/button.py.page:49(section/title)
-#: C/buttonbox.py.page:44(section/title)
-#: C/checkbutton.py.page:43(section/title)
-#: C/colorbutton.py.page:37(section/title)
-#: C/combobox.py.page:37(section/title)
+#: C/aboutdialog.py.page:40(section/title) C/button.py.page:51(section/title)
+#: C/buttonbox.py.page:45(section/title)
+#: C/checkbutton.py.page:41(section/title)
+#: C/colorbutton.py.page:39(section/title)
+#: C/combobox.py.page:41(section/title)
 #: C/combobox_multicolumn.py.page:40(section/title)
-#: C/dialog.py.page:44(section/title) C/entry.py.page:58(section/title)
-#: C/filechooserdialog.py.page:68(section/title)
-#: C/fontchooserwidget.py.page:42(section/title)
-#: C/gmenu.py.page:73(section/title) C/grid.py.page:52(section/title)
-#: C/GtkApplicationWindow.py.page:47(section/title)
-#: C/image.py.page:97(section/title) C/label.py.page:85(section/title)
-#: C/linkbutton.py.page:43(section/title) C/menubar.py.page:180(section/title)
-#: C/menubutton.py.page:49(section/title)
-#: C/messagedialog.py.page:53(section/title) C/paned.py.page:37(section/title)
-#: C/progressbar.py.page:52(section/title)
-#: C/radiobutton.py.page:48(section/title) C/scale.py.page:52(section/title)
-#: C/scrolledwindow.py.page:40(section/title)
-#: C/spinbutton.py.page:44(section/title) C/spinner.py.page:37(section/title)
-#: C/statusbar.py.page:49(section/title) C/switch.py.page:45(section/title)
+#: C/dialog.py.page:45(section/title) C/entry.py.page:60(section/title)
+#: C/filechooserdialog.py.page:69(section/title)
+#: C/fontchooserwidget.py.page:43(section/title)
+#: C/gmenu.py.page:76(section/title) C/grid.py.page:53(section/title)
+#: C/GtkApplicationWindow.py.page:49(section/title)
+#: C/image.py.page:99(section/title) C/label.py.page:86(section/title)
+#: C/linkbutton.py.page:43(section/title) C/menubar.py.page:182(section/title)
+#: C/menubutton.py.page:52(section/title)
+#: C/messagedialog.py.page:53(section/title) C/paned.py.page:38(section/title)
+#: C/progressbar.py.page:53(section/title)
+#: C/radiobutton.py.page:45(section/title) C/scale.py.page:53(section/title)
+#: C/scrolledwindow.py.page:41(section/title)
+#: C/spinbutton.py.page:45(section/title) C/spinner.py.page:38(section/title)
+#: C/statusbar.py.page:49(section/title) C/switch.py.page:41(section/title)
 #: C/textview.py.page:92(section/title)
-#: C/togglebutton.py.page:42(section/title)
-#: C/toolbar.py.page:49(section/title)
-#: C/toolbar_builder.py.page:188(section/title)
-#: C/tooltip.py.page:52(section/title)
-#: C/treeview_advanced_liststore.py.page:42(section/title)
-#: C/treeview_cellrenderertoggle.py.page:38(section/title)
-#: C/treeview_simple_liststore.py.page:40(section/title)
-#: C/treeview_treestore.py.page:38(section/title)
-#: C/window.py.page:58(section/title)
+#: C/togglebutton.py.page:40(section/title)
+#: C/toolbar.py.page:51(section/title)
+#: C/toolbar_builder.py.page:190(section/title)
+#: C/tooltip.py.page:54(section/title)
+#: C/treeview_advanced_liststore.py.page:40(section/title)
+#: C/treeview_cellrenderertoggle.py.page:40(section/title)
+#: C/treeview_simple_liststore.py.page:41(section/title)
+#: C/treeview_treestore.py.page:40(section/title)
+#: C/window.py.page:59(section/title)
 msgid "API References"
 msgstr ""
 
@@ -3091,8 +3145,8 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/aboutdialog.py.page:46(item/p) C/checkbutton.py.page:47(item/p)
-#: C/grid.py.page:56(item/p) C/GtkApplicationWindow.py.page:53(item/p)
+#: C/aboutdialog.py.page:46(item/p) C/checkbutton.py.page:45(item/p)
+#: C/grid.py.page:57(item/p) C/GtkApplicationWindow.py.page:55(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -3104,9 +3158,9 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/aboutdialog.py.page:48(item/p) C/checkbutton.py.page:46(item/p)
-#: C/grid.py.page:55(item/p) C/GtkApplicationWindow.py.page:52(item/p)
-#: C/messagedialog.py.page:64(item/p) C/window.py.page:62(item/p)
+#: C/aboutdialog.py.page:48(item/p) C/checkbutton.py.page:44(item/p)
+#: C/grid.py.page:56(item/p) C/GtkApplicationWindow.py.page:54(item/p)
+#: C/messagedialog.py.page:64(item/p) C/window.py.page:63(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -3254,15 +3308,15 @@ msgid "GNOME Documentation Project"
 msgstr "Proxecto de documentación de GNOME"
 
 #: C/audio-player.vala.page:18(page/title)
-msgid "3 Audio Player"
+#, fuzzy
+#| msgid "3 Audio Player"
+msgid "Audio player"
 msgstr "3 Reprodutor de son"
 
 #: C/beginner.c.page:8(info/title)
-#, fuzzy
-#| msgid "Beginner's Tutorials (C)"
 msgctxt "text"
-msgid "Beginner's Tutorials (C)"
-msgstr "Titoriais para principiantes (C)"
+msgid "Tutorial for beginners (C)"
+msgstr ""
 
 #: C/beginner.c.page:12(info/desc) C/beginner.vala.page:12(info/desc)
 msgid ""
@@ -3272,169 +3326,201 @@ msgstr ""
 "Unha guía para principiantes á programación de IGU usando GTK+, incluíndo "
 "exemplos de código e exercicios de práctica."
 
-#: C/beginner.c.page:20(page/title) C/beginner.vala.page:19(page/title)
-msgid "0 Beginner's Tutorials"
-msgstr "0. Titoriais para principiantes"
+#: C/beginner.c.page:21(credit/years) C/beginner.js.page:17(credit/years)
+#: C/beginner.py.page:20(credit/years) C/beginner.vala.page:20(credit/years)
+#: C/guitar-tuner.c.page:24(credit/years)
+#: C/guitar-tuner.cpp.page:22(credit/years)
+#: C/guitar-tuner.py.page:24(credit/years)
+#: C/guitar-tuner.py.page:29(credit/years)
+#: C/guitar-tuner.vala.page:27(credit/years)
+#: C/image-viewer.c.page:24(credit/years)
+#: C/image-viewer.cpp.page:22(credit/years)
+#: C/image-viewer.js.page:24(credit/years)
+#: C/image-viewer.py.page:24(credit/years)
+#: C/image-viewer.vala.page:32(credit/years) C/js.page:17(credit/years)
+#: C/magic-mirror.vala.page:24(credit/years)
+#: C/message-board.c.page:21(credit/years)
+#: C/photo-wall.c.page:23(credit/years) C/py.page:16(credit/years)
+#: C/record-collection.js.page:24(credit/years)
+#: C/tutorial.py.page:26(credit/years) C/vala.page:16(credit/years)
+#: C/weatherApp.js.page:18(credit/years)
+msgid "2013"
+msgstr ""
+
+#: C/beginner.c.page:25(page/title) C/beginner.js.page:23(page/title)
+#: C/beginner.vala.page:24(page/title)
+#, fuzzy
+#| msgid "To run the code samples"
+msgid "Tutorial for beginners and code samples"
+msgstr "Para executar os exemplos de código"
 
-#: C/beginner.c.page:22(synopsis/p) C/beginner.vala.page:21(synopsis/p)
+#: C/beginner.c.page:27(synopsis/p) C/beginner.vala.page:26(synopsis/p)
 msgid ""
 "Although these tutorials are designed for beginners, we can't cover all the "
 "basics. Before attempting to follow these tutorials, you are expected to be "
 "familiar with the following concepts:"
 msgstr ""
 
-#: C/beginner.c.page:24(item/p) C/beginner.vala.page:23(item/p)
+#: C/beginner.c.page:29(item/p) C/beginner.vala.page:28(item/p)
 msgid "Object oriented programming"
 msgstr "Programación orientada a obxectos"
 
-#: C/beginner.c.page:25(item/p)
+#: C/beginner.c.page:30(item/p)
 msgid "The C programming language"
 msgstr "O linguaxe de programación C"
 
-#: C/beginner.c.page:29(synopsis/p) C/beginner.vala.page:32(synopsis/p)
-#: C/tutorial.py.page:28(synopsis/p)
+#: C/beginner.c.page:34(synopsis/p) C/beginner.vala.page:37(synopsis/p)
+#, fuzzy
+#| msgid ""
+#| "By following these tutorials you will learn the basics of GUI programming "
+#| "using Gtk+."
 msgid ""
 "By following these tutorials you will learn the basics of GUI programming "
-"using Gtk+."
+"using GTK+."
 msgstr ""
 "Seguindo estes titoriais aprenderá as bases para programar interfaces de "
 "usuario empregando Gtk+."
 
-#: C/beginner.c.page:33(section/title) C/beginner.js.page:36(section/title)
-#: C/beginner.vala.page:36(section/title)
+#: C/beginner.c.page:38(section/title) C/beginner.js.page:41(section/title)
+#: C/beginner.vala.page:41(section/title)
 msgid "Tutorials"
 msgstr "Titoriais"
 
-#: C/beginner.c.page:37(section/title) C/beginner.js.page:40(section/title)
-#: C/beginner.py.page:27(section/title) C/beginner.vala.page:40(section/title)
+#: C/beginner.c.page:42(section/title) C/beginner.js.page:45(section/title)
+#: C/beginner.vala.page:45(section/title) C/py.page:31(section/title)
 msgid "Code samples"
 msgstr "Exemplos de código"
 
-#: C/beginner.c.page:38(section/p) C/beginner.js.page:42(section/p)
-#: C/beginner.vala.page:41(section/p) C/tutorial.py.page:38(section/p)
+#: C/beginner.c.page:43(section/p) C/beginner.js.page:47(section/p)
+#: C/beginner.vala.page:46(section/p)
 msgid "To run the code samples:"
 msgstr "Para executar os exemplos de código"
 
-#: C/beginner.c.page:42(item/p)
+#: C/beginner.c.page:47(item/p)
 msgid "Copy and paste the code into <var>filename</var>.c"
 msgstr "Copie e pegue o código en <var>nomedeficheiro</var>.c"
 
-#: C/beginner.c.page:43(item/p) C/beginner.c.page:56(item/p)
-#: C/beginner.vala.page:46(item/p) C/tutorial.py.page:41(item/p)
+#: C/beginner.c.page:48(item/p) C/beginner.c.page:61(item/p)
+#: C/beginner.vala.page:51(item/p)
 msgid "In the terminal type:"
 msgstr "Escriba no terminal"
 
-#: C/beginner.c.page:44(item/screen)
+#: C/beginner.c.page:49(item/screen)
 #, no-wrap
 msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
 msgstr "gcc <var>nomedeficheiro</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>nomedeficheiro</var>\n"
 
-#: C/beginner.c.page:46(item/screen) C/beginner.c.page:60(item/screen)
-#: C/beginner.vala.page:48(item/screen)
+#: C/beginner.c.page:51(item/screen) C/beginner.c.page:65(item/screen)
+#: C/beginner.vala.page:53(item/screen)
 #, no-wrap
 msgid "./<var>filename</var>"
 msgstr "./<var>nome_ficheiro</var>"
 
-#: C/beginner.c.page:50(note/p)
+#: C/beginner.c.page:55(note/p)
+#, fuzzy
+#| msgid ""
+#| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
+#| "html\">Gtk.WindowPosition</link>"
 msgid ""
-"For more information about compiling Gtk+ programs see <link href=\"http://";
-"developer.gnome.org/gtk3/3.4/gtk-compiling.html\">Compiling Gtk+ "
+"For more information about compiling GTK+ programs see <link href=\"http://";
+"developer.gnome.org/gtk3/3.4/gtk-compiling.html\">Compiling GTK+ "
 "Applications on UNIX</link>."
 msgstr ""
+"O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
+"\">Gtk.WindowPosition</link>"
 
-#: C/beginner.c.page:54(section/p)
+#: C/beginner.c.page:59(section/p)
 msgid "You can also use the Vala compiler to compile these samples:"
 msgstr "Tamén pode empregar o compilador de Vala para compilar estes exemplos:"
 
-#: C/beginner.c.page:57(item/screen)
+#: C/beginner.c.page:62(item/screen)
 #, no-wrap
 msgid "valac --pkg gtk+-3.0 <var>filename</var>.c"
 msgstr "valac --pkg gtk+-3.0 <var>nomedeficheiro</var>.c"
 
-#: C/beginner.c.page:59(item/p)
+#: C/beginner.c.page:64(item/p)
 msgid "To run:"
 msgstr "Para executalo:"
 
-#: C/beginner.c.page:63(section/title) C/beginner.js.page:49(section/title)
-#: C/beginner.py.page:29(section/title) C/beginner.vala.page:52(section/title)
+#: C/beginner.c.page:68(section/title) C/beginner.js.page:54(section/title)
+#: C/beginner.py.page:31(section/title) C/beginner.vala.page:57(section/title)
 msgid "Windows"
 msgstr "Xanelas"
 
-#: C/beginner.c.page:66(section/title) C/beginner.js.page:51(section/title)
-#: C/beginner.py.page:32(section/title) C/beginner.vala.page:55(section/title)
+#: C/beginner.c.page:71(section/title) C/beginner.js.page:56(section/title)
+#: C/beginner.py.page:33(section/title) C/beginner.vala.page:60(section/title)
 msgid "Display widgets"
 msgstr "Widgets de visualización"
 
-#: C/beginner.c.page:68(section/title) C/beginner.js.page:53(section/title)
-#: C/beginner.py.page:34(section/title) C/beginner.vala.page:57(section/title)
+#: C/beginner.c.page:73(section/title) C/beginner.js.page:58(section/title)
+#: C/beginner.py.page:35(section/title) C/beginner.vala.page:62(section/title)
 msgid "Buttons and toggles"
 msgstr "Botóns e casillas"
 
-#: C/beginner.c.page:70(section/title) C/beginner.js.page:55(section/title)
-#: C/beginner.py.page:36(section/title) C/beginner.vala.page:59(section/title)
+#: C/beginner.c.page:75(section/title) C/beginner.js.page:60(section/title)
+#: C/beginner.py.page:37(section/title) C/beginner.vala.page:64(section/title)
 msgid "Numeric and text data entry"
 msgstr "Entrada de datos numérica e de texto"
 
-#: C/beginner.c.page:72(section/title) C/beginner.js.page:57(section/title)
-#: C/beginner.py.page:38(section/title) C/beginner.vala.page:61(section/title)
+#: C/beginner.c.page:77(section/title) C/beginner.js.page:62(section/title)
+#: C/beginner.py.page:39(section/title) C/beginner.vala.page:66(section/title)
 msgid "Multiline text editor"
 msgstr "Editor de texto multiliña"
 
-#: C/beginner.c.page:74(section/title) C/beginner.js.page:59(section/title)
-#: C/beginner.py.page:40(section/title) C/beginner.vala.page:63(section/title)
+#: C/beginner.c.page:79(section/title) C/beginner.js.page:64(section/title)
+#: C/beginner.py.page:41(section/title) C/beginner.vala.page:68(section/title)
 msgid "Menu, combo box and toolbar widgets"
 msgstr "Widgets de menú, caixa combinada e barra de ferramentas"
 
-#: C/beginner.c.page:76(section/title) C/beginner.js.page:61(section/title)
-#: C/beginner.py.page:42(section/title) C/beginner.vala.page:65(section/title)
+#: C/beginner.c.page:81(section/title) C/beginner.js.page:66(section/title)
+#: C/beginner.py.page:43(section/title) C/beginner.vala.page:70(section/title)
 msgid "TreeView widget"
 msgstr "Widget TreeView"
 
-#: C/beginner.c.page:78(section/title) C/beginner.js.page:63(section/title)
-#: C/beginner.py.page:44(section/title) C/beginner.vala.page:67(section/title)
+#: C/beginner.c.page:83(section/title) C/beginner.js.page:68(section/title)
+#: C/beginner.py.page:45(section/title) C/beginner.vala.page:72(section/title)
+#: C/tutorial.py.page:126(steps/title)
 msgid "Selectors"
 msgstr "Selectores"
 
-#: C/beginner.c.page:79(section/title) C/beginner.js.page:64(section/title)
-#: C/beginner.py.page:45(section/title) C/beginner.vala.page:68(section/title)
+#: C/beginner.c.page:84(section/title) C/beginner.js.page:69(section/title)
+#: C/beginner.py.page:46(section/title) C/beginner.vala.page:73(section/title)
 msgid "File selectors"
 msgstr "Selectores de ficheiros"
 
-#: C/beginner.c.page:81(section/title) C/beginner.js.page:66(section/title)
-#: C/beginner.py.page:47(section/title) C/beginner.vala.page:70(section/title)
+#: C/beginner.c.page:86(section/title) C/beginner.js.page:71(section/title)
+#: C/beginner.py.page:48(section/title) C/beginner.vala.page:75(section/title)
 msgid "Font selectors"
 msgstr "Selectores de tipos de letra"
 
-#: C/beginner.c.page:83(section/title) C/beginner.js.page:68(section/title)
-#: C/beginner.py.page:49(section/title) C/beginner.vala.page:72(section/title)
+#: C/beginner.c.page:88(section/title) C/beginner.js.page:73(section/title)
+#: C/beginner.py.page:50(section/title) C/beginner.vala.page:77(section/title)
 msgid "Color Selectors"
 msgstr "Selectores de color"
 
-#: C/beginner.c.page:86(section/title) C/beginner.js.page:71(section/title)
-#: C/beginner.py.page:52(section/title) C/beginner.vala.page:75(section/title)
+#: C/beginner.c.page:91(section/title) C/beginner.js.page:76(section/title)
+#: C/beginner.py.page:53(section/title) C/beginner.vala.page:80(section/title)
 msgid "Layout containers"
 msgstr "Contedores da distribución"
 
-#: C/beginner.c.page:88(section/title) C/beginner.js.page:73(section/title)
-#: C/beginner.py.page:54(section/title) C/beginner.vala.page:77(section/title)
-#: C/tutorial.py.page:66(steps/title)
+#: C/beginner.c.page:93(section/title) C/beginner.js.page:78(section/title)
+#: C/beginner.py.page:55(section/title) C/beginner.vala.page:82(section/title)
 msgid "Ornaments"
 msgstr "Adornos"
 
-#: C/beginner.c.page:90(section/title) C/beginner.js.page:75(section/title)
-#: C/beginner.py.page:56(section/title) C/beginner.vala.page:79(section/title)
+#: C/beginner.c.page:95(section/title) C/beginner.js.page:80(section/title)
+#: C/beginner.py.page:57(section/title) C/beginner.vala.page:84(section/title)
 msgid "Scrolling"
 msgstr "Desprazamento"
 
-#: C/beginner.c.page:92(section/title) C/beginner.js.page:77(section/title)
-#: C/beginner.py.page:58(section/title) C/beginner.vala.page:81(section/title)
+#: C/beginner.c.page:97(section/title) C/beginner.js.page:82(section/title)
+#: C/beginner.py.page:59(section/title) C/beginner.vala.page:86(section/title)
 msgid "Miscellaneous"
 msgstr "Varios"
 
-#: C/beginner.c.page:97(section/title) C/beginner.js.page:82(section/title)
-#: C/beginner.vala.page:86(section/title)
+#: C/beginner.c.page:102(section/title) C/beginner.js.page:87(section/title)
+#: C/beginner.vala.page:91(section/title)
 #: C/menubar.vala.page:197(section/title)
-#: C/tutorial.py.page:147(section/title)
 msgid "Exercises"
 msgstr "Exercicios"
 
@@ -3447,17 +3533,13 @@ msgstr "Exercicios"
 msgid "Susanna Huhtanen"
 msgstr "Susanna Huhtanen"
 
-#: C/beginner.js.page:15(info/desc)
+#: C/beginner.js.page:20(info/desc)
 msgid ""
 "A beginner's guide to writing GNOME applications in JavaScript, including "
 "code samples and practice exercises."
 msgstr ""
 
-#: C/beginner.js.page:18(page/title)
-msgid "0 Beginner's tutorials and samples"
-msgstr "0. Titoriais e exemplos para principiantes"
-
-#: C/beginner.js.page:20(synopsis/p)
+#: C/beginner.js.page:25(synopsis/p)
 msgid ""
 "JavaScript is one of the most popular programming languages on the web. It's "
 "not just for the web, though. If you have even a basic understanding of "
@@ -3467,7 +3549,7 @@ msgid ""
 "\">GNOME Shell</link>, the most basic part of GNOME."
 msgstr ""
 
-#: C/beginner.js.page:21(note/p)
+#: C/beginner.js.page:26(note/p)
 msgid ""
 "GNOME Shell is what you see when you click on \"Activities\" in the top-left "
 "corner of your screen. It also controls the clock and the rest of the top "
@@ -3476,11 +3558,11 @@ msgid ""
 "which give it new features or change the way it does things."
 msgstr ""
 
-#: C/beginner.js.page:25(section/title)
+#: C/beginner.js.page:30(section/title)
 msgid "Getting Started"
 msgstr "Comezar"
 
-#: C/beginner.js.page:26(section/p)
+#: C/beginner.js.page:31(section/p)
 msgid ""
 "These tutorials are designed for people who already know how to write in "
 "JavaScript, and who have GNOME installed on their computers already, but who "
@@ -3489,7 +3571,7 @@ msgid ""
 "resources first:"
 msgstr ""
 
-#: C/beginner.js.page:28(item/p)
+#: C/beginner.js.page:33(item/p)
 msgid ""
 "<link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent "
 "JavaScript</link> is a free, Creative Commons-licensed book, which explains "
@@ -3497,20 +3579,20 @@ msgid ""
 "for the web, you only need to read up to chapter 10 or so."
 msgstr ""
 
-#: C/beginner.js.page:29(item/p)
+#: C/beginner.js.page:34(item/p)
 msgid ""
 "<link href=\"http://www.gnome.org/getting-gnome/\";>Download GNOME</link> as "
 "part of a distribution, like Fedora, openSUSE, or Ubuntu. Each distribution "
 "has its own instructions for how to get GNOME."
 msgstr ""
 
-#: C/beginner.js.page:30(item/p)
+#: C/beginner.js.page:35(item/p)
 msgid ""
 "<link xref=\"set-up-gedit.js\">Set up gedit</link> for writing applications. "
 "GNOME's text editor, gedit, is sometimes just called \"text editor\"."
 msgstr ""
 
-#: C/beginner.js.page:41(section/p)
+#: C/beginner.js.page:46(section/p)
 msgid ""
 "These samples show how to use widgets in your GNOME applications. Each one "
 "demonstrates a complete application which showcases the featured widget. At "
@@ -3518,15 +3600,15 @@ msgid ""
 "material."
 msgstr ""
 
-#: C/beginner.js.page:44(item/p)
+#: C/beginner.js.page:49(item/p)
 msgid "Copy and paste the code into <var>filename</var>.js"
 msgstr ""
 
-#: C/beginner.js.page:45(item/p)
+#: C/beginner.js.page:50(item/p)
 msgid "In the terminal, type:"
 msgstr "Escriba no terminal, escriba:"
 
-#: C/beginner.js.page:46(item/screen)
+#: C/beginner.js.page:51(item/screen)
 #, no-wrap
 msgid "gjs <var>filename</var>.js"
 msgstr "gjs <var>nomeficheiro</var>.js"
@@ -3535,7 +3617,7 @@ msgstr "gjs <var>nomeficheiro</var>.js"
 #, fuzzy
 #| msgid "Gtk Widget Sample Code and Tutorials (Python)"
 msgctxt "text"
-msgid "Gtk Widget Sample Code and Tutorials (Python)"
+msgid "GTK+ widgets sample code (Python)"
 msgstr "Exemplo de código e titoriais de widgets Gtk (Python)"
 
 #: C/beginner.py.page:12(info/desc)
@@ -3546,11 +3628,11 @@ msgstr ""
 "Unha guía á programación de IGU usando GTK+, incluíndo exemplos de código e "
 "exercicios de práctica."
 
-#: C/beginner.py.page:19(page/title)
-msgid "Gtk Widget Sample Code and Tutorials"
-msgstr "Exemplo de código e titoriais de widgets Gtk"
+#: C/beginner.py.page:24(page/title)
+msgid "GTK+ widgets sample code"
+msgstr ""
 
-#: C/beginner.py.page:21(synopsis/p)
+#: C/beginner.py.page:26(synopsis/p)
 msgid ""
 "If you are a beginner and you would like a tutorial to guide you step by "
 "step in an exploration of what you can do with GTK+ 3, you should go to the "
@@ -3558,35 +3640,37 @@ msgid ""
 "you can find it in the sections below."
 msgstr ""
 
+#: C/beginner.py.page:63(section/title)
+msgid "Theory pages"
+msgstr ""
+
 #: C/beginner.vala.page:8(info/title)
-#, fuzzy
-#| msgid "Beginner Tutorials (Vala)"
 msgctxt "text"
-msgid "Beginner Tutorials (Vala)"
-msgstr "Titoriais para principiantes (Vala)"
+msgid "Tutorial for beginners (Vala)"
+msgstr ""
 
-#: C/beginner.vala.page:24(item/p)
+#: C/beginner.vala.page:29(item/p)
 msgid "The Vala programming language:"
 msgstr "O linguaxe de programación Vala:"
 
-#: C/beginner.vala.page:26(item/p)
+#: C/beginner.vala.page:31(item/p)
 #, fuzzy
 #| msgid "Basic knowledge of the Vala programming language"
 msgid ""
 "<link href=\"https://live.gnome.org/Vala/Tutorial\";>The Vala Tutorial</link>"
 msgstr "Coñecemento básico da linguaxe de programación Vala"
 
-#: C/beginner.vala.page:27(item/p)
+#: C/beginner.vala.page:32(item/p)
 msgid ""
 "<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>Sample "
 "Vala code</link>"
 msgstr ""
 
-#: C/beginner.vala.page:45(item/p)
+#: C/beginner.vala.page:50(item/p)
 msgid "Copy and paste the code into <var>filename</var>.vala"
 msgstr "Copie e pegue o código en <var>nomedeficheiro</var>vala"
 
-#: C/beginner.vala.page:47(item/screen)
+#: C/beginner.vala.page:52(item/screen)
 #, no-wrap
 msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
 msgstr "valac --pkg gtk+-3.0 <var>nome_ficheiro</var>.vala"
@@ -3676,7 +3760,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/button.c.page:24(media) C/button.js.page:21(media)
-#: C/button.py.page:23(media) C/button.vala.page:23(media)
+#: C/button.py.page:24(media) C/button.vala.page:23(media)
 #, fuzzy
 #| msgid "@@image: 'media/button.png'; md5=8d69efbb3a0d3e043af6139b6492171c"
 msgctxt "_"
@@ -3690,13 +3774,13 @@ msgctxt "text"
 msgid "Button (C)"
 msgstr "Botón (C)"
 
-#: C/button.c.page:19(info/desc) C/button.py.page:18(info/desc)
+#: C/button.c.page:19(info/desc) C/button.py.page:19(info/desc)
 #: C/button.vala.page:18(info/desc)
 msgid "A button widget which emits a signal when clicked"
 msgstr ""
 
 #: C/button.c.page:22(page/title) C/button.js.page:20(page/title)
-#: C/button.py.page:21(page/title)
+#: C/button.py.page:22(page/title)
 msgid "Button"
 msgstr "Botón"
 
@@ -3750,7 +3834,7 @@ msgid ""
 "  gtk_container_add (GTK_CONTAINER (window), button);\n"
 "\n"
 "  /*Connecting the clicked signal to the callback function*/\n"
-"  g_signal_connect (GTK_Button (button), \n"
+"  g_signal_connect (GTK_BUTTON (button),\n"
 "                    \"clicked\", \n"
 "                    G_CALLBACK (button_clicked), \n"
 "                    G_OBJECT (window));\n"
@@ -3775,7 +3859,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/button.c.page:35(item/p) C/buttonbox.py.page:49(item/p)
+#: C/button.c.page:35(item/p) C/buttonbox.py.page:50(item/p)
 #: C/grid.c.page:34(item/p)
 #, fuzzy
 #| msgid ""
@@ -3896,11 +3980,11 @@ msgctxt "text"
 msgid "Button (Python)"
 msgstr "Botón (Python)"
 
-#: C/button.py.page:24(page/p) C/button.vala.page:24(page/p)
+#: C/button.py.page:25(page/p) C/button.vala.page:24(page/p)
 msgid "A button widget connected to a simple callback function."
 msgstr ""
 
-#: C/button.py.page:30(section/code)
+#: C/button.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -3942,37 +4026,38 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/button.py.page:33(section/title)
+#: C/button.py.page:35(section/title)
 msgid "Useful methods for a Button widget"
 msgstr "Métodos útiles para o widget Button"
 
-#: C/button.py.page:35(section/p)
+#: C/button.py.page:36(section/p)
 msgid ""
-"<code>button = Gtk.Button(label=\"Click me\")</code> could also be used to "
-"create a button and set the text directly. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
+"In line 16 the <code>\"clicked\"</code> signal from the button is connected "
+"to the callback function <code>do_clicked()</code> using <code><var>widget</"
+"var>.connect(<var>signal</var>, <var>callback function</var>)</code>. See "
+"<link xref=\"signals-callbacks.py\"/> for a more detailed explanation."
 msgstr ""
 
-#: C/button.py.page:37(item/p)
+#: C/button.py.page:38(item/p)
 msgid ""
 "<code>set_relief(Gtk.ReliefStyle.NONE)</code> sets to none the relief style "
 "of the edges of the Gtk.Button - as opposed to <code>Gtk.ReliefStyle.NORMAL</"
 "code>."
 msgstr ""
 
-#: C/button.py.page:38(item/p)
+#: C/button.py.page:39(item/p)
 msgid ""
 "If the label of the button is a <link href=\"http://developer.gnome.org/gtk3/";
 "unstable/gtk3-Stock-Items.html\">stock icon</link>, <code>set_use_stock(True)"
 "</code> sets the label as the name of the corresponding stock icon."
 msgstr ""
 
-#: C/button.py.page:39(item/p)
+#: C/button.py.page:40(item/p)
 msgid ""
 "To set an image (e.g. a stock image) for the button <code>button</code>:"
 msgstr ""
 
-#: C/button.py.page:40(item/code)
+#: C/button.py.page:41(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -3985,13 +4070,13 @@ msgstr ""
 "image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
 "button.set_image(image)"
 
-#: C/button.py.page:44(item/p)
+#: C/button.py.page:45(item/p)
 msgid ""
 "You should not set a label for the button after this, otherwise it will show "
 "the label and not the image."
 msgstr ""
 
-#: C/button.py.page:45(item/p)
+#: C/button.py.page:46(item/p)
 msgid ""
 "If we use <code>set_focus_on_click(False)</code> the button will not grab "
 "focus when it is clicked by the mouse. This could be useful in places like "
@@ -3999,7 +4084,7 @@ msgid ""
 "the application."
 msgstr ""
 
-#: C/button.py.page:52(item/p)
+#: C/button.py.page:54(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -4011,11 +4096,11 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/button.py.page:53(item/p) C/dialog.py.page:50(item/p)
-#: C/image.py.page:101(item/p) C/label.py.page:89(item/p)
+#: C/button.py.page:55(item/p) C/dialog.py.page:51(item/p)
+#: C/image.py.page:103(item/p) C/label.py.page:90(item/p)
 #: C/linkbutton.py.page:46(item/p) C/messagedialog.py.page:60(item/p)
-#: C/radiobutton.py.page:51(item/p) C/separator.py.page:37(item/p)
-#: C/window.py.page:63(item/p)
+#: C/radiobutton.py.page:48(item/p) C/separator.py.page:38(item/p)
+#: C/window.py.page:64(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -4096,7 +4181,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/buttonbox.py.page:23(media)
+#: C/buttonbox.py.page:24(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/buttonbox_calculator.png'; "
@@ -4116,20 +4201,20 @@ msgctxt "text"
 msgid "ButtonBox (Python)"
 msgstr "ButtonBox (Python)"
 
-#: C/buttonbox.py.page:18(info/desc)
+#: C/buttonbox.py.page:19(info/desc)
 msgid "A container for arranging buttons"
 msgstr ""
 
-#: C/buttonbox.py.page:21(page/title)
+#: C/buttonbox.py.page:22(page/title) C/tutorial.py.page:91(steps/title)
 msgid "ButtonBox"
 msgstr "ButtonBox"
 
-#: C/buttonbox.py.page:24(page/p)
+#: C/buttonbox.py.page:25(page/p)
 msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
 msgstr ""
 "Unha calculadora - os botóns están dispostos en ButtonBoxes horizontais."
 
-#: C/buttonbox.py.page:30(section/code)
+#: C/buttonbox.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -4276,11 +4361,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/buttonbox.py.page:34(section/title)
+#: C/buttonbox.py.page:35(section/title)
 msgid "Uselful methods for a ButtonBox widget"
 msgstr "Métodos útiles para o widget ButtonBox"
 
-#: C/buttonbox.py.page:36(item/p)
+#: C/buttonbox.py.page:37(item/p)
 msgid ""
 "The layout of the ButtonBox are set with <code>set_layout(layout)</code>, "
 "where <code>layout</code> can be <code>Gtk.ButtonBoxStyle.SPREAD</code> "
@@ -4291,7 +4376,7 @@ msgid ""
 "<code>Gtk.ButtonBoxStyle.CENTER</code> (buttons are centered in the box)."
 msgstr ""
 
-#: C/buttonbox.py.page:37(item/p)
+#: C/buttonbox.py.page:38(item/p)
 msgid ""
 "<code>set_child_secondary(button, is_secondary)</code> sets whether "
 "<code>button</code> should appear in a secondary group of children. A "
@@ -4304,20 +4389,20 @@ msgid ""
 "immediately next to the main children."
 msgstr ""
 
-#: C/buttonbox.py.page:38(item/p)
+#: C/buttonbox.py.page:39(item/p)
 msgid ""
 "<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets "
 "whether the child is exempted from homogeous sizing. Default value is "
 "<code>False</code>."
 msgstr ""
 
-#: C/buttonbox.py.page:39(item/p)
+#: C/buttonbox.py.page:40(item/p)
 msgid ""
 "<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
 "buttons of the box."
 msgstr ""
 
-#: C/buttonbox.py.page:47(item/p)
+#: C/buttonbox.py.page:48(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -4329,7 +4414,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/buttonbox.py.page:48(item/p)
+#: C/buttonbox.py.page:49(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -4341,7 +4426,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/buttonbox.py.page:50(item/p) C/entry.c.page:33(item/p)
+#: C/buttonbox.py.page:51(item/p) C/entry.c.page:33(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -4353,7 +4438,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/buttonbox.py.page:51(item/p) C/grid.c.page:35(item/p)
+#: C/buttonbox.py.page:52(item/p) C/grid.c.page:35(item/p)
 #: C/radiobutton.c.page:36(item/p) C/spinbutton.c.page:39(item/p)
 #: C/statusbar.c.page:39(item/p) C/switch.c.page:36(item/p)
 #: C/togglebutton.c.page:39(item/p)
@@ -4376,9 +4461,25 @@ msgid "C"
 msgstr "C"
 
 #: C/c.page:15(page/title)
-msgid "Tutorials, code samples, and plaform demos in C"
+#, fuzzy
+#| msgid "Tutorials, code samples, and plaform demos in C"
+msgid "Tutorials, code samples and plaform demos in C"
 msgstr "Titoriais, exemplos de código e demostracións da plataforma en C"
 
+#: C/c.page:20(section/title) C/vala.page:25(section/title)
+#, fuzzy
+#| msgid "Code sample with Button"
+msgid "Code samples and tutorial"
+msgstr "Exemplo de código con Button"
+
+#: C/c.page:27(section/title) C/cpp.page:20(section/title)
+#: C/js.page:35(section/title) C/py.page:38(section/title)
+#: C/vala.page:29(section/title)
+#, fuzzy
+#| msgid "Lines 19‒23: Start the application."
+msgid "Examples of applications"
+msgstr "Liñas 19-23: Iniciar o aplicativo."
+
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
@@ -4894,23 +4995,19 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/checkbutton.py.page:32(section/p)
-msgid ""
-"We could also create the CheckButton with <code>button = Gtk.CheckButton."
-"new_with_label(\"Show Title\")</code>."
-msgstr ""
-
-#: C/checkbutton.py.page:37(section/title)
+#: C/checkbutton.py.page:35(section/title)
 msgid "Useful methods for a CheckButton widget"
 msgstr "Métodos útiles para o widget CheckButton"
 
-#: C/checkbutton.py.page:38(section/p) C/switch.py.page:41(section/p)
+#: C/checkbutton.py.page:36(section/p)
 msgid ""
-"For a discussion on signals and callback functions, see <link xref=\"signals-"
-"callbacks.py\">this page</link>."
+"In line 17 the <code>\"toggled\"</code> signal is connected to the callback "
+"function <code>toggled_cb()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
 msgstr ""
 
-#: C/checkbutton.py.page:48(item/p) C/togglebutton.py.page:45(item/p)
+#: C/checkbutton.py.page:46(item/p) C/togglebutton.py.page:43(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -4922,7 +5019,7 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/checkbutton.py.page:49(item/p)
+#: C/checkbutton.py.page:47(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCheckButton.html";
 "\">GtkCheckButton</link>"
@@ -5016,7 +5113,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/colorbutton.py.page:21(media) C/colorbutton.vala.page:23(media)
+#: C/colorbutton.py.page:22(media) C/colorbutton.vala.page:23(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/colorbutton.png'; md5=904539d26fe367bf99f9a0961cfc9a03"
@@ -5032,21 +5129,21 @@ msgctxt "text"
 msgid "ColorButton (Python)"
 msgstr "ColorButton (Python)"
 
-#: C/colorbutton.py.page:17(info/desc) C/colorbutton.vala.page:19(info/desc)
+#: C/colorbutton.py.page:18(info/desc) C/colorbutton.vala.page:19(info/desc)
 msgid "A button to launch a color selection dialog"
 msgstr "Un botón para iniciar un diálogo de selección de cor"
 
-#: C/colorbutton.py.page:20(page/title) C/colorbutton.vala.page:22(page/title)
+#: C/colorbutton.py.page:21(page/title) C/colorbutton.vala.page:22(page/title)
 msgid "ColorButton"
 msgstr "ColorButton"
 
-#: C/colorbutton.py.page:22(page/p)
+#: C/colorbutton.py.page:23(page/p)
 msgid ""
 "This ColorButton launches a color selection dialog and prints in the "
 "terminal the RGB values of the color selected."
 msgstr ""
 
-#: C/colorbutton.py.page:28(section/code)
+#: C/colorbutton.py.page:29(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -5103,18 +5200,26 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/colorbutton.py.page:32(section/title)
+#: C/colorbutton.py.page:33(section/title)
 msgid "Useful methods for a ColorButton widget"
 msgstr ""
 
-#: C/colorbutton.py.page:33(section/p)
+#: C/colorbutton.py.page:34(section/p)
 msgid ""
 "<code>set_color(color)</code>, where the <code>color</code> is defined as in "
 "the example, sets the color of the ColorButton, which by default is black. "
 "<code>get_color()</code> returns the color."
 msgstr ""
 
-#: C/colorbutton.py.page:40(item/p)
+#: C/colorbutton.py.page:35(section/p)
+msgid ""
+"In line 23 the <code>\"color-set\"</code> signal is connected to the "
+"callback function <code>on_color_chosen()</code> using <code><var>widget</"
+"var>.connect(<var>signal</var>, <var>callback function</var>)</code>. See "
+"<link xref=\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/colorbutton.py.page:42(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -5126,13 +5231,13 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/colorbutton.py.page:41(item/p)
+#: C/colorbutton.py.page:43(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html";
 "\">GtkColorChooser</link>"
 msgstr ""
 
-#: C/colorbutton.py.page:42(item/p)
+#: C/colorbutton.py.page:44(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html";
 "\">RGBA Colors</link>"
@@ -5229,7 +5334,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/comboboxtext.js.page:23(media) C/combobox.py.page:21(media)
+#: C/comboboxtext.js.page:23(media) C/combobox.py.page:23(media)
 #: C/combobox.vala.page:21(media)
 #, fuzzy
 #| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
@@ -5676,9 +5781,7 @@ msgstr "JavaScript"
 msgid "A customizable drop-down menu"
 msgstr ""
 
-#: C/combobox.js.page:24(page/title) C/combobox.py.page:20(page/title)
-#: C/combobox.vala.page:20(page/title)
-#: C/combobox_multicolumn.py.page:21(page/title)
+#: C/combobox.js.page:24(page/title) C/combobox.vala.page:20(page/title)
 msgid "ComboBox"
 msgstr ""
 
@@ -6237,16 +6340,22 @@ msgctxt "text"
 msgid "ComboBox (Python)"
 msgstr "ColorButton (Python)"
 
-#: C/combobox.py.page:17(info/desc) C/combobox.vala.page:17(info/desc)
+#: C/combobox.py.page:19(info/desc) C/combobox.vala.page:17(info/desc)
 #: C/combobox_multicolumn.py.page:18(info/desc)
 msgid "A widget used to choose from a list of items"
 msgstr ""
 
-#: C/combobox.py.page:22(page/p) C/combobox_multicolumn.py.page:23(page/p)
+#: C/combobox.py.page:22(page/title)
+#, fuzzy
+#| msgid "ColorButton (Python)"
+msgid "ComboBox (one column)"
+msgstr "ColorButton (Python)"
+
+#: C/combobox.py.page:24(page/p) C/combobox_multicolumn.py.page:23(page/p)
 msgid "This ComboBox prints to the terminal your selection when you change it."
 msgstr ""
 
-#: C/combobox.py.page:28(section/code)
+#: C/combobox.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -6311,21 +6420,32 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/combobox.py.page:32(section/title)
+#: C/combobox.py.page:34(section/title)
 #: C/combobox_multicolumn.py.page:34(section/title)
 msgid "Useful methods for a ComboBox widget"
 msgstr ""
 
-#: C/combobox.py.page:33(section/p)
+#: C/combobox.py.page:35(section/p)
 #: C/combobox_multicolumn.py.page:35(section/p)
 msgid ""
 "The ComboBox widget is designed around a <em>Model/View/Controller</em> "
-"design. For more information, and for a list of useful methods for ComboBox "
-"and TreeModel, see <link xref=\"model-view-controller.py\">here</link>."
+"design: the <em>Model</em> stores the data; the <em>View</em> gets change "
+"notifications and displays the content of the model; the <em>Controller</"
+"em>, finally, changes the state of the model and notifies the view of these "
+"changes. For more information and for a list of useful methods for ComboBox "
+"see <link xref=\"model-view-controller.py\"/>."
 msgstr ""
 
-#: C/combobox.py.page:40(item/p) C/combobox_multicolumn.py.page:43(item/p)
-#: C/model-view-controller.py.page:188(item/p)
+#: C/combobox.py.page:36(section/p)
+msgid ""
+"In line 35 the <code>\"changed\"</code> signal is connected to the callback "
+"function <code>on_changed()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/combobox.py.page:44(item/p) C/combobox_multicolumn.py.page:43(item/p)
+#: C/model-view-controller.py.page:189(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -6337,9 +6457,9 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/combobox.py.page:41(item/p) C/combobox_multicolumn.py.page:44(item/p)
-#: C/treeview_advanced_liststore.py.page:47(item/p)
-#: C/treeview_simple_liststore.py.page:45(item/p)
+#: C/combobox.py.page:45(item/p) C/combobox_multicolumn.py.page:44(item/p)
+#: C/treeview_advanced_liststore.py.page:45(item/p)
+#: C/treeview_simple_liststore.py.page:46(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -6351,25 +6471,25 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/combobox.py.page:42(item/p) C/combobox_multicolumn.py.page:45(item/p)
-#: C/treeview_advanced_liststore.py.page:48(item/p)
-#: C/treeview_cellrenderertoggle.py.page:44(item/p)
-#: C/treeview_simple_liststore.py.page:46(item/p)
-#: C/treeview_treestore.py.page:44(item/p)
+#: C/combobox.py.page:46(item/p) C/combobox_multicolumn.py.page:45(item/p)
+#: C/treeview_advanced_liststore.py.page:46(item/p)
+#: C/treeview_cellrenderertoggle.py.page:46(item/p)
+#: C/treeview_simple_liststore.py.page:47(item/p)
+#: C/treeview_treestore.py.page:46(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.";
 "html\">GtkCellRendererText</link>"
 msgstr ""
 
-#: C/combobox.py.page:43(item/p)
+#: C/combobox.py.page:47(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html";
 "\">GtkCellLayout</link>"
 msgstr ""
 
-#: C/combobox.py.page:44(item/p) C/combobox_multicolumn.py.page:48(item/p)
-#: C/treeview_advanced_liststore.py.page:50(item/p)
-#: C/treeview_simple_liststore.py.page:48(item/p)
+#: C/combobox.py.page:48(item/p) C/combobox_multicolumn.py.page:48(item/p)
+#: C/treeview_advanced_liststore.py.page:48(item/p)
+#: C/treeview_simple_liststore.py.page:49(item/p)
 msgid ""
 "<link href=\"http://git.gnome.org/browse/pygobject/tree/gi/overrides/Gtk.py";
 "\">pygobject - Python bindings for GObject Introspection</link>"
@@ -6519,6 +6639,12 @@ msgstr ""
 "O método <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
 "set_default_size.html\">set_default_size</link>"
 
+#: C/combobox_multicolumn.py.page:21(page/title)
+#, fuzzy
+#| msgid "ColorButton (Python)"
+msgid "ComboBox (two columns)"
+msgstr "ColorButton (Python)"
+
 #: C/combobox_multicolumn.py.page:29(section/code)
 #, no-wrap
 msgid ""
@@ -6595,13 +6721,21 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
+#: C/combobox_multicolumn.py.page:36(section/p)
+msgid ""
+"In line 45 the <code>\"changed\"</code> signal is connected to the callback "
+"function <code>on_changed()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
 #: C/combobox_multicolumn.py.page:46(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.";
 "html\">GtkCellRendererPixbuf</link>"
 msgstr ""
 
-#: C/combobox_multicolumn.py.page:47(item/p) C/toolbar.py.page:55(item/p)
+#: C/combobox_multicolumn.py.page:47(item/p) C/toolbar.py.page:57(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
 "\">Stock Items</link>"
@@ -6615,8 +6749,10 @@ msgid "C++"
 msgstr "C+"
 
 #: C/cpp.page:15(page/title)
-msgid "Platform demos in C++"
-msgstr ""
+#, fuzzy
+#| msgid "Tutorials, code samples, and plaform demos in C"
+msgid "Code samples and platform demos in C++"
+msgstr "Titoriais, exemplos de código e demostracións da plataforma en C"
 
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
@@ -6638,7 +6774,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/dialog.c.page:24(media) C/dialog.js.page:21(media)
-#: C/dialog.py.page:22(media) C/dialog.vala.page:21(media)
+#: C/dialog.py.page:23(media) C/dialog.vala.page:21(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
@@ -6654,12 +6790,12 @@ msgid "Dialog (C)"
 msgstr "AboutDialog (C)"
 
 #: C/dialog.c.page:19(info/desc) C/dialog.js.page:17(info/desc)
-#: C/dialog.py.page:18(info/desc) C/dialog.vala.page:17(info/desc)
+#: C/dialog.py.page:19(info/desc) C/dialog.vala.page:17(info/desc)
 msgid "A popup window"
 msgstr ""
 
 #: C/dialog.c.page:22(page/title) C/dialog.js.page:20(page/title)
-#: C/dialog.py.page:21(page/title) C/dialog.vala.page:20(page/title)
+#: C/dialog.py.page:22(page/title) C/dialog.vala.page:20(page/title)
 msgid "Dialog"
 msgstr ""
 
@@ -6923,11 +7059,11 @@ msgctxt "text"
 msgid "Dialog (Python)"
 msgstr "AboutDialog (Python)"
 
-#: C/dialog.py.page:23(page/p)
+#: C/dialog.py.page:24(page/p)
 msgid "A dialog with the response signal connected to a callback function."
 msgstr ""
 
-#: C/dialog.py.page:30(section/code)
+#: C/dialog.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -6990,18 +7126,26 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/dialog.py.page:35(section/title)
+#: C/dialog.py.page:36(section/title)
 msgid "Useful methods for a Dialog widget"
 msgstr ""
 
-#: C/dialog.py.page:38(item/p)
+#: C/dialog.py.page:37(section/p)
+msgid ""
+"In line 16 the signal <code>\"clicked\"</code> is connected to the callback "
+"function <code>on_button_click()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/dialog.py.page:39(item/p)
 msgid ""
 "Instead of <code>set_modal(True)</code> we could have <code>set_modal(False)"
 "</code> followed by <code>set_destroy_with_parent(True)</code> that would "
 "destroy the dialog window if the main window is closed."
 msgstr ""
 
-#: C/dialog.py.page:39(item/p)
+#: C/dialog.py.page:40(item/p)
 msgid ""
 "<code>add_button(button_text=\"The Answer\", response_id=42)</code>, where "
 "<code>42</code> is any integer, is an alternative to <code>add_button"
@@ -7011,7 +7155,7 @@ msgid ""
 "-6,..., -11</code>."
 msgstr ""
 
-#: C/dialog.py.page:49(item/p) C/messagedialog.py.page:59(item/p)
+#: C/dialog.py.page:50(item/p) C/messagedialog.py.page:59(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -7205,7 +7349,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/entry.c.page:22(media) C/entry.js.page:21(media)
-#: C/entry.py.page:26(media) C/entry.vala.page:21(media)
+#: C/entry.py.page:28(media) C/entry.vala.page:21(media)
 #, fuzzy
 #| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
 msgctxt "_"
@@ -7219,13 +7363,13 @@ msgctxt "text"
 msgid "Entry (C)"
 msgstr "Python"
 
-#: C/entry.c.page:17(info/desc) C/entry.py.page:22(info/desc)
+#: C/entry.c.page:17(info/desc) C/entry.py.page:24(info/desc)
 #: C/entry.vala.page:17(info/desc)
 msgid "A single line text entry field"
 msgstr ""
 
 #: C/entry.c.page:20(page/title) C/entry.js.page:20(page/title)
-#: C/entry.py.page:25(page/title) C/entry.vala.page:20(page/title)
+#: C/entry.py.page:27(page/title) C/entry.vala.page:20(page/title)
 msgid "Entry"
 msgstr ""
 
@@ -7423,20 +7567,20 @@ msgctxt "text"
 msgid "Entry (Python)"
 msgstr "Python"
 
-#: C/entry.py.page:18(credit/name) C/label.py.page:18(credit/name)
-#: C/model-view-controller.py.page:14(credit/name)
-#: C/properties.py.page:14(credit/name)
-#: C/signals-callbacks.py.page:14(credit/name)
-#: C/strings.py.page:14(credit/name) C/textview.py.page:14(credit/name)
-#: C/toolbar_builder.py.page:26(credit/name)
+#: C/entry.py.page:20(credit/name) C/label.py.page:20(credit/name)
+#: C/model-view-controller.py.page:15(credit/name)
+#: C/properties.py.page:15(credit/name)
+#: C/signals-callbacks.py.page:15(credit/name)
+#: C/strings.py.page:15(credit/name) C/textview.py.page:15(credit/name)
+#: C/toolbar_builder.py.page:27(credit/name)
 msgid "Sebastian Pölsterl"
 msgstr "Sebastian Pölsterl"
 
-#: C/entry.py.page:27(page/p)
+#: C/entry.py.page:29(page/p)
 msgid "This application greets you in the terminal with the name you provide."
 msgstr ""
 
-#: C/entry.py.page:33(section/code)
+#: C/entry.py.page:35(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -7480,52 +7624,54 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/entry.py.page:37(section/title)
+#: C/entry.py.page:39(section/title)
 msgid "Useful methods for an Entry widget"
 msgstr ""
 
-#: C/entry.py.page:38(section/p)
+#: C/entry.py.page:40(section/p)
 msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. Some of the signals that a Gtk."
-"Entry widget can emit are: <code>\"activate\"</code> (emitted when the user "
-"activates the Entry key); <code>\"backspace\"</code> (emitted when the user "
-"activates the Backspace or Shift-Backspace keys); <code>\"copy-clipboard\"</"
-"code> (Ctrl-c and Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v and "
-"Shift-Insert); <code>\"delete-from-cursor\"</code> (Delete, for deleting a "
-"character; Ctrl-Delete, for deleting a word); <code>\"icon-press\"</code> "
-"(emitted when the user clicks an activable icon); <code>\"icon-release\"</"
-"code> (emitted on the button release from a mouse click over an activable "
-"icon); <code>\"insert-at-cursor\"</code> (emitted when the user initiates "
-"the insertion of a fixed string at the cursor); <code>\"move-cursor\"</code> "
-"(emitted when the user initiates a cursor movement); <code>\"populate-popup"
-"\"</code> (emitted before showing the context menu of the entry; it can be "
-"used to add items to it)."
+"In line 14 the signal <code>\"activate\"</code> is connected to the callback "
+"function <code>cb_activate()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation. Some of the "
+"signals that a Gtk.Entry widget can emit are: <code>\"activate\"</code> "
+"(emitted when the user activates the Entry key); <code>\"backspace\"</code> "
+"(emitted when the user activates the Backspace or Shift-Backspace keys); "
+"<code>\"copy-clipboard\"</code> (Ctrl-c and Ctrl-Insert); <code>\"paste-"
+"clipboard\"</code> (Ctrl-v and Shift-Insert); <code>\"delete-from-cursor\"</"
+"code> (Delete, for deleting a character; Ctrl-Delete, for deleting a word); "
+"<code>\"icon-press\"</code> (emitted when the user clicks an activable "
+"icon); <code>\"icon-release\"</code> (emitted on the button release from a "
+"mouse click over an activable icon); <code>\"insert-at-cursor\"</code> "
+"(emitted when the user initiates the insertion of a fixed string at the "
+"cursor); <code>\"move-cursor\"</code> (emitted when the user initiates a "
+"cursor movement); <code>\"populate-popup\"</code> (emitted before showing "
+"the context menu of the entry; it can be used to add items to it)."
 msgstr ""
 
-#: C/entry.py.page:40(item/p)
+#: C/entry.py.page:42(item/p)
 msgid ""
 "<code>get_buffer()</code> and <code>set_buffer(buffer)</code>, where "
 "<code>buffer</code> is a Gtk.EntryBuffer object, can be used to get and set "
 "the buffer for the entry."
 msgstr ""
 
-#: C/entry.py.page:41(item/p)
+#: C/entry.py.page:43(item/p)
 msgid ""
 "<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
 "to get and set the content for the entry."
 msgstr ""
 
-#: C/entry.py.page:42(item/p)
+#: C/entry.py.page:44(item/p)
 msgid "<code>get_text_length()</code> is self-explanatory."
 msgstr ""
 
-#: C/entry.py.page:43(item/p)
+#: C/entry.py.page:45(item/p)
 msgid ""
 "<code>get_text_area()</code> gets the area where the entry's text is drawn."
 msgstr ""
 
-#: C/entry.py.page:44(item/p)
+#: C/entry.py.page:46(item/p)
 msgid ""
 "If we set <code>set_visibility(False)</code> the characters in the entry are "
 "displayed as the invisible char. This is the best available in the current "
@@ -7534,14 +7680,14 @@ msgid ""
 "<code>unset_invisbile_char()</code>."
 msgstr ""
 
-#: C/entry.py.page:45(item/p)
+#: C/entry.py.page:47(item/p)
 msgid ""
 "<code>set_max_length(int)</code>, where <code>int</code> is an integer, "
 "truncates every entry longer than <code>int</code> to have the desired "
 "maximum length."
 msgstr ""
 
-#: C/entry.py.page:46(item/p)
+#: C/entry.py.page:48(item/p)
 msgid ""
 "By default, if you press the Entry key the Gtk.Entry emits the signal <code>"
 "\"activate\"</code>. If you would like to activate the default widget for "
@@ -7549,29 +7695,29 @@ msgid ""
 "use <code>set_activates_default(True)</code>."
 msgstr ""
 
-#: C/entry.py.page:47(item/p)
+#: C/entry.py.page:49(item/p)
 msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
 msgstr ""
 
-#: C/entry.py.page:48(item/p)
+#: C/entry.py.page:50(item/p)
 msgid ""
 "<code>set_placeholder_text(\"some text\")</code> sets the text to be "
 "displayed in the entry when it is empty and unfocused."
 msgstr ""
 
-#: C/entry.py.page:49(item/p)
+#: C/entry.py.page:51(item/p)
 msgid ""
 "<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
 "code> are self-explanatory."
 msgstr ""
 
-#: C/entry.py.page:50(item/p)
+#: C/entry.py.page:52(item/p)
 msgid ""
 "If we have <code>set_editable(False)</code> the user cannot edit the text in "
 "the widget."
 msgstr ""
 
-#: C/entry.py.page:51(item/p)
+#: C/entry.py.page:53(item/p)
 msgid ""
 "<code>set_completion(completion)</code>, where <code>completion</code> is a "
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntryCompletion.html";
@@ -7579,7 +7725,7 @@ msgid ""
 "if <code>completion</code> is <code>None</code>."
 msgstr ""
 
-#: C/entry.py.page:52(item/p)
+#: C/entry.py.page:54(item/p)
 msgid ""
 "An Entry widget can display progress or activity information behind the "
 "text. We use <code>set_progress_fraction(fraction)</code>, where "
@@ -7595,7 +7741,7 @@ msgid ""
 "<code>set_progress_pulse_step()</code>)."
 msgstr ""
 
-#: C/entry.py.page:53(item/p)
+#: C/entry.py.page:55(item/p)
 msgid ""
 "An Entry widget can also show icons. These icons can be activatable by "
 "clicking, can be set up as drag source and can have tooltips. To add an "
@@ -7610,7 +7756,7 @@ msgid ""
 "Pango markup language\")</code>."
 msgstr ""
 
-#: C/entry.py.page:61(item/p)
+#: C/entry.py.page:63(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -7701,7 +7847,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/filechooserdialog.py.page:24(media)
+#: C/filechooserdialog.py.page:25(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
@@ -7716,7 +7862,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/filechooserdialog.py.page:26(media)
+#: C/filechooserdialog.py.page:27(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
@@ -7734,72 +7880,74 @@ msgctxt "text"
 msgid "FileChooserDialog (Python)"
 msgstr "MessageDialog"
 
-#: C/filechooserdialog.py.page:20(info/desc)
+#: C/filechooserdialog.py.page:21(info/desc)
 msgid "A dialog suitable for \"Open\" and \"Save\" commands"
 msgstr ""
 
-#: C/filechooserdialog.py.page:23(page/title)
+#: C/filechooserdialog.py.page:24(page/title)
 #: C/filechooserdialog.vala.page:23(page/title)
 #, fuzzy
 #| msgid "MessageDialog"
 msgid "FileChooserDialog"
 msgstr "MessageDialog"
 
-#: C/filechooserdialog.py.page:25(page/p)
+#: C/filechooserdialog.py.page:26(page/p)
 msgid ""
 "This FileChooserDialog saves a text document, which can be opened or written "
 "from scratch in a TextView (see below)."
 msgstr ""
 
-#: C/filechooserdialog.py.page:27(page/p)
+#: C/filechooserdialog.py.page:28(page/p)
 msgid "It is also possible to call a FileChooserDialog to open a new document."
 msgstr ""
 
-#: C/filechooserdialog.py.page:32(section/title)
+#: C/filechooserdialog.py.page:33(section/title)
 msgid "Steps to recreate the example"
 msgstr ""
 
-#: C/filechooserdialog.py.page:34(item/p)
+#: C/filechooserdialog.py.page:35(item/p)
 msgid ""
 "Create a file .ui to describe an app-menu with items \"New\", \"Open\", "
 "\"Save\", \"Save as\", and \"Quit\". This can be done with Glade or in a "
 "text editor. See <link xref=\"#xml\"/>"
 msgstr ""
 
-#: C/filechooserdialog.py.page:35(item/p)
+#: C/filechooserdialog.py.page:36(item/p)
 msgid ""
 "Create a Python program for a Gtk.TextView with a Gtk.Buffer <code>self."
 "buffer</code>, and a <code>self.file</code> which will be a Gio.File and we "
 "set initially as <code>None</code>."
 msgstr ""
 
-#: C/filechooserdialog.py.page:36(item/p)
+#: C/filechooserdialog.py.page:37(item/p)
 msgid ""
 "In this program, create also the actions corresponding to the items in the "
 "app-menu, connect them to callback functions, and import the menu in the "
 "<code>do_startup()</code> method with a Gtk.Builder."
 msgstr ""
 
-#: C/filechooserdialog.py.page:37(item/p)
+#: C/filechooserdialog.py.page:38(item/p)
 msgid ""
 "\"New\" and \"Quit\" actions and callback functions are quite "
-"straightforward, see <link xref=\"#code\"/>."
+"straightforward, see <link xref=\"#code\"/>. See <link xref=\"signals-"
+"callbacks.py\"/> for a more detailed explanation of signals and callback "
+"functions."
 msgstr ""
 
-#: C/filechooserdialog.py.page:38(item/p)
+#: C/filechooserdialog.py.page:39(item/p)
 msgid ""
 "\"Open\" callback should create and open a Gtk.FileChooserDialog for \"Open"
 "\", connected with another callback function for each of the two \"Open\" "
 "and \"Cancel\" buttons of the FileChooserDialog."
 msgstr ""
 
-#: C/filechooserdialog.py.page:39(item/p)
+#: C/filechooserdialog.py.page:40(item/p)
 msgid ""
 "\"Save as\" works basically as \"Open\", but the callback function of the "
 "\"Save\" button depends on a more complex method <code>save_to_file()</code>."
 msgstr ""
 
-#: C/filechooserdialog.py.page:40(item/p)
+#: C/filechooserdialog.py.page:41(item/p)
 msgid ""
 "\"Save\" can be reduced to the case where the file is <code>None</code>, "
 "that is the case where <code>self.file</code> is a new file, which in turn "
@@ -7807,17 +7955,17 @@ msgid ""
 "code>, which in turn is reduced to <code>save_to_file()</code>."
 msgstr ""
 
-#: C/filechooserdialog.py.page:41(item/p)
+#: C/filechooserdialog.py.page:42(item/p)
 msgid ""
 "Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
 "lines 146 - 175."
 msgstr ""
 
-#: C/filechooserdialog.py.page:46(section/title)
+#: C/filechooserdialog.py.page:47(section/title)
 msgid "XML file which creates the app-menu"
 msgstr ""
 
-#: C/filechooserdialog.py.page:47(section/code)
+#: C/filechooserdialog.py.page:48(section/code)
 #: C/filechooserdialog.vala.page:29(section/code)
 #, no-wrap
 msgid ""
@@ -7854,7 +8002,7 @@ msgid ""
 "&lt;/interface&gt;\n"
 msgstr ""
 
-#: C/filechooserdialog.py.page:52(section/code)
+#: C/filechooserdialog.py.page:53(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -8068,11 +8216,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/filechooserdialog.py.page:56(section/title)
+#: C/filechooserdialog.py.page:57(section/title)
 msgid "Useful methods for a FileChooserDialog"
 msgstr ""
 
-#: C/filechooserdialog.py.page:57(section/p)
+#: C/filechooserdialog.py.page:58(section/p)
 msgid ""
 "Note that the action of the FileChooserDialog can be one of the following: "
 "<code>Gtk.FileChooserAction.OPEN</code> (the file chooser will only let the "
@@ -8084,24 +8232,24 @@ msgid ""
 "name an existing or new folder)."
 msgstr ""
 
-#: C/filechooserdialog.py.page:58(section/p)
+#: C/filechooserdialog.py.page:59(section/p)
 msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
 msgstr ""
 
-#: C/filechooserdialog.py.page:60(item/p)
+#: C/filechooserdialog.py.page:61(item/p)
 msgid ""
 "<code>set_show_hidden(True)</code> is used to display hidden files and "
 "folders."
 msgstr ""
 
-#: C/filechooserdialog.py.page:61(item/p)
+#: C/filechooserdialog.py.page:62(item/p)
 msgid ""
 "<code>set_select_multiple(True)</code> sets that multiple files can be "
 "selected. This is only relevant if the mode is <code>Gtk.FileChooserAction."
 "OPEN</code> or <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
 msgstr ""
 
-#: C/filechooserdialog.py.page:62(item/p)
+#: C/filechooserdialog.py.page:63(item/p)
 msgid ""
 "In a \"Save as\" dialog, <code>set_current_name(current_name)</code> sets "
 "<code>current_name</code> in the file selector, as if entered by the user; "
@@ -8109,7 +8257,7 @@ msgid ""
 "method should not be used except in a \"Save as\" dialog."
 msgstr ""
 
-#: C/filechooserdialog.py.page:63(item/p)
+#: C/filechooserdialog.py.page:64(item/p)
 msgid ""
 "The default current folder is \"recent items\". To set another folder use "
 "<code>set_current_folder_uri(uri)</code>; but note you should use this "
@@ -8117,7 +8265,7 @@ msgid ""
 "are doing a \"Save as\" command and you already have a file saved somewhere."
 msgstr ""
 
-#: C/filechooserdialog.py.page:71(item/p)
+#: C/filechooserdialog.py.page:72(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -8129,7 +8277,7 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/filechooserdialog.py.page:72(item/p)
+#: C/filechooserdialog.py.page:73(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -8141,8 +8289,9 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/filechooserdialog.py.page:73(item/p) C/image.c.page:33(item/p)
-#: C/label.c.page:37(item/p)
+#: C/filechooserdialog.py.page:74(item/p) C/image.c.page:33(item/p)
+#: C/label.c.page:37(item/p) C/menubar.c.page:37(item/p)
+#: C/scrolledwindow.c.page:34(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -8154,7 +8303,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/filechooserdialog.py.page:74(item/p) C/textview.c.page:38(item/p)
+#: C/filechooserdialog.py.page:75(item/p) C/textview.c.page:38(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -8166,13 +8315,14 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/filechooserdialog.py.page:75(item/p) C/textview.c.page:37(item/p)
+#: C/filechooserdialog.py.page:76(item/p) C/textview.c.page:37(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html";
 "\">GtkTextBuffer</link>"
 msgstr ""
 
-#: C/filechooserdialog.py.page:76(item/p) C/textview.c.page:39(item/p)
+#: C/filechooserdialog.py.page:77(item/p) C/scrolledwindow.c.page:35(item/p)
+#: C/textview.c.page:39(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -8184,12 +8334,12 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/filechooserdialog.py.page:77(item/p)
+#: C/filechooserdialog.py.page:78(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
 msgstr ""
 
-#: C/filechooserdialog.py.page:79(item/p)
+#: C/filechooserdialog.py.page:80(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -8496,7 +8646,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/fontchooserwidget.py.page:23(media)
+#: C/fontchooserwidget.py.page:24(media)
 #, fuzzy
 #| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 msgctxt "_"
@@ -8512,19 +8662,19 @@ msgctxt "text"
 msgid "FontChooserWidget (Python)"
 msgstr "Python"
 
-#: C/fontchooserwidget.py.page:18(info/desc)
+#: C/fontchooserwidget.py.page:19(info/desc)
 msgid "A widget to choose a font"
 msgstr ""
 
-#: C/fontchooserwidget.py.page:21(page/title)
+#: C/fontchooserwidget.py.page:22(page/title)
 msgid "FontChooserWidget"
 msgstr ""
 
-#: C/fontchooserwidget.py.page:24(page/p)
+#: C/fontchooserwidget.py.page:25(page/p)
 msgid "A FontChooserWidget with a callback function."
 msgstr ""
 
-#: C/fontchooserwidget.py.page:30(section/code)
+#: C/fontchooserwidget.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -8568,30 +8718,39 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/fontchooserwidget.py.page:33(section/title)
+#: C/fontchooserwidget.py.page:34(section/title)
 msgid "Useful methods for a FontChooserWidget"
 msgstr ""
 
-#: C/fontchooserwidget.py.page:36(item/p)
+#: C/fontchooserwidget.py.page:35(section/p)
+msgid ""
+"In line 16 the <code>\"notify::font\"</code> signal from the widget is "
+"connected to the callback function <code>font_cb()</code> using "
+"<code><var>widget</var>.connect(<var>signal</var>, <var>callback function</"
+"var>)</code>. See <link xref=\"signals-callbacks.py\"/> for a more detailed "
+"explanation."
+msgstr ""
+
+#: C/fontchooserwidget.py.page:37(item/p)
 msgid ""
 "To set the font which is initially selected, use <code>set_font(font)</code> "
 "(where <code>font</code> is the font name) or <code>set_font_desc(font)</"
 "code> (where <code>font</code> is the PangoFontDescription)."
 msgstr ""
 
-#: C/fontchooserwidget.py.page:37(item/p)
+#: C/fontchooserwidget.py.page:38(item/p)
 msgid ""
 "To get the selected font use <code>get_font()</code> or <code>get_font_desc()"
 "</code>."
 msgstr ""
 
-#: C/fontchooserwidget.py.page:38(item/p)
+#: C/fontchooserwidget.py.page:39(item/p)
 msgid ""
 "To change the text which is shown in the preview area, use "
 "<code>set_preview_text()</code>."
 msgstr ""
 
-#: C/fontchooserwidget.py.page:45(item/p)
+#: C/fontchooserwidget.py.page:46(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -8780,12 +8939,12 @@ msgid "A simple implementation of GMenuModel"
 msgstr ""
 
 #: C/gmenu.c.page:20(page/title) C/gmenu.js.page:20(page/title)
-#: C/gmenu.py.page:26(page/title) C/gmenu.vala.page:26(page/title)
+#: C/gmenu.py.page:28(page/title) C/gmenu.vala.page:26(page/title)
 msgid "GMenu"
 msgstr ""
 
 #: C/gmenu.c.page:22(page/p) C/gmenu.js.page:22(page/p)
-#: C/gmenu.py.page:28(page/p) C/gmenu.vala.page:34(page/p)
+#: C/gmenu.py.page:30(page/p) C/gmenu.vala.page:34(page/p)
 msgid "A GtkApplication with a simple GMenu and SimpleActions"
 msgstr ""
 
@@ -8981,7 +9140,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/gmenu.py.page:27(media)
+#: C/gmenu.py.page:29(media)
 #, fuzzy
 #| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
 msgctxt "_"
@@ -8996,11 +9155,11 @@ msgctxt "text"
 msgid "GMenu (Python)"
 msgstr "Python"
 
-#: C/gmenu.py.page:23(info/desc)
+#: C/gmenu.py.page:25(info/desc)
 msgid "A simple implementation of GMenu"
 msgstr ""
 
-#: C/gmenu.py.page:35(section/code)
+#: C/gmenu.py.page:36(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -9068,28 +9227,37 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/gmenu.py.page:40(section/title)
+#: C/gmenu.py.page:41(section/title)
 msgid "Useful methods for a GSimpleAction and a GMenu"
 msgstr ""
 
-#: C/gmenu.py.page:42(section/p)
+#: C/gmenu.py.page:43(section/p)
+msgid ""
+"In line 33 the signal <code>\"activate\"</code> from the action "
+"<code>new_action</code> (not the menu!) is connected to the callback "
+"function <code>new_cb()</code> using <code><var>action</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/gmenu.py.page:45(section/p)
 msgid "Useful methods for a GSimpleAction:"
 msgstr ""
 
-#: C/gmenu.py.page:44(item/p)
+#: C/gmenu.py.page:47(item/p)
 msgid ""
 "To create a new action that is <em>stateless</em>, that is, an action that "
 "do not retain or depend on a state given by the action itself, use"
 msgstr ""
 
-#: C/gmenu.py.page:45(item/code)
+#: C/gmenu.py.page:48(item/code)
 #, no-wrap
 msgid ""
 "\n"
 "action = Gio.SimpleAction.new(\"name\", parameter_type)"
 msgstr ""
 
-#: C/gmenu.py.page:47(item/p)
+#: C/gmenu.py.page:50(item/p)
 msgid ""
 "where <code>\"name\"</code> is the name of the action and "
 "<code>parameter_type</code> is the type of the parameters that the action "
@@ -9100,14 +9268,14 @@ msgid ""
 "create a new <em>stateful</em> (i.e. not stateless) action, use"
 msgstr ""
 
-#: C/gmenu.py.page:48(item/code)
+#: C/gmenu.py.page:51(item/code)
 #, no-wrap
 msgid ""
 "\n"
 "action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
 msgstr ""
 
-#: C/gmenu.py.page:50(item/p)
+#: C/gmenu.py.page:53(item/p)
 msgid ""
 "where <code>initial_state</code> is defined as a GVariant - for instance "
 "<code>Glib.Variant.new_string('start')</code>; for a list of possiblities "
@@ -9115,7 +9283,7 @@ msgid ""
 "\">here</link>."
 msgstr ""
 
-#: C/gmenu.py.page:51(item/p)
+#: C/gmenu.py.page:54(item/p)
 msgid ""
 "<code>set_enabled(True)</code> sets the action as enabled; an action must be "
 "enabled in order to be activated or in order to have its state changed from "
@@ -9123,7 +9291,7 @@ msgid ""
 "action. Users of the action should not attempt to modify its enabled flag."
 msgstr ""
 
-#: C/gmenu.py.page:52(item/p)
+#: C/gmenu.py.page:55(item/p)
 msgid ""
 "<code>set_state(state)</code>, where <code>state</code> is a GVariant, sets "
 "the state of the action, updating the 'state' property to the given value. "
@@ -9132,11 +9300,11 @@ msgid ""
 "<code>state</code> is as above) to request the change."
 msgstr ""
 
-#: C/gmenu.py.page:55(section/p)
+#: C/gmenu.py.page:58(section/p)
 msgid "Useful methods for a GMenu:"
 msgstr ""
 
-#: C/gmenu.py.page:57(item/p)
+#: C/gmenu.py.page:60(item/p)
 msgid ""
 "To insert an item in the menu in position <code>position</code>, use "
 "<code>insert(position, label, detailed_action)</code>, where <code>label</"
@@ -9146,14 +9314,14 @@ msgid ""
 "<link xref=\"menubar.py#win-app\"/>."
 msgstr ""
 
-#: C/gmenu.py.page:58(item/p)
+#: C/gmenu.py.page:61(item/p)
 msgid ""
 "To append or prepend an item in the menu use respectively <code>append"
 "(label, detailed_action)</code> and <code>prepend(label, detailed_action)</"
 "code>."
 msgstr ""
 
-#: C/gmenu.py.page:59(item/p)
+#: C/gmenu.py.page:62(item/p)
 msgid ""
 "Another way of adding items to the menu is to create them as "
 "<code>GMenuItem</code>s and use <code>insert_item(position, item)</code>, "
@@ -9161,7 +9329,7 @@ msgid ""
 "instance we might have:"
 msgstr ""
 
-#: C/gmenu.py.page:60(item/code)
+#: C/gmenu.py.page:63(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -9169,7 +9337,7 @@ msgid ""
 "menu.append_item(about)"
 msgstr ""
 
-#: C/gmenu.py.page:64(item/p)
+#: C/gmenu.py.page:67(item/p)
 msgid ""
 "We can also add a whole subsection in a menu using <code>insert_section"
 "(position, label, section)</code>, <code>append_section(label, section)</"
@@ -9177,7 +9345,7 @@ msgid ""
 "code> is the title of the subsection."
 msgstr ""
 
-#: C/gmenu.py.page:65(item/p)
+#: C/gmenu.py.page:68(item/p)
 msgid ""
 "To add a submenu that will expand and collapse, use <code>insert_submenu"
 "(position, label, section)</code>, <code>append_submenu(label, section)</"
@@ -9185,21 +9353,21 @@ msgid ""
 "code> is the title of the subsection."
 msgstr ""
 
-#: C/gmenu.py.page:66(item/p)
+#: C/gmenu.py.page:69(item/p)
 msgid "To remove an item from the menu, use <code>remove(postion)</code>."
 msgstr ""
 
-#: C/gmenu.py.page:67(item/p)
+#: C/gmenu.py.page:70(item/p)
 msgid "To set a label for the menu, use <code>set_label(label)</code>."
 msgstr ""
 
-#: C/gmenu.py.page:78(item/p)
+#: C/gmenu.py.page:81(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html";
 "\">GVariantType</link>"
 msgstr ""
 
-#: C/gmenu.py.page:79(item/p)
+#: C/gmenu.py.page:82(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
 "\">GVariant</link>"
@@ -9226,7 +9394,7 @@ msgstr "Scale (Vala)"
 
 #: C/gmenu.vala.page:29(note/p)
 msgid ""
-"<em style=\"strong\">You need to be running Gtk+-3.4 or later for this to "
+"<em style=\"strong\">You need to be running GTK+-3.4 or later for this to "
 "work</em>"
 msgstr ""
 
@@ -9378,12 +9546,12 @@ msgid "Grid (C)"
 msgstr "Python"
 
 #: C/grid.c.page:17(info/desc) C/grid.js.page:21(info/desc)
-#: C/grid.py.page:24(info/desc) C/grid.vala.page:19(info/desc)
+#: C/grid.py.page:25(info/desc) C/grid.vala.page:19(info/desc)
 msgid "Pack widgets in rows and columns"
 msgstr ""
 
 #: C/grid.c.page:20(page/title) C/grid.js.page:24(page/title)
-#: C/grid.py.page:27(page/title) C/tutorial.py.page:62(steps/title)
+#: C/grid.py.page:28(page/title)
 msgid "Grid"
 msgstr "Grade"
 
@@ -9589,7 +9757,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/grid.py.page:29(media)
+#: C/grid.py.page:30(media)
 #, fuzzy
 #| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
 msgctxt "_"
@@ -9604,11 +9772,11 @@ msgctxt "text"
 msgid "Grid (Python)"
 msgstr "Python"
 
-#: C/grid.py.page:30(page/p)
+#: C/grid.py.page:31(page/p)
 msgid "Some labels in a grid."
 msgstr ""
 
-#: C/grid.py.page:36(section/code)
+#: C/grid.py.page:37(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -9653,11 +9821,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/grid.py.page:40(section/title)
+#: C/grid.py.page:41(section/title)
 msgid "Useful methods for a Grid widget"
 msgstr ""
 
-#: C/grid.py.page:43(item/p)
+#: C/grid.py.page:44(item/p)
 msgid ""
 "To attach a widget <code>child</code> in position <code>left, top</code> in "
 "a slot of given <code>width, height</code> use <code>attach(child, top, "
@@ -9668,7 +9836,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/grid.py.page:44(item/p)
+#: C/grid.py.page:45(item/p)
 msgid ""
 "<code>insert_row(position)</code> and <code>insert_column(position)</code> "
 "do exactly what they say; children which are attached at or below this "
@@ -9682,27 +9850,23 @@ msgid ""
 "inserted."
 msgstr ""
 
-#: C/grid.py.page:45(item/p)
+#: C/grid.py.page:46(item/p)
 msgid ""
 "<code>set_row_homogeneous(True)</code> and <code>set_column_homogeneous(True)"
 "</code> ensure that (respectively) every row or every column has the same "
 "width or height."
 msgstr ""
 
-#: C/grid.py.page:46(item/p)
+#: C/grid.py.page:47(item/p)
 msgid ""
 "<code>set_row_spacing(spacing)</code> and <code>set_column_spacing(spacing)</"
 "code> force a spacing between (respectively) rows or columns. The value of "
 "<code>spacing</code> can be between <code>0</code>, which is the default "
-"value, and <code>32767</code>"
+"value, and <code>32767</code>."
 msgstr ""
 
-#: C/grid.py.page:42(section/list)
-msgid "<_:item-1/> <_:item-2/> <_:item-3/> <_:item-4/>."
-msgstr ""
-
-#: C/grid.py.page:57(item/p) C/label.py.page:88(item/p)
-#: C/separator.py.page:40(item/p) C/switch.py.page:49(item/p)
+#: C/grid.py.page:58(item/p) C/label.py.page:89(item/p)
+#: C/separator.py.page:41(item/p) C/switch.py.page:45(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -9714,8 +9878,8 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/grid.py.page:58(item/p) C/image.py.page:100(item/p)
-#: C/paned.py.page:42(item/p) C/scrolledwindow.py.page:45(item/p)
+#: C/grid.py.page:59(item/p) C/image.py.page:102(item/p)
+#: C/paned.py.page:43(item/p) C/scrolledwindow.py.page:46(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -9727,9 +9891,9 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/grid.py.page:59(item/p) C/radiobutton.py.page:52(item/p)
-#: C/separator.py.page:39(item/p) C/switch.py.page:50(item/p)
-#: C/toolbar_builder.py.page:193(item/p)
+#: C/grid.py.page:60(item/p) C/radiobutton.py.page:49(item/p)
+#: C/separator.py.page:40(item/p) C/switch.py.page:46(item/p)
+#: C/toolbar_builder.py.page:195(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -9849,9 +10013,9 @@ msgstr ""
 #. whatever you like once you have updated your copy of the file.
 #: C/GtkApplicationWindow.c.page:21(media)
 #: C/GtkApplicationWindow.js.page:21(media)
-#: C/GtkApplicationWindow.py.page:26(media)
+#: C/GtkApplicationWindow.py.page:28(media)
 #: C/GtkApplicationWindow.vala.page:21(media) C/window.c.page:21(media)
-#: C/window.js.page:24(media) C/window.py.page:30(media)
+#: C/window.js.page:24(media) C/window.py.page:32(media)
 #: C/window.vala.page:24(media)
 #, fuzzy
 #| msgid "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
@@ -9872,7 +10036,7 @@ msgstr ""
 
 #: C/GtkApplicationWindow.c.page:20(page/title)
 #: C/GtkApplicationWindow.js.page:20(page/title)
-#: C/GtkApplicationWindow.py.page:25(page/title)
+#: C/GtkApplicationWindow.py.page:27(page/title)
 #: C/GtkApplicationWindow.vala.page:20(page/title)
 msgid "ApplicationWindow"
 msgstr ""
@@ -9931,7 +10095,7 @@ msgid "ApplicationWindow (JavaScript)"
 msgstr "Un primeiro aplicativo en GTK"
 
 #: C/GtkApplicationWindow.js.page:17(info/desc)
-#: C/GtkApplicationWindow.py.page:22(info/desc)
+#: C/GtkApplicationWindow.py.page:24(info/desc)
 #: C/GtkApplicationWindow.vala.page:17(info/desc)
 msgid "GtkWindow subclass with GtkApplication support"
 msgstr ""
@@ -10002,12 +10166,12 @@ msgctxt "text"
 msgid "ApplicationWindow (Python)"
 msgstr "Un primeiro aplicativo en GTK"
 
-#: C/GtkApplicationWindow.py.page:27(page/p)
+#: C/GtkApplicationWindow.py.page:29(page/p)
 #: C/GtkApplicationWindow.vala.page:22(page/p)
 msgid "The simplest GtkApplication Window which can support Menus."
 msgstr ""
 
-#: C/GtkApplicationWindow.py.page:34(section/code)
+#: C/GtkApplicationWindow.py.page:36(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -10046,20 +10210,20 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/GtkApplicationWindow.py.page:38(section/title)
+#: C/GtkApplicationWindow.py.page:40(section/title)
 #, fuzzy
 #| msgid "A first Gtk application"
 msgid "Useful methods for a Gtk.ApplicationWindow widget"
 msgstr "Un primeiro aplicativo en GTK"
 
-#: C/GtkApplicationWindow.py.page:41(item/p) C/window.py.page:52(item/p)
+#: C/GtkApplicationWindow.py.page:43(item/p) C/window.py.page:53(item/p)
 msgid ""
 "<code>set_default_size(200, 100)</code> sets the default size of the window "
 "to a width of <code>200</code> and a height of <code>100</code>; if instead "
 "of a positive number we pass <code>-1</code> we have the default size."
 msgstr ""
 
-#: C/GtkApplicationWindow.py.page:42(item/p) C/window.py.page:53(item/p)
+#: C/GtkApplicationWindow.py.page:44(item/p) C/window.py.page:54(item/p)
 msgid ""
 "<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
 "Other options are <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition.MOUSE, "
@@ -10130,9 +10294,9 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/guitar-tuner.c.page:39(media) C/guitar-tuner.cpp.page:37(media)
-#: C/guitar-tuner.js.page:36(media) C/guitar-tuner.py.page:39(media)
-#: C/guitar-tuner.vala.page:42(media)
+#: C/guitar-tuner.c.page:44(media) C/guitar-tuner.cpp.page:42(media)
+#: C/guitar-tuner.js.page:36(media) C/guitar-tuner.py.page:49(media)
+#: C/guitar-tuner.vala.page:47(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
@@ -10161,8 +10325,8 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/guitar-tuner.c.page:94(media) C/guitar-tuner.cpp.page:88(media)
-#: C/guitar-tuner.py.page:90(media) C/guitar-tuner.vala.page:95(media)
+#: C/guitar-tuner.c.page:99(media) C/guitar-tuner.cpp.page:93(media)
+#: C/guitar-tuner.py.page:100(media) C/guitar-tuner.vala.page:100(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/guitar-tuner-glade.png'; "
@@ -10198,9 +10362,9 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/guitar-tuner.c.page:139(media) C/guitar-tuner.cpp.page:117(media)
-#: C/guitar-tuner.js.page:42(media) C/guitar-tuner.py.page:133(media)
-#: C/guitar-tuner.vala.page:129(media)
+#: C/guitar-tuner.c.page:144(media) C/guitar-tuner.cpp.page:122(media)
+#: C/guitar-tuner.js.page:42(media) C/guitar-tuner.py.page:143(media)
+#: C/guitar-tuner.vala.page:134(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/guitar-tuner-pipeline.png'; "
@@ -10217,23 +10381,31 @@ msgstr ""
 #, fuzzy
 #| msgid "Guitar Tuner"
 msgctxt "text"
-msgid "Guitar Tuner (C)"
+msgid "Guitar tuner (C)"
 msgstr "Afinador de guitarra"
 
 #: C/guitar-tuner.c.page:10(info/desc) C/guitar-tuner.py.page:10(info/desc)
+#, fuzzy
+#| msgid ""
+#| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
+#| "GNOME. Shows off how to use the interface designer."
 msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
+"Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME. "
 "Shows off how to use the interface designer."
 msgstr ""
 "Usar GTK+ y GStreamer para construír un sinxelo afinador de guitarra para "
 "GNOME. Mostra como usar o deseñador de interfaces."
 
-#: C/guitar-tuner.c.page:23(page/title) C/guitar-tuner.cpp.page:21(page/title)
-msgid "Guitar Tuner"
+#: C/guitar-tuner.c.page:28(page/title) C/guitar-tuner.cpp.page:26(page/title)
+#: C/guitar-tuner.js.page:19(page/title) C/guitar-tuner.py.page:33(page/title)
+#: C/guitar-tuner.vala.page:31(page/title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar tuner"
 msgstr "Afinador de guitarra"
 
-#: C/guitar-tuner.c.page:26(synopsis/p) C/guitar-tuner.cpp.page:24(synopsis/p)
-#: C/guitar-tuner.py.page:26(synopsis/p)
+#: C/guitar-tuner.c.page:31(synopsis/p) C/guitar-tuner.cpp.page:29(synopsis/p)
+#: C/guitar-tuner.py.page:36(synopsis/p)
 msgid ""
 "In this tutorial, we're going to make a program which plays tones that you "
 "can use to tune a guitar. You will learn how to:"
@@ -10241,62 +10413,62 @@ msgstr ""
 "Neste titorial faremos un programa que reproduce tonos que pode usar para "
 "afinar unha guitarra. Aprenderá como:"
 
-#: C/guitar-tuner.c.page:28(item/p) C/guitar-tuner.cpp.page:26(item/p)
-#: C/guitar-tuner.py.page:28(item/p)
+#: C/guitar-tuner.c.page:33(item/p) C/guitar-tuner.cpp.page:31(item/p)
+#: C/guitar-tuner.py.page:38(item/p)
 msgid "Set up a basic project in Anjuta"
 msgstr "Configurar un proxecto básico en Anjuta"
 
-#: C/guitar-tuner.c.page:29(item/p) C/guitar-tuner.cpp.page:27(item/p)
-#: C/guitar-tuner.py.page:29(item/p)
+#: C/guitar-tuner.c.page:34(item/p) C/guitar-tuner.cpp.page:32(item/p)
+#: C/guitar-tuner.py.page:39(item/p)
 msgid "Create a simple GUI with Anjuta's UI designer"
 msgstr "Crear unha GUI sinxela co deseñador de UI de Anjuta"
 
-#: C/guitar-tuner.c.page:30(item/p) C/guitar-tuner.cpp.page:28(item/p)
-#: C/guitar-tuner.py.page:30(item/p)
+#: C/guitar-tuner.c.page:35(item/p) C/guitar-tuner.cpp.page:33(item/p)
+#: C/guitar-tuner.py.page:40(item/p)
 msgid "Use GStreamer to play sounds"
 msgstr "Usar GStreamer para reproducir sons."
 
-#: C/guitar-tuner.c.page:32(synopsis/p) C/guitar-tuner.cpp.page:30(synopsis/p)
-#: C/guitar-tuner.py.page:32(synopsis/p)
-#: C/guitar-tuner.vala.page:35(synopsis/p)
-#: C/image-viewer.js.page:34(synopsis/p) C/image-viewer.py.page:34(synopsis/p)
-#: C/image-viewer.vala.page:40(synopsis/p)
-#: C/magic-mirror.vala.page:33(synopsis/p)
+#: C/guitar-tuner.c.page:37(synopsis/p) C/guitar-tuner.cpp.page:35(synopsis/p)
+#: C/guitar-tuner.py.page:42(synopsis/p)
+#: C/guitar-tuner.vala.page:40(synopsis/p)
+#: C/image-viewer.js.page:38(synopsis/p) C/image-viewer.py.page:38(synopsis/p)
+#: C/image-viewer.vala.page:45(synopsis/p)
+#: C/magic-mirror.vala.page:38(synopsis/p)
 msgid "You'll need the following to be able to follow this tutorial:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:34(item/p) C/guitar-tuner.cpp.page:32(item/p)
-#: C/guitar-tuner.py.page:34(item/p) C/image-viewer.js.page:36(item/p)
-#: C/image-viewer.py.page:36(item/p) C/magic-mirror.vala.page:35(item/p)
+#: C/guitar-tuner.c.page:39(item/p) C/guitar-tuner.cpp.page:37(item/p)
+#: C/guitar-tuner.py.page:44(item/p) C/image-viewer.js.page:40(item/p)
+#: C/image-viewer.py.page:40(item/p) C/magic-mirror.vala.page:40(item/p)
 msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
 msgstr ""
 
-#: C/guitar-tuner.c.page:35(item/p)
+#: C/guitar-tuner.c.page:40(item/p)
 msgid "Basic knowledge of the C programming language"
 msgstr "Coñecemento básico da linguaxe de programación C"
 
-#: C/guitar-tuner.c.page:42(section/title)
-#: C/guitar-tuner.cpp.page:40(section/title)
-#: C/guitar-tuner.py.page:42(section/title)
-#: C/image-viewer.c.page:36(section/title)
-#: C/image-viewer.cpp.page:34(section/title)
-#: C/image-viewer.js.page:45(section/title)
-#: C/image-viewer.py.page:44(section/title)
-#: C/image-viewer.vala.page:51(section/title)
-#: C/magic-mirror.vala.page:44(section/title)
-#: C/message-board.c.page:41(section/title)
-#: C/photo-wall.c.page:46(section/title)
-#: C/record-collection.js.page:47(section/title)
+#: C/guitar-tuner.c.page:47(section/title)
+#: C/guitar-tuner.cpp.page:45(section/title)
+#: C/guitar-tuner.py.page:52(section/title)
+#: C/image-viewer.c.page:41(section/title)
+#: C/image-viewer.cpp.page:39(section/title)
+#: C/image-viewer.js.page:49(section/title)
+#: C/image-viewer.py.page:48(section/title)
+#: C/image-viewer.vala.page:56(section/title)
+#: C/magic-mirror.vala.page:49(section/title)
+#: C/message-board.c.page:45(section/title)
+#: C/photo-wall.c.page:51(section/title)
+#: C/record-collection.js.page:52(section/title)
 msgid "Create a project in Anjuta"
 msgstr "Cree un proxecto de Anjuta"
 
-#: C/guitar-tuner.c.page:43(section/p) C/guitar-tuner.cpp.page:41(section/p)
-#: C/guitar-tuner.py.page:43(section/p) C/guitar-tuner.vala.page:46(section/p)
-#: C/image-viewer.c.page:37(section/p) C/image-viewer.cpp.page:35(section/p)
-#: C/image-viewer.js.page:46(section/p) C/image-viewer.py.page:45(section/p)
-#: C/image-viewer.vala.page:52(section/p)
-#: C/magic-mirror.vala.page:45(section/p) C/photo-wall.c.page:47(section/p)
-#: C/record-collection.js.page:48(section/p)
+#: C/guitar-tuner.c.page:48(section/p) C/guitar-tuner.cpp.page:46(section/p)
+#: C/guitar-tuner.py.page:53(section/p) C/guitar-tuner.vala.page:51(section/p)
+#: C/image-viewer.c.page:42(section/p) C/image-viewer.cpp.page:40(section/p)
+#: C/image-viewer.js.page:50(section/p) C/image-viewer.py.page:49(section/p)
+#: C/image-viewer.vala.page:57(section/p)
+#: C/magic-mirror.vala.page:50(section/p) C/photo-wall.c.page:52(section/p)
+#: C/record-collection.js.page:53(section/p)
 msgid ""
 "Before you start coding, you'll need to set up a new project in Anjuta. This "
 "will create all of the files you need to build and run the code later on. "
@@ -10306,11 +10478,11 @@ msgstr ""
 "Isto creará todos os ficheiros que precise para construír e executar o "
 "código máis adiante. Tamén é útil para manter todo ordenado."
 
-#: C/guitar-tuner.c.page:46(item/p) C/guitar-tuner.cpp.page:44(item/p)
-#: C/guitar-tuner.py.page:46(item/p) C/image-viewer.c.page:40(item/p)
-#: C/image-viewer.cpp.page:38(item/p) C/image-viewer.js.page:49(item/p)
-#: C/image-viewer.py.page:48(item/p) C/magic-mirror.vala.page:48(item/p)
-#: C/photo-wall.c.page:50(item/p) C/record-collection.js.page:51(item/p)
+#: C/guitar-tuner.c.page:51(item/p) C/guitar-tuner.cpp.page:49(item/p)
+#: C/guitar-tuner.py.page:56(item/p) C/image-viewer.c.page:45(item/p)
+#: C/image-viewer.cpp.page:43(item/p) C/image-viewer.js.page:53(item/p)
+#: C/image-viewer.py.page:52(item/p) C/magic-mirror.vala.page:53(item/p)
+#: C/photo-wall.c.page:55(item/p) C/record-collection.js.page:56(item/p)
 msgid ""
 "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
 "gui></guiseq> to open the project wizard."
@@ -10318,14 +10490,14 @@ msgstr ""
 "Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
 "gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
 
-#: C/guitar-tuner.c.page:49(item/p)
+#: C/guitar-tuner.c.page:54(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
 #| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 #| "<file>guitar-tuner</file> as project name and directory."
 msgid ""
-"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"Choose <gui>GTK+ (Simple)</gui> from the <gui>C</gui> tab, click "
 "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
 "<file>guitar-tuner</file> as project name and directory."
 msgstr ""
@@ -10333,7 +10505,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.c.page:52(item/p)
+#: C/guitar-tuner.c.page:57(item/p)
 #, fuzzy
 #| msgid ""
 #| "Make sure that <gui>Configure external packages</gui> is selected. On the "
@@ -10348,8 +10520,8 @@ msgstr ""
 "seguinte páxina, seleccione <em>gstreamermm-0.10</em> da lista para incluír "
 "a biblioteca GStreamer no seu proxecto."
 
-#: C/guitar-tuner.c.page:56(item/p) C/image-viewer.c.page:51(item/p)
-#: C/photo-wall.c.page:65(item/p)
+#: C/guitar-tuner.c.page:61(item/p) C/image-viewer.c.page:56(item/p)
+#: C/photo-wall.c.page:70(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> tabs. "
@@ -10359,8 +10531,8 @@ msgstr ""
 "desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. Debería ver "
 "algún código que comeza coas liñas:"
 
-#: C/guitar-tuner.c.page:57(item/code) C/image-viewer.c.page:52(item/code)
-#: C/photo-wall.c.page:66(item/code)
+#: C/guitar-tuner.c.page:62(item/code) C/image-viewer.c.page:57(item/code)
+#: C/photo-wall.c.page:71(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -10368,17 +10540,17 @@ msgid ""
 "#include &lt;gtk/gtk.h&gt;"
 msgstr ""
 
-#: C/guitar-tuner.c.page:65(section/title)
-#: C/guitar-tuner.cpp.page:63(section/title)
-#: C/guitar-tuner.vala.page:68(section/title)
-#: C/image-viewer.c.page:60(section/title)
-#: C/image-viewer.cpp.page:60(section/title)
-#: C/image-viewer.vala.page:107(section/title)
-#: C/magic-mirror.vala.page:72(section/title)
+#: C/guitar-tuner.c.page:70(section/title)
+#: C/guitar-tuner.cpp.page:68(section/title)
+#: C/guitar-tuner.vala.page:73(section/title)
+#: C/image-viewer.c.page:65(section/title)
+#: C/image-viewer.cpp.page:65(section/title)
+#: C/image-viewer.vala.page:112(section/title)
+#: C/magic-mirror.vala.page:77(section/title)
 msgid "Build the code for the first time"
 msgstr "Construír o código por primeira vez"
 
-#: C/guitar-tuner.c.page:66(section/p)
+#: C/guitar-tuner.c.page:71(section/p)
 msgid ""
 "C is a rather verbose language, so don't be surprised that the file contains "
 "quite a lot of code. Most of it is template code. It loads an (empty) window "
@@ -10386,7 +10558,7 @@ msgid ""
 "given below; skip this list if you understand the basics:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:70(item/p) C/image-viewer.c.page:65(item/p)
+#: C/guitar-tuner.c.page:75(item/p) C/image-viewer.c.page:70(item/p)
 msgid ""
 "The three <code>#include</code> lines at the top include the <code>config</"
 "code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
@@ -10394,7 +10566,7 @@ msgid ""
 "libraries are used in the rest of the code."
 msgstr ""
 
-#: C/guitar-tuner.c.page:73(item/p)
+#: C/guitar-tuner.c.page:78(item/p)
 msgid ""
 "The <code>create_window</code> function creates a new window by opening a "
 "GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
@@ -10403,15 +10575,15 @@ msgid ""
 "elements. You can use Anjuta's editor to design GtkBuilder user interfaces."
 msgstr ""
 
-#: C/guitar-tuner.c.page:74(item/p) C/image-viewer.c.page:69(item/p)
-#: C/image-viewer.vala.page:117(item/p)
+#: C/guitar-tuner.c.page:79(item/p) C/image-viewer.c.page:74(item/p)
+#: C/image-viewer.vala.page:122(item/p)
 msgid ""
 "Connecting signals is how you define what happens when you push a button, or "
 "when some other event happens. Here, the <code>destroy</code> function is "
 "called (and quits the app) when you close the window."
 msgstr ""
 
-#: C/guitar-tuner.c.page:77(item/p) C/image-viewer.c.page:72(item/p)
+#: C/guitar-tuner.c.page:82(item/p) C/image-viewer.c.page:77(item/p)
 msgid ""
 "The <code>main</code> function is run by default when you start a C "
 "application. It calls a few functions which set up and then run the "
@@ -10420,25 +10592,25 @@ msgid ""
 "and key presses)."
 msgstr ""
 
-#: C/guitar-tuner.c.page:80(item/p) C/image-viewer.c.page:75(item/p)
+#: C/guitar-tuner.c.page:85(item/p) C/image-viewer.c.page:80(item/p)
 msgid ""
 "The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
 "code>, which is a framework for translating applications. These functions "
 "specify how translation tools should handle your app when you run them."
 msgstr ""
 
-#: C/guitar-tuner.c.page:84(section/p) C/guitar-tuner.cpp.page:78(section/p)
-#: C/image-viewer.c.page:79(section/p) C/image-viewer.cpp.page:76(section/p)
-#: C/image-viewer.vala.page:127(section/p)
-#: C/magic-mirror.vala.page:87(section/p)
+#: C/guitar-tuner.c.page:89(section/p) C/guitar-tuner.cpp.page:83(section/p)
+#: C/image-viewer.c.page:84(section/p) C/image-viewer.cpp.page:81(section/p)
+#: C/image-viewer.vala.page:132(section/p)
+#: C/magic-mirror.vala.page:92(section/p)
 msgid ""
 "This code is ready to be used, so you can compile it by clicking "
 "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
 "<keyseq><key>Shift</key><key>F7</key></keyseq>)."
 msgstr ""
 
-#: C/guitar-tuner.c.page:85(section/p) C/guitar-tuner.cpp.page:79(section/p)
-#: C/image-viewer.c.page:80(section/p) C/image-viewer.cpp.page:77(section/p)
+#: C/guitar-tuner.c.page:90(section/p) C/guitar-tuner.cpp.page:84(section/p)
+#: C/image-viewer.c.page:85(section/p) C/image-viewer.cpp.page:82(section/p)
 msgid ""
 "Press <gui>Execute</gui> on the next window that appears to configure a "
 "debug build. You only need to do this once, for the first build."
@@ -10447,14 +10619,14 @@ msgstr ""
 "compilación de depuración. Só precisa facer isto unha vez para a primeira "
 "compilación."
 
-#: C/guitar-tuner.c.page:89(section/title)
-#: C/guitar-tuner.cpp.page:83(section/title)
-#: C/guitar-tuner.py.page:85(section/title)
-#: C/guitar-tuner.vala.page:90(section/title)
+#: C/guitar-tuner.c.page:94(section/title)
+#: C/guitar-tuner.cpp.page:88(section/title)
+#: C/guitar-tuner.py.page:95(section/title)
+#: C/guitar-tuner.vala.page:95(section/title)
 msgid "Create the user interface"
 msgstr "Crear a interface de usuario"
 
-#: C/guitar-tuner.c.page:90(section/p) C/guitar-tuner.cpp.page:84(section/p)
+#: C/guitar-tuner.c.page:95(section/p) C/guitar-tuner.cpp.page:89(section/p)
 msgid ""
 "A description of the user interface (UI) is contained in the GtkBuilder "
 "file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
@@ -10463,16 +10635,16 @@ msgid ""
 "available widgets is on the right."
 msgstr ""
 
-#: C/guitar-tuner.c.page:92(section/p) C/guitar-tuner.cpp.page:86(section/p)
-#: C/guitar-tuner.py.page:88(section/p)
+#: C/guitar-tuner.c.page:97(section/p) C/guitar-tuner.cpp.page:91(section/p)
+#: C/guitar-tuner.py.page:98(section/p)
 msgid ""
 "The layout of every UI in GTK+ is organized using boxes and tables. Let's "
 "use a vertical <gui>GtkButtonBox</gui> here to assign six <gui>GtkButtons</"
 "gui>, one for each of the six guitar strings."
 msgstr ""
 
-#: C/guitar-tuner.c.page:98(item/p) C/guitar-tuner.cpp.page:92(item/p)
-#: C/guitar-tuner.py.page:94(item/p)
+#: C/guitar-tuner.c.page:103(item/p) C/guitar-tuner.cpp.page:97(item/p)
+#: C/guitar-tuner.py.page:104(item/p)
 msgid ""
 "Select a <gui>GtkButtonBox</gui> from the <gui>Container</gui> section of "
 "the <gui>Palette</gui> on the right and put it into the window. In the "
@@ -10480,20 +10652,20 @@ msgid ""
 "strings) and the orientation to vertical."
 msgstr ""
 
-#: C/guitar-tuner.c.page:102(item/p) C/guitar-tuner.cpp.page:96(item/p)
-#: C/guitar-tuner.py.page:98(item/p)
+#: C/guitar-tuner.c.page:107(item/p) C/guitar-tuner.cpp.page:101(item/p)
+#: C/guitar-tuner.py.page:108(item/p)
 msgid ""
 "Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
 "first part of the box."
 msgstr ""
 
-#: C/guitar-tuner.c.page:105(item/p) C/guitar-tuner.py.page:101(item/p)
+#: C/guitar-tuner.c.page:110(item/p) C/guitar-tuner.py.page:111(item/p)
 msgid ""
 "While the button is still selected, change the <gui>Label</gui> property in "
 "the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string."
 msgstr ""
 
-#: C/guitar-tuner.c.page:108(item/p) C/guitar-tuner.py.page:104(item/p)
+#: C/guitar-tuner.c.page:113(item/p) C/guitar-tuner.py.page:114(item/p)
 msgid ""
 "Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
 "look for the <code>clicked</code> signal of the button. You can use this to "
@@ -10502,8 +10674,8 @@ msgid ""
 "code> in the <gui>Handler</gui> column and press <key>Return</key>."
 msgstr ""
 
-#: C/guitar-tuner.c.page:111(item/p) C/guitar-tuner.py.page:107(item/p)
-#: C/guitar-tuner.vala.page:116(item/p)
+#: C/guitar-tuner.c.page:116(item/p) C/guitar-tuner.py.page:117(item/p)
+#: C/guitar-tuner.vala.page:121(item/p)
 msgid ""
 "Repeat the above steps for the other buttons, adding the next 5 strings with "
 "the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
@@ -10512,8 +10684,8 @@ msgstr ""
 "restantes cos nomes <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e <em>e</"
 "em>."
 
-#: C/guitar-tuner.c.page:114(item/p) C/guitar-tuner.py.page:110(item/p)
-#: C/guitar-tuner.vala.page:119(item/p)
+#: C/guitar-tuner.c.page:119(item/p) C/guitar-tuner.py.page:120(item/p)
+#: C/guitar-tuner.vala.page:124(item/p)
 msgid ""
 "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
 "guiseq>) and keep it open."
@@ -10521,19 +10693,19 @@ msgstr ""
 "Garde o deseño da IU (premendo <guiseq><gui>Ficheiro</gui><gui>Gardar</gui></"
 "guiseq>) e déixeo aberto."
 
-#: C/guitar-tuner.c.page:120(section/title)
-#: C/guitar-tuner.vala.page:197(section/title)
+#: C/guitar-tuner.c.page:125(section/title)
+#: C/guitar-tuner.vala.page:202(section/title)
 msgid "Creating the signal handler"
 msgstr "Crear o manexador de sinais"
 
-#: C/guitar-tuner.c.page:121(section/p) C/guitar-tuner.py.page:117(section/p)
+#: C/guitar-tuner.c.page:126(section/p) C/guitar-tuner.py.page:127(section/p)
 msgid ""
 "In the UI designer, you made it so that all of the buttons will call the "
 "same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
 "to add that function in the source file."
 msgstr ""
 
-#: C/guitar-tuner.c.page:122(section/p)
+#: C/guitar-tuner.c.page:127(section/p)
 msgid ""
 "To do this, open <file>main.c</file> while the user interface file is still "
 "open. Switch to the <gui>Signals</gui> tab, which you already used to set "
@@ -10542,7 +10714,7 @@ msgid ""
 "function. The following code will be added to your source file:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:125(section/code)
+#: C/guitar-tuner.c.page:130(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -10552,7 +10724,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/guitar-tuner.c.page:130(section/p)
+#: C/guitar-tuner.c.page:135(section/p)
 msgid ""
 "This signal handler has two arguments: a pointer to the <code>GtkWidget</"
 "code> that called the function (in our case, always a <code>GtkButton</"
@@ -10563,22 +10735,22 @@ msgid ""
 "handler.)"
 msgstr ""
 
-#: C/guitar-tuner.c.page:131(section/p) C/guitar-tuner.py.page:125(section/p)
+#: C/guitar-tuner.c.page:136(section/p) C/guitar-tuner.py.page:135(section/p)
 msgid ""
 "For now, we'll leave the signal handler empty while we work on writing the "
 "code to produce sounds."
 msgstr ""
 
-#: C/guitar-tuner.c.page:135(section/title)
-#: C/guitar-tuner.cpp.page:112(section/title)
+#: C/guitar-tuner.c.page:140(section/title)
+#: C/guitar-tuner.cpp.page:117(section/title)
 #: C/guitar-tuner.js.page:38(section/title)
-#: C/guitar-tuner.py.page:129(section/title)
-#: C/guitar-tuner.vala.page:125(section/title)
+#: C/guitar-tuner.py.page:139(section/title)
+#: C/guitar-tuner.vala.page:130(section/title)
 msgid "GStreamer pipelines"
 msgstr "Tuberías de GStreamer"
 
-#: C/guitar-tuner.c.page:136(section/p) C/guitar-tuner.js.page:39(section/p)
-#: C/guitar-tuner.py.page:130(section/p)
+#: C/guitar-tuner.c.page:141(section/p) C/guitar-tuner.js.page:39(section/p)
+#: C/guitar-tuner.py.page:140(section/p)
 msgid ""
 "GStreamer is GNOME's multimedia framework — you can use it for playing, "
 "recording, and processing video, audio, webcam streams and the like. Here, "
@@ -10588,8 +10760,8 @@ msgstr ""
 "para reproducir, gravar e procesar vídeo, son, fluxos de cámara web e "
 "semellantes. Aquí, usarémolo para producir tonos dunha única frecuencia."
 
-#: C/guitar-tuner.c.page:137(section/p) C/guitar-tuner.cpp.page:115(section/p)
-#: C/guitar-tuner.js.page:40(section/p) C/guitar-tuner.py.page:131(section/p)
+#: C/guitar-tuner.c.page:142(section/p) C/guitar-tuner.cpp.page:120(section/p)
+#: C/guitar-tuner.js.page:40(section/p) C/guitar-tuner.py.page:141(section/p)
 msgid ""
 "Conceptually, GStreamer works as follows: You create a <em>pipeline</em> "
 "containing several processing elements going from the <em>source</em> to the "
@@ -10597,29 +10769,29 @@ msgid ""
 "file, for example, and the output could be a widget or the soundcard."
 msgstr ""
 
-#: C/guitar-tuner.c.page:138(section/p) C/guitar-tuner.cpp.page:116(section/p)
-#: C/guitar-tuner.js.page:41(section/p) C/guitar-tuner.py.page:132(section/p)
-#: C/guitar-tuner.vala.page:128(section/p)
+#: C/guitar-tuner.c.page:143(section/p) C/guitar-tuner.cpp.page:121(section/p)
+#: C/guitar-tuner.js.page:41(section/p) C/guitar-tuner.py.page:142(section/p)
+#: C/guitar-tuner.vala.page:133(section/p)
 msgid ""
 "Between source and sink, you can apply various filters and converters to "
 "handle effects, format conversions and so on. Each element of the pipeline "
 "has properties which can be used to change its behaviour."
 msgstr ""
 
-#: C/guitar-tuner.c.page:140(media/p) C/guitar-tuner.cpp.page:118(media/p)
-#: C/guitar-tuner.js.page:43(media/p) C/guitar-tuner.py.page:134(media/p)
-#: C/guitar-tuner.vala.page:130(media/p)
+#: C/guitar-tuner.c.page:145(media/p) C/guitar-tuner.cpp.page:123(media/p)
+#: C/guitar-tuner.js.page:43(media/p) C/guitar-tuner.py.page:144(media/p)
+#: C/guitar-tuner.vala.page:135(media/p)
 msgid "An example GStreamer pipeline."
 msgstr "Un exemplo de tubería de GStreamer."
 
-#: C/guitar-tuner.c.page:145(section/title)
-#: C/guitar-tuner.py.page:139(section/title)
-#: C/guitar-tuner.vala.page:135(section/title)
+#: C/guitar-tuner.c.page:150(section/title)
+#: C/guitar-tuner.py.page:149(section/title)
+#: C/guitar-tuner.vala.page:140(section/title)
 msgid "Set up the pipeline"
 msgstr "Configurar a tubería"
 
-#: C/guitar-tuner.c.page:146(section/p) C/guitar-tuner.cpp.page:129(section/p)
-#: C/guitar-tuner.py.page:140(section/p)
+#: C/guitar-tuner.c.page:151(section/p) C/guitar-tuner.cpp.page:134(section/p)
+#: C/guitar-tuner.py.page:150(section/p)
 msgid ""
 "In this simple example we will use a tone generator source called "
 "<code>audiotestsrc</code> and send the output to the default system sound "
@@ -10628,7 +10800,7 @@ msgid ""
 "property of <code>audiotestsrc</code>."
 msgstr ""
 
-#: C/guitar-tuner.c.page:148(section/p)
+#: C/guitar-tuner.c.page:153(section/p)
 #, fuzzy
 #| msgid ""
 #| "Insert the following line into <file>main.c</file>, just below the "
@@ -10640,13 +10812,13 @@ msgstr ""
 "Inserte a seguinte lia en <file>main.c</file>, xusto a continuación da liña "
 "<code><![CDATA[#include <gtk/gtk.h>]]></code>:"
 
-#: C/guitar-tuner.c.page:149(section/code)
+#: C/guitar-tuner.c.page:154(section/code)
 #, fuzzy, no-wrap
 #| msgid "#include &lt;webkit/webkit.h&gt;"
 msgid "#include &lt;gst/gst.h&gt;"
 msgstr "#include &lt;webkit/webkit.h&gt;"
 
-#: C/guitar-tuner.c.page:150(section/p)
+#: C/guitar-tuner.c.page:155(section/p)
 msgid ""
 "This includes the GStreamer library. You also need to add a line to "
 "initialize GStreamer; put the following code on the line above the "
@@ -10656,13 +10828,13 @@ msgstr ""
 "GStreamer; poña a seguinte liña de código antes da chamada <code>gtk_init</"
 "code> na función <code>main</code>:"
 
-#: C/guitar-tuner.c.page:151(section/code)
+#: C/guitar-tuner.c.page:156(section/code)
 #, fuzzy, no-wrap
 #| msgid "\tGst::init (argc, argv);"
 msgid "gst_init (&amp;argc, &amp;argv);"
 msgstr "\tGst::init (argc, argv);"
 
-#: C/guitar-tuner.c.page:152(section/p)
+#: C/guitar-tuner.c.page:157(section/p)
 msgid ""
 "Then, copy the following function into <file>main.c</file> above the empty "
 "<code>on_button_clicked</code> function:"
@@ -10670,7 +10842,7 @@ msgstr ""
 "Despois, copie a seguinte función en <file>main.c</file> enriba da función "
 "<code>on_button_clicked</code> baleira:"
 
-#: C/guitar-tuner.c.page:153(section/code)
+#: C/guitar-tuner.c.page:158(section/code)
 #, no-wrap
 msgid ""
 "static void\n"
@@ -10698,7 +10870,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/guitar-tuner.c.page:179(item/p)
+#: C/guitar-tuner.c.page:184(item/p)
 msgid ""
 "The first five lines create source and sink GStreamer elements "
 "(<code>GstElement</code>), and a pipeline element (which will be used as a "
@@ -10708,7 +10880,7 @@ msgid ""
 "<code>autoaudiosink</code> sink (default sound card output)."
 msgstr ""
 
-#: C/guitar-tuner.c.page:182(item/p)
+#: C/guitar-tuner.c.page:187(item/p)
 msgid ""
 "The call to <code>g_object_set</code> sets the <code>freq</code> property of "
 "the source element to <code>frequency</code>, which is passed as an argument "
@@ -10720,7 +10892,7 @@ msgstr ""
 "argumento á función <code>play_sound</code>. Isto só é a frecuencia da nota "
 "en Hertz, algunhas das frecuencias máis útiles definiranse máis tarde."
 
-#: C/guitar-tuner.c.page:185(item/p)
+#: C/guitar-tuner.c.page:190(item/p)
 msgid ""
 "<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
 "The pipeline is a <code>GstBin</code>, which is just an element that can "
@@ -10729,7 +10901,7 @@ msgid ""
 "<code>gst_bin_add_many</code>."
 msgstr ""
 
-#: C/guitar-tuner.c.page:188(item/p)
+#: C/guitar-tuner.c.page:193(item/p)
 msgid ""
 "Next, <code>gst_element_link</code> is used to connect the elements "
 "together, so the output of <code>source</code> (a tone) goes into the input "
@@ -10739,12 +10911,12 @@ msgid ""
 "code>)."
 msgstr ""
 
-#: C/guitar-tuner.c.page:195(section/title)
-#: C/guitar-tuner.py.page:180(section/title)
+#: C/guitar-tuner.c.page:200(section/title)
+#: C/guitar-tuner.py.page:190(section/title)
 msgid "Stopping playback"
 msgstr "Deter a reprodución"
 
-#: C/guitar-tuner.c.page:196(section/p)
+#: C/guitar-tuner.c.page:201(section/p)
 msgid ""
 "We don't want to play an annoying tone forever, so the last thing "
 "<code>play_sound</code> does is to call <code>g_timeout_add</code>. This "
@@ -10754,7 +10926,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/guitar-tuner.c.page:197(section/p)
+#: C/guitar-tuner.c.page:202(section/p)
 msgid ""
 "Now, we'll write the <code>pipeline_stop</code> function which is called by "
 "<code>g_timeout_add</code>. Insert the following code <em>above</em> the "
@@ -10764,7 +10936,7 @@ msgstr ""
 "<code>g_timeout_add</code>. Inserte o código seguinte <em>enriba</em> da "
 "función <code>play_sound</code>:"
 
-#: C/guitar-tuner.c.page:198(section/code)
+#: C/guitar-tuner.c.page:203(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -10780,7 +10952,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/guitar-tuner.c.page:209(section/p)
+#: C/guitar-tuner.c.page:214(section/p)
 msgid ""
 "The call to <code>gst_element_set_state</code> pauses the playback of the "
 "pipeline and <code>g_object_unref</code> unreferences the pipeline, "
@@ -10790,12 +10962,12 @@ msgstr ""
 "e <code>g_object_unref</code> desreferencia a tubería, destrúea e libera a "
 "súa memoria."
 
-#: C/guitar-tuner.c.page:213(section/title)
-#: C/guitar-tuner.py.page:197(section/title)
+#: C/guitar-tuner.c.page:218(section/title)
+#: C/guitar-tuner.py.page:207(section/title)
 msgid "Define the tones"
 msgstr "Definir os tonos"
 
-#: C/guitar-tuner.c.page:214(section/p)
+#: C/guitar-tuner.c.page:219(section/p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. First of "
 "all, we need to know the frequencies for the six guitar strings, which are "
@@ -10806,12 +10978,12 @@ msgstr ""
 "guitarra, que están definidas (ao principio de <file>main.c</file>) da "
 "seguinte maneira:"
 
-#: C/guitar-tuner.c.page:215(section/code)
+#: C/guitar-tuner.c.page:220(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "/* Frequencies of the strings */\n"
-"#define NOTE_E 369.23\n"
+"#define NOTE_E 329.63\n"
 "#define NOTE_A 440\n"
 "#define NOTE_D 587.33\n"
 "#define NOTE_G 783.99\n"
@@ -10819,7 +10991,7 @@ msgid ""
 "#define NOTE_e 1318.5"
 msgstr ""
 
-#: C/guitar-tuner.c.page:223(section/p) C/guitar-tuner.py.page:211(section/p)
+#: C/guitar-tuner.c.page:228(section/p) C/guitar-tuner.py.page:221(section/p)
 msgid ""
 "Now to flesh out the signal handler that we defined earlier, "
 "<code>on_button_clicked</code>. We could have connected every button to a "
@@ -10828,7 +11000,7 @@ msgid ""
 "clicked:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:224(section/code)
+#: C/guitar-tuner.c.page:229(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -10854,7 +11026,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/guitar-tuner.c.page:246(section/p)
+#: C/guitar-tuner.c.page:251(section/p)
 msgid ""
 "A pointer to the <code>GtkButton</code> that was clicked is passed as an "
 "argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
@@ -10862,7 +11034,7 @@ msgid ""
 "get the text from that label using <code>gtk_label_get_label</code>."
 msgstr ""
 
-#: C/guitar-tuner.c.page:247(section/p)
+#: C/guitar-tuner.c.page:252(section/p)
 msgid ""
 "The label text is then compared to the notes that we have using "
 "<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
@@ -10870,51 +11042,51 @@ msgid ""
 "guitar tuner!"
 msgstr ""
 
-#: C/guitar-tuner.c.page:251(section/title)
-#: C/guitar-tuner.cpp.page:249(section/title)
-#: C/guitar-tuner.vala.page:247(section/title)
-#: C/image-viewer.c.page:216(section/title)
-#: C/image-viewer.cpp.page:204(section/title)
-#: C/image-viewer.vala.page:274(section/title)
-#: C/photo-wall.c.page:371(section/title)
+#: C/guitar-tuner.c.page:256(section/title)
+#: C/guitar-tuner.cpp.page:254(section/title)
+#: C/guitar-tuner.vala.page:252(section/title)
+#: C/image-viewer.c.page:221(section/title)
+#: C/image-viewer.cpp.page:209(section/title)
+#: C/image-viewer.vala.page:279(section/title)
+#: C/photo-wall.c.page:391(section/title)
 msgid "Build and run the application"
 msgstr "Construír e executar o aplicativo"
 
-#: C/guitar-tuner.c.page:252(section/p)
-#: C/guitar-tuner.vala.page:248(section/p)
-#: C/image-viewer.c.page:217(section/p) C/image-viewer.cpp.page:205(section/p)
-#: C/image-viewer.vala.page:275(section/p)
+#: C/guitar-tuner.c.page:257(section/p)
+#: C/guitar-tuner.vala.page:253(section/p)
+#: C/image-viewer.c.page:222(section/p) C/image-viewer.cpp.page:210(section/p)
+#: C/image-viewer.vala.page:280(section/p)
 msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Build</"
 "gui><gui>Build Project</gui></guiseq> to build everything again, and then "
 "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start the application."
 msgstr ""
 
-#: C/guitar-tuner.c.page:253(section/p) C/guitar-tuner.cpp.page:251(section/p)
-#: C/guitar-tuner.vala.page:249(section/p)
+#: C/guitar-tuner.c.page:258(section/p) C/guitar-tuner.cpp.page:256(section/p)
+#: C/guitar-tuner.vala.page:254(section/p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
 "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
 "and enjoy!"
 msgstr ""
 
-#: C/guitar-tuner.c.page:257(section/title)
-#: C/guitar-tuner.cpp.page:255(section/title)
-#: C/guitar-tuner.js.page:234(section/title)
-#: C/guitar-tuner.py.page:229(section/title)
-#: C/guitar-tuner.vala.page:253(section/title)
-#: C/image-viewer.c.page:222(section/title)
-#: C/image-viewer.cpp.page:210(section/title)
-#: C/image-viewer.js.page:311(section/title)
-#: C/image-viewer.py.page:225(section/title)
-#: C/image-viewer.vala.page:282(section/title)
-#: C/magic-mirror.vala.page:144(section/title)
-#: C/photo-wall.c.page:379(section/title)
-#: C/record-collection.js.page:291(section/title)
+#: C/guitar-tuner.c.page:262(section/title)
+#: C/guitar-tuner.cpp.page:260(section/title)
+#: C/guitar-tuner.js.page:241(section/title)
+#: C/guitar-tuner.py.page:239(section/title)
+#: C/guitar-tuner.vala.page:258(section/title)
+#: C/image-viewer.c.page:227(section/title)
+#: C/image-viewer.cpp.page:215(section/title)
+#: C/image-viewer.js.page:315(section/title)
+#: C/image-viewer.py.page:229(section/title)
+#: C/image-viewer.vala.page:287(section/title)
+#: C/magic-mirror.vala.page:149(section/title)
+#: C/photo-wall.c.page:399(section/title)
+#: C/record-collection.js.page:296(section/title)
 msgid "Reference Implementation"
 msgstr "Implementación de referencia"
 
-#: C/guitar-tuner.c.page:258(section/p)
+#: C/guitar-tuner.c.page:263(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
@@ -10922,42 +11094,42 @@ msgstr ""
 "Se ten problemas ao executar este titorial compare o seu código con este "
 "<link href=\"guitar-tuner/guitar-tuner.c\">código de referencia</link>."
 
-#: C/guitar-tuner.c.page:262(section/title)
-#: C/guitar-tuner.cpp.page:268(section/title)
-#: C/guitar-tuner.py.page:234(section/title)
-#: C/guitar-tuner.vala.page:264(section/title)
-#: C/image-viewer.c.page:227(section/title)
-#: C/image-viewer.cpp.page:215(section/title)
-#: C/image-viewer.js.page:316(section/title)
-#: C/image-viewer.py.page:230(section/title)
-#: C/image-viewer.vala.page:287(section/title)
+#: C/guitar-tuner.c.page:267(section/title)
+#: C/guitar-tuner.cpp.page:273(section/title)
+#: C/guitar-tuner.py.page:244(section/title)
+#: C/guitar-tuner.vala.page:269(section/title)
+#: C/image-viewer.c.page:232(section/title)
+#: C/image-viewer.cpp.page:220(section/title)
+#: C/image-viewer.js.page:320(section/title)
+#: C/image-viewer.py.page:234(section/title)
+#: C/image-viewer.vala.page:292(section/title)
 msgid "Next steps"
 msgstr "Seguintes pasos"
 
-#: C/guitar-tuner.c.page:263(section/p) C/guitar-tuner.cpp.page:269(section/p)
-#: C/guitar-tuner.py.page:235(section/p)
-#: C/guitar-tuner.vala.page:265(section/p)
-#: C/image-viewer.c.page:228(section/p) C/image-viewer.cpp.page:216(section/p)
-#: C/image-viewer.js.page:317(section/p) C/image-viewer.py.page:231(section/p)
-#: C/image-viewer.vala.page:288(section/p)
+#: C/guitar-tuner.c.page:268(section/p) C/guitar-tuner.cpp.page:274(section/p)
+#: C/guitar-tuner.py.page:245(section/p)
+#: C/guitar-tuner.vala.page:270(section/p)
+#: C/image-viewer.c.page:233(section/p) C/image-viewer.cpp.page:221(section/p)
+#: C/image-viewer.js.page:321(section/p) C/image-viewer.py.page:235(section/p)
+#: C/image-viewer.vala.page:293(section/p)
 msgid "Here are some ideas for how you can extend this simple demonstration:"
 msgstr ""
 "Aquí hai algunhas ideas sobre como pode estender esta sinxela demostración:"
 
-#: C/guitar-tuner.c.page:266(item/p) C/guitar-tuner.cpp.page:272(item/p)
-#: C/guitar-tuner.py.page:238(item/p) C/guitar-tuner.vala.page:268(item/p)
+#: C/guitar-tuner.c.page:271(item/p) C/guitar-tuner.cpp.page:277(item/p)
+#: C/guitar-tuner.py.page:248(item/p) C/guitar-tuner.vala.page:273(item/p)
 msgid "Have the program automatically cycle through the notes."
 msgstr "Facer que o programa reproduza de forma cíclica as notas."
 
-#: C/guitar-tuner.c.page:269(item/p) C/guitar-tuner.cpp.page:275(item/p)
-#: C/guitar-tuner.py.page:241(item/p) C/guitar-tuner.vala.page:271(item/p)
+#: C/guitar-tuner.c.page:274(item/p) C/guitar-tuner.cpp.page:280(item/p)
+#: C/guitar-tuner.py.page:251(item/p) C/guitar-tuner.vala.page:276(item/p)
 msgid "Make the program play recordings of real guitar strings being plucked."
 msgstr ""
 "Facer que o programa reproduza gravacións de cordas de guitarras que se "
 "están afinando."
 
-#: C/guitar-tuner.c.page:270(item/p) C/guitar-tuner.cpp.page:276(item/p)
-#: C/guitar-tuner.py.page:242(item/p) C/guitar-tuner.vala.page:272(item/p)
+#: C/guitar-tuner.c.page:275(item/p) C/guitar-tuner.cpp.page:281(item/p)
+#: C/guitar-tuner.py.page:252(item/p) C/guitar-tuner.vala.page:277(item/p)
 msgid ""
 "To do this, you would need to set up a more complicated GStreamer pipeline "
 "which allows you to load and play back music files. You'll have to choose "
@@ -10967,8 +11139,8 @@ msgid ""
 "example."
 msgstr ""
 
-#: C/guitar-tuner.c.page:271(item/p) C/guitar-tuner.cpp.page:277(item/p)
-#: C/guitar-tuner.py.page:243(item/p) C/guitar-tuner.vala.page:273(item/p)
+#: C/guitar-tuner.c.page:276(item/p) C/guitar-tuner.cpp.page:282(item/p)
+#: C/guitar-tuner.py.page:253(item/p) C/guitar-tuner.vala.page:278(item/p)
 msgid ""
 "You might need to connect the elements in more complicated ways too. This "
 "could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
@@ -10979,13 +11151,13 @@ msgid ""
 "command useful."
 msgstr ""
 
-#: C/guitar-tuner.c.page:274(item/p) C/guitar-tuner.cpp.page:280(item/p)
-#: C/guitar-tuner.py.page:246(item/p) C/guitar-tuner.vala.page:276(item/p)
+#: C/guitar-tuner.c.page:279(item/p) C/guitar-tuner.cpp.page:285(item/p)
+#: C/guitar-tuner.py.page:256(item/p) C/guitar-tuner.vala.page:281(item/p)
 msgid "Automatically analyze notes that the user plays."
 msgstr "Analizar automaticamente as notas que toca o músico."
 
-#: C/guitar-tuner.c.page:275(item/p) C/guitar-tuner.cpp.page:281(item/p)
-#: C/guitar-tuner.py.page:247(item/p) C/guitar-tuner.vala.page:277(item/p)
+#: C/guitar-tuner.c.page:280(item/p) C/guitar-tuner.cpp.page:286(item/p)
+#: C/guitar-tuner.py.page:257(item/p) C/guitar-tuner.vala.page:282(item/p)
 msgid ""
 "You could connect a microphone and record sounds from it using an <link href="
 "\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
@@ -11008,11 +11180,11 @@ msgstr ""
 "Usar GTKmm y GStreamer para construír un sinxelo afinador de guitarra para "
 "GNOME. Mostra como usar o deseñador de interfaces."
 
-#: C/guitar-tuner.cpp.page:33(item/p)
+#: C/guitar-tuner.cpp.page:38(item/p)
 msgid "Basic knowledge of the C++ programming language"
 msgstr "Coñecemento básico da linguaxe de programación C++"
 
-#: C/guitar-tuner.cpp.page:47(item/p)
+#: C/guitar-tuner.cpp.page:52(item/p)
 msgid ""
 "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
 "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
@@ -11022,14 +11194,14 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.cpp.page:50(item/p)
+#: C/guitar-tuner.cpp.page:55(item/p)
 msgid ""
 "Make sure that <gui>Configure external packages</gui> is selected. On the "
 "next page, select <em>gstreamermm-0.10</em> from the list to include the "
 "GStreamermm library in your project."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:54(item/p)
+#: C/guitar-tuner.cpp.page:59(item/p)
 msgid ""
 "Click <gui>Finished</gui> and the project will be created for you. Open "
 "<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
@@ -11039,7 +11211,7 @@ msgstr ""
 "file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. Debería "
 "ver algún código que comeza coas liñas:"
 
-#: C/guitar-tuner.cpp.page:55(item/code)
+#: C/guitar-tuner.cpp.page:60(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11047,13 +11219,13 @@ msgid ""
 "#include &lt;iostream&gt;"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:64(section/p) C/image-viewer.cpp.page:61(section/p)
+#: C/guitar-tuner.cpp.page:69(section/p) C/image-viewer.cpp.page:66(section/p)
 msgid ""
 "This is a very basic C++ code setting up GTKmm. More details are given "
 "below; skip this list if you understand the basics:"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:68(item/p)
+#: C/guitar-tuner.cpp.page:73(item/p)
 msgid ""
 "The three <code>#include</code> lines at the top include the <code>config</"
 "code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
@@ -11061,7 +11233,7 @@ msgid ""
 "the rest of the code."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:71(item/p)
+#: C/guitar-tuner.cpp.page:76(item/p)
 msgid ""
 "The <code>main</code> function creates a new window by opening a GtkBuilder "
 "file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
@@ -11070,7 +11242,7 @@ msgid ""
 "design GtkBuilder user interfaces."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:74(item/p)
+#: C/guitar-tuner.cpp.page:79(item/p)
 msgid ""
 "Afterwards it calls a few functions which set up and then run the "
 "application. The <code>kit.run</code> function starts the GTKmm main loop, "
@@ -11078,7 +11250,7 @@ msgid ""
 "and key presses)."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:99(item/p)
+#: C/guitar-tuner.cpp.page:104(item/p)
 msgid ""
 "While the button is still selected, change the <gui>Label</gui> property in "
 "the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
@@ -11086,7 +11258,7 @@ msgid ""
 "name we will refer to the widget later in code."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:103(item/p)
+#: C/guitar-tuner.cpp.page:108(item/p)
 msgid ""
 "Repeat the above steps for the other buttons, adding the next 5 strings with "
 "the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
@@ -11096,13 +11268,13 @@ msgstr ""
 "restantes coas etiquetas <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e "
 "<em>e</em> e os nomes <em>botón_A</em>, etc."
 
-#: C/guitar-tuner.cpp.page:106(item/p)
+#: C/guitar-tuner.cpp.page:111(item/p)
 msgid ""
 "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
 "guiseq>) and close the file."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:113(section/p)
+#: C/guitar-tuner.cpp.page:118(section/p)
 msgid ""
 "GStreamer is GNOME's multimedia framework — you can use it for playing, "
 "recording, and processing video, audio, webcam streams and the like. Here, "
@@ -11110,11 +11282,11 @@ msgid ""
 "binding to GStreamer which we will use here."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:123(section/title)
+#: C/guitar-tuner.cpp.page:128(section/title)
 msgid "Using GStreamermm"
 msgstr "Usar GStreamermm"
 
-#: C/guitar-tuner.cpp.page:124(section/p)
+#: C/guitar-tuner.cpp.page:129(section/p)
 msgid ""
 "To use GStreamermm, it has to be initialised. We do that by adding the "
 "following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
@@ -11124,18 +11296,18 @@ msgstr ""
 "liña de código xunto á liña <code>Gtk::Main kit(argc, argv);</code> en "
 "<file>main.cc</file>:"
 
-#: C/guitar-tuner.cpp.page:126(section/code)
+#: C/guitar-tuner.cpp.page:131(section/code)
 #, no-wrap
 msgid "\tGst::init (argc, argv);"
 msgstr "\tGst::init (argc, argv);"
 
-#: C/guitar-tuner.cpp.page:127(section/p)
+#: C/guitar-tuner.cpp.page:132(section/p)
 msgid ""
 "While we are on it, also make sure that the <file>gstreamermm.h</file> is "
 "included in <file>main.cc</file> properly."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:131(section/p)
+#: C/guitar-tuner.cpp.page:136(section/p)
 msgid ""
 "To simplify the handling of the pipeline we will define a helper class "
 "<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
@@ -11146,7 +11318,7 @@ msgstr ""
 "este exemplo o máis simple posíbel, aínda que normalmente debería facerse "
 "nun ficheiro separado:"
 
-#: C/guitar-tuner.cpp.page:134(section/code)
+#: C/guitar-tuner.cpp.page:139(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11193,11 +11365,11 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:178(section/p)
+#: C/guitar-tuner.cpp.page:183(section/p)
 msgid "The code has the following purpose:"
 msgstr "O código ten o seguinte propósito:"
 
-#: C/guitar-tuner.cpp.page:181(item/p)
+#: C/guitar-tuner.cpp.page:186(item/p)
 msgid ""
 "In the constructor, source and sink GStreamer elements (<code>Gst::Element</"
 "code>) are created, and a pipeline element (which will be used as a "
@@ -11209,7 +11381,7 @@ msgid ""
 "is ready to run."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:184(item/p)
+#: C/guitar-tuner.cpp.page:189(item/p)
 msgid ""
 "<code>start_playing</code> sets the source element to play a particular "
 "frequency and then starts the pipeline so the sound actually starts playing. "
@@ -11222,7 +11394,7 @@ msgstr ""
 "un temporizador de 200 ms para deter a reprodución chamando a "
 "<code>stop_playing</code>."
 
-#: C/guitar-tuner.cpp.page:189(item/p)
+#: C/guitar-tuner.cpp.page:194(item/p)
 msgid ""
 "In <code>stop_playing</code> which is called when the timeout has elapsed, "
 "the pipeline is stopped and as such there isn't any sound output anymore. As "
@@ -11231,11 +11403,11 @@ msgid ""
 "is destroyed."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:197(section/title)
+#: C/guitar-tuner.cpp.page:202(section/title)
 msgid "Connecting the signals"
 msgstr "Conectar os sinais"
 
-#: C/guitar-tuner.cpp.page:198(section/p)
+#: C/guitar-tuner.cpp.page:203(section/p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. That means "
 "that we have to connect to the signal that is fired when the user clicks the "
@@ -11249,13 +11421,13 @@ msgstr ""
 "a reprodución do tono. GTKmm fai isto moi doado a que podemos ligar de forma "
 "sinxela a información coa biblioteca <em>sigc</em>."
 
-#: C/guitar-tuner.cpp.page:203(section/p)
+#: C/guitar-tuner.cpp.page:208(section/p)
 msgid ""
 "The function that is called when the user clicks a button can be pretty "
 "simple, as all the interesting stuff is done in the helper class now:"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:205(section/code)
+#: C/guitar-tuner.cpp.page:210(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11266,7 +11438,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:212(section/p)
+#: C/guitar-tuner.cpp.page:217(section/p)
 msgid ""
 "It only calls the helper class we defined before to play the correct "
 "frequencies. With some more clever code we would also have been able to "
@@ -11274,14 +11446,14 @@ msgid ""
 "that to use as an exercise."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:216(section/p)
+#: C/guitar-tuner.cpp.page:221(section/p)
 msgid ""
 "The code to set up the signals should be added to the <code>main()</code> "
 "function just after the <code>builder-&gt;get_widget(\"main_window\", "
 "main_win);</code> line:"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:218(section/code)
+#: C/guitar-tuner.cpp.page:223(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11290,23 +11462,23 @@ msgid ""
 "\n"
 "builder-&gt;get_widget(\"button_E\", button);\n"
 "button-&gt;signal_clicked().connect (sigc::bind&lt;double, 
Sound*&gt;(sigc::ptr_fun(&amp;on_button_clicked),\n"
-"                                              369.23, &amp;sound));\n"
+"                                              329.63, &amp;sound));\n"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:228(item/p)
+#: C/guitar-tuner.cpp.page:233(item/p)
 msgid ""
 "At first we create an instance of our helper class that we want to use now "
 "and declare a variable for the button we want to connect to."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:232(item/p)
+#: C/guitar-tuner.cpp.page:237(item/p)
 msgid ""
 "Next, we receive the button object from the user interface that was created "
 "out of the user interface file. Remember that <em>button_E</em> is the name "
 "we gave to the first button."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:236(item/p)
+#: C/guitar-tuner.cpp.page:241(item/p)
 msgid ""
 "Finally we connect the <em>clicked</em> signal. This isn't fully "
 "straightforward because this is done in a fully type-safe way and we "
@@ -11318,7 +11490,7 @@ msgid ""
 "helper class."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:243(section/p)
+#: C/guitar-tuner.cpp.page:248(section/p)
 msgid ""
 "Now that we have set up the <em>E</em> button we also need to connect the "
 "other buttons according to their frequencies: 440 for A, 587.33 for D, "
@@ -11326,14 +11498,14 @@ msgid ""
 "same way, just passing a different frequency to the handler."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:250(section/p)
+#: C/guitar-tuner.cpp.page:255(section/p)
 msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Build</"
 "gui><gui>Build Project</gui></guiseq> to build everything again, and then "
 "<guiseq><gui>Run</gui><gui>Run</gui></guiseq> to start the application."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:256(section/p)
+#: C/guitar-tuner.cpp.page:261(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
@@ -11341,11 +11513,11 @@ msgstr ""
 "Se ten problemas ao executar este titorial compare o seu código con este "
 "<link href=\"guitar-tuner/guitar-tuner.cc\">código de referencia</link>."
 
-#: C/guitar-tuner.cpp.page:260(section/title)
+#: C/guitar-tuner.cpp.page:265(section/title)
 msgid "Further Reading"
 msgstr "Lectura complementaria"
 
-#: C/guitar-tuner.cpp.page:261(section/p)
+#: C/guitar-tuner.cpp.page:266(section/p)
 msgid ""
 "Many of the things shown above are explained in detail in the <link href="
 "\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</link> "
@@ -11358,7 +11530,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Guitar Tuner"
 msgctxt "text"
-msgid "Guitar Tuner (JavaScript)"
+msgid "Guitar tuner (JavaScript)"
 msgstr "Afinador de guitarra"
 
 #: C/guitar-tuner.js.page:16(info/desc)
@@ -11367,18 +11539,11 @@ msgstr "Afinador de guitarra"
 #| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
 #| "GNOME. Shows off how to use the interface designer."
 msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
+"Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME."
 msgstr ""
 "Usar GTK+ y GStreamer para construír un sinxelo afinador de guitarra para "
 "GNOME. Mostra como usar o deseñador de interfaces."
 
-#: C/guitar-tuner.js.page:19(page/title) C/guitar-tuner.py.page:23(page/title)
-#: C/guitar-tuner.vala.page:26(page/title)
-#, fuzzy
-#| msgid "Guitar Tuner"
-msgid "2 Guitar Tuner"
-msgstr "Afinador de guitarra"
-
 #: C/guitar-tuner.js.page:22(synopsis/p)
 msgid ""
 "In this tutorial we'll construct a small application, Guitar Tuner, using "
@@ -11433,7 +11598,7 @@ msgstr ""
 msgid "<link xref=\"#terminal\">Running the application form Terminal</link>"
 msgstr "Executar o aplicativo"
 
-#: C/guitar-tuner.js.page:35(page/p) C/weatherApp.js.page:34(page/p)
+#: C/guitar-tuner.js.page:35(page/p) C/weatherApp.js.page:39(page/p)
 msgid "After reading this tutorial, you should see this in your screen:"
 msgstr "Despois de ler este manual, debería ver isto na pantalla:"
 
@@ -11565,7 +11730,7 @@ msgstr ""
 #, no-wrap
 msgid ""
 "\n"
-"var frequencies = {E: 369.23, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
 "\n"
 "function playSound(frequency){\n"
 "  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
@@ -11637,25 +11802,25 @@ msgstr ""
 msgid ""
 "The method of connecting button clicks to playSound with the correct tune is "
 "by using the connect method of the button widget. So we choose a button to "
-"be connected and type E.connect(\"clicked\", function(){playSound"
-"(frequencies.E);}); The connect tells that when pushing E, something should "
-"happen. The \"clicked\" tells the type of something happening to E and then "
-"in the function(){}; we the playSound happen with the correct tune that "
-"should be associated to the button."
+"be connected and type <code>E.connect(\"clicked\", function(){playSound"
+"(frequencies.E);});</code> The <code>connect</code> tells that when pushing "
+"E, something should happen. The <code>clicked</code> tells the type of the "
+"signal happening to E and then in the <code>function(){};</code> we call "
+"playSound with the correct note that should be associated with the button."
 msgstr ""
 
-#: C/guitar-tuner.js.page:149(section/title)
+#: C/guitar-tuner.js.page:156(section/title)
 msgid "The whole program"
 msgstr ""
 
-#: C/guitar-tuner.js.page:150(section/p)
+#: C/guitar-tuner.js.page:157(section/p)
 msgid ""
 "So this is what all the parts combined looks like. When running this code, "
 "you should be able to tune your guitar(if you have correctly calibrated "
 "speakers)."
 msgstr ""
 
-#: C/guitar-tuner.js.page:151(section/code)
+#: C/guitar-tuner.js.page:158(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11681,7 +11846,7 @@ msgid ""
 "var B = new Gtk.Button({label: \"B\"});\n"
 "var e = new Gtk.Button({label: \"e\"});\n"
 "\n"
-"var frequencies = {E: 369.23, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
 "\n"
 "\n"
 "function playSound(frequency){\n"
@@ -11735,24 +11900,24 @@ msgid ""
 "Gtk.main();"
 msgstr ""
 
-#: C/guitar-tuner.js.page:229(section/title)
+#: C/guitar-tuner.js.page:236(section/title)
 #, fuzzy
 #| msgid "Run the application"
 msgid "Running the application form Terminal"
 msgstr "Executar o aplicativo"
 
-#: C/guitar-tuner.js.page:230(section/p)
+#: C/guitar-tuner.js.page:237(section/p)
 msgid ""
 "To run this application open Terminal, go to the folder where your "
 "application is stored and then run"
 msgstr ""
 
-#: C/guitar-tuner.js.page:230(section/screen)
+#: C/guitar-tuner.js.page:237(section/screen)
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
 msgstr ""
 
-#: C/guitar-tuner.js.page:235(section/p)
+#: C/guitar-tuner.js.page:242(section/p)
 #, fuzzy
 #| msgid ""
 #| "If you run into problems with the tutorial, compare your code with this "
@@ -11768,14 +11933,14 @@ msgstr ""
 #, fuzzy
 #| msgid "Guitar Tuner"
 msgctxt "text"
-msgid "Guitar Tuner (Python)"
+msgid "Guitar tuner (Python)"
 msgstr "Afinador de guitarra"
 
-#: C/guitar-tuner.py.page:35(item/p)
+#: C/guitar-tuner.py.page:45(item/p)
 msgid "Basic knowledge of the Python programming language"
 msgstr "Coñecemento básico da linguaxe de programación Python"
 
-#: C/guitar-tuner.py.page:49(item/p)
+#: C/guitar-tuner.py.page:59(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
@@ -11790,7 +11955,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.py.page:52(item/p)
+#: C/guitar-tuner.py.page:62(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
@@ -11800,7 +11965,7 @@ msgstr ""
 "py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
 "Debería ver algo de código que comece coas liñas:"
 
-#: C/guitar-tuner.py.page:53(item/code)
+#: C/guitar-tuner.py.page:63(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11808,45 +11973,45 @@ msgid ""
 "import os, sys"
 msgstr ""
 
-#: C/guitar-tuner.py.page:61(section/title)
+#: C/guitar-tuner.py.page:71(section/title)
 msgid "Run the code for the first time"
 msgstr "Executar o código por primeira vez"
 
-#: C/guitar-tuner.py.page:62(section/p)
+#: C/guitar-tuner.py.page:72(section/p)
 msgid ""
 "Most of the code in the file is template code. It loads an (empty) window "
 "from the user interface description file and shows it. More details are "
 "given below; skip this list if you understand the basics:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:66(item/p)
+#: C/guitar-tuner.py.page:76(item/p)
 msgid ""
 "The <code>import</code> lines at the top include the tell Python to load the "
 "user interface and system libraries needed."
 msgstr ""
 
-#: C/guitar-tuner.py.page:70(item/p)
+#: C/guitar-tuner.py.page:80(item/p)
 msgid ""
 "A class is declared that will be the main class for our application. In the "
 "<code>__init__</code> method the main window is loaded from the GtkBuilder "
 "file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
 msgstr ""
 
-#: C/guitar-tuner.py.page:73(item/p)
+#: C/guitar-tuner.py.page:83(item/p)
 msgid ""
 "Connecting signals is how you define what happens when you push a button, or "
 "when some other event happens. Here, the <code>destroy</code> method is "
 "called (and quits the app) when you close the window."
 msgstr ""
 
-#: C/guitar-tuner.py.page:76(item/p)
+#: C/guitar-tuner.py.page:86(item/p)
 msgid ""
 "The <code>main</code> function is run by default when you start a Python "
 "application. It just creates an instance of the main class and starts the "
 "main loop to bring up the window."
 msgstr ""
 
-#: C/guitar-tuner.py.page:81(section/p)
+#: C/guitar-tuner.py.page:91(section/p)
 msgid ""
 "This code is ready to be used, so you can run it by clicking "
 "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
@@ -11854,7 +12019,7 @@ msgstr ""
 "Este código está listo para o seu uso, polo que pode executalo premendo "
 "<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq>."
 
-#: C/guitar-tuner.py.page:86(section/p)
+#: C/guitar-tuner.py.page:96(section/p)
 msgid ""
 "A description of the user interface (UI) is contained in the GtkBuilder "
 "file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
@@ -11863,11 +12028,11 @@ msgid ""
 "available widgets is on the left."
 msgstr ""
 
-#: C/guitar-tuner.py.page:116(section/title)
+#: C/guitar-tuner.py.page:126(section/title)
 msgid "Write the signal handler"
 msgstr "Escribir o manexador de sinais"
 
-#: C/guitar-tuner.py.page:118(section/p)
+#: C/guitar-tuner.py.page:128(section/p)
 msgid ""
 "To do this, open <file>guitar_tuner.py</file> while the user interface file "
 "is still open. Switch to the <gui>Signals</gui> tab, which you already used "
@@ -11876,43 +12041,43 @@ msgid ""
 "following code will be added to your source file:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:120(section/code)
+#: C/guitar-tuner.py.page:130(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "def on_button_clicked (self, button):\n"
 msgstr ""
 
-#: C/guitar-tuner.py.page:124(section/p)
+#: C/guitar-tuner.py.page:134(section/p)
 msgid ""
 "This signal handler has two arguments: the usual Python class pointer, and "
 "the <code>Gtk.Button</code> that called the function."
 msgstr ""
 
-#: C/guitar-tuner.py.page:142(section/p)
+#: C/guitar-tuner.py.page:152(section/p)
 msgid ""
 "Change the import line in <file>guitar_tuner.py</file>, just at the "
 "beginning to :"
 msgstr ""
 
-#: C/guitar-tuner.py.page:143(section/code)
+#: C/guitar-tuner.py.page:153(section/code)
 #, no-wrap
 msgid "from gi.repository import Gtk, Gst, GObject "
 msgstr ""
 
-#: C/guitar-tuner.py.page:144(section/p)
+#: C/guitar-tuner.py.page:154(section/p)
 msgid ""
 "The <code>Gst</code> includes the GStreamer library. You also need to "
 "initialise GStreamer properly which is done in the <code>main()</code> "
 "method with this call added above the <code>app = GUI()</code> line:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:147(section/code)
+#: C/guitar-tuner.py.page:157(section/code)
 #, no-wrap
 msgid "Gst.init_check(sys.argv)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:148(section/p)
+#: C/guitar-tuner.py.page:158(section/p)
 #, fuzzy
 #| msgid ""
 #| "Then, copy the following function into <file>main.c</file> above the "
@@ -11924,7 +12089,7 @@ msgstr ""
 "Despois, copie a seguinte función en <file>main.c</file> enriba da función "
 "<code>on_button_clicked</code> baleira:"
 
-#: C/guitar-tuner.py.page:149(section/code)
+#: C/guitar-tuner.py.page:159(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -11942,7 +12107,7 @@ msgid ""
 "\tGObject.timeout_add(self.LENGTH, self.pipeline_stop, pipeline)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:164(item/p)
+#: C/guitar-tuner.py.page:174(item/p)
 msgid ""
 "The first three lines create source and sink GStreamer elements and a "
 "pipeline element (which will be used as a container for the other two "
@@ -11952,7 +12117,7 @@ msgid ""
 "sound card output)."
 msgstr ""
 
-#: C/guitar-tuner.py.page:167(item/p)
+#: C/guitar-tuner.py.page:177(item/p)
 msgid ""
 "The call to <code>source.set_property</code> sets the <code>freq</code> "
 "property of the source element to <code>frequency</code>, which was passed "
@@ -11961,7 +12126,7 @@ msgid ""
 "later on."
 msgstr ""
 
-#: C/guitar-tuner.py.page:170(item/p)
+#: C/guitar-tuner.py.page:180(item/p)
 msgid ""
 "The next two lines call <code>pipeline.add</code>, putting the source and "
 "sink into the pipeline. The pipeline can contain multiple other GStreamer "
@@ -11969,7 +12134,7 @@ msgid ""
 "pipeline by calling its <code>add</code> method repeatedly."
 msgstr ""
 
-#: C/guitar-tuner.py.page:173(item/p)
+#: C/guitar-tuner.py.page:183(item/p)
 msgid ""
 "Next <code>pipeline.set_state</code> is used to start playback, by setting "
 "the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
@@ -11978,7 +12143,7 @@ msgstr ""
 "estabelecendo o estado da tubería a reprodución (<code>Gst.State.PLAYING</"
 "code>)."
 
-#: C/guitar-tuner.py.page:181(section/p)
+#: C/guitar-tuner.py.page:191(section/p)
 msgid ""
 "We don't want to play an annoying tone forever, so the last thing "
 "<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
@@ -11988,7 +12153,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/guitar-tuner.py.page:182(section/p)
+#: C/guitar-tuner.py.page:192(section/p)
 msgid ""
 "Now, we'll write the <code>pipeline_stop</code> function which is called by "
 "<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
@@ -11998,7 +12163,7 @@ msgstr ""
 "<code>GObject.timeout_add</code>. Inserte o código seguinte <em>enriba</em> "
 "da función <code>play_sound</code>:"
 
-#: C/guitar-tuner.py.page:183(section/code)
+#: C/guitar-tuner.py.page:193(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12007,26 +12172,26 @@ msgid ""
 "\treturn False\n"
 msgstr ""
 
-#: C/guitar-tuner.py.page:188(section/p)
+#: C/guitar-tuner.py.page:198(section/p)
 msgid ""
 "You need to define the <code>LENGTH</code> constant inside the class, so add "
 "this code at the beginning of the main class:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:190(section/code)
+#: C/guitar-tuner.py.page:200(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "LENGTH = 500\n"
 msgstr ""
 
-#: C/guitar-tuner.py.page:193(section/p)
+#: C/guitar-tuner.py.page:203(section/p)
 msgid ""
 "The call to <code>pipeline.set_state</code> pauses the playback of the "
 "pipeline."
 msgstr ""
 
-#: C/guitar-tuner.py.page:198(section/p)
+#: C/guitar-tuner.py.page:208(section/p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. First of "
 "all, we need to know the frequencies for the six guitar strings, which are "
@@ -12034,13 +12199,13 @@ msgid ""
 "easily map them to the names of the strings:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:200(section/code)
+#: C/guitar-tuner.py.page:210(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "# Frequencies of the strings\n"
 "frequencies = {\n"
-"\t'E': 369.23,\n"
+"\t'E': 329.63,\n"
 "\t'A': 440,\n"
 "\t'D': 587.33,\n"
 "\t'G': 783.99,\n"
@@ -12049,7 +12214,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/guitar-tuner.py.page:212(section/code)
+#: C/guitar-tuner.py.page:222(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12060,7 +12225,7 @@ msgid ""
 "\tself.play_sound (self.frequencies[text])\n"
 msgstr ""
 
-#: C/guitar-tuner.py.page:219(section/p)
+#: C/guitar-tuner.py.page:229(section/p)
 msgid ""
 "The button that was clicked is passed as an argument (<code>button</code>) "
 "to <code>on_button_clicked</code>. We can get the label of that button by "
@@ -12068,21 +12233,21 @@ msgid ""
 "using <code>label.get_label</code>."
 msgstr ""
 
-#: C/guitar-tuner.py.page:220(section/p)
+#: C/guitar-tuner.py.page:230(section/p)
 msgid ""
 "The label text is then used as a key for the dictionary and "
 "<code>play_sound</code> is called with the frequency appropriate for that "
 "note. This plays the tone; we have a working guitar tuner!"
 msgstr ""
 
-#: C/guitar-tuner.py.page:224(section/title)
-#: C/image-viewer.js.page:306(section/title)
-#: C/image-viewer.py.page:220(section/title)
-#: C/record-collection.js.page:286(section/title)
+#: C/guitar-tuner.py.page:234(section/title)
+#: C/image-viewer.js.page:310(section/title)
+#: C/image-viewer.py.page:224(section/title)
+#: C/record-collection.js.page:291(section/title)
 msgid "Run the application"
 msgstr "Executar o aplicativo"
 
-#: C/guitar-tuner.py.page:225(section/p)
+#: C/guitar-tuner.py.page:235(section/p)
 msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Run</"
 "gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
@@ -12090,7 +12255,7 @@ msgstr ""
 "Todo o código debería estar listo. Prema <guiseq><gui>Executar</"
 "gui><gui>Executar</gui></guiseq> para iniciar o aplicativo. Góceo!"
 
-#: C/guitar-tuner.py.page:230(section/p)
+#: C/guitar-tuner.py.page:240(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
@@ -12105,14 +12270,14 @@ msgstr ""
 #| "GNOME. Shows off how to use the interface designer."
 msgid ""
 "Use <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
-"\">Gtk+</link> and <link href=\"http://developer.gnome.org/platform-overview/";
+"\">GTK+</link> and <link href=\"http://developer.gnome.org/platform-overview/";
 "stable/gstreamer\">GStreamer</link> to build a simple guitar tuner "
 "application for GNOME. Shows off how to use the interface designer."
 msgstr ""
 "Usar GTK+ y GStreamer para construír un sinxelo afinador de guitarra para "
 "GNOME. Mostra como usar o deseñador de interfaces."
 
-#: C/guitar-tuner.vala.page:29(synopsis/p)
+#: C/guitar-tuner.vala.page:34(synopsis/p)
 #, fuzzy
 #| msgid ""
 #| "In this tutorial, we're going to make a program which plays tones that "
@@ -12124,25 +12289,25 @@ msgstr ""
 "Neste titorial faremos un programa que reproduce tonos que pode usar para "
 "afinar unha guitarra. Aprenderá como:"
 
-#: C/guitar-tuner.vala.page:31(item/p)
+#: C/guitar-tuner.vala.page:36(item/p)
 msgid ""
 "Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
 "link>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:32(item/p)
+#: C/guitar-tuner.vala.page:37(item/p)
 #, fuzzy
 #| msgid "Create a simple GUI with Anjuta's UI designer"
 msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
 msgstr "Crear unha GUI sinxela co deseñador de UI de Anjuta"
 
-#: C/guitar-tuner.vala.page:33(item/p)
+#: C/guitar-tuner.vala.page:38(item/p)
 msgid ""
 "Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
 "gstreamer\">GStreamer</link> library to play sounds."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:37(item/p) C/image-viewer.vala.page:42(item/p)
+#: C/guitar-tuner.vala.page:42(item/p) C/image-viewer.vala.page:47(item/p)
 #, fuzzy
 #| msgid "Basic knowledge of the Vala programming language"
 msgid ""
@@ -12150,19 +12315,19 @@ msgid ""
 "\">Vala</link> programming language."
 msgstr "Coñecemento básico da linguaxe de programación Vala"
 
-#: C/guitar-tuner.vala.page:38(item/p) C/image-viewer.vala.page:43(item/p)
+#: C/guitar-tuner.vala.page:43(item/p) C/image-viewer.vala.page:48(item/p)
 #, fuzzy
 #| msgid "An installed copy of the <em>gjs</em> interpreter"
 msgid "An installed copy of <app>Anjuta</app>."
 msgstr "Unha copia instalada do intérprete <em>gjs</em>"
 
-#: C/guitar-tuner.vala.page:45(section/title)
+#: C/guitar-tuner.vala.page:50(section/title)
 #, fuzzy
 #| msgid "Create a project in Anjuta"
 msgid "Create a project in <app>Anjuta</app>"
 msgstr "Cree un proxecto de Anjuta"
 
-#: C/guitar-tuner.vala.page:49(item/p) C/image-viewer.vala.page:57(item/p)
+#: C/guitar-tuner.vala.page:54(item/p) C/image-viewer.vala.page:62(item/p)
 #, fuzzy
 #| msgid ""
 #| "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
@@ -12175,14 +12340,14 @@ msgstr ""
 "Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
 "gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
 
-#: C/guitar-tuner.vala.page:52(item/p)
+#: C/guitar-tuner.vala.page:57(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
 #| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 #| "<file>guitar-tuner</file> as project name and directory."
 msgid ""
-"Click on the <gui>Vala</gui> tab and select <gui>Gtk+ (Simple)</gui>. Click "
+"Click on the <gui>Vala</gui> tab and select <gui>GTK+ (Simple)</gui>. Click "
 "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
 "<file>guitar-tuner</file> as project name and directory."
 msgstr ""
@@ -12190,7 +12355,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.vala.page:55(item/p)
+#: C/guitar-tuner.vala.page:60(item/p)
 #, fuzzy
 #| msgid ""
 #| "Make sure that <gui>Configure external packages</gui> is selected. On the "
@@ -12206,7 +12371,7 @@ msgstr ""
 "seguinte páxina, seleccione <em>gstreamermm-0.10</em> da lista para incluír "
 "a biblioteca GStreamer no seu proxecto."
 
-#: C/guitar-tuner.vala.page:59(item/p)
+#: C/guitar-tuner.vala.page:64(item/p)
 #, fuzzy
 #| msgid ""
 #| "Click <gui>Apply</gui> and the project will be created for you. Open "
@@ -12222,8 +12387,8 @@ msgstr ""
 "desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. Debería ver "
 "algún código que comeza coas liñas:"
 
-#: C/guitar-tuner.vala.page:60(item/code)
-#: C/magic-mirror.vala.page:64(item/code)
+#: C/guitar-tuner.vala.page:65(item/code)
+#: C/magic-mirror.vala.page:69(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12231,20 +12396,20 @@ msgid ""
 "using Gtk;"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:69(section/p)
+#: C/guitar-tuner.vala.page:74(section/p)
 msgid ""
 "The code loads an (empty) window from the user interface description file "
 "and displays it. More details are given below; you may choose to skip this "
 "list if you understand the basics:"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:73(item/p) C/magic-mirror.vala.page:76(item/p)
+#: C/guitar-tuner.vala.page:78(item/p) C/magic-mirror.vala.page:81(item/p)
 msgid ""
 "The two <code>using</code> lines import namespaces so we don't have to name "
 "them explicitly."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:76(item/p)
+#: C/guitar-tuner.vala.page:81(item/p)
 msgid ""
 "The constructor of the <code>Main</code> class creates a new window by "
 "opening a GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few "
@@ -12254,14 +12419,14 @@ msgid ""
 "interfaces."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:78(note/p)
+#: C/guitar-tuner.vala.page:83(note/p)
 msgid ""
 "Connecting signals is how you define what happens when you push a button, or "
 "when some other event happens. Here, the <code>on_destroy</code> function is "
 "called (and quits the app) when you close the window."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:82(item/p)
+#: C/guitar-tuner.vala.page:87(item/p)
 msgid ""
 "The static <code>main</code> function is run by default when you start a "
 "Vala application. It calls a few functions which create the Main class, set "
@@ -12270,7 +12435,7 @@ msgid ""
 "events (like clicks and key presses)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:86(section/p)
+#: C/guitar-tuner.vala.page:91(section/p)
 msgid ""
 "This code is ready to be used, so you can compile it by clicking "
 "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
@@ -12280,7 +12445,7 @@ msgid ""
 "need to do this once, for the first build."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:91(section/p)
+#: C/guitar-tuner.vala.page:96(section/p)
 msgid ""
 "A description of the user interface (UI) is contained in the GtkBuilder file "
 "<file>src/guitar_tuner.ui</file> defined at the top of the class. To edit "
@@ -12291,14 +12456,14 @@ msgid ""
 "<gui>Palette</gui> of available widgets is on the left."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:93(section/p)
+#: C/guitar-tuner.vala.page:98(section/p)
 msgid ""
 "The layout of every UI in GTK+ is organized using boxes and tables. Let's "
 "use a vertical GtkButtonBox here to assign six GtkButtons, one for each of "
 "the six guitar strings."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:99(item/p)
+#: C/guitar-tuner.vala.page:104(item/p)
 msgid ""
 "In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
 "select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. Then "
@@ -12307,33 +12472,33 @@ msgid ""
 "<input>6</input>. Then click <gui>Create</gui>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:100(note/p)
+#: C/guitar-tuner.vala.page:105(note/p)
 msgid ""
 "You can also change the <gui>Number of elements</gui> and the "
 "<gui>Orientation</gui> in the <gui>General</gui> tab on the right."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:104(item/p)
+#: C/guitar-tuner.vala.page:109(item/p)
 msgid ""
 "Now, from the <gui>Control and Display</gui> section of the <gui>Palette</"
 "gui> choose a <gui>Button</gui> (GtkButton) by clicking on it. Place it into "
 "the first section of the GtkButtonBox by clicking in the first section."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:107(item/p)
+#: C/guitar-tuner.vala.page:112(item/p)
 msgid ""
 "While the button is still selected, scroll down in the <gui>General</gui> "
 "tab on the right to the <gui>Label</gui> property, and change it to <gui>E</"
 "gui>. This will be the low E guitar string."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:108(note/p)
+#: C/guitar-tuner.vala.page:113(note/p)
 msgid ""
 "The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
 "the right."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:113(item/p)
+#: C/guitar-tuner.vala.page:118(item/p)
 msgid ""
 "Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on the "
 "right, and look for the <code>clicked</code> signal of the button. You can "
@@ -12343,7 +12508,7 @@ msgid ""
 "press the <key>Enter</key>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:126(section/p)
+#: C/guitar-tuner.vala.page:131(section/p)
 #, fuzzy
 #| msgid ""
 #| "GStreamer is GNOME's multimedia framework — you can use it for playing, "
@@ -12360,7 +12525,7 @@ msgstr ""
 "para reproducir, gravar e procesar vídeo, son, fluxos de cámara web e "
 "semellantes. Aquí, usarémolo para producir tonos dunha única frecuencia."
 
-#: C/guitar-tuner.vala.page:127(section/p)
+#: C/guitar-tuner.vala.page:132(section/p)
 msgid ""
 "Conceptually, GStreamer works as follows: You create a <link href=\"http://";
 "gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
@@ -12370,7 +12535,7 @@ msgid ""
 "output could be a widget or the soundcard."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:136(section/p)
+#: C/guitar-tuner.vala.page:141(section/p)
 msgid ""
 "In this example we will use a tone generator source called "
 "<code>audiotestsrc</code> and send the output to the default system sound "
@@ -12379,25 +12544,25 @@ msgid ""
 "property of <code>audiotestsrc</code>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:138(section/p)
+#: C/guitar-tuner.vala.page:143(section/p)
 msgid ""
 "We need to add a line to initialize GStreamer; put the following code on the "
 "line above the <code>Gtk.init</code> call in the <code>main</code> function:"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:139(section/code)
+#: C/guitar-tuner.vala.page:144(section/code)
 #, fuzzy, no-wrap
 #| msgid "\tGst::init (argc, argv);"
 msgid "Gst.init (ref args);"
 msgstr "\tGst::init (argc, argv);"
 
-#: C/guitar-tuner.vala.page:140(section/p)
+#: C/guitar-tuner.vala.page:145(section/p)
 msgid ""
 "Then, copy the following function into <file>guitar_tuner.vala</file> inside "
 "our <code>Main</code> class:"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:141(section/code)
+#: C/guitar-tuner.vala.page:146(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12433,7 +12598,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:175(item/p)
+#: C/guitar-tuner.vala.page:180(item/p)
 msgid ""
 "The first three lines create source and sink GStreamer elements (<link href="
 "\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
@@ -12446,7 +12611,7 @@ msgid ""
 "(default sound card output)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:178(item/p)
+#: C/guitar-tuner.vala.page:183(item/p)
 #, fuzzy
 #| msgid ""
 #| "The call to <code>g_object_set</code> sets the <code>freq</code> property "
@@ -12466,7 +12631,7 @@ msgstr ""
 "argumento á función <code>play_sound</code>. Isto só é a frecuencia da nota "
 "en Hertz, algunhas das frecuencias máis útiles definiranse máis tarde."
 
-#: C/guitar-tuner.vala.page:181(item/p)
+#: C/guitar-tuner.vala.page:186(item/p)
 msgid ""
 "<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
 "\"><code>pipeline.add</code></link> puts the source and sink into the "
@@ -12477,7 +12642,7 @@ msgid ""
 "<code>pipeline.add</code>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:184(item/p)
+#: C/guitar-tuner.vala.page:189(item/p)
 msgid ""
 "Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
 "\"><code>sink.link</code></link> is used to connect the elements together, "
@@ -12489,7 +12654,7 @@ msgid ""
 "playing (<code>Gst.State.PLAYING</code>)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:187(item/p)
+#: C/guitar-tuner.vala.page:192(item/p)
 msgid ""
 "We don't want to play an annoying tone forever, so the last thing "
 "<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.org/";
@@ -12500,7 +12665,7 @@ msgid ""
 "otherwise it would continue to be called every 200 ms."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:198(section/p)
+#: C/guitar-tuner.vala.page:203(section/p)
 msgid ""
 "In the UI designer, you made it so that all of the buttons will call the "
 "same function, <gui>on_button_clicked</gui>, when they are clicked. Actually "
@@ -12509,7 +12674,7 @@ msgid ""
 "in the source file."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:199(section/p)
+#: C/guitar-tuner.vala.page:204(section/p)
 msgid ""
 "To do this, in the user interface file (guitar_tuner.ui) select one of the "
 "buttons by clicking on it, then open <file>guitar_tuner.vala</file> (by "
@@ -12520,7 +12685,7 @@ msgid ""
 "source file:"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:201(section/code)
+#: C/guitar-tuner.vala.page:206(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12529,13 +12694,13 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:206(note/p)
+#: C/guitar-tuner.vala.page:211(note/p)
 msgid ""
 "You can also just type the code at the beginning of the class instead of "
 "using the drag and drop."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:207(section/p)
+#: C/guitar-tuner.vala.page:212(section/p)
 msgid ""
 "This signal handler has only one argument: the <link href=\"http://valadoc.";
 "org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> that called "
@@ -12543,11 +12708,11 @@ msgid ""
 "Gtk.Button.html\"><code>Gtk.Button</code></link>)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:213(section/title)
+#: C/guitar-tuner.vala.page:218(section/title)
 msgid "Define the signal handler"
 msgstr "Definir o manexador de sinais"
 
-#: C/guitar-tuner.vala.page:214(section/p)
+#: C/guitar-tuner.vala.page:219(section/p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. For this, "
 "we flesh out the signal handler which we defined above, "
@@ -12557,7 +12722,7 @@ msgid ""
 "clicked:"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:215(section/code)
+#: C/guitar-tuner.vala.page:220(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -12565,7 +12730,7 @@ msgid ""
 "\tvar label = sender.get_child () as Gtk.Label;\n"
 "\tswitch (label.get_label()) {\n"
 "\t\tcase \"E\":\n"
-"\t\t\tplay_sound (369.23);\n"
+"\t\t\tplay_sound (329.63);\n"
 "\t\t\tbreak;\n"
 "\t\tcase \"A\":\n"
 "\t\t\tplay_sound (440);\n"
@@ -12588,7 +12753,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:242(section/p)
+#: C/guitar-tuner.vala.page:247(section/p)
 msgid ""
 "The <code>Gtk.Button</code> that was clicked is passed as an argument "
 "(<code>sender</code>) to <code>on_button_clicked</code>. We can get the "
@@ -12596,25 +12761,25 @@ msgid ""
 "from that label using <code>get_label</code>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:243(section/p)
+#: C/guitar-tuner.vala.page:248(section/p)
 msgid ""
 "The switch statement compares the label text to the notes that we can play, "
 "and <code>play_sound</code> is called with the frequency appropriate for "
 "that note. This plays the tone; we have a working guitar tuner!"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:254(section/p)
+#: C/guitar-tuner.vala.page:259(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:258(section/title)
-#: C/magic-mirror.vala.page:151(section/title)
+#: C/guitar-tuner.vala.page:263(section/title)
+#: C/magic-mirror.vala.page:156(section/title)
 msgid "Further reading"
 msgstr "Lectura complementaria"
 
-#: C/guitar-tuner.vala.page:259(section/p)
+#: C/guitar-tuner.vala.page:264(section/p)
 #, fuzzy
 #| msgid ""
 #| "To find out more about the Vala programming language you might want to "
@@ -13238,7 +13403,7 @@ msgstr ""
 
 #: C/helloWorld.js.page:91(section/p)
 msgid ""
-"GtkApplication initializes Gtk+. It also connects the <gui>x</gui> button "
+"GtkApplication initializes GTK+. It also connects the <gui>x</gui> button "
 "that's automatically generated along with the window to the \"destroy\" "
 "signal."
 msgstr ""
@@ -13428,7 +13593,7 @@ msgstr ""
 msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
 msgstr ""
 
-#: C/helloWorld.js.page:139(item/title) C/toolbar_builder.py.page:93(td/p)
+#: C/helloWorld.js.page:139(item/title) C/toolbar_builder.py.page:94(td/p)
 #: C/toolbar_builder.vala.page:77(td/p)
 msgid "Name"
 msgstr "Nome"
@@ -13657,7 +13822,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/image.c.page:21(media) C/image.js.page:20(media)
-#: C/image.py.page:21(media) C/image.vala.page:21(media)
+#: C/image.py.page:23(media) C/image.vala.page:21(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
@@ -13674,17 +13839,17 @@ msgid "Image (C)"
 msgstr "Visor de imaxes"
 
 #: C/image.c.page:17(info/desc) C/image.js.page:16(info/desc)
-#: C/image.py.page:17(info/desc) C/image.vala.page:17(info/desc)
+#: C/image.py.page:19(info/desc) C/image.vala.page:17(info/desc)
 msgid "A widget displaying an image"
 msgstr ""
 
 #: C/image.c.page:20(page/title) C/image.js.page:19(page/title)
-#: C/image.py.page:20(page/title) C/image.vala.page:20(page/title)
+#: C/image.py.page:22(page/title) C/image.vala.page:20(page/title)
 msgid "Image"
 msgstr ""
 
 #: C/image.c.page:22(page/p) C/image.js.page:21(page/p)
-#: C/image.py.page:22(page/p) C/image.vala.page:22(page/p)
+#: C/image.py.page:24(page/p) C/image.vala.page:22(page/p)
 msgid "This GtkApplication displays an image file from the current directory."
 msgstr ""
 
@@ -13841,14 +14006,14 @@ msgctxt "text"
 msgid "Image (Python)"
 msgstr "Python"
 
-#: C/image.py.page:24(note/p)
+#: C/image.py.page:26(note/p)
 msgid ""
 "If the image file is not loaded successfully, the image will contain a "
 "\"broken image\" icon. The <file>filename.png</file> needs to be in the "
 "current directory for this code to work."
 msgstr ""
 
-#: C/image.py.page:33(section/code)
+#: C/image.py.page:35(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -13883,14 +14048,14 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/image.py.page:35(section/p)
+#: C/image.py.page:37(section/p)
 msgid ""
 "Another way to obtain what we have in the example is to create the image as "
 "an instance of another class and add it to the instance of <code>MyWindow</"
 "code> in the <code>do_activate(self)</code> method:"
 msgstr ""
 
-#: C/image.py.page:36(section/code)
+#: C/image.py.page:38(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -13919,11 +14084,11 @@ msgid ""
 "        win.show_all()"
 msgstr ""
 
-#: C/image.py.page:63(section/title)
+#: C/image.py.page:65(section/title)
 msgid "Useful methods for an Image widget"
 msgstr ""
 
-#: C/image.py.page:66(item/p)
+#: C/image.py.page:68(item/p)
 msgid ""
 "To set a stock icon as image, you can use <code>set_from_stock(stock_id, "
 "size)</code> where <code>stock_id</code> is a stock icon such as <code>Gtk."
@@ -13935,21 +14100,21 @@ msgid ""
 "IconSize.DND, Gtk.IconSize.DIALOG</code>."
 msgstr ""
 
-#: C/image.py.page:67(item/p)
+#: C/image.py.page:69(item/p)
 msgid ""
 "You can also use <code>set_from_icon_name(icon_name, size)</code>, where "
 "<code>icon_name</code> is a stock icon name such as <code>\"gtk-about\"</"
 "code> (more can be found as above) and <code>size</code> is as above."
 msgstr ""
 
-#: C/image.py.page:68(item/p)
+#: C/image.py.page:70(item/p)
 msgid ""
 "To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, "
 "where <code>pixbuf</code> is a <link href=\"http://developer.gnome.org/gdk-";
 "pixbuf/unstable//index.html\">GdkPixbuf</link>."
 msgstr ""
 
-#: C/image.py.page:69(item/code)
+#: C/image.py.page:71(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -13975,14 +14140,14 @@ msgid ""
 "        self.add(image)"
 msgstr ""
 
-#: C/image.py.page:90(item/p)
+#: C/image.py.page:92(item/p)
 msgid ""
 "If <code>preserve_aspect_ratio=True</code> we can use "
 "<code>new_from_file_at_size(filename, width, height)</code>. If <code>width</"
 "code> or <code>height</code> is <code>-1</code>, it is not constrained."
 msgstr ""
 
-#: C/image.py.page:91(item/p)
+#: C/image.py.page:93(item/p)
 msgid ""
 "For loading from an input stream, see <code>new_from_stream()</code> and "
 "<code>new_from_stream_at_scale()</code> in the documentation"
@@ -14083,9 +14248,9 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/image-viewer.c.page:33(media) C/image-viewer.cpp.page:31(media)
-#: C/image-viewer.js.page:42(media) C/image-viewer.py.page:41(media)
-#: C/image-viewer.vala.page:48(media)
+#: C/image-viewer.c.page:38(media) C/image-viewer.cpp.page:36(media)
+#: C/image-viewer.js.page:46(media) C/image-viewer.py.page:45(media)
+#: C/image-viewer.vala.page:53(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
@@ -14099,39 +14264,43 @@ msgstr ""
 #, fuzzy
 #| msgid "Image Viewer"
 msgctxt "text"
-msgid "Image Viewer (C)"
+msgid "Image viewer (C)"
 msgstr "Visor de imaxes"
 
-#: C/image-viewer.c.page:10(info/desc) C/image-viewer.vala.page:10(info/desc)
+#: C/image-viewer.c.page:10(info/desc)
 msgid "A little bit more than a simple \"Hello world\" Gtk application."
 msgstr "Un pouco máis que un simple aplicativo Gtk «Ola mundo»."
 
-#: C/image-viewer.c.page:23(page/title) C/image-viewer.cpp.page:21(page/title)
-msgid "Image Viewer"
+#: C/image-viewer.c.page:28(page/title) C/image-viewer.cpp.page:26(page/title)
+#: C/image-viewer.js.page:28(page/title) C/image-viewer.py.page:28(page/title)
+#: C/image-viewer.vala.page:36(page/title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image viewer"
 msgstr "Visor de imaxes"
 
-#: C/image-viewer.c.page:26(synopsis/p) C/image-viewer.cpp.page:24(synopsis/p)
-#: C/message-board.c.page:24(synopsis/p)
-#: C/record-collection.js.page:26(synopsis/p)
+#: C/image-viewer.c.page:31(synopsis/p) C/image-viewer.cpp.page:29(synopsis/p)
+#: C/message-board.c.page:28(synopsis/p)
+#: C/record-collection.js.page:31(synopsis/p)
 msgid "In this tutorial, you will learn:"
 msgstr "Neste titorial aprenderá:"
 
-#: C/image-viewer.c.page:28(item/p)
+#: C/image-viewer.c.page:33(item/p)
 msgid "Some basic concepts of C/GObject programming"
 msgstr "Algúns conceptos básicos de programación de C/GObject"
 
-#: C/image-viewer.c.page:29(item/p)
+#: C/image-viewer.c.page:34(item/p)
 msgid "How to write a Gtk application in C"
 msgstr "Como escribir un aplicativo GTK en C"
 
-#: C/image-viewer.c.page:43(item/p)
+#: C/image-viewer.c.page:48(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
 #| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 #| "<file>image-viewer</file> as project name and directory."
 msgid ""
-"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"Choose <gui>GTK+ (Simple)</gui> from the <gui>C</gui> tab, click "
 "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
 "<file>image-viewer</file> as project name and directory."
 msgstr ""
@@ -14139,7 +14308,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.c.page:46(item/p)
+#: C/image-viewer.c.page:51(item/p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
 "we will create the UI manually in this tutorial. Check the <link xref="
@@ -14151,7 +14320,7 @@ msgstr ""
 "titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> se quere aprender "
 "como usar o construtor de interface."
 
-#: C/image-viewer.c.page:61(section/p)
+#: C/image-viewer.c.page:66(section/p)
 msgid ""
 "C is a rather verbose language, so don't be surprised that the file contains "
 "quite a lot of code. Most of it is template code. It loads an (empty) window "
@@ -14159,7 +14328,7 @@ msgid ""
 "the basics:"
 msgstr ""
 
-#: C/image-viewer.c.page:68(item/p)
+#: C/image-viewer.c.page:73(item/p)
 msgid ""
 "The <code>create_window</code> function creates a new (empty) window and "
 "connects a signal to exit the application when that window is closed."
@@ -14167,13 +14336,13 @@ msgstr ""
 "A función <code>create_window</code> crea unha xanela (baleira) nova e "
 "conecta un sinal para saír do aplicativo péchase esa xanela."
 
-#: C/image-viewer.c.page:84(section/title)
-#: C/image-viewer.cpp.page:81(section/title)
-#: C/image-viewer.vala.page:133(section/title)
+#: C/image-viewer.c.page:89(section/title)
+#: C/image-viewer.cpp.page:86(section/title)
+#: C/image-viewer.vala.page:138(section/title)
 msgid "Creating the user interface"
 msgstr "Crear a interface de usuario"
 
-#: C/image-viewer.c.page:85(section/p)
+#: C/image-viewer.c.page:90(section/p)
 msgid ""
 "Now we will bring life into the empty window. GTK organizes the user "
 "interface with <code>GtkContainer</code>s that can contain other widgets and "
@@ -14181,7 +14350,7 @@ msgid ""
 "<code>GtkBox</code>:"
 msgstr ""
 
-#: C/image-viewer.c.page:88(section/code)
+#: C/image-viewer.c.page:93(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14218,7 +14387,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.c.page:123(item/p)
+#: C/image-viewer.c.page:128(item/p)
 msgid ""
 "The first lines create the widgets we want to use: a button for opening up "
 "an image, the image view widget itself and the box we will use as a "
@@ -14227,7 +14396,7 @@ msgid ""
 "out-of-the-box."
 msgstr ""
 
-#: C/image-viewer.c.page:128(item/p)
+#: C/image-viewer.c.page:133(item/p)
 msgid ""
 "The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
 "and define their behaviour. The image will expand into any available space "
@@ -14237,7 +14406,7 @@ msgid ""
 "window sizes. Next, the box is added to the window."
 msgstr ""
 
-#: C/image-viewer.c.page:134(item/p)
+#: C/image-viewer.c.page:139(item/p)
 msgid ""
 "We need to define what happens when the user clicks on the button. GTK uses "
 "the concept of <em>signals</em>. When the button is clicked, it fires the "
@@ -14248,33 +14417,33 @@ msgid ""
 "<em>callback</em> in the next section."
 msgstr ""
 
-#: C/image-viewer.c.page:139(item/p)
+#: C/image-viewer.c.page:144(item/p)
 msgid ""
 "The last <code>g_signal_connect()</code> makes sure that the application "
 "exits when the window is closed."
 msgstr ""
 
-#: C/image-viewer.c.page:142(item/p)
+#: C/image-viewer.c.page:147(item/p)
 msgid ""
 "As a last step, make sure to replace the <code>gtk_widget_show</code> call "
 "in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
 "show the window and all the widgets it contains."
 msgstr ""
 
-#: C/image-viewer.c.page:149(section/title)
-#: C/image-viewer.cpp.page:136(section/title)
-#: C/image-viewer.vala.page:204(section/title)
+#: C/image-viewer.c.page:154(section/title)
+#: C/image-viewer.cpp.page:141(section/title)
+#: C/image-viewer.vala.page:209(section/title)
 msgid "Showing the image"
 msgstr "Mostrar a imaxe"
 
-#: C/image-viewer.c.page:150(section/p)
+#: C/image-viewer.c.page:155(section/p)
 msgid ""
 "We will now define the signal handler for the <em>clicked</em> signal or the "
 "button we mentioned before. Add this code before the <code>create_window()</"
 "code> method."
 msgstr ""
 
-#: C/image-viewer.c.page:153(section/code)
+#: C/image-viewer.c.page:158(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14311,14 +14480,14 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.c.page:186(section/p) C/image-viewer.cpp.page:172(section/p)
-#: C/image-viewer.js.page:278(section/p) C/image-viewer.py.page:192(section/p)
+#: C/image-viewer.c.page:191(section/p) C/image-viewer.cpp.page:177(section/p)
+#: C/image-viewer.js.page:282(section/p) C/image-viewer.py.page:196(section/p)
 msgid ""
 "This is a bit more complicated than anything we've attempted so far, so "
 "let's break it down:"
 msgstr ""
 
-#: C/image-viewer.c.page:188(item/p)
+#: C/image-viewer.c.page:193(item/p)
 msgid ""
 "The first argument of the signal is always the widget that sent the signal. "
 "Sometimes other arguments related to the signal come after that, but "
@@ -14327,7 +14496,7 @@ msgid ""
 "signal. In this case it is our <code>GtkImage</code> object."
 msgstr ""
 
-#: C/image-viewer.c.page:194(item/p)
+#: C/image-viewer.c.page:199(item/p)
 msgid ""
 "The next interesting line is where the dialog for choosing the file is "
 "created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
@@ -14335,8 +14504,8 @@ msgid ""
 "like the number of buttons and their corresponding values."
 msgstr ""
 
-#: C/image-viewer.c.page:198(item/p) C/image-viewer.cpp.page:180(item/p)
-#: C/image-viewer.js.page:285(item/p) C/image-viewer.py.page:199(item/p)
+#: C/image-viewer.c.page:203(item/p) C/image-viewer.cpp.page:185(item/p)
+#: C/image-viewer.js.page:289(item/p) C/image-viewer.py.page:203(item/p)
 msgid ""
 "Notice that we are using <em>stock</em> button names from Gtk, instead of "
 "manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
@@ -14344,7 +14513,7 @@ msgid ""
 "language."
 msgstr ""
 
-#: C/image-viewer.c.page:201(item/p)
+#: C/image-viewer.c.page:206(item/p)
 msgid ""
 "The next two lines restrict the <gui>Open</gui> dialog to only display files "
 "which can be opened by GtkImage. A filter object is created first; we then "
@@ -14353,7 +14522,7 @@ msgid ""
 "filter to be the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.c.page:204(item/p)
+#: C/image-viewer.c.page:209(item/p)
 msgid ""
 "<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
 "will wait for the user to choose an image; when they do, "
@@ -14362,7 +14531,7 @@ msgid ""
 "<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
 msgstr ""
 
-#: C/image-viewer.c.page:206(item/p)
+#: C/image-viewer.c.page:211(item/p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next line sets the "
 "<code>file</code> property of the GtkImage to the filename of the image "
@@ -14370,13 +14539,13 @@ msgid ""
 "image."
 msgstr ""
 
-#: C/image-viewer.c.page:209(item/p)
+#: C/image-viewer.c.page:214(item/p)
 msgid ""
 "In the final line of this method, we destroy the <gui>Open</gui> dialog "
 "because we don't need it any more. Destroying automatically hides the dialog."
 msgstr ""
 
-#: C/image-viewer.c.page:218(section/p) C/image-viewer.cpp.page:206(section/p)
+#: C/image-viewer.c.page:223(section/p) C/image-viewer.cpp.page:211(section/p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
 "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
@@ -14386,23 +14555,23 @@ msgstr ""
 "file> no diálogo que aparece. Finalmente, prema <gui>Executar</gui> e "
 "desfrute!"
 
-#: C/image-viewer.c.page:223(section/p)
+#: C/image-viewer.c.page:228(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.c\">reference code</link>."
 msgstr ""
 
-#: C/image-viewer.c.page:231(item/p) C/image-viewer.cpp.page:219(item/p)
-#: C/image-viewer.js.page:320(item/p) C/image-viewer.py.page:234(item/p)
-#: C/image-viewer.vala.page:292(item/p)
+#: C/image-viewer.c.page:236(item/p) C/image-viewer.cpp.page:224(item/p)
+#: C/image-viewer.js.page:324(item/p) C/image-viewer.py.page:238(item/p)
+#: C/image-viewer.vala.page:297(item/p)
 msgid ""
 "Have the user select a directory rather than a file, and provide controls to "
 "cycle through all of the images in a directory."
 msgstr ""
 
-#: C/image-viewer.c.page:234(item/p) C/image-viewer.cpp.page:222(item/p)
-#: C/image-viewer.js.page:323(item/p) C/image-viewer.py.page:237(item/p)
-#: C/image-viewer.vala.page:295(item/p)
+#: C/image-viewer.c.page:239(item/p) C/image-viewer.cpp.page:227(item/p)
+#: C/image-viewer.js.page:327(item/p) C/image-viewer.py.page:241(item/p)
+#: C/image-viewer.vala.page:300(item/p)
 msgid ""
 "Apply random filters and effects to the image when it is loaded and allow "
 "the user to save the modified image."
@@ -14410,9 +14579,9 @@ msgstr ""
 "Aplicar filtros aleatorios e efectos á imaxe cando se carga e permitir ao "
 "usuario gardar a imaxe modificada."
 
-#: C/image-viewer.c.page:235(item/p) C/image-viewer.cpp.page:223(item/p)
-#: C/image-viewer.js.page:324(item/p) C/image-viewer.py.page:238(item/p)
-#: C/image-viewer.vala.page:296(item/p)
+#: C/image-viewer.c.page:240(item/p) C/image-viewer.cpp.page:228(item/p)
+#: C/image-viewer.js.page:328(item/p) C/image-viewer.py.page:242(item/p)
+#: C/image-viewer.vala.page:301(item/p)
 msgid ""
 "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
 "image manipulation capabilities."
@@ -14420,9 +14589,9 @@ msgstr ""
 "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> fornece capacidades "
 "moi potentes de manipulación de imaxes."
 
-#: C/image-viewer.c.page:238(item/p) C/image-viewer.cpp.page:226(item/p)
-#: C/image-viewer.js.page:327(item/p) C/image-viewer.py.page:241(item/p)
-#: C/image-viewer.vala.page:299(item/p)
+#: C/image-viewer.c.page:243(item/p) C/image-viewer.cpp.page:231(item/p)
+#: C/image-viewer.js.page:331(item/p) C/image-viewer.py.page:245(item/p)
+#: C/image-viewer.vala.page:304(item/p)
 msgid ""
 "Allow the user to load images from network shares, scanners, and other more "
 "complicated sources."
@@ -14430,9 +14599,9 @@ msgstr ""
 "Permitir ao usuario cargar imaxes desde recursos de rede compartidos, "
 "escáneres e outras fontes máis complicadas."
 
-#: C/image-viewer.c.page:239(item/p) C/image-viewer.cpp.page:227(item/p)
-#: C/image-viewer.js.page:328(item/p) C/image-viewer.py.page:242(item/p)
-#: C/image-viewer.vala.page:300(item/p)
+#: C/image-viewer.c.page:244(item/p) C/image-viewer.cpp.page:232(item/p)
+#: C/image-viewer.js.page:332(item/p) C/image-viewer.py.page:246(item/p)
+#: C/image-viewer.vala.page:305(item/p)
 msgid ""
 "You can use <link href=\"http://library.gnome.org/devel/gio/unstable/\";>GIO</"
 "link> to handle network file tranfers and the like, and <link href=\"http://";
@@ -14444,15 +14613,15 @@ msgstr ""
 msgid "A little bit more than a simple \"Hello world\" GTKmm application."
 msgstr "Un pouco máis que un simple aplicativo Gtkmm «Ola mundo»."
 
-#: C/image-viewer.cpp.page:26(item/p)
+#: C/image-viewer.cpp.page:31(item/p)
 msgid "Some basic concepts of C++/GObject programming"
 msgstr "Algúns conceptos básicos de programación de C++/GObject"
 
-#: C/image-viewer.cpp.page:27(item/p)
+#: C/image-viewer.cpp.page:32(item/p)
 msgid "How to write a Gtk application in C++"
 msgstr "Cómo escribir un aplicativo GTK en C++"
 
-#: C/image-viewer.cpp.page:41(item/p)
+#: C/image-viewer.cpp.page:46(item/p)
 msgid ""
 "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
 "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
@@ -14462,7 +14631,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.cpp.page:44(item/p)
+#: C/image-viewer.cpp.page:49(item/p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
 "we will create the UI manually in this tutorial. Check the <link xref="
@@ -14474,7 +14643,7 @@ msgstr ""
 "titorial <link xref=\"guitar-tuner.cpp\">Guitar-Tuner</link> se quere "
 "aprender como usar o construtor de interface."
 
-#: C/image-viewer.cpp.page:49(item/p)
+#: C/image-viewer.cpp.page:54(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
@@ -14484,7 +14653,7 @@ msgstr ""
 "file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. Debería "
 "ver algún código que comeza coas liñas:"
 
-#: C/image-viewer.cpp.page:50(item/code)
+#: C/image-viewer.cpp.page:55(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14494,7 +14663,7 @@ msgid ""
 "#include \"config.h\"&gt;"
 msgstr ""
 
-#: C/image-viewer.cpp.page:64(item/p)
+#: C/image-viewer.cpp.page:69(item/p)
 msgid ""
 "The three <code>#include</code> lines at the top include the <code>config</"
 "code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
@@ -14502,7 +14671,7 @@ msgid ""
 "libraries are used in the rest of the code."
 msgstr ""
 
-#: C/image-viewer.cpp.page:67(item/p)
+#: C/image-viewer.cpp.page:72(item/p)
 msgid ""
 "The <code>main</code> function creates a new (empty) window and sets the "
 "window title."
@@ -14510,7 +14679,7 @@ msgstr ""
 "A función <code>main</code> crea unha xanela nova (e baleira) e estabelece o "
 "título da xanela."
 
-#: C/image-viewer.cpp.page:70(item/p)
+#: C/image-viewer.cpp.page:75(item/p)
 msgid ""
 "The <code>kit::run()</code> call starts the GTKmm main loop, which runs the "
 "user interface and starts listening for events (like clicks and key "
@@ -14518,7 +14687,7 @@ msgid ""
 "application will automatically exit when that window is closed."
 msgstr ""
 
-#: C/image-viewer.cpp.page:82(section/p)
+#: C/image-viewer.cpp.page:87(section/p)
 msgid ""
 "Now we will bring life into the empty window. GTKmm organizes the user "
 "interface with <code>Gtk::Container</code>s that can contain other widgets "
@@ -14526,7 +14695,7 @@ msgid ""
 "container, a <code>Gtk::Box</code>:"
 msgstr ""
 
-#: C/image-viewer.cpp.page:85(section/code)
+#: C/image-viewer.cpp.page:90(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14558,14 +14727,14 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.cpp.page:115(item/p)
+#: C/image-viewer.cpp.page:120(item/p)
 msgid ""
 "The first lines create the widgets we want to use: a button for opening up "
 "an image, the image view widget itself and the box we will use as a "
 "container."
 msgstr ""
 
-#: C/image-viewer.cpp.page:118(item/p)
+#: C/image-viewer.cpp.page:123(item/p)
 msgid ""
 "The calls to <code>pack_start</code> add the two widgets to the box and "
 "define their behaviour. The image will expand into any available space while "
@@ -14575,7 +14744,7 @@ msgid ""
 "sizes. Next, the box is added to the window."
 msgstr ""
 
-#: C/image-viewer.cpp.page:124(item/p)
+#: C/image-viewer.cpp.page:129(item/p)
 msgid ""
 "We need to define what happens when the user clicks on the button. GTKmm "
 "uses the concept of <em>signals</em>. When the button is clicked, it fires "
@@ -14585,21 +14754,21 @@ msgid ""
 "clicked. We will define the <em>callback</em> in the next section."
 msgstr ""
 
-#: C/image-viewer.cpp.page:128(item/p)
+#: C/image-viewer.cpp.page:133(item/p)
 msgid ""
 "The last step is to show all widgets in the window using "
 "<code>show_all_children()</code>. This is equivalent to using the <code>show"
 "()</code> method on all our child widgets."
 msgstr ""
 
-#: C/image-viewer.cpp.page:137(section/p)
+#: C/image-viewer.cpp.page:142(section/p)
 msgid ""
 "We will now define the signal handler for the <em>clicked</em> signal or the "
 "button we mentioned before. Add this code before the <code>main</code> "
 "method."
 msgstr ""
 
-#: C/image-viewer.cpp.page:140(section/code)
+#: C/image-viewer.cpp.page:145(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14635,27 +14804,27 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.cpp.page:175(item/p)
+#: C/image-viewer.cpp.page:180(item/p)
 msgid ""
 "The dialog for choosing the file is created using the <code>Gtk::"
 "FileChooserDialog</code> constructor. This takes the title and type of the "
 "dialog. In our case, it is an <em>Open</em> dialog."
 msgstr ""
 
-#: C/image-viewer.cpp.page:179(item/p)
+#: C/image-viewer.cpp.page:184(item/p)
 msgid ""
 "The next two lines add an <em>Open</em> and a <em>Close</em> button to the "
 "dialog."
 msgstr ""
 
-#: C/image-viewer.cpp.page:181(item/p)
+#: C/image-viewer.cpp.page:186(item/p)
 msgid ""
 "The second argument to the <code>add_button()</code> method is a value to "
 "identify the clicked button. We use predefined values provided by GTKmm "
 "here, too."
 msgstr ""
 
-#: C/image-viewer.cpp.page:186(item/p)
+#: C/image-viewer.cpp.page:191(item/p)
 msgid ""
 "The next two lines restrict the <gui>Open</gui> dialog to only display files "
 "which can be opened by <code>Gtk::Image</code>. A filter object is created "
@@ -14664,13 +14833,13 @@ msgid ""
 "Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.cpp.page:187(item/p)
+#: C/image-viewer.cpp.page:192(item/p)
 msgid ""
 "<code>Glib::RefPtr</code> is a smart pointer used here, that makes sure that "
 "the filter is destroyed when there is no reference to it anymore."
 msgstr ""
 
-#: C/image-viewer.cpp.page:191(item/p)
+#: C/image-viewer.cpp.page:196(item/p)
 msgid ""
 "<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
 "wait for the user to choose an image; when they do, <code>dialog.run</code> "
@@ -14679,20 +14848,20 @@ msgid ""
 "The <code>switch</code> statement tests for this."
 msgstr ""
 
-#: C/image-viewer.cpp.page:194(item/p)
+#: C/image-viewer.cpp.page:199(item/p)
 msgid ""
 "We hide the <gui>Open</gui> dialog because we don't need it any more. The "
 "dialog would be hidden later anyway, as it is only a local variable and is "
 "destroyed (and therefore hidden) when the scope ends."
 msgstr ""
 
-#: C/image-viewer.cpp.page:197(item/p)
+#: C/image-viewer.cpp.page:202(item/p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next line loads the "
 "file into the <code>Gtk::Image</code> so that it is displayed."
 msgstr ""
 
-#: C/image-viewer.cpp.page:211(section/p)
+#: C/image-viewer.cpp.page:216(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
@@ -14704,13 +14873,17 @@ msgstr ""
 #, fuzzy
 #| msgid "Classes in JavaScript"
 msgctxt "text"
-msgid "Image Viewer (JavaScript)"
+msgid "Image viewer (JavaScript)"
 msgstr "Clases en JavaScript"
 
 #: C/image-viewer.js.page:10(info/desc)
+#, fuzzy
+#| msgid ""
+#| "A little bit more than a simple \"Hello world\" application - write an "
+#| "image viewer in GTK. Includes an introduction to the JavaScript language."
 msgid ""
 "A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK. Includes an introduction to the JavaScript language."
+"viewer in GTK+. Includes an introduction to the JavaScript language."
 msgstr ""
 "Un aplicativo máis completo que un simple «Ola Mundo» - escriba un visor de "
 "imaxes en GTK. Isto inclúe unha introdución ao linguaxe JavaScript."
@@ -14720,14 +14893,7 @@ msgstr ""
 msgid "Jonh Wendell"
 msgstr "Jonh Wendell"
 
-#: C/image-viewer.js.page:24(page/title) C/image-viewer.py.page:24(page/title)
-#: C/image-viewer.vala.page:31(page/title)
-#, fuzzy
-#| msgid "Image Viewer"
-msgid "1 Image Viewer"
-msgstr "Visor de imaxes"
-
-#: C/image-viewer.js.page:27(synopsis/p) C/image-viewer.py.page:27(synopsis/p)
+#: C/image-viewer.js.page:31(synopsis/p) C/image-viewer.py.page:31(synopsis/p)
 msgid ""
 "In this tutorial, we're going to write a very simple GTK application that "
 "loads and displays an image file. You will learn how to:"
@@ -14735,31 +14901,31 @@ msgstr ""
 "Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
 "mostra un ficheiro de imaxe. Vostede aprenderá a:"
 
-#: C/image-viewer.js.page:29(item/p)
+#: C/image-viewer.js.page:33(item/p)
 msgid "Write a basic GTK user interface in JavaScript"
 msgstr "Escribir unha interface de usuario GTK básica en JavaScript"
 
-#: C/image-viewer.js.page:30(item/p) C/image-viewer.py.page:30(item/p)
+#: C/image-viewer.js.page:34(item/p) C/image-viewer.py.page:34(item/p)
 msgid "Deal with events by connecting signals to signal handlers"
 msgstr "Xestionar eventos conectando sinais a xestores de sinais"
 
-#: C/image-viewer.js.page:31(item/p) C/image-viewer.py.page:31(item/p)
+#: C/image-viewer.js.page:35(item/p) C/image-viewer.py.page:35(item/p)
 msgid "Lay out GTK user interfaces using containers"
 msgstr "Dispoñer interfaces de usuario GTK usando contedores"
 
-#: C/image-viewer.js.page:32(item/p) C/image-viewer.py.page:32(item/p)
+#: C/image-viewer.js.page:36(item/p) C/image-viewer.py.page:36(item/p)
 msgid "Load and display image files"
 msgstr "Cargar e mostrar ficheiros de imaxe"
 
-#: C/image-viewer.js.page:37(item/p)
+#: C/image-viewer.js.page:41(item/p)
 msgid "An installed copy of the <em>gjs</em> interpreter"
 msgstr "Unha copia instalada do intérprete <em>gjs</em>"
 
-#: C/image-viewer.js.page:38(item/p)
+#: C/image-viewer.js.page:42(item/p)
 msgid "Basic knowledge of any object-orientated programming language"
 msgstr "Coñecemento básico dunha linguaxe de programación orientada a obxectos"
 
-#: C/image-viewer.js.page:52(item/p)
+#: C/image-viewer.js.page:56(item/p)
 msgid ""
 "Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
 "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
@@ -14769,7 +14935,7 @@ msgstr ""
 "prema <gui>Adiante</gui> e complete os seus detalles nas seguintes páxinas. "
 "Use <file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.js.page:55(item/p)
+#: C/image-viewer.js.page:59(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
@@ -14779,11 +14945,11 @@ msgstr ""
 "file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. Contén "
 "código de exemplo moi básico."
 
-#: C/image-viewer.js.page:62(section/title)
+#: C/image-viewer.js.page:66(section/title)
 msgid "JavaScript basics: Hello World"
 msgstr "Primeiros pasos en JavaScript: Ola mundo"
 
-#: C/image-viewer.js.page:63(section/p)
+#: C/image-viewer.js.page:67(section/p)
 msgid ""
 "Before we start writing the image viewer, let's find out more about the way "
 "JavaScript is used in GNOME. Of course, your very first contact with any "
@@ -14795,12 +14961,12 @@ msgstr ""
 "con calquera linguaxe de programación debería ser un programa Ola Mundo que "
 "pode atopar <file>main.js</file>:"
 
-#: C/image-viewer.js.page:64(section/code)
+#: C/image-viewer.js.page:68(section/code)
 #, no-wrap
 msgid "print (\"Hello world!\");"
 msgstr "print (\"Ola mundo!\");"
 
-#: C/image-viewer.js.page:65(section/p)
+#: C/image-viewer.js.page:69(section/p)
 msgid ""
 "This should look quite natural if you're familiar with almost any other "
 "programming language. The function <code>print</code> is called with the "
@@ -14812,15 +14978,15 @@ msgstr ""
 "<code>«Ola Mundo»</code>, que se imprimirá en pantalla. Teña en conta que "
 "cada liña de código remata con un punto e coma."
 
-#: C/image-viewer.js.page:69(section/title)
+#: C/image-viewer.js.page:73(section/title)
 msgid "Classes in JavaScript"
 msgstr "Clases en JavaScript"
 
-#: C/image-viewer.js.page:70(section/p)
+#: C/image-viewer.js.page:74(section/p)
 msgid "This is the standard way to define a class in JavaScript:"
 msgstr "Esta é a forma estándar de definir unha clase en JavaScript:"
 
-#: C/image-viewer.js.page:71(section/code)
+#: C/image-viewer.js.page:75(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14847,7 +15013,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/image-viewer.js.page:93(section/p)
+#: C/image-viewer.js.page:97(section/p)
 msgid ""
 "This defines a class called <code>MyClass</code>. Let's go through each part "
 "of the class definition:"
@@ -14855,7 +15021,7 @@ msgstr ""
 "Isto define unha clase chamada <code>MyClass</code>. Vexa cada unha das "
 "partes da definición da clase:"
 
-#: C/image-viewer.js.page:96(item/p)
+#: C/image-viewer.js.page:100(item/p)
 msgid ""
 "<code>function MyClass</code> is the constructor of the class — its name "
 "must match the class's name. You can access any member of the class by using "
@@ -14863,7 +15029,7 @@ msgid ""
 "<code>_init</code> method."
 msgstr ""
 
-#: C/image-viewer.js.page:99(item/p)
+#: C/image-viewer.js.page:103(item/p)
 msgid ""
 "The <code>MyClass.prototype</code> block is where you define the "
 "<em>structure</em> of the class. Each class is made up of methods "
@@ -14871,18 +15037,18 @@ msgid ""
 "in this example."
 msgstr ""
 
-#: C/image-viewer.js.page:102(item/p)
+#: C/image-viewer.js.page:106(item/p)
 msgid ""
 "The first method defined here is called <code>_init</code>, and we specify "
 "that it is a function with no arguments:"
 msgstr ""
 
-#: C/image-viewer.js.page:103(item/code)
+#: C/image-viewer.js.page:107(item/code)
 #, no-wrap
 msgid "_init: function ()"
 msgstr "_init: function ()"
 
-#: C/image-viewer.js.page:104(item/p)
+#: C/image-viewer.js.page:108(item/p)
 msgid ""
 "We write the function inside some curly braces. Two fields are defined here, "
 "<code>propertyA</code> and <code>propertyB</code>. The first is set to a "
@@ -14890,7 +15056,7 @@ msgid ""
 "any value."
 msgstr ""
 
-#: C/image-viewer.js.page:107(item/p)
+#: C/image-viewer.js.page:111(item/p)
 msgid ""
 "The next method is called <code>aMethod</code> and has two arguments, which "
 "it prints out when you call it. The final method is <code>dumpProperties</"
@@ -14898,7 +15064,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/image-viewer.js.page:110(item/p)
+#: C/image-viewer.js.page:114(item/p)
 msgid ""
 "Note how the class definition (prototype) is arranged; each function "
 "definition is separated by a comma."
@@ -14906,11 +15072,11 @@ msgstr ""
 "Teña en conta como se ordena a definición da clase (prototipo); cada "
 "definición de función sepárase con unha coma."
 
-#: C/image-viewer.js.page:114(section/p)
+#: C/image-viewer.js.page:118(section/p)
 msgid "Now that MyClass has been defined, we can play with it:"
 msgstr ""
 
-#: C/image-viewer.js.page:115(section/code)
+#: C/image-viewer.js.page:119(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14920,30 +15086,30 @@ msgid ""
 "o.dumpProperties ();"
 msgstr ""
 
-#: C/image-viewer.js.page:120(section/p)
+#: C/image-viewer.js.page:124(section/p)
 msgid ""
 "This code creates a new instance of the class called <code>o</code>, runs "
 "<code>aMethod</code>, changes <code>propertyA</code> to a different string, "
 "and then calls <code>dumpProperties</code> (which outputs the fields)."
 msgstr ""
 
-#: C/image-viewer.js.page:121(section/p)
+#: C/image-viewer.js.page:125(section/p)
 msgid ""
 "Save the code in the <file>main.js</file> and then run it by using "
 "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> from the menu or using the "
 "toolbar."
 msgstr ""
 
-#: C/image-viewer.js.page:126(section/title)
-#: C/image-viewer.py.page:65(section/title)
+#: C/image-viewer.js.page:130(section/title)
+#: C/image-viewer.py.page:69(section/title)
 msgid "A first Gtk application"
 msgstr "Un primeiro aplicativo en GTK"
 
-#: C/image-viewer.js.page:127(section/p)
+#: C/image-viewer.js.page:131(section/p)
 msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
 msgstr ""
 
-#: C/image-viewer.js.page:128(section/code)
+#: C/image-viewer.js.page:132(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -14957,24 +15123,24 @@ msgid ""
 "Gtk.main ();"
 msgstr ""
 
-#: C/image-viewer.js.page:137(section/p) C/image-viewer.py.page:90(section/p)
+#: C/image-viewer.js.page:141(section/p) C/image-viewer.py.page:94(section/p)
 msgid "Let's take a look at what's happening:"
 msgstr "Botemos unha ollada ao que está pasando:"
 
-#: C/image-viewer.js.page:140(item/p) C/image-viewer.py.page:93(item/p)
+#: C/image-viewer.js.page:144(item/p) C/image-viewer.py.page:97(item/p)
 msgid ""
 "The first line imports the Gtk namespace (that is, it includes the Gtk "
 "library). The libraries are provided by GObject Introspection (gi), which "
 "provides language bindings for many GNOME libraries."
 msgstr ""
 
-#: C/image-viewer.js.page:143(item/p)
+#: C/image-viewer.js.page:147(item/p)
 msgid ""
 "<code>Gtk.init</code> initializes the Gtk library; this statement is "
 "mandatory for all Gtk programs."
 msgstr ""
 
-#: C/image-viewer.js.page:146(item/p)
+#: C/image-viewer.js.page:150(item/p)
 msgid ""
 "The next line creates the main window by creating a new <code>Gtk.Window</"
 "code> object. You can pass several properties to the window's constructor by "
@@ -14982,13 +15148,13 @@ msgid ""
 "this case we are setting the title of the window."
 msgstr ""
 
-#: C/image-viewer.js.page:147(item/p)
+#: C/image-viewer.js.page:151(item/p)
 msgid ""
 "The next line explicitly shows the window. In Gtk, every widget is hidden by "
 "default."
 msgstr ""
 
-#: C/image-viewer.js.page:148(item/p)
+#: C/image-viewer.js.page:152(item/p)
 msgid ""
 "Finally, <code>Gtk.main</code> runs the main loop — in other words, it "
 "executes the program. The main loop listens for events (signals) from the "
@@ -14996,7 +15162,7 @@ msgid ""
 "useful. We'll learn more about signals shortly."
 msgstr ""
 
-#: C/image-viewer.js.page:151(section/p)
+#: C/image-viewer.js.page:155(section/p)
 msgid ""
 "Save the code in <file>main.js</file> and run it. You will notice that the "
 "application does not quit when you close the window. This is because we "
@@ -15006,17 +15172,17 @@ msgid ""
 "quit the program."
 msgstr ""
 
-#: C/image-viewer.js.page:156(section/title)
+#: C/image-viewer.js.page:160(section/title)
 msgid "Adding classes"
 msgstr "Engadir clases"
 
-#: C/image-viewer.js.page:157(section/p)
+#: C/image-viewer.js.page:161(section/p)
 msgid ""
 "The proper way of doing Gtk programming is by using classes. Let's rewrite "
 "the simple code you just wrote using classes:"
 msgstr ""
 
-#: C/image-viewer.js.page:158(section/code)
+#: C/image-viewer.js.page:162(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15038,7 +15204,7 @@ msgid ""
 "Gtk.main ();"
 msgstr ""
 
-#: C/image-viewer.js.page:176(section/p)
+#: C/image-viewer.js.page:180(section/p)
 msgid ""
 "Notice that the program is the same; we just moved the window creation code "
 "to our own <code>ImageViewer</code> class. The class's constructor calls the "
@@ -15047,18 +15213,18 @@ msgid ""
 "main</code>)."
 msgstr ""
 
-#: C/image-viewer.js.page:177(section/p)
+#: C/image-viewer.js.page:181(section/p)
 msgid ""
 "This code is modular and can be split into multiple files easily. This makes "
 "it cleaner and easier to read."
 msgstr ""
 
-#: C/image-viewer.js.page:181(section/title)
-#: C/image-viewer.py.page:114(section/title)
+#: C/image-viewer.js.page:185(section/title)
+#: C/image-viewer.py.page:118(section/title)
 msgid "Signals"
 msgstr "Sinais"
 
-#: C/image-viewer.js.page:182(section/p) C/image-viewer.py.page:115(section/p)
+#: C/image-viewer.js.page:186(section/p) C/image-viewer.py.page:119(section/p)
 msgid ""
 "Signals are one of the key concepts in Gtk programming. Whenever something "
 "happens to an object, it emits a signal; for example, when a button is "
@@ -15067,7 +15233,7 @@ msgid ""
 "(a \"signal handler\") to that signal. Here's an example:"
 msgstr ""
 
-#: C/image-viewer.js.page:183(section/code)
+#: C/image-viewer.js.page:187(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15078,7 +15244,7 @@ msgid ""
 "b.connect (\"clicked\", button_clicked);"
 msgstr ""
 
-#: C/image-viewer.js.page:189(section/p) C/image-viewer.py.page:122(section/p)
+#: C/image-viewer.js.page:193(section/p) C/image-viewer.py.page:126(section/p)
 msgid ""
 "The last two lines create a <code>Gtk.Button</code> called <code>b</code> "
 "and connect its <code>clicked</code> signal to the <code>button_clicked</"
@@ -15087,18 +15253,18 @@ msgid ""
 "just prints a message here."
 msgstr ""
 
-#: C/image-viewer.js.page:190(section/p)
+#: C/image-viewer.js.page:194(section/p)
 msgid "The syntax for connecting any signal to a function is:"
 msgstr "A sintaxe para conectar calquera sinal a unha función é:"
 
-#: C/image-viewer.js.page:191(section/code)
+#: C/image-viewer.js.page:195(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "object.connect (&lt;signal_name&gt;, &lt;function_to_be_called&gt;);"
 msgstr ""
 
-#: C/image-viewer.js.page:193(section/p)
+#: C/image-viewer.js.page:197(section/p)
 msgid ""
 "You can find signal definitions for any object in the <link href=\"http://";
 "library.gnome.org/devel/gtk/stable/ch01.html\">GTK class reference</link>."
@@ -15107,25 +15273,25 @@ msgstr ""
 "\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>clase GTK de "
 "referencia</link>."
 
-#: C/image-viewer.js.page:196(note/p)
+#: C/image-viewer.js.page:200(note/p)
 msgid ""
 "You can simplify the code by making use of an inline function definition:"
 msgstr ""
 "Vostede pode simplificar o código facendo uso da definición en liña de "
 "funcións:"
 
-#: C/image-viewer.js.page:197(note/code)
+#: C/image-viewer.js.page:201(note/code)
 #, no-wrap
 msgid ""
 "\n"
 "b.connect (\"clicked\", function () { print (\"you clicked me!\"); });"
 msgstr ""
 
-#: C/image-viewer.js.page:204(section/title)
+#: C/image-viewer.js.page:208(section/title)
 msgid "Closing the window"
 msgstr "Pechar a xanela"
 
-#: C/image-viewer.js.page:205(section/p)
+#: C/image-viewer.js.page:209(section/p)
 msgid ""
 "When you close a Gtk window it's not really closed, it's hidden. This allows "
 "you to keep the window around (which is useful if you want to ask the user "
@@ -15135,7 +15301,7 @@ msgstr ""
 "manter unha xanela (útil se quere preguntarlle ao usuario se realmente "
 "desexa pechar a xanela, por exemplo)."
 
-#: C/image-viewer.js.page:206(section/p)
+#: C/image-viewer.js.page:210(section/p)
 msgid ""
 "In our case, we really do just want to close the window. The simplest way of "
 "doing this is by connecting the <code>hide</code> signal of the GtkWindow "
@@ -15149,12 +15315,12 @@ msgstr ""
 "engada o seguinte código ao método <code>_init</code>, na liña superior a "
 "<code>this.window.show</code>."
 
-#: C/image-viewer.js.page:207(section/code)
+#: C/image-viewer.js.page:211(section/code)
 #, no-wrap
 msgid "this.window.connect (\"hide\", Gtk.main_quit);"
 msgstr "this.window.connect (\"hide\", Gtk.main_quit);"
 
-#: C/image-viewer.js.page:208(section/p)
+#: C/image-viewer.js.page:212(section/p)
 msgid ""
 "This connects the <code>hide</code> signal of the window to Gtk's "
 "<code>main_quit</code> function, which ends the execution of the Gtk main "
@@ -15164,19 +15330,19 @@ msgid ""
 "point, the program just ends."
 msgstr ""
 
-#: C/image-viewer.js.page:212(section/title)
-#: C/image-viewer.py.page:126(section/title)
+#: C/image-viewer.js.page:216(section/title)
+#: C/image-viewer.py.page:130(section/title)
 msgid "Containers: Laying-out the user interface"
 msgstr "Contedores: deseñar a interface de usuario"
 
-#: C/image-viewer.js.page:213(section/p) C/image-viewer.py.page:127(section/p)
+#: C/image-viewer.js.page:217(section/p) C/image-viewer.py.page:131(section/p)
 msgid ""
 "Widgets (controls, such as buttons and labels) can be arranged in the window "
 "by making use of <em>containers</em>. You can organize the layout by mixing "
 "different types of containers, like boxes and grids."
 msgstr ""
 
-#: C/image-viewer.js.page:214(section/p) C/image-viewer.py.page:128(section/p)
+#: C/image-viewer.js.page:218(section/p) C/image-viewer.py.page:132(section/p)
 msgid ""
 "A <code>Gtk.Window</code> is itself a type of container, but you can only "
 "put one widget directly into it. We would like to have two widgets, an image "
@@ -15189,21 +15355,21 @@ msgid ""
 "and so on."
 msgstr ""
 
-#: C/image-viewer.js.page:216(note/p) C/image-viewer.py.page:130(note/p)
+#: C/image-viewer.js.page:220(note/p) C/image-viewer.py.page:134(note/p)
 msgid ""
 "There is a graphical user interface designer called <app>Glade</app> "
 "integrated in <app>Anjuta</app> which makes UI design really easy. For this "
 "simple example, however, we will code everything manually."
 msgstr ""
 
-#: C/image-viewer.js.page:218(section/p)
+#: C/image-viewer.js.page:222(section/p)
 msgid ""
 "Let's add the box and widgets to the window. Insert the following code into "
 "the <code>_init</code> method, immediately above the <code>this.window.show</"
 "code> line:"
 msgstr ""
 
-#: C/image-viewer.js.page:219(section/code)
+#: C/image-viewer.js.page:223(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15211,7 +15377,7 @@ msgid ""
 "this.window.add (main_box);"
 msgstr ""
 
-#: C/image-viewer.js.page:222(section/p)
+#: C/image-viewer.js.page:226(section/p)
 msgid ""
 "The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
 "and sets two of its properties: the <code>orientation</code> is set to "
@@ -15220,25 +15386,25 @@ msgid ""
 "created <code>Gtk.Box</code> to the window."
 msgstr ""
 
-#: C/image-viewer.js.page:223(section/p) C/image-viewer.py.page:141(section/p)
+#: C/image-viewer.js.page:227(section/p) C/image-viewer.py.page:145(section/p)
 msgid ""
 "So far the window only contains an empty <code>Gtk.Box</code>, and if you "
 "run the program now you will see no changes at all (the <code>Gtk.Box</code> "
 "is a transparent container, so you can't see that it's there)."
 msgstr ""
 
-#: C/image-viewer.js.page:227(section/title)
-#: C/image-viewer.py.page:145(section/title)
+#: C/image-viewer.js.page:231(section/title)
+#: C/image-viewer.py.page:149(section/title)
 msgid "Packing: Adding widgets to the container"
 msgstr "Empaquetado: Engadir widgets ao contedor"
 
-#: C/image-viewer.js.page:228(section/p)
+#: C/image-viewer.js.page:232(section/p)
 msgid ""
 "To add some widgets to the <code>Gtk.Box</code>, insert the following code "
 "directly below the <code>this.window.add (main_box)</code> line:"
 msgstr ""
 
-#: C/image-viewer.js.page:229(section/code)
+#: C/image-viewer.js.page:233(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15246,7 +15412,7 @@ msgid ""
 "main_box.pack_start (this.image, true, true, 0);"
 msgstr ""
 
-#: C/image-viewer.js.page:232(section/p)
+#: C/image-viewer.js.page:236(section/p)
 msgid ""
 "The first line creates a new <code>Gtk.Image</code> called <code>image</"
 "code>, which will be used to display an image file. Then, the image widget "
@@ -15256,7 +15422,7 @@ msgid ""
 "method."
 msgstr ""
 
-#: C/image-viewer.js.page:233(section/p)
+#: C/image-viewer.js.page:237(section/p)
 msgid ""
 "<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
 "the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
@@ -15267,7 +15433,7 @@ msgid ""
 "<code>Gtk.Box</code> (<code>padding</code>)."
 msgstr ""
 
-#: C/image-viewer.js.page:234(section/p) C/image-viewer.py.page:153(section/p)
+#: C/image-viewer.js.page:238(section/p) C/image-viewer.py.page:157(section/p)
 msgid ""
 "Gtk containers (and widgets) dynamically expand to fill the available space, "
 "if you let them. You don't position widgets by giving them a precise x,y-"
@@ -15276,7 +15442,7 @@ msgid ""
 "should automatically take a sensible size in most situations."
 msgstr ""
 
-#: C/image-viewer.js.page:235(section/p) C/image-viewer.py.page:154(section/p)
+#: C/image-viewer.js.page:239(section/p) C/image-viewer.py.page:158(section/p)
 msgid ""
 "Also note how the widgets are organized in a hierarchy. Once packed in the "
 "<code>Gtk.Box</code>, the <code>Gtk.Image</code> is considered a <em>child</"
@@ -15285,11 +15451,11 @@ msgid ""
 "Box</code>, which would also hide all of its children at the same time."
 msgstr ""
 
-#: C/image-viewer.js.page:236(section/p) C/image-viewer.py.page:155(section/p)
+#: C/image-viewer.js.page:240(section/p) C/image-viewer.py.page:159(section/p)
 msgid "Now insert these two lines, below the two you just added:"
 msgstr "Agora escriba estas dúas liñas, embaixo das dúas que acaba de engadir:"
 
-#: C/image-viewer.js.page:237(section/code)
+#: C/image-viewer.js.page:241(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15297,7 +15463,7 @@ msgid ""
 "main_box.pack_start (open_button, false, false, 0);"
 msgstr ""
 
-#: C/image-viewer.js.page:240(section/p)
+#: C/image-viewer.js.page:244(section/p)
 msgid ""
 "These lines are similar to the first two, but this time they create a "
 "<code>Gtk.Button</code> and add it to <code>main_box</code>. Notice that we "
@@ -15309,37 +15475,37 @@ msgid ""
 "increase, taking up all of the rest of the window."
 msgstr ""
 
-#: C/image-viewer.js.page:241(section/p)
+#: C/image-viewer.js.page:245(section/p)
 msgid ""
 "Finally, we must change the <code>this.window.show ();</code> line to read:"
 msgstr ""
 
-#: C/image-viewer.js.page:242(section/code)
+#: C/image-viewer.js.page:246(section/code)
 #, no-wrap
 msgid "this.window.show_all ();"
 msgstr "this.window.show_all ();"
 
-#: C/image-viewer.js.page:243(section/p)
+#: C/image-viewer.js.page:247(section/p)
 msgid ""
 "This will show the child of the Gtk window, and all of its children, and its "
 "children's children, and so on. (Remember that Gtk widgets are all hidden by "
 "default.)"
 msgstr ""
 
-#: C/image-viewer.js.page:247(section/title)
-#: C/image-viewer.py.page:164(section/title)
+#: C/image-viewer.js.page:251(section/title)
+#: C/image-viewer.py.page:168(section/title)
 msgid ""
 "Loading the image: Connecting to the button's <code>clicked</code> signal"
 msgstr ""
 
-#: C/image-viewer.js.page:248(section/p)
+#: C/image-viewer.js.page:252(section/p)
 msgid ""
 "When the user clicks on the <gui>Open</gui> button, a dialog should appear "
 "so that the user can choose a picture. Once chosen, the picture should be "
 "loaded and shown in the image widget."
 msgstr ""
 
-#: C/image-viewer.js.page:249(section/p)
+#: C/image-viewer.js.page:253(section/p)
 msgid ""
 "The first step is to connect the <code>clicked</code> signal of the button "
 "to a signal handler function, which we call <code>_openClicked</code>. Put "
@@ -15347,14 +15513,14 @@ msgid ""
 "code> line where the button was created:"
 msgstr ""
 
-#: C/image-viewer.js.page:250(section/code)
+#: C/image-viewer.js.page:254(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "open_button.connect (\"clicked\", Lang.bind (this, this._openClicked));"
 msgstr ""
 
-#: C/image-viewer.js.page:252(section/p)
+#: C/image-viewer.js.page:256(section/p)
 msgid ""
 "We are using the <em>Lang</em> JavaScript helper here. It allows us to "
 "connect a <em>class method</em> to the signal, rather than a plain function "
@@ -15364,24 +15530,24 @@ msgid ""
 "file:"
 msgstr ""
 
-#: C/image-viewer.js.page:253(section/code)
+#: C/image-viewer.js.page:257(section/code)
 #, no-wrap
 msgid "const Lang = imports.lang;"
 msgstr "const Lang = imports.lang;"
 
-#: C/image-viewer.js.page:257(section/title)
-#: C/image-viewer.py.page:175(section/title)
+#: C/image-viewer.js.page:261(section/title)
+#: C/image-viewer.py.page:179(section/title)
 msgid "Loading the image: Writing the signal's callback"
 msgstr ""
 
-#: C/image-viewer.js.page:258(section/p)
+#: C/image-viewer.js.page:262(section/p)
 msgid ""
 "Now we can create the <code>_openClicked()</code> method. Insert the "
 "following into the <code>ImageViewer.prototype</code> code block, after the "
 "<code>_init</code> method (and not forgetting the comma):"
 msgstr ""
 
-#: C/image-viewer.js.page:259(section/code)
+#: C/image-viewer.js.page:263(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15405,7 +15571,7 @@ msgid ""
 "  }"
 msgstr ""
 
-#: C/image-viewer.js.page:281(item/p)
+#: C/image-viewer.js.page:285(item/p)
 msgid ""
 "The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
 "dialog, which the user can use to choose files. We set four properties: the "
@@ -15417,7 +15583,7 @@ msgid ""
 "is closed."
 msgstr ""
 
-#: C/image-viewer.js.page:284(item/p) C/image-viewer.py.page:198(item/p)
+#: C/image-viewer.js.page:288(item/p) C/image-viewer.py.page:202(item/p)
 msgid ""
 "The next two lines add <gui>Cancel</gui> and <gui>Open</gui> buttons to the "
 "dialog. The second argument of the <code>add_button</code> method is the "
@@ -15425,7 +15591,7 @@ msgid ""
 "<gui>Cancel</gui> and 1 for <gui>Open</gui>."
 msgstr ""
 
-#: C/image-viewer.js.page:288(item/p) C/image-viewer.py.page:202(item/p)
+#: C/image-viewer.js.page:292(item/p) C/image-viewer.py.page:206(item/p)
 msgid ""
 "<code>set_default_response</code> determines the button that will be "
 "activated if the user double-clicks a file or presses <key>Enter</key>. In "
@@ -15433,7 +15599,7 @@ msgid ""
 "value 1)."
 msgstr ""
 
-#: C/image-viewer.js.page:291(item/p) C/image-viewer.py.page:205(item/p)
+#: C/image-viewer.js.page:295(item/p) C/image-viewer.py.page:209(item/p)
 msgid ""
 "The next three lines restrict the <gui>Open</gui> dialog to only display "
 "files which can be opened by <code>Gtk.Image</code>. A filter object is "
@@ -15442,7 +15608,7 @@ msgid ""
 "Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.js.page:294(item/p)
+#: C/image-viewer.js.page:298(item/p)
 msgid ""
 "<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
 "will wait for the user to choose an image; when they do, <code>chooser.run</"
@@ -15451,7 +15617,7 @@ msgid ""
 "statement tests for this."
 msgstr ""
 
-#: C/image-viewer.js.page:296(item/p) C/image-viewer.py.page:210(item/p)
+#: C/image-viewer.js.page:300(item/p) C/image-viewer.py.page:214(item/p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next line sets the "
 "<code>file</code> property of the <code>Gtk.Image</code> to the filename of "
@@ -15459,21 +15625,21 @@ msgid ""
 "and display the chosen image."
 msgstr ""
 
-#: C/image-viewer.js.page:299(item/p) C/image-viewer.py.page:213(item/p)
-#: C/image-viewer.vala.page:267(item/p)
+#: C/image-viewer.js.page:303(item/p) C/image-viewer.py.page:217(item/p)
+#: C/image-viewer.vala.page:272(item/p)
 msgid ""
 "In the final line of this method, we destroy the <gui>Open</gui> dialog "
 "because we don't need it any more."
 msgstr ""
 
-#: C/image-viewer.js.page:307(section/p)
+#: C/image-viewer.js.page:311(section/p)
 msgid ""
 "All of the code you need should now be in place, so try running the code. "
 "That should be it; a fully-functioning image viewer (and a whistlestop tour "
 "of JavaScript and Gtk) in not much time at all!"
 msgstr ""
 
-#: C/image-viewer.js.page:312(section/p)
+#: C/image-viewer.js.page:316(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.js\">reference code</link>."
@@ -15485,7 +15651,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Image Viewer"
 msgctxt "text"
-msgid "Image Viewer (Python)"
+msgid "Image viewer (Python)"
 msgstr "Visor de imaxes"
 
 #: C/image-viewer.py.page:10(info/desc)
@@ -15496,15 +15662,15 @@ msgstr ""
 "Algo máis que un aplicativo sinxelo «Hola mundo» - escribir un visor de "
 "imaxes en GTK."
 
-#: C/image-viewer.py.page:29(item/p)
+#: C/image-viewer.py.page:33(item/p)
 msgid "Write a basic GTK user interface in Python"
 msgstr "Escribir unha interface de usuario básica en Python"
 
-#: C/image-viewer.py.page:37(item/p)
+#: C/image-viewer.py.page:41(item/p)
 msgid "Basic knowledge of the python programming language"
 msgstr ""
 
-#: C/image-viewer.py.page:51(item/p)
+#: C/image-viewer.py.page:55(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
@@ -15519,7 +15685,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.py.page:54(item/p)
+#: C/image-viewer.py.page:58(item/p)
 msgid ""
 "Be sure to disable <gui>Use GtkBuilder for user interface</gui> as we will "
 "build the user interface manually in this example. For an example of using "
@@ -15527,7 +15693,7 @@ msgid ""
 "Tuner demo</link>."
 msgstr ""
 
-#: C/image-viewer.py.page:59(item/p)
+#: C/image-viewer.py.page:63(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/image_viewer.py</file> from the <gui>Project</gui> or <gui>File</"
@@ -15537,11 +15703,11 @@ msgstr ""
 "py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
 "Contén un exemplo de código moi básico:"
 
-#: C/image-viewer.py.page:66(section/p)
+#: C/image-viewer.py.page:70(section/p)
 msgid "Let's see what a very basic Gtk application looks like in Python:"
 msgstr "Vexamos como é o máis básico dun aplicativo Gtk en Python:"
 
-#: C/image-viewer.py.page:67(section/code)
+#: C/image-viewer.py.page:71(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15569,7 +15735,7 @@ msgid ""
 "  "
 msgstr ""
 
-#: C/image-viewer.py.page:96(item/p)
+#: C/image-viewer.py.page:100(item/p)
 msgid ""
 "In the <code>__init__</code> method of the <code>GUI</code> class creates an "
 "(empty) <code>Gtk.Window</code>, sets its title and then connects a signal "
@@ -15577,7 +15743,7 @@ msgid ""
 "overall, more on signals later."
 msgstr ""
 
-#: C/image-viewer.py.page:101(item/p)
+#: C/image-viewer.py.page:105(item/p)
 msgid ""
 "Next, <code>destroy</code> is defined which just quits the application. It "
 "is called by the <code>destroy</code> signal connected above."
@@ -15585,17 +15751,17 @@ msgstr ""
 "A continuación, <code>destroy</code> está definido só para saír do "
 "aplicativo. É chamado pola sinal <code>destroy</code> conectada enriba."
 
-#: C/image-viewer.py.page:105(item/p)
+#: C/image-viewer.py.page:109(item/p)
 msgid "The rest of the file does initialisation for Gtk and displays the GUI."
 msgstr "O resto do ficheiro inicializa Gtk e mostra o GUI."
 
-#: C/image-viewer.py.page:109(section/p)
+#: C/image-viewer.py.page:113(section/p)
 msgid ""
 "This code is ready to run, so try it using <guiseq><gui>Run</"
 "gui><gui>Execute</gui></guiseq>. It should show you an empty window."
 msgstr ""
 
-#: C/image-viewer.py.page:116(section/code)
+#: C/image-viewer.py.page:120(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15606,14 +15772,14 @@ msgid ""
 "b.connect_after ('clicked', button_clicked)"
 msgstr ""
 
-#: C/image-viewer.py.page:132(section/p)
+#: C/image-viewer.py.page:136(section/p)
 msgid ""
 "Let's add the box and widgets to the window. Insert the following code into "
 "the <code>__init__</code> method, immediately after the <code>window."
 "connect_after</code> line:"
 msgstr ""
 
-#: C/image-viewer.py.page:133(section/code)
+#: C/image-viewer.py.page:137(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15624,7 +15790,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: C/image-viewer.py.page:140(section/p)
+#: C/image-viewer.py.page:144(section/p)
 msgid ""
 "The first line creates a <code>Gtk.Box</code> called <code>box</code> and "
 "the following lines set two of its properties: the <code>orientation</code> "
@@ -15633,13 +15799,13 @@ msgid ""
 "then adds the newly-created <code>Gtk.Box</code> to the window."
 msgstr ""
 
-#: C/image-viewer.py.page:146(section/p)
+#: C/image-viewer.py.page:150(section/p)
 msgid ""
 "To add some widgets to the <code>Gtk.Box</code>, insert the following code "
 "directly below the <code>window.add (box)</code> line:"
 msgstr ""
 
-#: C/image-viewer.py.page:147(section/code)
+#: C/image-viewer.py.page:151(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15647,7 +15813,7 @@ msgid ""
 "box.pack_start (self.image, False, False, 0)"
 msgstr ""
 
-#: C/image-viewer.py.page:150(section/p)
+#: C/image-viewer.py.page:154(section/p)
 msgid ""
 "The first line creates a new <code>Gtk.Image</code> called <code>image</"
 "code>, which will be used to display an image file. As we need that later on "
@@ -15659,7 +15825,7 @@ msgid ""
 "method."
 msgstr ""
 
-#: C/image-viewer.py.page:152(section/p)
+#: C/image-viewer.py.page:156(section/p)
 msgid ""
 "<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
 "the GtkBox (<code>child</code>); whether the <code>Gtk.Box</code> should "
@@ -15670,7 +15836,7 @@ msgid ""
 "Box</code> (<code>padding</code>)."
 msgstr ""
 
-#: C/image-viewer.py.page:156(section/code)
+#: C/image-viewer.py.page:160(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15678,7 +15844,7 @@ msgid ""
 "box.pack_start (button, False, False, 0)\n"
 msgstr ""
 
-#: C/image-viewer.py.page:160(section/p)
+#: C/image-viewer.py.page:164(section/p)
 msgid ""
 "These lines are similar to the first two, but this time they create a "
 "<code>Gtk.Button</code> and add it to <code>box</code>. Notice that we are "
@@ -15690,14 +15856,14 @@ msgid ""
 "up all of the rest of the window."
 msgstr ""
 
-#: C/image-viewer.py.page:165(section/p)
+#: C/image-viewer.py.page:169(section/p)
 msgid ""
 "When the user clicks on the <gui>Open Image...</gui> button, a dialog should "
 "appear so that the user can choose a picture. Once chosen, the picture "
 "should be loaded and shown in the image widget."
 msgstr ""
 
-#: C/image-viewer.py.page:166(section/p)
+#: C/image-viewer.py.page:170(section/p)
 msgid ""
 "The first step is to connect the <code>clicked</code> signal of the button "
 "to a signal handler function, which we call <code>on_open_clicked</code>. "
@@ -15705,27 +15871,27 @@ msgid ""
 "where the button was created:"
 msgstr ""
 
-#: C/image-viewer.py.page:167(section/code)
+#: C/image-viewer.py.page:171(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "button.connect_after('clicked', self.on_open_clicked)\n"
 msgstr ""
 
-#: C/image-viewer.py.page:170(section/p)
+#: C/image-viewer.py.page:174(section/p)
 msgid ""
 "This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
 "code> method that we will define below."
 msgstr ""
 
-#: C/image-viewer.py.page:176(section/p)
+#: C/image-viewer.py.page:180(section/p)
 msgid ""
 "Now we can create the <code>on_open_clicked</code> method. Insert the "
 "following into the <code>GUI</code> class code block, after the "
 "<code>__init__</code> method:"
 msgstr ""
 
-#: C/image-viewer.py.page:177(section/code)
+#: C/image-viewer.py.page:181(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15745,7 +15911,7 @@ msgid ""
 "\tdialog.destroy()"
 msgstr ""
 
-#: C/image-viewer.py.page:195(item/p)
+#: C/image-viewer.py.page:199(item/p)
 msgid ""
 "The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
 "dialog, which the user can use to choose files. We set three properties: the "
@@ -15755,7 +15921,7 @@ msgid ""
 "the dialog."
 msgstr ""
 
-#: C/image-viewer.py.page:208(item/p)
+#: C/image-viewer.py.page:212(item/p)
 msgid ""
 "<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
 "wait for the user to choose an image; when they do, <code>dialog.run</code> "
@@ -15764,14 +15930,14 @@ msgid ""
 "for this."
 msgstr ""
 
-#: C/image-viewer.py.page:221(section/p)
+#: C/image-viewer.py.page:225(section/p)
 msgid ""
 "All of the code you need should now be in place, so try running the code. "
 "That should be it; a fully-functioning image viewer (and a whistlestop tour "
 "of Python and Gtk) in not much time at all!"
 msgstr ""
 
-#: C/image-viewer.py.page:226(section/p)
+#: C/image-viewer.py.page:230(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.py\">reference code</link>."
@@ -15781,14 +15947,20 @@ msgstr ""
 #, fuzzy
 #| msgid "Image Viewer"
 msgctxt "text"
-msgid "Image Viewer (Vala)"
+msgid "Image viewer (Vala)"
 msgstr "Visor de imaxes"
 
+#: C/image-viewer.vala.page:10(info/desc)
+#, fuzzy
+#| msgid "A little bit more than a simple \"Hello world\" GTKmm application."
+msgid "A little bit more than a simple \"Hello world\" GTK+ application."
+msgstr "Un pouco máis que un simple aplicativo Gtkmm «Ola mundo»."
+
 #: C/image-viewer.vala.page:22(credit/name)
 msgid "Philip Chimento"
 msgstr "Philip Chimento"
 
-#: C/image-viewer.vala.page:33(synopsis/p)
+#: C/image-viewer.vala.page:38(synopsis/p)
 #, fuzzy
 #| msgid ""
 #| "In this tutorial, we're going to write a very simple GTK application that "
@@ -15800,38 +15972,38 @@ msgstr ""
 "Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
 "mostra un ficheiro de imaxe. Vostede aprenderá a:"
 
-#: C/image-viewer.vala.page:35(item/p)
+#: C/image-viewer.vala.page:40(item/p)
 msgid ""
 "How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
 "IDE</link>."
 msgstr ""
 
-#: C/image-viewer.vala.page:36(item/p)
+#: C/image-viewer.vala.page:41(item/p)
 msgid ""
 "How to write a <link href=\"http://developer.gnome.org/platform-overview/";
 "stable/gtk\">Gtk application</link> in Vala"
 msgstr ""
 
-#: C/image-viewer.vala.page:37(item/p)
+#: C/image-viewer.vala.page:42(item/p)
 msgid ""
 "Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
 "stable/\">GObject</link> programming"
 msgstr ""
 
-#: C/image-viewer.vala.page:44(item/p)
+#: C/image-viewer.vala.page:49(item/p)
 msgid ""
 "You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> "
 "API Reference useful, although it is not necessary to follow the tutorial."
 msgstr ""
 
-#: C/image-viewer.vala.page:60(item/p)
+#: C/image-viewer.vala.page:65(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
 #| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 #| "<file>guitar-tuner</file> as project name and directory."
 msgid ""
-"From the <gui>Vala</gui> tab choose <gui>Gtk+ (Simple)</gui>, click "
+"From the <gui>Vala</gui> tab choose <gui>GTK+ (Simple)</gui>, click "
 "<gui>Continue</gui>, and fill out your details on the next page. Use "
 "<file>image-viewer</file> as project name and directory."
 msgstr ""
@@ -15839,7 +16011,7 @@ msgstr ""
 "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
 "<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.vala.page:64(item/p)
+#: C/image-viewer.vala.page:69(item/p)
 #, fuzzy
 #| msgid ""
 #| "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled "
@@ -15855,13 +16027,13 @@ msgstr ""
 "titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
 "construtor de interface."
 
-#: C/image-viewer.vala.page:65(note/p)
+#: C/image-viewer.vala.page:70(note/p)
 msgid ""
 "You will learn how to use the interface builder in the <link xref=\"guitar-"
 "tuner.vala\">Guitar-Tuner</link> tutorial."
 msgstr ""
 
-#: C/image-viewer.vala.page:69(item/p)
+#: C/image-viewer.vala.page:74(item/p)
 #, fuzzy
 #| msgid ""
 #| "Click <gui>Apply</gui> and the project will be created for you. Open "
@@ -15876,7 +16048,7 @@ msgstr ""
 "file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. Contén "
 "código de exemplo moi básico."
 
-#: C/image-viewer.vala.page:72(item/code)
+#: C/image-viewer.vala.page:77(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15911,20 +16083,20 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/image-viewer.vala.page:108(section/p)
+#: C/image-viewer.vala.page:113(section/p)
 msgid ""
 "The code loads an (empty) window from the user interface description file "
 "and shows it. More details are given below; skip this list if you understand "
 "the basics:"
 msgstr ""
 
-#: C/image-viewer.vala.page:113(item/p)
+#: C/image-viewer.vala.page:118(item/p)
 msgid ""
 "The two <code>using</code> lines at the top import namespaces so we don't "
 "have to name them explicitly."
 msgstr ""
 
-#: C/image-viewer.vala.page:116(item/p)
+#: C/image-viewer.vala.page:121(item/p)
 #, fuzzy
 #| msgid ""
 #| "The <code>create_window</code> function creates a new (empty) window and "
@@ -15937,7 +16109,7 @@ msgstr ""
 "A función <code>create_window</code> crea unha xanela (baleira) nova e "
 "conecta un sinal para saír do aplicativo péchase esa xanela."
 
-#: C/image-viewer.vala.page:121(item/p)
+#: C/image-viewer.vala.page:126(item/p)
 msgid ""
 "The <code>static main</code> function is run by default when you start a "
 "Vala application. It calls a few functions which create the <code>Main</"
@@ -15948,15 +16120,15 @@ msgid ""
 "(like clicks and key presses)."
 msgstr ""
 
-#: C/image-viewer.vala.page:128(section/p)
-#: C/magic-mirror.vala.page:88(section/p)
+#: C/image-viewer.vala.page:133(section/p)
+#: C/magic-mirror.vala.page:93(section/p)
 msgid ""
 "Change the <gui>Configuration</gui> to <gui>Default</gui> and then press "
 "<gui>Execute</gui> to configure the build directory. You only need to do "
 "this once, for the first build."
 msgstr ""
 
-#: C/image-viewer.vala.page:134(section/p)
+#: C/image-viewer.vala.page:139(section/p)
 msgid ""
 "Now we will bring life into the empty window. GTK organizes the user "
 "interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
@@ -15966,11 +16138,11 @@ msgid ""
 "Box</code></link>."
 msgstr ""
 
-#: C/image-viewer.vala.page:138(section/p)
+#: C/image-viewer.vala.page:143(section/p)
 msgid "Add the following lines to the top of the <code>Main</code> class:"
 msgstr ""
 
-#: C/image-viewer.vala.page:139(section/code)
+#: C/image-viewer.vala.page:144(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -15978,11 +16150,11 @@ msgid ""
 "private Image image;\n"
 msgstr ""
 
-#: C/image-viewer.vala.page:144(section/p)
+#: C/image-viewer.vala.page:149(section/p)
 msgid "Now replace the current constructor with the one below:"
 msgstr ""
 
-#: C/image-viewer.vala.page:145(section/code)
+#: C/image-viewer.vala.page:150(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -16009,7 +16181,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.vala.page:170(item/p)
+#: C/image-viewer.vala.page:175(item/p)
 msgid ""
 "The first two lines are the parts of the GUI that we will need to access "
 "from more than one method. We declare them up here so that they are "
@@ -16017,14 +16189,14 @@ msgid ""
 "created."
 msgstr ""
 
-#: C/image-viewer.vala.page:174(item/p)
+#: C/image-viewer.vala.page:179(item/p)
 msgid ""
 "The first lines of the constructor create the empty window. The next lines "
 "create the widgets we want to use: a button for opening up an image, the "
 "image view widget itself and the box we will use as a container."
 msgstr ""
 
-#: C/image-viewer.vala.page:178(item/p)
+#: C/image-viewer.vala.page:183(item/p)
 msgid ""
 "The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
 "pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
@@ -16035,13 +16207,13 @@ msgid ""
 "different window sizes. Next, the box is added to the window."
 msgstr ""
 
-#: C/image-viewer.vala.page:185(item/p)
+#: C/image-viewer.vala.page:190(item/p)
 msgid ""
 "We need to define what happens when the user clicks on the button. GTK uses "
 "the concept of <em>signals</em>."
 msgstr ""
 
-#: C/image-viewer.vala.page:186(item/p)
+#: C/image-viewer.vala.page:191(item/p)
 msgid ""
 "When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
 "link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
@@ -16050,7 +16222,7 @@ msgid ""
 "Vala/SignalsAndCallbacks\">callback</link> method)."
 msgstr ""
 
-#: C/image-viewer.vala.page:189(item/p)
+#: C/image-viewer.vala.page:194(item/p)
 msgid ""
 "This is done using the <code>connect</code> method of the button's "
 "<code>clicked</code> signal, which in this case tells GTK to call the (yet "
@@ -16058,14 +16230,14 @@ msgid ""
 "clicked. We will define the <em>callback</em> in the next section."
 msgstr ""
 
-#: C/image-viewer.vala.page:193(item/p)
+#: C/image-viewer.vala.page:198(item/p)
 msgid ""
 "In the callback, we need to access the <code>window</code> and <code>image</"
 "code> widgets, which is why we defined them as private members at the top of "
 "our class."
 msgstr ""
 
-#: C/image-viewer.vala.page:197(item/p)
+#: C/image-viewer.vala.page:202(item/p)
 msgid ""
 "The last <code>connect</code> call makes sure that the application exits "
 "when the window is closed. The code generated by Anjuta called an "
@@ -16075,13 +16247,13 @@ msgid ""
 "You can delete the <code>on_destroy</code> method."
 msgstr ""
 
-#: C/image-viewer.vala.page:205(section/p)
+#: C/image-viewer.vala.page:210(section/p)
 msgid ""
 "We will now define the signal handler for the <code>clicked</code> signal "
 "for the button we mentioned before. Add this code after the constructor:"
 msgstr ""
 
-#: C/image-viewer.vala.page:208(section/code)
+#: C/image-viewer.vala.page:213(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -16108,50 +16280,50 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/image-viewer.vala.page:231(section/p)
+#: C/image-viewer.vala.page:236(section/p)
 msgid "This is a bit complicated, so let's break it down:"
 msgstr ""
 
-#: C/image-viewer.vala.page:232(note/p)
+#: C/image-viewer.vala.page:237(note/p)
 msgid ""
 "A signal handler is a type of callback method that is called when a signal "
 "is emitted. Here the terms are used interchangeably."
 msgstr ""
 
-#: C/image-viewer.vala.page:235(item/p)
+#: C/image-viewer.vala.page:240(item/p)
 msgid ""
 "The first argument of the callback method is always the widget that sent the "
 "signal. Sometimes other arguments related to the signal come after that, but "
 "<em>clicked</em> doesn't have any."
 msgstr ""
 
-#: C/image-viewer.vala.page:237(item/p)
+#: C/image-viewer.vala.page:242(item/p)
 msgid ""
 "In this case the <code>button</code> sent the <code>clicked</code> signal, "
 "which is connected to the <code>on_open_image</code> callback method:"
 msgstr ""
 
-#: C/image-viewer.vala.page:238(item/code)
+#: C/image-viewer.vala.page:243(item/code)
 #, no-wrap
 msgid ""
 "\n"
 "        button.clicked.connect (on_open_image);\n"
 msgstr ""
 
-#: C/image-viewer.vala.page:242(item/p)
+#: C/image-viewer.vala.page:247(item/p)
 msgid ""
 "The <code>on_open_image</code> method takes the button that emitted the "
 "signal as an argument:"
 msgstr ""
 
-#: C/image-viewer.vala.page:243(item/code)
+#: C/image-viewer.vala.page:248(item/code)
 #, no-wrap
 msgid ""
 "\n"
 "        public void on_open_image (Button self)\n"
 msgstr ""
 
-#: C/image-viewer.vala.page:248(item/p)
+#: C/image-viewer.vala.page:253(item/p)
 msgid ""
 "The next interesting line is where the dialog for choosing the file is "
 "created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.";
@@ -16160,7 +16332,7 @@ msgid ""
 "number of buttons and their corresponding values."
 msgstr ""
 
-#: C/image-viewer.vala.page:250(item/p)
+#: C/image-viewer.vala.page:255(item/p)
 msgid ""
 "Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-3.0/";
 "Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead of "
@@ -16169,7 +16341,7 @@ msgid ""
 "language."
 msgstr ""
 
-#: C/image-viewer.vala.page:254(item/p)
+#: C/image-viewer.vala.page:259(item/p)
 msgid ""
 "The next two lines restrict the <gui>Open</gui> dialog to only display files "
 "which can be opened by <em>GtkImage</em>. GtkImage is a widget which "
@@ -16180,7 +16352,7 @@ msgid ""
 "the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.vala.page:259(item/p)
+#: C/image-viewer.vala.page:264(item/p)
 msgid ""
 "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
 "\"><code>dialog.run</code></link> displays the <gui>Open</gui> dialog. The "
@@ -16191,18 +16363,18 @@ msgid ""
 "<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
 msgstr ""
 
-#: C/image-viewer.vala.page:264(item/p)
+#: C/image-viewer.vala.page:269(item/p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next lines get the "
 "filename of the image selected by the user, and tell the <code>GtkImage</"
 "code> widget to load and display the selected image."
 msgstr ""
 
-#: C/image-viewer.vala.page:268(item/p)
+#: C/image-viewer.vala.page:273(item/p)
 msgid "Destroying automatically hides the dialog."
 msgstr ""
 
-#: C/image-viewer.vala.page:277(section/p)
+#: C/image-viewer.vala.page:282(section/p)
 #, fuzzy
 #| msgid ""
 #| "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
@@ -16217,7 +16389,7 @@ msgstr ""
 "file> no diálogo que aparece. Finalmente, prema <gui>Executar</gui> e "
 "desfrute!"
 
-#: C/image-viewer.vala.page:283(section/p)
+#: C/image-viewer.vala.page:288(section/p)
 #, fuzzy
 #| msgid ""
 #| "If you run into problems with the tutorial, compare your code with this "
@@ -16229,7 +16401,7 @@ msgstr ""
 "Se ten problemas con este titorial, compare o seu código con este <link href="
 "\"image-viewer/image-viewer.js\">código de referencia</link>."
 
-#: C/image-viewer.vala.page:290(item/p)
+#: C/image-viewer.vala.page:295(item/p)
 msgid ""
 "Set it up so that when the window opens it is of a specific size to start "
 "off with. For example, 200 X 200 pixels."
@@ -16242,10 +16414,20 @@ msgctxt "link"
 msgid "JavaScript"
 msgstr "JavaScript"
 
-#: C/js.page:16(page/title)
+#: C/js.page:20(credit/name)
+msgid "Ekaterina Gerasimova"
+msgstr ""
+
+#: C/js.page:25(page/title)
 msgid "Tutorials, code samples and platform demos in JavaScript"
 msgstr ""
 
+#: C/js.page:30(section/title)
+#, fuzzy
+#| msgid "Gtk Widget Sample Code and Tutorials"
+msgid "Code samples and tutorials"
+msgstr "Exemplo de código e titoriais de widgets Gtk"
+
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
@@ -16266,7 +16448,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/label.c.page:25(media) C/label.js.page:21(media)
-#: C/label.py.page:27(media) C/label.vala.page:21(media)
+#: C/label.py.page:29(media) C/label.vala.page:21(media)
 #, fuzzy
 #| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
 msgctxt "_"
@@ -16285,12 +16467,12 @@ msgid "A widget which displays text"
 msgstr ""
 
 #: C/label.c.page:21(page/title) C/label.js.page:20(page/title)
-#: C/label.py.page:26(page/title) C/label.vala.page:20(page/title)
-#: C/toolbar_builder.py.page:96(td/p) C/toolbar_builder.vala.page:80(td/p)
+#: C/label.py.page:28(page/title) C/label.vala.page:20(page/title)
+#: C/toolbar_builder.py.page:97(td/p) C/toolbar_builder.vala.page:80(td/p)
 msgid "Label"
 msgstr "Etiqueta"
 
-#: C/label.c.page:26(td/p) C/label.py.page:28(page/p)
+#: C/label.c.page:26(td/p) C/label.py.page:30(page/p)
 #: C/label.vala.page:22(page/p)
 msgid "A simple label"
 msgstr ""
@@ -16454,11 +16636,11 @@ msgctxt "text"
 msgid "Label (Python)"
 msgstr "Python"
 
-#: C/label.py.page:23(info/desc)
+#: C/label.py.page:25(info/desc)
 msgid "A widget that displays a small to medium amount of text"
 msgstr ""
 
-#: C/label.py.page:35(section/code)
+#: C/label.py.page:37(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -16493,14 +16675,14 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/label.py.page:37(section/p)
+#: C/label.py.page:39(section/p)
 msgid ""
 "Another way to obtain what we have in the example is to create the label as "
 "an instance of another class and add it to the instance of <code>MyWindow</"
 "code> in the <code>do_activate(self)</code> method:"
 msgstr ""
 
-#: C/label.py.page:38(section/code)
+#: C/label.py.page:40(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -16531,30 +16713,23 @@ msgid ""
 "        win.show_all()"
 msgstr ""
 
-#: C/label.py.page:68(section/title)
+#: C/label.py.page:70(section/title)
 msgid "Useful methods for a Label widget"
 msgstr ""
 
-#: C/label.py.page:69(section/p) C/textview.py.page:49(section/p)
-msgid ""
-"An explanation of how to deal with strings and Unicode (and a recap of what "
-"these things are) can be found <link xref=\"strings.py.page\">here</link>."
-msgstr ""
-
-#: C/label.py.page:70(section/p)
+#: C/label.py.page:71(section/p)
 msgid ""
-"<code>label = Gtk.Label(label=\"Hello GNOME!\")</code> could also be used to "
-"create a label and set the text directly. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
+"An explanation of how to deal with strings in GTK+ can be found in <link "
+"xref=\"strings.py\"/>."
 msgstr ""
 
-#: C/label.py.page:72(item/p)
+#: C/label.py.page:73(item/p)
 msgid ""
 "<code>set_line_wrap(True)</code> breaks lines if the text of the label "
 "exceeds the size of the widget."
 msgstr ""
 
-#: C/label.py.page:73(item/p)
+#: C/label.py.page:74(item/p)
 msgid ""
 "<code>set_justify(Gtk.Justification.LEFT)</code> (or <code>Gtk.Justification."
 "RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</code>) sets the "
@@ -16562,7 +16737,7 @@ msgid ""
 "method has no effect on a single-line label."
 msgstr ""
 
-#: C/label.py.page:74(item/p)
+#: C/label.py.page:75(item/p)
 msgid ""
 "For decorated text we can use <code>set_markup(\"text\")</code>, where <code>"
 "\"text\"</code> is a text in the <link href=\"http://developer.gnome.org/";
@@ -16570,7 +16745,7 @@ msgid ""
 "example:"
 msgstr ""
 
-#: C/label.py.page:75(item/code)
+#: C/label.py.page:76(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -16958,7 +17133,7 @@ msgstr ""
 msgid ""
 "Each time the button is clicked, the signal <code>\"activate-link\"</code> "
 "is emitted. For an explanation of signals and callback functions, see <link "
-"xref=\"signals-callbacks.py\">this page</link>."
+"xref=\"signals-callbacks.py\"/>."
 msgstr ""
 
 #: C/linkbutton.py.page:47(item/p)
@@ -17026,7 +17201,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/magic-mirror.vala.page:41(media)
+#: C/magic-mirror.vala.page:46(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
@@ -17040,11 +17215,13 @@ msgstr ""
 #, fuzzy
 #| msgid "Magic Mirror"
 msgctxt "text"
-msgid "Magic Mirror (Vala)"
+msgid "Magic mirror (Vala)"
 msgstr "Espello máxico"
 
 #: C/magic-mirror.vala.page:10(info/desc)
-msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+#, fuzzy
+#| msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+msgid "Use your webcam as a mirror using the GStreamer framework and GTK+"
 msgstr ""
 "Use a súa cámara web como un espello usando o marco de traballo GStreamer e "
 "GTK+"
@@ -17053,13 +17230,13 @@ msgstr ""
 msgid "Daniel G. Siegel"
 msgstr "Daniel G. Siegel"
 
-#: C/magic-mirror.vala.page:23(page/title)
+#: C/magic-mirror.vala.page:28(page/title)
 #, fuzzy
 #| msgid "Magic Mirror"
-msgid "4 Magic Mirror"
+msgid "Magic mirror"
 msgstr "Espello máxico"
 
-#: C/magic-mirror.vala.page:26(synopsis/p)
+#: C/magic-mirror.vala.page:31(synopsis/p)
 msgid ""
 "<em>Your mirror just fell off the wall and broke into a thousand pieces — "
 "but you need a mirror to shave your beard off or add some makeup! You only "
@@ -17067,75 +17244,83 @@ msgid ""
 "em>"
 msgstr ""
 
-#: C/magic-mirror.vala.page:27(synopsis/p)
+#: C/magic-mirror.vala.page:32(synopsis/p)
 msgid ""
 "In this tutorial, we're going to make a program which lets you use your "
 "webcam as a mirror. You will learn how to:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:29(item/p)
+#: C/magic-mirror.vala.page:34(item/p)
 msgid "Create a GTK+ application"
 msgstr "Crear un apliativo GTK+"
 
-#: C/magic-mirror.vala.page:30(item/p)
+#: C/magic-mirror.vala.page:35(item/p)
 msgid "Access your webcam using GStreamer and embed the result into a window"
 msgstr ""
 "Acceda á súa cámara web usando GStreamer e incruste o resultado nunha xanela"
 
-#: C/magic-mirror.vala.page:31(item/p)
+#: C/magic-mirror.vala.page:36(item/p)
 msgid "Grab photos off your webcam"
 msgstr "Obter as fotos da śua cámara web"
 
-#: C/magic-mirror.vala.page:36(item/p)
+#: C/magic-mirror.vala.page:41(item/p)
 msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
 msgstr "Copias instaladas de GTK, GStreamer e compilador de Vala"
 
-#: C/magic-mirror.vala.page:37(item/p)
+#: C/magic-mirror.vala.page:42(item/p)
 msgid "Basic knowledge of an object-oriented programming language"
 msgstr "Coñecemento básico dun linguaxe de programación orientado a obxectos"
 
-#: C/magic-mirror.vala.page:51(item/p)
+#: C/magic-mirror.vala.page:56(item/p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>guitar-tuner</file> as project name and directory."
 msgid ""
-"Choose <gui>Gtk+ (simple)</gui> from the <gui>Vala</gui> tab, click "
+"Choose <gui>GTK+ (simple)</gui> from the <gui>Vala</gui> tab, click "
 "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 "<file>guitar-tuner</file> as project name and directory."
 msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>Vala</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/magic-mirror.vala.page:54(item/p)
+#: C/magic-mirror.vala.page:59(item/p)
 msgid ""
 "Disable <gui>Use GtkBuilder for user interface</gui> as we will create the "
 "UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
 "\">Guitar-Tuner</link> tutorial using the interface builder."
 msgstr ""
 
-#: C/magic-mirror.vala.page:59(item/p)
+#: C/magic-mirror.vala.page:64(item/p)
 msgid ""
 "Make sure that <gui>Configure external packages</gui> is selected. On the "
 "next page, select <em>gstreamer-0.10</em> from the list to include the "
 "<app>GStreamer</app> library into your project."
 msgstr ""
 
-#: C/magic-mirror.vala.page:63(item/p)
+#: C/magic-mirror.vala.page:68(item/p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
 "gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:73(section/p)
+#: C/magic-mirror.vala.page:78(section/p)
 msgid ""
 "The code loads an (empty) window and shows it. More details are given below; "
 "skip this list if you understand the basics:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:79(item/p)
+#: C/magic-mirror.vala.page:84(item/p)
 msgid ""
 "The constructor of the <code>Main</code> class creates a new window and sets "
 "its title. Afterwards the window is shown and a signal is connected which "
 "quits the application if the window is closed. More on signals later on."
 msgstr ""
 
-#: C/magic-mirror.vala.page:83(item/p)
+#: C/magic-mirror.vala.page:88(item/p)
 msgid ""
 "The static <code>main</code> function is run by default when you start a "
 "Vala application. It calls a few functions which create the Main class, set "
@@ -17144,11 +17329,11 @@ msgid ""
 "events (like clicks and key presses)."
 msgstr ""
 
-#: C/magic-mirror.vala.page:92(section/title)
+#: C/magic-mirror.vala.page:97(section/title)
 msgid "Access the webcam video stream with GStreamer"
 msgstr "Acceder ao fluxo de vídeo de cámara web con GStreamer"
 
-#: C/magic-mirror.vala.page:93(section/p)
+#: C/magic-mirror.vala.page:98(section/p)
 msgid ""
 "The GStreamer multimedia framework is able to handle video from webcams. "
 "Let's add GStreamer to our application and so we can access the video stream."
@@ -17157,7 +17342,7 @@ msgstr ""
 "desde cámara web. Engada GStreamer ao seu aplicativo e poderá acceder ao "
 "fluxo de vídeo."
 
-#: C/magic-mirror.vala.page:95(section/code)
+#: C/magic-mirror.vala.page:100(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -17185,7 +17370,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/magic-mirror.vala.page:120(item/p)
+#: C/magic-mirror.vala.page:125(item/p)
 msgid ""
 "First we remove the window we created before because GStreamer will take "
 "care of showing the picture on screen."
@@ -17193,7 +17378,7 @@ msgstr ""
 "Primeiro quítase a xanela creada anteriormente, xa que GStreamer encargarase "
 "de mostrar a imaxe na pantalla."
 
-#: C/magic-mirror.vala.page:124(item/p)
+#: C/magic-mirror.vala.page:129(item/p)
 msgid ""
 "Now we are creating a GStreamer element which accesses our webcam. We are "
 "using the Camerabin element, which is an all-in-one camera element and is "
@@ -17209,20 +17394,20 @@ msgstr ""
 "indícase á túbería de GStreamer que se acaba de crear que empece a "
 "reproducir. Sinxelo, non?"
 
-#: C/magic-mirror.vala.page:131(item/p)
+#: C/magic-mirror.vala.page:136(item/p)
 msgid ""
 "Of course it is also possible to integrate the video more tighly into other "
 "windows but that is an advanced topic that includes some details of the X "
 "Window System we will omit here."
 msgstr ""
 
-#: C/magic-mirror.vala.page:135(item/p)
+#: C/magic-mirror.vala.page:140(item/p)
 msgid ""
 "Compile and run it again. You will end up with two windows. In the next step "
 "we will integrate the video into the GTK+ window."
 msgstr ""
 
-#: C/magic-mirror.vala.page:145(section/p)
+#: C/magic-mirror.vala.page:150(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
@@ -17237,7 +17422,7 @@ msgstr ""
 "máis ampla</link> que incrusta a xanela nunha xanela GTK regular que implica "
 "algunhas técnicas avanzadas, e engade botóns para iniciar/deter a imaxe."
 
-#: C/magic-mirror.vala.page:152(section/p)
+#: C/magic-mirror.vala.page:157(section/p)
 msgid ""
 "To find out more about the Vala programming language you might want to check "
 "out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
@@ -17247,11 +17432,11 @@ msgstr ""
 "visitar <link href=\"http://live.gnome.org/Vala/Tutorial\";>o titorial de "
 "Vala</link>."
 
-#: C/magic-mirror.vala.page:157(section/title)
+#: C/magic-mirror.vala.page:162(section/title)
 msgid "Conclusion"
 msgstr "Conclusión"
 
-#: C/magic-mirror.vala.page:158(section/p)
+#: C/magic-mirror.vala.page:163(section/p)
 msgid ""
 "That's it, you have managed to create a full-featured webcam photo "
 "application in 15 minutes. Now you can shave your beard off or add some "
@@ -17273,13 +17458,401 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/menubar.py.page:28(media) C/menubar.vala.page:23(media)
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/menubar.c.page:24(media) C/menubar.py.page:28(media)
+#: C/menubar.vala.page:23(media)
 #, fuzzy
 #| msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
 msgctxt "_"
 msgid "external ref='media/menubar.png' md5='7b642aaa1628d5e43ab85ac230ac1c78'"
 msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
 
+#: C/menubar.c.page:7(info/title)
+#, fuzzy
+#| msgid "Statusbar (Vala)"
+msgctxt "text"
+msgid "MenuBar (C)"
+msgstr "Barra de estado (Vala)"
+
+#: C/menubar.c.page:19(info/desc) C/menubar.py.page:24(info/desc)
+#: C/menubar.vala.page:19(info/desc)
+msgid "A widget which holds GtkMenuItem widgets"
+msgstr ""
+
+#: C/menubar.c.page:22(page/title) C/menubar.vala.page:22(page/title)
+msgid "MenuBar"
+msgstr ""
+
+#: C/menubar.c.page:25(page/p) C/menubar.py.page:29(page/p)
+#: C/menubar.vala.page:24(page/p)
+msgid "A MenuBar created using XML and GtkBuilder."
+msgstr ""
+
+#: C/menubar.c.page:26(note/p)
+msgid ""
+"For a more in-depth look at this sample, please do not hesitate to check out "
+"the <link xref=\"menubar.vala\">Vala MenuBar</link> and/or <link xref="
+"\"menubar.py\">Python MenuBar</link> tutorials."
+msgstr ""
+
+#: C/menubar.c.page:30(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"copy\" action */\n"
+"static void\n"
+"copy_callback (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   g_print (\"\\\"Copy\\\" activated\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"paste\" action */\n"
+"static void\n"
+"paste_callback (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   g_print (\"\\\"Paste\\\" activated\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"shape\" action */\n"
+"static void\n"
+"shape_callback (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   /* We first gather the value of the GVariant instance with a string type.\n"
+"    * The overall goal here is to see if shape is set to line, triangle, etc,\n"
+"    * and put that value within the variable \"answer\".\n"
+"    */\n"
+"   const gchar *answer = g_variant_get_string (parameter, NULL);\n"
+"   g_printf (\"Shape is set to %s.\\n\", answer);\n"
+"   /* Note that we set the state of the action */\n"
+"   g_simple_action_set_state (simple, parameter);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function in which closes the about_dialog created below */\n"
+"static void\n"
+"on_close (GtkDialog *dialog,\n"
+"          gint       response_id,\n"
+"          gpointer   user_data)\n"
+"{\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the about action (see aboutdialog.c example) */\n"
+"static void\n"
+"about_callback (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   GtkWidget *about_dialog;\n"
+"\n"
+"   about_dialog = gtk_about_dialog_new ();\n"
+"\n"
+"   const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
+"   const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"\n"
+"   /* Fill in the about_dialog with the desired information */\n"
+"   gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (about_dialog), \"AboutDialog Example\");\n"
+"   gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about_dialog), \"Copyright \\xc2\\xa9 2012 GNOME 
Documentation Team\");\n"
+"   gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about_dialog), authors);\n"
+"   gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (about_dialog), documenters);\n"
+"   gtk_about_dialog_set_website_label (GTK_ABOUT_DIALOG (about_dialog), \"GNOME Developer Website\");\n"
+"   gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about_dialog), \"http://developer.gnome.org\";);\n"
+"\n"
+"   /* The \"response\" signal is emitted when the dialog receives a delete event,\n"
+"    * therefore we connect that signal to the on_close callback function\n"
+"    * created above.\n"
+"    */\n"
+"   g_signal_connect (GTK_DIALOG (about_dialog), \"response\",\n"
+"                    G_CALLBACK (on_close), NULL);\n"
+"\n"
+"   /* Show the about dialog */\n"
+"   gtk_widget_show (about_dialog);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  GSimpleAction *copy_action;\n"
+"  GSimpleAction *paste_action;\n"
+"  GSimpleAction *shape_action;\n"
+"  GSimpleAction *about_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"MenuBar Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"\n"
+"  /* Begin creating the \"copy\" action.\n"
+"   * Note that it is an action without a state.\n"
+"   */\n"
+"  copy_action = g_simple_action_new (\"copy\", NULL);\n"
+"  /* Connected to a callback function */\n"
+"  g_signal_connect (copy_action, \"activate\", G_CALLBACK (copy_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  /* Added to the window */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (copy_action));\n"
+"\n"
+"  /* Begin creating the \"paste\" action.\n"
+"   * Note that it is an action without a state.\n"
+"   */\n"
+"  paste_action = g_simple_action_new (\"paste\", NULL);\n"
+"  /* Connect the action to a callback function */\n"
+"  g_signal_connect (paste_action, \"activate\", G_CALLBACK (paste_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  /* Add it to the window */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (paste_action));\n"
+"\n"
+"  /* Begin creating the \"shape\" action.\n"
+"   * Note that it is an action with a state.\n"
+"   * First we state that the parameter type of the simple action is a string.\n"
+"   * When using g_variant_type_new, it is appropriate to free the return value\n"
+"   * once you're done with it.\n"
+"   */\n"
+"  GVariantType *type_string = g_variant_type_new (\"s\");\n"
+"  /* parameters for the g_simple_action_new_stateful are: (name, parameter type,\n"
+"   * initial state).\n"
+"   */\n"
+"  shape_action = g_simple_action_new_stateful (\"shape\", type_string,\n"
+"                                               g_variant_new_string (\"line\"));\n"
+"  /* Connect the action to a callback function */\n"
+"  g_signal_connect (shape_action, \"activate\", G_CALLBACK (shape_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  /* Add it to the window */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (shape_action));\n"
+"  g_variant_type_free (type_string);\n"
+"\n"
+"  /* Begin creating the \"about\" action.\n"
+"   * Note that it is an action without a state.\n"
+"   */\n"
+"  about_action = g_simple_action_new (\"about\", NULL);\n"
+"  /* Connect the action to a callback function */\n"
+"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  /* Add it to the window */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (about_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"new\" action */\n"
+"static void\n"
+"new_callback (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  g_print (\"You clicked \\\"New\\\"\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"quit\" action */\n"
+"static void\n"
+"quit_callback (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_print (\"You clicked \\\"Quit\\\"\\n\");\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"state\" action */\n"
+"static void\n"
+"state_callback (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"   /* The two possibilies in this case for the \"answer\" variable are either\n"
+"    * \"on\" or \"off\".\n"
+"    */\n"
+"   const gchar *answer = g_variant_get_string (parameter, NULL);\n"
+"   /* We print the information to the user */\n"
+"   g_printf (\"State is set to %s.\\n\", answer);\n"
+"   /* Note that we set the state of the action */\n"
+"   g_simple_action_set_state (simple, parameter);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the \"awesome\" action */\n"
+"static void\n"
+"awesome_callback (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GVariant *action_state = g_action_get_state (G_ACTION (simple));\n"
+"  gboolean active = g_variant_get_boolean (action_state);\n"
+"  GVariant *new_state = g_variant_new_boolean (!active);\n"
+"  /* Set the new state for the action.\n"
+"   * (Keeps track of whether it was last checked or unchecked).\n"
+"   */\n"
+"  g_simple_action_set_state (simple, new_state);\n"
+"\n"
+"  if (active)\n"
+"     g_print (\"You unchecked \\\"Awesome\\\"\\n\");\n"
+"  else\n"
+"     g_print (\"You checked \\\"Awesome\\\"\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the menu we are creating in this sample */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  /* Initialize variables */\n"
+"  GSimpleAction *new_action;\n"
+"  GSimpleAction *quit_action;\n"
+"  GSimpleAction *state_action;\n"
+"  GSimpleAction *awesome_action;\n"
+"\n"
+"  GtkBuilder *builder;\n"
+"\n"
+"  GError **error;\n"
+"\n"
+"  /* Begin creating the \"new\" action.\n"
+"   * Note that it is an action without a state.\n"
+"   */\n"
+"  new_action = g_simple_action_new (\"new\", NULL);\n"
+"  g_signal_connect (new_action, \"activate\", G_CALLBACK (new_callback), app);\n"
+"  /* It is added to the overall application */\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (new_action));\n"
+"\n"
+"  /* Begin creating the \"quit\" action.\n"
+"   * Note that it is an action without a state.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"  g_signal_connect (quit_action, \"activate\", G_CALLBACK (quit_callback), app);\n"
+"  /* It is added to the overall application */\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"\n"
+"  /* Begin creating the \"state\" action.\n"
+"   * Note that it is an action with a state.\n"
+"   */\n"
+"  GVariantType *type_string2 = g_variant_type_new (\"s\");\n"
+"  state_action = g_simple_action_new_stateful (\"state\", type_string2,\n"
+"                                               g_variant_new_string (\"off\"));\n"
+"  g_signal_connect (state_action, \"activate\", G_CALLBACK (state_callback), app);\n"
+"  /* It is added to the overall application */\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (state_action));\n"
+"  g_variant_type_free (type_string2);\n"
+"\n"
+"  /* Begin creating the \"awesome\" action.\n"
+"   * Note that it is an action with a state.\n"
+"   */\n"
+"  awesome_action = g_simple_action_new_stateful (\"awesome\", NULL, g_variant_new_boolean (FALSE));\n"
+"  g_signal_connect (awesome_action, \"activate\", G_CALLBACK (awesome_callback), app);\n"
+"  /* It is added to the overall application */\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (awesome_action));\n"
+"\n"
+"  /* A builder to add the User Interface designed with GLADE to the grid: */\n"
+"  builder = gtk_builder_new ();\n"
+"  /* Get the file (if it is there):\n"
+"   * Note: you must make sure that the file is in the current directory for\n"
+"   * this to work. The function used here returns a value within our variable\n"
+"   * \"error\", and it is equal to zero if an error is indeed found.\n"
+"   */\n"
+"  gtk_builder_add_from_file (builder, \"menubar.ui\", error);\n"
+"  if (error == 0) {\n"
+"     g_print (\"File not found.\\n\");\n"
+"  }\n"
+"\n"
+"  /* Extract the menubar */\n"
+"  GObject *menubar = gtk_builder_get_object (builder, \"menubar\");\n"
+"  gtk_application_set_menubar (GTK_APPLICATION (app), G_MENU_MODEL (menubar));\n"
+"\n"
+"  /* Extract the appmenu */\n"
+"  GObject *appmenu = gtk_builder_get_object (builder, \"appmenu\");\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (appmenu));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+
+#: C/menubar.c.page:36(item/p) C/scrolledwindow.c.page:33(item/p)
+#, fuzzy
+#| msgid ""
+#| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
+#| "html\">Gtk.WindowPosition</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkApplication.html";
+"\">GtkApplication</link>"
+msgstr ""
+"O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
+"\">Gtk.WindowPosition</link>"
+
+#: C/menubar.c.page:39(item/p)
+#, fuzzy
+#| msgid ""
+#| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
+#| "\">Gtk.Window</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk/stable/GtkAboutDialog.html";
+"\">GtkAboutDialog</link>"
+msgstr ""
+"O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
+"Window</link>"
+
+#: C/menubar.c.page:40(item/p)
+#, fuzzy
+#| msgid ""
+#| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
+#| "\">Gtk.Window</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/glib/stable/glib-GVariantType.html";
+"\">GtkVariantType</link>"
+msgstr ""
+"O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
+"Window</link>"
+
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
@@ -17289,7 +17862,7 @@ msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/menubar.py.page:129(media) C/menubar.vala.page:133(media)
+#: C/menubar.py.page:131(media) C/menubar.vala.page:133(media)
 #, fuzzy
 #| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
 msgctxt "_"
@@ -17305,17 +17878,11 @@ msgctxt "text"
 msgid "MenuBar (Python)"
 msgstr "Python"
 
-#: C/menubar.py.page:24(info/desc) C/menubar.vala.page:19(info/desc)
-msgid "A widget which holds GtkMenuItem widgets"
-msgstr ""
-
-#: C/menubar.py.page:27(page/title) C/menubar.vala.page:22(page/title)
-msgid "MenuBar"
-msgstr ""
-
-#: C/menubar.py.page:29(page/p) C/menubar.vala.page:24(page/p)
-msgid "A MenuBar created using XML and GtkBuilder."
-msgstr ""
+#: C/menubar.py.page:27(page/title)
+#, fuzzy
+#| msgid "Toolbar created using Glade"
+msgid "MenuBar created using XML and GtkBuilder"
+msgstr "Barra de ferramentas creada empregando Glade"
 
 #: C/menubar.py.page:33(section/title) C/menubar.vala.page:28(section/title)
 msgid "Create a MenuBar using XML"
@@ -17550,30 +18117,36 @@ msgid ""
 "self.add_action(new_action)"
 msgstr ""
 
-#: C/menubar.py.page:119(section/title) C/menubar.vala.page:138(section/title)
+#: C/menubar.py.page:117(section/p)
+msgid ""
+"See <link xref=\"signals-callbacks.py\"/> for a more detailed explanation of "
+"signals and callbacks."
+msgstr ""
+
+#: C/menubar.py.page:121(section/title) C/menubar.vala.page:138(section/title)
 #, fuzzy
 #| msgid "A first Gtk application"
 msgid "Actions: Application or Window?"
 msgstr "Un primeiro aplicativo en GTK"
 
-#: C/menubar.py.page:120(section/p) C/menubar.vala.page:139(section/p)
+#: C/menubar.py.page:122(section/p) C/menubar.vala.page:139(section/p)
 msgid ""
 "Above, we created the \"new\" and \"open\" actions as part of the "
 "MyApplication class. Actions which control the application itself, such as "
 "\"quit\" should be created similarly."
 msgstr ""
 
-#: C/menubar.py.page:122(section/p) C/menubar.vala.page:142(section/p)
+#: C/menubar.py.page:124(section/p) C/menubar.vala.page:142(section/p)
 msgid ""
 "Some actions, such as \"copy\" and \"paste\" deal with the window, not the "
 "application. Window actions should be created as part of the window class."
 msgstr ""
 
-#: C/menubar.py.page:124(section/p)
+#: C/menubar.py.page:126(section/p)
 msgid ""
 "The complete example files contain both application actions and window "
-"applications. The window actions are the ones usually included in the <link "
-"xref=\"gmenu.py\">application menu</link> also. It is not good practice to "
+"actions. The window actions are the ones usually included in the <link xref="
+"\"gmenu.py\">application menu</link> also. It is not good practice to "
 "include window actions in the applcation menu. For demonstration purposes, "
 "the complete example files which follow include XML in the UI file which "
 "creates the application menu which includes a \"New\" and \"Open\" item, and "
@@ -17581,17 +18154,17 @@ msgid ""
 "name."
 msgstr ""
 
-#: C/menubar.py.page:128(section/title) C/menubar.vala.page:132(section/title)
+#: C/menubar.py.page:130(section/title) C/menubar.vala.page:132(section/title)
 msgid "Choices submenu and items with state"
 msgstr ""
 
-#: C/menubar.py.page:130(section/p)
+#: C/menubar.py.page:132(section/p)
 msgid ""
 "Lines 30 to 80 inclusive of the <link xref=\"menubar.py#xml-code\"/> "
 "demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
 msgstr ""
 
-#: C/menubar.py.page:132(section/p)
+#: C/menubar.py.page:134(section/p)
 msgid ""
 "The actions created so far are <em>stateless</em>, that is they do not "
 "retain or depend on a state given by the action itself. The actions we need "
@@ -17599,14 +18172,14 @@ msgid ""
 "An example of creation of a stateful action is:"
 msgstr ""
 
-#: C/menubar.py.page:133(section/code)
+#: C/menubar.py.page:135(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), 
GLib.Variant.new_string('line'))"
 msgstr ""
 
-#: C/menubar.py.page:136(section/p)
+#: C/menubar.py.page:138(section/p)
 msgid ""
 "where the variables of the method are: name, parameter type (in this case, a "
 "string - see <link href=\"http://developer.gnome.org/glib/unstable/glib-";
@@ -17617,14 +18190,14 @@ msgid ""
 "\">here</link> for a complete list)"
 msgstr ""
 
-#: C/menubar.py.page:138(section/p)
+#: C/menubar.py.page:140(section/p)
 msgid ""
 "After creating the stateful SimpleAction we connect it to the callback "
 "function and we add it to the window (or the application, if it is the "
 "case), as before:"
 msgstr ""
 
-#: C/menubar.py.page:140(section/code)
+#: C/menubar.py.page:142(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -17632,11 +18205,11 @@ msgid ""
 "self.add_action(shape_action)"
 msgstr ""
 
-#: C/menubar.py.page:147(section/title) C/menubar.vala.page:153(section/title)
+#: C/menubar.py.page:149(section/title) C/menubar.vala.page:153(section/title)
 msgid "Complete XML UI file for this example"
 msgstr ""
 
-#: C/menubar.py.page:148(section/code) C/menubar.vala.page:154(section/code)
+#: C/menubar.py.page:150(section/code) C/menubar.vala.page:154(section/code)
 #, no-wrap
 msgid ""
 "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
@@ -17744,11 +18317,11 @@ msgid ""
 "&lt;/interface&gt;\n"
 msgstr ""
 
-#: C/menubar.py.page:152(section/title)
+#: C/menubar.py.page:154(section/title)
 msgid "Complete Python file for this example"
 msgstr ""
 
-#: C/menubar.py.page:153(section/code)
+#: C/menubar.py.page:155(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -17912,11 +18485,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/menubar.py.page:156(section/title)
+#: C/menubar.py.page:158(section/title)
 msgid "Mnemonics and Accelerators"
 msgstr ""
 
-#: C/menubar.py.page:157(section/p) C/menubar.vala.page:161(section/p)
+#: C/menubar.py.page:159(section/p) C/menubar.vala.page:161(section/p)
 msgid ""
 "Labels may contain mnemonics. Mnemonics are underlined characters in the "
 "label, used for keyboard navigation. Mnemonics are created by placing an "
@@ -17924,14 +18497,14 @@ msgid ""
 "just \"File\" in the menubar.ui label attribute."
 msgstr ""
 
-#: C/menubar.py.page:158(section/p) C/menubar.vala.page:162(section/p)
+#: C/menubar.py.page:160(section/p) C/menubar.vala.page:162(section/p)
 msgid ""
 "The mnemonics are visible when you press the <key>Alt</key> key. Pressing "
 "<keyseq><key>Alt</key><key>F</key></keyseq> will open the <gui>File</gui> "
 "menu."
 msgstr ""
 
-#: C/menubar.py.page:160(section/p) C/menubar.vala.page:167(section/p)
+#: C/menubar.py.page:162(section/p) C/menubar.vala.page:167(section/p)
 msgid ""
 "Accelerators can be explicitly added in the UI definitions. For example, it "
 "is common to be able to quit an application by pressing <keyseq><key>Ctrl</"
@@ -17940,7 +18513,7 @@ msgid ""
 "simply need add an \"accel\" attribute to the item."
 msgstr ""
 
-#: C/menubar.py.page:161(section/p) C/menubar.vala.page:168(section/p)
+#: C/menubar.py.page:163(section/p) C/menubar.vala.page:168(section/p)
 msgid ""
 "<code mime=\"application/xml\">&lt;attribute name=\"accel\"&gt;&amp;lt;"
 "Primary&amp;gt;q&lt;/attribute&gt;</code> will create the <keyseq><key>Ctrl</"
@@ -17949,7 +18522,7 @@ msgid ""
 "<key>⌘</key> key on a Mac."
 msgstr ""
 
-#: C/menubar.py.page:163(section/code) C/menubar.vala.page:170(section/code)
+#: C/menubar.py.page:165(section/code) C/menubar.vala.page:170(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -17960,11 +18533,11 @@ msgid ""
 "&lt;/item&gt;"
 msgstr ""
 
-#: C/menubar.py.page:171(section/title) C/menubar.vala.page:178(section/title)
+#: C/menubar.py.page:173(section/title) C/menubar.vala.page:178(section/title)
 msgid "Translatable strings"
 msgstr ""
 
-#: C/menubar.py.page:172(section/p) C/menubar.vala.page:179(section/p)
+#: C/menubar.py.page:174(section/p) C/menubar.vala.page:179(section/p)
 msgid ""
 "Since GNOME applications are being translated into <link href=\"http://l10n.";
 "gnome.org/languages/\">many languages</link>, it is important that the "
@@ -17972,18 +18545,18 @@ msgid ""
 "simple set <code>translatable=\"yes\"</code>:"
 msgstr ""
 
-#: C/menubar.py.page:176(section/code)
+#: C/menubar.py.page:178(section/code)
 #, no-wrap
 msgid "&lt;attribute name=\"label\" translatable=\"yes\"&gt;Quit&lt;/attribute&gt;"
 msgstr ""
 
-#: C/menubar.py.page:183(item/p)
+#: C/menubar.py.page:185(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gio/unstable/GSimpleAction.html";
 "\">GSimpleAction</link>"
 msgstr ""
 
-#: C/menubar.py.page:184(item/p) C/toolbar_builder.py.page:194(item/p)
+#: C/menubar.py.page:186(item/p) C/toolbar_builder.py.page:196(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -18330,7 +18903,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/menubutton.js.page:21(media) C/menubutton.py.page:27(media)
+#: C/menubutton.js.page:21(media) C/menubutton.py.page:28(media)
 #: C/menubutton.vala.page:21(media)
 #, fuzzy
 #| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
@@ -18350,17 +18923,17 @@ msgstr "JavaScript"
 msgid "Anna Zacchi"
 msgstr ""
 
-#: C/menubutton.js.page:17(info/desc) C/menubutton.py.page:23(info/desc)
+#: C/menubutton.js.page:17(info/desc) C/menubutton.py.page:24(info/desc)
 #: C/menubutton.vala.page:17(info/desc)
 msgid "A widget that shows a menu when clicked on"
 msgstr ""
 
-#: C/menubutton.js.page:20(page/title) C/menubutton.py.page:26(page/title)
+#: C/menubutton.js.page:20(page/title) C/menubutton.py.page:27(page/title)
 #: C/menubutton.vala.page:20(page/title)
 msgid "MenuButton"
 msgstr "MenuButton"
 
-#: C/menubutton.js.page:22(page/p) C/menubutton.py.page:28(page/p)
+#: C/menubutton.js.page:22(page/p) C/menubutton.py.page:29(page/p)
 #: C/menubutton.vala.page:22(page/p)
 msgid ""
 "The GtkMenuButton widget is used to display a menu when clicked on. This "
@@ -18370,7 +18943,7 @@ msgid ""
 "provided GtkArrow."
 msgstr ""
 
-#: C/menubutton.js.page:26(note/p) C/menubutton.py.page:30(note/p)
+#: C/menubutton.js.page:26(note/p) C/menubutton.py.page:31(note/p)
 #: C/menubutton.vala.page:26(note/p)
 msgid "You need to be running GNOME 3.6 for the MenuButton to work."
 msgstr ""
@@ -18498,14 +19071,14 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/menubutton.py.page:7(info/title) C/tooltip.py.page:7(info/title)
+#: C/menubutton.py.page:7(info/title)
 #, fuzzy
 #| msgid "MenuButton"
 msgctxt "text"
 msgid "MenuButton"
 msgstr "MenuButton"
 
-#: C/menubutton.py.page:36(section/code)
+#: C/menubutton.py.page:37(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -18582,11 +19155,20 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/menubutton.py.page:40(section/title)
+#: C/menubutton.py.page:41(section/title)
 msgid "Useful methods for a MenuButton widget"
 msgstr ""
 
-#: C/menubutton.py.page:41(section/p)
+#: C/menubutton.py.page:42(section/p)
+msgid ""
+"In line 33 the signal <code>\"activate\"</code> from the action "
+"<code>about_action</code> is connected to the callback function "
+"<code>about_callback()</code> using <code><var>action</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/menubutton.py.page:44(section/p)
 msgid ""
 "The positioning of the menu is determined by the \"direction\" property of "
 "the menu button and the \"halign\" or \"valign\" properties of the menu. For "
@@ -18600,20 +19182,20 @@ msgid ""
 "offscreen, it is 'pushed in'."
 msgstr ""
 
-#: C/menubutton.py.page:43(section/p)
+#: C/menubutton.py.page:46(section/p)
 msgid ""
 "In the case of vertical alignment, the possible ArrowType directions are "
 "<code>LEFT</code> and <code>RIGHT</code> and the vertical alignment is again "
 "<code>START</code>, <code>CENTER</code> or <code>END</code>."
 msgstr ""
 
-#: C/menubutton.py.page:45(section/p)
+#: C/menubutton.py.page:48(section/p)
 msgid ""
 "<code>set_align_widget(alignment)</code> and <code>set_direction(direction)</"
 "code> can be used to set these properties."
 msgstr ""
 
-#: C/menubutton.py.page:52(item/p)
+#: C/menubutton.py.page:55(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkMenuButton.html";
 "\">MenuButton</link>"
@@ -18700,7 +19282,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/message-board.c.page:36(media)
+#: C/message-board.c.page:40(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
@@ -18714,29 +19296,31 @@ msgstr ""
 #, fuzzy
 #| msgid "Message Board"
 msgctxt "text"
-msgid "Message Board (C)"
+msgid "Message board (C)"
 msgstr "Taboleiro de mensaxes"
 
 #: C/message-board.c.page:10(info/desc)
 msgid "A simple program using WebKitGTK+ and the DOM."
 msgstr "Un programa sinxelo usando WebKitGTK+ e DOM."
 
-#: C/message-board.c.page:21(page/title)
-msgid "Message Board"
+#: C/message-board.c.page:25(page/title)
+#, fuzzy
+#| msgid "Message Board"
+msgid "Message board"
 msgstr "Taboleiro de mensaxes"
 
-#: C/message-board.c.page:26(item/p)
+#: C/message-board.c.page:30(item/p)
 msgid "How to display a web page with WebKit."
 msgstr "Como mostrar unha páxina web con WebKit"
 
-#: C/message-board.c.page:27(item/p)
+#: C/message-board.c.page:31(item/p)
 msgid ""
 "How to manipulate the contents of a web page using WebKit's DOM functions."
 msgstr ""
 "Como manipular os contidos dunha páxina web usando as funcións de DOM de "
 "WebKit."
 
-#: C/message-board.c.page:30(synopsis/p)
+#: C/message-board.c.page:34(synopsis/p)
 msgid ""
 "This tutorial assumes you are familiar with the C programming language and "
 "have a basic understanding of GTK+, including how to create and place "
@@ -18748,7 +19332,7 @@ msgstr ""
 "dispor widgets e como conectar funcións de callback a sinais. Vexa <link "
 "xref=\"image-viewer.c\"/> para aprender o básico de GTK+."
 
-#: C/message-board.c.page:43(section/p)
+#: C/message-board.c.page:47(section/p)
 msgid ""
 "The GNOME platform includes WebKitGTK+, built on top of the powerful WebKit "
 "HTML framework. WebKit is used throughout GNOME, not just to view web pages "
@@ -18760,7 +19344,7 @@ msgstr ""
 "en Internet, senón tamén para crear interfaces de usuario enriquecidas ás "
 "que se poden engadir estilos de forma doada con CSS."
 
-#: C/message-board.c.page:48(section/p)
+#: C/message-board.c.page:52(section/p)
 msgid ""
 "In this tutorial, you will create a simple message board using WebKit. The "
 "message board will allow you to enter some text and have it added to a list "
@@ -18772,7 +19356,7 @@ msgstr ""
 "a unha lista de mensaxes en HTML. Antes de comezar debe configurar un "
 "proxecto en Anjuta."
 
-#: C/message-board.c.page:54(item/p)
+#: C/message-board.c.page:58(item/p)
 #, fuzzy
 #| msgid ""
 #| "In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
@@ -18784,7 +19368,7 @@ msgstr ""
 "En Anjuta, prema <guiseq><gui>Ficheiro</gui><gui>Novo</gui><gui>Proxecto</"
 "gui></guiseq> para abrir un asistente de novo proxecto."
 
-#: C/message-board.c.page:56(item/p)
+#: C/message-board.c.page:60(item/p)
 #, fuzzy
 #| msgid ""
 #| "Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
@@ -18796,7 +19380,7 @@ msgstr ""
 "Seleccione <gui>GTK+ (simple)</gui> na lapela <gui>C</gui> e prema "
 "<gui>Adiante</gui>."
 
-#: C/message-board.c.page:58(item/p)
+#: C/message-board.c.page:62(item/p)
 #, fuzzy
 #| msgid ""
 #| "Fill out your details on the <gui>Basic information</gui> page. Use "
@@ -18810,7 +19394,7 @@ msgstr ""
 "<input>message-board</input> para o nome do proxecto. Prema <gui>Seguinte</"
 "gui>."
 
-#: C/message-board.c.page:61(item/p)
+#: C/message-board.c.page:65(item/p)
 msgid ""
 "Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
 "tutorial builds the user-interface manually."
@@ -18818,7 +19402,7 @@ msgstr ""
 "Desactive a opción <gui>Usar GtkBuilder para a interface de usuario</gui> xa "
 "que neste titorial construirase a interface de usuario de forma manual."
 
-#: C/message-board.c.page:64(item/p)
+#: C/message-board.c.page:68(item/p)
 #, fuzzy
 #| msgid ""
 #| "You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
@@ -18836,7 +19420,7 @@ msgstr ""
 "externos</gui>. Prema <gui>Seguinte</gui>. Na páxina <gui>Configurar "
 "paquetes externos</gui> marque <gui>webkitgtk-3.0</gui>."
 
-#: C/message-board.c.page:70(section/p)
+#: C/message-board.c.page:74(section/p)
 msgid ""
 "After you finish the new project assistant, open the file <file>src/main.c</"
 "file> from either the <gui>Project</gui> or the <gui>File</gui> tab. Anjuta "
@@ -18846,12 +19430,12 @@ msgid ""
 "following line:"
 msgstr ""
 
-#: C/message-board.c.page:77(section/code)
+#: C/message-board.c.page:81(section/code)
 #, no-wrap
 msgid "#include &lt;webkit/webkit.h&gt;"
 msgstr "#include &lt;webkit/webkit.h&gt;"
 
-#: C/message-board.c.page:79(section/p)
+#: C/message-board.c.page:83(section/p)
 msgid ""
 "Verify that everything works by building what you have so far. Click "
 "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
@@ -18860,7 +19444,7 @@ msgid ""
 "click <gui>Execute</gui>."
 msgstr ""
 
-#: C/message-board.c.page:85(section/p)
+#: C/message-board.c.page:89(section/p)
 #, fuzzy
 #| msgid ""
 #| "You should now be able to run the program. Click <guiseq><gui>Run</"
@@ -18875,11 +19459,11 @@ msgstr ""
 "gui><gui>Executar</gui></guiseq> ou prema <key>F3</key>. Debería aparecer "
 "unha xanela baleira."
 
-#: C/message-board.c.page:91(section/title)
+#: C/message-board.c.page:95(section/title)
 msgid "Lay out your window and web view"
 msgstr "Dispor a súa xanela e a vista web"
 
-#: C/message-board.c.page:93(section/p)
+#: C/message-board.c.page:97(section/p)
 msgid ""
 "Now that you can show a window, it's time to start working with WebKit. For "
 "this tutorial, you'll create a text entry and a web view and pack them both "
@@ -18891,7 +19475,7 @@ msgstr ""
 "empaquetarémolas nunha xanela. Busque a función <code>create_window</code> e "
 "substitúaa co seguinte:"
 
-#: C/message-board.c.page:98(section/code)
+#: C/message-board.c.page:102(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -18929,7 +19513,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/message-board.c.page:133(section/p)
+#: C/message-board.c.page:137(section/p)
 msgid ""
 "You first create a <code>GtkWindow</code> object and set its title and "
 "default size. You also connect the <code>gtk_main_quit</code> function to "
@@ -18943,7 +19527,7 @@ msgstr ""
 "<code>delete-event</code> emítese cando se pecha a xanela. A función "
 "<code>gtk_main_quit</code> é parte de GTK+, e sae do aplicativo."
 
-#: C/message-board.c.page:139(section/p)
+#: C/message-board.c.page:143(section/p)
 msgid ""
 "You then create a vertical box and add it to the window. A window can only "
 "hold a single child widget, so you need to use a box to add multiple "
@@ -18952,7 +19536,7 @@ msgid ""
 "border around the entire thing."
 msgstr ""
 
-#: C/message-board.c.page:145(section/p)
+#: C/message-board.c.page:149(section/p)
 msgid ""
 "You next create a <code>GtkEntry</code> object and pack it into the box. The "
 "third and fourth arguments to <code>gtk_box_pack_start</code> specify that "
@@ -18962,7 +19546,7 @@ msgid ""
 "all the padding."
 msgstr ""
 
-#: C/message-board.c.page:152(section/p)
+#: C/message-board.c.page:156(section/p)
 msgid ""
 "Before you add a web view, you have to create a scrolled window to put it "
 "inside of. The scrolled window will place scrollbars on the right and bottom "
@@ -18972,20 +19556,20 @@ msgid ""
 "web view) to use any extra space available in the box."
 msgstr ""
 
-#: C/message-board.c.page:159(section/p)
+#: C/message-board.c.page:163(section/p)
 msgid ""
 "Finally, you create a <code>WebKitWebView</code> and add it to the scrolled "
 "window. Then load a very basic HTML page into the web view by calling "
 "<code>webkit_web_view_load_string</code> with the following arguments:"
 msgstr ""
 
-#: C/message-board.c.page:165(item/title)
+#: C/message-board.c.page:169(item/title)
 #, fuzzy
 #| msgid "WEBKIT_WEB_VIEW (view)"
 msgid "<code>WEBKIT_WEB_VIEW (view)</code>"
 msgstr "WEBKIT_WEB_VIEW (view)"
 
-#: C/message-board.c.page:166(item/p)
+#: C/message-board.c.page:170(item/p)
 msgid ""
 "The view itself. Because <code>view</code> is typed as a <code>GtkWidget*</"
 "code>, you have to use <code>WEBKIT_WEB_VIEW</code> to safely cast the "
@@ -18995,34 +19579,34 @@ msgstr ""
 "code>, debe usar <code>WEBKIT_WEB_VIEW</code> para converter o tipo de "
 "obxecto con seguranza."
 
-#: C/message-board.c.page:171(item/title)
+#: C/message-board.c.page:175(item/title)
 #, fuzzy
 #| msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
 msgid "<code>\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\"</code>"
 msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
 
-#: C/message-board.c.page:172(item/p)
+#: C/message-board.c.page:176(item/p)
 msgid "The simplest HTML file you could possibly write."
 msgstr "O ficheiro HTLM máis sinxelo que pode escribir."
 
-#: C/message-board.c.page:175(item/title)
+#: C/message-board.c.page:179(item/title)
 #, fuzzy
 #| msgid "\"text/html\""
 msgid "<code>\"text/html\"</code>"
 msgstr "\"text/html\""
 
-#: C/message-board.c.page:176(item/p)
+#: C/message-board.c.page:180(item/p)
 msgid ""
 "The MIME type of the content you provided. In this case, you're using plain "
 "HTML."
 msgstr ""
 "O tipo MIME do contido que forneceu. Neste caso, está usando HTML plano."
 
-#: C/message-board.c.page:180(item/title)
+#: C/message-board.c.page:184(item/title)
 msgid "<code>\"UTF-8\"</code>"
 msgstr ""
 
-#: C/message-board.c.page:181(item/p)
+#: C/message-board.c.page:185(item/p)
 msgid ""
 "The character encoding of the content you provided. Although you only used "
 "ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used as the "
@@ -19032,11 +19616,11 @@ msgstr ""
 "caracteres ASCII é boa idea especificar UTF-8. UTF-8 úsase como a "
 "codificación predeterminada na plataforma GNOME."
 
-#: C/message-board.c.page:186(item/title)
+#: C/message-board.c.page:190(item/title)
 msgid "<code>NULL</code>"
 msgstr ""
 
-#: C/message-board.c.page:187(item/p)
+#: C/message-board.c.page:191(item/p)
 msgid ""
 "The base URI. You don't need it in this simple example, but you might want "
 "to provide a <sys>file:</sys> URI if you add images or other features where "
@@ -19046,7 +19630,7 @@ msgstr ""
 "URI <sys>file:</sys> se quere engadir imaxes ou outras características onde "
 "queira usar preferencias relativas a URI."
 
-#: C/message-board.c.page:194(note/p)
+#: C/message-board.c.page:198(note/p)
 msgid ""
 "Every time you add a widget, you have to call <code>gtk_widget_show</code> "
 "on it for it to be visible. If you call <code>gtk_widget_show_all</code> on "
@@ -19056,25 +19640,25 @@ msgid ""
 "dynamically hide and show some widgets in response to events."
 msgstr ""
 
-#: C/message-board.c.page:202(section/p)
+#: C/message-board.c.page:206(section/p)
 msgid ""
 "Finally, you have to call <code>gtk_widget_show_all</code> on the box. "
 "Otherwise, none of the widgets you created will be visible. (The window is "
 "shown in the <code>main</code> function with <code>gtk_widget_show</code>.)"
 msgstr ""
 
-#: C/message-board.c.page:206(section/p)
+#: C/message-board.c.page:210(section/p)
 msgid ""
 "Build and run the message board again. You should see a window with a text "
 "entry and a web view. It doesn't do anything yet because the text entry and "
 "the web view don't know anything about each other."
 msgstr ""
 
-#: C/message-board.c.page:212(section/title)
+#: C/message-board.c.page:216(section/title)
 msgid "Hook up signals"
 msgstr "Capturar sinais"
 
-#: C/message-board.c.page:214(section/p)
+#: C/message-board.c.page:218(section/p)
 msgid ""
 "Now you want to make the message board actually <em>do</em> something when "
 "you enter text into the text entry. To do this, connect a callback function "
@@ -19084,20 +19668,20 @@ msgid ""
 "both <code>entry</code> and <code>view</code> have been defined:"
 msgstr ""
 
-#: C/message-board.c.page:221(section/code)
+#: C/message-board.c.page:225(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "g_signal_connect (entry, \"activate\", G_CALLBACK (entry_activate_cb), view);\n"
 msgstr ""
 
-#: C/message-board.c.page:225(section/p)
+#: C/message-board.c.page:229(section/p)
 msgid ""
 "You then have to actually define <code>entry_activate_cb</code>. Define it "
 "as follows, anywhere above <code>create_window</code>:"
 msgstr ""
 
-#: C/message-board.c.page:228(section/code)
+#: C/message-board.c.page:232(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -19120,7 +19704,7 @@ msgid ""
 "}\n"
 msgstr ""
 
-#: C/message-board.c.page:248(section/p)
+#: C/message-board.c.page:252(section/p)
 msgid ""
 "The first thing you do is get a <code>WebKitDOMDocument</code> object that "
 "represents the HTML document displayed in <code>view</code>. The DOM classes "
@@ -19129,7 +19713,7 @@ msgid ""
 "JavaScript."
 msgstr ""
 
-#: C/message-board.c.page:254(section/p)
+#: C/message-board.c.page:258(section/p)
 msgid ""
 "Once you have the document, you want to get the <code>body</code> element so "
 "that you can add <code>div</code> elements to it. The "
@@ -19138,7 +19722,7 @@ msgid ""
 "write tedious loops to traverse the document."
 msgstr ""
 
-#: C/message-board.c.page:265(section/p)
+#: C/message-board.c.page:269(section/p)
 msgid ""
 "Next, you create a new <code>div</code> element to hold the message. Every "
 "element you create has to be attached to a document, so the function to "
@@ -19148,18 +19732,18 @@ msgid ""
 "<code>const gchar*</code>, you don't have to free the result."
 msgstr ""
 
-#: C/message-board.c.page:278(section/p)
+#: C/message-board.c.page:282(section/p)
 msgid ""
 "Finally, you append the new <code>div</code> element to the body and clear "
 "out the text entry so you can type something new. Build and run the program "
 "again and test it for yourself."
 msgstr ""
 
-#: C/message-board.c.page:285(section/title)
+#: C/message-board.c.page:289(section/title)
 msgid "Make it look better with CSS"
 msgstr "Mellorar o aspecto con CSS"
 
-#: C/message-board.c.page:287(section/p)
+#: C/message-board.c.page:291(section/p)
 msgid ""
 "At this point, your program is completely functional, but not very pretty. "
 "You can style the message display with CSS, just like you can with any other "
@@ -19169,7 +19753,7 @@ msgid ""
 "even programmatically construct it using the DOM APIs."
 msgstr ""
 
-#: C/message-board.c.page:294(section/p)
+#: C/message-board.c.page:298(section/p)
 msgid ""
 "In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
 "code> property of the <code>WebKitWebSetting</code> object attached to your "
@@ -19182,7 +19766,7 @@ msgid ""
 "string near the top of your file."
 msgstr ""
 
-#: C/message-board.c.page:303(section/code)
+#: C/message-board.c.page:307(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -19198,7 +19782,7 @@ msgid ""
 "\"}\";\n"
 msgstr ""
 
-#: C/message-board.c.page:316(section/p)
+#: C/message-board.c.page:320(section/p)
 msgid ""
 "All you have in this example are <code>div</code> elements inside a "
 "<code>body</code> element. If you created more complicated HTML, you could "
@@ -19206,14 +19790,14 @@ msgid ""
 "should trying changing this to something you like better."
 msgstr ""
 
-#: C/message-board.c.page:321(section/p)
+#: C/message-board.c.page:325(section/p)
 msgid ""
 "To apply the CSS, you set the <code>user-stylesheet-uri</code> in the "
 "<code>create_window</code> function, anywhere after <code>view</code> has "
 "already been defined."
 msgstr ""
 
-#: C/message-board.c.page:327(section/code)
+#: C/message-board.c.page:331(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -19226,13 +19810,13 @@ msgid ""
 "g_free (tmp);\n"
 msgstr ""
 
-#: C/message-board.c.page:337(section/p)
+#: C/message-board.c.page:341(section/p)
 msgid ""
 "Also, make sure to add variable declarations for <code>tmp</code> and "
 "<code>css</code> to the top of <code>create_window</code>."
 msgstr ""
 
-#: C/message-board.c.page:340(section/code)
+#: C/message-board.c.page:344(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -19241,7 +19825,7 @@ msgstr ""
 "\n"
 "gchar *tmp, *css;\n"
 
-#: C/message-board.c.page:344(section/p)
+#: C/message-board.c.page:348(section/p)
 msgid ""
 "A data URI starts with <sys>data:</sys> and some information about the "
 "content type and how the data is encoded. The actual data follows after a "
@@ -19251,7 +19835,7 @@ msgid ""
 "gives the entire contents of the file."
 msgstr ""
 
-#: C/message-board.c.page:351(section/p)
+#: C/message-board.c.page:355(section/p)
 msgid ""
 "The code above first encodes your CSS definitions in Base64, then combines "
 "that with a fixed string to create a data URI. The <code>g_strconcat</code> "
@@ -19261,18 +19845,18 @@ msgid ""
 "you set the stylesheet property."
 msgstr ""
 
-#: C/message-board.c.page:358(section/p)
+#: C/message-board.c.page:362(section/p)
 msgid ""
 "Build and run the program again. It should now work exactly the same as at "
 "the end of the last section, except the messages will be nicely styled with "
 "a border and a subtle background gradient."
 msgstr ""
 
-#: C/message-board.c.page:364(section/title)
+#: C/message-board.c.page:368(section/title)
 msgid "Learn more"
 msgstr "Aprender máis"
 
-#: C/message-board.c.page:366(section/p)
+#: C/message-board.c.page:370(section/p)
 msgid ""
 "This tutorial showed you how to create a basic application using GTK+ and "
 "WebKit, including showing a document and manipulating its contents. To "
@@ -19284,7 +19868,7 @@ msgstr ""
 "crear un aplicativo real, probabelmente queira facer algo máis. Probe a "
 "engadir características vostede mesmo. Aquí hai algunhas ideas:"
 
-#: C/message-board.c.page:372(item/p)
+#: C/message-board.c.page:376(item/p)
 msgid ""
 "If you're comfortable with CSS, try changing the style of the message "
 "display. CSS is easy to get started with, but increasingly more powerful. "
@@ -19296,7 +19880,7 @@ msgstr ""
 "unha gran cantidade de titoriais de CSS en Internet, e case todo o que se "
 "pode facer nunha páxina web, pódese facer neste aplicativo."
 
-#: C/message-board.c.page:378(item/p)
+#: C/message-board.c.page:382(item/p)
 msgid ""
 "Right now, you lose all your messages whenever you close the message board. "
 "Try saving the HTML contents after each post, and loading the saved file (if "
@@ -19306,7 +19890,7 @@ msgstr ""
 "a gardar o contido HTML despois de cada envío, e a cargar o ficheiro cargado "
 "(se existe) ao inicio."
 
-#: C/message-board.c.page:386(item/p)
+#: C/message-board.c.page:390(item/p)
 msgid ""
 "If you keep your messages around for a long time, you'll start wondering "
 "when you posted them. Add a timestamp to each message when it's posted. "
@@ -19314,7 +19898,7 @@ msgid ""
 "elements with different classes that you can style in the CSS."
 msgstr ""
 
-#: C/message-board.c.page:393(item/p)
+#: C/message-board.c.page:397(item/p)
 msgid ""
 "This program keeps messages around forever. Think about ways you could allow "
 "the user to delete messages. Perhaps you want messages to disappear "
@@ -20070,6 +20654,14 @@ msgstr ""
 msgid "Useful methods for a MessageDialog widget"
 msgstr ""
 
+#: C/messagedialog.py.page:36(section/p)
+msgid ""
+"In line 18 the signal <code>\"activate\"</code> is connected to the callback "
+"function <code>message_cb()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
 #: C/messagedialog.py.page:38(item/p)
 msgid ""
 "In the constructor of MessageDialog we could set flags as <code>Gtk."
@@ -20285,18 +20877,18 @@ msgctxt "text"
 msgid "The Model/View/Controller design (Python)"
 msgstr ""
 
-#: C/model-view-controller.py.page:12(info/desc)
-#: C/model-view-controller.py.page:25(page/title)
+#: C/model-view-controller.py.page:13(info/desc)
+#: C/model-view-controller.py.page:26(page/title)
 msgid "The Model/View/Controller design"
 msgstr ""
 
-#: C/model-view-controller.py.page:30(section/title)
-#: C/properties.py.page:30(section/title)
-#: C/signals-callbacks.py.page:30(section/title)
+#: C/model-view-controller.py.page:31(section/title)
+#: C/properties.py.page:31(section/title)
+#: C/signals-callbacks.py.page:31(section/title)
 msgid "Overview"
 msgstr "Vista xeral"
 
-#: C/model-view-controller.py.page:32(section/p)
+#: C/model-view-controller.py.page:33(section/p)
 msgid ""
 "Both the <link xref=\"treeview_simple_liststore.py\">TreeView</link> and the "
 "<link xref=\"combobox.py\">ComboBox</link> widgets are built on the "
@@ -20311,11 +20903,11 @@ msgid ""
 "signals like <code>\"changed\"</code>)."
 msgstr ""
 
-#: C/model-view-controller.py.page:37(section/title)
+#: C/model-view-controller.py.page:38(section/title)
 msgid "The Model"
 msgstr ""
 
-#: C/model-view-controller.py.page:39(section/p)
+#: C/model-view-controller.py.page:40(section/p)
 msgid ""
 "The main difference between the two main implementations of <code>Gtk."
 "TreeModel</code> is that <code>Gtk.ListStore</code> contains simple rows of "
@@ -20324,13 +20916,13 @@ msgid ""
 "rows, and so on)."
 msgstr ""
 
-#: C/model-view-controller.py.page:41(section/p)
+#: C/model-view-controller.py.page:42(section/p)
 msgid ""
 "The data in the Model can be retrieved or modified using the tree iter and "
 "column index, or <code>Gtk.TreeIter</code>, or <code>Gtk.TreePath</code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:43(section/p)
+#: C/model-view-controller.py.page:44(section/p)
 msgid ""
 "As with Python's built-in list object you can use <code>len()</code> to get "
 "the number of rows and use slices to retrieve or set values. Otherwise, the "
@@ -20339,7 +20931,7 @@ msgid ""
 "retrieve a <code>Gtk.TreeIter</code> by calling <code>get_iter()</code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:45(section/p)
+#: C/model-view-controller.py.page:46(section/p)
 msgid ""
 "As <code>Gtk.ListStore</code> contains only one level, i.e. nodes do not "
 "have any child nodes, a path is essentially the index of the row you want to "
@@ -20350,11 +20942,11 @@ msgid ""
 "refers to the fifth child of the third node."
 msgstr ""
 
-#: C/model-view-controller.py.page:47(section/p)
+#: C/model-view-controller.py.page:48(section/p)
 msgid "Useful methods for a <code>Gtk.TreeModel</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:49(item/p)
+#: C/model-view-controller.py.page:50(item/p)
 msgid ""
 "<code>get_iter(path)</code> returns a <code>Gtk.TreeIter</code> instance "
 "pointing to <code>path</code>. This is expected to be a colon-separated list "
@@ -20364,38 +20956,38 @@ msgid ""
 "that 11th child, and the 1st child of that 5th child."
 msgstr ""
 
-#: C/model-view-controller.py.page:50(item/p)
+#: C/model-view-controller.py.page:51(item/p)
 msgid ""
 "<code>iter_next(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
 "instance pointing the node following treeiter at the current level or "
 "<code>None</code> if there is no next iter."
 msgstr ""
 
-#: C/model-view-controller.py.page:51(item/p)
+#: C/model-view-controller.py.page:52(item/p)
 msgid ""
 "<code>iter_has_child(treeiter)</code> returns <code>True</code> if "
 "<code>treeiter</code> has children, <code>False</code> otherwise."
 msgstr ""
 
-#: C/model-view-controller.py.page:52(item/p)
+#: C/model-view-controller.py.page:53(item/p)
 msgid ""
 "<code>iter_children(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
 "instance pointing to the first child of <code>treeiter</code> or <code>None</"
 "code> if <code>treeiter</code> has no children."
 msgstr ""
 
-#: C/model-view-controller.py.page:53(item/p)
+#: C/model-view-controller.py.page:54(item/p)
 msgid ""
 "<code>get_iter_first()</code> returns a <code>Gtk.TreeIter</code> instance "
 "pointing to the first iterator in the tree (the one at the path <code>\"0\"</"
 "code>) or <code>None</code> if the tree is empty."
 msgstr ""
 
-#: C/model-view-controller.py.page:56(section/p)
+#: C/model-view-controller.py.page:57(section/p)
 msgid "Useful methods for a <code>Gtk.ListStore</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:58(item/p)
+#: C/model-view-controller.py.page:59(item/p)
 msgid ""
 "<code>append(row)</code> appends a new row to this list store, where "
 "<code>row</code> can be a list of values for each column; <code>row</code> "
@@ -20404,8 +20996,8 @@ msgid ""
 "appended row."
 msgstr ""
 
-#: C/model-view-controller.py.page:59(item/p)
-#: C/model-view-controller.py.page:65(item/p)
+#: C/model-view-controller.py.page:60(item/p)
+#: C/model-view-controller.py.page:66(item/p)
 msgid ""
 "<code>remove(iter)</code> removes <code>iter</code> from the <code>Gtk."
 "ListStore</code>, and returns <code>True</code> if the iter is valid, and "
@@ -20413,11 +21005,11 @@ msgid ""
 "code> is set to be the next valid row."
 msgstr ""
 
-#: C/model-view-controller.py.page:62(section/p)
+#: C/model-view-controller.py.page:63(section/p)
 msgid "Useful methods for a <code>Gtk.TreeStore</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:64(item/p)
+#: C/model-view-controller.py.page:65(item/p)
 msgid ""
 "<code>append(parent, row)</code> appends a new row to this tree store; "
 "<code>parent</code> must be a valid Gtk.TreeIter. If parent is not "
@@ -20428,62 +21020,62 @@ msgid ""
 "a <code>Gtk.TreeIter</code> pointing to the appended row."
 msgstr ""
 
-#: C/model-view-controller.py.page:71(section/title)
+#: C/model-view-controller.py.page:72(section/title)
 msgid "The View: the TreeView case"
 msgstr ""
 
-#: C/model-view-controller.py.page:73(section/p)
+#: C/model-view-controller.py.page:74(section/p)
 msgid ""
 "A Treeview shows the structure of children and parent items as a tree. See "
 "for instance <link xref=\"treeview_treestore.py\">this example</link>."
 msgstr ""
 
-#: C/model-view-controller.py.page:75(section/p)
+#: C/model-view-controller.py.page:76(section/p)
 msgid ""
 "The <code>Gtk.TreeViewColumn</code> is used to organize the vertical columns."
 msgstr ""
 
-#: C/model-view-controller.py.page:77(section/p)
+#: C/model-view-controller.py.page:78(section/p)
 msgid "Useful methods for a <code>Gtk.TreeView</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:79(item/p)
+#: C/model-view-controller.py.page:80(item/p)
 msgid ""
 "<code>set_model(model)</code> sets the model for this tree view. If this "
 "tree view already has a model set, it will remove it before setting the new "
 "model. If model is <code>None</code>, then it will unset the old model."
 msgstr ""
 
-#: C/model-view-controller.py.page:80(item/p)
+#: C/model-view-controller.py.page:81(item/p)
 msgid ""
 "<code>get_model()</code> returns the model this tree view is based on, "
 "<code>None</code> if the model is unset."
 msgstr ""
 
-#: C/model-view-controller.py.page:81(item/p)
+#: C/model-view-controller.py.page:82(item/p)
 msgid ""
 "<code>append_column(column)</code> appends <code>column</code> to the list "
 "of columns."
 msgstr ""
 
-#: C/model-view-controller.py.page:82(item/p)
+#: C/model-view-controller.py.page:83(item/p)
 msgid ""
 "<code>get_selection()</code> gets the <code>Gtk.TreeSelection</code> "
 "associated with this tree view."
 msgstr ""
 
-#: C/model-view-controller.py.page:85(section/p)
+#: C/model-view-controller.py.page:86(section/p)
 msgid "Useful methods for a <code>Gtk.TreeViewColumn</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:87(item/p)
+#: C/model-view-controller.py.page:88(item/p)
 msgid ""
 "<code>add_attribute(renderer, attribute, value)</code> adds an attribute "
 "mapping to this column. <code>attribute</code> is the parameter on "
 "<code>renderer</code> to be set from the <code>value</code>"
 msgstr ""
 
-#: C/model-view-controller.py.page:88(item/p)
+#: C/model-view-controller.py.page:89(item/p)
 msgid ""
 "<code>pack_start(renderer, expand)</code> packs <code>renderer</code> into "
 "the beginning of this column. If <code>expand</code> is <code>False</code>, "
@@ -20492,7 +21084,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:89(item/p)
+#: C/model-view-controller.py.page:90(item/p)
 msgid ""
 "<code>pack_end(renderer, expand)</code> adds <code>renderer</code> to end of "
 "this column. If <code>expand</code> is <code>False</code>, then "
@@ -20501,32 +21093,32 @@ msgid ""
 "<code>True</code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:90(item/p)
+#: C/model-view-controller.py.page:91(item/p)
 msgid ""
 "<code>set_sort_column_id(sort_column_id)</code> sets the column of the model "
 "by which this column (of the view) should be sorted. This also makes the "
 "column header clickable."
 msgstr ""
 
-#: C/model-view-controller.py.page:91(item/p)
+#: C/model-view-controller.py.page:92(item/p)
 msgid ""
 "<code>set_sort_indicator(setting)</code> sets whether a little arrow is "
 "displayed in the column header; <code>setting</code> can either be "
 "<code>True</code> (indicator is shown) or <code>False</code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:92(item/p)
+#: C/model-view-controller.py.page:93(item/p)
 msgid ""
 "<code>set_sort_order(order)</code> changes the order by which the column is "
 "sorted; <code>order</code> can either be <code>Gtk.SortType.ASCENDING</code> "
 "or <code>Gtk.SortType.DESCENDING</code>."
 msgstr ""
 
-#: C/model-view-controller.py.page:98(section/title)
+#: C/model-view-controller.py.page:99(section/title)
 msgid "The View: the ComboBox case"
 msgstr ""
 
-#: C/model-view-controller.py.page:100(section/p)
+#: C/model-view-controller.py.page:101(section/p)
 msgid ""
 "A <code>Gtk.ComboBox</code> allows for the selection of an item from a "
 "dropdown menu, see for instance <link xref=\"combobox.py\">this example</"
@@ -20535,11 +21127,11 @@ msgid ""
 "ComboBoxText</code> can contain an entry."
 msgstr ""
 
-#: C/model-view-controller.py.page:102(section/p)
+#: C/model-view-controller.py.page:103(section/p)
 msgid "Useful methods for a <code>Gtk.ComboBox</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:104(item/p)
+#: C/model-view-controller.py.page:105(item/p)
 msgid ""
 "The static method <code>new_with_entry()</code> creates a new empty "
 "<code>Gtk.ComboBox</code> with an entry; the static method "
@@ -20548,14 +21140,14 @@ msgid ""
 "<code>new_with_model_and_entry(model)</code> is a combination of the two."
 msgstr ""
 
-#: C/model-view-controller.py.page:105(item/p)
+#: C/model-view-controller.py.page:106(item/p)
 msgid ""
 "<code>get_active_iter()</code> returns a <code>Gtk.TreeIter</code> pointing "
 "to the current active item. If no active item exists, <code>None</code> is "
 "returned."
 msgstr ""
 
-#: C/model-view-controller.py.page:106(item/p)
+#: C/model-view-controller.py.page:107(item/p)
 msgid ""
 "<code>set_model(model)</code> sets the model used by this combo box to be "
 "<code>model</code>, and it will unset a previously set model (if there is "
@@ -20563,7 +21155,7 @@ msgid ""
 "model. Note that this function does not clear the cell renderers."
 msgstr ""
 
-#: C/model-view-controller.py.page:107(item/p)
+#: C/model-view-controller.py.page:108(item/p)
 msgid ""
 "<code>set_entry_text_column(text_column)</code> sets the model column which "
 "this combo box should use to get strings from to be <code>text_column</"
@@ -20572,30 +21164,30 @@ msgid ""
 "has been created with the “has-entry” property set to True)."
 msgstr ""
 
-#: C/model-view-controller.py.page:108(item/p)
+#: C/model-view-controller.py.page:109(item/p)
 msgid ""
 "<code>set_wrap_width(width)</code> sets the wrap width of this combo box to "
 "be <code>width</code>. The wrap width is basically the preferred number of "
 "columns when you want the popup to be layed out in a grid."
 msgstr ""
 
-#: C/model-view-controller.py.page:111(section/p)
+#: C/model-view-controller.py.page:112(section/p)
 msgid "Useful methods for a <code>Gtk.ComboBoxText</code>:"
 msgstr ""
 
-#: C/model-view-controller.py.page:113(item/p)
+#: C/model-view-controller.py.page:114(item/p)
 msgid ""
 "The static method <code>new_with_entry()</code> creates a new empty "
 "<code>Gtk.ComboBoxText</code> with an entry."
 msgstr ""
 
-#: C/model-view-controller.py.page:114(item/p)
+#: C/model-view-controller.py.page:115(item/p)
 msgid ""
 "<code>append_text(text)</code> appends <code>text</code> to the list of "
 "strings stored in this combo box."
 msgstr ""
 
-#: C/model-view-controller.py.page:115(item/p)
+#: C/model-view-controller.py.page:116(item/p)
 msgid ""
 "<code>get_active_text()</code> returns the currently active string in this "
 "combo box, or <code>None</code> if none is selected. If this combo box "
@@ -20603,40 +21195,40 @@ msgid ""
 "necessarily be an item from the list)."
 msgstr ""
 
-#: C/model-view-controller.py.page:121(section/title)
+#: C/model-view-controller.py.page:122(section/title)
 msgid "The View: the Cellrenderers"
 msgstr ""
 
-#: C/model-view-controller.py.page:123(section/p)
+#: C/model-view-controller.py.page:124(section/p)
 msgid ""
 "The View makes use of <code>Gtk.CellRenderer</code>s of various types to "
 "draw the data."
 msgstr ""
 
-#: C/model-view-controller.py.page:125(section/p)
+#: C/model-view-controller.py.page:126(section/p)
 msgid "Implementations of <code>Gtk.CellRenderer</code> and useful methods:"
 msgstr ""
 
-#: C/model-view-controller.py.page:127(item/p)
+#: C/model-view-controller.py.page:128(item/p)
 msgid "<code>Gtk.CellRendererText</code> - renders text in a cell"
 msgstr ""
 
-#: C/model-view-controller.py.page:128(item/p)
+#: C/model-view-controller.py.page:129(item/p)
 msgid ""
 "<code>Gtk.CellRendererToggle</code> - renders a toggle or radio button in a "
 "cell. Useful methods:"
 msgstr ""
 
-#: C/model-view-controller.py.page:130(item/p)
+#: C/model-view-controller.py.page:131(item/p)
 msgid ""
 "<code>set_active(setting)</code> - activates or deactivates a cell renderer"
 msgstr ""
 
-#: C/model-view-controller.py.page:131(item/p)
+#: C/model-view-controller.py.page:132(item/p)
 msgid "<code>get_active()</code> - returns whether the cell renderer is active"
 msgstr ""
 
-#: C/model-view-controller.py.page:132(item/p)
+#: C/model-view-controller.py.page:133(item/p)
 msgid ""
 "<code>set_radio(radio)</code> - if radio is <code>True</code>, the cell "
 "renderer renders a radio toggle (i.e. a toggle in a group of mutually-"
@@ -20644,17 +21236,17 @@ msgid ""
 "standalone boolean option)"
 msgstr ""
 
-#: C/model-view-controller.py.page:133(item/p)
+#: C/model-view-controller.py.page:134(item/p)
 msgid ""
 "<code>get_radio()</code> - returns whether we are rendering radio toggles "
 "rather than checkboxes."
 msgstr ""
 
-#: C/model-view-controller.py.page:136(item/p)
+#: C/model-view-controller.py.page:137(item/p)
 msgid "<code>Gtk.CellRendererPixbuf</code> - renders an image in a cell"
 msgstr ""
 
-#: C/model-view-controller.py.page:137(item/p)
+#: C/model-view-controller.py.page:138(item/p)
 msgid ""
 "<code>Gtk.CellRendererCombo</code> - renders text in a cell; but while "
 "<code>Gtk.CellRendererText</code> offers a simple entry to edit the text, "
@@ -20663,38 +21255,38 @@ msgid ""
 "widget, depending on the value of the “has-entry” property."
 msgstr ""
 
-#: C/model-view-controller.py.page:138(item/p)
+#: C/model-view-controller.py.page:139(item/p)
 msgid ""
 "<code>Gtk.CellRendererProgress</code> - renders a numeric value as a "
 "progress bar in a cell; it can display a text on top of the progress bar"
 msgstr ""
 
-#: C/model-view-controller.py.page:139(item/p)
+#: C/model-view-controller.py.page:140(item/p)
 msgid ""
 "<code>Gtk.CellRendererSpinner</code> - renders a spinning animation in a cell"
 msgstr ""
 
-#: C/model-view-controller.py.page:140(item/p)
+#: C/model-view-controller.py.page:141(item/p)
 msgid "<code>Gtk.CellRendererSpin</code> - renders a spin button in a cell"
 msgstr ""
 
-#: C/model-view-controller.py.page:141(item/p)
+#: C/model-view-controller.py.page:142(item/p)
 msgid ""
 "<code>Gtk.CellRendererAccel</code> - renders a keyboard accelerator in a cell"
 msgstr ""
 
-#: C/model-view-controller.py.page:147(section/title)
+#: C/model-view-controller.py.page:148(section/title)
 msgid "The Controller: the Selection"
 msgstr ""
 
-#: C/model-view-controller.py.page:149(section/p)
+#: C/model-view-controller.py.page:150(section/p)
 msgid ""
 "Most applications will need to not only deal with displaying data, but also "
 "receiving input events from users. To do this, simply get a reference to a "
 "selection object and connect to the <code>\"changed\"</code> signal."
 msgstr ""
 
-#: C/model-view-controller.py.page:151(section/code)
+#: C/model-view-controller.py.page:152(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -20702,11 +21294,11 @@ msgid ""
 "select.connect(\"changed\", on_tree_selection_changed)\n"
 msgstr ""
 
-#: C/model-view-controller.py.page:156(section/p)
+#: C/model-view-controller.py.page:157(section/p)
 msgid "Then to retrieve data for the row selected:"
 msgstr ""
 
-#: C/model-view-controller.py.page:158(section/code)
+#: C/model-view-controller.py.page:159(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -20716,25 +21308,27 @@ msgid ""
 "        print \"You selected\", model[treeiter][0]\n"
 msgstr ""
 
-#: C/model-view-controller.py.page:165(section/p)
-msgid "Useful method for a <code>Gtk.TreeSelection</code>:"
-msgstr ""
+#: C/model-view-controller.py.page:166(section/p)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "Useful methods for a <code>Gtk.TreeSelection</code>:"
+msgstr "Un primeiro aplicativo en GTK"
 
-#: C/model-view-controller.py.page:168(item/p)
+#: C/model-view-controller.py.page:169(item/p)
 msgid ""
 "<code>set_mode(type)</code> sets the type of selection, where type is one of"
 msgstr ""
 
-#: C/model-view-controller.py.page:170(item/p)
+#: C/model-view-controller.py.page:171(item/p)
 msgid "<code>Gtk.SelectionMode.NONE</code> - no selection is possible"
 msgstr ""
 
-#: C/model-view-controller.py.page:171(item/p)
+#: C/model-view-controller.py.page:172(item/p)
 msgid ""
 "<code>Gtk.SelectionMode.SINGLE</code> - zero or one element may be selected"
 msgstr ""
 
-#: C/model-view-controller.py.page:172(item/p)
+#: C/model-view-controller.py.page:173(item/p)
 msgid ""
 "<code>Gtk.SelectionMode.BROWSE</code> - exactly one element is selected. In "
 "some circumstances, such as initially or during a search operation, it’s "
@@ -20743,16 +21337,16 @@ msgid ""
 "element."
 msgstr ""
 
-#: C/model-view-controller.py.page:173(item/p)
+#: C/model-view-controller.py.page:174(item/p)
 msgid ""
 "<code>Gtk.SelectionMode.MULTIPLE</code> -any number of elements may be "
-"selected. Clicks toggle the state of an item. Any number of elements may be "
-"selected. The Ctrl key may be used to enlarge the selection, and Shift key "
-"to select between the focus and the child pointed to. Some widgets may also "
-"allow Click-drag to select a range of elements."
+"selected. Clicks toggle the state of an item. The Ctrl key may be used to "
+"enlarge the selection, and Shift key to select between the focus and the "
+"child pointed to. Some widgets may also allow Click-drag to select a range "
+"of elements."
 msgstr ""
 
-#: C/model-view-controller.py.page:176(item/p)
+#: C/model-view-controller.py.page:177(item/p)
 msgid ""
 "<code>get_selected()</code> returns a tuple <code>(model, treeiter)</code>, "
 "where <code>model</code> is the current model and <code>treeiter</code> a "
@@ -20763,18 +21357,18 @@ msgid ""
 "TreePath</code> instances of all selected rows."
 msgstr ""
 
-#: C/model-view-controller.py.page:182(section/title)
-#: C/properties.py.page:49(section/title)
-#: C/signals-callbacks.py.page:44(section/title)
-#: C/strings.py.page:124(section/title)
+#: C/model-view-controller.py.page:183(section/title)
+#: C/properties.py.page:50(section/title)
+#: C/signals-callbacks.py.page:45(section/title)
+#: C/strings.py.page:111(section/title)
 msgid "References"
 msgstr ""
 
-#: C/model-view-controller.py.page:185(item/p)
-#: C/treeview_advanced_liststore.py.page:46(item/p)
-#: C/treeview_cellrenderertoggle.py.page:42(item/p)
-#: C/treeview_simple_liststore.py.page:44(item/p)
-#: C/treeview_treestore.py.page:42(item/p)
+#: C/model-view-controller.py.page:186(item/p)
+#: C/treeview_advanced_liststore.py.page:44(item/p)
+#: C/treeview_cellrenderertoggle.py.page:44(item/p)
+#: C/treeview_simple_liststore.py.page:45(item/p)
+#: C/treeview_treestore.py.page:44(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -20786,11 +21380,11 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/model-view-controller.py.page:186(item/p)
-#: C/treeview_advanced_liststore.py.page:45(item/p)
-#: C/treeview_cellrenderertoggle.py.page:41(item/p)
-#: C/treeview_simple_liststore.py.page:43(item/p)
-#: C/treeview_treestore.py.page:41(item/p)
+#: C/model-view-controller.py.page:187(item/p)
+#: C/treeview_advanced_liststore.py.page:43(item/p)
+#: C/treeview_cellrenderertoggle.py.page:43(item/p)
+#: C/treeview_simple_liststore.py.page:44(item/p)
+#: C/treeview_treestore.py.page:43(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -20802,17 +21396,17 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/model-view-controller.py.page:187(item/p)
-#: C/treeview_advanced_liststore.py.page:49(item/p)
-#: C/treeview_cellrenderertoggle.py.page:46(item/p)
-#: C/treeview_simple_liststore.py.page:47(item/p)
-#: C/treeview_treestore.py.page:45(item/p)
+#: C/model-view-controller.py.page:188(item/p)
+#: C/treeview_advanced_liststore.py.page:47(item/p)
+#: C/treeview_cellrenderertoggle.py.page:48(item/p)
+#: C/treeview_simple_liststore.py.page:48(item/p)
+#: C/treeview_treestore.py.page:47(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeViewColumn.html";
 "\">GtkTreeViewColumn</link>"
 msgstr ""
 
-#: C/model-view-controller.py.page:189(item/p)
+#: C/model-view-controller.py.page:190(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -20824,29 +21418,11 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/model-view-controller.py.page:190(item/p)
-msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.";
-"html\">The Python Gtk+ 3 Tutorial - Tree and List Widgets</link>"
-msgstr ""
-
-#: C/model-view-controller.py.page:191(item/p)
-msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/";
-"cellrenderers.html\">The Python Gtk+ 3 Tutorial - CellRenderers</link>"
-msgstr ""
-
-#: C/model-view-controller.py.page:192(item/p)
-msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/combobox.";
-"html\">The Python Gtk+ 3 Tutorial - ComboBox</link>"
-msgstr ""
-
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/paned.py.page:21(media)
+#: C/paned.py.page:22(media)
 #, fuzzy
 #| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
 msgctxt "_"
@@ -20860,19 +21436,19 @@ msgctxt "text"
 msgid "Paned (Python)"
 msgstr "Python"
 
-#: C/paned.py.page:17(info/desc)
+#: C/paned.py.page:18(info/desc)
 msgid "A widget with two adjustable panes"
 msgstr ""
 
-#: C/paned.py.page:20(page/title)
+#: C/paned.py.page:21(page/title)
 msgid "Paned"
 msgstr ""
 
-#: C/paned.py.page:22(page/p)
+#: C/paned.py.page:23(page/p)
 msgid "Two images in two adjustable panes, horizontally aligned."
 msgstr ""
 
-#: C/paned.py.page:28(section/code)
+#: C/paned.py.page:29(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -20917,11 +21493,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/paned.py.page:32(section/title)
+#: C/paned.py.page:33(section/title)
 msgid "Useful methods for a Paned widget"
 msgstr ""
 
-#: C/paned.py.page:33(section/p)
+#: C/paned.py.page:34(section/p)
 msgid ""
 "To have two vertically aligned panes, use <code>Gtk.Orientation.VERTICAL</"
 "code> instead of <code>Gtk.Orientation.HORIZONTAL</code>. The method "
@@ -20930,7 +21506,7 @@ msgid ""
 "the bottom pane."
 msgstr ""
 
-#: C/paned.py.page:40(item/p)
+#: C/paned.py.page:41(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -20942,7 +21518,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/paned.py.page:41(item/p)
+#: C/paned.py.page:42(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Standard-";
 "Enumerations.html#GtkOrientation\">Standard Enumerations</link>"
@@ -20952,7 +21528,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/photo-wall.c.page:78(media)
+#: C/photo-wall.c.page:83(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
@@ -20965,7 +21541,7 @@ msgstr "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/photo-wall.c.page:81(media)
+#: C/photo-wall.c.page:86(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/photo-wall-focused.png'; "
@@ -20981,7 +21557,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Photo Wall (C)"
 msgctxt "text"
-msgid "Photo Wall (C)"
+msgid "Photo wall (C)"
 msgstr "Mural de fotos (C)"
 
 #: C/photo-wall.c.page:9(info/desc)
@@ -20992,11 +21568,13 @@ msgstr "Un visor de imaxes Clutter"
 msgid "Chris Kühl"
 msgstr "Chris Kühl"
 
-#: C/photo-wall.c.page:22(page/title)
-msgid "Photo Wall"
+#: C/photo-wall.c.page:27(page/title)
+#, fuzzy
+#| msgid "Photo Wall"
+msgid "Photo wall"
 msgstr "Mural de fotos"
 
-#: C/photo-wall.c.page:25(synopsis/p)
+#: C/photo-wall.c.page:30(synopsis/p)
 msgid ""
 "For this example we will build a simple image viewer using Clutter. You will "
 "learn:"
@@ -21004,34 +21582,34 @@ msgstr ""
 "Para este exemplo construirase un sinxelo visor de imaxes usando Clutter. "
 "Aprenderá:"
 
-#: C/photo-wall.c.page:27(item/p)
+#: C/photo-wall.c.page:32(item/p)
 msgid "How to size and position <code>ClutterActor</code>s"
 msgstr "Como dimensionar e posicionar varios <code>ClutterActor</code>"
 
-#: C/photo-wall.c.page:28(item/p)
+#: C/photo-wall.c.page:33(item/p)
 msgid "How to place an image in a <code>ClutterActor</code>"
 msgstr "Como posicionar unha imaxe nun <code>ClutterActor</code>"
 
-#: C/photo-wall.c.page:29(item/p)
+#: C/photo-wall.c.page:34(item/p)
 msgid "How to do simple transitions using Clutter's animation framework"
 msgstr ""
 "Como facer transicións sinxelas usando o framework de animacións Clutter."
 
-#: C/photo-wall.c.page:30(item/p)
+#: C/photo-wall.c.page:35(item/p)
 msgid "How to make <code>ClutterActor</code>s respond to mouse events"
 msgstr ""
 "Como facer que os <code>ClutterActor</code> respondan a eventos do rato"
 
-#: C/photo-wall.c.page:31(item/p)
+#: C/photo-wall.c.page:36(item/p)
 msgid "How to get file names from a directory"
 msgstr "Como obter nomes de ficheiros dun cartafol"
 
-#: C/photo-wall.c.page:36(section/title)
-#: C/record-collection.js.page:34(section/title)
+#: C/photo-wall.c.page:41(section/title)
+#: C/record-collection.js.page:39(section/title)
 msgid "Introduction"
 msgstr "Introdución"
 
-#: C/photo-wall.c.page:37(section/p)
+#: C/photo-wall.c.page:42(section/p)
 msgid ""
 "Clutter is a library for creating dynamic user interfaces using OpenGL for "
 "hardware acceleration. This example demonstates a small, but central, part "
@@ -21043,27 +21621,35 @@ msgstr ""
 "porén central, da biblioteca Clutter para crear un sinxelo, máis atractivo, "
 "programa de visualización de imaxes."
 
-#: C/photo-wall.c.page:40(section/p)
+#: C/photo-wall.c.page:45(section/p)
+#, fuzzy
+#| msgid ""
+#| "To help us reach our goal we will be utilising a few other common pieces "
+#| "of GLib as well. Most importantly, we'll use one <code>GSList</code>, a "
+#| "singly-linked list, to hold our <code>ClutterActor</code>s and another "
+#| "one for file path names. We will also use <code>GDir</code>, a utility "
+#| "for working with directories, to access our image directory and gather "
+#| "file paths."
 msgid ""
 "To help us reach our goal we will be utilising a few other common pieces of "
-"GLib as well. Most importantly, we'll use one <code>GSList</code>, a singly-"
-"linked list, to hold our <code>ClutterActor</code>s and another one for file "
-"path names. We will also use <code>GDir</code>, a utility for working with "
-"directories, to access our image directory and gather file paths."
+"GLib as well. Most importantly, we'll use one <code>GPtrArray</code>, a "
+"dynamic array of pointers, to hold the file path names. We will also use "
+"<code>GDir</code>, a utility for working with directories, to access our "
+"image directory and gather file paths."
 msgstr ""
 "Para axudarlle a alcanzar o seu destino usaremos tamén algunhas pezas comúns "
 "de GLib. A máis importante, usaremos <code>GSList</code>, unha lista ligada "
 "para manter os nosos <code>ClutterActor</code>s e os nomes de ruta de "
 "ficheiro."
 
-#: C/photo-wall.c.page:53(item/p)
+#: C/photo-wall.c.page:58(item/p)
 #, fuzzy
 #| msgid ""
 #| "Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
 #| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
 #| "<file>photo-wall</file> as project name and directory."
 msgid ""
-"Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
+"Choose <gui>GTK+ (simple)</gui> from the <gui>C</gui> tab, click "
 "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
 "<file>photo-wall</file> as project name and directory."
 msgstr ""
@@ -21071,7 +21657,7 @@ msgstr ""
 "<gui>Adiante</gui>, e complete os detalles nas seguintes páxinas. Use "
 "<file>photo-wall</file> como nome do proxecto e cartafol."
 
-#: C/photo-wall.c.page:56(item/p)
+#: C/photo-wall.c.page:61(item/p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
 "we will create the UI manually in this tutorial. Check the <link xref="
@@ -21082,7 +21668,7 @@ msgstr ""
 "titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
 "construtor de interface."
 
-#: C/photo-wall.c.page:61(item/p)
+#: C/photo-wall.c.page:66(item/p)
 msgid ""
 "Enable <gui>Configure external packages</gui>. On the next page, select "
 "<em>clutter-1.0</em> from the list to include the Clutter library in your "
@@ -21092,15 +21678,15 @@ msgstr ""
 "seleccione <em>clutter-1.0</em> desde a lista para incluír a biblioteca "
 "Clutter no seu proxecto."
 
-#: C/photo-wall.c.page:74(section/title)
+#: C/photo-wall.c.page:79(section/title)
 msgid "A look at Photo Wall"
 msgstr "Unha ollada ao Muro de fotos"
 
-#: C/photo-wall.c.page:75(section/p)
+#: C/photo-wall.c.page:80(section/p)
 msgid "Our image viewer presents the user with a wall of images."
 msgstr "O novo visor de imaxes móstralle ao usuario un muro de imaxes."
 
-#: C/photo-wall.c.page:79(section/p)
+#: C/photo-wall.c.page:84(section/p)
 msgid ""
 "When an image is clicked, it is animated to fill the viewing area. When the "
 "image having focus is clicked it is returned to its original position using "
@@ -21111,11 +21697,11 @@ msgstr ""
 "súa posición orixinal usando unha animación da mesma duración de 500 "
 "milisegundos."
 
-#: C/photo-wall.c.page:85(section/title)
+#: C/photo-wall.c.page:90(section/title)
 msgid "Initial setup"
 msgstr "Configuración inicial"
 
-#: C/photo-wall.c.page:86(section/p)
+#: C/photo-wall.c.page:91(section/p)
 msgid ""
 "The following code segment contains many of the defines and variables we "
 "will be using in the following sections. Use this as a reference for later "
@@ -21125,10 +21711,11 @@ msgstr ""
 "usarán nas seguintes seccións. Úseo como referencia para as próximas "
 "seccións. Copie este código ao principio de <file>src/main.c</file>:"
 
-#: C/photo-wall.c.page:89(section/code)
+#: C/photo-wall.c.page:94(section/code)
 #, no-wrap
 msgid ""
 "\n"
+"#include &lt;gdk-pixbuf/gdk-pixbuf.h&gt;\n"
 "#include &lt;clutter/clutter.h&gt;\n"
 "\n"
 "#define STAGE_WIDTH  800\n"
@@ -21141,30 +21728,19 @@ msgid ""
 "\n"
 "#define ANIMATION_DURATION_MS 500\n"
 "\n"
-"#define FOCUS_DEPTH 100.0\n"
-"#define UNFOCUS_DEPTH 0.0\n"
-"\n"
 "#define IMAGE_DIR_PATH \"./berlin_images/\"\n"
 "\n"
-"static GSList *actor_list = NULL;\n"
-"static GSList *img_path_list = NULL;\n"
-"\n"
-"typedef struct Position\n"
-"{\n"
-"    float x;\n"
-"    float y;\n"
-"}\n"
-"Position;\n"
+"static GPtrArray *img_paths;\n"
 "\n"
-"static Position origin = {0, 0};\n"
+"static ClutterPoint unfocused_pos;\n"
 "\n"
 msgstr ""
 
-#: C/photo-wall.c.page:123(section/title)
+#: C/photo-wall.c.page:118(section/title)
 msgid "Jumping into the code"
 msgstr "Saltando ao código"
 
-#: C/photo-wall.c.page:124(section/p)
+#: C/photo-wall.c.page:119(section/p)
 msgid ""
 "We will start by taking a look at the <code>main()</code> function as a "
 "whole. Then we'll discuss the other code sections in detail. Change the "
@@ -21177,7 +21753,7 @@ msgstr ""
 "file> para que conte;a a función <code>main()</code>. Pode elminar a función "
 "<code>create_window()</code> xa que non a necesitamos neste exemplo."
 
-#: C/photo-wall.c.page:127(section/code)
+#: C/photo-wall.c.page:122(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -21187,11 +21763,14 @@ msgid ""
 "    ClutterColor stage_color = { 16, 16, 16, 255 };\n"
 "    ClutterActor *stage = NULL;\n"
 "\n"
-"    clutter_init(&amp;argc, &amp;argv);\n"
+"    if (clutter_init (&amp;argc, &amp;argv) != CLUTTER_INIT_SUCCESS)\n"
+"        return 1;\n"
 "\n"
-"    stage = clutter_stage_get_default();\n"
+"    stage = clutter_stage_new();\n"
 "    clutter_actor_set_size(stage, STAGE_WIDTH, STAGE_HEIGHT);\n"
-"    clutter_stage_set_color(CLUTTER_STAGE (stage), &amp;stage_color);\n"
+"    clutter_actor_set_background_color(stage, &amp;stage_color);\n"
+"    clutter_stage_set_title(CLUTTER_STAGE (stage), \"Photo Wall\");\n"
+"    g_signal_connect(stage, \"destroy\", G_CALLBACK(clutter_main_quit), NULL);\n"
 "\n"
 "    load_image_path_names();\n"
 "\n"
@@ -21201,11 +21780,30 @@ msgid ""
 "    {\n"
 "        for(col=0; col &lt; COL_COUNT; ++col)\n"
 "        {\n"
-"            GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
-"            ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"            const char *img_path = g_ptr_array_index(img_paths, (row * COL_COUNT) + col);\n"
+"            GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size(img_path, STAGE_HEIGHT, STAGE_HEIGHT, 
NULL);\n"
+"            ClutterContent *image = clutter_image_new ();\n"
+"            ClutterActor *actor = clutter_actor_new ();\n"
+"\n"
+"            if (pixbuf != NULL)\n"
+"            {\n"
+"                clutter_image_set_data(CLUTTER_IMAGE(image),\n"
+"                                       gdk_pixbuf_get_pixels(pixbuf),\n"
+"                                       gdk_pixbuf_get_has_alpha(pixbuf)\n"
+"                                           ? COGL_PIXEL_FORMAT_RGBA_8888\n"
+"                                           : COGL_PIXEL_FORMAT_RGB_888,\n"
+"                                       gdk_pixbuf_get_width(pixbuf),\n"
+"                                       gdk_pixbuf_get_height(pixbuf),\n"
+"                                       gdk_pixbuf_get_rowstride(pixbuf),\n"
+"                                       NULL);\n"
+"            }\n"
+"\n"
+"            clutter_actor_set_content(actor, image);\n"
+"            g_object_unref(image);\n"
+"            g_object_unref(pixbuf);\n"
+"\n"
 "            initialize_actor(actor, row, col);\n"
-"            clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
-"            actor_list = g_slist_prepend(actor_list, actor);\n"
+"            clutter_actor_add_child(stage, actor);\n"
 "        }\n"
 "    }\n"
 "\n"
@@ -21215,11 +21813,13 @@ msgid ""
 "    /* Start the clutter main loop. */\n"
 "    clutter_main();\n"
 "\n"
+"    g_ptr_array_unref(img_paths);\n"
+"\n"
 "    return 0;\n"
 "}"
 msgstr ""
 
-#: C/photo-wall.c.page:165(item/p)
+#: C/photo-wall.c.page:184(item/p)
 msgid ""
 "Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
 "and transparency (alpha) values. The values range from 0-255. For "
@@ -21229,7 +21829,7 @@ msgstr ""
 "vermello, verde, azul ou transparente (alfa). O rango de valores están entre "
 "0-255. Para a transparencia 255 é opaco."
 
-#: C/photo-wall.c.page:166(item/p)
+#: C/photo-wall.c.page:185(item/p)
 msgid ""
 "Line 7: You must initialize Clutter. If you forget to do this, you will get "
 "very strange errors. Be warned."
@@ -21237,19 +21837,24 @@ msgstr ""
 "Liña 7: Debe inicializar Clutter. Se esqueceu isto, haberá moitos erros "
 "estraños. Está avisado."
 
-#: C/photo-wall.c.page:167(item/p)
+#: C/photo-wall.c.page:186(item/p)
+#, fuzzy
+#| msgid ""
+#| "Lines 9‒11: Here we get the default <code>ClutterStage</code> that was "
+#| "provided by <code>clutter_init</code>. We then set the size using the "
+#| "defines from the previous section and the address of the "
+#| "<code>ClutterColor</code> we just defined."
 msgid ""
-"Lines 9‒11: Here we get the default <code>ClutterStage</code> that was "
-"provided by <code>clutter_init</code>. We then set the size using the "
-"defines from the previous section and the address of the <code>ClutterColor</"
-"code> we just defined."
+"Lines 10‒14: Here we create a new <code>ClutterStage</code> . We then set "
+"the size using the defines from the previous section and the address of the "
+"<code>ClutterColor</code> we just defined."
 msgstr ""
 "Liñas 9-11: aquí é onde se obtén o <code>ClutterStage</code> predeterminado "
 "que forneceu <code>clutter_init</code>. Entón estabelécese o tamaño usando o "
 "definido na sección anterior e os enderezos do <code>ClutterColor</code> que "
 "xa están definidas."
 
-#: C/photo-wall.c.page:168(note/p)
+#: C/photo-wall.c.page:187(note/p)
 msgid ""
 "A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
 "which other <code>ClutterActor</code>s are placed."
@@ -21257,17 +21862,26 @@ msgstr ""
 "Un <code>CluterStage</code> é o nivel superior dun <code>ClutterActor</code> "
 "no que se localizan outros <code>ClutterActor</code>."
 
-#: C/photo-wall.c.page:170(item/p)
+#: C/photo-wall.c.page:189(item/p)
+#, fuzzy
+#| msgid ""
+#| "Line 12: Here we call our function for getting the image file paths. "
+#| "We'll look at this in a bit."
 msgid ""
-"Line 12: Here we call our function for getting the image file paths. We'll "
+"Line 16: Here we call our function for getting the image file paths. We'll "
 "look at this in a bit."
 msgstr ""
 "Liña 12: aquí chámase á función para obter as rutas das imaxes. Isto verase "
 "en breve."
 
-#: C/photo-wall.c.page:171(item/p)
+#: C/photo-wall.c.page:190(item/p)
+#, fuzzy
+#| msgid ""
+#| "Lines 14‒26: This is where we set up the <code>ClutterActor</code>s, load "
+#| "the images and place them into their spot in the image wall. We will look "
+#| "at this in detail in the next section."
 msgid ""
-"Lines 14‒26: This is where we set up the <code>ClutterActor</code>s, load "
+"Lines 18‒49: This is where we set up the <code>ClutterActor</code>s, load "
 "the images and place them into their spot in the image wall. We will look at "
 "this in detail in the next section."
 msgstr ""
@@ -21275,22 +21889,27 @@ msgstr ""
 "as imaxes e colócanse no seu sitio no mural de imaxes. Isto verase con máis "
 "detalle na seguinte sección."
 
-#: C/photo-wall.c.page:172(item/p)
+#: C/photo-wall.c.page:191(item/p)
+#, fuzzy
+#| msgid ""
+#| "Line 29: Show the stage and <em>all its children</em>, meaning our images."
 msgid ""
-"Line 29: Show the stage and <em>all its children</em>, meaning our images."
+"Line 52: Show the stage and <em>all its children</em>, meaning our images."
 msgstr ""
 "Liña 29: mostra o escenario e <em>todos os seus fillos</em>, é dicir, as "
 "imaxes."
 
-#: C/photo-wall.c.page:173(item/p)
-msgid "Line 32: Start the Clutter main loop."
+#: C/photo-wall.c.page:192(item/p)
+#, fuzzy
+#| msgid "Line 32: Start the Clutter main loop."
+msgid "Line 55: Start the Clutter main loop."
 msgstr "Liña 32: inicia o bucle principal de Clutter."
 
-#: C/photo-wall.c.page:178(section/title)
+#: C/photo-wall.c.page:197(section/title)
 msgid "Setting up our image actors"
 msgstr "Configurar os nosos actores de imaxe"
 
-#: C/photo-wall.c.page:179(note/p)
+#: C/photo-wall.c.page:198(note/p)
 msgid ""
 "In Clutter, an actor is the most basic visual element. Basically, everything "
 "you see is an actor."
@@ -21298,7 +21917,7 @@ msgstr ""
 "En Clutter, un actor é o elemento visual máis básico. Basicamente, todo o "
 "que ve é un actor."
 
-#: C/photo-wall.c.page:180(section/p)
+#: C/photo-wall.c.page:199(section/p)
 msgid ""
 "In this section, we are going to take a closer look at the loop used for "
 "setting up the <code>ClutterActor</code>s that will display our images."
@@ -21306,32 +21925,58 @@ msgstr ""
 "Nesta sección, imos botar unha ollada máis polo miúdo ao búcle usado para "
 "configurar os <code>ClutterActor</code>s que mostrarán as nosas imaxes."
 
-#: C/photo-wall.c.page:183(section/code)
+#: C/photo-wall.c.page:202(section/code)
 #, no-wrap
 msgid ""
 "\n"
+"guint row = 0;\n"
+"guint col = 0;\n"
 "for(row=0; row &lt; ROW_COUNT; ++row)\n"
 "{\n"
 "    for(col=0; col &lt; COL_COUNT; ++col)\n"
 "    {\n"
-"        GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
-"        ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"        const char *img_path = g_ptr_array_index(img_paths, (row * COL_COUNT) + col);\n"
+"        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size(img_path, STAGE_HEIGHT, STAGE_HEIGHT, NULL);\n"
+"        ClutterContent *image = clutter_image_new ();\n"
+"        ClutterActor *actor = clutter_actor_new ();\n"
+"\n"
+"        if (pixbuf != NULL)\n"
+"        {\n"
+"            clutter_image_set_data(CLUTTER_IMAGE(image),\n"
+"                                   gdk_pixbuf_get_pixels(pixbuf),\n"
+"                                   gdk_pixbuf_get_has_alpha(pixbuf)\n"
+"                                       ? COGL_PIXEL_FORMAT_RGBA_8888\n"
+"                                       : COGL_PIXEL_FORMAT_RGB_888,\n"
+"                                   gdk_pixbuf_get_width(pixbuf),\n"
+"                                   gdk_pixbuf_get_height(pixbuf),\n"
+"                                   gdk_pixbuf_get_rowstride(pixbuf),\n"
+"                                   NULL);\n"
+"        }\n"
+"\n"
+"        clutter_actor_set_content(actor, image);\n"
+"        g_object_unref(image);\n"
+"        g_object_unref(pixbuf);\n"
+"\n"
 "        initialize_actor(actor, row, col);\n"
-"        clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
-"        actor_list = g_slist_prepend(actor_list, actor);\n"
+"        clutter_actor_add_child(stage, actor);\n"
 "    }\n"
 "}\n"
 "\n"
 msgstr ""
 
-#: C/photo-wall.c.page:198(item/p)
+#: C/photo-wall.c.page:238(item/p)
+#, fuzzy
+#| msgid ""
+#| "Line 5: Here we want to get the path at the <var>n</var>th location in "
+#| "the <code>GSList</code> that is holding our image path names. The <var>n</"
+#| "var>th position is calculated based on <code>row</code> and <code>col</"
+#| "code>. The return value is a pointer to a <code>GSList</code> which is "
+#| "just a node in the list. We will use this to get the actual path in the "
+#| "next line. The first parameter is a pointer to the head of the list."
 msgid ""
-"Line 5: Here we want to get the path at the <var>n</var>th location in the "
-"<code>GSList</code> that is holding our image path names. The <var>n</var>th "
-"position is calculated based on <code>row</code> and <code>col</code>. The "
-"return value is a pointer to a <code>GSList</code> which is just a node in "
-"the list. We will use this to get the actual path in the next line. The "
-"first parameter is a pointer to the head of the list."
+"Line 7: Here we want to get the path at the <var>n</var>th location in the "
+"<code>GPtrArray</code> that is holding our image path names. The <var>n</"
+"var>th position is calculated based on <code>row</code> and <code>col</code>."
 msgstr ""
 "Liña 5: aquí quérese obter a ruta á localización <var>n</var>-ésima na "
 "<code>GSList</code> que contén os nomes das rutas das imaxes. A <var>n</var>-"
@@ -21340,10 +21985,16 @@ msgstr ""
 "nodo na lista. Isto usarase para obter a ruta actual na seguinte liña. O "
 "primeiro parámetro é un punteiro á cabeceira da lista."
 
-#: C/photo-wall.c.page:200(item/p)
+#: C/photo-wall.c.page:240(item/p)
+#, fuzzy
+#| msgid ""
+#| "Line 6: This is where we actually create the <code>ClutterActor</code> "
+#| "and place the image into the actor. The first argument is the path which "
+#| "we access through our <code>GSList</code> node. The second argument is "
+#| "for error reporting but we are ignoring that to keep things short."
 msgid ""
-"Line 6: This is where we actually create the <code>ClutterActor</code> and "
-"place the image into the actor. The first argument is the path which we "
+"Line 8‒23: This is where we actually create the <code>ClutterActor</code> "
+"and place the image into the actor. The first argument is the path which we "
 "access through our <code>GSList</code> node. The second argument is for "
 "error reporting but we are ignoring that to keep things short."
 msgstr ""
@@ -21352,13 +22003,17 @@ msgstr ""
 "acceder ao nodo da <code>GSList</code>. O seguindo argumento é para informar "
 "dun error, pero ignórase para simplificar."
 
-#: C/photo-wall.c.page:202(item/p)
-msgid "Line 7: We'll look at this function in a later section."
-msgstr "Liña 7: esta función verase nunha sección posterior."
-
-#: C/photo-wall.c.page:204(item/p)
+#: C/photo-wall.c.page:242(item/p)
+#, fuzzy
+#| msgid ""
+#| "Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
+#| "container. It also assumes ownership of the <code>ClutterActor</code> "
+#| "which is something you'll want to look into as you get deeper into GNOME "
+#| "development. See the <link href=\"http://library.gnome.org/devel/gobject/";
+#| "stable/gobject-memory.html\"><code>GObject</code> documentation</link> "
+#| "for the gory details."
 msgid ""
-"Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
+"Line 47: This adds the <code>ClutterActor</code> to the stage, which is a "
 "container. It also assumes ownership of the <code>ClutterActor</code> which "
 "is something you'll want to look into as you get deeper into GNOME "
 "development. See the <link href=\"http://library.gnome.org/devel/gobject/";
@@ -21371,32 +22026,11 @@ msgstr ""
 "detalles, consulte a <link href=\"http://library.gnome.org/devel/gobject/";
 "stable/gobject-memory.html\">documentación de <code>GObject</code></link>."
 
-#: C/photo-wall.c.page:206(item/p)
-msgid ""
-"Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
-"that we can later iterate over the <code>ClutterActor</code>s."
-msgstr ""
-"Liña 9: isto engade o <code>ClutterActor</code> a unha <code>GSList</code> "
-"que logo se poderá iterar sobre os <code>ClutterActor</code>."
-
-#: C/photo-wall.c.page:207(note/p)
-msgid ""
-"Interesting to note is that we want to prepend the <code>ClutterActor</"
-"code>s rather than append so that we avoid traversing the list upon each "
-"insertion. You will often see <code>g_slist_prepend</code> followed by "
-"<code>g_slist_reverse</code> because it faster than inserting many objects "
-"at the end of the list."
-msgstr ""
-"É interesante ter en conta que prefírese antepoñer os <code>ClutterActor</"
-"code> no lugar de anexalos, o que evita atravesar a lista en cada inserción. "
-"A miúdo verá <code>g_slist_prepend</code> seguido de <code>g_slist_reverse</"
-"code>, xa que é máis rápido que inserir varios obxectos ao final da lista."
-
-#: C/photo-wall.c.page:213(section/title)
+#: C/photo-wall.c.page:248(section/title)
 msgid "Loading the images"
 msgstr "Cargar as imaxes"
 
-#: C/photo-wall.c.page:214(section/p)
+#: C/photo-wall.c.page:249(section/p)
 msgid ""
 "Let's take a short break from Clutter to see how we can get the file names "
 "from our image directory."
@@ -21404,7 +22038,7 @@ msgstr ""
 "Botemos unha pequena ollada a Clutter para ver como obter os nomes dos "
 "ficheiros desde o noso cartafol de imaxes."
 
-#: C/photo-wall.c.page:215(section/code)
+#: C/photo-wall.c.page:250(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -21421,20 +22055,22 @@ msgid ""
 "        return;\n"
 "    }\n"
 "\n"
+"    img_paths = g_ptr_array_new_with_free_func (g_free);\n"
+"\n"
 "    const gchar *filename = g_dir_read_name(dir);\n"
 "    while(filename)\n"
 "    {\n"
 "        if(g_str_has_suffix(filename, \".jpg\") || g_str_has_suffix(filename, \".png\"))\n"
 "        {\n"
 "            gchar *path = g_build_filename(IMAGE_DIR_PATH, filename, NULL);\n"
-"            img_path_list = g_slist_prepend(img_path_list, path);\n"
+"            g_ptr_array_add (img_paths, path);\n"
 "        }\n"
 "        filename = g_dir_read_name(dir);\n"
 "    }\n"
 "}"
 msgstr ""
 
-#: C/photo-wall.c.page:241(item/p)
+#: C/photo-wall.c.page:278(item/p)
 msgid ""
 "Lines 5 and 12: This opens our directory or, if an error occured, returns "
 "after printing an error message."
@@ -21442,9 +22078,17 @@ msgstr ""
 "Liñas 5 e 12: Isto abre o noso cartafol ou, se se produce un erro, devolve "
 "despois de imprimir unha mensaxe de erro."
 
-#: C/photo-wall.c.page:242(item/p)
+#: C/photo-wall.c.page:279(item/p)
+#, fuzzy
+#| msgid ""
+#| "Lines 14‒23: The first line gets another file name from the <code>GDir</"
+#| "code> we opened earlier. If there was an image file (which we check by "
+#| "looking at its extension, \".png\" or \".jpg\") in the directory we "
+#| "proceed to prepend the image directory path to the filename and prepend "
+#| "that to the list we set up earlier. Lastly we attempt to get the next "
+#| "path name and reenter the loop if another file was found."
 msgid ""
-"Lines 14‒23: The first line gets another file name from the <code>GDir</"
+"Lines 16‒25: The first line gets another file name from the <code>GDir</"
 "code> we opened earlier. If there was an image file (which we check by "
 "looking at its extension, \".png\" or \".jpg\") in the directory we proceed "
 "to prepend the image directory path to the filename and prepend that to the "
@@ -21458,11 +22102,11 @@ msgstr ""
 "anteriormente. Por último, inténtase obter a seguinte ruta e vólvese entrar "
 "no bucle se se atopa outro ficheiro."
 
-#: C/photo-wall.c.page:247(section/title)
+#: C/photo-wall.c.page:284(section/title)
 msgid "Set up the actors"
 msgstr "Configurar os actores"
 
-#: C/photo-wall.c.page:248(section/p)
+#: C/photo-wall.c.page:285(section/p)
 msgid ""
 "We now take a look at the sizing and positioning of <code>ClutterActor</"
 "code>s and also readying the <code>ClutterActor</code> for user interaction."
@@ -21471,7 +22115,7 @@ msgstr ""
 "e a como se deixa listo o <code>ClutterActor</code> para a interacción do "
 "usuario."
 
-#: C/photo-wall.c.page:251(section/code)
+#: C/photo-wall.c.page:288(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -21490,7 +22134,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/photo-wall.c.page:267(item/p)
+#: C/photo-wall.c.page:304(item/p)
 msgid ""
 "Line 7: Setting an actor reactive means that it reacts to events, such as "
 "<code>button-press-event</code> in our case. For Photo Wall, all "
@@ -21501,7 +22145,7 @@ msgstr ""
 "mural de fotos, todos os <code>ClutterActor</code> do mural deben ser "
 "inicialmente reactivos."
 
-#: C/photo-wall.c.page:270(item/p)
+#: C/photo-wall.c.page:307(item/p)
 msgid ""
 "Line 9‒12: Now we connect the <code>button-press-event</code> to the "
 "<code>actor_clicked_cb</code> callback which we will look at next."
@@ -21509,16 +22153,16 @@ msgstr ""
 "Liñas 9-12: agora conéctase o evento <code>button-press-evento</code> á "
 "chamada <code>actor_clicked_cb</code> que veremos máis adiante."
 
-#: C/photo-wall.c.page:273(section/p)
+#: C/photo-wall.c.page:310(section/p)
 msgid "At this point we've got a wall of images that are ready to be viewed."
 msgstr ""
 "Neste punto obteremos un muro de imaxes que están listas para ser mostradas."
 
-#: C/photo-wall.c.page:277(section/title)
+#: C/photo-wall.c.page:314(section/title)
 msgid "Reacting to the clicks"
 msgstr "Reaccionar aos clics"
 
-#: C/photo-wall.c.page:281(section/code)
+#: C/photo-wall.c.page:318(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -21529,33 +22173,39 @@ msgid ""
 "{\n"
 "    /* Flag to keep track of our state. */\n"
 "    static gboolean is_focused = FALSE;\n"
+"    ClutterActorIter iter;\n"
+"    ClutterActor *child;\n"
+"\n"
+"    /* Reset the focus state on all the images */\n"
+"    clutter_actor_iter_init (&amp;iter, clutter_actor_get_parent(actor));\n"
+"    while (clutter_actor_iter_next(&amp;iter, &amp;child))\n"
+"      clutter_actor_set_reactive(child, is_focused);\n"
 "\n"
-"    g_slist_foreach(actor_list, foreach_set_focus_state, &amp;is_focused);\n"
+"    clutter_actor_save_easing_state(actor);\n"
+"    clutter_actor_set_easing_duration(actor, ANIMATION_DURATION_MS);\n"
 "\n"
 "    if(is_focused)\n"
 "    {\n"
-"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
-"                              \"x\",      origin.x,\n"
-"                              \"y\",      origin.y,\n"
-"                              \"depth\",  UNFOCUS_DEPTH,\n"
-"                              \"width\",  (float) THUMBNAIL_SIZE,\n"
-"                              \"height\", (float) THUMBNAIL_SIZE,\n"
-"                              NULL);\n"
+"        /* Restore the old location and size. */\n"
+"        clutter_actor_set_position(actor, unfocused_pos.x, unfocused_pos.y);\n"
+"        clutter_actor_set_size(actor, THUMBNAIL_SIZE, THUMBNAIL_SIZE);\n"
 "    }\n"
 "    else\n"
 "    {\n"
-"        /*Save the current location before animating. */\n"
-"        clutter_actor_get_position(actor, &amp;origin.x, &amp;origin.y);\n"
+"        /* Save the current location before animating. */\n"
+"        clutter_actor_get_position(actor, &amp;unfocused_pos.x, &amp;unfocused_pos.y);\n"
+"        /* Only the currently focused image should receive events. */\n"
 "        clutter_actor_set_reactive(actor, TRUE);\n"
-"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
-"                              \"x\",      (STAGE_WIDTH - STAGE_HEIGHT) / 2.0,\n"
-"                              \"y\",      0.0,\n"
-"                              \"depth\",  FOCUS_DEPTH,\n"
-"                              \"width\",  (float) STAGE_HEIGHT,\n"
-"                              \"height\", (float) STAGE_HEIGHT,\n"
-"                              NULL);\n"
+"\n"
+"        /* Put the focused image on top. */\n"
+"        clutter_actor_set_child_above_sibling(clutter_actor_get_parent(actor), actor, NULL);\n"
+"\n"
+"        clutter_actor_set_position(actor, (STAGE_WIDTH - STAGE_HEIGHT) / 2.0, 0);\n"
+"        clutter_actor_set_size(actor, STAGE_HEIGHT, STAGE_HEIGHT);\n"
 "    }\n"
 "\n"
+"    clutter_actor_restore_easing_state(actor);\n"
+"\n"
 "    /* Toggle our flag. */\n"
 "    is_focused = !is_focused;\n"
 "\n"
@@ -21563,7 +22213,7 @@ msgid ""
 "}"
 msgstr ""
 
-#: C/photo-wall.c.page:322(item/p)
+#: C/photo-wall.c.page:365(item/p)
 msgid ""
 "Lines 1‒4: We have to make sure our callback function matches the signature "
 "required for the <code>button_clicked_event</code> signal. For our example, "
@@ -21571,7 +22221,7 @@ msgid ""
 "actually clicked."
 msgstr ""
 
-#: C/photo-wall.c.page:324(note/p)
+#: C/photo-wall.c.page:367(note/p)
 msgid ""
 "A few words on the arguments we are not using in this example. The "
 "<code>ClutterEvent</code> is different depending on what event is being "
@@ -21582,92 +22232,46 @@ msgid ""
 "documentation for other <code>ClutterEvent</code> types."
 msgstr ""
 
-#: C/photo-wall.c.page:325(note/p)
+#: C/photo-wall.c.page:368(note/p)
 msgid ""
-"The <code>user_data</code> is what one uses to pass data into the the "
-"function. A pointer to any data type can be passed in. If you need multiple "
-"data to be passed into the callback, you can place the data into a struct "
-"and pass its address in."
+"The <code>user_data</code> is what one uses to pass data into the function. "
+"A pointer to any data type can be passed in. If you need multiple data to be "
+"passed into the callback, you can place the data into a struct and pass its "
+"address in."
 msgstr ""
 
-#: C/photo-wall.c.page:329(item/p)
+#: C/photo-wall.c.page:372(item/p)
 msgid ""
 "Line 7: We set up a static flag to track which state we are in: wall mode or "
 "focus mode. We start out in wall mode so no image has focus. Thus, we set "
 "the flag to <code>FALSE</code> initially."
 msgstr ""
 
-#: C/photo-wall.c.page:330(item/p)
-msgid ""
-"Line 9: This line of code runs a custom function, "
-"<code>foreach_set_focus_state</code>, for each element in our "
-"<code>actor_list</code>, passing it the address to the <code>is_focused</"
-"code> flag. We'll see the definition of the <code>foreach_set_focus_state</"
-"code> function in the next section."
-msgstr ""
-
-#: C/photo-wall.c.page:331(item/p)
-msgid ""
-"Lines 13‒19: Reaching this code means that one image currently has focus and "
-"we want to return to wall mode. The <code>clutter_actor_animate</code> "
-"function is used to animate a <code>ClutterActor</code>'s property or "
-"properties from the current state(s) to the specified state(s). The "
-"arguments are as follows:"
-msgstr ""
-
-#: C/photo-wall.c.page:333(item/p)
-msgid "The address of the <code>ClutterActor</code> to animate"
-msgstr "O enderezo do <code>ClutterActor</code> a animar"
-
-#: C/photo-wall.c.page:334(item/p)
-msgid ""
-"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
-"we have a constant speed for animation."
-msgstr ""
-
-#: C/photo-wall.c.page:335(item/p)
+#: C/photo-wall.c.page:373(item/p)
 msgid ""
-"The duration of the animation in milliseconds. I've chosen 500 ms for this "
-"example."
+"Line 12‒14: These set the image actors to receive events if they are focused."
 msgstr ""
 
-#: C/photo-wall.c.page:336(item/p)
+#: C/photo-wall.c.page:374(item/p)
 msgid ""
-"The remaining arguments are property/value pairs. Here we want to set the "
-"<code>x</code> value to the starting <code>x</code> value this "
-"<code>ClutterActor</code> was at before being brought into focus."
+"Line 16‒17: Here we set the animation duration and save the current state."
 msgstr ""
 
-#: C/photo-wall.c.page:337(item/p)
+#: C/photo-wall.c.page:375(item/p)
 msgid ""
-"The last argument must always be <code>NULL</code> to indicate that there "
-"are no more properties to be set."
+"Lines 21‒23: Reaching this code means that one image currently has focus and "
+"we want to return to wall mode. Setting a position on a <code>ClutterActor</"
+"code> begins an animation with the duration that we set in line 17."
 msgstr ""
 
-#: C/photo-wall.c.page:339(note/p)
-msgid ""
-"The <code>depth</code> property needs a little more explaining. We need to "
-"raise the focused image so that it doesn't slide behind other "
-"<code>ClutterActor</code>s. In this section we are returning it to the same "
-"depth as the others on the wall."
-msgstr ""
-
-#: C/photo-wall.c.page:340(note/p)
-msgid ""
-"Depth also determines which <code>ClutterActor</code>s receive events. A "
-"<code>ClutterActor</code> with a higher depth value receives the click "
-"events and can choose whether the event gets sent to <code>ClutterActor</"
-"code>s under it. We'll see how that works in a few steps."
-msgstr ""
-
-#: C/photo-wall.c.page:342(item/p)
+#: C/photo-wall.c.page:377(item/p)
 msgid ""
 "Line 24: Reaching this line of code means we are currently in the wall state "
 "and are about to give a <code>ClutterActor</code> focus. Here we save the "
 "starting position so that we can return to it later."
 msgstr ""
 
-#: C/photo-wall.c.page:343(item/p)
+#: C/photo-wall.c.page:378(item/p)
 msgid ""
 "Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
 "property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
@@ -21677,19 +22281,26 @@ msgid ""
 "position."
 msgstr ""
 
-#: C/photo-wall.c.page:344(item/p)
+#: C/photo-wall.c.page:379(item/p)
 msgid ""
-"Lines 27‒33: This is similar to the above block of code. Notice that we are "
-"setting the the depth to raise it above the other images."
+"Lines 27‒36: This is where we save the current position of the image, set it "
+"to receive events and then make it appear above the other images and start "
+"animating it to fill the stage."
 msgstr ""
 
-#: C/photo-wall.c.page:345(item/p)
+#: C/photo-wall.c.page:380(item/p)
 msgid ""
-"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
+"Line 39: Here we restore the easing state to what was set before we changed "
+"it in line 16."
+msgstr ""
+
+#: C/photo-wall.c.page:381(item/p)
+msgid ""
+"Line 42: Here we toggle the <code>is_focused</code> flag to the current "
 "state."
 msgstr ""
 
-#: C/photo-wall.c.page:346(item/p)
+#: C/photo-wall.c.page:382(item/p)
 msgid ""
 "As mentioned previously, the <code>ClutterActor</code>s with higher "
 "<code>depth</code> values receive events but can allow <code>ClutterActor</"
@@ -21698,48 +22309,13 @@ msgid ""
 "events down."
 msgstr ""
 
-#: C/photo-wall.c.page:348(note/p)
+#: C/photo-wall.c.page:384(note/p)
 msgid ""
 "Remember, however, that to receive events the <code>ClutterActor</code>s "
 "must be set <code>reactive</code>."
 msgstr ""
 
-#: C/photo-wall.c.page:352(section/p)
-msgid ""
-"The following is the convenience function passed to <code>g_slist_foreach</"
-"code>."
-msgstr ""
-
-#: C/photo-wall.c.page:355(section/code)
-#, no-wrap
-msgid ""
-"\n"
-"static void\n"
-"foreach_set_focus_state(gpointer data, gpointer user_data)\n"
-"{\n"
-"    ClutterActor *actor = CLUTTER_ACTOR(data);\n"
-"    gboolean is_reactive = *((gboolean*)user_data);\n"
-"\n"
-"    clutter_actor_set_reactive(actor, is_reactive);\n"
-"}"
-msgstr ""
-
-#: C/photo-wall.c.page:365(item/p)
-msgid ""
-"Lines 2‒5: The signature of this function requires two <code>gpointer</"
-"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
-"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
-"that we've passed in the previous section. We want to cast these and store "
-"them for easy use."
-msgstr ""
-
-#: C/photo-wall.c.page:366(item/p)
-msgid ""
-"Line 7: Depending on which boolean value is passed in, the "
-"<code>ClutterActor</code> will be set to respond to events or not."
-msgstr ""
-
-#: C/photo-wall.c.page:372(section/p)
+#: C/photo-wall.c.page:392(section/p)
 msgid ""
 "All of the code should now be ready to go. All you need now is some pictures "
 "to load. By default, the pictures are loaded from a <file>berlin_images</"
@@ -21761,7 +22337,7 @@ msgstr ""
 "<file>mural-fotos</file>. Asegúrese de poñer cando menos doce imaxes no "
 "cartafol."
 
-#: C/photo-wall.c.page:374(section/p)
+#: C/photo-wall.c.page:394(section/p)
 msgid ""
 "When you have done that, click <guiseq><gui>Build</gui><gui>Build Project</"
 "gui></guiseq> to build everything again, then <guiseq><gui>Run</"
@@ -21772,7 +22348,7 @@ msgstr ""
 "<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq> para iniciar o "
 "aplicativo."
 
-#: C/photo-wall.c.page:375(section/p)
+#: C/photo-wall.c.page:395(section/p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/photo-wall</file> "
 "application in the dialog that appears. Finally, hit <gui>Run</gui> and "
@@ -21782,7 +22358,7 @@ msgstr ""
 "file> no diálogo que aparece. Finalmente, prema <gui>Executar</gui> e "
 "desfrute!"
 
-#: C/photo-wall.c.page:380(section/p)
+#: C/photo-wall.c.page:400(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"photo-wall/photo-wall.c\">reference code</link>."
@@ -21823,7 +22399,7 @@ msgid "A widget which indicates progress visually"
 msgstr ""
 
 #: C/progressbar.c.page:21(page/title) C/progressbar.js.page:19(page/title)
-#: C/progressbar.py.page:20(page/title) C/progressbar.vala.page:20(page/title)
+#: C/progressbar.py.page:21(page/title) C/progressbar.vala.page:20(page/title)
 msgid "ProgressBar"
 msgstr "ProgressBar"
 
@@ -21922,7 +22498,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/progressbar.js.page:20(media) C/progressbar.py.page:21(media)
+#: C/progressbar.js.page:20(media) C/progressbar.py.page:22(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
@@ -21942,11 +22518,11 @@ msgstr "ProgressBar (JavaScript)"
 msgid "A bar which animates to indicate progress"
 msgstr ""
 
-#: C/progressbar.js.page:24(div/p) C/progressbar.py.page:25(div/p)
+#: C/progressbar.js.page:24(div/p) C/progressbar.py.page:26(div/p)
 msgid "Pressing any key stops and starts this ProgressBar."
 msgstr ""
 
-#: C/progressbar.js.page:31(page/p) C/progressbar.py.page:32(page/p)
+#: C/progressbar.js.page:31(page/p) C/progressbar.py.page:33(page/p)
 msgid "This ProgressBar is stopped and started by pressing any key."
 msgstr ""
 
@@ -22055,11 +22631,11 @@ msgctxt "text"
 msgid "ProgressBar (Python)"
 msgstr "ProgressBar (Python)"
 
-#: C/progressbar.py.page:17(info/desc)
+#: C/progressbar.py.page:18(info/desc)
 msgid "A widget which indicates progress visually."
 msgstr ""
 
-#: C/progressbar.py.page:39(section/code)
+#: C/progressbar.py.page:40(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import GLib\n"
@@ -22120,11 +22696,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/progressbar.py.page:44(section/title)
+#: C/progressbar.py.page:45(section/title)
 msgid "Useful methods for a ProgressBar widget"
 msgstr ""
 
-#: C/progressbar.py.page:46(item/p)
+#: C/progressbar.py.page:47(item/p)
 msgid ""
 "Instead of <code>pulse()</code>, that makes the bar go back and forth, if we "
 "want the ProgressBar to \"fill in\" a fraction (a <code>float</code> between "
@@ -22132,27 +22708,27 @@ msgid ""
 "completed, use <code>set_fraction(fraction)</code>."
 msgstr ""
 
-#: C/progressbar.py.page:47(item/p)
+#: C/progressbar.py.page:48(item/p)
 msgid ""
 "To set a text and show it (superimposed over the bar) use <code>set_text"
-"(\"some text\")</code> and <code>set_show_text(True)</code>. If a text is "
-"not set and <code>set_show_text(True)</code> the text will be the percentage "
-"of the work that has been completed."
+"(<var>\"text\"</var>)</code> and <code>set_show_text(True)</code>. If a text "
+"is not set and <code>set_show_text(True)</code> the text will be the "
+"percentage of the work that has been completed."
 msgstr ""
 
-#: C/progressbar.py.page:55(item/p)
+#: C/progressbar.py.page:56(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkProgressBar.html";
 "\">GtkProgressBar</link>"
 msgstr ""
 
-#: C/progressbar.py.page:56(item/p)
+#: C/progressbar.py.page:57(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.";
 "html\">GLib - The Main Event Loop</link>"
 msgstr ""
 
-#: C/progressbar.py.page:57(item/p)
+#: C/progressbar.py.page:58(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling";
 "\">Gdk - Key Values</link>"
@@ -22237,26 +22813,26 @@ msgctxt "text"
 msgid "Properties (Python)"
 msgstr "ProgressBar (Python)"
 
-#: C/properties.py.page:12(info/desc)
+#: C/properties.py.page:13(info/desc)
 msgid "An explanation of properties, getters and setters."
 msgstr ""
 
-#: C/properties.py.page:25(page/title)
+#: C/properties.py.page:26(page/title)
 msgid "Properties"
 msgstr ""
 
-#: C/properties.py.page:32(section/p)
+#: C/properties.py.page:33(section/p)
 msgid ""
 "<em>Properties</em> describe the configuration and state of widgets, and "
 "each widget has its own particular set of properties. For example, a widget "
-"such as a button or a label has the property \"label\" which contains the "
-"text of the widget. You can specify the name and value of any number of "
-"properties as keyword arguments when creating an instance of a widget: for "
-"example, to create a label aligned to the right with the text “Hello World” "
-"and an angle of 25 degrees, you can use:"
+"such as a button or a label has the property <code>label</code> which "
+"contains the text of the widget. You can specify the name and value of any "
+"number of properties as keyword arguments when creating an instance of a "
+"widget: for example, to create a label with the text “Hello World”, an angle "
+"of 25 degrees, and aligned to the right, you can use:"
 msgstr ""
 
-#: C/properties.py.page:33(section/code)
+#: C/properties.py.page:34(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -22265,11 +22841,13 @@ msgstr ""
 "\n"
 "label = Gtk.Label(label=\"Hola mundo\", angle=25, halign=Gtk.Align.END)"
 
-#: C/properties.py.page:36(section/p)
-msgid "This is equivalent to:"
+#: C/properties.py.page:37(section/p)
+#, fuzzy
+#| msgid "This is equivalent to:"
+msgid "which is equivalent to using:"
 msgstr "Isto é equivalente a:"
 
-#: C/properties.py.page:37(section/code)
+#: C/properties.py.page:38(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -22284,23 +22862,24 @@ msgstr ""
 "label.set_angle(25)\n"
 "label.set_halign(Gtk.Align.END)"
 
-#: C/properties.py.page:43(section/p)
+#: C/properties.py.page:44(section/p)
 msgid ""
-"Once you have created such a label, you can get the text with the getter "
-"<code>label.get_label()</code>."
+"Once you have created such a label, you can get the text of the label with "
+"<code>label.get_label()</code>, and analogously for the other properties."
 msgstr ""
 
-#: C/properties.py.page:45(section/p)
+#: C/properties.py.page:46(section/p)
 msgid ""
 "Instead of using getters and setters you can also get and set the properties "
-"with <code>get_property(\"prop-name\")</code> and <code>set_property(\"prop-"
-"name\", value)</code>, respectively."
+"with <code>get_property(<var>\"prop-name\"</var>)</code> and "
+"<code>set_property(<var>\"prop-name\"</var>, <var>value</var>)</code>, "
+"respectively."
 msgstr ""
 
-#: C/properties.py.page:51(section/p)
+#: C/properties.py.page:52(section/p)
 msgid ""
 "<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">Basics - Properties</link> in Python Gtk+ 3 Tutorial"
+"html\">Basics - Properties</link> in Python GTK+ 3 Tutorial"
 msgstr ""
 
 #: C/py.page:6(info/title)
@@ -22310,10 +22889,14 @@ msgctxt "link"
 msgid "Python"
 msgstr "Python"
 
-#: C/py.page:15(page/title)
+#: C/py.page:20(page/title)
 msgid "Tutorials, code samples and platform demos in Python"
 msgstr ""
 
+#: C/py.page:25(section/title) C/tutorial.py.page:30(page/title)
+msgid "Tutorial for beginners"
+msgstr ""
+
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
@@ -22328,7 +22911,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/radiobutton.c.page:24(media) C/radiobutton.py.page:25(media)
+#: C/radiobutton.c.page:24(media) C/radiobutton.py.page:23(media)
 #: C/radiobutton.vala.page:24(media)
 #, fuzzy
 #| msgid ""
@@ -22350,7 +22933,7 @@ msgid "A choice from multiple checkbuttons"
 msgstr ""
 
 #: C/radiobutton.c.page:22(page/title) C/radiobutton.js.page:20(page/title)
-#: C/radiobutton.py.page:24(page/title) C/radiobutton.vala.page:23(page/title)
+#: C/radiobutton.py.page:22(page/title) C/radiobutton.vala.page:23(page/title)
 msgid "RadioButton"
 msgstr "RadioButton"
 
@@ -23111,16 +23694,16 @@ msgctxt "text"
 msgid "RadioButton (Python)"
 msgstr "RadioButton (Python)"
 
-#: C/radiobutton.py.page:21(info/desc)
+#: C/radiobutton.py.page:19(info/desc)
 msgid "Mutually exclusive buttons."
 msgstr "Botóns mutuamente exclusivos."
 
-#: C/radiobutton.py.page:26(page/p)
+#: C/radiobutton.py.page:24(page/p)
 msgid ""
 "Three RadioButtons. You can see in the terminal if they are turned off or on."
 msgstr ""
 
-#: C/radiobutton.py.page:32(section/code)
+#: C/radiobutton.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -23195,17 +23778,26 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/radiobutton.py.page:36(section/title)
+#: C/radiobutton.py.page:34(section/title)
 msgid "Useful methods for a RadioButton widget"
 msgstr "Métodos útiles para o widget RadioButton"
 
-#: C/radiobutton.py.page:39(section/p)
+#: C/radiobutton.py.page:35(section/p)
 msgid ""
-"Instead of <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> we "
-"could create the button and label it with"
+"In line 16 the signal <code>\"toggled\"</code> is connected to the callback "
+"function <code>toggled_cb()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
 msgstr ""
 
-#: C/radiobutton.py.page:40(section/code)
+#: C/radiobutton.py.page:37(section/p)
+msgid ""
+"As seen in <link xref=\"properties.py\"/>, instead of <code>button1 = Gtk."
+"RadioButton(label=\"Button 1\")</code> we could create the button and label "
+"it with"
+msgstr ""
+
+#: C/radiobutton.py.page:38(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23213,13 +23805,7 @@ msgid ""
 "button1.set_label(\"Button 1\")."
 msgstr ""
 
-#: C/radiobutton.py.page:43(section/p)
-msgid ""
-"For a general discussion of this, see <link xref=\"properties.py\">here</"
-"link>."
-msgstr ""
-
-#: C/radiobutton.py.page:44(section/p)
+#: C/radiobutton.py.page:41(section/p)
 msgid ""
 "Yet another way to create a new RadioButton with a label is <code>button1 = "
 "Gtk.RadioButton.new_with_label(None, \"Button 1\")</code> (the first "
@@ -23227,7 +23813,7 @@ msgid ""
 "<code>get_group()</code>, the second argument is the label)."
 msgstr ""
 
-#: C/radiobutton.py.page:53(item/p)
+#: C/radiobutton.py.page:50(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -23338,7 +23924,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/record-collection.js.page:64(media)
+#: C/record-collection.js.page:69(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/record-collection.png'; "
@@ -23354,7 +23940,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Record Collection (JavaScript)"
 msgctxt "text"
-msgid "Record Collection (JavaScript)"
+msgid "Record collection (JavaScript)"
 msgstr "Colección de música (JavaScript)"
 
 #: C/record-collection.js.page:10(info/desc)
@@ -23363,19 +23949,21 @@ msgstr ""
 "Cree un pequeno aplicativo con unha base de datos para ordenar a súa "
 "colección de música"
 
-#: C/record-collection.js.page:23(page/title)
-msgid "3 Record Collection"
+#: C/record-collection.js.page:28(page/title)
+#, fuzzy
+#| msgid "3 Record Collection"
+msgid "Record collection"
 msgstr "3 Colección de gravacións"
 
-#: C/record-collection.js.page:28(item/p)
+#: C/record-collection.js.page:33(item/p)
 msgid "How to connect to a database using libgda"
 msgstr "Como conectar con unha base de datos usando libgda"
 
-#: C/record-collection.js.page:29(item/p)
+#: C/record-collection.js.page:34(item/p)
 msgid "How to insert and browse records in a database table"
 msgstr "Como insertar e examinar rexistros nunha táboa dunha base de datos"
 
-#: C/record-collection.js.page:35(section/p)
+#: C/record-collection.js.page:40(section/p)
 msgid ""
 "This demo uses the Javascript language. We are going to demonstrate how to "
 "connect and use a database from a GTK program, by using the GDA (GNOME Data "
@@ -23386,7 +23974,7 @@ msgstr ""
 "(«GNOME Data Access», Acceso a datos de GNOME). Polo tanto, é preciso ter "
 "instalada tamén esta biblioteca."
 
-#: C/record-collection.js.page:38(section/p)
+#: C/record-collection.js.page:43(section/p)
 msgid ""
 "GNOME Data Access (GDA) is library whose purpose is to provide universal "
 "access to different kinds and types of data sources. This goes from "
@@ -23403,7 +23991,7 @@ msgstr ""
 "<link href=\"http://library.gnome.org/devel/libgda/stable/\";>sitio web de "
 "GDA</link>."
 
-#: C/record-collection.js.page:41(section/p)
+#: C/record-collection.js.page:46(section/p)
 msgid ""
 "Although a big part of the code is related to user interface (GUI), we are "
 "going to focus our tutorial on the database parts (we might mention other "
@@ -23417,7 +24005,7 @@ msgstr ""
 "máis sobre os programas JavaScript en GNOME vexa o titorial <link xref="
 "\"image-viewer.js\">programa Visor de Imaxes</link>."
 
-#: C/record-collection.js.page:54(item/p)
+#: C/record-collection.js.page:59(item/p)
 msgid ""
 "Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
 "<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
@@ -23427,7 +24015,7 @@ msgstr ""
 "prema <gui>Adiante</gui> e complete os seus detalles nas seguintes páxinas. "
 "Use <file>record-collection</file> como nome do proxecto e cartafol."
 
-#: C/record-collection.js.page:57(item/p)
+#: C/record-collection.js.page:62(item/p)
 msgid ""
 "Click <gui>Finished</gui> and the project will be created for you. Open "
 "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
@@ -23437,11 +24025,11 @@ msgstr ""
 "file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. Contén "
 "código de exemplo moi básico."
 
-#: C/record-collection.js.page:63(section/title)
+#: C/record-collection.js.page:68(section/title)
 msgid "Program Structure"
 msgstr "Estrutura do programa"
 
-#: C/record-collection.js.page:65(section/p)
+#: C/record-collection.js.page:70(section/p)
 msgid ""
 "This demo is a simple GTK application (with a single window) capable of "
 "inserting records into a database table as well as browsing all records of "
@@ -23460,15 +24048,15 @@ msgstr ""
 "actualízanse cada vez que se insire un novo rexistro e ao iniciar o "
 "aplicativo."
 
-#: C/record-collection.js.page:70(section/title)
+#: C/record-collection.js.page:75(section/title)
 msgid "Starting the fun"
 msgstr "Comezar a diversión"
 
-#: C/record-collection.js.page:71(section/p)
+#: C/record-collection.js.page:76(section/p)
 msgid "Let's start by examining the skeleton of the program:"
 msgstr "Comezar examinando o esqueleto do programa:"
 
-#: C/record-collection.js.page:72(section/code)
+#: C/record-collection.js.page:77(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23497,7 +24085,7 @@ msgid ""
 "Gtk.main ();"
 msgstr ""
 
-#: C/record-collection.js.page:97(item/p)
+#: C/record-collection.js.page:102(item/p)
 msgid ""
 "Lines 1‒4: Initial imports. Pay special attention to line 3, which tells "
 "Javascript to import the GDA library, our focus in this tutorial."
@@ -23506,7 +24094,7 @@ msgstr ""
 "indica que JavaScript importe a a biblioteca GDA, noso obxectivo neste "
 "titorial."
 
-#: C/record-collection.js.page:98(item/p)
+#: C/record-collection.js.page:103(item/p)
 msgid ""
 "Lines 6‒17: Define our <code>Demo</code> class. Pay special attention to "
 "lines 13‒15, where we call 3 methods which will do the whole job. They will "
@@ -23516,15 +24104,15 @@ msgstr ""
 "liñas 13-15, onde chamamos a 3 métodos que farán o traballo. Falaremos deles "
 "máis adiante."
 
-#: C/record-collection.js.page:99(item/p)
+#: C/record-collection.js.page:104(item/p)
 msgid "Lines 19‒23: Start the application."
 msgstr "Liñas 19-23: Iniciar o aplicativo."
 
-#: C/record-collection.js.page:104(section/title)
+#: C/record-collection.js.page:109(section/title)
 msgid "Designing the application"
 msgstr "Deseñar o aplicativo"
 
-#: C/record-collection.js.page:105(section/p)
+#: C/record-collection.js.page:110(section/p)
 msgid ""
 "Let's take a look at the <code>setupWindow</code> method. It is responsible "
 "for creating the User Interface (UI). As UI is not our focus, we will "
@@ -23534,7 +24122,7 @@ msgstr ""
 "de crear a Interface de Usuario (UI). Xa que a UI non é o noso enfoque "
 "explicaremos só as partes máis relevantes."
 
-#: C/record-collection.js.page:106(section/code)
+#: C/record-collection.js.page:111(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23588,7 +24176,7 @@ msgid ""
 "  },"
 msgstr ""
 
-#: C/record-collection.js.page:156(item/p)
+#: C/record-collection.js.page:161(item/p)
 msgid ""
 "Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
 "will type something to get inserted in the database."
@@ -23596,7 +24184,7 @@ msgstr ""
 "Liñas 22 e 27: crear as dúas entradas (para os dous campos) nas que o "
 "usuario escribirá algo para inserilo na base de datos."
 
-#: C/record-collection.js.page:157(item/p)
+#: C/record-collection.js.page:162(item/p)
 msgid ""
 "Lines 31‒34: Create the Insert button. We connect its <code>clicked</code> "
 "signal to the <code>_insertClicked</code> private method of the class. This "
@@ -23606,7 +24194,7 @@ msgstr ""
 "code> co método privado <code>_insertClicked</code> de clase. Este método "
 "detállase a continuación"
 
-#: C/record-collection.js.page:158(item/p)
+#: C/record-collection.js.page:163(item/p)
 msgid ""
 "Line 39: Create the widget (<code>TextView</code>) where we will show the "
 "contents of the table."
@@ -23614,7 +24202,7 @@ msgstr ""
 "Liña 39: Crear o widget (<code>TextView</code>) onde se mostrarán os "
 "contidos da táboa."
 
-#: C/record-collection.js.page:159(item/p)
+#: C/record-collection.js.page:164(item/p)
 msgid ""
 "Line 44: Create the label where we will show the number of records in the "
 "table. Initially it's empty, it will be updated later."
@@ -23622,11 +24210,11 @@ msgstr ""
 "Liña 44: crea a etiqueta onde se mostrará o número de rexistros existentes "
 "na táboa. Inicialmente está baleiro, actualizarase máis tarde."
 
-#: C/record-collection.js.page:164(section/title)
+#: C/record-collection.js.page:169(section/title)
 msgid "Connecting to and initializing the database"
 msgstr "Conectar e inicializar a base de datos"
 
-#: C/record-collection.js.page:165(section/p)
+#: C/record-collection.js.page:170(section/p)
 msgid ""
 "The code which makes the connection to the database is in the "
 "<code>setupDatabase</code> method below:"
@@ -23634,7 +24222,7 @@ msgstr ""
 "O código que fai a conexión coa base de datos está no método "
 "<code>setupDatabase</code> de embaixo:"
 
-#: C/record-collection.js.page:168(section/code)
+#: C/record-collection.js.page:173(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23651,7 +24239,7 @@ msgid ""
 "  },"
 msgstr ""
 
-#: C/record-collection.js.page:182(item/p)
+#: C/record-collection.js.page:187(item/p)
 msgid ""
 "Lines 2‒3: Create the GDA's <code>Connection</code> object. We must supply "
 "to its constructor some properties:"
@@ -23659,7 +24247,7 @@ msgstr ""
 "Liña 2-3: crear o obxecto de GDA <code>Conection</code>. Debe fornecerlle ao "
 "seu construtor algunhas propiedades:"
 
-#: C/record-collection.js.page:185(item/p)
+#: C/record-collection.js.page:190(item/p)
 msgid ""
 "<code>provider</code>: One of GDA's supported providers. GDA supports "
 "SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
@@ -23672,7 +24260,7 @@ msgstr ""
 "instalada por omisión na maioría das distribucións e é moi sinxela de usar "
 "(usa un só ficheiro por base de datos)."
 
-#: C/record-collection.js.page:188(item/p)
+#: C/record-collection.js.page:193(item/p)
 msgid ""
 "<code>cnc_string</code>: The connection string. It may change from provider "
 "to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
@@ -23686,7 +24274,7 @@ msgstr ""
 "base de datos chamada gnome_demo no cartafol persoal do usuario (olle a "
 "chamada á función de GLib <code>get_home_dir</code>)."
 
-#: C/record-collection.js.page:192(note/p)
+#: C/record-collection.js.page:197(note/p)
 msgid ""
 "If the provider is not supported by GDA, or if the connection string is "
 "missing some element, line 2 will raise an exception. So, in real life we "
@@ -23698,7 +24286,7 @@ msgstr ""
 "deberíamos xestionar as declaracións JavaScript entre bloques <code>try</"
 "code>...<code>catch</code>."
 
-#: C/record-collection.js.page:196(item/p)
+#: C/record-collection.js.page:201(item/p)
 msgid ""
 "Line 4: Open the connection. In the SQLite provider, if the database does "
 "not exist, it will be created in this step."
@@ -23706,7 +24294,7 @@ msgstr ""
 "Liña 4: Abrir a conexión. No fornecedor de SQLite, se a conexión non existe "
 "crearase neste paso."
 
-#: C/record-collection.js.page:198(item/p)
+#: C/record-collection.js.page:203(item/p)
 msgid ""
 "Lines 6‒10: Try to do a simple select to check if the table exists (line 7). "
 "If it does not exist (because the database was just created), this command "
@@ -23720,7 +24308,7 @@ msgstr ""
 "<code>try</code>...<code>catch</code>. Se este é o caso executarase a "
 "declaración de creación de táboa (liña 9)."
 
-#: C/record-collection.js.page:199(item/p)
+#: C/record-collection.js.page:204(item/p)
 msgid ""
 "In order to run the SQL commands above we are using global GDA functions, "
 "<code>execute_select_command</code> and <code>execute_non_select_command</"
@@ -23732,15 +24320,15 @@ msgstr ""
 "code>. Son moi sinxelas de usar, e só requiren dous argumentos: o obxecto "
 "<code>Connection</code> e a orde SQL a analizar."
 
-#: C/record-collection.js.page:203(section/p)
+#: C/record-collection.js.page:208(section/p)
 msgid "At this point we have the database set up, and are ready to use it."
 msgstr "Neste punto temos a base de datos configurada e lista para usala."
 
-#: C/record-collection.js.page:207(section/title)
+#: C/record-collection.js.page:212(section/title)
 msgid "Selecting"
 msgstr "Seleccionar"
 
-#: C/record-collection.js.page:208(section/p)
+#: C/record-collection.js.page:213(section/p)
 msgid ""
 "After connecting to the database, our demo's constructor calls the "
 "<code>selectData</code> method. It is responsible for getting all the "
@@ -23752,7 +24340,7 @@ msgstr ""
 "rexistros na táboa e para mostrarllas no widget <code>TextView</code>. "
 "Votémoslle unha ollada:"
 
-#: C/record-collection.js.page:211(section/code)
+#: C/record-collection.js.page:216(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23774,7 +24362,7 @@ msgid ""
 "  },"
 msgstr ""
 
-#: C/record-collection.js.page:229(item/p)
+#: C/record-collection.js.page:234(item/p)
 msgid ""
 "Line 2: The <code>SELECT</code> command. We are using the global GDA's "
 "function <code>execute_select_command</code> for that. It returns a "
@@ -23784,7 +24372,7 @@ msgstr ""
 "<code>execute_select_command</code> para iso. Devólve un obxecto "
 "<code>DataModel</code>, que máis tarde empregaremos para obter as filas."
 
-#: C/record-collection.js.page:230(item/p)
+#: C/record-collection.js.page:235(item/p)
 msgid ""
 "Line 3: Create an <code>Iter</code> object, which is used to iterate over "
 "the <code>DataModel</code>'s records."
@@ -23792,7 +24380,7 @@ msgstr ""
 "Liña 3: Crea un obxecto <code>Iter</code>, que se usa para iterar sobre os "
 "rexistros de <code>DataModel</code>."
 
-#: C/record-collection.js.page:231(item/p)
+#: C/record-collection.js.page:236(item/p)
 msgid ""
 "Line 7: Loop through all the records, fetching them with the help of the "
 "<code>Iter</code> object. At this point, the <code>iter</code> variable "
@@ -23804,11 +24392,11 @@ msgstr ""
 "actualizados obtidos. O seu método <code>move_next</code> devolve "
 "<code>false</code> cando se chegue ao último rexistro."
 
-#: C/record-collection.js.page:233(item/p)
+#: C/record-collection.js.page:238(item/p)
 msgid "Lines 8‒9: We do two things in each line:"
 msgstr "Liñas 8-9: fanse dúas cousas en cada liña:"
 
-#: C/record-collection.js.page:235(item/p)
+#: C/record-collection.js.page:240(item/p)
 msgid ""
 "Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
 "only one argument: the column number to retrieve, starting at 0. As our "
@@ -23820,7 +24408,7 @@ msgstr ""
 "orde <code>SELECT</code> só devolve dúas columnas, se está recuperando as "
 "columnas 0 e 1."
 
-#: C/record-collection.js.page:236(item/p)
+#: C/record-collection.js.page:241(item/p)
 msgid ""
 "The method <code>get_value_at</code> returns the field in GLib's "
 "<code>GValue</code> format. A simple way to convert this format to a string "
@@ -23834,7 +24422,7 @@ msgstr ""
 "aquí, e almacenamos os resultados nas variábeis <code>id_field</code> e "
 "<code>name_field</code>."
 
-#: C/record-collection.js.page:239(item/p)
+#: C/record-collection.js.page:244(item/p)
 msgid ""
 "Line 11: Concatenate the two fields to make one text line, separated by "
 "<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
@@ -23843,7 +24431,7 @@ msgstr ""
 "separada por <code>\"=&gt;\"</code>, e almacenámolas na variábel <code>text</"
 "code>."
 
-#: C/record-collection.js.page:240(item/p)
+#: C/record-collection.js.page:245(item/p)
 msgid ""
 "Line 14: After the loop is finished, we have all the records formatted in "
 "the <code>text</code> variable. In this line we just set the contents of the "
@@ -23853,7 +24441,7 @@ msgstr ""
 "variábel <code>text</code>. Nesta liña estabelecemos os contidos de "
 "<code>TextView</code> con dita variábel."
 
-#: C/record-collection.js.page:241(item/p)
+#: C/record-collection.js.page:246(item/p)
 msgid ""
 "Line 15: Display the number of records in the table, making use of the "
 "<code>DataModel</code>'s <code>get_n_rows</code> method."
@@ -23861,11 +24449,11 @@ msgstr ""
 "Liña 15: mostrar o número de rexistros na táboa, usando o método "
 "<code>get_n_rows</code> de <code>DataModel</code> <code>get_n_rows</code>."
 
-#: C/record-collection.js.page:246(section/title)
+#: C/record-collection.js.page:251(section/title)
 msgid "Inserting"
 msgstr "Insertando"
 
-#: C/record-collection.js.page:247(section/p)
+#: C/record-collection.js.page:252(section/p)
 msgid ""
 "OK, we know how to connect to a database and how to select rows from a "
 "table. Now it's time to do an <code>INSERT</code> on the table. Do you "
@@ -23879,7 +24467,7 @@ msgstr ""
 "<code>clicked</code> do botón <gui>Insert</gui> ao método "
 "<code>_insertClicked</code>? Vexamos a implementación deste método."
 
-#: C/record-collection.js.page:250(section/code)
+#: C/record-collection.js.page:255(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -23902,7 +24490,7 @@ msgid ""
 "  },"
 msgstr ""
 
-#: C/record-collection.js.page:268(section/p)
+#: C/record-collection.js.page:273(section/p)
 msgid ""
 "We have learned how to use GDA's convenience functions "
 "<code>execute_select_command</code> and <code>execute_non_select_command</"
@@ -23921,7 +24509,7 @@ msgstr ""
 "conexión usado (usarase o mesmo dialecto SQL que o fornecedor usa). "
 "Estudiemos o código:"
 
-#: C/record-collection.js.page:272(item/p)
+#: C/record-collection.js.page:277(item/p)
 msgid ""
 "Lines 2‒3: Check if the user filled all the fields. The code for the private "
 "method <code>_validateFields</code> is really simple and you can read it in "
@@ -23931,7 +24519,7 @@ msgstr ""
 "método privato <code>_validateFields</code> é realmente sinxelo e pode lelo "
 "no código fonte completo da demostración."
 
-#: C/record-collection.js.page:273(item/p)
+#: C/record-collection.js.page:278(item/p)
 msgid ""
 "Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
 "as we want to show how to use the <code>SqlBuilder</code> object to build a "
@@ -23941,7 +24529,7 @@ msgstr ""
 "queremos ver como usar o obxecto <code>SqlBuilder</code> para construír unha "
 "declaración SQL portábel a través das bases de datos."
 
-#: C/record-collection.js.page:274(item/p)
+#: C/record-collection.js.page:279(item/p)
 msgid ""
 "Line 7: Create the <code>SqlBuilder</code> object. We must pass the type of "
 "statement we are going to build. It can be <code>SELECT</code>, "
@@ -23951,7 +24539,7 @@ msgstr ""
 "declaración que queremos construír. Pode ser <code>SELECT</code>, "
 "<code>UPDATE</code>, <code>INSERT</code> ou <code>DELETE</code>."
 
-#: C/record-collection.js.page:275(item/p)
+#: C/record-collection.js.page:280(item/p)
 msgid ""
 "Line 8: Set the name of the table on which the built statement will operate "
 "(it will generate <code>INSERT INTO demo</code>)"
@@ -23959,7 +24547,7 @@ msgstr ""
 "Liña 8: estabelecer o nome da base de datos na que operará a sentencia "
 "construída (xerará <code>INSERT INTO demo</code>)"
 
-#: C/record-collection.js.page:276(item/p)
+#: C/record-collection.js.page:281(item/p)
 msgid ""
 "Lines 9‒10: Set the fields and its values that will be part of the "
 "statement. The first argument is the field name (as in the table). The "
@@ -23969,7 +24557,7 @@ msgstr ""
 "valores. O primeiro campo é o nome do campo (como aparece na táboa). O "
 "segundo é o valor deste campo."
 
-#: C/record-collection.js.page:277(item/p)
+#: C/record-collection.js.page:282(item/p)
 msgid ""
 "Line 11: Get the dynamically generated <code>Statement</code> object, which "
 "represents a SQL statement."
@@ -23977,11 +24565,11 @@ msgstr ""
 "Liña 11: obter o obxecto <code>Statement</code> xerado dinamicamente, que "
 "representa unha sentenza SQL."
 
-#: C/record-collection.js.page:278(item/p)
+#: C/record-collection.js.page:283(item/p)
 msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
 msgstr "Liña 12: finalmente, executar a sentenza SQL (<code>INSERT</code>)."
 
-#: C/record-collection.js.page:279(item/p)
+#: C/record-collection.js.page:284(item/p)
 msgid ""
 "Line 14: Clear the id and name fields on the screen. The code for the "
 "private method <code>_clearFields</code> is really simple and you can read "
@@ -23991,13 +24579,13 @@ msgstr ""
 "<code>_clearFields</code> é moi sinxelo e pode lelo no código fonte completo "
 "da demostración."
 
-#: C/record-collection.js.page:280(item/p)
+#: C/record-collection.js.page:285(item/p)
 msgid ""
 "Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
 msgstr ""
 "Liña 15: actualizar a vista na pantalla facendo outro <code>SELECT</code>."
 
-#: C/record-collection.js.page:282(note/p)
+#: C/record-collection.js.page:287(note/p)
 msgid ""
 "You can also make use of parameters while building the statement. By using "
 "the <code>SqlBuilder</code> objects and parameters you are less subject to "
@@ -24011,7 +24599,7 @@ msgstr ""
 "consulte a <link href=\"http://library.gnome.org/devel/libgda/stable/";
 "\">documentación de GDA</link>."
 
-#: C/record-collection.js.page:287(section/p)
+#: C/record-collection.js.page:292(section/p)
 msgid ""
 "All of the code you need should now be in place, so try running the code. "
 "You now have a database for your record collection!"
@@ -24019,7 +24607,7 @@ msgstr ""
 "Todo o código que precisa agora está no seu lugar, polo que tente executar o "
 "código. Agora ten unha base de datos para a súa colección de rexistros!"
 
-#: C/record-collection.js.page:292(section/p)
+#: C/record-collection.js.page:297(section/p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"record-collection/record-collection.js\">reference code</link>."
@@ -24045,17 +24633,17 @@ msgctxt "text"
 msgid "Scale (C)"
 msgstr "Scale (Vala)"
 
-#: C/scale.c.page:19(info/desc) C/scale.py.page:18(info/desc)
+#: C/scale.c.page:19(info/desc) C/scale.py.page:19(info/desc)
 #: C/scale.vala.page:19(info/desc)
 msgid "A slider widget for selecting a value from a range"
 msgstr "Un widget de desprazamento para seleccionar un valor dun rango"
 
 #: C/scale.c.page:22(page/title) C/scale.js.page:20(page/title)
-#: C/scale.py.page:21(page/title) C/scale.vala.page:22(page/title)
+#: C/scale.py.page:22(page/title) C/scale.vala.page:22(page/title)
 msgid "Scale"
 msgstr "Escala"
 
-#: C/scale.c.page:25(page/p) C/scale.py.page:23(page/p)
+#: C/scale.c.page:25(page/p) C/scale.py.page:24(page/p)
 #: C/scale.vala.page:24(page/p)
 msgid "Slide the scales!"
 msgstr "Desprazar as escalas!"
@@ -24737,7 +25325,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/scale.py.page:22(media) C/scale.vala.page:23(media)
+#: C/scale.py.page:23(media) C/scale.vala.page:23(media)
 #, fuzzy
 #| msgid "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
 msgctxt "_"
@@ -24751,7 +25339,7 @@ msgctxt "text"
 msgid "Scale (Python)"
 msgstr "Scale (Python)"
 
-#: C/scale.py.page:29(section/code)
+#: C/scale.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -24827,17 +25415,10 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/scale.py.page:33(section/title)
+#: C/scale.py.page:34(section/title)
 msgid "Useful methods for a Scale widget"
 msgstr "Métodos útiles para o widget Scale"
 
-#: C/scale.py.page:34(section/p)
-msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
-"changed\"</code> signal, emitted when the value of the scale changes."
-msgstr ""
-
 #: C/scale.py.page:35(section/p)
 msgid ""
 "A Gtk.Adjustment is needed to construct the Gtk.Scale. This is the "
@@ -24851,7 +25432,15 @@ msgid ""
 "be set to <code>0</code>."
 msgstr ""
 
-#: C/scale.py.page:37(item/p)
+#: C/scale.py.page:36(section/p)
+msgid ""
+"In line 28 the signal <code>\"value-changed\"</code> is connected to the "
+"callback function <code>scale_moved()</code> using <code><var>widget</var>."
+"connect(<var>signal</var>, <var>callback function</var>)</code>. See <link "
+"xref=\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/scale.py.page:38(item/p)
 msgid ""
 "<code>get_value()</code> retrieves the current value of the scale; "
 "<code>set_value(value)</code> sets it (if the <code>value</code>, of type "
@@ -24859,18 +25448,18 @@ msgid ""
 "clamped to fit inside them). These are methods of the class Gtk.Range."
 msgstr ""
 
-#: C/scale.py.page:38(item/p)
+#: C/scale.py.page:39(item/p)
 msgid ""
 "Use <code>set_draw_value(False)</code> to avoid displaying the current value "
 "as a string next to the slider."
 msgstr ""
 
-#: C/scale.py.page:39(item/p)
+#: C/scale.py.page:40(item/p)
 msgid ""
 "To highlight the part of the scale between the origin and the current value:"
 msgstr ""
 
-#: C/scale.py.page:40(item/code)
+#: C/scale.py.page:41(item/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -24879,14 +25468,14 @@ msgid ""
 "self.h_scale.set_show_fill_level(True)"
 msgstr ""
 
-#: C/scale.py.page:44(item/p)
+#: C/scale.py.page:45(item/p)
 msgid ""
 "in the callback function of the \"value-changed\" signal, so to have the new "
 "filling every time the value is changed. These are methods of the class Gtk."
 "Range."
 msgstr ""
 
-#: C/scale.py.page:46(item/p)
+#: C/scale.py.page:47(item/p)
 msgid ""
 "<code>add_mark(value, position, markup)</code> adds a mark at the "
 "<code>value</code> (<code>float</code> or <code>int</code> if that is the "
@@ -24896,13 +25485,13 @@ msgid ""
 "Markup Language. To clear marks, <code>clear_marks()</code>."
 msgstr ""
 
-#: C/scale.py.page:47(item/p)
+#: C/scale.py.page:48(item/p)
 msgid ""
 "<code>set_digits(digits)</code> sets the precision of the scale at "
 "<code>digits</code> digits."
 msgstr ""
 
-#: C/scale.py.page:55(item/p)
+#: C/scale.py.page:56(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -24914,7 +25503,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/scale.py.page:56(item/p) C/spinbutton.py.page:48(item/p)
+#: C/scale.py.page:57(item/p) C/spinbutton.py.page:49(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -24926,7 +25515,7 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/scale.py.page:57(item/p) C/scrolledwindow.py.page:44(item/p)
+#: C/scale.py.page:58(item/p) C/scrolledwindow.py.page:45(item/p)
 #: C/textview.py.page:99(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Standard-";
@@ -25054,7 +25643,13 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/scrolledwindow.py.page:21(media) C/scrolledwindow.vala.page:22(media)
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/scrolledwindow.c.page:24(media) C/scrolledwindow.py.page:22(media)
+#: C/scrolledwindow.vala.page:22(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
@@ -25065,28 +25660,113 @@ msgid ""
 msgstr ""
 "@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
 
-#: C/scrolledwindow.py.page:7(info/title)
+#: C/scrolledwindow.c.page:7(info/title)
 #, fuzzy
-#| msgid "ScrolledWindow (Python)"
+#| msgid "ScrolledWindow"
 msgctxt "text"
-msgid "ScrolledWindow (Python)"
-msgstr "ScrolledWindow (Python)"
+msgid "ScrolledWindow (C)"
+msgstr "ScrolledWindow"
 
-#: C/scrolledwindow.py.page:17(info/desc)
+#: C/scrolledwindow.c.page:19(info/desc)
+#: C/scrolledwindow.py.page:18(info/desc)
 #: C/scrolledwindow.vala.page:18(info/desc)
 msgid "Adds scrollbars to its child widget"
 msgstr "Engade barras de desprazamento no seu widget fillo"
 
-#: C/scrolledwindow.py.page:20(page/title)
+#: C/scrolledwindow.c.page:22(page/title)
+#: C/scrolledwindow.py.page:21(page/title)
 #: C/scrolledwindow.vala.page:21(page/title)
 msgid "ScrolledWindow"
 msgstr "ScrolledWindow"
 
-#: C/scrolledwindow.py.page:22(page/p) C/scrolledwindow.vala.page:23(page/p)
+#: C/scrolledwindow.c.page:25(page/p) C/scrolledwindow.py.page:23(page/p)
+#: C/scrolledwindow.vala.page:23(page/p)
 msgid "An image in a scrolled window."
 msgstr "Unha imaxe dunha xanela con desprazamento."
 
-#: C/scrolledwindow.py.page:28(section/code)
+#: C/scrolledwindow.c.page:27(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *scrolled_window;\n"
+"  GtkWidget *image;\n"
+"\n"
+"  /* Create a window with a title, and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"ScrolledWindow Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 220, 200);\n"
+"\n"
+"  /* Create the scrolled window. Usually NULL is passed for both parameters so\n"
+"   * that it creates the horizontal/vertical adjustments automatically. Setting\n"
+"   * the scrollbar policy to automatic allows the scrollbars to only show up\n"
+"   * when needed.\n"
+"   */\n"
+"  scrolled_window = gtk_scrolled_window_new (NULL, NULL);\n"
+"  /* Set the border width */\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);\n"
+"  /* Extract our desired image from a file that we have */\n"
+"  image = gtk_image_new_from_file (\"gnome-image.png\");\n"
+"  /* And add it to the scrolled window */\n"
+"  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), image);\n"
+"  /* Set the policy of the horizontal and vertical scrollbars to automatic.\n"
+"   * What this means is that the scrollbars are only present if needed.\n"
+"   */\n"
+"  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),\n"
+"                                  GTK_POLICY_AUTOMATIC,\n"
+"                                  GTK_POLICY_AUTOMATIC);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), scrolled_window);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+
+#: C/scrolledwindow.c.page:36(item/p)
+#, fuzzy
+#| msgid ""
+#| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
+#| "\">Gtk.Window</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk/stable/gtk-Standard-Enumerations.";
+"html#GtkPolicyType\">GtkPolicyType</link>"
+msgstr ""
+"O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
+"Window</link>"
+
+#: C/scrolledwindow.py.page:7(info/title)
+#, fuzzy
+#| msgid "ScrolledWindow (Python)"
+msgctxt "text"
+msgid "ScrolledWindow (Python)"
+msgstr "ScrolledWindow (Python)"
+
+#: C/scrolledwindow.py.page:29(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -25129,11 +25809,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/scrolledwindow.py.page:31(section/title)
+#: C/scrolledwindow.py.page:32(section/title)
 msgid "Useful methods for a ScrolledWindow widget"
 msgstr "Métodos útiles para o widget ScrollWindow"
 
-#: C/scrolledwindow.py.page:33(item/p)
+#: C/scrolledwindow.py.page:34(item/p)
 msgid ""
 "<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> where each of "
 "the arguments is one of <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
@@ -25142,13 +25822,13 @@ msgid ""
 "<code>ALWAYS</code> and <code>NEVER</code> are self-explanatory."
 msgstr ""
 
-#: C/scrolledwindow.py.page:34(item/p)
+#: C/scrolledwindow.py.page:35(item/p)
 msgid ""
 "<code>add_with_viewport(widget)</code> is used to add the Gtk.Widget "
 "<code>widget</code> without native scrolling capabilities inside the window."
 msgstr ""
 
-#: C/scrolledwindow.py.page:35(item/p)
+#: C/scrolledwindow.py.page:36(item/p)
 msgid ""
 "<code>set_placement(window_placement)</code> sets the placement of the "
 "contents with respect to the scrollbars for the scrolled window. The options "
@@ -25158,7 +25838,7 @@ msgid ""
 "BOTTOM_RIGHT</code>."
 msgstr ""
 
-#: C/scrolledwindow.py.page:36(item/p)
+#: C/scrolledwindow.py.page:37(item/p)
 msgid ""
 "<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
 "(adjustment)</code> set the Gtk.Adjustment <code>adjustment</code>. This is "
@@ -25170,7 +25850,7 @@ msgid ""
 "<code>0</code>.)"
 msgstr ""
 
-#: C/scrolledwindow.py.page:43(item/p) C/textview.py.page:98(item/p)
+#: C/scrolledwindow.py.page:44(item/p) C/textview.py.page:98(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -25245,7 +25925,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/separator.py.page:23(media)
+#: C/separator.py.page:24(media)
 #, fuzzy
 #| msgid "@@image: 'media/separator.png'; md5=8769b27662ce5c77f99e9ce33751a21a"
 msgctxt "_"
@@ -25260,19 +25940,19 @@ msgctxt "text"
 msgid "Seperator (Python)"
 msgstr "Separador (Python)"
 
-#: C/separator.py.page:18(info/desc)
+#: C/separator.py.page:19(info/desc)
 msgid "A separator widget"
 msgstr "Un widgets de separación"
 
-#: C/separator.py.page:21(page/title)
+#: C/separator.py.page:22(page/title)
 msgid "Separator"
 msgstr "Separador"
 
-#: C/separator.py.page:24(page/p)
+#: C/separator.py.page:25(page/p)
 msgid "A horizontal and a vertical separator divide some labels."
 msgstr "Un separador horizontal ou vertical para dividir algunhas etiquetas."
 
-#: C/separator.py.page:30(section/code)
+#: C/separator.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -25321,11 +26001,11 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/separator.py.page:34(section/title)
+#: C/separator.py.page:35(section/title)
 msgid "API Reference"
 msgstr "Referencia da API"
 
-#: C/separator.py.page:38(item/p)
+#: C/separator.py.page:39(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -25438,15 +26118,15 @@ msgctxt "text"
 msgid "Signals and callbacks (Python)"
 msgstr "Sinais e contrachamadas (Python)"
 
-#: C/signals-callbacks.py.page:12(info/desc)
+#: C/signals-callbacks.py.page:13(info/desc)
 msgid "An explanation of signals and callbacks in GTK+."
 msgstr "Unha explicación dos sinais e contrachamadas en GTK+"
 
-#: C/signals-callbacks.py.page:25(page/title)
+#: C/signals-callbacks.py.page:26(page/title)
 msgid "Signals and callbacks"
 msgstr "Sinais e contrachamadas"
 
-#: C/signals-callbacks.py.page:32(section/p)
+#: C/signals-callbacks.py.page:33(section/p)
 msgid ""
 "Like most GUI toolkits, GTK+ uses an event-driven programming model. When "
 "the user is doing nothing, GTK+ sits in the main loop and waits for input. "
@@ -25454,7 +26134,7 @@ msgid ""
 "\"wakes up\" and delivers an event to GTK+."
 msgstr ""
 
-#: C/signals-callbacks.py.page:34(section/p)
+#: C/signals-callbacks.py.page:35(section/p)
 msgid ""
 "When widgets receive an event, they frequently emit one or more signals. "
 "Signals notify your program that \"something interesting happened\" by "
@@ -25464,7 +26144,7 @@ msgid ""
 "the main loop and await more user input."
 msgstr ""
 
-#: C/signals-callbacks.py.page:36(section/p)
+#: C/signals-callbacks.py.page:37(section/p)
 msgid ""
 "A generic example is: <code>handler_id = widget.connect(\"event\", callback, "
 "data)</code>. <code>widget</code> is an instance of a widget we created "
@@ -25483,7 +26163,7 @@ msgid ""
 "should be passed when the signal is issued."
 msgstr ""
 
-#: C/signals-callbacks.py.page:38(section/p)
+#: C/signals-callbacks.py.page:39(section/p)
 msgid ""
 "The function returns a number (the <code>handler_id</code>) that identifies "
 "this particular signal-callback pair. This number is required to disconnect "
@@ -25492,16 +26172,16 @@ msgid ""
 "to, as in <code>widget.disconnect(handler_id)</code>."
 msgstr ""
 
-#: C/signals-callbacks.py.page:45(section/p)
+#: C/signals-callbacks.py.page:46(section/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gobject/stable/signal.html";
 "\">Signals</link> in GObject documentation"
 msgstr ""
 
-#: C/signals-callbacks.py.page:46(section/p)
+#: C/signals-callbacks.py.page:47(section/p)
 msgid ""
 "<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">Basics - Main loop and Signals</link> in Python Gtk+ 3 Tutorial"
+"html\">Basics - Main loop and Signals</link> in Python GTK+ 3 Tutorial"
 msgstr ""
 
 #. This is a reference to an external file such as an image or video. When
@@ -25518,7 +26198,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/spinbutton.c.page:25(media) C/spinbutton.py.page:22(media)
+#: C/spinbutton.c.page:25(media) C/spinbutton.py.page:23(media)
 #: C/spinbutton.vala.page:23(media)
 #, fuzzy
 #| msgid ""
@@ -25540,11 +26220,11 @@ msgid "Retrieve an integer or floating point number"
 msgstr "Obter un enteiro ou número de punto flotante"
 
 #: C/spinbutton.c.page:23(page/title) C/spinbutton.js.page:23(page/title)
-#: C/spinbutton.py.page:21(page/title) C/spinbutton.vala.page:22(page/title)
+#: C/spinbutton.py.page:22(page/title) C/spinbutton.vala.page:22(page/title)
 msgid "SpinButton"
 msgstr "SpinButton"
 
-#: C/spinbutton.c.page:26(page/p) C/spinbutton.py.page:23(page/p)
+#: C/spinbutton.c.page:26(page/p) C/spinbutton.py.page:24(page/p)
 #: C/spinbutton.vala.page:24(page/p)
 msgid "Choose a number, by entering it or by clicking on the -/+ buttons!"
 msgstr "Seleccione un número, escribíndoo ou premendo nos botóns -/+!"
@@ -26095,11 +26775,11 @@ msgctxt "text"
 msgid "SpinButton (Python)"
 msgstr "SpinButton (Python)"
 
-#: C/spinbutton.py.page:18(info/desc)
+#: C/spinbutton.py.page:19(info/desc)
 msgid "Retrieve an integer or floating-point number from the user."
 msgstr "Obtendo un enteiro ou número en punto flotante desde o usuario."
 
-#: C/spinbutton.py.page:29(section/code)
+#: C/spinbutton.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -26157,17 +26837,10 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/spinbutton.py.page:33(section/title)
+#: C/spinbutton.py.page:34(section/title)
 msgid "Useful methods for a SpinButton widget"
 msgstr "Métodos útiles para o widget SpinButton"
 
-#: C/spinbutton.py.page:34(section/p)
-msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
-"changed\"</code> signal, emitted when the value of the spinbutton changes."
-msgstr ""
-
 #: C/spinbutton.py.page:35(section/p)
 msgid ""
 "A Gtk.Adjustment is needed to construct the Gtk.SpinButton. This is the "
@@ -26181,26 +26854,34 @@ msgid ""
 "<code>0</code>."
 msgstr ""
 
-#: C/spinbutton.py.page:37(item/p)
+#: C/spinbutton.py.page:36(section/p)
+msgid ""
+"In line 23 the signal <code>\"value-changed\"</code> is connected to the "
+"callback function <code>spin_selected()</code> using <code><var>widget</var>."
+"connect(<var>signal</var>, <var>callback function</var>)</code>. See <link "
+"xref=\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/spinbutton.py.page:38(item/p)
 msgid ""
 "If you want the value of the spinbutton to wrap around when they exceed the "
 "maximum or the minimum, set <code>set_wrap(True)</code>. The <code>\"wrapped"
 "\"</code> signal is emitted when this happens."
 msgstr ""
 
-#: C/spinbutton.py.page:38(item/p)
+#: C/spinbutton.py.page:39(item/p)
 msgid ""
 "<code>set_digits(digits)</code> sets the precision to be displayed by the "
 "spinbutton, up to 20 digits."
 msgstr ""
 
-#: C/spinbutton.py.page:39(item/p)
+#: C/spinbutton.py.page:40(item/p)
 msgid ""
 "To get the value of the spinbutton as an integer, use <code>get_value_as_int"
 "()</code>."
 msgstr ""
 
-#: C/spinbutton.py.page:47(item/p)
+#: C/spinbutton.py.page:48(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -26295,7 +26976,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/spinner.c.page:23(media) C/spinner.js.page:21(media)
-#: C/spinner.py.page:21(media) C/spinner.vala.page:21(media)
+#: C/spinner.py.page:22(media) C/spinner.vala.page:21(media)
 #, fuzzy
 #| msgid "@@image: 'media/spinner.png'; md5=d04f2d81f1d72c6c2f97e8729947dfed"
 msgctxt "_"
@@ -26310,17 +26991,17 @@ msgid "Spinner (C)"
 msgstr "Spinner (C)"
 
 #: C/spinner.c.page:18(info/desc) C/spinner.js.page:17(info/desc)
-#: C/spinner.py.page:17(info/desc) C/spinner.vala.page:17(info/desc)
+#: C/spinner.py.page:18(info/desc) C/spinner.vala.page:17(info/desc)
 msgid "A spinner animation"
 msgstr "Unha animación spinner"
 
 #: C/spinner.c.page:21(page/title) C/spinner.js.page:20(page/title)
-#: C/spinner.py.page:20(page/title) C/spinner.vala.page:20(page/title)
+#: C/spinner.py.page:21(page/title) C/spinner.vala.page:20(page/title)
 msgid "Spinner"
 msgstr "Indicador de progreso"
 
 #: C/spinner.c.page:24(page/p) C/spinner.js.page:22(page/p)
-#: C/spinner.py.page:22(page/p) C/spinner.vala.page:22(page/p)
+#: C/spinner.py.page:23(page/p) C/spinner.vala.page:22(page/p)
 msgid "This Spinner is stopped and started by pressing the spacebar."
 msgstr ""
 
@@ -26559,7 +27240,7 @@ msgctxt "text"
 msgid "Spinner (Python)"
 msgstr "Spinner (Python)"
 
-#: C/spinner.py.page:29(section/code)
+#: C/spinner.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -26614,7 +27295,7 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/spinner.py.page:31(note/p)
+#: C/spinner.py.page:32(note/p)
 msgid ""
 "<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
 "<code>event.keyval</code> into a symbolic name. The names and corresponding "
@@ -26623,7 +27304,7 @@ msgid ""
 "code> becomes the string <code>\"BackSpace\"</code>."
 msgstr ""
 
-#: C/spinner.py.page:40(item/p) C/togglebutton.py.page:47(item/p)
+#: C/spinner.py.page:41(item/p) C/togglebutton.py.page:45(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -26635,7 +27316,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/spinner.py.page:41(item/p)
+#: C/spinner.py.page:42(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html";
 "\">Key Values</link>"
@@ -26760,13 +27441,13 @@ msgctxt "text"
 msgid "Statusbar (C)"
 msgstr "Barra de estado (C)"
 
-#: C/statusbar.c.page:21(info/desc) C/statusbar.py.page:20(info/desc)
+#: C/statusbar.c.page:21(info/desc) C/statusbar.py.page:19(info/desc)
 #: C/statusbar.vala.page:20(info/desc)
 msgid "Report messages of minor importance to the user"
 msgstr "Mensaxe de informe de menos importancia para o usuario"
 
 #: C/statusbar.c.page:24(page/title) C/statusbar.js.page:20(page/title)
-#: C/statusbar.py.page:23(page/title) C/statusbar.vala.page:23(page/title)
+#: C/statusbar.py.page:22(page/title) C/statusbar.vala.page:23(page/title)
 msgid "Statusbar"
 msgstr "Barra de estado"
 
@@ -27418,7 +28099,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/statusbar.py.page:24(media) C/statusbar.vala.page:24(media)
+#: C/statusbar.py.page:23(media) C/statusbar.vala.page:24(media)
 #, fuzzy
 #| msgid "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
 msgctxt "_"
@@ -27433,7 +28114,7 @@ msgctxt "text"
 msgid "Statusbar (Python)"
 msgstr "Barra de estado (Python)"
 
-#: C/statusbar.py.page:25(page/p)
+#: C/statusbar.py.page:24(page/p)
 msgid ""
 "This statusbar tells you if you click the button or if you press any key "
 "(and which key)."
@@ -27441,7 +28122,7 @@ msgstr ""
 "Esta barra de estado dille se premeu o botón ou se premeu calquera tecla (e "
 "que tecla)."
 
-#: C/statusbar.py.page:32(section/code)
+#: C/statusbar.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -27514,7 +28195,7 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/statusbar.py.page:34(note/p)
+#: C/statusbar.py.page:33(note/p)
 msgid ""
 "<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
 "<code>event.keyval</code> into a symbolic name. The names and corresponding "
@@ -27523,10 +28204,18 @@ msgid ""
 "code> becomes the string <code>\"BackSpace\"</code>."
 msgstr ""
 
-#: C/statusbar.py.page:40(section/title)
+#: C/statusbar.py.page:39(section/title)
 msgid "Useful methods for a Statusbar widget"
 msgstr "Métodos útiles para o widget Statusbar"
 
+#: C/statusbar.py.page:40(section/p)
+msgid ""
+"In line 17 the signal <code>\"clicked\"</code> is connected to the callback "
+"function <code>button_clicked_cb()</code> using <code><var>widget</var>."
+"connect(<var>signal</var>, <var>callback function</var>)</code>. See <link "
+"xref=\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
 #: C/statusbar.py.page:42(item/p)
 msgid ""
 "<code>pop(context_id)</code> removes the first message in the statusbar "
@@ -27657,64 +28346,23 @@ msgctxt "text"
 msgid "Strings (Python)"
 msgstr "Cadeas en Python 3"
 
-#: C/strings.py.page:12(info/desc)
+#: C/strings.py.page:13(info/desc)
 msgid "An explanation of how to deal with strings in Python and GTK+."
 msgstr ""
 
-#: C/strings.py.page:25(page/title)
+#: C/strings.py.page:26(page/title)
 msgid "Strings"
 msgstr ""
 
-#: C/strings.py.page:30(section/title)
-msgid "Definitions"
-msgstr "Definicións"
-
-#: C/strings.py.page:32(section/p)
-msgid ""
-"Conceptionally, a <em>string</em> is a list of <em>characters</em> such as "
-"'A', 'B', 'C' or 'È'. Characters are abstract representations and their "
-"meaning depends on the language and context they are used in. The "
-"<em>Unicode standard</em> describes how characters are represented by "
-"<em>code points</em>. For example the characters above are represented with "
-"the code points U+0041, U+0042, U+0043, and U+00C9, respectively. Basically, "
-"code points are numbers in the range from 0 to 0x10FFFF."
-msgstr ""
-
-#: C/strings.py.page:34(section/p)
-msgid ""
-"The representation of a string as a list of code points is abstract. In "
-"order to convert this abstract representation into a sequence of bytes the "
-"Unicode string must be <em>encoded</em>. The simplest from of encoding is "
-"ASCII and is performed as follows:"
-msgstr ""
-
-#: C/strings.py.page:37(item/p)
-msgid ""
-"If the code point is strictly less than 128, each byte is the same as the "
-"value of the code point."
-msgstr ""
-
-#: C/strings.py.page:38(item/p)
-msgid ""
-"If the code point is 128 or greater, the Unicode string can’t be represented "
-"in this encoding. (Python raises a <sys>UnicodeEncodeError</sys> exception "
-"in this case.)"
-msgstr ""
-
-#: C/strings.py.page:41(section/p)
-msgid ""
-"Although ASCII encoding is simple to apply it can only encode for 128 "
-"different characters which is hardly enough. One of the most commonly used "
-"encodings that addresses this problem is UTF-8 (it can handle any Unicode "
-"code point). UTF stands for “Unicode Transformation Format”, and the ‘8’ "
-"means that 8-bit numbers are used in the encoding."
+#: C/strings.py.page:30(note/p)
+msgid "GNOME strongly encourages the use of Python 3 for writing applications!"
 msgstr ""
 
-#: C/strings.py.page:46(section/title)
+#: C/strings.py.page:33(section/title)
 msgid "Strings in Python 2"
 msgstr ""
 
-#: C/strings.py.page:48(section/p)
+#: C/strings.py.page:35(section/p)
 msgid ""
 "Python 2 comes with two different kinds of objects that can be used to "
 "represent strings, <code>str</code> and <code>unicode</code>. Instances of "
@@ -27724,7 +28372,7 @@ msgid ""
 "integers, depending on how the Python interpreter was compiled."
 msgstr ""
 
-#: C/strings.py.page:50(section/code)
+#: C/strings.py.page:37(section/code)
 #, fuzzy, no-wrap
 #| msgid ""
 #| "<![CDATA[\n"
@@ -27742,7 +28390,7 @@ msgstr ""
 ">>> print unicode_string]]>\n"
 "Fußbälle\n"
 
-#: C/strings.py.page:56(section/p)
+#: C/strings.py.page:43(section/p)
 msgid ""
 "Unicode strings can be converted to 8-bit strings with <code>unicode.encode()"
 "</code>. Python’s 8-bit strings have a <code>str.decode()</code> method that "
@@ -27750,7 +28398,7 @@ msgid ""
 "of the <code>unicode.encode()</code>):"
 msgstr ""
 
-#: C/strings.py.page:58(section/code)
+#: C/strings.py.page:45(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -27765,7 +28413,7 @@ msgid ""
 "True"
 msgstr ""
 
-#: C/strings.py.page:69(section/p)
+#: C/strings.py.page:56(section/p)
 msgid ""
 "Unfortunately, Python 2.x allows you to mix <code>unicode</code> and "
 "<code>str</code> if the 8-bit string happened to contain only 7-bit (ASCII) "
@@ -27773,11 +28421,11 @@ msgid ""
 "values."
 msgstr ""
 
-#: C/strings.py.page:74(section/title)
+#: C/strings.py.page:61(section/title)
 msgid "Strings in Python 3"
 msgstr "Cadeas en Python 3"
 
-#: C/strings.py.page:76(section/p)
+#: C/strings.py.page:63(section/p)
 msgid ""
 "Since Python 3.0, all strings are stored as Unicode in an instance of the "
 "<code>str</code> type. Encoded strings on the other hand are represented as "
@@ -27787,13 +28435,13 @@ msgid ""
 "<code>decode()</code> to go from <code>bytes</code> to <code>str</code>."
 msgstr ""
 
-#: C/strings.py.page:78(section/p)
+#: C/strings.py.page:65(section/p)
 msgid ""
 "In addition, it is no longer possible to mix Unicode strings with encoded "
 "strings, because it will result in a <code>TypeError</code>:"
 msgstr ""
 
-#: C/strings.py.page:80(section/code)
+#: C/strings.py.page:67(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -27809,11 +28457,11 @@ msgid ""
 "b'Fu\\xc3\\x9fb\\xc3\\xa4lle sind rund'"
 msgstr ""
 
-#: C/strings.py.page:95(section/title)
+#: C/strings.py.page:82(section/title)
 msgid "Unicode in GTK+"
 msgstr "Unicode en GTK+"
 
-#: C/strings.py.page:97(section/p)
+#: C/strings.py.page:84(section/p)
 msgid ""
 "GTK+ uses UTF-8 encoded strings for all text. This means that if you call a "
 "method that returns a string you will always obtain an instance of the "
@@ -27823,7 +28471,7 @@ msgid ""
 "as argument:"
 msgstr ""
 
-#: C/strings.py.page:99(section/code)
+#: C/strings.py.page:86(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -27836,18 +28484,18 @@ msgid ""
 "&lt;type 'str'&gt;"
 msgstr ""
 
-#: C/strings.py.page:108(section/p)
+#: C/strings.py.page:95(section/p)
 msgid "Furthermore:"
 msgstr "Aínda máis:"
 
-#: C/strings.py.page:110(section/code)
+#: C/strings.py.page:97(section/code)
 #, no-wrap
 msgid ""
 "\n"
 "&gt;&gt;&gt; txt == unicode_string"
 msgstr ""
 
-#: C/strings.py.page:113(section/p)
+#: C/strings.py.page:100(section/p)
 msgid ""
 "would return <code>False</code>, with the warning <code>__main__:1: "
 "UnicodeWarning: Unicode equal comparison failed to convert both arguments to "
@@ -27856,7 +28504,7 @@ msgid ""
 "<code>txt</code> and <code>unicode_string</code> are not equal)."
 msgstr ""
 
-#: C/strings.py.page:115(section/p)
+#: C/strings.py.page:102(section/p)
 msgid ""
 "This is especially important if you want to internationalize your program "
 "using <link href=\"http://docs.python.org/library/gettext.html";
@@ -27864,22 +28512,22 @@ msgid ""
 "code> will return UTF-8 encoded 8-bit strings for all languages."
 msgstr ""
 
-#: C/strings.py.page:117(section/p)
+#: C/strings.py.page:104(section/p)
 msgid ""
 "In general it is recommended to not use <code>unicode</code> objects in GTK+ "
 "applications at all, and only use UTF-8 encoded <code>str</code> objects "
 "since GTK+ does not fully integrate with <code>unicode</code> objects."
 msgstr ""
 
-#: C/strings.py.page:119(section/p)
+#: C/strings.py.page:106(section/p)
 msgid ""
 "With Python 3.x things are much more consistent, because PyGObject will "
 "automatically encode/decode to/from UTF-8 if you pass a string to a method "
 "or a method returns a string. Strings, or text, will always be represented "
-"as instances of <code>str</code> only:"
+"as instances of <code>str</code> only."
 msgstr ""
 
-#: C/strings.py.page:126(section/p)
+#: C/strings.py.page:113(section/p)
 msgid ""
 "<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/unicode.";
 "html\">How To Deal With Strings - The Python GTK+ 3 Tutorial</link>"
@@ -27899,7 +28547,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/switch.c.page:22(media) C/switch.py.page:26(media)
+#: C/switch.c.page:22(media) C/switch.py.page:22(media)
 #: C/switch.vala.page:25(media)
 #, fuzzy
 #| msgid ""
@@ -27923,7 +28571,7 @@ msgstr "@@image: 'media/switch_off.png'; md5=211a2962708800697ad5373dcc86ad6d"
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/switch.c.page:23(media) C/switch.py.page:27(media)
+#: C/switch.c.page:23(media) C/switch.py.page:23(media)
 #: C/switch.vala.page:26(media)
 #, fuzzy
 #| msgid "@@image: 'media/switch_on.png'; md5=95e8769f758c2d95ace0fa8ecf30b29d"
@@ -27939,13 +28587,13 @@ msgctxt "text"
 msgid "Switch (C)"
 msgstr "Interruptor (C)"
 
-#: C/switch.c.page:17(info/desc) C/switch.py.page:22(info/desc)
+#: C/switch.c.page:17(info/desc) C/switch.py.page:18(info/desc)
 #: C/switch.vala.page:21(info/desc)
 msgid "A \"light switch\" style toggle"
 msgstr ""
 
 #: C/switch.c.page:20(page/title) C/switch.js.page:20(page/title)
-#: C/switch.py.page:25(page/title) C/switch.vala.page:24(page/title)
+#: C/switch.py.page:21(page/title) C/switch.vala.page:24(page/title)
 msgid "Switch"
 msgstr "Interruptor"
 
@@ -28636,11 +29284,11 @@ msgctxt "text"
 msgid "Switch (Python)"
 msgstr "Switch (Python)"
 
-#: C/switch.py.page:29(page/p)
+#: C/switch.py.page:25(page/p)
 msgid "This Switch makes the title appears and disappear."
 msgstr ""
 
-#: C/switch.py.page:36(section/code)
+#: C/switch.py.page:32(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -28701,11 +29349,19 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/switch.py.page:40(section/title)
+#: C/switch.py.page:36(section/title)
 msgid "Useful methods for a Switch widget"
 msgstr ""
 
-#: C/switch.py.page:48(item/p)
+#: C/switch.py.page:37(section/p)
+msgid ""
+"In line 17 the signal <code>\"notify::active\"</code> is connected to the "
+"callback function <code>activate_cb()</code> using <code><var>widget</var>."
+"connect(<var>signal</var>, <var>callback function</var>)</code>. See <link "
+"xref=\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/switch.py.page:44(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -28805,7 +29461,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/textview.c.page:26(media) C/textview.py.page:37(media)
+#: C/textview.c.page:26(media) C/textview.py.page:38(media)
 #: C/textview.vala.page:26(media)
 #, fuzzy
 #| msgid "@@image: 'media/textview.png'; md5=049e859ed1af2d7c93d8cb5cfd9f7792"
@@ -28829,7 +29485,7 @@ msgstr "Widget que mostra un GtkTextBuffer"
 msgid "TextView widget"
 msgstr "Widget TextView"
 
-#: C/textview.c.page:21(note/p) C/textview.py.page:31(note/p)
+#: C/textview.c.page:21(note/p) C/textview.py.page:32(note/p)
 #: C/textview.vala.page:21(note/p)
 msgid "If we press \"enter\", we have a new line."
 msgstr ""
@@ -28972,7 +29628,7 @@ msgstr "TextView (JavaScript)"
 msgid "A multiline text editor"
 msgstr "Un editor de texto multiliña"
 
-#: C/textview.js.page:24(page/title) C/textview.py.page:28(page/title)
+#: C/textview.js.page:24(page/title) C/textview.py.page:29(page/title)
 msgid "TextView"
 msgstr "TextView"
 
@@ -29517,33 +30173,33 @@ msgctxt "text"
 msgid "TextView (Python)"
 msgstr "TextView (Python)"
 
-#: C/textview.py.page:25(info/desc)
+#: C/textview.py.page:26(info/desc)
 msgid "Widget that displays a GtkTextBuffer"
 msgstr ""
 
-#: C/textview.py.page:30(note/p)
+#: C/textview.py.page:31(note/p)
 msgid "This is an example of Gtk.TextView."
 msgstr ""
 
-#: C/textview.py.page:32(note/p)
+#: C/textview.py.page:33(note/p)
 msgid ""
 "But we can also have a new line if we write a long sentence (the text will "
 "wrap breaking lines between words)."
 msgstr ""
 
-#: C/textview.py.page:33(note/p)
+#: C/textview.py.page:34(note/p)
 msgid "If we have a loooooooooooooooooooooooooooooooooooong"
 msgstr "Se temos un loooooooooooooooooooooooooooooooonga"
 
-#: C/textview.py.page:34(note/p)
+#: C/textview.py.page:35(note/p)
 msgid "(that was long)"
 msgstr "(foi demasiado longo)"
 
-#: C/textview.py.page:35(note/p)
+#: C/textview.py.page:36(note/p)
 msgid "word, an horizontal scrollbar will appear."
 msgstr "palabra, aparecerá unha barra de desprazamento horizontal."
 
-#: C/textview.py.page:44(section/code)
+#: C/textview.py.page:45(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -29589,7 +30245,7 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/textview.py.page:48(section/title)
+#: C/textview.py.page:49(section/title)
 msgid "Useful methods for a TextView widget"
 msgstr "Métodos útiles para o widget TextView"
 
@@ -29914,7 +30570,7 @@ msgstr ""
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
 #: C/togglebutton.c.page:26(media) C/togglebutton.js.page:21(media)
-#: C/togglebutton.py.page:24(media) C/togglebutton.vala.page:24(media)
+#: C/togglebutton.py.page:22(media) C/togglebutton.vala.page:24(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/togglebutton.png'; md5=791e062613d4f9bd5936390b0aa18448"
@@ -29931,18 +30587,18 @@ msgctxt "text"
 msgid "ToggleButton (C)"
 msgstr "ToggleButton (C)"
 
-#: C/togglebutton.c.page:21(info/desc) C/togglebutton.py.page:20(info/desc)
+#: C/togglebutton.c.page:21(info/desc) C/togglebutton.py.page:18(info/desc)
 #: C/togglebutton.vala.page:20(info/desc)
 msgid "A button which retains state"
 msgstr "Un botón que mantén o seu estado"
 
 #: C/togglebutton.c.page:24(page/title) C/togglebutton.js.page:20(page/title)
-#: C/togglebutton.py.page:23(page/title)
+#: C/togglebutton.py.page:21(page/title)
 #: C/togglebutton.vala.page:23(page/title)
 msgid "ToggleButton"
 msgstr "ToggleButton"
 
-#: C/togglebutton.c.page:27(page/p) C/togglebutton.py.page:25(page/p)
+#: C/togglebutton.c.page:27(page/p) C/togglebutton.py.page:23(page/p)
 #: C/togglebutton.vala.page:25(page/p)
 msgid "When this ToggleButton is in an active state, the spinner spins."
 msgstr "Cando este ToggleButton está no estado activo, o spinner xira."
@@ -30335,7 +30991,7 @@ msgctxt "text"
 msgid "ToggleButton (Python)"
 msgstr "ToggleButton (Python)"
 
-#: C/togglebutton.py.page:32(section/code)
+#: C/togglebutton.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -30396,12 +31052,20 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/togglebutton.py.page:37(section/title)
+#: C/togglebutton.py.page:35(section/title)
 msgid "Useful methods for a ToggleButton widget"
 msgstr "Métodos útiles para o widget ToggleButton"
 
-#: C/togglebutton.py.page:46(item/p) C/toolbar.py.page:57(item/p)
-#: C/toolbar_builder.py.page:195(item/p)
+#: C/togglebutton.py.page:36(section/p)
+msgid ""
+"In line 22 the signal <code>\"toggled\"</code> is connected to the callback "
+"function <code>toggled_cb()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/togglebutton.py.page:44(item/p) C/toolbar.py.page:59(item/p)
+#: C/toolbar_builder.py.page:197(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -30516,37 +31180,313 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar.js.page:21(media) C/toolbar.py.page:23(media)
-#: C/toolbar.vala.page:23(media) C/toolbar_builder.py.page:36(media)
-#: C/toolbar_builder.vala.page:24(media)
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar.c.page:24(media) C/toolbar.js.page:21(media)
+#: C/toolbar.py.page:24(media) C/toolbar.vala.page:23(media)
+#: C/toolbar_builder.py.page:37(media) C/toolbar_builder.vala.page:24(media)
 #, fuzzy
 #| msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
 msgctxt "_"
 msgid "external ref='media/toolbar.png' md5='f0350855eedf6343952b72d6d906f738'"
 msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
 
-#: C/toolbar.js.page:7(info/title)
+#: C/toolbar.c.page:7(info/title)
 #, fuzzy
-#| msgid "Toolbar (JavaScript)"
+#| msgid "Toolbar (Vala)"
 msgctxt "text"
-msgid "Toolbar (JavaScript)"
-msgstr "Barra de ferramentas (JavaScript)"
+msgid "Toolbar (C)"
+msgstr "Barra de ferramentas (Vala)"
 
-#: C/toolbar.js.page:17(info/desc)
-msgid "A bar of tools"
-msgstr "Unha barra de ferramentas"
+#: C/toolbar.c.page:19(info/desc) C/toolbar.vala.page:18(info/desc)
+#: C/toolbar_builder.vala.page:19(info/desc)
+msgid "A bar of buttons"
+msgstr "Unha barra de botóns"
 
-#: C/toolbar.js.page:20(page/title) C/toolbar.py.page:21(page/title)
-#: C/toolbar.vala.page:21(page/title)
+#: C/toolbar.c.page:22(page/title) C/toolbar.js.page:20(page/title)
+#: C/toolbar.py.page:22(page/title) C/toolbar.vala.page:21(page/title)
 msgid "Toolbar"
 msgstr "Barra de ferramentas"
 
-#: C/toolbar.js.page:22(page/p) C/toolbar.vala.page:24(page/p)
+#: C/toolbar.c.page:25(page/p) C/toolbar.js.page:22(page/p)
+#: C/toolbar.vala.page:24(page/p)
 msgid ""
 "Toolbar can contain either text or stock icons. In this sample we use stock "
 "icons. This example has fullscreen functionality."
 msgstr ""
 
+#: C/toolbar.c.page:26(page/p)
+msgid ""
+"This example uses SimpleActions (window and app). App actions can easily be "
+"added to the app menu."
+msgstr ""
+
+#: C/toolbar.c.page:28(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* Declare these two Toolbuttons, as they will be used in both the fullscreen\n"
+" * action callback as well as the activate function.\n"
+" */\n"
+"GtkToolItem *fullscreen_button;\n"
+"GtkToolItem *leavefullscreen_button;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the undo action */\n"
+"static void\n"
+"undo_callback (GSimpleAction *simple,\n"
+"               GVariant      *parameter,\n"
+"               gpointer       user_data)\n"
+"{\n"
+"  g_print (\"You clicked \\\"Undo\\\".\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the fullscreen action */\n"
+"static void\n"
+"fullscreen_callback (GSimpleAction *simple,\n"
+"                     GVariant      *parameter,\n"
+"                     gpointer       user_data)\n"
+"{\n"
+"  GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (user_data));\n"
+"\n"
+"  GdkWindowState current_state = gdk_window_get_state (window);\n"
+"\n"
+"  /* If the window is currently in fullscreen mode */\n"
+"  if ( (current_state &amp; GDK_WINDOW_STATE_FULLSCREEN) != 0)\n"
+"    {\n"
+"      /* Minimize the window and change to the fullscreen button */\n"
+"      gdk_window_unfullscreen (window);\n"
+"      gtk_widget_hide (GTK_WIDGET(leavefullscreen_button));\n"
+"      gtk_widget_show (GTK_WIDGET(fullscreen_button));\n"
+"    }\n"
+"  else\n"
+"    {\n"
+"      /* Maximize the window, and change to the unfullscreen button */\n"
+"      gdk_window_fullscreen (window);\n"
+"      gtk_widget_hide (GTK_WIDGET (fullscreen_button));\n"
+"      gtk_widget_show (GTK_WIDGET (leavefullscreen_button));\n"
+"    }\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Our \"main\" function */\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Initialize variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *toolbar;\n"
+"\n"
+"  GtkToolItem *new_button;\n"
+"  GtkToolItem *open_button;\n"
+"  GtkToolItem *undo_button;\n"
+"\n"
+"  GtkStyleContext *style_context;\n"
+"\n"
+"  GSimpleAction *undo_action;\n"
+"  GSimpleAction *fullscreen_action;\n"
+"  GSimpleAction *leavefullscreen_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Toolbar Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 400, 200);\n"
+"\n"
+"  /* Here we begin to create the toolbar */\n"
+"  toolbar = gtk_toolbar_new ();\n"
+"  /* Set the toolbar to be the primary toolbar of the application */\n"
+"  style_context = gtk_widget_get_style_context (toolbar);\n"
+"  gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"  /* Create a button for the \"new\" action, with a stock image */\n"
+"  new_button = gtk_tool_button_new_from_stock (GTK_STOCK_NEW);\n"
+"  /* Show the \"new\" button's label */\n"
+"  gtk_tool_item_set_is_important (new_button, TRUE);\n"
+"  /* Insert the button in the desired position within the toolbar */\n"
+"  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), new_button, 0);\n"
+"  /* Show the button */\n"
+"  gtk_widget_show (GTK_WIDGET (new_button));\n"
+"  /* Set the action name for the \"new\" action. We use \"app.new\" to\n"
+"   * indicate that the action controls the application.\n"
+"   */\n"
+"  gtk_actionable_set_action_name (GTK_ACTIONABLE (new_button), \"app.new\");\n"
+"\n"
+"  /* Repeat the same steps for the \"open\" action */\n"
+"  open_button = gtk_tool_button_new_from_stock (GTK_STOCK_OPEN);\n"
+"  gtk_tool_item_set_is_important (open_button, TRUE);\n"
+"  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), open_button, 1);\n"
+"  gtk_widget_show (GTK_WIDGET (open_button));\n"
+"  gtk_actionable_set_action_name (GTK_ACTIONABLE (open_button), \"app.open\");\n"
+"\n"
+"  /* Repeat the same steps for the \"undo\" action */\n"
+"  undo_button = gtk_tool_button_new_from_stock (GTK_STOCK_UNDO);\n"
+"  gtk_tool_item_set_is_important (undo_button, TRUE);\n"
+"  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), undo_button, 2);\n"
+"  gtk_widget_show (GTK_WIDGET (undo_button));\n"
+"  /* In this case, we use \"win.undo\" to indicate that\n"
+"   * the action controls only the window\n"
+"   */\n"
+"  gtk_actionable_set_action_name (GTK_ACTIONABLE (undo_button), \"win.undo\");\n"
+"\n"
+"  /* Repeat the same steps for the \"fullscreen\" action */\n"
+"  fullscreen_button = gtk_tool_button_new_from_stock (GTK_STOCK_FULLSCREEN);\n"
+"  gtk_tool_item_set_is_important (fullscreen_button, TRUE);\n"
+"  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), fullscreen_button, 3);\n"
+"  gtk_widget_show (GTK_WIDGET (fullscreen_button));\n"
+"  gtk_actionable_set_action_name (GTK_ACTIONABLE (fullscreen_button),\n"
+"                                  \"win.fullscreen\");\n"
+"\n"
+"  /*Repeat the same steps for the \"leavefullscreen\" action */\n"
+"  leavefullscreen_button = gtk_tool_button_new_from_stock (GTK_STOCK_LEAVE_FULLSCREEN);\n"
+"  gtk_tool_item_set_is_important (leavefullscreen_button, TRUE);\n"
+"  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), leavefullscreen_button, 3);\n"
+"  /* The only difference here is that we don't show the leavefullscreen button,\n"
+"   * as it will later replace the fullscreen button.\n"
+"   */\n"
+"  gtk_actionable_set_action_name (GTK_ACTIONABLE (leavefullscreen_button),\n"
+"                                  \"win.leavefullscreen\");\n"
+"\n"
+"  /* Once we've created the bare-bones of the toolbar, we make\n"
+"   * sure it has enough horizontal space.\n"
+"   */\n"
+"  gtk_widget_set_hexpand (toolbar, TRUE);\n"
+"  gtk_widget_show (toolbar);\n"
+"\n"
+"  /* Attach the toolbar to the grid and add it to the overall window */\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), toolbar, 0, 0, 1, 1);\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"  gtk_widget_show (GTK_WIDGET (grid));\n"
+"\n"
+"  /* Use the action names to create the actions that control the window, and\n"
+"   * connect them to the appropriate callbackfunctions.\n"
+"   */\n"
+"  undo_action = g_simple_action_new (\"undo\", NULL);\n"
+"  g_signal_connect (undo_action, \"activate\", G_CALLBACK (undo_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (undo_action));\n"
+"\n"
+"  fullscreen_action = g_simple_action_new (\"fullscreen\", NULL);\n"
+"  g_signal_connect (fullscreen_action, \"activate\", G_CALLBACK (fullscreen_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (fullscreen_action));\n"
+"\n"
+"  leavefullscreen_action = g_simple_action_new (\"leavefullscreen\", NULL);\n"
+"  g_signal_connect (leavefullscreen_action, \"activate\", G_CALLBACK (fullscreen_callback),\n"
+"                    GTK_WINDOW (window));\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (leavefullscreen_action));\n"
+"\n"
+"  gtk_widget_show (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the new action */\n"
+"static void\n"
+"new_callback (GSimpleAction *simple,\n"
+"              GVariant      *parameter,\n"
+"              gpointer       user_data)\n"
+"{\n"
+"  g_print (\"You clicked \\\"New\\\".\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the open action */\n"
+"static void\n"
+"open_callback (GSimpleAction *simple,\n"
+"               GVariant      *parameter,\n"
+"               gpointer       user_data)\n"
+"{\n"
+"  g_print (\"You clicked \\\"Open\\\".\\n\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* In this function, we create the actions in which control the window, and\n"
+" * connect their signals to the appropriate callback function.\n"
+" */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  GSimpleAction *new_action;\n"
+"  GSimpleAction *open_action;\n"
+"\n"
+"  new_action = g_simple_action_new (\"new\", NULL);\n"
+"  g_signal_connect (new_action, \"activate\", G_CALLBACK (new_callback), app);\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (new_action));\n"
+"\n"
+"  open_action = g_simple_action_new (\"open\", NULL);\n"
+"  g_signal_connect (open_action, \"activate\", G_CALLBACK (open_callback), app);\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (open_action));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+
+#: C/toolbar.c.page:34(item/p) C/tooltip.py.page:58(item/p)
+#, fuzzy
+#| msgid ""
+#| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
+#| "\">Gtk.Window</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToolbar.html";
+"\">GtkToolbar</link>"
+msgstr ""
+"O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
+"Window</link>"
+
+#: C/toolbar.c.page:35(item/p)
+#, fuzzy
+#| msgid ""
+#| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
+#| "html\">Gtk.WindowPosition</link>"
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToolButton.html";
+"\">GtkToolbutton</link>"
+msgstr ""
+"O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
+"\">Gtk.WindowPosition</link>"
+
+#: C/toolbar.js.page:7(info/title)
+#, fuzzy
+#| msgid "Toolbar (JavaScript)"
+msgctxt "text"
+msgid "Toolbar (JavaScript)"
+msgstr "Barra de ferramentas (JavaScript)"
+
+#: C/toolbar.js.page:17(info/desc)
+msgid "A bar of tools"
+msgstr "Unha barra de ferramentas"
+
 #: C/toolbar.js.page:23(page/p) C/toolbar.vala.page:25(page/p)
 msgid ""
 "This example uses SimpleActions (window and app). App actions can easily be "
@@ -30796,15 +31736,15 @@ msgctxt "text"
 msgid "Toolbar (Python)"
 msgstr "Barra de ferramentas (Python)"
 
-#: C/toolbar.py.page:18(info/desc) C/toolbar_builder.py.page:31(info/desc)
+#: C/toolbar.py.page:19(info/desc) C/toolbar_builder.py.page:32(info/desc)
 msgid "A bar of buttons and other widgets"
 msgstr "Unha barra de botóns e outros widgets"
 
-#: C/toolbar.py.page:24(page/p)
+#: C/toolbar.py.page:25(page/p)
 msgid "An example of toolbar with buttons (from stock icons)."
 msgstr ""
 
-#: C/toolbar.py.page:31(section/code)
+#: C/toolbar.py.page:32(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -30941,40 +31881,49 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/toolbar.py.page:35(section/title)
+#: C/toolbar.py.page:36(section/title)
 #, fuzzy
 #| msgid "Menu, combo box and toolbar widgets"
 msgid "Useful methods for a Toolbar widget"
 msgstr "Widgets de menú, caixa combinada e barra de ferramentas"
 
-#: C/toolbar.py.page:38(item/p)
+#: C/toolbar.py.page:37(section/p)
+msgid ""
+"In line 32 the signal <code>\"activate\"</code> from the action "
+"<code>undo_action</code> is connected to the callback function "
+"<code>undo_callback()</code> using <code><var>action</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/toolbar.py.page:40(item/p)
 msgid ""
 "Use <code>insert(tool_item, position)</code> to insert the <code>tool_item</"
 "code> at <code>position</code>. If <code>position</code> is negative, the "
 "item is appended at the end of the toolbar."
 msgstr ""
 
-#: C/toolbar.py.page:39(item/p)
+#: C/toolbar.py.page:41(item/p)
 msgid ""
 "<code>get_item_index(tool_item)</code> retrieves the position of "
 "<code>tool_item</code> on the toolbar."
 msgstr ""
 
-#: C/toolbar.py.page:40(item/p)
+#: C/toolbar.py.page:42(item/p)
 msgid ""
 "<code>get_n_items()</code> returns the number of items on the toolbar; "
 "<code>get_nth_item(position)</code> returns the item in position "
 "<code>position</code>."
 msgstr ""
 
-#: C/toolbar.py.page:41(item/p)
+#: C/toolbar.py.page:43(item/p)
 msgid ""
 "If the toolbar does not have room for all the menu items, and "
 "<code>set_show_arrow(True)</code>, the items that do not have room are shown "
 "through an overflow menu."
 msgstr ""
 
-#: C/toolbar.py.page:42(item/p)
+#: C/toolbar.py.page:44(item/p)
 msgid ""
 "<code>set_icon_size(icon_size)</code> sets the size of icons in the toolbar; "
 "<code>icon_size</code> can be one of <code>Gtk.IconSize.INVALID, Gtk."
@@ -30986,7 +31935,7 @@ msgid ""
 "code>, so that user preferences are used to determine the icon size."
 msgstr ""
 
-#: C/toolbar.py.page:43(item/p)
+#: C/toolbar.py.page:45(item/p)
 msgid ""
 "<code>set_style(style)</code>, where <code>style</code> is one of <code>Gtk."
 "ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, Gtk."
@@ -30996,7 +31945,7 @@ msgid ""
 "use <code>unset_style()</code>."
 msgstr ""
 
-#: C/toolbar.py.page:52(item/p)
+#: C/toolbar.py.page:54(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -31008,7 +31957,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/toolbar.py.page:53(item/p)
+#: C/toolbar.py.page:55(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -31020,7 +31969,7 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/toolbar.py.page:54(item/p)
+#: C/toolbar.py.page:56(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -31032,7 +31981,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/toolbar.py.page:56(item/p)
+#: C/toolbar.py.page:58(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -31044,7 +31993,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/toolbar.py.page:58(item/p) C/toolbar_builder.py.page:196(item/p)
+#: C/toolbar.py.page:60(item/p) C/toolbar_builder.py.page:198(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gdk3/unstable/gdk3-Event-Structures.";
 "html#GdkEventWindowState\">Event Structures</link>"
@@ -31057,10 +32006,6 @@ msgctxt "text"
 msgid "Toolbar (Vala)"
 msgstr "Barra de ferramentas (Vala)"
 
-#: C/toolbar.vala.page:18(info/desc) C/toolbar_builder.vala.page:19(info/desc)
-msgid "A bar of buttons"
-msgstr "Unha barra de botóns"
-
 #: C/toolbar.vala.page:27(page/code)
 #, no-wrap
 msgid ""
@@ -31243,7 +32188,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:48(media) C/toolbar_builder.vala.page:32(media)
+#: C/toolbar_builder.py.page:49(media) C/toolbar_builder.vala.page:32(media)
 #, fuzzy
 #| msgid "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
 msgctxt "_"
@@ -31260,7 +32205,7 @@ msgstr "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:54(media) C/toolbar_builder.vala.page:38(media)
+#: C/toolbar_builder.py.page:55(media) C/toolbar_builder.vala.page:38(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_select_toolbar.png'; "
@@ -31282,7 +32227,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:60(media) C/toolbar_builder.vala.page:44(media)
+#: C/toolbar_builder.py.page:61(media) C/toolbar_builder.vala.page:44(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_toolbar_general.png'; "
@@ -31304,7 +32249,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:66(media) C/toolbar_builder.vala.page:50(media)
+#: C/toolbar_builder.py.page:67(media) C/toolbar_builder.vala.page:50(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_toolbar_common.png'; "
@@ -31326,7 +32271,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:72(media) C/toolbar_builder.vala.page:56(media)
+#: C/toolbar_builder.py.page:73(media) C/toolbar_builder.vala.page:56(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_toolbar_edit.png'; "
@@ -31347,7 +32292,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:131(media) C/toolbar_builder.vala.page:115(media)
+#: C/toolbar_builder.py.page:132(media) C/toolbar_builder.vala.page:115(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_toolbar_editor.png'; "
@@ -31369,7 +32314,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/toolbar_builder.py.page:140(media) C/toolbar_builder.vala.page:124(media)
+#: C/toolbar_builder.py.page:141(media) C/toolbar_builder.vala.page:124(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/glade_visible_no.png'; "
@@ -31388,12 +32333,12 @@ msgctxt "text"
 msgid "Toolbar created using Glade (Python)"
 msgstr "Barra de ferramentas creada empregando Glade (Vala)"
 
-#: C/toolbar_builder.py.page:34(page/title)
+#: C/toolbar_builder.py.page:35(page/title)
 #: C/toolbar_builder.vala.page:22(page/title)
 msgid "Toolbar created using Glade"
 msgstr "Barra de ferramentas creada empregando Glade"
 
-#: C/toolbar_builder.py.page:37(page/p)
+#: C/toolbar_builder.py.page:38(page/p)
 msgid ""
 "This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade "
 "to create the toolbar in an XML .ui file."
@@ -31401,64 +32346,64 @@ msgstr ""
 "Este exemplo é similar a <link xref=\"toolbar.py\"/>, agás que usa Glade "
 "para crear a barra de ferrametnas nun ficheiro .ui XML."
 
-#: C/toolbar_builder.py.page:42(section/title)
+#: C/toolbar_builder.py.page:43(section/title)
 msgid "Creating the toolbar with Glade"
 msgstr "Crear unha barra de ferramentas con Glade"
 
-#: C/toolbar_builder.py.page:43(section/p)
+#: C/toolbar_builder.py.page:44(section/p)
 #: C/toolbar_builder.vala.page:27(page/p)
 msgid ""
 "To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade "
 "Interface Designer</link>:"
 msgstr ""
 
-#: C/toolbar_builder.py.page:47(item/p) C/toolbar_builder.vala.page:31(item/p)
+#: C/toolbar_builder.py.page:48(item/p) C/toolbar_builder.vala.page:31(item/p)
 msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:48(item/p) C/toolbar_builder.vala.page:32(item/p)
+#: C/toolbar_builder.py.page:49(item/p) C/toolbar_builder.vala.page:32(item/p)
 msgid ""
 "<media type=\"image\" src=\"media/glade_ui.png\" width=\"900\"> Screenshot "
 "of Glade ui </media>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:53(item/p) C/toolbar_builder.vala.page:37(item/p)
+#: C/toolbar_builder.py.page:54(item/p) C/toolbar_builder.vala.page:37(item/p)
 msgid ""
 "Under <gui>Containers</gui> on the left hand side, right click on the "
 "toolbar icon and select <gui>Add widget as toplevel</gui>."
 msgstr ""
 
-#: C/toolbar_builder.py.page:54(item/p) C/toolbar_builder.vala.page:38(item/p)
+#: C/toolbar_builder.py.page:55(item/p) C/toolbar_builder.vala.page:38(item/p)
 msgid ""
 "<media type=\"image\" src=\"media/glade_select_toolbar.png\"> Screenshot of "
 "toolbar icon in Glade ui </media>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:59(item/p) C/toolbar_builder.vala.page:43(item/p)
+#: C/toolbar_builder.py.page:60(item/p) C/toolbar_builder.vala.page:43(item/p)
 msgid ""
 "Under the <gui>General</gui> tab on the bottom right, change the <gui>Name</"
 "gui> to <input>toolbar</input> and <gui>Show Arrow</gui> to <gui>No</gui>."
 msgstr ""
 
-#: C/toolbar_builder.py.page:60(item/p) C/toolbar_builder.vala.page:44(item/p)
+#: C/toolbar_builder.py.page:61(item/p) C/toolbar_builder.vala.page:44(item/p)
 msgid ""
 "<media type=\"image\" src=\"media/glade_toolbar_general.png\"> Screenshot of "
 "General tab </media>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:65(item/p) C/toolbar_builder.vala.page:49(item/p)
+#: C/toolbar_builder.py.page:66(item/p) C/toolbar_builder.vala.page:49(item/p)
 msgid ""
 "Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to "
 "<gui>Yes</gui>."
 msgstr ""
 
-#: C/toolbar_builder.py.page:66(item/p) C/toolbar_builder.vala.page:50(item/p)
+#: C/toolbar_builder.py.page:67(item/p) C/toolbar_builder.vala.page:50(item/p)
 msgid ""
 "<media type=\"image\" src=\"media/glade_toolbar_common.png\"> Screenshot of "
 "Common tab </media>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:71(item/p) C/toolbar_builder.vala.page:55(item/p)
+#: C/toolbar_builder.py.page:72(item/p) C/toolbar_builder.vala.page:55(item/p)
 msgid ""
 "Right click on the toolbar in the top right and select <gui>Edit</gui>. The "
 "<gui>Tool Bar Editor</gui> window will appear."
@@ -31467,7 +32412,7 @@ msgstr ""
 "dereita e seleccione <gui>Editar</gui>. A xanela <gui>Editor da barra de "
 "ferramentas</gui> aparecerá."
 
-#: C/toolbar_builder.py.page:72(item/p) C/toolbar_builder.vala.page:56(item/p)
+#: C/toolbar_builder.py.page:73(item/p) C/toolbar_builder.vala.page:56(item/p)
 #, fuzzy
 #| msgid "Screenshot of where to right click to edit toolbar."
 msgid ""
@@ -31477,7 +32422,7 @@ msgstr ""
 "Captura de pantalla onde facer clic dereito para editar a barra de "
 "ferramentas."
 
-#: C/toolbar_builder.py.page:77(item/p) C/toolbar_builder.vala.page:61(item/p)
+#: C/toolbar_builder.py.page:78(item/p) C/toolbar_builder.vala.page:61(item/p)
 msgid ""
 "We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave "
 "Fullscreen. First, we will add the New ToolButton."
@@ -31485,29 +32430,29 @@ msgstr ""
 "Queremos engadir 5 ToolButtons: Novo, Abrir, Desfacer, Pantalla completa e "
 "Saír da pantalla completa. Primeiro, precisamos engadir o ToolButton Novo."
 
-#: C/toolbar_builder.py.page:80(item/p) C/toolbar_builder.vala.page:64(item/p)
+#: C/toolbar_builder.py.page:81(item/p) C/toolbar_builder.vala.page:64(item/p)
 msgid "Under <gui>Hierarchy</gui> tab, click <gui>Add</gui>."
 msgstr "Baixo a lapela <gui>Xerarquía</gui>, prema <gui>Engadir</gui>."
 
-#: C/toolbar_builder.py.page:81(item/p) C/toolbar_builder.vala.page:65(item/p)
+#: C/toolbar_builder.py.page:82(item/p) C/toolbar_builder.vala.page:65(item/p)
 msgid "Change the name of the ToolItem to <input>new_button</input>."
 msgstr "Cambie o nome do TollItem a <input>new_button</input>."
 
-#: C/toolbar_builder.py.page:82(item/p) C/toolbar_builder.vala.page:66(item/p)
+#: C/toolbar_builder.py.page:83(item/p) C/toolbar_builder.vala.page:66(item/p)
 msgid ""
 "Scroll down and set <gui>Is important</gui> to <gui>Yes</gui>. This will "
 "cause the label of the ToolButton to be shown, when you view the toolbar."
 msgstr ""
 
-#: C/toolbar_builder.py.page:83(item/p) C/toolbar_builder.vala.page:67(item/p)
+#: C/toolbar_builder.py.page:84(item/p) C/toolbar_builder.vala.page:67(item/p)
 msgid "Enter the <gui>action name</gui>: <input>app.new</input>."
 msgstr "Escriba o <gui>nome da acción</gui>: <input>app.new</input>."
 
-#: C/toolbar_builder.py.page:84(item/p) C/toolbar_builder.vala.page:68(item/p)
+#: C/toolbar_builder.py.page:85(item/p) C/toolbar_builder.vala.page:68(item/p)
 msgid "Change the <gui>Label</gui> to <input>New</input>."
 msgstr "Cambie a <gui>Etiqueta</gui> a <input>Nova</input>."
 
-#: C/toolbar_builder.py.page:85(item/p) C/toolbar_builder.vala.page:69(item/p)
+#: C/toolbar_builder.py.page:86(item/p) C/toolbar_builder.vala.page:69(item/p)
 msgid ""
 "Select the <gui>New</gui> Stock Id from the drop down menu, or type "
 "<input>gtk-new</input>."
@@ -31515,7 +32460,7 @@ msgstr ""
 "Seleccione o Id de inventario <gui>New</gui> desde o menú despregábel, ou o "
 "tipo <input>gtk-new</input>."
 
-#: C/toolbar_builder.py.page:87(item/p) C/toolbar_builder.vala.page:71(item/p)
+#: C/toolbar_builder.py.page:88(item/p) C/toolbar_builder.vala.page:71(item/p)
 msgid ""
 "Repeat the above steps for the remaining ToolButtons, with the following "
 "properties:"
@@ -31523,94 +32468,94 @@ msgstr ""
 "Repita os pasos de arriba cos TollButtons que faltan, coas seguintes "
 "propiedades:"
 
-#: C/toolbar_builder.py.page:94(td/p) C/toolbar_builder.vala.page:78(td/p)
+#: C/toolbar_builder.py.page:95(td/p) C/toolbar_builder.vala.page:78(td/p)
 msgid "Is important"
 msgstr "É importante"
 
-#: C/toolbar_builder.py.page:95(td/p) C/toolbar_builder.vala.page:79(td/p)
+#: C/toolbar_builder.py.page:96(td/p) C/toolbar_builder.vala.page:79(td/p)
 #, fuzzy
 #| msgid "action name"
 msgid "Action name"
 msgstr "nome da acción"
 
-#: C/toolbar_builder.py.page:97(td/p) C/toolbar_builder.vala.page:81(td/p)
+#: C/toolbar_builder.py.page:98(td/p) C/toolbar_builder.vala.page:81(td/p)
 msgid "Stock Id"
 msgstr "ID de inventario"
 
-#: C/toolbar_builder.py.page:102(td/p) C/toolbar_builder.vala.page:86(td/p)
+#: C/toolbar_builder.py.page:103(td/p) C/toolbar_builder.vala.page:86(td/p)
 msgid "open_button"
 msgstr "open_button"
 
-#: C/toolbar_builder.py.page:103(td/p) C/toolbar_builder.py.page:110(td/p)
-#: C/toolbar_builder.py.page:117(td/p) C/toolbar_builder.py.page:124(td/p)
+#: C/toolbar_builder.py.page:104(td/p) C/toolbar_builder.py.page:111(td/p)
+#: C/toolbar_builder.py.page:118(td/p) C/toolbar_builder.py.page:125(td/p)
 #: C/toolbar_builder.vala.page:87(td/p) C/toolbar_builder.vala.page:94(td/p)
 #: C/toolbar_builder.vala.page:101(td/p) C/toolbar_builder.vala.page:108(td/p)
 msgid "Yes"
 msgstr "Si"
 
-#: C/toolbar_builder.py.page:104(td/p) C/toolbar_builder.vala.page:88(td/p)
+#: C/toolbar_builder.py.page:105(td/p) C/toolbar_builder.vala.page:88(td/p)
 msgid "app.open"
 msgstr "app.open"
 
-#: C/toolbar_builder.py.page:105(td/p) C/toolbar_builder.vala.page:89(td/p)
+#: C/toolbar_builder.py.page:106(td/p) C/toolbar_builder.vala.page:89(td/p)
 msgid "Open"
 msgstr "Open"
 
-#: C/toolbar_builder.py.page:106(td/p) C/toolbar_builder.vala.page:90(td/p)
+#: C/toolbar_builder.py.page:107(td/p) C/toolbar_builder.vala.page:90(td/p)
 msgid "gtk-open"
 msgstr "gtk-open"
 
-#: C/toolbar_builder.py.page:109(td/p) C/toolbar_builder.vala.page:93(td/p)
+#: C/toolbar_builder.py.page:110(td/p) C/toolbar_builder.vala.page:93(td/p)
 msgid "undo_button"
 msgstr "undo_button"
 
-#: C/toolbar_builder.py.page:111(td/p) C/toolbar_builder.vala.page:95(td/p)
+#: C/toolbar_builder.py.page:112(td/p) C/toolbar_builder.vala.page:95(td/p)
 msgid "win.undo"
 msgstr "win.undo"
 
-#: C/toolbar_builder.py.page:112(td/p) C/toolbar_builder.vala.page:96(td/p)
+#: C/toolbar_builder.py.page:113(td/p) C/toolbar_builder.vala.page:96(td/p)
 msgid "Undo"
 msgstr "Desfacer"
 
-#: C/toolbar_builder.py.page:113(td/p) C/toolbar_builder.vala.page:97(td/p)
+#: C/toolbar_builder.py.page:114(td/p) C/toolbar_builder.vala.page:97(td/p)
 msgid "gtk-undo"
 msgstr "gtk-undo"
 
-#: C/toolbar_builder.py.page:116(td/p) C/toolbar_builder.vala.page:100(td/p)
+#: C/toolbar_builder.py.page:117(td/p) C/toolbar_builder.vala.page:100(td/p)
 msgid "fullscreen_button"
 msgstr "fullscreen_button"
 
-#: C/toolbar_builder.py.page:118(td/p) C/toolbar_builder.py.page:125(td/p)
+#: C/toolbar_builder.py.page:119(td/p) C/toolbar_builder.py.page:126(td/p)
 #: C/toolbar_builder.vala.page:102(td/p) C/toolbar_builder.vala.page:109(td/p)
 msgid "win.fullscreen"
 msgstr "win.fullscreen"
 
-#: C/toolbar_builder.py.page:119(td/p) C/toolbar_builder.vala.page:103(td/p)
+#: C/toolbar_builder.py.page:120(td/p) C/toolbar_builder.vala.page:103(td/p)
 msgid "Fullscreen"
 msgstr "Pantalla completa"
 
-#: C/toolbar_builder.py.page:120(td/p) C/toolbar_builder.vala.page:104(td/p)
+#: C/toolbar_builder.py.page:121(td/p) C/toolbar_builder.vala.page:104(td/p)
 msgid "gtk-fullscreen"
 msgstr "gtk-fullscreen"
 
-#: C/toolbar_builder.py.page:123(td/p) C/toolbar_builder.vala.page:107(td/p)
+#: C/toolbar_builder.py.page:124(td/p) C/toolbar_builder.vala.page:107(td/p)
 msgid "leave_fullscreen_button"
 msgstr "leave_fullscreen_button"
 
-#: C/toolbar_builder.py.page:126(td/p) C/toolbar_builder.vala.page:110(td/p)
+#: C/toolbar_builder.py.page:127(td/p) C/toolbar_builder.vala.page:110(td/p)
 msgid "Leave Fullscreen"
 msgstr "Saír do modo de pantalla completa"
 
-#: C/toolbar_builder.py.page:127(td/p) C/toolbar_builder.vala.page:111(td/p)
+#: C/toolbar_builder.py.page:128(td/p) C/toolbar_builder.vala.page:111(td/p)
 msgid "gtk-leave-fullscreen"
 msgstr "gtk-leave-fullscreen"
 
-#: C/toolbar_builder.py.page:136(item/p)
+#: C/toolbar_builder.py.page:137(item/p)
 #: C/toolbar_builder.vala.page:120(item/p)
 msgid "Close the <gui>Tool Bar Editor</gui>."
 msgstr "Pechar o <gui>Editor de barra de ferramentas</gui>."
 
-#: C/toolbar_builder.py.page:139(item/p)
+#: C/toolbar_builder.py.page:140(item/p)
 msgid ""
 "When our program will first start, we do not want the <gui>Leave Fullscreen</"
 "gui> ToolButton to be visible, since the application will not be in "
@@ -31622,19 +32567,19 @@ msgid ""
 "code> separately on all the elements."
 msgstr ""
 
-#: C/toolbar_builder.py.page:140(item/p)
+#: C/toolbar_builder.py.page:141(item/p)
 #: C/toolbar_builder.vala.page:124(item/p)
 msgid ""
 "<media type=\"image\" src=\"media/glade_visible_no.png\"> Setting the "
 "visible property to No </media>"
 msgstr ""
 
-#: C/toolbar_builder.py.page:145(item/p)
+#: C/toolbar_builder.py.page:146(item/p)
 #: C/toolbar_builder.vala.page:129(item/p)
 msgid "Save your work, and close Glade."
 msgstr "Garde o seu traballo e saia de Glade."
 
-#: C/toolbar_builder.py.page:148(item/p)
+#: C/toolbar_builder.py.page:149(item/p)
 #: C/toolbar_builder.vala.page:132(item/p)
 msgid ""
 "The XML file created by Glade is shown below. This is the description of the "
@@ -31644,7 +32589,7 @@ msgid ""
 "line 9 of <file>toolbar_builder.ui</file>:"
 msgstr ""
 
-#: C/toolbar_builder.py.page:149(item/code)
+#: C/toolbar_builder.py.page:150(item/code)
 #: C/toolbar_builder.vala.page:133(item/code)
 #, no-wrap
 msgid ""
@@ -31655,7 +32600,7 @@ msgid ""
 "  "
 msgstr ""
 
-#: C/toolbar_builder.py.page:154(item/p)
+#: C/toolbar_builder.py.page:155(item/p)
 #: C/toolbar_builder.vala.page:138(item/p)
 msgid ""
 "If you do not add this, the program will still work fine. The resulting "
@@ -31666,7 +32611,7 @@ msgstr ""
 "resultante semellará un pouco diferente á captura de pantalla da parte "
 "superior desta páxina."
 
-#: C/toolbar_builder.py.page:157(section/code)
+#: C/toolbar_builder.py.page:158(section/code)
 #: C/toolbar_builder.vala.page:141(page/code)
 #, no-wrap
 msgid ""
@@ -31766,7 +32711,7 @@ msgid ""
 "&lt;/interface&gt;\n"
 msgstr ""
 
-#: C/toolbar_builder.py.page:164(section/p)
+#: C/toolbar_builder.py.page:165(section/p)
 #: C/toolbar_builder.vala.page:143(page/p)
 msgid ""
 "We now create the code below, which adds the toolbar from the file we just "
@@ -31775,7 +32720,7 @@ msgstr ""
 "Agora crearemos o código de embaixo, que engade a barra de ferrametnas desde "
 "o ficheiro que creamos."
 
-#: C/toolbar_builder.py.page:165(section/code)
+#: C/toolbar_builder.py.page:166(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -31880,23 +32825,23 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/toolbar_builder.py.page:170(section/title)
+#: C/toolbar_builder.py.page:171(section/title)
 msgid "Useful methods for Gtk.Builder"
 msgstr "Métodos útiles para Gtk.Builder"
 
-#: C/toolbar_builder.py.page:171(section/p)
+#: C/toolbar_builder.py.page:172(section/p)
 msgid ""
 "For the useful methods for a Toolbar widget, see <link xref=\"toolbar.py\"/>"
 msgstr ""
 "Para os métodos útiles para o widget Toolbar, vexa <link xref=\"toolbar.py\"/"
 ">"
 
-#: C/toolbar_builder.py.page:173(section/p)
+#: C/toolbar_builder.py.page:174(section/p)
 msgid "Gtk.Builder builds an interface from an XML UI definition."
 msgstr ""
 "Gtk.Builder constrúe unha interface desde unha definición de IU en XML."
 
-#: C/toolbar_builder.py.page:176(item/p)
+#: C/toolbar_builder.py.page:177(item/p)
 msgid ""
 "<code>add_from_file(filename)</code> loads and parses the given file and "
 "merges it with the current contents of the Gtk.Builder."
@@ -31904,48 +32849,47 @@ msgstr ""
 "<code>add_from_file(nomedeficheiro)</code> carga e analiza o ficheiro "
 "fornecido e combínao cos contidos actuais de Gtk.Builder."
 
-#: C/toolbar_builder.py.page:177(item/p)
+#: C/toolbar_builder.py.page:178(item/p)
 msgid ""
 "<code>add_from_string(string)</code> parses the given string and merges it "
 "with the current contents of the Gtk.Builder."
 msgstr ""
 
-#: C/toolbar_builder.py.page:178(item/p)
+#: C/toolbar_builder.py.page:179(item/p)
 msgid ""
 "<code>add_objects_from_file(filename, object_ids)</code> is the same as "
 "<code>add_from_file()</code>, but it loads only the objects with the ids "
 "given in the <code>object_id</code>s list."
 msgstr ""
 
-#: C/toolbar_builder.py.page:179(item/p)
+#: C/toolbar_builder.py.page:180(item/p)
 msgid ""
 "<code>add_objects_from_string(filename, object_ids)</code> is the same as "
 "<code>add_from_string()</code>, but it loads only the objects with the ids "
 "given in the <code>object_id</code>s list."
 msgstr ""
 
-#: C/toolbar_builder.py.page:180(item/p)
+#: C/toolbar_builder.py.page:181(item/p)
 msgid ""
 "<code>get_object(object_id)</code> retrieves the widget with the id "
 "<code>object_id</code> from the loaded objects in the builder."
 msgstr ""
 
-#: C/toolbar_builder.py.page:181(item/p)
+#: C/toolbar_builder.py.page:182(item/p)
 msgid "<code>get_objects()</code> returns all loaded objects."
 msgstr "<code>get_objects()</code> devolve todos os obxectos cargados."
 
-#: C/toolbar_builder.py.page:182(item/p)
+#: C/toolbar_builder.py.page:183(item/p)
 msgid ""
 "<code>connect_signals(handler_object)</code> connects the signals to the "
 "methods given in the <code>handler_object</code>. This can be any object "
 "which contains keys or attributes that are called like the signal handler "
-"names given in the interface description, e.g. a class or a dict."
-msgstr ""
-
-#: C/toolbar_builder.py.page:197(item/p)
-msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.";
-"html\">The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder</link>"
+"names given in the interface description, e.g. a class or a dict. In line 39 "
+"the signal <code>\"activate\"</code> from the action <code>undo_action</"
+"code> is connected to the callback function <code>undo_callback()</code> "
+"using <code><var>action</var>.connect(<var>signal</var>, <var>callback "
+"function</var>)</code>. See <link xref=\"signals-callbacks.py\"/> for a more "
+"detailed explanation."
 msgstr ""
 
 #: C/toolbar_builder.vala.page:7(info/title)
@@ -32083,26 +33027,33 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/tooltip.py.page:22(media)
+#: C/tooltip.py.page:23(media)
 #, fuzzy
 #| msgid "@@image: 'media/tooltip.png'; md5=6950da5f4444aa941ecc2f0fc5951d52"
 msgctxt "_"
 msgid "external ref='media/tooltip.png' md5='6950da5f4444aa941ecc2f0fc5951d52'"
 msgstr "@@image: 'media/tooltip.png'; md5=6950da5f4444aa941ecc2f0fc5951d52"
 
-#: C/tooltip.py.page:18(info/desc)
+#: C/tooltip.py.page:7(info/title)
+#, fuzzy
+#| msgid "Toolbar (Python)"
+msgctxt "text"
+msgid "Tooltip (Python)"
+msgstr "Barra de ferramentas (Python)"
+
+#: C/tooltip.py.page:19(info/desc)
 msgid "Add tips to your widgets"
 msgstr "Engadir consellos aos seus widgets"
 
-#: C/tooltip.py.page:21(page/title) C/tutorial.py.page:122(steps/title)
+#: C/tooltip.py.page:22(page/title)
 msgid "Tooltip"
 msgstr "Consello"
 
-#: C/tooltip.py.page:23(page/p)
+#: C/tooltip.py.page:24(page/p)
 msgid "A toolbar with a tooltip (with an image) for a button."
 msgstr ""
 
-#: C/tooltip.py.page:29(section/code)
+#: C/tooltip.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -32227,29 +33178,29 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/tooltip.py.page:33(section/title)
+#: C/tooltip.py.page:34(section/title)
 msgid "Useful methods for a Tooltip widget"
 msgstr "Métodos útiles para o widget Tooltip"
 
-#: C/tooltip.py.page:34(section/p)
+#: C/tooltip.py.page:36(section/p)
 msgid ""
 "<code>set_tooltip_text(text)</code> and <code>set_tooltip_markup(text)</"
 "code> can be used to add a tooltip of plain text (or text in the Pango "
 "Markup Language) to a widget."
 msgstr ""
 
-#: C/tooltip.py.page:35(section/p)
+#: C/tooltip.py.page:37(section/p)
 msgid "For more complex tooltips, for instance for a tooltip with an image:"
 msgstr ""
 
-#: C/tooltip.py.page:37(item/p)
+#: C/tooltip.py.page:39(item/p)
 msgid ""
 "Set the <code>\"has-tooltip\"</code> property of the widget to <code>True</"
 "code>; this will make GTK+ monitor the widget for motion and related events "
 "which are needed to determine when and where to show a tooltip."
 msgstr ""
 
-#: C/tooltip.py.page:38(item/p)
+#: C/tooltip.py.page:40(item/p)
 msgid ""
 "Connect to the <code>\"query-tooltip\"</code> signal. This signal will be "
 "emitted when a tooltip is supposed to be shown. One of the arguments passed "
@@ -32261,32 +33212,32 @@ msgid ""
 "putting in a custom widget (<code>set_custom(widget)</code>)."
 msgstr ""
 
-#: C/tooltip.py.page:39(item/p)
+#: C/tooltip.py.page:41(item/p)
 msgid ""
 "Return <code>True</code> from your query-tooltip handler. This causes the "
 "tooltip to be show. If you return <code>False</code>, it will not be shown."
 msgstr ""
 
-#: C/tooltip.py.page:42(section/p)
+#: C/tooltip.py.page:44(section/p)
 msgid ""
 "In the probably rare case where you want to have even more control over the "
 "tooltip that is about to be shown, you can set your own GtkWindow which will "
 "be used as tooltip window. This works as follows:"
 msgstr ""
 
-#: C/tooltip.py.page:44(item/p)
+#: C/tooltip.py.page:46(item/p)
 msgid ""
 "Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</"
 "code> as before."
 msgstr ""
 
-#: C/tooltip.py.page:45(item/p)
+#: C/tooltip.py.page:47(item/p)
 msgid ""
 "Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow "
 "created by you as tooltip window."
 msgstr ""
 
-#: C/tooltip.py.page:46(item/p)
+#: C/tooltip.py.page:48(item/p)
 msgid ""
 "In the <code>\"query-tooltip\"</code> callback you can access your window "
 "using <code>get_tooltip_window()</code> and manipulate as you wish. The "
@@ -32294,7 +33245,7 @@ msgid ""
 "code> to show the window, <code>False</code> to not show it."
 msgstr ""
 
-#: C/tooltip.py.page:55(item/p)
+#: C/tooltip.py.page:57(item/p)
 #, fuzzy
 #| msgid ""
 #| "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
@@ -32306,19 +33257,7 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
-#: C/tooltip.py.page:56(item/p)
-#, fuzzy
-#| msgid ""
-#| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
-#| "\">Gtk.Window</link>"
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToolbar.html";
-"\">GtkToolbar</link>"
-msgstr ""
-"O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
-"Window</link>"
-
-#: C/tooltip.py.page:57(item/p)
+#: C/tooltip.py.page:59(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -32330,7 +33269,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/tooltip.py.page:58(item/p)
+#: C/tooltip.py.page:60(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html";
 "\">Stock Items</link>"
@@ -32340,7 +33279,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/treeview_advanced_liststore.py.page:24(media)
+#: C/treeview_advanced_liststore.py.page:22(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/treeview_advanced_liststore.png'; "
@@ -32360,16 +33299,17 @@ msgctxt "text"
 msgid "Simple Treeview with ListStore (Python)"
 msgstr "TreeView simple con ListStore (Python)"
 
-#: C/treeview_advanced_liststore.py.page:20(info/desc)
+#: C/treeview_advanced_liststore.py.page:18(info/desc)
 msgid "A TreeView displaying a ListStore (more complex example)"
 msgstr ""
 
-#: C/treeview_advanced_liststore.py.page:23(page/title)
-#: C/treeview_simple_liststore.vala.page:22(page/title)
-msgid "Simple Treeview with ListStore"
+#: C/treeview_advanced_liststore.py.page:21(page/title)
+#, fuzzy
+#| msgid "Simple Treeview with ListStore"
+msgid "More Complex Treeview with ListStore"
 msgstr "TreeView simple con ListStore"
 
-#: C/treeview_advanced_liststore.py.page:25(page/p)
+#: C/treeview_advanced_liststore.py.page:23(page/p)
 #: C/treeview_simple_liststore.py.page:24(page/p)
 msgid ""
 "This TreeView displays a simple ListStore with the selection \"changed\" "
@@ -32378,7 +33318,7 @@ msgstr ""
 "Este TreeView mostra un ListStore simple con un sinal de selección «changed» "
 "conectado."
 
-#: C/treeview_advanced_liststore.py.page:32(section/code)
+#: C/treeview_advanced_liststore.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -32512,35 +33452,38 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/treeview_advanced_liststore.py.page:36(section/title)
-#: C/treeview_cellrenderertoggle.py.page:33(section/title)
+#: C/treeview_advanced_liststore.py.page:34(section/title)
+#: C/treeview_cellrenderertoggle.py.page:34(section/title)
 #: C/treeview_simple_liststore.py.page:35(section/title)
-#: C/treeview_treestore.py.page:33(section/title)
+#: C/treeview_treestore.py.page:35(section/title)
 msgid "Useful methods for a TreeView widget"
 msgstr "Métodos útiles para o widget TreeView"
 
-#: C/treeview_advanced_liststore.py.page:37(section/p)
-#: C/treeview_cellrenderertoggle.py.page:34(section/p)
-#: C/treeview_simple_liststore.py.page:36(section/p)
-#: C/treeview_treestore.py.page:34(section/p)
+#: C/treeview_advanced_liststore.py.page:35(section/p)
+#: C/treeview_cellrenderertoggle.py.page:35(section/p)
+#: C/treeview_treestore.py.page:36(section/p)
 msgid ""
 "The TreeView widget is designed around a <em>Model/View/Controller</em> "
-"design. For more information, and for a list of useful methods for TreeView "
-"and the interface TreeModel, see <link xref=\"model-view-controller.py"
-"\">here</link>."
+"design: the <em>Model</em> stores the data; the <em>View</em> gets change "
+"notifications and displays the content of the model; the <em>Controller</"
+"em>, finally, changes the state of the model and notifies the view of these "
+"changes. For more information and for a list of useful methods for TreeModel "
+"see <link xref=\"model-view-controller.py\"/>."
 msgstr ""
 
-#: C/treeview_advanced_liststore.py.page:38(section/p)
+#: C/treeview_advanced_liststore.py.page:36(section/p)
 msgid ""
-"For buttons and callbacks functions, see <link xref=\"signals-callbacks.py"
-"\">here</link>"
+"In line 36 the <code>\"changed\"</code> signal is connected to the callback "
+"function <code>on_changed()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
 msgstr ""
 
 #. This is a reference to an external file such as an image or video. When
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/treeview_cellrenderertoggle.py.page:21(media)
+#: C/treeview_cellrenderertoggle.py.page:22(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/treeview_cellrenderertoggle.png'; "
@@ -32561,24 +33504,25 @@ msgctxt "text"
 msgid "TreeView with TreeStore (Python)"
 msgstr "TreeView con TreeStore (Python)"
 
-#: C/treeview_cellrenderertoggle.py.page:17(info/desc)
+#: C/treeview_cellrenderertoggle.py.page:18(info/desc)
 msgid ""
 "A TreeView displaying a TreeStore (more complex example, with "
 "CellRendererToggle)"
 msgstr ""
 
-#: C/treeview_cellrenderertoggle.py.page:20(page/title)
-#: C/treeview_treestore.py.page:20(page/title)
-msgid "TreeView with TreeStore"
+#: C/treeview_cellrenderertoggle.py.page:21(page/title)
+#, fuzzy
+#| msgid "TreeView with TreeStore"
+msgid "More Complex TreeView with TreeStore"
 msgstr "TreeView con TreeStore"
 
-#: C/treeview_cellrenderertoggle.py.page:22(page/p)
+#: C/treeview_cellrenderertoggle.py.page:23(page/p)
 msgid ""
 "This TreeView displays a TreeStore with two columns, one of which is "
 "rendered as a toggle."
 msgstr ""
 
-#: C/treeview_cellrenderertoggle.py.page:29(section/code)
+#: C/treeview_cellrenderertoggle.py.page:30(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -32684,8 +33628,16 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/treeview_cellrenderertoggle.py.page:43(item/p)
-#: C/treeview_treestore.py.page:43(item/p)
+#: C/treeview_cellrenderertoggle.py.page:36(section/p)
+msgid ""
+"In line 48 the <code>\"toggled\"</code> signal is connected to the callback "
+"function <code>on_toggled()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/treeview_cellrenderertoggle.py.page:45(item/p)
+#: C/treeview_treestore.py.page:45(item/p)
 #, fuzzy
 #| msgid ""
 #| "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
@@ -32697,7 +33649,7 @@ msgstr ""
 "O widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk."
 "Window</link>"
 
-#: C/treeview_cellrenderertoggle.py.page:45(item/p)
+#: C/treeview_cellrenderertoggle.py.page:47(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererToggle.";
 "html\">GtkCellRendererToggle</link>"
@@ -33528,7 +34480,25 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/treeview_simple_liststore.py.page:49(item/p)
+#: C/treeview_simple_liststore.py.page:36(section/p)
+msgid ""
+"The TreeView widget is designed around a <em>Model/View/Controller</em> "
+"design: the <em>Model</em> stores the data; the <em>View</em> gets change "
+"notifications and displays the content of the model; the <em>Controller</"
+"em>, finally, changes the state of the model and notifies the view of these "
+"changes. For more information, and for a list of useful methods for "
+"TreeModel, see <link xref=\"model-view-controller.py\"/>."
+msgstr ""
+
+#: C/treeview_simple_liststore.py.page:37(section/p)
+msgid ""
+"In line 44 the <code>\"changed\"</code> signal is connected to the callback "
+"function <code>on_changed()</code> using <code><var>widget</var>.connect"
+"(<var>signal</var>, <var>callback function</var>)</code>. See <link xref="
+"\"signals-callbacks.py\"/> for a more detailed explanation."
+msgstr ""
+
+#: C/treeview_simple_liststore.py.page:50(item/p)
 msgid ""
 "<link href=\"http://developer.gnome.org/pango/stable/pango-Fonts.html";
 "\">Fonts</link>"
@@ -33547,6 +34517,10 @@ msgstr ""
 "Un widget pode mostrar calquera implementación de TreeModel (listas e "
 "árbores)"
 
+#: C/treeview_simple_liststore.vala.page:22(page/title)
+msgid "Simple Treeview with ListStore"
+msgstr "TreeView simple con ListStore"
+
 #: C/treeview_simple_liststore.vala.page:24(page/p)
 msgid ""
 "This TreeView displays a simple ListStore with the Selection \"changed\" "
@@ -33713,7 +34687,7 @@ msgstr ""
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/treeview_treestore.py.page:21(media)
+#: C/treeview_treestore.py.page:23(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/treeview_treestore.png'; "
@@ -33725,15 +34699,21 @@ msgid ""
 msgstr ""
 "@@image: 'media/treeview_treestore.png'; md5=5ca87bc4acd55c527b3fb5fd46779d85"
 
-#: C/treeview_treestore.py.page:17(info/desc)
+#: C/treeview_treestore.py.page:19(info/desc)
 msgid "A TreeView displaying a TreeStore (simpler example)"
 msgstr "Un TreeView mostrando un TreeStore (exemplo máis simple)"
 
-#: C/treeview_treestore.py.page:22(page/p)
+#: C/treeview_treestore.py.page:22(page/title)
+#, fuzzy
+#| msgid "Simple TreeView with ListStore"
+msgid "Simpler TreeView with TreeStore"
+msgstr "TreeView Simple con ListStore"
+
+#: C/treeview_treestore.py.page:24(page/p)
 msgid "This TreeView displays a TreeStore."
 msgstr "Este TreeView mostra un TreeStore."
 
-#: C/treeview_treestore.py.page:29(section/code)
+#: C/treeview_treestore.py.page:31(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -33855,10 +34835,10 @@ msgstr ""
 
 #: C/tutorial.py.page:8(info/title)
 #, fuzzy
-#| msgid "Beginner's Tutorial (Python)"
+#| msgid "Guitar Tuner"
 msgctxt "text"
-msgid "Beginner's Tutorial (Python)"
-msgstr "Titorial para principantes (Python)"
+msgid "Tutorial for beginners (Python)"
+msgstr "Afinador de guitarra"
 
 #: C/tutorial.py.page:12(info/desc)
 msgid ""
@@ -33868,11 +34848,29 @@ msgstr ""
 "Un titorial para principiantes que queren aprender como programar interfaces "
 "de usuario GTK+ empregando Python."
 
-#: C/tutorial.py.page:25(page/title)
-msgid "0 Beginner's Tutorial"
-msgstr "0. Titorial para principiantes"
+#: C/tutorial.py.page:21(credit/years)
+#, fuzzy
+#| msgid "2010, 2011"
+msgid "2012 2013"
+msgstr "2010, 2011"
+
+#: C/tutorial.py.page:24(credit/name)
+msgid "Jim Campbell"
+msgstr ""
+
+#: C/tutorial.py.page:33(synopsis/p)
+#, fuzzy
+#| msgid ""
+#| "By following these tutorials you will learn the basics of GUI programming "
+#| "using Gtk+."
+msgid ""
+"By following these tutorials you will learn the basics of GUI programming "
+"using GTK+ in Python."
+msgstr ""
+"Seguindo estes titoriais aprenderá as bases para programar interfaces de "
+"usuario empregando Gtk+."
 
-#: C/tutorial.py.page:30(synopsis/p)
+#: C/tutorial.py.page:35(synopsis/p)
 msgid ""
 "If you have never programmed before, or are not familiar with the concepts "
 "of object oriented programming, you may need to learn a few basics first. "
@@ -33885,87 +34883,113 @@ msgid ""
 "tutorials."
 msgstr ""
 
-#: C/tutorial.py.page:36(section/title)
+#: C/tutorial.py.page:41(section/title)
 msgid "To run the code samples"
 msgstr "Para executar os exemplos de código"
 
-#: C/tutorial.py.page:40(item/p)
-msgid "Copy and paste the code into <var>filename</var>.py"
+#: C/tutorial.py.page:43(section/p)
+#, fuzzy
+#| msgid "To run the code samples:"
+msgid "To run the code samples in the tutorial:"
+msgstr "Para executar os exemplos de código"
+
+#: C/tutorial.py.page:45(item/p)
+#, fuzzy
+#| msgid "Copy and paste the code into <var>filename</var>.py"
+msgid ""
+"Type or copy and paste the code into a file, and save the file with a name "
+"like <var>filename</var>.py"
 msgstr "Copie e pegue o código en <var>nomedeficheiro</var>.py"
 
-#: C/tutorial.py.page:42(item/screen)
+#: C/tutorial.py.page:46(item/p)
+msgid "To execute the code, type in the terminal:"
+msgstr ""
+
+#: C/tutorial.py.page:47(item/screen)
 #, no-wrap
 msgid "python <var>filename</var>.py"
 msgstr "python <var>nomeficheiro</var>.py"
 
-#: C/tutorial.py.page:48(section/title)
-msgid "A path through the widgets"
+#: C/tutorial.py.page:50(section/p)
+msgid ""
+"After executing the code, you will either see the widget on your screen, or "
+"(if you have mistyped some of the code) you will see an error message that "
+"will help you identify the problem."
+msgstr ""
+
+#: C/tutorial.py.page:54(section/title)
+#, fuzzy
+#| msgid "A path through the widgets"
+msgid "A path through the widgets (with some theory)"
 msgstr "Unha ruta aos widgets"
 
-#: C/tutorial.py.page:50(steps/title)
+#: C/tutorial.py.page:55(section/p)
+msgid ""
+"The tutorial will walk you through increasingly complex examples and "
+"programming theory, but you can also feel free to just go directly to the "
+"tutorial that is most helpful to you."
+msgstr ""
+
+#: C/tutorial.py.page:57(steps/title)
 msgid "Tutorial"
 msgstr "Titorial"
 
-#: C/tutorial.py.page:52(steps/title)
+#: C/tutorial.py.page:59(steps/title)
 msgid "Basic windows"
 msgstr "Xanela básica"
 
-#: C/tutorial.py.page:57(steps/title)
+#: C/tutorial.py.page:64(steps/title)
 msgid "Images and labels"
 msgstr "Imaxes e etiquetas"
 
 #: C/tutorial.py.page:70(steps/title)
-msgid "Basic buttons"
-msgstr "Botóns básicos"
+#, fuzzy
+#| msgid "Introduction"
+msgid "Introduction to properties"
+msgstr "Introdución"
+
+#: C/tutorial.py.page:74(steps/title)
+msgid "Grid, separator and scrolling"
+msgstr ""
+
+#: C/tutorial.py.page:81(steps/title)
+#, fuzzy
+#| msgid "Signals and callbacks (Python)"
+msgid "Signals, callbacks and buttons"
+msgstr "Sinais e contrachamadas (Python)"
 
-#: C/tutorial.py.page:79(steps/title)
+#: C/tutorial.py.page:95(steps/title)
 msgid "Other display widgets"
 msgstr "Outros widgets de visualización"
 
-#: C/tutorial.py.page:85(steps/title)
-msgid "Entry widgets (with a detour on basic scrolling)"
+#: C/tutorial.py.page:101(steps/title)
+#, fuzzy
+#| msgid "Other display widgets"
+msgid "Entry widgets"
+msgstr "Outros widgets de visualización"
+
+#: C/tutorial.py.page:107(steps/title)
+msgid "A widget to write and display text"
 msgstr ""
 
-#: C/tutorial.py.page:93(steps/title)
+#: C/tutorial.py.page:111(steps/title)
 msgid "Dialogs"
 msgstr "Diálogos"
 
-#: C/tutorial.py.page:99(steps/title)
-msgid "TreeViews and ComboBoxes (using the M/V/C design)"
-msgstr "TreeViews e ComboBoxes (usando o deseño M/V/C)"
-
-#: C/tutorial.py.page:108(steps/title)
-msgid "Menus and toolbars (also: using Glade)"
+#: C/tutorial.py.page:117(steps/title)
+#, fuzzy
+#| msgid "Menus and toolbars (also: using Glade)"
+msgid "Menus, Toolbars and Tooltips (also: using Glade and GtkBuilder)"
 msgstr "Menús e barras de ferramentas (tamén: usando Glade)"
 
-#: C/tutorial.py.page:116(steps/title)
-msgid "Selectors (a recap)"
-msgstr "Selectores (un resumo)"
-
-#: C/tutorial.py.page:126(steps/title)
-msgid "More containers"
-msgstr "Máis contedores"
-
-#: C/tutorial.py.page:131(steps/title)
-msgid "More scrolling"
-msgstr "Máis desprazamento"
-
-#: C/tutorial.py.page:132(item/p)
-msgid "\"scrollbar.py\""
-msgstr "\"scrollbar.py\""
+#: C/tutorial.py.page:132(steps/title)
+msgid "TreeViews and ComboBoxes (using the M/V/C design)"
+msgstr "TreeViews e ComboBoxes (usando o deseño M/V/C)"
 
-#: C/tutorial.py.page:135(steps/title)
+#: C/tutorial.py.page:142(steps/title)
 msgid "Custom widget"
 msgstr "Widget personalizado"
 
-#: C/tutorial.py.page:136(item/p)
-msgid "\"widget.py\""
-msgstr "\"widget.py\""
-
-#: C/tutorial.py.page:142(section/title)
-msgid "Some theory to help you"
-msgstr "Algunha teoría para axudarlle"
-
 #: C/vala.page:6(info/title)
 #, fuzzy
 #| msgid "Vala"
@@ -33973,7 +34997,7 @@ msgctxt "link"
 msgid "Vala"
 msgstr "Vala"
 
-#: C/vala.page:15(page/title)
+#: C/vala.page:20(page/title)
 msgid "Tutorials, code samples and platform demos in Vala"
 msgstr "Titoriais, exemplos de código e demostracións da plataforma en Vala"
 
@@ -33981,7 +35005,7 @@ msgstr "Titoriais, exemplos de código e demostracións da plataforma en Vala"
 #. the file changes, the md5 hash will change to let you know you need to
 #. update your localized copy. The msgstr is not used at all. Set it to
 #. whatever you like once you have updated your copy of the file.
-#: C/weatherApp.js.page:35(media)
+#: C/weatherApp.js.page:40(media)
 #, fuzzy
 #| msgid ""
 #| "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
@@ -33995,10 +35019,10 @@ msgstr ""
 #, fuzzy
 #| msgid "Weather Application (JavaScript)"
 msgctxt "text"
-msgid "Weather Application (JavaScript)"
+msgid "Weather application (JavaScript)"
 msgstr "Aplicativo de tempo (JavaScript)"
 
-#: C/weatherApp.js.page:16(info/desc)
+#: C/weatherApp.js.page:21(info/desc)
 msgid ""
 "How to plan an application that uses asynchronous calls. Asynchronous calls "
 "will be presented through a weather application."
@@ -34006,11 +35030,13 @@ msgstr ""
 "Como planificar un aplicativo que use chamadas asíncronas. As chamadas "
 "asíncronas presentaranse mediante un aplicativo de tempo."
 
-#: C/weatherApp.js.page:21(page/title)
-msgid "4 Weather Application"
+#: C/weatherApp.js.page:26(page/title)
+#, fuzzy
+#| msgid "4 Weather Application"
+msgid "Weather application"
 msgstr "4. Aplicativo do tempo"
 
-#: C/weatherApp.js.page:23(synopsis/p)
+#: C/weatherApp.js.page:28(synopsis/p)
 msgid ""
 "In this guide well construct a weather application using asynchronous calls. "
 "Weather information in this example is fetched from geonames.org and the "
@@ -34021,37 +35047,37 @@ msgid ""
 "computer. In this guide we we'll go through the following parts:"
 msgstr ""
 
-#: C/weatherApp.js.page:26(item/p)
+#: C/weatherApp.js.page:31(item/p)
 #, fuzzy
 #| msgid "Planning the graphical user interface"
 msgid "<link xref=\"#planningUi\">Planning the graphical user interface</link>"
 msgstr "Planificando a interface de usuario gráfica"
 
-#: C/weatherApp.js.page:27(item/p)
+#: C/weatherApp.js.page:32(item/p)
 msgid "<link xref=\"#asynchronous\">Asynchronous calls</link>"
 msgstr ""
 
-#: C/weatherApp.js.page:28(item/p)
+#: C/weatherApp.js.page:33(item/p)
 #, fuzzy
 #| msgid "The main program file"
 msgid "<link xref=\"#main\">The main program file</link>"
 msgstr "O ficheiro do programa principal"
 
-#: C/weatherApp.js.page:29(item/p)
+#: C/weatherApp.js.page:34(item/p)
 #, fuzzy
 #| msgid "Local library GeoNames"
 msgid "<link xref=\"#main\">Local library GeoNames</link>"
 msgstr "Biblioteca de GeoNames local"
 
-#: C/weatherApp.js.page:30(item/p)
+#: C/weatherApp.js.page:35(item/p)
 msgid "<link xref=\"#main\">Autotools and Icons</link>"
 msgstr ""
 
-#: C/weatherApp.js.page:38(section/title)
+#: C/weatherApp.js.page:43(section/title)
 msgid "Planning the graphical user interface"
 msgstr "Planificando a interface de usuario gráfica"
 
-#: C/weatherApp.js.page:39(section/p)
+#: C/weatherApp.js.page:44(section/p)
 msgid ""
 "Structuring an application for GNOME 3 means you will be using <link href="
 "\"http://developer.gnome.org/platform-overview/stable/gtk\";>GTK+</link>. The "
@@ -34065,11 +35091,11 @@ msgid ""
 "widget on the grid."
 msgstr ""
 
-#: C/weatherApp.js.page:42(section/title)
+#: C/weatherApp.js.page:47(section/title)
 msgid "Asynchronous calls"
 msgstr "Chamadas asíncronas"
 
-#: C/weatherApp.js.page:43(section/p)
+#: C/weatherApp.js.page:48(section/p)
 msgid ""
 "With many programming languages, all operations are run synchronously - you "
 "tell the program to do something, and it will wait until that action "
@@ -34083,7 +35109,7 @@ msgid ""
 "the background."
 msgstr ""
 
-#: C/weatherApp.js.page:46(section/p)
+#: C/weatherApp.js.page:51(section/p)
 msgid ""
 "In this example we have to get data from geonames.org. While we do that we "
 "want the rest of our program to continue. If we wouldn't get any information "
@@ -34093,7 +35119,7 @@ msgid ""
 "Terminal."
 msgstr ""
 
-#: C/weatherApp.js.page:49(section/title)
+#: C/weatherApp.js.page:54(section/title)
 msgid "The different parts of the program"
 msgstr "As diferentes partes do programa"
 
@@ -34877,13 +35903,13 @@ msgctxt "text"
 msgid "Window (C)"
 msgstr "Xanela (C)"
 
-#: C/window.c.page:17(info/desc) C/window.py.page:22(info/desc)
+#: C/window.c.page:17(info/desc) C/window.py.page:24(info/desc)
 #: C/window.vala.page:17(info/desc)
 msgid "A toplevel window which can contain other widgets"
 msgstr "Un botón de primeiro nivel que pode conter a outros widgets"
 
 #: C/window.c.page:20(page/title) C/window.js.page:20(page/title)
-#: C/window.py.page:25(page/title) C/window.vala.page:20(page/title)
+#: C/window.py.page:27(page/title) C/window.vala.page:20(page/title)
 msgid "Window"
 msgstr "Xanela"
 
@@ -35023,19 +36049,25 @@ msgctxt "text"
 msgid "Window (Python)"
 msgstr "Xanela (Python)"
 
-#: C/window.py.page:31(td/p)
-msgid "A minimal Gtk+ Application: a window with a title."
+#: C/window.py.page:33(td/p)
+#, fuzzy
+#| msgid "A minimal Gtk+ Application: a window with a title."
+msgid "A minimal GTK+ Application: a window with a title."
 msgstr "Un aplicativo Gtk+ mínimo: unha xanela con un título."
 
-#: C/window.py.page:34(td/p)
+#: C/window.py.page:36(td/p)
+#, fuzzy
+#| msgid ""
+#| "Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if "
+#| "you need GMenu support."
 msgid ""
-"Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if you "
-"need GMenu support."
+"Use <link xref=\"GtkApplicationWindow.py\"/> if you need <link xref=\"gmenu."
+"py\"/> support."
 msgstr ""
 "Use <link xref=\"GtkApplicationWindow.py\">Xanela de aplicativo</link> se "
 "quere compatibilidade con GMenu."
 
-#: C/window.py.page:44(section/code)
+#: C/window.py.page:46(section/code)
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -35057,18 +36089,10 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 
-#: C/window.py.page:49(section/title)
+#: C/window.py.page:51(section/title)
 msgid "Useful methods for a Window widget"
 msgstr "Métodos útiles para o widget de Xanela"
 
-#: C/window.py.page:50(section/p)
-msgid ""
-"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
-"code> sets the title as well, without the need for the line <code>window."
-"set_title(\"Welcome to GNOME\")</code>. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
-msgstr ""
-
 #: C/window.vala.page:7(info/title)
 #, fuzzy
 #| msgid "Window (Vala)"
@@ -35178,6 +36202,93 @@ msgstr ""
 "O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 
+#, fuzzy
+#~| msgid "Beginner's Tutorials (C)"
+#~ msgctxt "text"
+#~ msgid "Beginner's Tutorials (C)"
+#~ msgstr "Titoriais para principiantes (C)"
+
+#~ msgid "0 Beginner's Tutorials"
+#~ msgstr "0. Titoriais para principiantes"
+
+#~ msgid "0 Beginner's tutorials and samples"
+#~ msgstr "0. Titoriais e exemplos para principiantes"
+
+#, fuzzy
+#~| msgid "Beginner Tutorials (Vala)"
+#~ msgctxt "text"
+#~ msgid "Beginner Tutorials (Vala)"
+#~ msgstr "Titoriais para principiantes (Vala)"
+
+#, fuzzy
+#~| msgid "Guitar Tuner"
+#~ msgid "2 Guitar Tuner"
+#~ msgstr "Afinador de guitarra"
+
+#, fuzzy
+#~| msgid "Image Viewer"
+#~ msgid "1 Image Viewer"
+#~ msgstr "Visor de imaxes"
+
+#~ msgid "Line 7: We'll look at this function in a later section."
+#~ msgstr "Liña 7: esta función verase nunha sección posterior."
+
+#~ msgid ""
+#~ "Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> "
+#~ "so that we can later iterate over the <code>ClutterActor</code>s."
+#~ msgstr ""
+#~ "Liña 9: isto engade o <code>ClutterActor</code> a unha <code>GSList</"
+#~ "code> que logo se poderá iterar sobre os <code>ClutterActor</code>."
+
+#~ msgid ""
+#~ "Interesting to note is that we want to prepend the <code>ClutterActor</"
+#~ "code>s rather than append so that we avoid traversing the list upon each "
+#~ "insertion. You will often see <code>g_slist_prepend</code> followed by "
+#~ "<code>g_slist_reverse</code> because it faster than inserting many "
+#~ "objects at the end of the list."
+#~ msgstr ""
+#~ "É interesante ter en conta que prefírese antepoñer os <code>ClutterActor</"
+#~ "code> no lugar de anexalos, o que evita atravesar a lista en cada "
+#~ "inserción. A miúdo verá <code>g_slist_prepend</code> seguido de "
+#~ "<code>g_slist_reverse</code>, xa que é máis rápido que inserir varios "
+#~ "obxectos ao final da lista."
+
+#~ msgid "The address of the <code>ClutterActor</code> to animate"
+#~ msgstr "O enderezo do <code>ClutterActor</code> a animar"
+
+#~ msgid "Definitions"
+#~ msgstr "Definicións"
+
+#, fuzzy
+#~| msgid "Beginner's Tutorial (Python)"
+#~ msgctxt "text"
+#~ msgid "Beginner's Tutorial (Python)"
+#~ msgstr "Titorial para principantes (Python)"
+
+#~ msgid "0 Beginner's Tutorial"
+#~ msgstr "0. Titorial para principiantes"
+
+#~ msgid "Basic buttons"
+#~ msgstr "Botóns básicos"
+
+#~ msgid "Selectors (a recap)"
+#~ msgstr "Selectores (un resumo)"
+
+#~ msgid "More containers"
+#~ msgstr "Máis contedores"
+
+#~ msgid "More scrolling"
+#~ msgstr "Máis desprazamento"
+
+#~ msgid "\"scrollbar.py\""
+#~ msgstr "\"scrollbar.py\""
+
+#~ msgid "\"widget.py\""
+#~ msgstr "\"widget.py\""
+
+#~ msgid "Some theory to help you"
+#~ msgstr "Algunha teoría para axudarlle"
+
 #~ msgid "tiffany antopolski gmail com"
 #~ msgstr "tiffany antopolski gmail com"
 
@@ -35714,11 +36825,6 @@ msgstr ""
 #~ msgstr "Un pouco máis que un simple aplicativo Gtk «Ola mundo»."
 
 #, fuzzy
-#~| msgid "Lines 19‒23: Start the application."
-#~ msgid "Line 4: Name of the application"
-#~ msgstr "Liñas 19-23: Iniciar o aplicativo."
-
-#, fuzzy
 #~| msgid "Basic knowledge of the Python programming language"
 #~ msgid "The Python programming language."
 #~ msgstr "Coñecemento básico da linguaxe de programación Python"
@@ -35727,15 +36833,6 @@ msgstr ""
 #~ msgstr "Gtk.Button.with_label"
 
 #~ msgid ""
-#~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
-#~ "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>guitar-tuner</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>Vala</gui>, prema "
-#~ "<gui>Adiante</gui> e complete os detalles nas seguintes páxinas. Use "
-#~ "<file>guitar-tunner</file> como nome do proxecto e cartafol."
-
-#~ msgid ""
 #~ "Click <gui>Finished</gui> and the project will be created for you. Open "
 #~ "<file>src/guitar_tuner.vala</file> from the <gui>Project</gui> or "
 #~ "<gui>File</gui> tabs. You should see some code which starts with the "
diff --git a/platform-overview/gl/gl.po b/platform-overview/gl/gl.po
index bf58a30..943c2f8 100644
--- a/platform-overview/gl/gl.po
+++ b/platform-overview/gl/gl.po
@@ -3,12 +3,12 @@
 # This file is distributed under the same license as the gnome-devel-docs package.
 # Fran Diéguez <frandieguez gnome org>, 2011.
 # Leandro Regueiro <leandro regueiro gmail com>, 2011.
-# Fran Dieguez <frandieguez gnome org>, 2012.
+# Fran Dieguez <frandieguez gnome org>, 2012, 2013.
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
 "POT-Creation-Date: 2012-10-31 14:54+0000\n"
-"PO-Revision-Date: 2012-12-25 15:47+0200\n"
+"PO-Revision-Date: 2013-03-27 13:43+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
 "Language-Team: gnome-l10n-gl gnome org\n"
 "Language: gl\n"
@@ -24,12 +24,8 @@ msgstr ""
 msgctxt "_"
 msgid "translator-credits"
 msgstr ""
-"Fran Diéguez <frandieguez gnome org>, 2011-2013.\n"
-"Leandro Regueiro <leandro regueiro gmail com>, 2011.\n"
-"\n"
-"Proxecto Trasno - Adaptación do software libre á lingua galega.\n"
-"Se desexas colaborar connosco podes atopar máis información en "
-"http://www.trasno.net";
+"Fran Dieguez <frandieguez gnome org>, 2009-2013.\n"
+"Leandro Regueiro <leandro regueiro gmail com>, 2011."
 
 #: C/index.page:6(info/desc)
 msgid "Overview of the powerful technologies inside the GNOME platform."


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