[gnome-devel-docs] Updated German translation



commit aefd1d12b0046ba7423040b87221c7239cd7cecf
Author: Mario Blättermann <mario blaettermann gmail com>
Date:   Thu Apr 14 11:39:06 2016 +0200

    Updated German translation

 platform-demos/de/de.po |34087 +++++++++++++++++++++++++++++++----------------
 1 files changed, 22848 insertions(+), 11239 deletions(-)
---
diff --git a/platform-demos/de/de.po b/platform-demos/de/de.po
index fbab97d..1e73627 100644
--- a/platform-demos/de/de.po
+++ b/platform-demos/de/de.po
@@ -1,21 +1,21 @@
 # German translation for gnome-devel-docs (tutorial demos).
 # Copyright (C) 2011 gnome-devel-docs's COPYRIGHT HOLDER
 # This file is distributed under the same license as the gnome-devel-docs package.
-# Mario Blättermann <mario blaettermann gmail com>, 2011, 2013.
+# Mario Blättermann <mario blaettermann gmail com>, 2011, 2013, 2016.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2014-02-04 15:04+0000\n"
-"PO-Revision-Date: 2014-01-26 19:15+0100\n"
-"Last-Translator: Benjamin Steinwender <b stbe at>\n"
+"POT-Creation-Date: 2016-04-14 07:34+0000\n"
+"PO-Revision-Date: 2016-04-14 11:36+0200\n"
+"Last-Translator: Mario Blättermann <mario blaettermann gmail com>\n"
 "Language-Team: German <gnome-de gnome org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.6.3\n"
+"X-Generator: Poedit 1.8.7.1\n"
 
 #. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
 msgctxt "_"
@@ -27,250 +27,203 @@ msgstr "Mario Blättermann <mario blaettermann gmail com>, 2011, 2013"
 #. 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/02_welcome_to_the_grid.js.page:94
+#: C/02_welcome_to_the_grid.js.page:95
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
-msgstr ""
-"external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
+msgid "external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
+msgstr "external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:149
+#: C/02_welcome_to_the_grid.js.page:150
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
-msgstr ""
-"external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
+msgid "external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
+msgstr "external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:166
+#: C/02_welcome_to_the_grid.js.page:167
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
-msgstr ""
-"external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
+msgid "external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
+msgstr "external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:196
+#: C/02_welcome_to_the_grid.js.page:197
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
-msgstr ""
-"external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
+msgid "external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
+msgstr "external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:205
+#: C/02_welcome_to_the_grid.js.page:206
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
-msgstr ""
-"external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
+msgid "external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
+msgstr "external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:216
+#: C/02_welcome_to_the_grid.js.page:217
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
-msgstr ""
-"external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
+msgid "external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
+msgstr "external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:226
+#: C/02_welcome_to_the_grid.js.page:227
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
-msgstr ""
-"external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
+msgid "external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
+msgstr "external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
 
 #. (itstool) path: 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/02_welcome_to_the_grid.js.page:248
+#: C/02_welcome_to_the_grid.js.page:249
 msgctxt "_"
-msgid ""
-"external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
-msgstr ""
-"external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
+msgid "external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
+msgstr "external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
 
 #. (itstool) path: credit/name
-#: C/02_welcome_to_the_grid.js.page:14 C/03_getting_the_signal.js.page:15
-#: C/aboutdialog.js.page:11 C/button.js.page:12 C/checkbutton.js.page:12
-#: C/comboboxtext.js.page:14 C/combobox.js.page:16 C/dialog.js.page:12
-#: C/entry.js.page:12 C/grid.js.page:17 C/hellognome.js.page:11
-#: C/image.js.page:11 C/label.js.page:12 C/linkbutton.js.page:12
-#: C/messagedialog.js.page:15 C/progressbar.js.page:11
-#: C/radiobutton.js.page:12 C/scale.js.page:12 C/set-up-gedit.js.page:11
-#: C/spinbutton.js.page:15 C/spinner.js.page:12 C/statusbar.js.page:12
-#: C/switch.js.page:12 C/textview.js.page:16 C/togglebutton.js.page:12
-#: C/treeview_simple_liststore.js.page:15 C/window.js.page:12
+#: C/02_welcome_to_the_grid.js.page:15 C/03_getting_the_signal.js.page:16 C/aboutdialog.js.page:12
+#: C/button.js.page:13 C/checkbutton.js.page:13 C/comboboxtext.js.page:15 C/combobox.js.page:17 
C/dialog.js.page:13
+#: C/entry.js.page:13 C/grid.js.page:18 C/hellognome.js.page:12 C/image.js.page:12 C/label.js.page:13
+#: C/linkbutton.js.page:13 C/messagedialog.js.page:16 C/progressbar.js.page:12 C/radiobutton.js.page:13
+#: C/scale.js.page:13 C/set-up-gedit.js.page:12 C/spinbutton.js.page:16 C/spinner.js.page:13 
C/statusbar.js.page:13
+#: C/switch.js.page:13 C/textview.js.page:17 C/togglebutton.js.page:13 C/treeview_simple_liststore.js.page:16
+#: C/window.js.page:13
 msgid "Taryn Fox"
 msgstr "Taryn Fox"
 
 #. (itstool) path: credit/years
-#: C/02_welcome_to_the_grid.js.page:16 C/03_getting_the_signal.js.page:17
-#: C/aboutdialog.c.page:16 C/aboutdialog.js.page:13 C/aboutdialog.py.page:15
-#: C/aboutdialog.vala.page:16 C/beginner.js.page:12 C/button.c.page:16
-#: C/button.js.page:14 C/button.py.page:16 C/button.vala.page:15
-#: C/buttonbox.py.page:16 C/checkbutton.c.page:14 C/checkbutton.js.page:14
-#: C/checkbutton.py.page:15 C/checkbutton.vala.page:14
-#: C/colorbutton.py.page:15 C/colorbutton.vala.page:16
-#: C/comboboxtext.js.page:16 C/combobox.c.page:14 C/combobox.js.page:18
-#: C/combobox.py.page:16 C/combobox.vala.page:14
-#: C/combobox_multicolumn.py.page:15 C/dialog.c.page:16 C/dialog.js.page:14
-#: C/dialog.py.page:16 C/dialog.vala.page:14 C/entry.c.page:14
-#: C/entry.js.page:14 C/entry.py.page:16 C/entry.vala.page:14
-#: C/filechooserdialog.py.page:18 C/filechooserdialog.vala.page:17
-#: C/fontchooserwidget.py.page:16 C/gmenu.c.page:14 C/gmenu.js.page:14
-#: C/gmenu.py.page:16 C/gmenu.py.page:22 C/gmenu.vala.page:15 C/grid.c.page:14
-#: C/grid.js.page:14 C/grid.py.page:16 C/grid.py.page:22 C/grid.vala.page:16
-#: C/GtkApplicationWindow.c.page:14 C/GtkApplicationWindow.js.page:14
-#: C/GtkApplicationWindow.py.page:16 C/GtkApplicationWindow.py.page:21
-#: C/GtkApplicationWindow.vala.page:14 C/guitar-tuner.js.page:13
-#: C/hellognome.js.page:13 C/hello-world.c.page:16 C/hello-world.js.page:16
-#: C/hello-world.py.page:16 C/hello-world.vala.page:16 C/image.c.page:14
-#: C/image.js.page:13 C/image.py.page:16 C/image.vala.page:14
-#: C/label.c.page:15 C/label.js.page:14 C/label.py.page:17 C/label.py.page:22
-#: C/label.vala.page:14 C/linkbutton.c.page:14 C/linkbutton.js.page:14
-#: C/linkbutton.py.page:15 C/linkbutton.vala.page:14 C/menubar.c.page:16
-#: C/menubar.py.page:16 C/menubar.py.page:21 C/menubar.vala.page:16
-#: C/menubutton.js.page:14 C/menubutton.py.page:15 C/menubutton.py.page:21
-#: C/menubutton.vala.page:14 C/messagedialog.c.page:15
-#: C/messagedialog.js.page:17 C/messagedialog.py.page:15
-#: C/messagedialog.vala.page:14 C/model-view-controller.py.page:22
-#: C/paned.c.page:14 C/paned.py.page:15 C/progressbar.c.page:15
-#: C/progressbar.js.page:13 C/progressbar.py.page:15
-#: C/progressbar.vala.page:14 C/properties.py.page:22 C/radiobutton.c.page:16
-#: C/radiobutton.js.page:14 C/radiobutton.py.page:16
-#: C/radiobutton.vala.page:17 C/response-type.page:10 C/scale.c.page:16
-#: C/scale.js.page:14 C/scale.py.page:16 C/scale.vala.page:16
-#: C/scrolledwindow.c.page:16 C/scrolledwindow.py.page:15
-#: C/scrolledwindow.vala.page:15 C/separator.py.page:16
-#: C/set-up-gedit.js.page:13 C/signals-callbacks.py.page:22
-#: C/spinbutton.c.page:17 C/spinbutton.js.page:17 C/spinbutton.py.page:16
-#: C/spinbutton.vala.page:16 C/spinner.c.page:15 C/spinner.js.page:14
-#: C/spinner.py.page:15 C/spinner.vala.page:14 C/statusbar.c.page:18
-#: C/statusbar.js.page:14 C/statusbar.py.page:16 C/statusbar.vala.page:17
-#: C/strings.py.page:22 C/switch.c.page:14 C/switch.js.page:14
-#: C/switch.py.page:15 C/switch.vala.page:18 C/textview.c.page:14
-#: C/textview.js.page:18 C/textview.py.page:23 C/textview.vala.page:14
-#: C/togglebutton.c.page:18 C/togglebutton.js.page:14
-#: C/togglebutton.py.page:15 C/togglebutton.vala.page:17 C/toolbar.c.page:16
-#: C/toolbar.js.page:14 C/toolbar.py.page:16 C/toolbar.vala.page:15
-#: C/toolbar_builder.py.page:17 C/toolbar_builder.py.page:23
-#: C/toolbar_builder.vala.page:16 C/tooltip.py.page:16
-#: C/treeview_advanced_liststore.py.page:15
-#: C/treeview_cellrenderertoggle.py.page:15
-#: C/treeview_simple_liststore.js.page:17
-#: C/treeview_simple_liststore.py.page:16
-#: C/treeview_simple_liststore.vala.page:16 C/treeview_treestore.py.page:16
-#: C/tutorial.py.page:16 C/weatherApp.js.page:13 C/weatherAppMain.js.page:12
-#: C/weatherAutotools.js.page:12 C/weatherGeonames.js.page:12
-#: C/window.c.page:14 C/window.js.page:14 C/window.py.page:16
-#: C/window.py.page:21 C/window.vala.page:14
+#: C/02_welcome_to_the_grid.js.page:17 C/03_getting_the_signal.js.page:18 C/aboutdialog.c.page:17
+#: C/aboutdialog.js.page:14 C/aboutdialog.py.page:16 C/aboutdialog.vala.page:17 C/beginner.js.page:13
+#: C/button.c.page:17 C/button.js.page:15 C/button.py.page:17 C/button.vala.page:16 C/buttonbox.py.page:17
+#: C/checkbutton.c.page:15 C/checkbutton.js.page:15 C/checkbutton.py.page:16 C/checkbutton.vala.page:15
+#: C/colorbutton.py.page:16 C/colorbutton.vala.page:17 C/comboboxtext.js.page:17 C/combobox.c.page:15
+#: C/combobox.js.page:19 C/combobox.py.page:17 C/combobox.vala.page:15 C/combobox_multicolumn.py.page:16
+#: C/dialog.c.page:17 C/dialog.js.page:15 C/dialog.py.page:17 C/dialog.vala.page:15 C/entry.c.page:15
+#: C/entry.js.page:15 C/entry.py.page:17 C/entry.vala.page:15 C/filechooserdialog.py.page:19
+#: C/filechooserdialog.vala.page:18 C/fontchooserwidget.py.page:17 C/gmenu.c.page:15 C/gmenu.js.page:15
+#: C/gmenu.py.page:17 C/gmenu.py.page:23 C/gmenu.vala.page:16 C/grid.c.page:15 C/grid.js.page:15 
C/grid.py.page:17
+#: C/grid.py.page:23 C/grid.vala.page:17 C/GtkApplicationWindow.c.page:15 C/GtkApplicationWindow.js.page:15
+#: C/GtkApplicationWindow.py.page:17 C/GtkApplicationWindow.py.page:22 C/GtkApplicationWindow.vala.page:15
+#: C/guitar-tuner.js.page:14 C/hellognome.js.page:14 C/hello-world.c.page:17 C/hello-world.js.page:17
+#: C/hello-world.py.page:17 C/hello-world.vala.page:17 C/image.c.page:15 C/image.js.page:14 
C/image.py.page:17
+#: C/image.vala.page:15 C/label.c.page:16 C/label.js.page:15 C/label.py.page:19 C/label.py.page:24
+#: C/label.vala.page:15 C/linkbutton.c.page:15 C/linkbutton.js.page:15 C/linkbutton.py.page:16
+#: C/linkbutton.vala.page:15 C/menubar.c.page:17 C/menubar.py.page:17 C/menubar.py.page:22 
C/menubar.vala.page:17
+#: C/menubutton.js.page:15 C/menubutton.py.page:16 C/menubutton.py.page:22 C/menubutton.vala.page:15
+#: C/messagedialog.c.page:16 C/messagedialog.js.page:18 C/messagedialog.py.page:16 
C/messagedialog.vala.page:15
+#: C/model-view-controller.py.page:23 C/paned.c.page:15 C/paned.py.page:16 C/progressbar.c.page:16
+#: C/progressbar.js.page:14 C/progressbar.py.page:16 C/progressbar.vala.page:15 C/properties.py.page:23
+#: C/radiobutton.c.page:17 C/radiobutton.js.page:15 C/radiobutton.py.page:17 C/radiobutton.vala.page:18
+#: C/response-type.page:11 C/scale.c.page:17 C/scale.js.page:15 C/scale.py.page:17 C/scale.vala.page:17
+#: C/scrolledwindow.c.page:17 C/scrolledwindow.py.page:16 C/scrolledwindow.vala.page:16 
C/separator.py.page:17
+#: C/set-up-gedit.js.page:14 C/signals-callbacks.py.page:23 C/spinbutton.c.page:18 C/spinbutton.js.page:18
+#: C/spinbutton.py.page:17 C/spinbutton.vala.page:17 C/spinner.c.page:16 C/spinner.js.page:15 
C/spinner.py.page:16
+#: C/spinner.vala.page:15 C/statusbar.c.page:19 C/statusbar.js.page:15 C/statusbar.py.page:17
+#: C/statusbar.vala.page:18 C/strings.py.page:23 C/switch.c.page:15 C/switch.js.page:15 C/switch.py.page:16
+#: C/switch.vala.page:19 C/textview.c.page:15 C/textview.js.page:19 C/textview.py.page:24 
C/textview.vala.page:15
+#: C/togglebutton.c.page:19 C/togglebutton.js.page:15 C/togglebutton.py.page:16 C/togglebutton.vala.page:18
+#: C/toolbar.c.page:17 C/toolbar.js.page:15 C/toolbar.py.page:17 C/toolbar.vala.page:16 
C/toolbar_builder.py.page:18
+#: C/toolbar_builder.py.page:24 C/toolbar_builder.vala.page:17 C/tooltip.py.page:17
+#: C/treeview_advanced_liststore.py.page:16 C/treeview_cellrenderertoggle.py.page:16
+#: C/treeview_simple_liststore.js.page:18 C/treeview_simple_liststore.py.page:17
+#: C/treeview_simple_liststore.vala.page:17 C/treeview_treestore.py.page:17 C/tutorial.py.page:17
+#: C/weatherApp.js.page:14 C/weatherAppMain.js.page:13 C/weatherAutotools.js.page:13 
C/weatherGeonames.js.page:13
+#: C/window.c.page:15 C/window.js.page:15 C/window.py.page:17 C/window.py.page:22 C/window.vala.page:15
 msgid "2012"
 msgstr "2012"
 
 #. (itstool) path: info/desc
-#: C/02_welcome_to_the_grid.js.page:19
+#: C/02_welcome_to_the_grid.js.page:20
 msgid "Learn how to lay out UI components, like Images and Labels."
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/02_welcome_to_the_grid.js.page:22
+#: C/02_welcome_to_the_grid.js.page:23
 msgid "2. Welcome to the Grid"
 msgstr ""
 
 #. (itstool) path: synopsis/p
-#: C/02_welcome_to_the_grid.js.page:24
+#: C/02_welcome_to_the_grid.js.page:25
 msgid ""
-"This tutorial will show you how to create basic widgets, or parts of the "
-"GNOME user interface, like Images and Labels. You'll then learn how to "
-"arrange them all in a Grid, which lets you put widgets exactly where you "
-"want them."
+"This tutorial will show you how to create basic widgets, or parts of the GNOME user interface, like Images 
and "
+"Labels. You'll then learn how to arrange them all in a Grid, which lets you put widgets exactly where you 
want "
+"them."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:25
+#: C/02_welcome_to_the_grid.js.page:26
 msgid ""
-"Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
-"series</link> already? You'll want to do so before continuing."
+"Have you taken <link xref=\"hellognome.js\">the first tutorial in this series</link> already? You'll want 
to do so "
+"before continuing."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:31
+#: C/02_welcome_to_the_grid.js.page:32
 msgid "Going native"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:33
+#: C/02_welcome_to_the_grid.js.page:34
 msgid ""
-"In the last tutorial, we created what was basically a GNOME window frame for "
-"a web app. All the GNOME-specific code we needed to learn revolved around "
-"putting the WebView -- the widget containing our application -- into an "
-"ApplicationWindow, and telling it to display. The application itself was "
-"written in HTML and JavaScript, just like most pages on the web."
+"In the last tutorial, we created what was basically a GNOME window frame for a web app. All the 
GNOME-specific "
+"code we needed to learn revolved around putting the WebView -- the widget containing our application -- 
into an "
+"ApplicationWindow, and telling it to display. The application itself was written in HTML and JavaScript, 
just like "
+"most pages on the web."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:34
+#: C/02_welcome_to_the_grid.js.page:35
 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+."
+"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+."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:35
+#: C/02_welcome_to_the_grid.js.page:36
 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 "
+"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 ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:39
+#: C/02_welcome_to_the_grid.js.page:40
 msgid "Setting up our application"
 msgstr "Entwurf der Anwendung"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:41
+#: C/02_welcome_to_the_grid.js.page:42
 msgid ""
-"Before we dig out any widgets from the GTK+ toolbox, we first need to write "
-"the basic boilerplate code that our application requires."
+"Before we dig out any widgets from the GTK+ toolbox, we first need to write the basic boilerplate code that 
our "
+"application requires."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:42 C/comboboxtext.js.page:30
-#: C/textview.js.page:38
+#: C/02_welcome_to_the_grid.js.page:43 C/comboboxtext.js.page:31 C/textview.js.page:39
 #, no-wrap
 msgid ""
 "\n"
@@ -279,24 +232,28 @@ msgid ""
 "const Gtk = imports.gi.Gtk;\n"
 "const Lang = imports.lang;\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:48
+#: C/02_welcome_to_the_grid.js.page:49
 msgid ""
-"This part always goes at the start of your code. Depending on what you'll be "
-"doing with it, you may want to declare more imports here. What we're writing "
-"today is pretty basic, so these are all we need; Gtk for the widgets, and "
-"Lang so we can use Lang.bind to connect our application's activate and "
-"startup signals to the requisite functions."
+"This part always goes at the start of your code. Depending on what you'll be doing with it, you may want to 
"
+"declare more imports here. What we're writing today is pretty basic, so these are all we need; Gtk for the "
+"widgets, and Lang so we can use Lang.bind to connect our application's activate and startup signals to the "
+"requisite functions."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:49
+#: C/02_welcome_to_the_grid.js.page:50
 msgid "Speaking of which:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:50
+#: C/02_welcome_to_the_grid.js.page:51
 #, no-wrap
 msgid ""
 "\n"
@@ -322,25 +279,43 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:73
+#: C/02_welcome_to_the_grid.js.page:74
 msgid ""
-"This is the start of the application itself, and the _init function which "
-"creates it. It tells _buildUI to create an ApplicationWindow, which we're "
-"going to call _window, and it tells our window to present itself whenever "
-"needed."
+"This is the start of the application itself, and the _init function which creates it. It tells _buildUI to 
create "
+"an ApplicationWindow, which we're going to call _window, and it tells our window to present itself whenever 
needed."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:74
-msgid ""
-"This part, again, is pretty much copy-and-paste, but you always want to give "
-"your application a unique name."
+#: C/02_welcome_to_the_grid.js.page:75
+msgid "This part, again, is pretty much copy-and-paste, but you always want to give your application a 
unique name."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:76
+#: C/02_welcome_to_the_grid.js.page:77
 #, no-wrap
 msgid ""
 "\n"
@@ -354,116 +329,125 @@ msgid ""
 "            border_width: 10,\n"
 "            title: \"Welcome to the Grid\"});\n"
 msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:87
+#: C/02_welcome_to_the_grid.js.page:88
 msgid ""
-"Finally, we start off the _buildUI function by creating a new "
-"ApplicationWindow. We specify that it goes with this application, that it "
-"should appear in the center of the screen, and that there should be at least "
-"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."
+"Finally, we start off the _buildUI function by creating a new ApplicationWindow. We specify that it goes 
with this "
+"application, that it should appear in the center of the screen, and that there should be at least 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 ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:91
+#: C/02_welcome_to_the_grid.js.page:92
 msgid "Reaching into the GTK+ toolbox"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:92
-msgid ""
-"What widgets should we use? Well, let's say we want to write an application "
-"that looks like this:"
+#: C/02_welcome_to_the_grid.js.page:93
+msgid "What widgets should we use? Well, let's say we want to write an application that looks like this:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:96
+#: C/02_welcome_to_the_grid.js.page:97
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:97
+#: C/02_welcome_to_the_grid.js.page:98
 #, no-wrap
 msgid ""
 "\n"
 "        // Create an image\n"
 "        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
 msgstr ""
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:102
+#: C/02_welcome_to_the_grid.js.page:103
 msgid ""
-"You can download the image file used in this example <link href=\"https://";
-"live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=gnome-image."
-"png\">here</link>. Be sure to put it in the same directory as the code "
-"you're writing."
+"You can download the image file used in this example <link href=\"https://live.gnome.org/TarynFox?";
+"action=AttachFile&amp;do=get&amp;target=gnome-image.png\">here</link>. Be sure to put it in the same 
directory as "
+"the code you're writing."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:104
+#: C/02_welcome_to_the_grid.js.page:105
 #, no-wrap
 msgid ""
 "\n"
 "        // 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: \"Welcome to GNOME, too!\" });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:108
+#: C/02_welcome_to_the_grid.js.page:109
 msgid ""
-"That code adds in the label beneath. You can see how we create widgets, "
-"here; each one is a part of Gtk, and we can give it properties that "
-"customize how it behaves. In this case, we set the Image's file property to "
-"be the filename of the picture we want, and the Label's label property to be "
-"the sentence that we want beneath the picture."
+"That code adds in the label beneath. You can see how we create widgets, here; each one is a part of Gtk, 
and we "
+"can give it properties that customize how it behaves. In this case, we set the Image's file property to 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 ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:109
+#: C/02_welcome_to_the_grid.js.page:110
 msgid ""
-"Yes, it sounds redundant for a Label to have a label property, but it's not. "
-"Other widgets that contain text have a label property, so it's "
-"<em>consistent</em> for the Label widget to have one too."
+"Yes, it sounds redundant for a Label to have a label property, but it's not. Other widgets that contain 
text have "
+"a label property, so it's <em>consistent</em> for the Label widget to have one too."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:110
+#: C/02_welcome_to_the_grid.js.page:111
 msgid ""
-"We can't just add these widgets to our window in order, though, the same way "
-"HTML elements appear in the order you write them. That's because an "
-"ApplicationWindow can only contain one widget."
+"We can't just add these widgets to our window in order, though, the same way HTML elements appear in the 
order you "
+"write them. That's because an ApplicationWindow can only contain one widget."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:111
+#: C/02_welcome_to_the_grid.js.page:112
 msgid ""
-"How do we get around that? By making that one widget a container widget, "
-"which can hold more than one widget and organize them inside it. Behold: The "
-"Grid."
+"How do we get around that? By making that one widget a container widget, which can hold more than one 
widget and "
+"organize them inside it. Behold: The Grid."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:112
+#: C/02_welcome_to_the_grid.js.page:113
 #, no-wrap
 msgid ""
 "\n"
 "        // Create the Grid\n"
 "        this._grid = new Gtk.Grid ();\n"
 msgstr ""
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ();\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:117
+#: C/02_welcome_to_the_grid.js.page:118
 msgid ""
-"We're not giving it any properties yet. Those will come later, as we learn "
-"how to use the Grid's powers. First, let's attach the Image and Label we "
-"made to our Grid."
+"We're not giving it any properties yet. Those will come later, as we learn how to use the Grid's powers. 
First, "
+"let's attach the Image and Label we made to our Grid."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:118
+#: C/02_welcome_to_the_grid.js.page:119
 #, no-wrap
 msgid ""
 "\n"
@@ -471,38 +455,39 @@ msgid ""
 "        this._grid.attach (this._image, 0, 0, 1, 1);\n"
 "        this._grid.attach (this._label, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Attach the image and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:124
-msgid ""
-"This code looks awfully complicated, but it's not. Here's what those numbers "
-"mean:"
+#: C/02_welcome_to_the_grid.js.page:125
+msgid "This code looks awfully complicated, but it's not. Here's what those numbers mean:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/02_welcome_to_the_grid.js.page:126
+#: C/02_welcome_to_the_grid.js.page:127
 msgid ""
-"The <em>first</em> number is what left-to-right position to put things in, "
-"starting from 0. Any widget that uses a 0 here goes all the way to the left."
+"The <em>first</em> number is what left-to-right position to put things in, starting from 0. Any widget that 
uses a "
+"0 here goes all the way to the left."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/02_welcome_to_the_grid.js.page:127
+#: C/02_welcome_to_the_grid.js.page:128
 msgid ""
-"The <em>second</em> number is what top-to-botton position to put a given "
-"widget in, starting from 0. The Label goes beneath the Image, so we give the "
-"Image a 0 and the Label a 1 here."
+"The <em>second</em> number is what top-to-bottom position to put a given widget in, starting from 0. The 
Label "
+"goes beneath the Image, so we give the Image a 0 and the Label a 1 here."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/02_welcome_to_the_grid.js.page:128
+#: C/02_welcome_to_the_grid.js.page:129
 msgid ""
-"The <em>third</em> and <em>fourth</em> numbers are how many columns and rows "
-"a widget should take up. We'll see how these work in a minute."
+"The <em>third</em> and <em>fourth</em> numbers are how many columns and rows a widget should take up. We'll 
see "
+"how these work in a minute."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:131
+#: C/02_welcome_to_the_grid.js.page:132
 #, no-wrap
 msgid ""
 "\n"
@@ -519,53 +504,62 @@ msgid ""
 "let app = new WelcomeToTheGrid ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:145
+#: C/02_welcome_to_the_grid.js.page:146
 msgid ""
-"Now that we've created the Grid and attached all our widgets to it, we add "
-"it to the window and tell the window to show itself, as the last part of the "
-"_buildUI function. As always, to finish up we create a new instance of the "
+"Now that we've created the Grid and attached all our widgets to it, we add it to the window and tell the 
window to "
+"show itself, as the last part of the _buildUI function. As always, to finish up we create a new instance of 
the "
 "application's class and tell it to run."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:146
+#: C/02_welcome_to_the_grid.js.page:147
 msgid ""
-"Save your application as welcome_to_the_grid.js. Then, to run your "
-"application just open a terminal, go to the directory where your application "
-"is at, and type"
+"Save your application as welcome_to_the_grid.js. Then, to run your application just open a terminal, go to 
the "
+"directory where your application is at, and type"
 msgstr ""
 
 #. (itstool) path: section/screen
-#: C/02_welcome_to_the_grid.js.page:147
+#: C/02_welcome_to_the_grid.js.page:148
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
 msgstr " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:151
+#: C/02_welcome_to_the_grid.js.page:152
 msgid ""
-"There we go! But wait. That doesn't look right. Why is the Label crammed up "
-"next to the Image like that? That doesn't look as nice, and it makes it "
-"harder to read. What can we do about this?"
+"There we go! But wait. That doesn't look right. Why is the Label crammed up next to the Image like that? 
That "
+"doesn't look as nice, and it makes it harder to read. What can we do about this?"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:155
+#: C/02_welcome_to_the_grid.js.page:156
 msgid "Tweaking the Grid"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:157
+#: C/02_welcome_to_the_grid.js.page:158
 msgid ""
-"One thing we can do, is we can give the Label a margin_top property when we "
-"create it. This works sort of like setting a margin for an HTML element "
-"using inline CSS styling."
+"One thing we can do, is we can give the Label a margin_top property when we create it. This works sort of 
like "
+"setting a margin for an HTML element using inline CSS styling."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:158
+#: C/02_welcome_to_the_grid.js.page:159
 #, no-wrap
 msgid ""
 "\n"
@@ -574,24 +568,28 @@ msgid ""
 "            label: \"Welcome to GNOME, too!\",\n"
 "            margin_top: 20 });\n"
 msgstr ""
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            margin_top: 20 });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:165
+#: C/02_welcome_to_the_grid.js.page:166
 msgid ""
-"Of course, if we do that then if we replace the Label with something else -- "
-"or add in another widget -- then we have to repeat the margin_top on it too. "
-"Otherwise we end up with something like this:"
+"Of course, if we do that then if we replace the Label with something else -- or add in another widget -- 
then we "
+"have to repeat the margin_top on it too. Otherwise we end up with something like this:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:168
+#: C/02_welcome_to_the_grid.js.page:169
 msgid ""
-"We could give the Image a margin_bottom property, but that won't work when "
-"the new Label is in a separate column. So how about we try this instead:"
+"We could give the Image a margin_bottom property, but that won't work when the new Label is in a separate 
column. "
+"So how about we try this instead:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:169
+#: C/02_welcome_to_the_grid.js.page:170
 #, no-wrap
 msgid ""
 "\n"
@@ -599,38 +597,38 @@ msgid ""
 "        this._grid = new Gtk.Grid ({\n"
 "            row_spacing: 20 });\n"
 msgstr ""
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_spacing: 20 });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:175
-msgid ""
-"That makes it so that there are always 20 pixels of space in between each "
-"horizontal row."
+#: C/02_welcome_to_the_grid.js.page:176
+msgid "That makes it so that there are always 20 pixels of space in between each horizontal row."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:176
+#: C/02_welcome_to_the_grid.js.page:177
 msgid ""
-"Yes, you can also set the column_spacing property on a Grid, or the "
-"margin_left and margin_right properties on any widget. Try them out, if you "
-"like!"
+"Yes, you can also set the column_spacing property on a Grid, or the margin_left and margin_right properties 
on any "
+"widget. Try them out, if you like!"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:180
+#: C/02_welcome_to_the_grid.js.page:181
 msgid "Adding more widgets"
-msgstr ""
+msgstr "Weitere Widgets hinzufügen"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:182
+#: C/02_welcome_to_the_grid.js.page:183
 msgid ""
-"If we did want to add a second Label, how would we do it so that it actually "
-"looked like it belonged there? One way is to center the Image on top, so "
-"that it's above both Labels instead of just the one on the left. That's "
+"If we did want to add a second Label, how would we do it so that it actually looked like it belonged there? 
One "
+"way is to center the Image on top, so that it's above both Labels instead of just the one on the left. 
That's "
 "where those other numbers in the Grid's attach method come in:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:183
+#: C/02_welcome_to_the_grid.js.page:184
 #, no-wrap
 msgid ""
 "\n"
@@ -643,62 +641,65 @@ msgid ""
 "        this._grid.attach (this._label, 0, 1, 1, 1);\n"
 "        this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" });\n"
+"\n"
+"        // Attach the image and labels to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:194
+#: C/02_welcome_to_the_grid.js.page:195
 msgid ""
-"After we create the second Label, we attach it to the Grid to the right of "
-"the first Label. Remember, the first two numbers count columns and rows from "
-"left to right and top to bottom, starting with 0. So if the first Label is "
-"in column 0 and row 1, we can put the second in column 1 and row 1 to put it "
-"to the right of the first Label."
+"After we create the second Label, we attach it to the Grid to the right of the first Label. Remember, the 
first "
+"two numbers count columns and rows from left to right and top to bottom, starting with 0. So if the first 
Label is "
+"in column 0 and row 1, we can put the second in column 1 and row 1 to put it to the right of the first 
Label."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:195
+#: C/02_welcome_to_the_grid.js.page:196
 msgid ""
-"Note the number 2 in the attach statement for the Image. That's what does "
-"the trick here. That number is how many columns the Image spans, remember? "
-"So when we put it together, we get something like this:"
+"Note the number 2 in the attach statement for the Image. That's what does the trick here. That number is 
how many "
+"columns the Image spans, remember? So when we put it together, we get something like this:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:198
+#: C/02_welcome_to_the_grid.js.page:199
 msgid "There are two things you should take note of, here."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/02_welcome_to_the_grid.js.page:200
+#: C/02_welcome_to_the_grid.js.page:201
 msgid ""
-"Setting the Image to span two columns doesn't stretch the picture itself "
-"horizontally. Instead, it stretches the invisible box taken up by the Image "
-"widget to fill both columns, then places the Image in the center of that box."
+"Setting the Image to span two columns doesn't stretch the picture itself horizontally. Instead, it 
stretches the "
+"invisible box taken up by the Image widget to fill both columns, then places the Image in the center of 
that box."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/02_welcome_to_the_grid.js.page:201
+#: C/02_welcome_to_the_grid.js.page:202
 msgid ""
-"Even though we've set the Grid's row_spacing and the ApplicationWindow's "
-"border_width properties, we haven't yet set anything that puts a border in "
-"between the two Labels. They were separate earlier when the Image was in "
-"only one column, but now that it spans both GNOME doesn't see a reason to "
-"keep them apart."
+"Even though we've set the Grid's row_spacing and the ApplicationWindow's border_width properties, we 
haven't yet "
+"set anything that puts a border in between the two Labels. They were separate earlier when the Image was in 
only "
+"one column, but now that it spans both GNOME doesn't see a reason to keep them apart."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:204
+#: C/02_welcome_to_the_grid.js.page:205
 msgid ""
-"There are at least three ways we can get around that last one. First, we can "
-"set a margin_left or margin_right on one of the Labels:"
+"There are at least three ways we can get around that last one. First, we can set a margin_left or 
margin_right on "
+"one of the Labels:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:207
-msgid "Second, we can set the Grid's column_homogenous property to true."
+#: C/02_welcome_to_the_grid.js.page:208
+msgid "Second, we can set the Grid's column_homogeneous property to true."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:208
+#: C/02_welcome_to_the_grid.js.page:209
 #, no-wrap
 msgid ""
 "\n"
@@ -707,21 +708,24 @@ msgid ""
 "            column_homogeneous: true,\n"
 "            row_spacing: 20 });\n"
 msgstr ""
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_homogeneous: true,\n"
+"            row_spacing: 20 });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:215
+#: C/02_welcome_to_the_grid.js.page:216
 msgid "That makes it look something like this:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:218
-msgid ""
-"And third, we can set the Grid's column_spacing property, the same way we "
-"set its row_spacing."
+#: C/02_welcome_to_the_grid.js.page:219
+msgid "And third, we can set the Grid's column_spacing property, the same way we set its row_spacing."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:219
+#: C/02_welcome_to_the_grid.js.page:220
 #, no-wrap
 msgid ""
 "\n"
@@ -730,29 +734,31 @@ msgid ""
 "            column_spacing: 20,\n"
 "            row_spacing: 20 });\n"
 msgstr ""
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:225
+#: C/02_welcome_to_the_grid.js.page:226
 msgid "That makes it look like this:"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:230
-#, fuzzy
-#| msgid "Loading the images"
+#: C/02_welcome_to_the_grid.js.page:231
 msgid "Using stock images"
-msgstr "Laden der Bilder"
+msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:232
+#: C/02_welcome_to_the_grid.js.page:233
 msgid ""
-"GNOME has a lot of stock images on hand already, that we can use if we don't "
-"feel like creating our own or if we want a universally-recognized icon. "
-"Here's how we create a stock image, compared to how we create a normal one:"
+"GNOME has a lot of stock images on hand already, that we can use if we don't feel like creating our own or 
if we "
+"want a universally-recognized icon. Here's how we create a stock image, compared to how we create a normal 
one:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:233
+#: C/02_welcome_to_the_grid.js.page:234
 #, no-wrap
 msgid ""
 "\n"
@@ -762,16 +768,22 @@ msgid ""
 "        // Create a second image using a stock icon\n"
 "        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
 msgstr ""
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:240
+#: C/02_welcome_to_the_grid.js.page:241
 msgid ""
-"After that, we attach it to the Grid to the left of the first Label. (We "
-"aren't using the second one for this example.)"
+"After that, we attach it to the Grid to the left of the first Label. (We aren't using the second one for 
this "
+"example.)"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:241
+#: C/02_welcome_to_the_grid.js.page:242
 #, no-wrap
 msgid ""
 "\n"
@@ -780,47 +792,46 @@ msgid ""
 "        this._grid.attach (this._icon,  0, 1, 1, 1);\n"
 "        this._grid.attach (this._label, 1, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Attach the images and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,  0, 1, 1, 1);\n"
+"        this._grid.attach (this._label, 1, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:247
+#: C/02_welcome_to_the_grid.js.page:248
 msgid "That gives us this, when we run it:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:250
+#: C/02_welcome_to_the_grid.js.page:251
 msgid ""
-"That's what the stock \"About\" icon looks like. You can see a list of all "
-"the stock items starting with gtk-about in <link href=\"https://developer.";
-"gnome.org/gtk3/3.4/gtk3-Stock-Items.html#GTK-STOCK-ABOUT:CAPS\">GNOME's "
-"developer documentation</link>. It was written for C programmers, but you "
-"don't need to know C to use it; just look at the part in quotation marks, "
-"like \"gtk-about\", and copy that part to use the icon next to it."
+"That's what the stock \"About\" icon looks like. You can see a list of all the stock items starting with 
gtk-about "
+"in <link href=\"https://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html#GTK-STOCK-ABOUT:CAPS\";>GNOME's "
+"developer documentation</link>. It was written for C programmers, but you don't need to know C to use it; 
just "
+"look at the part in quotation marks, like \"gtk-about\", and copy that part to use the icon next to it."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:251
+#: C/02_welcome_to_the_grid.js.page:252
 msgid ""
-"We put single quotes around 'gtk-about' here because, unlike text strings "
-"that have double quotes around them, that part will never need to be "
-"translated into another language. In fact, if it <em>were</em> translated "
-"it'd break the icon, because its name is still \"gtk-about\" no matter which "
-"language you speak."
+"We put single quotes around 'gtk-about' here because, unlike text strings that have double quotes around 
them, "
+"that part will never need to be translated into another language. In fact, if it <em>were</em> translated 
it'd "
+"break the icon, because its name is still \"gtk-about\" no matter which language you speak."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:256 C/03_getting_the_signal.js.page:337
-#: C/hellognome.js.page:186
+#: C/02_welcome_to_the_grid.js.page:257 C/03_getting_the_signal.js.page:338 C/hellognome.js.page:187
 msgid "What's next?"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:257
-msgid ""
-"Before we go on to the next tutorial, let's try something a little different:"
+#: C/02_welcome_to_the_grid.js.page:258
+msgid "Before we go on to the next tutorial, let's try something a little different:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:258
+#: C/02_welcome_to_the_grid.js.page:259
 #, no-wrap
 msgid ""
 "\n"
@@ -833,45 +844,48 @@ msgid ""
 "        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
 "        this._grid.attach (this._button, 1, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"});\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._button, 1, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:269
+#: C/02_welcome_to_the_grid.js.page:270
 msgid ""
-"That's right, we turned the Label into a Button just by changing the name! "
-"If you run the application and click on it, though, you'll find that it "
-"doesn't do anything. How do we make our Button do something? That's what "
-"we'll find out, in <link xref=\"03_getting_the_signal.js\">our next "
-"tutorial</link>."
+"That's right, we turned the Label into a Button just by changing the name! If you run the application and 
click on "
+"it, though, you'll find that it doesn't do anything. How do we make our Button do something? That's what 
we'll "
+"find out, in <link xref=\"03_getting_the_signal.js\">our next tutorial</link>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/02_welcome_to_the_grid.js.page:270
+#: C/02_welcome_to_the_grid.js.page:271
 msgid ""
-"If you like, feel free to spend some time experimenting with Grids, Labels, "
-"and Images, including stock images."
+"If you like, feel free to spend some time experimenting with Grids, Labels, and Images, including stock 
images."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/02_welcome_to_the_grid.js.page:271
+#: C/02_welcome_to_the_grid.js.page:272
 msgid ""
-"One trick you can use to make more complex layouts is to nest Grids inside "
-"of each other. This lets you group together related widgets, and rearrange "
-"them easily. Take a look at the <link xref=\"radiobutton.js\">RadioButton</"
+"One trick you can use to make more complex layouts is to nest Grids inside of each other. This lets you 
group "
+"together related widgets, and rearrange them easily. Take a look at the <link 
xref=\"radiobutton.js\">RadioButton</"
 "link> code sample if you'd like to see how this is done."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/02_welcome_to_the_grid.js.page:275 C/checkbutton.js.page:130
-#: C/comboboxtext.js.page:170 C/combobox.js.page:227 C/hellognome.js.page:193
-#: C/messagedialog.js.page:183 C/radiobutton.js.page:268 C/scale.js.page:202
-#: C/spinbutton.js.page:193 C/statusbar.js.page:215 C/switch.js.page:258
-#: C/textview.js.page:242 C/togglebutton.js.page:147
-#: C/treeview_simple_liststore.js.page:266
+#: C/02_welcome_to_the_grid.js.page:276 C/checkbutton.js.page:131 C/comboboxtext.js.page:171 
C/combobox.js.page:228
+#: C/hellognome.js.page:194 C/messagedialog.js.page:184 C/radiobutton.js.page:269 C/scale.js.page:203
+#: C/spinbutton.js.page:194 C/statusbar.js.page:216 C/switch.js.page:259 C/textview.js.page:243
+#: C/togglebutton.js.page:148 C/treeview_simple_liststore.js.page:267
 msgid "Complete code sample"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/02_welcome_to_the_grid.js.page:276
+#: C/02_welcome_to_the_grid.js.page:277
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -961,142 +975,203 @@ msgid ""
 "let app = new WelcomeToTheGrid ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            // column_homogeneous: true,\n"
+"            // column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            /* margin_top: 20 */ });\n"
+"\n"
+"        /* Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" }); */\n"
+"\n"
+"        /* Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"}); */\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._label,  1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        // this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._button, 1, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: 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/03_getting_the_signal.js.page:36 C/03_getting_the_signal.js.page:350
+#: C/03_getting_the_signal.js.page:37 C/03_getting_the_signal.js.page:351
 msgctxt "_"
-msgid ""
-"external ref='media/03_jssignal_01.png' "
-"md5='8d6ecab185f4af4534cc255d62b58b8e'"
-msgstr ""
-"external ref='media/03_jssignal_01.png' "
-"md5='8d6ecab185f4af4534cc255d62b58b8e'"
+msgid "external ref='media/03_jssignal_01.png' md5='8d6ecab185f4af4534cc255d62b58b8e'"
+msgstr "external ref='media/03_jssignal_01.png' md5='8d6ecab185f4af4534cc255d62b58b8e'"
 
 #. (itstool) path: 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/03_getting_the_signal.js.page:156 C/03_getting_the_signal.js.page:356
+#: C/03_getting_the_signal.js.page:157 C/03_getting_the_signal.js.page:357
 msgctxt "_"
-msgid ""
-"external ref='media/03_jssignal_02.png' "
-"md5='ba941390fbafc4a0f653c8f70bca92c0'"
-msgstr ""
-"external ref='media/03_jssignal_02.png' "
-"md5='ba941390fbafc4a0f653c8f70bca92c0'"
+msgid "external ref='media/03_jssignal_02.png' md5='ba941390fbafc4a0f653c8f70bca92c0'"
+msgstr "external ref='media/03_jssignal_02.png' md5='ba941390fbafc4a0f653c8f70bca92c0'"
 
 #. (itstool) path: 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/03_getting_the_signal.js.page:230 C/03_getting_the_signal.js.page:362
+#: C/03_getting_the_signal.js.page:231 C/03_getting_the_signal.js.page:363
 msgctxt "_"
-msgid ""
-"external ref='media/03_jssignal_03.png' "
-"md5='49ecf251b0bf57543c8d79a77b6f306d'"
-msgstr ""
-"external ref='media/03_jssignal_03.png' "
-"md5='49ecf251b0bf57543c8d79a77b6f306d'"
+msgid "external ref='media/03_jssignal_03.png' md5='49ecf251b0bf57543c8d79a77b6f306d'"
+msgstr "external ref='media/03_jssignal_03.png' md5='49ecf251b0bf57543c8d79a77b6f306d'"
 
 #. (itstool) path: 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/03_getting_the_signal.js.page:301 C/03_getting_the_signal.js.page:368
+#: C/03_getting_the_signal.js.page:302 C/03_getting_the_signal.js.page:369
 msgctxt "_"
-msgid ""
-"external ref='media/03_jssignal_04.png' "
-"md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
-msgstr ""
-"external ref='media/03_jssignal_04.png' "
-"md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
+msgid "external ref='media/03_jssignal_04.png' md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
+msgstr "external ref='media/03_jssignal_04.png' md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
 
 #. (itstool) path: info/desc
-#: C/03_getting_the_signal.js.page:20
+#: C/03_getting_the_signal.js.page:21
 msgid "Create Buttons and other widgets that do things when you click on them."
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/03_getting_the_signal.js.page:23
-#, fuzzy
-#| msgid "Connecting the signals"
+#: C/03_getting_the_signal.js.page:24
 msgid "3. Getting the Signal"
-msgstr "Verbinden der Signale"
+msgstr ""
 
 #. (itstool) path: synopsis/p
-#: C/03_getting_the_signal.js.page:25
+#: C/03_getting_the_signal.js.page:26
 msgid ""
-"In the last tutorial, we learned how to create widgets like Labels, Images, "
-"and Buttons. Here, we'll learn how to make Buttons and other input widgets "
-"actually do things, by writing functions which handle the signals they send "
+"In the last tutorial, we learned how to create widgets like Labels, Images, and Buttons. Here, we'll learn 
how to "
+"make Buttons and other input widgets actually do things, by writing functions which handle the signals they 
send "
 "when they are clicked on or interacted with."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:31
+#: C/03_getting_the_signal.js.page:32
 msgid "A basic application"
 msgstr "Eine erste Anwendung"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:32
+#: C/03_getting_the_signal.js.page:33
 msgid ""
-"In GNOME, widgets that you can interact with, like Buttons and Switches, "
-"send out signals when they are clicked on or activated. A Button, for "
-"instance, sends out the \"clicked\" signal when somebody clicks on it. When "
-"this happens, GNOME looks for the part in your code that says what to do."
+"In GNOME, widgets that you can interact with, like Buttons and Switches, send out signals when they are 
clicked on "
+"or activated. A Button, for instance, sends out the \"clicked\" signal when somebody clicks on it. When 
this "
+"happens, GNOME looks for the part in your code that says what to do."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:33
+#: C/03_getting_the_signal.js.page:34
 msgid ""
-"How do we write that code? By connecting that Button's \"clicked\" signal to "
-"a callback function, which is a function you write just to handle that "
-"signal. So whenever it gives off that signal, the function connected to that "
-"signal is run."
+"How do we write that code? By connecting that Button's \"clicked\" signal to a callback function, which is 
a "
+"function you write just to handle that signal. So whenever it gives off that signal, the function connected 
to "
+"that signal is run."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:34
+#: C/03_getting_the_signal.js.page:35
 msgid "Here is an extremely basic example:"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:38
+#: C/03_getting_the_signal.js.page:39
 msgid ""
-"This ApplicationWindow has a Button and a Label inside it, arranged in a "
-"Grid. Whenever the Button is clicked, a variable that holds the number of "
-"cookies is increased by 1, and the Label that shows how many cookies there "
-"are is updated."
+"This ApplicationWindow has a Button and a Label inside it, arranged in a Grid. Whenever the Button is 
clicked, a "
+"variable that holds the number of cookies is increased by 1, and the Label that shows how many cookies 
there are "
+"is updated."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:39
+#: C/03_getting_the_signal.js.page:40
 msgid ""
-"The cookies in this example are not the same as the cookies that you get "
-"from websites, which store your login information and may keep track of "
-"which sites you've visited. They're just imaginary treats. You may bake some "
+"The cookies in this example are not the same as the cookies that you get from websites, which store your 
login "
+"information and may keep track of which sites you've visited. They're just imaginary treats. You may bake 
some "
 "real ones if you like."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:40
+#: C/03_getting_the_signal.js.page:41
 msgid ""
-"Here is the basic, boilerplate code that goes at the start of the "
-"application, before we start creating the window and widgets. Besides the "
-"application having a unique name, the biggest change from the usual "
-"boilerplate is that we create a global variable right near the beginning, to "
-"hold the number of cookies."
+"Here is the basic, boilerplate code that goes at the start of the application, before we start creating the 
window "
+"and widgets. Besides the application having a unique name, the biggest change from the usual boilerplate is 
that "
+"we create a global variable right near the beginning, to hold the number of cookies."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:41
+#: C/03_getting_the_signal.js.page:42
 #, no-wrap
 msgid ""
 "\n"
@@ -1130,45 +1205,76 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:72
+#: C/03_getting_the_signal.js.page:73
 msgid ""
-"Take a look at the part that uses our application's connect method and Lang."
-"bind, to connect its activate and startup signals to the functions that "
-"present the window and build the UI. We're going to do the same thing with "
-"our Button when we get to it, except that we're going to connect its "
-"\"clicked\" signal instead."
+"Take a look at the part that uses our application's connect method and Lang.bind, to connect its activate 
and "
+"startup signals to the functions that present the window and build the UI. We're going to do the same thing 
with "
+"our Button when we get to it, except that we're going to connect its \"clicked\" signal instead."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:76
+#: C/03_getting_the_signal.js.page:77
 msgid "Click the button"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:78
+#: C/03_getting_the_signal.js.page:79
 msgid ""
-"As usual, we'll put all the code to create our Button and other widgets "
-"inside the _buildUI function, which is called when the application starts up."
+"As usual, we'll put all the code to create our Button and other widgets inside the _buildUI function, which 
is "
+"called when the application starts up."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:79
+#: C/03_getting_the_signal.js.page:80
 #, no-wrap
 msgid ""
 "\n"
 "    // Build the application's UI\n"
 "    _buildUI: function() {\n"
 msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:84
+#: C/03_getting_the_signal.js.page:85
 msgid "First, we create the window itself:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:85
+#: C/03_getting_the_signal.js.page:86
 #, no-wrap
 msgid ""
 "\n"
@@ -1180,23 +1286,31 @@ msgid ""
 "            default_width: 400,\n"
 "            title: \"Click the button to get a cookie!\"});\n"
 msgstr ""
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:94
+#: C/03_getting_the_signal.js.page:95
 msgid ""
-"Note that we've set its default_height and default_width properties. These "
-"let us control how tall and wide the ApplicationWindow will be, in pixels."
+"Note that we've set its default_height and default_width properties. These let us control how tall and wide 
the "
+"ApplicationWindow will be, in pixels."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:95
+#: C/03_getting_the_signal.js.page:96
 msgid ""
-"Next, we'll create the Label that shows us the number of cookies. We can use "
-"the cookies variable as part of the Label's label property."
+"Next, we'll create the Label that shows us the number of cookies. We can use the cookies variable as part 
of the "
+"Label's label property."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:96
+#: C/03_getting_the_signal.js.page:97
 #, no-wrap
 msgid ""
 "\n"
@@ -1204,18 +1318,21 @@ msgid ""
 "        this._cookieLabel = new Gtk.Label ({\n"
 "            label: \"Number of cookies: \" + cookies });\n"
 msgstr ""
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:102
+#: C/03_getting_the_signal.js.page:103
 msgid ""
-"Now we'll create the Button. We set its label property to show the text that "
-"we want on the Button, and we connect its \"clicked\" signal to a function "
-"called _getACookie, which we'll write after we're done building our "
+"Now we'll create the Button. We set its label property to show the text that we want on the Button, and we 
connect "
+"its \"clicked\" signal to a function called _getACookie, which we'll write after we're done building our "
 "application's UI."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:103
+#: C/03_getting_the_signal.js.page:104
 #, no-wrap
 msgid ""
 "\n"
@@ -1225,20 +1342,24 @@ msgid ""
 "        // Connect the cookie button to the function that handles clicking it\n"
 "        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
 msgstr ""
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:110
+#: C/03_getting_the_signal.js.page:111
 msgid ""
-"Finally, we create a Grid, attach the Label and Button to it, add it to the "
-"window and tell the window to show itself and its contents. That's all we "
-"need inside the _buildUI function, so we close it with a bracket, as well as "
-"a comma that tells GNOME to go on to the next function. Note that even "
-"though we wrote the code for the Label first, we can still attach it to the "
-"Grid in a way that will put it on the bottom."
+"Finally, we create a Grid, attach the Label and Button to it, add it to the window and tell the window to 
show "
+"itself and its contents. That's all we need inside the _buildUI function, so we close it with a bracket, as 
well "
+"as a comma that tells GNOME to go on to the next function. Note that even though we wrote the code for the 
Label "
+"first, we can still attach it to the Grid in a way that will put it on the bottom."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:111
+#: C/03_getting_the_signal.js.page:112
 #, no-wrap
 msgid ""
 "\n"
@@ -1260,28 +1381,43 @@ msgid ""
 "\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:130
+#: C/03_getting_the_signal.js.page:131
 msgid ""
-"Now, we write the _getACookie function. Whenever our Button sends out its "
-"\"clicked\" signal, the code in this function will run. In this case, all it "
-"does is increase the number of cookies by 1, and update the Label to show "
+"Now, we write the _getACookie function. Whenever our Button sends out its \"clicked\" signal, the code in 
this "
+"function will run. In this case, all it does is increase the number of cookies by 1, and update the Label 
to show "
 "the new number of cookies. We do this using the Label's set_label method."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:131
+#: C/03_getting_the_signal.js.page:132
 msgid ""
-"Many widgets have the same properties and methods. Both Labels and Buttons, "
-"for instance, have a label property that says what text is inside them, and "
-"get_label and set_label methods that let you check what that text is and "
-"change it, respectively. So if you learn how one widget works, you'll also "
-"know how others like it work."
+"Many widgets have the same properties and methods. Both Labels and Buttons, for instance, have a label 
property "
+"that says what text is inside them, and get_label and set_label methods that let you check what that text 
is and "
+"change it, respectively. So if you learn how one widget works, you'll also know how others like it work."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:132
+#: C/03_getting_the_signal.js.page:133
 #, no-wrap
 msgid ""
 "\n"
@@ -1295,16 +1431,24 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:144
-msgid ""
-"Finally, we run the application, using the same kind of code as in our last "
-"tutorial."
+#: C/03_getting_the_signal.js.page:145
+msgid "Finally, we run the application, using the same kind of code as in our last tutorial."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:145
+#: C/03_getting_the_signal.js.page:146
 #, no-wrap
 msgid ""
 "\n"
@@ -1312,105 +1456,111 @@ msgid ""
 "let app = new GettingTheSignal ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:153
+#: C/03_getting_the_signal.js.page:154
 msgid "Flip the switch"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:154
+#: C/03_getting_the_signal.js.page:155
 msgid ""
-"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."
+"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."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:158
+#: C/03_getting_the_signal.js.page:159
 msgid ""
-"A Switch has two positions, Off and On. When a Switch is turned on, its text "
-"and background color change, so you can tell which position it's in."
+"A Switch has two positions, Off and On. When a Switch is turned on, its text and background color change, 
so you "
+"can tell which position it's in."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:160
+#: C/03_getting_the_signal.js.page:161
 msgid ""
-"You may have seen Switches like these in GNOME's accessibility menu, which "
-"let you turn features like large text and the on-screen keyboard on and off. "
-"In this case, the Switch controls our imaginary cookie dispenser. If the "
-"Switch is turned on, you can get cookies by clicking the \"Get a cookie\" "
-"Button. If it's turned off, clicking the Button won't do anything."
+"You may have seen Switches like these in GNOME's accessibility menu, which let you turn features like large 
text "
+"and the on-screen keyboard on and off. In this case, the Switch controls our imaginary cookie dispenser. If 
the "
+"Switch is turned on, you can get cookies by clicking the \"Get a cookie\" Button. If it's turned off, 
clicking the "
+"Button won't do anything."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:161
+#: C/03_getting_the_signal.js.page:162
 msgid ""
-"You can get to the accessibility menu by clicking on the outline of a human, "
-"near your name in the upper-right corner of the screen."
+"You can get to the accessibility menu by clicking on the outline of a human, near your name in the 
upper-right "
+"corner of the screen."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:162
+#: C/03_getting_the_signal.js.page:163
 msgid "Here's how we create the Switch:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:163
+#: C/03_getting_the_signal.js.page:164
 #, no-wrap
 msgid ""
 "\n"
 "        // Create the switch that controls whether or not you can win\n"
 "        this._cookieSwitch = new Gtk.Switch ();\n"
 msgstr ""
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:168
+#: C/03_getting_the_signal.js.page:169
 msgid ""
-"We don't actually need to connect the Switch to anything. All we need to do "
-"is write an if statement in our _getACookie function, to check to see if the "
-"Switch is turned on. If we wanted to make something happen as soon as you "
-"flip the Switch, though, we would connect its notify::active signal, like so:"
+"We don't actually need to connect the Switch to anything. All we need to do is write an if statement in our 
"
+"_getACookie function, to check to see if the Switch is turned on. If we wanted to make something happen as 
soon as "
+"you flip the Switch, though, we would connect its notify::active signal, like so:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:169
+#: C/03_getting_the_signal.js.page:170
 #, no-wrap
 msgid ""
 "\n"
 "        // Connect the switch to the function that handles it\n"
 "        this._cookieSwitch.connect ('notify::active', Lang.bind (this, this._cookieDispenser));\n"
 msgstr ""
+"\n"
+"        // Connect the switch to the function that handles it\n"
+"        this._cookieSwitch.connect ('notify::active', Lang.bind (this, this._cookieDispenser));\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:174
+#: C/03_getting_the_signal.js.page:175
 msgid ""
-"A Switch is set to the off position by default. If we wanted the Switch to "
-"start out turned on, we would set the value of its active property to true "
-"when we create it."
+"A Switch is set to the off position by default. If we wanted the Switch to start out turned on, we would 
set the "
+"value of its active property to true when we create it."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:175
+#: C/03_getting_the_signal.js.page:176
 #, no-wrap
 msgid ""
 "\n"
 "        this._cookieSwitch = new Gtk.Switch ({ active: true });\n"
 msgstr ""
+"\n"
+"        this._cookieSwitch = new Gtk.Switch ({ active: true });\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:179
+#: C/03_getting_the_signal.js.page:180
 msgid ""
-"Let's just create it normally, though, and then create the Label that goes "
-"with it. We want the Switch and the Label to be kept right next to each "
-"other, so we'll create a Grid just for them, then put that Grid in our "
-"larger Grid that holds all the widgets inside it. Here's what the code looks "
-"like to create all that:"
+"Let's just create it normally, though, and then create the Label that goes with it. We want the Switch and 
the "
+"Label to be kept right next to each other, so we'll create a Grid just for them, then put that Grid in our 
larger "
+"Grid that holds all the widgets inside it. Here's what the code looks like to create all that:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:180
+#: C/03_getting_the_signal.js.page:181
 #, no-wrap
 msgid ""
 "\n"
@@ -1430,14 +1580,30 @@ msgid ""
 "        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
 "        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:198
+#: C/03_getting_the_signal.js.page:199
 msgid "And now we arrange everything in the larger Grid like so."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:199
+#: C/03_getting_the_signal.js.page:200
 #, no-wrap
 msgid ""
 "\n"
@@ -1446,25 +1612,29 @@ msgid ""
 "        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
 "        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:206
+#: C/03_getting_the_signal.js.page:207
 msgid ""
-"Now we change the _getACookie function so that it checks to see if the "
-"cookie dispenser is turned on. We do that by using the Switch's get_active "
-"method. It returns true if the Switch is turned on, and false if the Switch "
-"is turned off."
+"Now we change the _getACookie function so that it checks to see if the cookie dispenser is turned on. We do 
that "
+"by using the Switch's get_active method. It returns true if the Switch is turned on, and false if the 
Switch is "
+"turned off."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:207
+#: C/03_getting_the_signal.js.page:208
 msgid ""
-"When a method is used in an if statement like this, the code inside the if "
-"statement is executed if the method returns true."
+"When a method is used in an if statement like this, the code inside the if statement is executed if the 
method "
+"returns true."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:208
+#: C/03_getting_the_signal.js.page:209
 #, no-wrap
 msgid ""
 "\n"
@@ -1481,34 +1651,44 @@ msgid ""
 "\n"
 "    }\n"
 msgstr ""
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:226
+#: C/03_getting_the_signal.js.page:227
 msgid "Tuning the radio"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:228
+#: C/03_getting_the_signal.js.page:229
 msgid ""
-"Another type of input widget we can use is called the RadioButton. You "
-"create them in groups, and then only one RadioButton in a group can be "
-"selected at a time. They're called RadioButtons because they work like the "
-"channel preset button in old-style car radios. The radio could only be tuned "
-"to one station at a time, so whenever you pressed one button in, another "
-"would pop back out."
+"Another type of input widget we can use is called the RadioButton. You create them in groups, and then only 
one "
+"RadioButton in a group can be selected at a time. They're called RadioButtons because they work like the 
channel "
+"preset button in old-style car radios. The radio could only be tuned to one station at a time, so whenever 
you "
+"pressed one button in, another would pop back out."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:232
+#: C/03_getting_the_signal.js.page:233
 msgid ""
-"First off, let's change our ApplicationWindow's name and increase its "
-"border_width property, so that our widgets aren't packed in too tightly. The "
-"border_width is the number of pixels between any widget and the edge of the "
+"First off, let's change our ApplicationWindow's name and increase its border_width property, so that our 
widgets "
+"aren't packed in too tightly. The border_width is the number of pixels between any widget and the edge of 
the "
 "window."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:233
+#: C/03_getting_the_signal.js.page:234
 #, no-wrap
 msgid ""
 "\n"
@@ -1521,76 +1701,99 @@ msgid ""
 "            border_width: 20,\n"
 "            title: \"Choose the one that says 'cookie'!\"});\n"
 msgstr ""
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:244
+#: C/03_getting_the_signal.js.page:245
 msgid ""
-"After that, we create the RadioButtons. Remember how they're created in "
-"groups? The way we do that, is we set each new RadioButton's group property "
-"to the name of another RadioButton."
+"After that, we create the RadioButtons. Remember how they're created in groups? The way we do that, is we 
set each "
+"new RadioButton's group property to the name of another RadioButton."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:245
+#: C/03_getting_the_signal.js.page:246
 #, no-wrap
 msgid ""
 "\n"
 "        // Create the radio buttons\n"
-"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._cookieRadio = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
 "        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
-"            group: this._cookieButton });\n"
+"            group: this._cookieRadio });\n"
 "        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
-"            group: this._cookieButton });\n"
+"            group: this._cookieRadio });\n"
 msgstr ""
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieRadio = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieRadio });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieRadio });\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:254
+#: C/03_getting_the_signal.js.page:255
 msgid ""
-"Next, we create a Grid for the RadioButtons. Remember, we don't have to "
-"arrange things in Grids in the same order that we create them in."
+"Next, we create a Grid for the RadioButtons. Remember, we don't have to arrange things in Grids in the same 
order "
+"that we create them in."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:255
+#: C/03_getting_the_signal.js.page:256
 #, no-wrap
 msgid ""
 "\n"
 "        // Arrange the radio buttons in their own grid\n"
 "        this._radioGrid = new Gtk.Grid ();\n"
 "        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
-"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieRadio, 0, 1, 1, 1);\n"
 "        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieRadio, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:263
+#: C/03_getting_the_signal.js.page:264
 msgid ""
-"Normally, the RadioButton that's selected by default is the one that's the "
-"name of the group. We want the first \"Not cookie\" button to be selected by "
-"default, though, so we use its set_active method."
+"Normally, the RadioButton that's selected by default is the one that's the name of the group. We want the 
first "
+"\"Not cookie\" button to be selected by default, though, so we use its set_active method."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:264
+#: C/03_getting_the_signal.js.page:265
 msgid "We could also set its active property to true when we create it."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:265
+#: C/03_getting_the_signal.js.page:266
 #, no-wrap
 msgid ""
 "\n"
 "        // Set the button that will be at the top to be active by default\n"
 "        this._notCookieOne.set_active (true);\n"
 msgstr ""
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:270
+#: C/03_getting_the_signal.js.page:271
 msgid "Now we arrange everything in our main Grid like usual ..."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:271
+#: C/03_getting_the_signal.js.page:272
 #, no-wrap
 msgid ""
 "\n"
@@ -1599,23 +1802,26 @@ msgid ""
 "        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
 "        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:278
-msgid ""
-"And then we change our _getACookie function to test to see if the cookie "
-"button is the one that's selected."
+#: C/03_getting_the_signal.js.page:279
+msgid "And then we change our _getACookie function to test to see if the cookie button is the one that's 
selected."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:279
+#: C/03_getting_the_signal.js.page:280
 #, no-wrap
 msgid ""
 "\n"
 "    _getACookie: function() {\n"
 "\n"
 "        // Did you select \"cookie\" instead of \"not cookie\"?\n"
-"        if (this._cookieButton.get_active()) {\n"
+"        if (this._cookieRadio.get_active()) {\n"
 "\n"
 "            // Increase the number of cookies by 1 and update the label\n"
 "            cookies++;\n"
@@ -1625,48 +1831,61 @@ msgid ""
 "\n"
 "    }\n"
 msgstr ""
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieRadio.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:297
+#: C/03_getting_the_signal.js.page:298
 msgid "Can you spell \"cookie\"?"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:299
-msgid ""
-"The last input widget we're going to cover is the Entry widget, which is "
-"used for single-line text entry."
+#: C/03_getting_the_signal.js.page:300
+msgid "The last input widget we're going to cover is the Entry widget, which is used for single-line text 
entry."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:300
+#: C/03_getting_the_signal.js.page:301
 msgid ""
-"If you need to be able to enter in a whole paragraph or more, like if you "
-"are building a text editor, you'll want to look at the much more "
-"customizable <link xref=\"textview.js\">TextView</link> widget."
+"If you need to be able to enter in a whole paragraph or more, like if you are building a text editor, 
you'll want "
+"to look at the much more customizable <link xref=\"textview.js\">TextView</link> widget."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:303
+#: C/03_getting_the_signal.js.page:304
 msgid "After we change the window's name, we create the Entry widget."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:304
+#: C/03_getting_the_signal.js.page:305
 #, no-wrap
 msgid ""
 "\n"
 "        // Create the text entry field\n"
 "        this._spellCookie = new Gtk.Entry ();\n"
 msgstr ""
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:309
+#: C/03_getting_the_signal.js.page:310
 msgid "Next, we arrange everything in the Grid ..."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:310
+#: C/03_getting_the_signal.js.page:311
 #, no-wrap
 msgid ""
 "\n"
@@ -1675,28 +1894,31 @@ msgid ""
 "        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
 "        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:317
+#: C/03_getting_the_signal.js.page:318
 msgid ""
-"And now we modify _getACookie's if statement again, using the Entry's "
-"get_text method to retrieve the text that you entered into it and see if you "
-"spelled \"cookie\" right. We don't care whether you capitalize \"cookie\" or "
-"not, so we use JavaScript's built-in toLowerCase method to change the "
-"Entry's text to all lower case inside the if statement."
+"And now we modify _getACookie's if statement again, using the Entry's get_text method to retrieve the text 
that "
+"you entered into it and see if you spelled \"cookie\" right. We don't care whether you capitalize 
\"cookie\" or "
+"not, so we use JavaScript's built-in toLowerCase method to change the Entry's text to all lower case inside 
the if "
+"statement."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:318
+#: C/03_getting_the_signal.js.page:319
 msgid ""
-"An Entry widget doesn't have a label property, which is a set text string "
-"that the user can't change. (You can't normally change the label on a "
-"Button, for instance.) Instead, it has a text property, which changes to "
-"match what the user types in."
+"An Entry widget doesn't have a label property, which is a set text string that the user can't change. (You 
can't "
+"normally change the label on a Button, for instance.) Instead, it has a text property, which changes to 
match what "
+"the user types in."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:319
+#: C/03_getting_the_signal.js.page:320
 #, no-wrap
 msgid ""
 "\n"
@@ -1713,34 +1935,44 @@ msgid ""
 "\n"
 "    }\n"
 msgstr ""
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
 #. (itstool) path: section/p
-#: C/03_getting_the_signal.js.page:338
-msgid ""
-"Keep reading, if you'd like to see the complete code for each version of our "
-"cookie maker application."
+#: C/03_getting_the_signal.js.page:339
+msgid "Keep reading, if you'd like to see the complete code for each version of our cookie maker 
application."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/03_getting_the_signal.js.page:339
+#: C/03_getting_the_signal.js.page:340
 msgid ""
-"The main JavaScript tutorials page has <link xref=\"beginner.js#buttons"
-"\">more detailed code samples</link> for each input widget, including "
-"several not covered here."
+"The main JavaScript tutorials page has <link xref=\"beginner.js#buttons\">more detailed code samples</link> 
for "
+"each input widget, including several not covered here."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:344
+#: C/03_getting_the_signal.js.page:345
 msgid "Complete code samples"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:349
+#: C/03_getting_the_signal.js.page:350
 msgid "Code sample with Button"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:351
+#: C/03_getting_the_signal.js.page:352
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -1830,14 +2062,100 @@ msgid ""
 "let app = new GettingTheSignal ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:355
+#: C/03_getting_the_signal.js.page:356
 msgid "Code sample with Switch"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:357
+#: C/03_getting_the_signal.js.page:358
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -1950,15 +2268,207 @@ msgid ""
 "let app = new GettingTheSignal ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
+"\n"
+"        // Create a grid to arrange everything else inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:361
+#: C/03_getting_the_signal.js.page:362
 msgid "Code sample with RadioButton"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:363
+#: C/03_getting_the_signal.js.page:364
 #, no-wrap
+#| msgid ""
+#| "#!/usr/bin/gjs\n"
+#| "\n"
+#| "const Gio = imports.gi.Gio;\n"
+#| "const Gtk = imports.gi.Gtk;\n"
+#| "const Lang = imports.lang;\n"
+#| "\n"
+#| "const ToggleButtonExample = new Lang.Class({\n"
+#| "    Name: 'ToggleButton Example',\n"
+#| "\n"
+#| "    // Create the application itself\n"
+#| "    _init: function() {\n"
+#| "        this.application = new Gtk.Application({\n"
+#| "            application_id: 'org.example.jstogglebutton',\n"
+#| "            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+#| "        });\n"
+#| "\n"
+#| "    // Connect 'activate' and 'startup' signals to the callback functions\n"
+#| "    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+#| "    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+#| "    },\n"
+#| "\n"
+#| "    // Callback function for 'activate' signal presents window when active\n"
+#| "    _onActivate: function() {\n"
+#| "        this._window.present();\n"
+#| "    },\n"
+#| "\n"
+#| "    // Callback function for 'startup' signal builds the UI\n"
+#| "    _onStartup: function() {\n"
+#| "        this._buildUI ();\n"
+#| "    },\n"
+#| "\n"
+#| "\n"
+#| "\n"
+#| "    // Build the application's UI\n"
+#| "    _buildUI: function() {\n"
+#| "\n"
+#| "        // Create the application window\n"
+#| "        this._window = new Gtk.ApplicationWindow({\n"
+#| "            application: this.application,\n"
+#| "            window_position: Gtk.WindowPosition.CENTER,\n"
+#| "            default_height: 300,\n"
+#| "            default_width: 300,\n"
+#| "            border_width: 30,\n"
+#| "            title: \"ToggleButton Example\"});\n"
+#| "\n"
+#| "        // Create the spinner that the button stops and starts\n"
+#| "        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
+#| "\n"
+#| "        // Create the togglebutton that starts and stops the spinner\n"
+#| "        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
+#| "        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
+#| "\n"
+#| "        // Create a grid and put everything in it\n"
+#| "        this._grid = new Gtk.Grid ({\n"
+#| "            row_homogeneous: false,\n"
+#| "            row_spacing: 15});\n"
+#| "        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+#| "        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
+#| "\n"
+#| "        // Add the grid to the window\n"
+#| "        this._window.add (this._grid);\n"
+#| "\n"
+#| "        // Show the window and all child widgets\n"
+#| "        this._window.show_all();\n"
+#| "    },\n"
+#| "\n"
+#| "\n"
+#| "\n"
+#| "    _onToggle: function() {\n"
+#| "\n"
+#| "        // Start or stop the spinner\n"
+#| "        if (this._toggleButton.get_active ())\n"
+#| "            this._spinner.start ();\n"
+#| "        else this._spinner.stop ();\n"
+#| "\n"
+#| "    }\n"
+#| "\n"
+#| "});\n"
+#| "\n"
+#| "// Run the application\n"
+#| "let app = new ToggleButtonExample ();\n"
+#| "app.application.run (ARGV);\n"
 msgid ""
 "#!/usr/bin/gjs\n"
 "\n"
@@ -2005,16 +2515,16 @@ msgid ""
 "            title: \"Choose the one that says 'cookie'!\"});\n"
 "\n"
 "        // Create the radio buttons\n"
-"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._cookieRadio = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
 "        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
-"            group: this._cookieButton });\n"
+"            group: this._cookieRadio });\n"
 "        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
-"            group: this._cookieButton });\n"
+"            group: this._cookieRadio });\n"
 "\n"
 "        // Arrange the radio buttons in their own grid\n"
 "        this._radioGrid = new Gtk.Grid ();\n"
 "        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
-"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieRadio, 0, 1, 1, 1);\n"
 "        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
 "\n"
 "        // Set the button that will be at the top to be active by default\n"
@@ -2055,7 +2565,7 @@ msgid ""
 "    _getACookie: function() {\n"
 "\n"
 "        // Did you select \"cookie\" instead of \"not cookie\"?\n"
-"        if (this._cookieButton.get_active()) {\n"
+"        if (this._cookieRadio.get_active()) {\n"
 "\n"
 "            // Increase the number of cookies by 1 and update the label\n"
 "            cookies++;\n"
@@ -2071,14 +2581,124 @@ msgid ""
 "let app = new GettingTheSignal ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieRadio = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieRadio });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieRadio });\n"
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieRadio, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieRadio.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
-#: C/03_getting_the_signal.js.page:367
+#: C/03_getting_the_signal.js.page:368
 msgid "Code sample with Entry"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/03_getting_the_signal.js.page:369
+#: C/03_getting_the_signal.js.page:370
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -2179,71 +2799,156 @@ msgid ""
 "let app = new GettingTheSignal ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Spell 'cookie' to get a cookie!\"});\n"
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: 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/aboutdialog.c.page:24 C/aboutdialog.js.page:20 C/aboutdialog.py.page:22
-#: C/aboutdialog.vala.page:29
+#: C/aboutdialog.c.page:25 C/aboutdialog.js.page:21 C/aboutdialog.py.page:23 C/aboutdialog.vala.page:30
 msgctxt "_"
-msgid ""
-"external ref='media/aboutdialog_GMenu.png' "
-"md5='a36117a559fa98e25e2f6b3db593639f'"
-msgstr ""
-"external ref='media/aboutdialog_GMenu.png' "
-"md5='a36117a559fa98e25e2f6b3db593639f'"
+msgid "external ref='media/aboutdialog_GMenu.png' md5='a36117a559fa98e25e2f6b3db593639f'"
+msgstr "external ref='media/aboutdialog_GMenu.png' md5='a36117a559fa98e25e2f6b3db593639f'"
 
 #. (itstool) path: info/title
-#: C/aboutdialog.c.page:7
+#: C/aboutdialog.c.page:8
 msgctxt "text"
 msgid "AboutDialog (C)"
 msgstr ""
 
 #. (itstool) path: credit/name
-#: C/aboutdialog.c.page:14 C/button.c.page:14 C/combobox.c.page:12
-#: C/dialog.c.page:14 C/entry.c.page:12 C/grid.c.page:12 C/image.c.page:12
-#: C/label.c.page:13 C/linkbutton.c.page:12 C/menubar.c.page:14
-#: C/messagedialog.c.page:13 C/progressbar.c.page:13 C/radiobutton.c.page:14
-#: C/scale.c.page:14 C/scrolledwindow.c.page:14 C/spinbutton.c.page:15
-#: C/spinner.c.page:13 C/statusbar.c.page:16 C/switch.c.page:12
-#: C/textview.c.page:12 C/togglebutton.c.page:16 C/toolbar.c.page:14
+#: C/aboutdialog.c.page:15 C/button.c.page:15 C/combobox.c.page:13 C/dialog.c.page:15 C/entry.c.page:13
+#: C/grid.c.page:13 C/image.c.page:13 C/label.c.page:14 C/linkbutton.c.page:13 C/menubar.c.page:15
+#: C/messagedialog.c.page:14 C/progressbar.c.page:14 C/radiobutton.c.page:15 C/scale.c.page:15
+#: C/scrolledwindow.c.page:15 C/spinbutton.c.page:16 C/spinner.c.page:14 C/statusbar.c.page:17 
C/switch.c.page:13
+#: C/textview.c.page:13 C/togglebutton.c.page:17 C/toolbar.c.page:15
 msgid "Monica Kochofar"
 msgstr "Monica Kochofar"
 
 #. (itstool) path: info/desc
-#: C/aboutdialog.c.page:19 C/aboutdialog.js.page:16 C/aboutdialog.vala.page:25
+#: C/aboutdialog.c.page:20 C/aboutdialog.js.page:17 C/aboutdialog.vala.page:26
 msgid "Display information about an application"
 msgstr "Informationen zur Anwendung anzeigen"
 
 #. (itstool) path: page/title
-#: C/aboutdialog.c.page:22 C/aboutdialog.js.page:19 C/aboutdialog.py.page:21
-#: C/aboutdialog.vala.page:28
+#: C/aboutdialog.c.page:23 C/aboutdialog.js.page:20 C/aboutdialog.py.page:22 C/aboutdialog.vala.page:29
 msgid "AboutDialog"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/aboutdialog.c.page:25 C/aboutdialog.vala.page:30
+#: C/aboutdialog.c.page:26 C/aboutdialog.vala.page:31
 msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/aboutdialog.c.page:26 C/aboutdialog.vala.page:31 C/gmenu.c.page:23
-msgid ""
-"<em style=\"bold\">You need to be running Gtk3.4 or later for this to work</"
-"em>"
+#: C/aboutdialog.c.page:27 C/aboutdialog.vala.page:32 C/gmenu.c.page:24
+msgid "<em style=\"bold\">You need to be running Gtk3.4 or later for this to work</em>"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/aboutdialog.c.page:28
+#: C/aboutdialog.c.page:29
 #, no-wrap
 msgid ""
 "\n"
 "#include &lt;gtk/gtk.h&gt;\n"
 "\n"
-"\n"
-"\n"
 "/* Callback function in which reacts to the \"response\" signal from the user in\n"
 " * the message dialog window.\n"
 " * This function is used to destroy the dialog window.\n"
@@ -2253,13 +2958,10 @@ msgid ""
 "          gint       response_id,\n"
 "          gpointer   user_data)\n"
 "{\n"
-"  /*This will cause the dialog to be destroyed*/\n"
+"  /* This will cause the dialog to be destroyed */\n"
 "  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
-"\n"
 "}\n"
 "\n"
-"\n"
-"\n"
 "/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
 " * \"about_action\".\n"
 " * This function is used to cause the about dialog window to popup.\n"
@@ -2269,42 +2971,40 @@ msgid ""
 "          GVariant      *parameter,\n"
 "          gpointer       user_data)\n"
 "{\n"
-"   GtkWidget *about_dialog;\n"
-"\n"
-"   about_dialog = gtk_about_dialog_new ();\n"
-"\n"
-"   /* Lists of authors/ documentators to be used later, they must be initialized\n"
-"    * in a null terminated array of strings.\n"
-"    */\n"
-"   const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
-"   const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"  GtkWidget *about_dialog;\n"
 "\n"
-"   /* We fill in the information for the about dialog */\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"
+"  about_dialog = gtk_about_dialog_new ();\n"
 "\n"
-"  /* We do not wish to show the title, which in this case would be \n"
-"   * \"AboutDialog Example\". We have to reset the title of the messagedialog \n"
+"  /* Lists of authors/ documentators to be used later, they must be initialized\n"
+"   * in a null terminated array of strings.\n"
+"   */\n"
+"  const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
+"  const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"\n"
+"  /* We fill in the information for the about dialog */\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"
+"  /* We do not wish to show the title, which in this case would be\n"
+"   * \"AboutDialog Example\". We have to reset the title of the messagedialog\n"
 "   * window after setting the program name.\n"
 "   */\n"
 "  gtk_window_set_title (GTK_WINDOW (about_dialog), \"\");\n"
 "\n"
-"  /* To close the aboutdialog when \"close\" is clicked we connect the response \n"
+"  /* To close the aboutdialog when \"close\" is clicked we connect the response\n"
 "   * signal to on_close\n"
 "   */\n"
-"  g_signal_connect (GTK_DIALOG (about_dialog), \"response\", \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"
+"  gtk_widget_show (about_dialog);\n"
 "}\n"
 "\n"
-"\n"
-"\n"
 "static void\n"
 "activate (GtkApplication *app,\n"
 "          gpointer        user_data)\n"
@@ -2318,32 +3018,30 @@ msgid ""
 "  gtk_window_set_title (GTK_WINDOW (window), \"AboutDialog Example\");\n"
 "  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
 "\n"
-"  /* Create a new simple action, giving it a NULL parameter type. It will \n"
-"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\" \n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will\n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\"\n"
 "   * or \"cancel\" button)\n"
 "   */\n"
-"  about_action = g_simple_action_new (\"about\", NULL); \n"
+"  about_action = g_simple_action_new (\"about\", NULL);\n"
 "\n"
-"  /* Connect the \"activate\" signal to the appropriate callback function. \n"
+"  /* Connect the \"activate\" signal to the appropriate callback function.\n"
 "   * It will indicate that the action was just activated.\n"
 "   */\n"
-"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_cb), \n"
+"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_cb),\n"
 "                    GTK_WINDOW (window));\n"
 "\n"
-"  /* Adds the about_action to the overall action map. An Action map is an \n"
-"   * interface that contains a number of named GAction instances \n"
-"   * (such as about_action) \n"
+"  /* Adds the about_action to the overall action map. An Action map is an\n"
+"   * interface that contains a number of named GAction instances\n"
+"   * (such as about_action)\n"
 "   */\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 response signal \"activate\" from the \"quit\" action \n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action\n"
 " * found in the function directly below.\n"
-" */ \n"
+" */\n"
 "static void\n"
 "quit_cb (GSimpleAction *simple,\n"
 "         GVariant      *parameter,\n"
@@ -2354,8 +3052,6 @@ msgid ""
 "  g_application_quit (application);\n"
 "}\n"
 "\n"
-"\n"
-"\n"
 "/* Startup function for the menu we are creating in this sample */\n"
 "static void\n"
 "startup (GApplication *app,\n"
@@ -2364,15 +3060,15 @@ msgid ""
 "  GMenu *menu;\n"
 "  GSimpleAction *quit_action;\n"
 "\n"
-"  /* Initialize the GMenu, and add a menu item with label \"About\" and action \n"
-"   * \"win.about\". Also add another menu item with label \"Quit\" and action \n"
-"   * \"app.quit\" \n"
+"  /* Initialize the GMenu, and add a menu item with label \"About\" and action\n"
+"   * \"win.about\". Also add another menu item with label \"Quit\" and action\n"
+"   * \"app.quit\"\n"
 "   */\n"
 "  menu = g_menu_new ();\n"
 "  g_menu_append (menu, \"About\", \"win.about\");\n"
 "  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
 "\n"
-"  /* Create a new simple action for the application. (In this case it is the \n"
+"  /* Create a new simple action for the application. (In this case it is the\n"
 "   * \"quit\" action.\n"
 "   */\n"
 "  quit_action = g_simple_action_new (\"quit\", NULL);\n"
@@ -2380,16 +3076,167 @@ msgid ""
 "  /* Ensure that the menu we have just created is set for the overall application */\n"
 "  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
 "\n"
-"  g_signal_connect (quit_action, \n"
-"                    \"activate\", \n"
-"                    G_CALLBACK (quit_cb), \n"
+"  g_signal_connect (quit_action,\n"
+"                    \"activate\",\n"
+"                    G_CALLBACK (quit_cb),\n"
 "                    app);\n"
 "\n"
 "  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\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 ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* Callback function in which reacts to the \"response\" signal from the user in\n"
+" * the message dialog window.\n"
+" * This function is used to destroy the dialog window.\n"
+" */\n"
+"static void\n"
+"on_close (GtkDialog *dialog,\n"
+"          gint       response_id,\n"
+"          gpointer   user_data)\n"
+"{\n"
+"  /* This will cause the dialog to be destroyed */\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"}\n"
+"\n"
+"/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
+" * \"about_action\".\n"
+" * This function is used to cause the about dialog window to popup.\n"
+" */\n"
+"static void\n"
+"about_cb (GSimpleAction *simple,\n"
+"          GVariant      *parameter,\n"
+"          gpointer       user_data)\n"
+"{\n"
+"  GtkWidget *about_dialog;\n"
+"\n"
+"  about_dialog = gtk_about_dialog_new ();\n"
+"\n"
+"  /* Lists of authors/ documentators to be used later, they must be initialized\n"
+"   * in a null terminated array of strings.\n"
+"   */\n"
+"  const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
+"  const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"\n"
+"  /* We fill in the information for the about dialog */\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"
+"  /* We do not wish to show the title, which in this case would be\n"
+"   * \"AboutDialog Example\". We have to reset the title of the messagedialog\n"
+"   * window after setting the program name.\n"
+"   */\n"
+"  gtk_window_set_title (GTK_WINDOW (about_dialog), \"\");\n"
 "\n"
+"  /* To close the aboutdialog when \"close\" is clicked we connect the response\n"
+"   * signal to on_close\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"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\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), \"AboutDialog Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"\n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will\n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\"\n"
+"   * or \"cancel\" button)\n"
+"   */\n"
+"  about_action = g_simple_action_new (\"about\", NULL);\n"
 "\n"
+"  /* Connect the \"activate\" signal to the appropriate callback function.\n"
+"   * It will indicate that the action was just activated.\n"
+"   */\n"
+"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_cb),\n"
+"                    GTK_WINDOW (window));\n"
+"\n"
+"  /* Adds the about_action to the overall action map. An Action map is an\n"
+"   * interface that contains a number of named GAction instances\n"
+"   * (such as about_action)\n"
+"   */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (about_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action\n"
+" * found in the function directly below.\n"
+" */\n"
+"static void\n"
+"quit_cb (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\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"
+"  GMenu *menu;\n"
+"  GSimpleAction *quit_action;\n"
+"\n"
+"  /* Initialize the GMenu, and add a menu item with label \"About\" and action\n"
+"   * \"win.about\". Also add another menu item with label \"Quit\" and action\n"
+"   * \"app.quit\"\n"
+"   */\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"About\", \"win.about\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"\n"
+"  /* Create a new simple action for the application. (In this case it is the\n"
+"   * \"quit\" action.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"\n"
+"  /* Ensure that the menu we have just created is set for the overall application */\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
+"\n"
+"  g_signal_connect (quit_action,\n"
+"                    \"activate\",\n"
+"                    G_CALLBACK (quit_cb),\n"
+"                    app);\n"
+"\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"}\n"
 "\n"
 "/* Startup function for the application */\n"
 "int\n"
@@ -2406,133 +3253,91 @@ msgid ""
 "\n"
 "  return status;\n"
 "}\n"
-msgstr ""
 
 #. (itstool) path: page/p
 #. (itstool) path: section/p
-#: C/aboutdialog.c.page:30 C/aboutdialog.js.page:24 C/aboutdialog.py.page:41
-#: C/aboutdialog.vala.page:34 C/button.c.page:29 C/button.js.page:26
-#: C/button.py.page:52 C/buttonbox.js.page:35 C/buttonbox.py.page:46
-#: C/checkbutton.c.page:25 C/checkbutton.py.page:42 C/checkbutton.vala.page:25
-#: C/colorbutton.js.page:33 C/colorbutton.py.page:40
-#: C/colorbutton.vala.page:27 C/comboboxtext.js.page:176 C/combobox.c.page:30
-#: C/combobox.js.page:233 C/combobox.py.page:42 C/combobox.vala.page:25
-#: C/combobox_multicolumn.py.page:41 C/combobox_multicolumn.vala.page:35
-#: C/dialog.c.page:29 C/dialog.js.page:25 C/dialog.py.page:46
-#: C/dialog.vala.page:27 C/entry.c.page:27 C/entry.js.page:25
-#: C/entry.py.page:61 C/entry.vala.page:25 C/filechooserdialog.py.page:70
-#: C/filechooserdialog.vala.page:35 C/fontchooserwidget.js.page:34
-#: C/fontchooserwidget.py.page:44 C/fontchooserwidget.vala.page:34
-#: C/gmenu.c.page:27 C/gmenu.js.page:25 C/gmenu.py.page:77
-#: C/gmenu.vala.page:37 C/grid.c.page:27 C/grid.js.page:29 C/grid.py.page:54
-#: C/grid.vala.page:27 C/GtkApplicationWindow.c.page:25
-#: C/GtkApplicationWindow.js.page:26 C/GtkApplicationWindow.py.page:50
-#: C/GtkApplicationWindow.vala.page:26 C/image.c.page:28 C/image.js.page:27
-#: C/image.py.page:100 C/image.vala.page:27 C/label.c.page:32
-#: C/label.js.page:25 C/label.py.page:87 C/label.vala.page:26
-#: C/linkbutton.c.page:27 C/linkbutton.js.page:25 C/linkbutton.py.page:44
-#: C/linkbutton.vala.page:25 C/menubar.c.page:32 C/menubar.py.page:183
-#: C/menubar.vala.page:187 C/menubutton.c.page:35 C/menubutton.js.page:28
-#: C/menubutton.py.page:53 C/menubutton.vala.page:28 C/messagedialog.c.page:31
-#: C/messagedialog.js.page:189 C/messagedialog.py.page:54
-#: C/messagedialog.vala.page:26 C/paned.c.page:33 C/paned.js.page:33
-#: C/paned.py.page:39 C/paned.vala.page:33 C/progressbar.c.page:28
-#: C/progressbar.js.page:34 C/progressbar.py.page:54
-#: C/progressbar.vala.page:25 C/radiobutton.c.page:29 C/radiobutton.py.page:46
-#: C/radiobutton.vala.page:28 C/scale.c.page:29 C/scale.py.page:54
-#: C/scale.vala.page:27 C/scrolledwindow.c.page:29 C/scrolledwindow.js.page:33
-#: C/scrolledwindow.py.page:42 C/scrolledwindow.vala.page:26
-#: C/separator.c.page:35 C/separator.py.page:36 C/separator.vala.page:37
-#: C/spinbutton.c.page:30 C/spinbutton.py.page:46 C/spinbutton.vala.page:27
-#: C/spinner.c.page:28 C/spinner.js.page:25 C/spinner.py.page:39
-#: C/spinner.vala.page:25 C/statusbar.c.page:31 C/statusbar.py.page:50
-#: C/statusbar.vala.page:28 C/switch.c.page:28 C/switch.py.page:42
-#: C/switch.vala.page:31 C/textview.c.page:31 C/textview.py.page:93
-#: C/textview.vala.page:30 C/togglebutton.c.page:31 C/togglebutton.py.page:41
-#: C/togglebutton.vala.page:28 C/toolbar.c.page:30 C/toolbar.js.page:26
-#: C/toolbar.py.page:52 C/toolbar.vala.page:29 C/toolbar_builder.py.page:191
-#: C/toolbar_builder.vala.page:146 C/tooltip.c.page:35 C/tooltip.js.page:34
-#: C/tooltip.py.page:56 C/tooltip.vala.page:35
-#: C/treeview_advanced_liststore.py.page:41
-#: C/treeview_cellrenderertoggle.py.page:41
-#: C/treeview_simple_liststore.js.page:272
-#: C/treeview_simple_liststore.py.page:42
-#: C/treeview_simple_liststore.vala.page:27 C/treeview_treestore.py.page:41
-#: C/window.c.page:29 C/window.py.page:61 C/window.vala.page:33
+#: C/aboutdialog.c.page:31 C/aboutdialog.js.page:25 C/aboutdialog.py.page:42 C/aboutdialog.vala.page:35
+#: C/button.c.page:30 C/button.js.page:27 C/button.py.page:53 C/buttonbox.js.page:36 C/buttonbox.py.page:47
+#: C/checkbutton.c.page:26 C/checkbutton.py.page:43 C/checkbutton.vala.page:26 C/colorbutton.js.page:34
+#: C/colorbutton.py.page:41 C/colorbutton.vala.page:28 C/comboboxtext.js.page:177 C/combobox.c.page:31
+#: C/combobox.js.page:234 C/combobox.py.page:43 C/combobox.vala.page:26 C/combobox_multicolumn.py.page:42
+#: C/combobox_multicolumn.vala.page:36 C/dialog.c.page:30 C/dialog.js.page:26 C/dialog.py.page:47
+#: C/dialog.vala.page:28 C/entry.c.page:28 C/entry.js.page:26 C/entry.py.page:62 C/entry.vala.page:26
+#: C/filechooserdialog.py.page:71 C/filechooserdialog.vala.page:36 C/fontchooserwidget.js.page:35
+#: C/fontchooserwidget.py.page:45 C/fontchooserwidget.vala.page:35 C/gmenu.c.page:28 C/gmenu.js.page:26
+#: C/gmenu.py.page:78 C/gmenu.vala.page:35 C/grid.c.page:28 C/grid.js.page:30 C/grid.py.page:55 
C/grid.vala.page:28
+#: C/GtkApplicationWindow.c.page:26 C/GtkApplicationWindow.js.page:27 C/GtkApplicationWindow.py.page:51
+#: C/GtkApplicationWindow.vala.page:27 C/image.c.page:29 C/image.js.page:28 C/image.py.page:128 
C/image.vala.page:28
+#: C/label.c.page:33 C/label.js.page:26 C/label.py.page:103 C/label.vala.page:27 C/linkbutton.c.page:28
+#: C/linkbutton.js.page:26 C/linkbutton.py.page:45 C/linkbutton.vala.page:26 C/menubar.c.page:33
+#: C/menubar.py.page:184 C/menubar.vala.page:188 C/menubutton.c.page:36 C/menubutton.js.page:29
+#: C/menubutton.py.page:54 C/menubutton.vala.page:29 C/messagedialog.c.page:32 C/messagedialog.js.page:190
+#: C/messagedialog.py.page:55 C/messagedialog.vala.page:27 C/paned.c.page:34 C/paned.js.page:34 
C/paned.py.page:40
+#: C/paned.vala.page:34 C/progressbar.c.page:29 C/progressbar.js.page:35 C/progressbar.py.page:55
+#: C/progressbar.vala.page:26 C/radiobutton.c.page:30 C/radiobutton.py.page:47 C/radiobutton.vala.page:29
+#: C/scale.c.page:30 C/scale.py.page:55 C/scale.vala.page:28 C/scrolledwindow.c.page:30 
C/scrolledwindow.js.page:34
+#: C/scrolledwindow.py.page:43 C/scrolledwindow.vala.page:27 C/separator.c.page:36 C/separator.py.page:37
+#: C/separator.vala.page:38 C/spinbutton.c.page:31 C/spinbutton.py.page:47 C/spinbutton.vala.page:28
+#: C/spinner.c.page:29 C/spinner.js.page:26 C/spinner.py.page:40 C/spinner.vala.page:26 C/statusbar.c.page:32
+#: C/statusbar.py.page:51 C/statusbar.vala.page:29 C/switch.c.page:29 C/switch.py.page:43 
C/switch.vala.page:32
+#: C/textview.c.page:32 C/textview.py.page:94 C/textview.vala.page:31 C/togglebutton.c.page:32
+#: C/togglebutton.py.page:42 C/togglebutton.vala.page:29 C/toolbar.c.page:31 C/toolbar.js.page:27
+#: C/toolbar.py.page:53 C/toolbar.vala.page:30 C/toolbar_builder.py.page:192 C/toolbar_builder.vala.page:147
+#: C/tooltip.c.page:36 C/tooltip.js.page:35 C/tooltip.py.page:57 C/tooltip.vala.page:36
+#: C/treeview_advanced_liststore.py.page:42 C/treeview_cellrenderertoggle.py.page:42
+#: C/treeview_simple_liststore.js.page:273 C/treeview_simple_liststore.py.page:43
+#: C/treeview_simple_liststore.vala.page:28 C/treeview_treestore.py.page:42 C/widget_drawing.py.page:36
+#: C/window.c.page:30 C/window.py.page:62 C/window.vala.page:34
 msgid "In this sample we used the following:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/aboutdialog.c.page:34 C/button.c.page:33 C/combobox.c.page:34
-#: C/dialog.c.page:33 C/entry.c.page:31 C/grid.c.page:31
-#: C/GtkApplicationWindow.c.page:29 C/image.c.page:32 C/label.c.page:36
-#: C/linkbutton.c.page:31 C/messagedialog.c.page:35 C/progressbar.c.page:32
-#: C/radiobutton.c.page:33 C/scale.c.page:33 C/spinbutton.c.page:34
-#: C/spinner.c.page:32 C/statusbar.c.page:35 C/switch.c.page:32
-#: C/textview.c.page:35 C/togglebutton.c.page:35 C/window.c.page:33
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html";
-"\">GtkApplication</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html";
-"\">GtkApplication</link>"
+#: C/aboutdialog.c.page:35 C/button.c.page:34 C/combobox.c.page:35 C/dialog.c.page:34 C/entry.c.page:32
+#: C/grid.c.page:32 C/GtkApplicationWindow.c.page:30 C/image.c.page:33 C/label.c.page:37 
C/linkbutton.c.page:32
+#: C/messagedialog.c.page:36 C/progressbar.c.page:33 C/radiobutton.c.page:34 C/scale.c.page:34 
C/spinbutton.c.page:35
+#: C/spinner.c.page:33 C/statusbar.c.page:36 C/switch.c.page:33 C/textview.c.page:36 C/togglebutton.c.page:36
+#: C/window.c.page:34
+msgid "<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html\";>GtkApplication</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html\";>GtkApplication</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.c.page:35 C/button.c.page:34 C/combobox.c.page:35
-#: C/dialog.c.page:34 C/entry.c.page:32 C/grid.c.page:32
-#: C/linkbutton.c.page:32 C/messagedialog.c.page:37 C/progressbar.c.page:33
-#: C/radiobutton.c.page:34 C/scale.c.page:34 C/spinbutton.c.page:35
-#: C/spinner.c.page:33 C/statusbar.c.page:36 C/switch.c.page:33
-#: C/textview.c.page:36 C/togglebutton.c.page:36 C/window.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</"
-"link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</"
-"link>"
+#: C/aboutdialog.c.page:36 C/button.c.page:35 C/combobox.c.page:36 C/dialog.c.page:35 C/entry.c.page:33
+#: C/grid.c.page:33 C/linkbutton.c.page:33 C/messagedialog.c.page:38 C/progressbar.c.page:34 
C/radiobutton.c.page:35
+#: C/scale.c.page:35 C/spinbutton.c.page:36 C/spinner.c.page:34 C/statusbar.c.page:37 C/switch.c.page:34
+#: C/textview.c.page:37 C/togglebutton.c.page:37 C/window.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.c.page:36
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html";
-"\">GtkAboutDialog</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html";
-"\">GtkAboutDialog</link>"
+#: C/aboutdialog.c.page:37
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html\";>GtkAboutDialog</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html\";>GtkAboutDialog</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.c.page:37 C/aboutdialog.py.page:47 C/messagedialog.c.page:41
-#: C/messagedialog.py.page:63
-msgid ""
-"<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
+#: C/aboutdialog.c.page:38 C/aboutdialog.py.page:48 C/messagedialog.c.page:42 C/messagedialog.py.page:64
+msgid "<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
+msgstr "<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.c.page:38 C/messagedialog.c.page:40
-msgid ""
-"<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html";
-"\">GActionMap</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html";
-"\">GActionMap</link>"
+#: C/aboutdialog.c.page:39 C/messagedialog.c.page:41
+msgid "<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html\";>GActionMap</link>"
+msgstr "<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html\";>GActionMap</link>"
 
 #. (itstool) path: info/title
-#: C/aboutdialog.js.page:6
+#: C/aboutdialog.js.page:7
 msgctxt "text"
 msgid "AboutDialog (JavaScript)"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/aboutdialog.js.page:21
+#: C/aboutdialog.js.page:22
 msgid ""
-"A modal dialog window which shows information about an application and its "
-"creators. This one is triggered by clicking \"About\" in the application's "
-"menu, which is normally a good place to put it."
+"A modal dialog window which shows information about an application and its creators. This one is triggered 
by "
+"clicking \"About\" in the application's menu, which is normally a good place to put it."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/aboutdialog.js.page:23
+#: C/aboutdialog.js.page:24
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -2638,149 +3443,204 @@ msgid ""
 "let app = new AboutDialogExample();\n"
 "app.application.run(ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const AboutDialogExample = new Lang.Class({\n"
+"    Name: 'AboutDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function() {\n"
+"            this.application = new Gtk.Application({\n"
+"                application_id: 'org.example.jsaboutdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function(){\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"AboutDialog Example\",\n"
+"                                                   default_height: 250,\n"
+"                                                   default_width: 350 });\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Create the application menu\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Create the \"About\" menu option and have it call the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Create the \"Quit\" menu option and have it close the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({ title: \"AboutDialog Example\",\n"
+"                                                program_name: \"GtkApplication Example\",\n"
+"                                                copyright: \"Copyright \\xa9 2012 GNOME Documentation 
Team\",\n"
+"                                                authors: authors,\n"
+"                                                documenters: documenters,\n"
+"                                                website: \"http://developer.gnome.org\",\n";
+"                                                website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new AboutDialogExample();\n"
+"app.application.run(ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.js.page:28 C/gmenu.c.page:31 C/gmenu.js.page:29
-#: C/gmenu.py.page:79 C/messagedialog.js.page:193 C/switch.js.page:265
-msgid ""
-"<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</"
-"link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</"
-"link>"
+#: C/aboutdialog.js.page:29 C/gmenu.c.page:32 C/gmenu.js.page:30 C/gmenu.py.page:80 
C/messagedialog.js.page:194
+#: C/switch.js.page:266
+msgid "<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</link>"
+msgstr "<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.js.page:29 C/filechooserdialog.py.page:79 C/gmenu.c.page:32
-#: C/gmenu.js.page:30 C/gmenu.py.page:80 C/menubar.c.page:38
-#: C/messagedialog.js.page:194 C/messagedialog.py.page:61 C/switch.js.page:266
-msgid ""
-"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html";
-"\">GSimpleAction</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html";
-"\">GSimpleAction</link>"
+#: C/aboutdialog.js.page:30 C/filechooserdialog.py.page:80 C/gmenu.c.page:33 C/gmenu.js.page:31 
C/gmenu.py.page:81
+#: C/menubar.c.page:39 C/messagedialog.js.page:195 C/messagedialog.py.page:62 C/switch.js.page:267
+msgid "<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html\";>GSimpleAction</link>"
+msgstr "<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html\";>GSimpleAction</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.js.page:30
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.";
-"html\">Gtk.AboutDialog</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.";
-"html\">Gtk.AboutDialog</link>"
+#: C/aboutdialog.js.page:31
+msgid "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.html\";>Gtk.AboutDialog</link>"
+msgstr "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.html\";>Gtk.AboutDialog</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.js.page:31 C/button.js.page:30 C/checkbutton.js.page:137
-#: C/comboboxtext.js.page:180 C/combobox.js.page:237 C/dialog.js.page:29
-#: C/entry.js.page:29 C/grid.js.page:33 C/GtkApplicationWindow.js.page:30
-#: C/image.js.page:31 C/label.js.page:29 C/linkbutton.js.page:29
-#: C/messagedialog.js.page:195 C/progressbar.js.page:39
-#: C/radiobutton.js.page:275 C/scale.js.page:210 C/spinbutton.js.page:201
-#: C/spinner.js.page:30 C/statusbar.js.page:222 C/switch.js.page:267
-#: C/textview.js.page:249 C/togglebutton.js.page:154
-#: C/treeview_simple_liststore.js.page:276 C/window.js.page:38
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.";
-"html\">Gtk.Application</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.";
-"html\">Gtk.Application</link>"
+#: C/aboutdialog.js.page:32 C/button.js.page:31 C/checkbutton.js.page:138 C/comboboxtext.js.page:181
+#: C/combobox.js.page:238 C/dialog.js.page:30 C/entry.js.page:30 C/grid.js.page:34 
C/GtkApplicationWindow.js.page:31
+#: C/image.js.page:32 C/label.js.page:30 C/linkbutton.js.page:30 C/messagedialog.js.page:196 
C/progressbar.js.page:40
+#: C/radiobutton.js.page:276 C/scale.js.page:211 C/spinbutton.js.page:202 C/spinner.js.page:31
+#: C/statusbar.js.page:223 C/switch.js.page:268 C/textview.js.page:250 C/togglebutton.js.page:155
+#: C/treeview_simple_liststore.js.page:277 C/window.js.page:39
+msgid "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\";>Gtk.Application</link>"
+msgstr "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\";>Gtk.Application</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.js.page:32 C/button.js.page:31 C/checkbutton.js.page:138
-#: C/comboboxtext.js.page:181 C/combobox.js.page:238 C/dialog.js.page:30
-#: C/entry.js.page:30 C/grid.js.page:34 C/GtkApplicationWindow.js.page:31
-#: C/image.js.page:32 C/label.js.page:30 C/linkbutton.js.page:30
-#: C/messagedialog.js.page:196 C/progressbar.js.page:40
-#: C/radiobutton.js.page:276 C/scale.js.page:211 C/spinbutton.js.page:202
-#: C/spinner.js.page:31 C/statusbar.js.page:223 C/switch.js.page:268
-#: C/textview.js.page:250 C/togglebutton.js.page:155
-#: C/treeview_simple_liststore.js.page:277
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html";
-"\">Gtk.ApplicationWindow</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html";
-"\">Gtk.ApplicationWindow</link>"
+#: C/aboutdialog.js.page:33 C/button.js.page:32 C/checkbutton.js.page:139 C/comboboxtext.js.page:182
+#: C/combobox.js.page:239 C/dialog.js.page:31 C/entry.js.page:31 C/grid.js.page:35 
C/GtkApplicationWindow.js.page:32
+#: C/image.js.page:33 C/label.js.page:31 C/linkbutton.js.page:31 C/messagedialog.js.page:197 
C/progressbar.js.page:41
+#: C/radiobutton.js.page:277 C/scale.js.page:212 C/spinbutton.js.page:203 C/spinner.js.page:32
+#: C/statusbar.js.page:224 C/switch.js.page:269 C/textview.js.page:251 C/togglebutton.js.page:156
+#: C/treeview_simple_liststore.js.page:278
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html\";>Gtk.ApplicationWindow</link>"
+msgstr "<link 
href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html\";>Gtk.ApplicationWindow</link>"
 
 #. (itstool) path: info/title
-#: C/aboutdialog.py.page:7
+#: C/aboutdialog.py.page:8
 msgctxt "text"
 msgid "AboutDialog (Python)"
 msgstr ""
 
 #. (itstool) path: credit/name
-#: C/aboutdialog.py.page:13 C/beginner.c.page:19 C/beginner.js.page:15
-#: C/beginner.py.page:18 C/beginner.vala.page:18 C/button.py.page:14
-#: C/buttonbox.py.page:14 C/checkbutton.py.page:13 C/colorbutton.py.page:13
-#: C/combobox.py.page:14 C/combobox_multicolumn.py.page:13 C/dialog.py.page:14
-#: C/entry.py.page:14 C/filechooserdialog.py.page:16
-#: C/fontchooserwidget.py.page:14 C/gmenu.py.page:20 C/grid.py.page:20
-#: C/GtkApplicationWindow.py.page:19 C/guitar-tuner.c.page:22
-#: C/guitar-tuner.cpp.page:20 C/guitar-tuner.py.page:22
-#: C/guitar-tuner.py.page:27 C/guitar-tuner.vala.page:25 C/image.py.page:14
-#: C/image-viewer.c.page:22 C/image-viewer.cpp.page:20
-#: C/image-viewer.js.page:22 C/image-viewer.py.page:22
-#: C/image-viewer.vala.page:30 C/js.page:15 C/label.py.page:15
-#: C/linkbutton.py.page:13 C/magic-mirror.vala.page:22 C/menubar.py.page:19
-#: C/menubutton.py.page:19 C/message-board.c.page:19
-#: C/messagedialog.py.page:13 C/model-view-controller.py.page:20
-#: C/paned.py.page:13 C/photo-wall.c.page:21 C/progressbar.py.page:13
-#: C/properties.py.page:20 C/py.page:14 C/radiobutton.py.page:14
-#: C/record-collection.js.page:22 C/scale.py.page:14
-#: C/scrolledwindow.py.page:13 C/separator.py.page:14
-#: C/signals-callbacks.py.page:20 C/spinbutton.py.page:14 C/spinner.py.page:13
-#: C/statusbar.py.page:14 C/strings.py.page:20 C/switch.py.page:13
-#: C/textview.py.page:21 C/togglebutton.py.page:13 C/toolbar.py.page:14
-#: C/toolbar_builder.py.page:21 C/tooltip.py.page:14
-#: C/treeview_advanced_liststore.py.page:13
-#: C/treeview_cellrenderertoggle.py.page:13
-#: C/treeview_simple_liststore.py.page:14 C/treeview_treestore.py.page:14
-#: C/tutorial.py.page:19 C/vala.page:14 C/weatherApp.js.page:16
-#: C/window.py.page:19
+#: C/aboutdialog.py.page:14 C/beginner.js.page:16 C/beginner.py.page:19 C/beginner.vala.page:19 
C/button.py.page:15
+#: C/buttonbox.py.page:15 C/checkbutton.py.page:14 C/colorbutton.py.page:14 C/combobox.py.page:15
+#: C/combobox_multicolumn.py.page:14 C/dialog.py.page:15 C/entry.py.page:15 C/filechooserdialog.py.page:17
+#: C/fontchooserwidget.py.page:15 C/gmenu.py.page:21 C/grid.py.page:21 C/GtkApplicationWindow.py.page:20
+#: C/guitar-tuner.c.page:23 C/guitar-tuner.cpp.page:21 C/guitar-tuner.py.page:23 C/guitar-tuner.py.page:28
+#: C/guitar-tuner.vala.page:26 C/image.py.page:15 C/image-viewer.c.page:23 C/image-viewer.cpp.page:21
+#: C/image-viewer.js.page:23 C/image-viewer.py.page:23 C/image-viewer.vala.page:31 C/js.page:16 
C/label.py.page:17
+#: C/linkbutton.py.page:14 C/magic-mirror.vala.page:23 C/menubar.py.page:20 C/menubutton.py.page:20
+#: C/message-board.c.page:20 C/messagedialog.py.page:14 C/model-view-controller.py.page:21 C/paned.py.page:14
+#: C/photo-wall.c.page:22 C/progressbar.py.page:14 C/properties.py.page:21 C/py.page:15 
C/radiobutton.py.page:15
+#: C/record-collection.js.page:23 C/scale.py.page:15 C/scrolledwindow.py.page:14 C/separator.py.page:15
+#: C/signals-callbacks.py.page:21 C/spinbutton.py.page:15 C/spinner.py.page:14 C/statusbar.py.page:15
+#: C/strings.py.page:21 C/switch.py.page:14 C/textview.py.page:22 C/togglebutton.py.page:14 
C/toolbar.py.page:15
+#: C/toolbar_builder.py.page:22 C/tooltip.py.page:15 C/treeview_advanced_liststore.py.page:14
+#: C/treeview_cellrenderertoggle.py.page:14 C/treeview_simple_liststore.py.page:15 
C/treeview_treestore.py.page:15
+#: C/tutorial.py.page:20 C/vala.page:15 C/weatherApp.js.page:17 C/widget_drawing.py.page:13 
C/window.py.page:20
 msgid "Marta Maria Casetti"
-msgstr ""
+msgstr "Marta Maria Casetti"
 
 #. (itstool) path: info/desc
-#: C/aboutdialog.py.page:18
+#: C/aboutdialog.py.page:19
 msgid "A window that displays information about an application"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/aboutdialog.py.page:23
+#: C/aboutdialog.py.page:24
 msgid ""
-"An AboutDialog example using Gtk.ApplicationWindow and Menu (the \"about\" "
-"is displayed if \"About\" in the menu is selected)."
+"An AboutDialog example using Gtk.ApplicationWindow and Menu (the \"about\" is displayed if \"About\" in the 
menu "
+"is selected)."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/aboutdialog.py.page:28 C/button.py.page:30 C/buttonbox.js.page:29
-#: C/buttonbox.py.page:30 C/checkbutton.py.page:28 C/colorbutton.js.page:27
-#: C/colorbutton.py.page:28 C/combobox.py.page:29
-#: C/combobox_multicolumn.py.page:28 C/combobox_multicolumn.vala.page:28
-#: C/dialog.py.page:29 C/entry.py.page:34 C/filechooserdialog.py.page:52
-#: C/fontchooserwidget.js.page:28 C/fontchooserwidget.py.page:30
-#: C/fontchooserwidget.vala.page:28 C/gmenu.py.page:35 C/grid.py.page:36
-#: C/GtkApplicationWindow.py.page:34 C/image.py.page:33 C/label.py.page:35
-#: C/linkbutton.py.page:29 C/menubutton.c.page:29 C/menubutton.py.page:36
-#: C/messagedialog.py.page:28 C/paned.c.page:27 C/paned.js.page:27
-#: C/paned.py.page:28 C/paned.vala.page:27 C/progressbar.py.page:38
-#: C/radiobutton.py.page:29 C/scale.py.page:29 C/scrolledwindow.js.page:27
-#: C/scrolledwindow.py.page:28 C/separator.c.page:29 C/separator.py.page:30
-#: C/separator.vala.page:31 C/spinbutton.py.page:29 C/spinner.py.page:28
-#: C/statusbar.py.page:29 C/switch.py.page:30 C/textview.py.page:43
-#: C/togglebutton.py.page:28 C/toolbar.py.page:30
-#: C/toolbar_builder.py.page:163 C/tooltip.c.page:29 C/tooltip.js.page:28
-#: C/tooltip.py.page:30 C/tooltip.vala.page:29
-#: C/treeview_advanced_liststore.py.page:28
-#: C/treeview_cellrenderertoggle.py.page:28
-#: C/treeview_simple_liststore.py.page:29 C/treeview_treestore.py.page:29
-#: C/window.py.page:44
+#: C/aboutdialog.py.page:29 C/button.py.page:31 C/buttonbox.js.page:30 C/buttonbox.py.page:31
+#: C/checkbutton.py.page:29 C/colorbutton.js.page:28 C/colorbutton.py.page:29 C/combobox.py.page:30
+#: C/combobox_multicolumn.py.page:29 C/combobox_multicolumn.vala.page:29 C/dialog.py.page:30 
C/entry.py.page:35
+#: C/filechooserdialog.py.page:53 C/fontchooserwidget.js.page:29 C/fontchooserwidget.py.page:31
+#: C/fontchooserwidget.vala.page:29 C/gmenu.py.page:36 C/grid.py.page:37 C/GtkApplicationWindow.py.page:35
+#: C/image.py.page:41 C/label.py.page:37 C/linkbutton.py.page:30 C/menubutton.c.page:30 
C/menubutton.py.page:37
+#: C/messagedialog.py.page:29 C/paned.c.page:28 C/paned.js.page:28 C/paned.py.page:29 C/paned.vala.page:28
+#: C/progressbar.py.page:39 C/radiobutton.py.page:30 C/scale.py.page:30 C/scrolledwindow.js.page:28
+#: C/scrolledwindow.py.page:29 C/separator.c.page:30 C/separator.py.page:31 C/separator.vala.page:32
+#: C/spinbutton.py.page:30 C/spinner.py.page:29 C/statusbar.py.page:30 C/switch.py.page:31 
C/textview.py.page:44
+#: C/togglebutton.py.page:29 C/toolbar.py.page:31 C/toolbar_builder.py.page:164 C/tooltip.c.page:30
+#: C/tooltip.js.page:29 C/tooltip.py.page:31 C/tooltip.vala.page:30 C/treeview_advanced_liststore.py.page:29
+#: C/treeview_cellrenderertoggle.py.page:29 C/treeview_simple_liststore.py.page:30 
C/treeview_treestore.py.page:30
+#: C/widget_drawing.py.page:28 C/window.py.page:45
 msgid "Code used to generate this example"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/aboutdialog.py.page:30
+#: C/aboutdialog.py.page:31
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -2869,120 +3729,175 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"     # constructor for a window (the parent window)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"AboutDialog Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # create the about_action (a Gio.SimpleAction)\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        # connect the signal from the action to the function about_cb()\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        # add the action to the application\n"
+"        app.add_action(about_action)\n"
+"\n"
+"    # callback function for the about_action's \"activate\" signal\n"
+"    def about_cb(self, action, parameter):\n"
+"        # a  Gtk.AboutDialog\n"
+"        aboutdialog = Gtk.AboutDialog()\n"
+"\n"
+"        # lists of authors and documenters (will be used later)\n"
+"        authors = [\"GNOME Documentation Team\"]\n"
+"        documenters = [\"GNOME Documentation Team\"]\n"
+"\n"
+"        # we fill in the aboutdialog\n"
+"        aboutdialog.set_program_name(\"AboutDialog Example\")\n"
+"        aboutdialog.set_copyright(\n"
+"            \"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\")\n"
+"        aboutdialog.set_authors(authors)\n"
+"        aboutdialog.set_documenters(documenters)\n"
+"        aboutdialog.set_website(\"http://developer.gnome.org\";)\n"
+"        aboutdialog.set_website_label(\"GNOME Developer Website\")\n"
+"\n"
+"        # we do not want to show the title, which by default would be \"About AboutDialog Example\"\n"
+"        # we have to reset the title of the messagedialog window after setting\n"
+"        # the program name\n"
+"        aboutdialog.set_title(\"\")\n"
+"\n"
+"        # to close the aboutdialog when \"close\" is clicked we connect the\n"
+"        # \"response\" signal to on_close\n"
+"        aboutdialog.connect(\"response\", self.on_close)\n"
+"        # show the aboutdialog\n"
+"        aboutdialog.show()\n"
+"\n"
+"    # destroy the aboutdialog\n"
+"    def on_close(self, action, parameter):\n"
+"        action.destroy()\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu (a Gio.Menu)\n"
+"        menu = Gio.Menu()\n"
+"        # append a menu item with label \"About\" and action \"app.about\"\n"
+"        menu.append(\"About\", \"app.about\")\n"
+"        # append a menu item with label \"Quit\" and action \"app.quit\"\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set menu as the menu for the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # a new simpleaction - for the application\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/aboutdialog.py.page:35
+#: C/aboutdialog.py.page:36
 msgid "Useful methods for an AboutDialog widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/aboutdialog.py.page:36
+#: C/aboutdialog.py.page:37
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: section/title
-#: C/aboutdialog.py.page:40 C/button.py.page:51 C/buttonbox.js.page:34
-#: C/buttonbox.py.page:45 C/checkbutton.py.page:41 C/colorbutton.js.page:32
-#: C/colorbutton.py.page:39 C/combobox.py.page:41
-#: C/combobox_multicolumn.py.page:40 C/combobox_multicolumn.vala.page:34
-#: C/dialog.py.page:45 C/entry.py.page:60 C/filechooserdialog.py.page:69
-#: C/fontchooserwidget.js.page:33 C/fontchooserwidget.py.page:43
-#: C/fontchooserwidget.vala.page:33 C/gmenu.py.page:76 C/grid.py.page:53
-#: C/GtkApplicationWindow.py.page:49 C/image.py.page:99 C/label.py.page:86
-#: C/linkbutton.py.page:43 C/menubar.py.page:182 C/menubutton.c.page:34
-#: C/menubutton.py.page:52 C/messagedialog.py.page:53 C/paned.c.page:32
-#: C/paned.js.page:32 C/paned.py.page:38 C/paned.vala.page:32
-#: C/progressbar.py.page:53 C/radiobutton.py.page:45 C/scale.py.page:53
-#: C/scrolledwindow.js.page:32 C/scrolledwindow.py.page:41
-#: C/spinbutton.py.page:45 C/spinner.py.page:38 C/statusbar.py.page:49
-#: C/switch.py.page:41 C/textview.py.page:92 C/togglebutton.py.page:40
-#: C/toolbar.py.page:51 C/toolbar_builder.py.page:190 C/tooltip.c.page:34
-#: C/tooltip.js.page:33 C/tooltip.py.page:55 C/tooltip.vala.page:34
-#: C/treeview_advanced_liststore.py.page:40
-#: C/treeview_cellrenderertoggle.py.page:40
-#: C/treeview_simple_liststore.py.page:41 C/treeview_treestore.py.page:40
-#: C/window.py.page:59
+#: C/aboutdialog.py.page:41 C/button.py.page:52 C/buttonbox.js.page:35 C/buttonbox.py.page:46
+#: C/checkbutton.py.page:42 C/colorbutton.js.page:33 C/colorbutton.py.page:40 C/combobox.py.page:42
+#: C/combobox_multicolumn.py.page:41 C/combobox_multicolumn.vala.page:35 C/dialog.py.page:46 
C/entry.py.page:61
+#: C/filechooserdialog.py.page:70 C/fontchooserwidget.js.page:34 C/fontchooserwidget.py.page:44
+#: C/fontchooserwidget.vala.page:34 C/gmenu.py.page:77 C/grid.py.page:54 C/GtkApplicationWindow.py.page:50
+#: C/image.py.page:126 C/label.py.page:102 C/linkbutton.py.page:44 C/menubar.py.page:183 
C/menubutton.c.page:35
+#: C/menubutton.py.page:53 C/messagedialog.py.page:54 C/paned.c.page:33 C/paned.js.page:33 C/paned.py.page:39
+#: C/paned.vala.page:33 C/progressbar.py.page:54 C/radiobutton.py.page:46 C/scale.py.page:54
+#: C/scrolledwindow.js.page:33 C/scrolledwindow.py.page:42 C/spinbutton.py.page:46 C/spinner.py.page:39
+#: C/statusbar.py.page:50 C/switch.py.page:42 C/textview.py.page:93 C/togglebutton.py.page:41 
C/toolbar.py.page:52
+#: C/toolbar_builder.py.page:191 C/tooltip.c.page:35 C/tooltip.js.page:34 C/tooltip.py.page:56 
C/tooltip.vala.page:35
+#: C/treeview_advanced_liststore.py.page:41 C/treeview_cellrenderertoggle.py.page:41
+#: C/treeview_simple_liststore.py.page:42 C/treeview_treestore.py.page:41 C/widget_drawing.py.page:35
+#: C/window.py.page:60
 msgid "API References"
-msgstr ""
+msgstr "API-Referenzen"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.py.page:45
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html";
-"\">GtkAboutDialog</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html";
-"\">GtkAboutDialog</link>"
+#: C/aboutdialog.py.page:46
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html\";>GtkAboutDialog</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html\";>GtkAboutDialog</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.py.page:46 C/checkbutton.py.page:45 C/grid.py.page:57
-#: C/GtkApplicationWindow.py.page:55 C/separator.c.page:37
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.";
-"html\">GtkApplicationWindow</link>"
+#: C/aboutdialog.py.page:47 C/checkbutton.py.page:46 C/grid.py.page:58 C/GtkApplicationWindow.py.page:56
+#: C/separator.c.page:38
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.html\";>GtkApplicationWindow</link>"
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.";
-"html\">GtkApplicationWindow</link>"
+"<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.html\";>GtkApplicationWindow</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.py.page:48 C/checkbutton.py.page:44 C/grid.py.page:56
-#: C/GtkApplicationWindow.py.page:54 C/messagedialog.py.page:64
-#: C/window.py.page:63
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html";
-"\">GtkApplication</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html";
-"\">GtkApplication</link>"
+#: C/aboutdialog.py.page:49 C/checkbutton.py.page:45 C/grid.py.page:57 C/GtkApplicationWindow.py.page:55
+#: C/messagedialog.py.page:65 C/window.py.page:64
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html\";>GtkApplication</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html\";>GtkApplication</link>"
 
 #. (itstool) path: info/title
-#: C/aboutdialog.vala.page:7
+#: C/aboutdialog.vala.page:8
 msgctxt "text"
 msgid "AboutDialog (Vala)"
 msgstr ""
 
 #. (itstool) path: credit/name
-#: C/aboutdialog.vala.page:14 C/gmenu.vala.page:13
+#: C/aboutdialog.vala.page:15 C/gmenu.vala.page:14
 msgid "Ryan Lortie"
 msgstr "Ryan Lortie"
 
 #. (itstool) path: credit/name
-#: C/aboutdialog.vala.page:20 C/beginner.py.page:14 C/beginner.vala.page:14
-#: C/bug-filing.page:9 C/button.vala.page:13 C/c.page:10
-#: C/checkbutton.c.page:12 C/checkbutton.vala.page:12
-#: C/colorbutton.vala.page:14 C/combobox.c.page:17 C/combobox.vala.page:12
-#: C/combobox_multicolumn.vala.page:13 C/cpp.page:10 C/dialog.vala.page:12
-#: C/documentation.page:10 C/entry.vala.page:12
-#: C/filechooserdialog.vala.page:15 C/gmenu.c.page:12 C/gmenu.js.page:12
-#: C/gmenu.py.page:14 C/gmenu.vala.page:19 C/grid.py.page:14
-#: C/grid.vala.page:14 C/GtkApplicationWindow.c.page:12
-#: C/GtkApplicationWindow.js.page:12 C/GtkApplicationWindow.py.page:14
-#: C/GtkApplicationWindow.vala.page:12 C/guitar-tuner.vala.page:21
-#: C/hello-world.c.page:19 C/hello-world.js.page:19 C/hello-world.py.page:19
-#: C/hello-world.vala.page:19 C/image.vala.page:12 C/image-viewer.vala.page:26
-#: C/index.page:22 C/js.page:11 C/label.vala.page:12 C/linkbutton.vala.page:12
-#: C/menubar.py.page:14 C/menubar.vala.page:14 C/menubutton.c.page:12
-#: C/menubutton.py.page:13 C/menubutton.vala.page:12
-#: C/messagedialog.vala.page:12 C/paned.c.page:12 C/paned.vala.page:12
-#: C/progressbar.vala.page:12 C/py.page:10 C/radiobutton.vala.page:15
-#: C/response-type.page:8 C/scale.vala.page:14 C/scrolledwindow.vala.page:13
-#: C/separator.c.page:13 C/separator.vala.page:15 C/spinbutton.vala.page:14
-#: C/spinner.vala.page:12 C/statusbar.vala.page:15 C/switch.vala.page:16
-#: C/textview.vala.page:12 C/togglebutton.vala.page:15 C/toolbar.js.page:12
-#: C/toolbar.vala.page:13 C/toolbar_builder.py.page:15
-#: C/toolbar_builder.vala.page:14 C/tooltip.c.page:13 C/tooltip.vala.page:13
-#: C/treeview_simple_liststore.vala.page:14 C/translate.page:10
-#: C/tutorial.py.page:14 C/vala.page:10 C/window.c.page:12 C/window.py.page:14
-#: C/window.vala.page:12
+#: C/aboutdialog.vala.page:21 C/beginner.py.page:15 C/beginner.vala.page:15 C/button.vala.page:14 C/c.page:14
+#: C/checkbutton.c.page:13 C/checkbutton.vala.page:13 C/colorbutton.vala.page:15 C/combobox.c.page:18
+#: C/combobox.vala.page:13 C/combobox_multicolumn.vala.page:14 C/cpp.page:11 C/dialog.vala.page:13
+#: C/entry.vala.page:13 C/filechooserdialog.vala.page:16 C/gmenu.c.page:13 C/gmenu.js.page:13 
C/gmenu.py.page:15
+#: C/gmenu.vala.page:20 C/grid.py.page:15 C/grid.vala.page:15 C/GtkApplicationWindow.c.page:13
+#: C/GtkApplicationWindow.js.page:13 C/GtkApplicationWindow.py.page:15 C/GtkApplicationWindow.vala.page:13
+#: C/guitar-tuner.vala.page:22 C/hello-world.c.page:20 C/hello-world.js.page:20 C/hello-world.py.page:20
+#: C/hello-world.vala.page:20 C/image.vala.page:13 C/image-viewer.vala.page:27 C/index.page:23 C/js.page:12
+#: C/label.vala.page:13 C/linkbutton.vala.page:13 C/menubar.py.page:15 C/menubar.vala.page:15 
C/menubutton.c.page:13
+#: C/menubutton.py.page:14 C/menubutton.vala.page:13 C/messagedialog.vala.page:13 C/paned.c.page:13
+#: C/paned.vala.page:13 C/progressbar.vala.page:13 C/py.page:11 C/radiobutton.vala.page:16 
C/response-type.page:9
+#: C/scale.vala.page:15 C/scrolledwindow.vala.page:14 C/separator.c.page:14 C/separator.vala.page:16
+#: C/spinbutton.vala.page:15 C/spinner.vala.page:13 C/statusbar.vala.page:16 C/switch.vala.page:17
+#: C/textview.vala.page:13 C/togglebutton.vala.page:16 C/toolbar.js.page:13 C/toolbar.vala.page:14
+#: C/toolbar_builder.py.page:16 C/toolbar_builder.vala.page:15 C/tooltip.c.page:14 C/tooltip.vala.page:14
+#: C/treeview_simple_liststore.vala.page:15 C/tutorial.py.page:15 C/vala.page:11 C/window.c.page:13
+#: C/window.py.page:15 C/window.vala.page:13
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
 #. (itstool) path: page/code
-#: C/aboutdialog.vala.page:33
+#: C/aboutdialog.vala.page:34
 #, no-wrap
 msgid ""
 "/* A window in the application */\n"
@@ -3051,567 +3966,436 @@ msgid ""
 "\treturn new Application ().run (args);\n"
 "}\n"
 msgstr ""
+"/* A window in the application */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"AboutDialog Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\t\tthis.add_action (about_action);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* This is the callback function connected to the 'activate' signal\n"
+"\t * of the SimpleAction about_action.\n"
+"\t */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tstring[] authors = { \"GNOME Documentation Team\", null };\n"
+"\t\tstring[] documenters = { \"GNOME Documentation Team\", null };\n"
+"\n"
+"\t\tGtk.show_about_dialog (this,\n"
+"                               \"program-name\", (\"GtkApplication Example\"),\n"
+"                               \"copyright\", (\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\"),\n"
+"                               \"authors\", authors,\n"
+"                               \"documenters\", documenters,\n"
+"                               \"website\", \"http://developer.gnome.org\",\n";
+"                               \"website-label\", (\"GNOME Developer Website\"),\n"
+"                               null);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Here we override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Here we override the startup signal of GLib.Application */\n"
+"\tprotected override void startup () {\n"
+"\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.vala.page:38 C/gmenu.vala.page:41 C/window.vala.page:37
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk."
-"Application</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk."
-"Application</link>"
+#: C/aboutdialog.vala.page:39 C/gmenu.vala.page:39 C/window.vala.page:38
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk.Application</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk.Application</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.vala.page:39 C/gmenu.vala.page:42
-#: C/GtkApplicationWindow.vala.page:31 C/label.vala.page:31
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
-"\">Gtk.ApplicationWindow</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
-"\">Gtk.ApplicationWindow</link>"
+#: C/aboutdialog.vala.page:40 C/gmenu.vala.page:40 C/GtkApplicationWindow.vala.page:32 C/label.vala.page:32
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html\";>Gtk.ApplicationWindow</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html\";>Gtk.ApplicationWindow</link>"
 
 #. (itstool) path: item/p
-#: C/aboutdialog.vala.page:40
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html";
-"\">set_default_size</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html";
-"\">set_default_size</link>"
+#: C/aboutdialog.vala.page:41
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html\";>set_default_size</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html\";>set_default_size</link>"
 
 #. (itstool) path: info/desc
-#: C/audio-player.vala.page:9
+#: C/audio-player.vala.page:10
 msgid "Coming soon..."
 msgstr ""
 
 #. (itstool) path: credit/name
-#: C/audio-player.vala.page:13 C/getting-ready.page:11
-#: C/guitar-tuner.c.page:14 C/guitar-tuner.cpp.page:12
-#: C/guitar-tuner.py.page:14 C/guitar-tuner.vala.page:13
-#: C/image-viewer.c.page:14 C/image-viewer.cpp.page:12
-#: C/image-viewer.vala.page:14 C/record-collection.js.page:14
+#: C/audio-player.vala.page:14 C/guitar-tuner.c.page:15 C/guitar-tuner.cpp.page:13 C/guitar-tuner.py.page:15
+#: C/guitar-tuner.vala.page:14 C/image-viewer.c.page:15 C/image-viewer.cpp.page:13 
C/image-viewer.vala.page:15
+#: C/record-collection.js.page:15
 msgid "GNOME Documentation Project"
 msgstr "GNOME-Dokumentationsprojekt"
 
 #. (itstool) path: page/title
-#: C/audio-player.vala.page:18
+#: C/audio-player.vala.page:19
 msgid "Audio player"
 msgstr "Musikwiedergabe"
 
-#. (itstool) path: info/title
-#: C/beginner.c.page:8
-msgctxt "text"
-msgid "Tutorial for beginners (C)"
-msgstr "Tutorien für Einsteiger (C)"
-
-#. (itstool) path: info/desc
-#: C/beginner.c.page:12 C/beginner.vala.page:12
-msgid ""
-"A beginner's guide to GUI programming using GTK+, including code samples and "
-"practice exercises."
-msgstr ""
+#. (itstool) path: credit/name
+#: C/beginner.js.page:11 C/grid.js.page:13 C/guitar-tuner.js.page:12 C/hello-world.c.page:15 
C/hello-world.js.page:15
+#: C/hello-world.py.page:15 C/hello-world.vala.page:15 C/weatherApp.js.page:12 C/weatherAppMain.js.page:11
+#: C/weatherAutotools.js.page:11 C/weatherGeonames.js.page:11
+msgid "Susanna Huhtanen"
+msgstr "Susanna Huhtanen"
 
 #. (itstool) path: credit/years
-#: C/beginner.c.page:21 C/beginner.js.page:17 C/beginner.py.page:20
-#: C/beginner.vala.page:20 C/buttonbox.js.page:15 C/colorbutton.js.page:14
-#: C/combobox_multicolumn.vala.page:15 C/fontchooserwidget.js.page:14
-#: C/fontchooserwidget.vala.page:14 C/guitar-tuner.c.page:24
-#: C/guitar-tuner.cpp.page:22 C/guitar-tuner.py.page:24
-#: C/guitar-tuner.py.page:29 C/guitar-tuner.vala.page:27
-#: C/image-viewer.c.page:24 C/image-viewer.cpp.page:22
-#: C/image-viewer.js.page:24 C/image-viewer.py.page:24
-#: C/image-viewer.vala.page:32 C/js.page:17 C/magic-mirror.vala.page:24
-#: C/menubutton.c.page:14 C/message-board.c.page:21 C/paned.js.page:14
-#: C/paned.vala.page:14 C/photo-wall.c.page:23 C/py.page:16
-#: C/record-collection.js.page:24 C/scrolledwindow.js.page:14
-#: C/separator.c.page:15 C/separator.vala.page:17 C/tooltip.c.page:15
-#: C/tooltip.js.page:15 C/tooltip.vala.page:15 C/tutorial.py.page:26
-#: C/vala.page:16 C/weatherApp.js.page:18
+#: C/beginner.js.page:18 C/beginner.py.page:21 C/beginner.vala.page:21 C/buttonbox.js.page:16
+#: C/colorbutton.js.page:15 C/combobox_multicolumn.vala.page:16 C/fontchooserwidget.js.page:15
+#: C/fontchooserwidget.vala.page:15 C/guitar-tuner.c.page:25 C/guitar-tuner.cpp.page:23 
C/guitar-tuner.py.page:25
+#: C/guitar-tuner.py.page:30 C/guitar-tuner.vala.page:28 C/image-viewer.c.page:25 C/image-viewer.cpp.page:23
+#: C/image-viewer.js.page:25 C/image-viewer.py.page:25 C/image-viewer.vala.page:33 C/js.page:18
+#: C/magic-mirror.vala.page:25 C/menubutton.c.page:15 C/message-board.c.page:22 C/paned.js.page:15
+#: C/paned.vala.page:15 C/photo-wall.c.page:24 C/py.page:17 C/record-collection.js.page:25
+#: C/scrolledwindow.js.page:15 C/separator.c.page:16 C/separator.vala.page:18 C/tooltip.c.page:16
+#: C/tooltip.js.page:16 C/tooltip.vala.page:16 C/tutorial.py.page:27 C/vala.page:17 C/weatherApp.js.page:19
+#: C/widget_drawing.py.page:15
 msgid "2013"
 msgstr "2013"
 
+#. (itstool) path: info/desc
+#: C/beginner.js.page:21
+msgid ""
+"A beginner's guide to writing GNOME applications in JavaScript, including code samples and practice 
exercises."
+msgstr ""
+
 #. (itstool) path: page/title
-#: C/beginner.c.page:25 C/beginner.js.page:23 C/beginner.vala.page:24
+#: C/beginner.js.page:24 C/beginner.vala.page:25
 msgid "Tutorial for beginners and code samples"
 msgstr ""
 
 #. (itstool) path: synopsis/p
-#: C/beginner.c.page:27 C/beginner.vala.page:26
+#: C/beginner.js.page:26
+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 JavaScript, you can write full-fledged applications for GNOME. <link 
href="
+"\"https://wiki.gnome.org/Apps/Documents\";>GNOME Documents</link> is written in JavaScript, and so is <link 
href="
+"\"https://live.gnome.org/GnomeShell/Tour\";>GNOME Shell</link>, the most basic part of GNOME."
+msgstr ""
+
+#. (itstool) path: note/p
+#: C/beginner.js.page:27
+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 panel. Besides showing how you to write GNOME applications, 
these "
+"tutorials will also show you how to use JavaScript to write GNOME Shell extensions, which give it new 
features or "
+"change the way it does things."
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/beginner.js.page:31
+msgid "Getting Started"
+msgstr "Erste Schritte"
+
+#. (itstool) path: section/p
+#: C/beginner.js.page:32
 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:"
+"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 are new to developing GNOME applications. If you don't already know "
+"JavaScript, or if you need help getting GNOME set up, take a look at these resources first:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/beginner.c.page:29 C/beginner.vala.page:28
-msgid "Object oriented programming"
+#: C/beginner.js.page:34
+msgid ""
+"<link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent JavaScript</link> is a free, Creative 
Commons-"
+"licensed book, which explains the basics of JavaScript programming. Since you won't be writing JavaScript 
for the "
+"web, you only need to read up to chapter 10 or so."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/beginner.c.page:30
-msgid "The C programming language"
-msgstr "Programmieren in C"
+#: C/beginner.js.page:35
+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 ""
 
-#. (itstool) path: synopsis/p
-#: C/beginner.c.page:34 C/beginner.vala.page:37
+#. (itstool) path: item/p
+#: C/beginner.js.page:36
 msgid ""
-"By following these tutorials you will learn the basics of GUI programming "
-"using GTK+."
+"<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 ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:38 C/beginner.js.page:41 C/beginner.vala.page:41
+#: C/beginner.js.page:42 C/beginner.vala.page:42 C/c.page:113
 msgid "Tutorials"
 msgstr "Einführungen"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:42 C/beginner.js.page:45 C/beginner.vala.page:45
-#: C/py.page:31
+#: C/beginner.js.page:46 C/beginner.vala.page:46 C/py.page:32
 msgid "Code samples"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/beginner.c.page:43 C/beginner.js.page:47 C/beginner.vala.page:46
-msgid "To run the code samples:"
+#: C/beginner.js.page:47
+msgid ""
+"These samples show how to use widgets in your GNOME applications. Each one demonstrates a complete 
application "
+"which showcases the featured widget. At the end of each sample, you will find links to more detailed 
reference "
+"material."
 msgstr ""
 
-#. (itstool) path: item/p
-#: C/beginner.c.page:47
-msgid "Copy and paste the code into <var>filename</var>.c"
+#. (itstool) path: section/p
+#: C/beginner.js.page:48 C/beginner.vala.page:47 C/c.page:91
+msgid "To run the code samples:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/beginner.c.page:48 C/beginner.c.page:61 C/beginner.vala.page:51
-msgid "In the terminal type:"
-msgstr ""
-
-#. (itstool) path: item/screen
-#: C/beginner.c.page:49
-#, no-wrap
-msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
-msgstr "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
-
-#. (itstool) path: item/screen
-#: C/beginner.c.page:51 C/beginner.c.page:65 C/beginner.vala.page:53
-#, no-wrap
-msgid "./<var>filename</var>"
-msgstr "./<var>filename</var>"
-
-#. (itstool) path: note/p
-#: C/beginner.c.page:55
-msgid ""
-"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>."
+#: C/beginner.js.page:50
+msgid "Copy and paste the code into <var>filename</var>.js"
 msgstr ""
 
-#. (itstool) path: section/p
-#: C/beginner.c.page:59
-msgid "You can also use the Vala compiler to compile these samples:"
-msgstr ""
+#. (itstool) path: item/p
+#: C/beginner.js.page:51
+msgid "In the terminal, type:"
+msgstr "Geben Sie Folgendes im Terminal ein:"
 
 #. (itstool) path: item/screen
-#: C/beginner.c.page:62
+#: C/beginner.js.page:52
 #, no-wrap
-msgid "valac --pkg gtk+-3.0 <var>filename</var>.c"
-msgstr "valac --pkg gtk+-3.0 <var>filename</var>.c"
-
-#. (itstool) path: item/p
-#: C/beginner.c.page:64
-#, fuzzy
-msgid "To run:"
-msgstr "Ausführen bis"
+msgid "gjs <var>filename</var>.js"
+msgstr "gjs <var>Dateiname</var>.js"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:68 C/beginner.js.page:54 C/beginner.py.page:31
-#: C/beginner.vala.page:57
+#: C/beginner.js.page:55 C/beginner.py.page:32 C/beginner.vala.page:58 C/c.page:118
 msgid "Windows"
 msgstr "Fenster"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:71 C/beginner.js.page:56 C/beginner.py.page:33
-#: C/beginner.vala.page:60
+#: C/beginner.js.page:57 C/beginner.py.page:34 C/beginner.vala.page:61 C/c.page:121
 msgid "Display widgets"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:73 C/beginner.js.page:58 C/beginner.py.page:35
-#: C/beginner.vala.page:62
+#: C/beginner.js.page:59 C/beginner.py.page:36 C/beginner.vala.page:63 C/c.page:123
 msgid "Buttons and toggles"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:75 C/beginner.js.page:60 C/beginner.py.page:37
-#: C/beginner.vala.page:64
+#: C/beginner.js.page:61 C/beginner.py.page:38 C/beginner.vala.page:65 C/c.page:125
 msgid "Numeric and text data entry"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:77 C/beginner.js.page:62 C/beginner.py.page:39
-#: C/beginner.vala.page:66
+#: C/beginner.js.page:63 C/beginner.py.page:40 C/beginner.vala.page:67 C/c.page:127
 msgid "Multiline text editor"
 msgstr "Ein mehrzeiliger Texteditor"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:79 C/beginner.js.page:64 C/beginner.py.page:41
-#: C/beginner.vala.page:68
+#: C/beginner.js.page:65 C/beginner.py.page:42 C/beginner.vala.page:69 C/c.page:129
 msgid "Menu, combo box and toolbar widgets"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:81 C/beginner.js.page:66 C/beginner.py.page:43
-#: C/beginner.vala.page:70
+#: C/beginner.js.page:67 C/beginner.py.page:44 C/beginner.vala.page:71 C/c.page:131
 msgid "TreeView widget"
 msgstr ""
 
 #. (itstool) path: section/title
 #. (itstool) path: steps/title
-#: C/beginner.c.page:83 C/beginner.js.page:68 C/beginner.py.page:45
-#: C/beginner.vala.page:72 C/tutorial.py.page:126
-#, fuzzy
-#| msgid "Selecting"
+#: C/beginner.js.page:69 C/beginner.py.page:46 C/beginner.vala.page:73 C/c.page:133 C/tutorial.py.page:127
 msgid "Selectors"
-msgstr "Auswählen"
+msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:84 C/beginner.js.page:69 C/beginner.py.page:46
-#: C/beginner.vala.page:73
+#: C/beginner.js.page:70 C/beginner.py.page:47 C/beginner.vala.page:74 C/c.page:134
 msgid "File selectors"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:86 C/beginner.js.page:71 C/beginner.py.page:48
-#: C/beginner.vala.page:75
+#: C/beginner.js.page:72 C/beginner.py.page:49 C/beginner.vala.page:76 C/c.page:136
 msgid "Font selectors"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:88 C/beginner.js.page:73 C/beginner.py.page:50
-#: C/beginner.vala.page:77
+#: C/beginner.js.page:74 C/beginner.py.page:51 C/beginner.vala.page:78 C/c.page:138
 msgid "Color Selectors"
 msgstr "Farbwähler"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:91 C/beginner.js.page:76 C/beginner.py.page:53
-#: C/beginner.vala.page:80
+#: C/beginner.js.page:77 C/beginner.py.page:54 C/beginner.vala.page:81 C/c.page:141
 msgid "Layout containers"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:93 C/beginner.js.page:78 C/beginner.py.page:55
-#: C/beginner.vala.page:82
+#: C/beginner.js.page:79 C/beginner.py.page:56 C/beginner.vala.page:83 C/c.page:143
 msgid "Ornaments"
-msgstr ""
+msgstr "Ornamente"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:95 C/beginner.js.page:80 C/beginner.py.page:57
-#: C/beginner.vala.page:84
+#: C/beginner.js.page:81 C/beginner.py.page:58 C/beginner.vala.page:85 C/c.page:145
 msgid "Scrolling"
 msgstr "Bildlauf"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:97 C/beginner.js.page:82 C/beginner.py.page:59
-#: C/beginner.vala.page:86
+#: C/beginner.js.page:83 C/beginner.py.page:60 C/beginner.vala.page:87 C/c.page:147
 msgid "Miscellaneous"
 msgstr "Verschiedenes"
 
 #. (itstool) path: section/title
-#: C/beginner.c.page:102 C/beginner.js.page:87 C/beginner.vala.page:91
-#: C/menubar.vala.page:197
+#: C/beginner.js.page:88 C/beginner.vala.page:92 C/menubar.vala.page:198
 msgid "Exercises"
-msgstr ""
-
-#. (itstool) path: credit/name
-#: C/beginner.js.page:10 C/grid.js.page:12 C/guitar-tuner.js.page:11
-#: C/hello-world.c.page:14 C/hello-world.js.page:14 C/hello-world.py.page:14
-#: C/hello-world.vala.page:14 C/weatherApp.js.page:11
-#: C/weatherAppMain.js.page:10 C/weatherAutotools.js.page:10
-#: C/weatherGeonames.js.page:10
-msgid "Susanna Huhtanen"
-msgstr "Susanna Huhtanen"
-
-#. (itstool) path: info/desc
-#: C/beginner.js.page:20
-msgid ""
-"A beginner's guide to writing GNOME applications in JavaScript, including "
-"code samples and practice exercises."
-msgstr ""
-
-#. (itstool) path: synopsis/p
-#: C/beginner.js.page:25
-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 "
-"JavaScript, you can write full-fledged applications for GNOME. <link href="
-"\"https://live.gnome.org/GnomeDocuments\";>GNOME Documents</link> is written "
-"in JavaScript, and so is <link href=\"https://live.gnome.org/GnomeShell/Tour";
-"\">GNOME Shell</link>, the most basic part of GNOME."
-msgstr ""
-
-#. (itstool) path: note/p
-#: C/beginner.js.page:26
-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 "
-"panel. Besides showing how you to write GNOME applications, these tutorials "
-"will also show you how to use JavaScript to write GNOME Shell extensions, "
-"which give it new features or change the way it does things."
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/beginner.js.page:30
-msgid "Getting Started"
-msgstr "Erste Schritte"
-
-#. (itstool) path: section/p
-#: C/beginner.js.page:31
-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 "
-"are new to developing GNOME applications. If you don't already know "
-"JavaScript, or if you need help getting GNOME set up, take a look at these "
-"resources first:"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/beginner.js.page:33
-msgid ""
-"<link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent "
-"JavaScript</link> is a free, Creative Commons-licensed book, which explains "
-"the basics of JavaScript programming. Since you won't be writing JavaScript "
-"for the web, you only need to read up to chapter 10 or so."
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/beginner.js.page:34
-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 ""
-
-#. (itstool) path: item/p
-#: C/beginner.js.page:35
-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 ""
-
-#. (itstool) path: section/p
-#: C/beginner.js.page:46
-msgid ""
-"These samples show how to use widgets in your GNOME applications. Each one "
-"demonstrates a complete application which showcases the featured widget. At "
-"the end of each sample, you will find links to more detailed reference "
-"material."
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/beginner.js.page:49
-msgid "Copy and paste the code into <var>filename</var>.js"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/beginner.js.page:50
-msgid "In the terminal, type:"
-msgstr ""
-
-#. (itstool) path: item/screen
-#: C/beginner.js.page:51
-#, no-wrap
-msgid "gjs <var>filename</var>.js"
-msgstr "gjs <var>filename</var>.js"
+msgstr "Übungen"
 
 #. (itstool) path: info/title
-#: C/beginner.py.page:8
+#: C/beginner.py.page:9
 msgctxt "text"
 msgid "GTK+ widgets sample code (Python)"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/beginner.py.page:12
-msgid ""
-"A guide to GUI programming using GTK+, including code samples and practice "
-"exercises."
+#: C/beginner.py.page:13
+msgid "A guide to GUI programming using GTK+, including code samples and practice exercises."
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/beginner.py.page:24
+#: C/beginner.py.page:25
 msgid "GTK+ widgets sample code"
 msgstr ""
 
 #. (itstool) path: synopsis/p
-#: C/beginner.py.page:26
+#: C/beginner.py.page:27
 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 "
-"<link xref=\"tutorial.py\"/> page. If you are looking for a specific widget, "
-"you can find it in the sections below."
+"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 <link xref=\"tutorial.py\"/> page. If you are looking for a specific 
widget, you "
+"can find it in the sections below."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/beginner.py.page:63
+#: C/beginner.py.page:64
 msgid "Theory pages"
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/beginner.vala.page:8
+#: C/beginner.vala.page:9
 msgctxt "text"
 msgid "Tutorial for beginners (Vala)"
 msgstr ""
 
+#. (itstool) path: info/desc
+#: C/beginner.vala.page:13
+msgid "A beginner's guide to GUI programming using GTK+, including code samples and practice exercises."
+msgstr ""
+
+#. (itstool) path: synopsis/p
+#: C/beginner.vala.page:27
+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 ""
+
 #. (itstool) path: item/p
 #: C/beginner.vala.page:29
-msgid "The Vala programming language:"
+msgid "Object oriented programming"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/beginner.vala.page:31
-msgid ""
-"<link href=\"https://live.gnome.org/Vala/Tutorial\";>The Vala Tutorial</link>"
+#: C/beginner.vala.page:30
+msgid "The Vala programming language:"
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/beginner.vala.page:32
-msgid ""
-"<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>Sample "
-"Vala code</link>"
+msgid "<link href=\"https://live.gnome.org/Vala/Tutorial\";>The Vala Tutorial</link>"
+msgstr "<link href=\"https://live.gnome.org/Vala/Tutorial\";>The Vala Tutorial</link>"
+
+#. (itstool) path: item/p
+#: C/beginner.vala.page:33
+msgid "<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>Sample Vala code</link>"
+msgstr "<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>Vala-Beispielcode</link>"
+
+#. (itstool) path: synopsis/p
+#: C/beginner.vala.page:38
+msgid "By following these tutorials you will learn the basics of GUI programming using GTK+."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/beginner.vala.page:50
+#: C/beginner.vala.page:51
 msgid "Copy and paste the code into <var>filename</var>.vala"
 msgstr ""
 
+#. (itstool) path: item/p
+#: C/beginner.vala.page:52 C/c.page:98
+msgid "In the terminal type:"
+msgstr "Geben Sie Folgendes im Terminal ein:"
+
 #. (itstool) path: item/screen
-#: C/beginner.vala.page:52
+#: C/beginner.vala.page:53
 #, no-wrap
 msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
 msgstr "valac --pkg gtk+-3.0 <var>filename</var>.vala"
 
-#. (itstool) path: credit/years
-#: C/bug-filing.page:11 C/documentation.page:12 C/entry.py.page:22
-#: C/index.page:19 C/model-view-controller.py.page:17 C/properties.py.page:17
-#: C/signals-callbacks.py.page:17 C/strings.py.page:17 C/textview.py.page:17
-#: C/toolbar_builder.py.page:29 C/translate.page:12
-msgid "2011"
-msgstr "2011"
-
-#. (itstool) path: license/p
-#: C/bug-filing.page:14 C/documentation.page:15 C/translate.page:19
-msgid "Creative Commons Share Alike 3.0"
-msgstr "Creative Commons Share Alike 3.0"
-
-#. (itstool) path: page/title
-#: C/bug-filing.page:18
-msgid "Help make <app>GNOME Developer Tutorials</app> better"
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/bug-filing.page:21
-msgid "Report a bug or suggest an improvement"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:22
-msgid ""
-"<app>GNOME Developer Tutorials</app> are maintained by a volunteer "
-"community. You are welcome to participate. If you notice a problem you can "
-"file a <em>bug report</em>. To file a bug, go to <link href=\"https://";
-"bugzilla.gnome.org/\"/>."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:25
-msgid ""
-"This is a bug tracking system where users and developers can file details "
-"about bugs, crashes and request enhancements."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:28
-msgid ""
-"To participate you need an account which will give you the ability to gain "
-"access, file bugs, and make comments. Also, you need to register so you can "
-"receive updates by e-mail about the status of your bug. If you don't already "
-"have an account, just click on the <gui>New Account</gui> link to create one."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:31
-msgid ""
-"Once you have an account, log in, click on <guiseq><gui>File a Bug</"
-"gui><gui>All</gui><gui>gnome-devel-docs</gui></guiseq>. Before reporting a "
-"bug, please read the <link href=\"https://bugzilla.gnome.org/page.cgi?id=bug-";
-"writing.html\">bug writing guidelines</link>, and please <link href="
-"\"https://bugzilla.gnome.org/browse.cgi?product=gnome-games\";>browse</link> "
-"for the bug to see if it already exists."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:35
-msgid ""
-"To file your bug, choose the component <gui>platform-demos</gui> in the "
-"<gui>Component</gui> menu."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:38
-msgid ""
-"If you are requesting a new feature, choose <gui>enhancement</gui> in the "
-"<gui>Severity</gui> menu. Fill in the Summary and Description sections and "
-"click <gui>Commit</gui>."
-msgstr ""
-"Falls Sie eine Anfrage nach einem neuen Funktionsmerkmal stellen, wählen Sie "
-"<gui>enhancement</gui> im Menü <gui>Severity</gui>. Füllen Sie die Felder "
-"»Summary« und »Description« aus und klicken Sie auf <gui>Commit</gui>."
-
-#. (itstool) path: section/p
-#: C/bug-filing.page:42
-msgid ""
-"Your report will be given an ID number, and its status will be updated as it "
-"is being dealt with. Thanks for helping make <app>GNOME Developer Tutorials</"
-"app> better!"
-msgstr ""
+#. (itstool) path: item/screen
+#: C/beginner.vala.page:54 C/c.page:100
+#, no-wrap
+msgid "./<var>filename</var>"
+msgstr "./<var>filename</var>"
 
 #. (itstool) path: 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/button.c.page:24 C/button.js.page:21 C/button.py.page:24
-#: C/button.vala.page:23
+#: C/button.c.page:25 C/button.js.page:22 C/button.py.page:25 C/button.vala.page:24
 msgctxt "_"
 msgid "external ref='media/button.png' md5='8d69efbb3a0d3e043af6139b6492171c'"
 msgstr "external ref='media/button.png' md5='8d69efbb3a0d3e043af6139b6492171c'"
 
 #. (itstool) path: info/title
-#: C/button.c.page:7
+#: C/button.c.page:8
 msgctxt "text"
 msgid "Button (C)"
 msgstr "Knopf (C)"
 
 #. (itstool) path: info/desc
-#: C/button.c.page:19 C/button.py.page:19 C/button.vala.page:18
+#: C/button.c.page:20 C/button.py.page:20 C/button.vala.page:19
 msgid "A button widget which emits a signal when clicked"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/button.c.page:22 C/button.js.page:20 C/button.py.page:22
+#: C/button.c.page:23 C/button.js.page:21 C/button.py.page:23
 msgid "Button"
 msgstr "Knopf"
 
 #. (itstool) path: page/p
-#: C/button.c.page:25
-msgid ""
-"A button widget connected to a callback function that reverses its label "
-"when clicked."
+#: C/button.c.page:26
+msgid "A button widget connected to a callback function that reverses its label when clicked."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/button.c.page:27
+#: C/button.c.page:28
 #, no-wrap
 msgid ""
 "\n"
@@ -3679,41 +4463,103 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function which \n"
+"reacts to the signal. In this case, it will cause the button label's \n"
+"string to reverse.*/\n"
+"static void\n"
+"button_clicked (GtkButton *button,\n"
+"                gpointer   user_data)\n"
+"{\n"
+"  const char *old_label;\n"
+"  char *new_label;\n"
+"\n"
+"  old_label = gtk_button_get_label (button);\n"
+"  new_label = g_utf8_strreverse (old_label, -1);\n"
+"\n"
+"  gtk_button_set_label (button, new_label);\n"
+"  g_free (new_label);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\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), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  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"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (button_clicked), \n"
+"                    G_OBJECT (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"
 
 #. (itstool) path: item/p
-#: C/button.c.page:35 C/buttonbox.py.page:50 C/grid.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html";
-"\">GtkButton</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html";
-"\">GtkButton</link>"
+#: C/button.c.page:36 C/buttonbox.py.page:51 C/grid.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html\";>GtkButton</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html\";>GtkButton</link>"
 
 #. (itstool) path: item/p
-#: C/button.c.page:36
+#: C/button.c.page:37
 msgid ""
-"<link href=\"http://developer.gnome.org/glib/stable/glib-Unicode-";
-"Manipulation.html#g-utf8-strreverse\">Unicode Manipulation</link>"
+"<link 
href=\"http://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-strreverse\";>Unicode "
+"Manipulation</link>"
 msgstr ""
+"<link 
href=\"http://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-strreverse\";>Unicode-"
+"Manipulation</link>"
 
 #. (itstool) path: info/title
-#: C/button.js.page:7
+#: C/button.js.page:8
 msgctxt "text"
 msgid "Button (JavaScript)"
-msgstr "Knops (JavaScript)"
+msgstr "Knopf (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/button.js.page:17
+#: C/button.js.page:18
 msgid "A button which can be connected to other widgets"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/button.js.page:22
+#: C/button.js.page:23
 msgid "A button widget that changes its label when you click it."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/button.js.page:24
+#: C/button.js.page:25
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -3780,30 +4626,89 @@ msgid ""
 "let app = new ButtonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ButtonExample = new Lang.Class ({\n"
+"    Name: 'Button Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsbutton',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                              window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                              title: \"GNOME Button\",\n"
+"                                                              default_height: 50,\n"
+"                                                              default_width: 250 });\n"
+"\n"
+"        // Create the button\n"
+"        this.Button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this.Button);\n"
+"\n"
+"        // Bind it to a function that says what to do when the button is clicked\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.Button.set_label (\"Clicked!\");\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/button.js.page:32 C/grid.js.page:35
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
-"\">Gtk.Button</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
-"\">Gtk.Button</link>"
+#: C/button.js.page:33 C/grid.js.page:36
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\";>Gtk.Button</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\";>Gtk.Button</link>"
 
 #. (itstool) path: info/title
-#: C/button.py.page:7
+#: C/button.py.page:8
 msgctxt "text"
 msgid "Button (Python)"
-msgstr ""
+msgstr "Knopf (Python)"
 
 #. (itstool) path: page/p
-#: C/button.py.page:25 C/button.vala.page:24
+#: C/button.py.page:26 C/button.vala.page:25
 msgid "A button widget connected to a simple callback function."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/button.py.page:31
-#, fuzzy, no-wrap
+#: C/button.py.page:32
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -3867,7 +4772,7 @@ msgid ""
 "\n"
 "    # callback function connected to the signal \"clicked\" of the button\n"
 "    def do_clicked(self, button):\n"
-"        print \"You clicked me!\"\n"
+"        print(\"You clicked me!\")\n"
 "\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
@@ -3889,28 +4794,31 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
+"    # a window\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
-"        image = Gtk.Image()\n"
-"        image.set_from_file(\"gnome-image.png\")\n"
+"        # a button\n"
+"        button = Gtk.Button()\n"
+"        # with a label\n"
+"        button.set_label(\"Click me\")\n"
+"        # connect the signal \"clicked\" emitted by the button\n"
+"        # to the callback function do_clicked\n"
+"        button.connect(\"clicked\", self.do_clicked)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
+"    # callback function connected to the signal \"clicked\" of the button\n"
+"    def do_clicked(self, button):\n"
+"        print(\"You clicked me!\")\n"
 "\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -3926,44 +4834,39 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/button.py.page:35
+#: C/button.py.page:36
 msgid "Useful methods for a Button widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/button.py.page:36
+#: C/button.py.page:37
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/button.py.page:38
+#: C/button.py.page:39
 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>."
+"<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 ""
 
 #. (itstool) path: item/p
-#: C/button.py.page:39
+#: C/button.py.page:40
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/button.py.page:40
-msgid ""
-"To set an image (e.g. a stock image) for the button <code>button</code>:"
+#: C/button.py.page:41
+msgid "To set an image (e.g. a stock image) for the button <code>button</code>:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/button.py.page:41
+#: C/button.py.page:42
 #, no-wrap
 msgid ""
 "\n"
@@ -3971,52 +4874,48 @@ msgid ""
 "image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
 "button.set_image(image)"
 msgstr ""
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
+"button.set_image(image)"
 
 #. (itstool) path: item/p
-#: C/button.py.page:45
-msgid ""
-"You should not set a label for the button after this, otherwise it will show "
-"the label and not the image."
+#: C/button.py.page:46
+msgid "You should not set a label for the button after this, otherwise it will show the label and not the 
image."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/button.py.page:46
+#: C/button.py.page:47
 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 "
-"toolbars, so that the keyboard focus is not removed from the main area of "
-"the application."
+"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 toolbars, so that the keyboard focus is not removed from the main area 
of the "
+"application."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/button.py.page:54
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkButton.html";
-"\">GtkButton</link>"
-msgstr ""
+#: C/button.py.page:55
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkButton.html\";>GtkButton</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkButton.html\";>GtkButton</link>"
 
 #. (itstool) path: item/p
-#: C/button.py.page:55 C/dialog.py.page:51 C/image.py.page:103
-#: C/label.py.page:90 C/linkbutton.py.page:46 C/messagedialog.py.page:60
-#: C/radiobutton.py.page:48 C/separator.py.page:38 C/window.py.page:64
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWindow.html";
-"\">GtkWindow</link>"
+#: C/button.py.page:56 C/dialog.py.page:52 C/label.py.page:106 C/linkbutton.py.page:47 
C/messagedialog.py.page:61
+#: C/radiobutton.py.page:49 C/separator.py.page:39 C/window.py.page:65
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWindow.html\";>GtkWindow</link>"
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/button.vala.page:7
+#: C/button.vala.page:8
 msgctxt "text"
 msgid "Button (Vala)"
-msgstr ""
+msgstr "Knopf (Vala)"
 
 #. (itstool) path: page/title
-#: C/button.vala.page:21
+#: C/button.vala.page:22
 msgid "Button widget"
-msgstr ""
+msgstr "Knopf-Widget"
 
 #. (itstool) path: page/code
-#: C/button.vala.page:26
+#: C/button.vala.page:27
 #, no-wrap
 msgid ""
 "\n"
@@ -4063,12 +4962,55 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"\n"
+"/* A window in the application */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor of the window */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\t\tbutton.clicked.connect (this.reverse_label);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\t\tthis.add (button);\n"
+"\t}\n"
+"\n"
+"\t/* The callback function connected to the\n"
+"\t * 'clicked' signal of the button.\n"
+"\t */\n"
+"\tvoid reverse_label (Gtk.Button button) {\n"
+"\t\tbutton.label = button.label.reverse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* This is the constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: page/p
-#: C/button.vala.page:28
+#: C/button.vala.page:29
 msgid ""
-"In this sample we used the following: <link href=\"http://www.valadoc.org/gtk";
-"+-3.0/Gtk.Button.html\">Gtk.Button</link>"
+"In this sample we used the following: <link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Button.html\";>Gtk.Button</"
+"link>"
 msgstr ""
 
 #. (itstool) path: media
@@ -4076,48 +5018,41 @@ 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.js.page:23 C/buttonbox.py.page:24
+#: C/buttonbox.js.page:24 C/buttonbox.py.page:25
 msgctxt "_"
-msgid ""
-"external ref='media/buttonbox_calculator.png' "
-"md5='ce0de08b7ac66f517290e33e6d33d508'"
-msgstr ""
-"external ref='media/buttonbox_calculator.png' "
-"md5='ce0de08b7ac66f517290e33e6d33d508'"
+msgid "external ref='media/buttonbox_calculator.png' md5='ce0de08b7ac66f517290e33e6d33d508'"
+msgstr "external ref='media/buttonbox_calculator.png' md5='ce0de08b7ac66f517290e33e6d33d508'"
 
 #. (itstool) path: info/title
-#: C/buttonbox.js.page:7
-#, fuzzy
-#| msgid "JavaScript"
+#: C/buttonbox.js.page:8
 msgctxt "text"
 msgid "ButtonBox (JavaScript)"
-msgstr "JavaScript"
+msgstr ""
 
 #. (itstool) path: credit/name
-#: C/buttonbox.js.page:13 C/colorbutton.js.page:12
-#: C/fontchooserwidget.js.page:12 C/paned.js.page:12
-#: C/scrolledwindow.js.page:12 C/tooltip.js.page:13
+#: C/buttonbox.js.page:14 C/colorbutton.js.page:13 C/fontchooserwidget.js.page:13 C/paned.js.page:13
+#: C/scrolledwindow.js.page:13 C/tooltip.js.page:14
 msgid "Meg Ford"
-msgstr ""
+msgstr "Meg Ford"
 
 #. (itstool) path: info/desc
-#: C/buttonbox.js.page:18 C/buttonbox.py.page:19
+#: C/buttonbox.js.page:19 C/buttonbox.py.page:20
 msgid "A container for arranging buttons"
 msgstr ""
 
 #. (itstool) path: page/title
 #. (itstool) path: steps/title
-#: C/buttonbox.js.page:21 C/buttonbox.py.page:22 C/tutorial.py.page:91
+#: C/buttonbox.js.page:22 C/buttonbox.py.page:23 C/tutorial.py.page:92
 msgid "ButtonBox"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/buttonbox.js.page:24 C/buttonbox.py.page:25
+#: C/buttonbox.js.page:25 C/buttonbox.py.page:26
 msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/buttonbox.js.page:30
+#: C/buttonbox.js.page:31
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -4301,60 +5236,220 @@ msgid ""
 "let app = new ButtonBoxExample();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
-
-#. (itstool) path: item/p
-#: C/buttonbox.js.page:37
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ButtonBox.html";
-"\">GtkButtonBox</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ButtonBox.html";
-"\">GtkButtonBox</link>"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ButtonBoxExample = new Lang.Class ({\n"
+"    Name: 'ButtonBox Example',\n"
+"\n"
+"    // Create the application itthis\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application({ application_id: 'org.example.jsbuttonbox' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this.window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"        // Create the application window\n"
+"        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                    title: \"Calculator\",\n"
+"                                                    default_width: 350,\n"
+"                                                    default_height: 200,\n"
+"                                                    border_width: 10 });\n"
+"        this.entry = new Gtk.Entry();\n"
+"        this.entry.set_text('0');\n"
+"        // text aligned on the right\n"
+"        this.entry.set_alignment(1);\n"
+"        // the text in the entry cannot be modified by writing in it\n"
+"        this.entry.set_can_focus(false);\n"
+"\n"
+"        // a grid\n"
+"        this.grid = new Gtk.Grid();\n"
+"        this.grid.set_row_spacing(5);\n"
+"        \n"
+"        // to attach the entry\n"
+"        this.grid.attach(this.entry, 0, 0, 1, 1);\n"
+"        \n"
+"        // the labels for the buttons\n"
+"        this.buttons = [ 7, 8, 9, '/', 4, 5, 6, '*', 1, 2, 3, '-', 'C', 0, '=', '+' ];\n"
+"        \n"
+"        // each row is a ButtonBox, attached to the grid            \n"
+"        for (i = 0; i &lt; 4; i++) {\n"
+"            this.hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL);\n"
+"            this.hbox.set_spacing(5);\n"
+"            this.grid.attach(this.hbox, 0, i + 1, 1, 1);\n"
+"            // each ButtonBox has 4 buttons, connected to the callback function\n"
+"            for (j= 0; j &lt; 4; j++) {\n"
+"                this.button = new Gtk.Button();\n"
+"                this.buttonLabel = (this.buttons[i * 4 + j].toString());\n"
+"                this.button.set_label(this.buttonLabel);\n"
+"                this.button.set_can_focus(false);\n"
+"                this.button.connect(\"clicked\", Lang.bind(this, this._buttonClicked, this.button));\n"
+"                this.hbox.add(this.button);\n"
+"            }\n"
+"        }\n"
+"            \n"
+"        // some variables for the calculations\n"
+"        this.firstNumber = 0;\n"
+"        this.secondNumber = 0;\n"
+"        this.counter = 0;\n"
+"        this.operation = \"\";\n"
+"\n"
+"        // add the grid to the window\n"
+"        this.window.add(this.grid);\n"
+"        this.window.show_all();\n"
+"    },\n"
+"\n"
+"    // callback function for all the buttons\n"
+"    _buttonClicked: function(button) {\n"
+"        this.button = button;\n"
+"        // for the operations\n"
+"        if (this.button.get_label() == '+') {\n"
+"            this.counter += 1 \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"plus\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '-') {\n"
+"            this.counter += 1;\n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"minus\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '*') {\n"
+"            this.counter += 1; \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"multiplication\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '/') {\n"
+"            this.counter += 1 \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"division\";\n"
+"        }\n"
+"\n"
+"        // for =\n"
+"        else if (this.button.get_label() == '=') {\n"
+"            this._doOperation();\n"
+"            this.entry.set_text(this.firstNumber.toString());\n"
+"            this.counter = 1;\n"
+"        }\n"
+"\n"
+"        // for Cancel\n"
+"        else if (this.button.get_label() == 'C') {\n"
+"            this.firstNumber = 0;\n"
+"            this.secondNumber = 0;\n"
+"            this.counter = 0;\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"\";\n"
+"        }\n"
+"\n"
+"        // for a digit button\n"
+"        else {\n"
+"            this.newDigit = parseInt(this.button.get_label());\n"
+"            if (this.entry.get_text() == \"error\")\n"
+"                this.number = 0;\n"
+"            else\n"
+"                this.number = parseInt(this.entry.get_text());\n"
+"            this.number = this.number * 10 + this.newDigit;            \n"
+"            if (this.counter == 0)\n"
+"                this.firstNumber = this.number;\n"
+"            else\n"
+"                this.secondNumber = this.number;\n"
+"            this.entry.set_text(this.number.toString());\n"
+"        }\n"
+"     },\n"
+"\n"
+"     _doOperation: function() {\n"
+"        if (this.operation == \"plus\") {\n"
+"           this.firstNumber += this.secondNumber;\n"
+"        } else if (this.operation == \"minus\") {\n"
+"            this.firstNumber -= this.secondNumber;\n"
+"        } else if (this.operation == \"multiplication\") {\n"
+"            this.firstNumber *= this.secondNumber;\n"
+"        } else if (this.operation == \"division\") {\n"
+"            if (this.secondNumber != 0) {\n"
+"                this.firstNumber /= this.secondNumber;\n"
+"            } else {\n"
+"                this.firstNumber = 0; \n"
+"                this.secondNumber = 0;\n"
+"                this.counter = 0; \n"
+"                this.entry.set_text(\"error\");\n"
+"                this.operation = \"\";\n"
+"\n"
+"                return\n"
+"            }\n"
+"        } else {\n"
+"            this.firstNumber = 0;\n"
+"            this.secondNumber = 0;\n"
+"            this.counter = 0;\n"
+"            this.entry.set_text(\"error\");\n"
+"        }\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ButtonBoxExample();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/buttonbox.js.page:38
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Box.html";
-"\">GtkBox</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Box.html";
-"\">GtkBox</link>"
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ButtonBox.html\";>GtkButtonBox</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ButtonBox.html\";>GtkButtonBox</link>"
 
 #. (itstool) path: item/p
 #: C/buttonbox.js.page:39
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
-"\">GtkButton</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
-"\">GtkButton</link>"
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Box.html\";>GtkBox</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Box.html\";>GtkBox</link>"
 
 #. (itstool) path: item/p
 #: C/buttonbox.js.page:40
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
-"\">GtkEntry</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
-"\">GtkEntry</link>"
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\";>GtkButton</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\";>GtkButton</link>"
 
 #. (itstool) path: item/p
 #: C/buttonbox.js.page:41
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
-"\">GtkGrid</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
-"\">GtkGrid</link>"
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html\";>GtkEntry</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html\";>GtkEntry</link>"
+
+#. (itstool) path: item/p
+#: C/buttonbox.js.page:42
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>GtkGrid</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>GtkGrid</link>"
 
 #. (itstool) path: info/title
-#: C/buttonbox.py.page:7
+#: C/buttonbox.py.page:8
 msgctxt "text"
 msgid "ButtonBox (Python)"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/buttonbox.py.page:31
+#: C/buttonbox.py.page:32
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -4506,147 +5601,217 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/buttonbox.py.page:35
-msgid "Uselful methods for a ButtonBox widget"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/buttonbox.py.page:37
-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> "
-"(buttons are evenly spread across the box), <code>Gtk.ButtonBoxStyle.EDGE</"
-"code> (buttons are placed at the edges of the box), <code>Gtk.ButtonBoxStyle."
-"START</code> (buttons are grouped towards the start of the box), <code>Gtk."
-"ButtonBoxStyle.END</code> (buttons are grouped towards the end of the box), "
-"<code>Gtk.ButtonBoxStyle.CENTER</code> (buttons are centered in the box)."
+#: C/buttonbox.py.page:36
+msgid "Useful methods for a ButtonBox widget"
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:38
 msgid ""
-"<code>set_child_secondary(button, is_secondary)</code> sets whether "
-"<code>button</code> should appear in a secondary group of children. A "
-"typical use of a secondary child is the help button in a dialog. This group "
-"appears after the other children if the style is <code>START</code>, "
-"<code>SPREAD</code> or <code>EDGE</code>, and before the other children if "
-"the style is <code>END</code>. If the style is <code>START</code> or "
-"<code>END</code>, then the secondary children are aligned at the other end "
-"of the button box from the main children. For the other styles, they appear "
-"immediately next to the main children."
+"The layout of the ButtonBox are set with <code>set_layout(layout)</code>, where <code>layout</code> can be "
+"<code>Gtk.ButtonBoxStyle.SPREAD</code> (buttons are evenly spread across the box), 
<code>Gtk.ButtonBoxStyle.EDGE</"
+"code> (buttons are placed at the edges of the box), <code>Gtk.ButtonBoxStyle.START</code> (buttons are 
grouped "
+"towards the start of the box), <code>Gtk.ButtonBoxStyle.END</code> (buttons are grouped towards the end of 
the "
+"box), <code>Gtk.ButtonBoxStyle.CENTER</code> (buttons are centered in the box)."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:39
 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>."
+"<code>set_child_secondary(button, is_secondary)</code> sets whether <code>button</code> should appear in a "
+"secondary group of children. A typical use of a secondary child is the help button in a dialog. This group 
appears "
+"after the other children if the style is <code>START</code>, <code>SPREAD</code> or <code>EDGE</code>, and 
before "
+"the other children if the style is <code>END</code>. If the style is <code>START</code> or 
<code>END</code>, then "
+"the secondary children are aligned at the other end of the button box from the main children. For the other 
"
+"styles, they appear immediately next to the main children."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:40
 msgid ""
-"<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
-"buttons of the box."
+"<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets whether the child is exempted from "
+"homogeneous sizing. Default value is <code>False</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/buttonbox.py.page:48
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html";
-"\">GtkButtonBox</link>"
+#: C/buttonbox.py.page:41
+msgid "<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the buttons of the box."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html";
-"\">GtkButtonBox</link>"
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:49
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html\";>GtkButtonBox</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html\";>GtkButtonBox</link>"
+
+#. (itstool) path: item/p
+#: C/buttonbox.py.page:50
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</link>"
+
+#. (itstool) path: item/p
+#: C/buttonbox.py.page:52 C/entry.c.page:34
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html\";>GtkEntry</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html\";>GtkEntry</link>"
+
+#. (itstool) path: item/p
+#: C/buttonbox.py.page:53 C/grid.c.page:36 C/radiobutton.c.page:37 C/spinbutton.c.page:40 
C/statusbar.c.page:40
+#: C/switch.c.page:37 C/togglebutton.c.page:40
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</link>"
+
+#. (itstool) path: info/title
+#: C/c.page:9
+msgctxt "link"
+msgid "C"
+msgstr "C"
+
+#. (itstool) path: credit/name
+#: C/c.page:18
+msgid "Bastian Ilso"
+msgstr "Bastian Ilso"
+
+#. (itstool) path: info/desc
+#: C/c.page:24
+msgid "Tutorials and code samples in C."
+msgstr ""
+
+#. (itstool) path: page/title
+#: C/c.page:27
+msgid "Platform Demos in C"
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/c.page:31
+msgid "Prerequisites"
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/c.page:33
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</"
-"link>"
+"To compile these platform demos you will need a C compiler, for example <link 
href=\"https://gcc.gnu.org/\";>gcc</"
+"link>. You will also need GTK+ 3 including headers and pkg-config files. Linux distributions usually 
abstract GTK+ "
+"3 headers and pkg-config files into separate packages called <em>gtk3-devel</em>, <em>gtk3-dev</em> or 
similar."
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/c.page:44
+msgid "Guidelines for new developers"
+msgstr "Richtlinien für neue Entwickler"
+
+#. (itstool) path: section/p
+#: C/c.page:46
+msgid ""
+"Beyond the prerequisites mentioned above, several tools has been developed to assist you further in 
developing "
+"your GNOME application. GNOME also recommends a specific coding style and conventions which this section 
will "
+"elaborate further upon."
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/c.page:52
+msgid "Recommended tools"
+msgstr "Empfohlene Werkzeuge"
+
+#. (itstool) path: item/p
+#: C/c.page:56
+msgid "<link href=\"https://wiki.gnome.org/Apps/Devhelp\";>DevHelp</link>: An API documentation browser for 
GNOME."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</"
-"link>"
 
 #. (itstool) path: item/p
-#: C/buttonbox.py.page:51 C/entry.c.page:33
+#: C/c.page:60
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html";
-"\">GtkEntry</link>"
+"A GNOME IDE (Integrated Development Environment). An IDE can assist you in writing and debugging C code, 
for "
+"example <link href=\"https://wiki.gnome.org/Apps/Builder\";>Builder</link> or <link 
href=\"https://wiki.gnome.org/";
+"Apps/Anjuta\">Anjuta</link>."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html";
-"\">GtkEntry</link>"
 
 #. (itstool) path: item/p
-#: C/buttonbox.py.page:52 C/grid.c.page:35 C/radiobutton.c.page:36
-#: C/spinbutton.c.page:39 C/statusbar.c.page:39 C/switch.c.page:36
-#: C/togglebutton.c.page:39
+#: C/c.page:66
+msgid "<link href=\"http://glade.gnome.org/\";>Glade</link>: A user interface designer for GTK+ Applications."
+msgstr ""
+
+#. (itstool) path: item/p
+#: C/c.page:70
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</"
-"link>"
+"An IRC Client, for example <link href=\"https://wiki.gnome.org/Apps/Polari\";>Polari</link> or <link 
href=\"https://";
+"wiki.gnome.org/Apps/Empathy\">Empathy</link>. If you run into problems while following the beginner 
tutorials, "
+"join #gnome on <em>irc.gnome.org</em>."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</"
-"link>"
 
-#. (itstool) path: info/title
-#: C/c.page:6
-msgctxt "link"
-msgid "C"
-msgstr "C"
+#. (itstool) path: section/title
+#: C/c.page:80
+msgid "Coding Style"
+msgstr ""
 
-#. (itstool) path: page/title
-#: C/c.page:15
-msgid "Tutorials, code samples and plaform demos in C"
+#. (itstool) path: section/p
+#: C/c.page:82
+msgid ""
+"Most applications in the GNOME project is written in the <link href=\"http://en.wikipedia.org/wiki/";
+"Indent_style#GNU_style\">GNU style</link> of indentation. The tutorials and code examples presented are 
following "
+"this convention and you are recommended to do so too."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/c.page:20 C/vala.page:25
-msgid "Code samples and tutorial"
+#: C/c.page:89
+msgid "Executing Code"
+msgstr ""
+
+#. (itstool) path: item/p
+#: C/c.page:95
+msgid "Copy and paste the code into <var>filename</var>.c"
+msgstr ""
+
+#. (itstool) path: item/screen
+#: C/c.page:99
+#, no-wrap
+#| msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
+msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>"
+msgstr "gcc <var>Dateiname</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>Dateiname</var>"
+
+#. (itstool) path: note/p
+#: C/c.page:105
+msgid ""
+"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 ""
 
 #. (itstool) path: section/title
-#: C/c.page:27 C/cpp.page:20 C/js.page:35 C/py.page:38 C/vala.page:29
-msgid "Examples of applications"
-msgstr "Anwendungsbeispiele"
+#: C/c.page:117
+msgid "Widget Code Examples"
+msgstr ""
 
 #. (itstool) path: 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/checkbutton.c.page:21 C/checkbutton.js.page:21 C/checkbutton.py.page:22
-#: C/checkbutton.vala.page:21
+#: C/checkbutton.c.page:22 C/checkbutton.js.page:22 C/checkbutton.py.page:23 C/checkbutton.vala.page:22
 msgctxt "_"
-msgid ""
-"external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
-msgstr ""
-"external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
+msgid "external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
+msgstr "external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
 
 #. (itstool) path: info/title
-#: C/checkbutton.c.page:7
+#: C/checkbutton.c.page:8
 msgctxt "text"
 msgid "CheckButton (C)"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/checkbutton.c.page:17
+#: C/checkbutton.c.page:18
 msgid "Create widgets with a discrete ToggleButton"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/checkbutton.c.page:20 C/checkbutton.js.page:20 C/checkbutton.py.page:21
-#: C/checkbutton.vala.page:20
+#: C/checkbutton.c.page:21 C/checkbutton.js.page:21 C/checkbutton.py.page:22 C/checkbutton.vala.page:21
 msgid "CheckButton"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/checkbutton.c.page:22 C/checkbutton.py.page:23 C/checkbutton.vala.page:22
+#: C/checkbutton.c.page:23 C/checkbutton.py.page:24 C/checkbutton.vala.page:23
 msgid "This CheckButton toggles the title."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/checkbutton.c.page:24
+#: C/checkbutton.c.page:25
 #, no-wrap
 msgid ""
 "#include &lt;gtk/gtk.h&gt;\n"
@@ -4696,57 +5861,94 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* signal handler for \"toggled\" signal of the CheckButton */\n"
+"static void\n"
+"toggled_cb (GtkToggleButton *toggle_button,\n"
+"            gpointer         user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (toggle_button))\n"
+"      gtk_window_set_title (window, \"CheckButton Example\");\n"
+"  else\n"
+"      gtk_window_set_title (window, \"\");\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *checkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"CheckButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"\n"
+"  checkbutton = gtk_check_button_new_with_label (\"Show Title\");\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (checkbutton), \"toggled\", G_CALLBACK (toggled_cb), window);\n"
+"  gtk_container_add (GTK_CONTAINER (window), checkbutton);\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.example.checkbutton\", 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"
 
 #. (itstool) path: item/p
-#: C/checkbutton.c.page:29
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/3.2/GtkCheckButton.html";
-"\">GtkCheckButton</link>"
-msgstr ""
+#: C/checkbutton.c.page:30
+msgid "<link href=\"http://developer.gnome.org/gtk3/3.2/GtkCheckButton.html\";>GtkCheckButton</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/3.2/GtkCheckButton.html\";>GtkCheckButton</link>"
 
 #. (itstool) path: info/title
-#: C/checkbutton.js.page:7
-#, fuzzy
-#| msgid "Classes in JavaScript"
+#: C/checkbutton.js.page:8
 msgctxt "text"
 msgid "CheckButton (JavaScript)"
-msgstr "Klassen in JavaScript"
+msgstr ""
 
 #. (itstool) path: info/desc
-#: C/checkbutton.js.page:17
+#: C/checkbutton.js.page:18
 msgid "A box which can be checked or unchecked"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/checkbutton.js.page:22
+#: C/checkbutton.js.page:23
 msgid ""
-"This application has a CheckButton. Whether the box is checked dictates "
-"whether the window's title bar shows anything."
+"This application has a CheckButton. Whether the box is checked dictates whether the window's title bar 
shows "
+"anything."
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/checkbutton.js.page:23
+#: C/checkbutton.js.page:24
 msgid ""
-"A CheckButton sends the \"toggled\" signal when it's checked or unchecked. "
-"While it's checked, the \"active\" property is true. While it's not, \"active"
-"\" tests as false."
+"A CheckButton sends the \"toggled\" signal when it's checked or unchecked. While it's checked, the 
\"active\" "
+"property is true. While it's not, \"active\" tests as false."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/checkbutton.js.page:27 C/comboboxtext.js.page:29 C/combobox.js.page:32
-#: C/guitar-tuner.js.page:54 C/hello-world.c.page:43 C/hello-world.js.page:52
-#: C/hello-world.py.page:45 C/messagedialog.js.page:30
-#: C/radiobutton.js.page:27 C/scale.js.page:27 C/spinbutton.js.page:30
-#: C/statusbar.js.page:27 C/switch.js.page:34 C/textview.js.page:37
-#: C/togglebutton.js.page:27 C/treeview_simple_liststore.js.page:36
-#: C/weatherAppMain.js.page:40
+#: C/checkbutton.js.page:28 C/comboboxtext.js.page:30 C/combobox.js.page:33 C/guitar-tuner.js.page:55
+#: C/hello-world.js.page:53 C/hello-world.py.page:46 C/messagedialog.js.page:31 C/radiobutton.js.page:28
+#: C/scale.js.page:28 C/spinbutton.js.page:31 C/statusbar.js.page:28 C/switch.js.page:35 
C/textview.js.page:38
+#: C/togglebutton.js.page:28 C/treeview_simple_liststore.js.page:37 C/weatherAppMain.js.page:41
 msgid "Libraries to import"
-msgstr ""
+msgstr "Zu importierende Bibliotheken"
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:28 C/messagedialog.js.page:31
-#: C/radiobutton.js.page:28 C/scale.js.page:28 C/spinbutton.js.page:31
-#: C/statusbar.js.page:28 C/switch.js.page:35 C/togglebutton.js.page:28
+#: C/checkbutton.js.page:29 C/messagedialog.js.page:32 C/radiobutton.js.page:29 C/scale.js.page:29
+#: C/spinbutton.js.page:32 C/statusbar.js.page:29 C/switch.js.page:36 C/togglebutton.js.page:29
 #, no-wrap
 msgid ""
 "\n"
@@ -4756,30 +5958,31 @@ msgid ""
 "const Gtk = imports.gi.Gtk;\n"
 "const Lang = imports.lang;\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:35 C/comboboxtext.js.page:36 C/combobox.js.page:40
-#: C/messagedialog.js.page:38 C/radiobutton.js.page:35 C/scale.js.page:35
-#: C/spinbutton.js.page:38 C/statusbar.js.page:35 C/switch.js.page:42
-#: C/textview.js.page:44 C/togglebutton.js.page:35
-#: C/treeview_simple_liststore.js.page:45
+#: C/checkbutton.js.page:36 C/comboboxtext.js.page:37 C/combobox.js.page:41 C/messagedialog.js.page:39
+#: C/radiobutton.js.page:36 C/scale.js.page:36 C/spinbutton.js.page:39 C/statusbar.js.page:36 
C/switch.js.page:43
+#: C/textview.js.page:45 C/togglebutton.js.page:36 C/treeview_simple_liststore.js.page:46
 msgid ""
-"These are the libraries we need to import for this application to run. "
-"Remember that the line which tells GNOME that we're using Gjs always needs "
-"to go at the start."
+"These are the libraries we need to import for this application to run. Remember that the line which tells 
GNOME "
+"that we're using Gjs always needs to go at the start."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/checkbutton.js.page:39 C/comboboxtext.js.page:40 C/combobox.js.page:44
-#: C/messagedialog.js.page:42 C/radiobutton.js.page:39 C/scale.js.page:39
-#: C/spinbutton.js.page:42 C/statusbar.js.page:39 C/switch.js.page:46
-#: C/textview.js.page:48 C/togglebutton.js.page:39
-#: C/treeview_simple_liststore.js.page:49
+#: C/checkbutton.js.page:40 C/comboboxtext.js.page:41 C/combobox.js.page:45 C/messagedialog.js.page:43
+#: C/radiobutton.js.page:40 C/scale.js.page:40 C/spinbutton.js.page:43 C/statusbar.js.page:40 
C/switch.js.page:47
+#: C/textview.js.page:49 C/togglebutton.js.page:40 C/treeview_simple_liststore.js.page:50
 msgid "Creating the application window"
 msgstr "Entwurf des Anwendungsfensters"
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:40
+#: C/checkbutton.js.page:41
 #, no-wrap
 msgid ""
 "\n"
@@ -4808,18 +6011,42 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:66
+#: C/checkbutton.js.page:67
 msgid ""
-"All the code for this sample goes in the CheckButtonExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"All the code for this sample goes in the CheckButtonExample class. The above code creates a <link 
href=\"http://";
+"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and 
window to "
 "go in."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:67
+#: C/checkbutton.js.page:68
 #, no-wrap
 msgid ""
 "\n"
@@ -4835,23 +6062,34 @@ msgid ""
 "            border_width: 10,\n"
 "            title: \"CheckButton Example\"});\n"
 msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:80
+#: C/checkbutton.js.page:81
 msgid ""
-"The _buildUI function is where we put all the code to create the "
-"application's user interface. The first step is creating a new <link href="
-"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our "
-"widgets into."
+"The _buildUI function is where we put all the code to create the application's user interface. The first 
step is "
+"creating a new <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our 
widgets "
+"into."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/checkbutton.js.page:84
+#: C/checkbutton.js.page:85
 msgid "Creating the checkbutton"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:85
+#: C/checkbutton.js.page:86
 #, no-wrap
 msgid ""
 "\n"
@@ -4865,20 +6103,28 @@ msgid ""
 "        // Connect the button to a function that does something when it's toggled\n"
 "        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
 msgstr ""
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:96
+#: C/checkbutton.js.page:97
 msgid ""
-"This code creates the checkbutton itself. The label next to the checkbutton "
-"is created by giving the checkbutton the \"label\" property and assigning a "
-"string value to it. Since this checkbutton toggles whether the window title "
-"is on or off, and the window title will be on to start with, we want the box "
-"to be checked by default. Whenever the user checks or unchecks the box, we "
-"call the _toggledCB function."
+"This code creates the checkbutton itself. The label next to the checkbutton is created by giving the 
checkbutton "
+"the \"label\" property and assigning a string value to it. Since this checkbutton toggles whether the 
window title "
+"is on or off, and the window title will be on to start with, we want the box to be checked by default. 
Whenever "
+"the user checks or unchecks the box, we call the _toggledCB function."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:97 C/radiobutton.js.page:169
+#: C/checkbutton.js.page:98 C/radiobutton.js.page:170
 #, no-wrap
 msgid ""
 "\n"
@@ -4886,21 +6132,25 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:102
+#: C/checkbutton.js.page:103
 msgid ""
-"This code finishes up creating the UI, by telling the window to show itself "
-"and all child widgets (which is just the checkbutton in this case)."
+"This code finishes up creating the UI, by telling the window to show itself and all child widgets (which is 
just "
+"the checkbutton in this case)."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/checkbutton.js.page:106
+#: C/checkbutton.js.page:107
 msgid "Function which handles the checkbutton's toggling"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:107
+#: C/checkbutton.js.page:108
 #, no-wrap
 msgid ""
 "\n"
@@ -4916,19 +6166,30 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:120
+#: C/checkbutton.js.page:121
 msgid ""
-"If the checkbutton is toggled from on to off, we want the window title to "
-"disappear. If it's toggled from off to on, we want it to reappear. We can "
-"tell which way it was toggled by testing to see whether it's active "
-"(checked) or not afterwards. A simple if / else statement which calls the "
-"checkbutton's get_active() method will work for this."
+"If the checkbutton is toggled from on to off, we want the window title to disappear. If it's toggled from 
off to "
+"on, we want it to reappear. We can tell which way it was toggled by testing to see whether it's active 
(checked) "
+"or not afterwards. A simple if / else statement which calls the checkbutton's get_active() method will work 
for "
+"this."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:121
+#: C/checkbutton.js.page:122
 #, no-wrap
 msgid ""
 "\n"
@@ -4936,16 +6197,18 @@ msgid ""
 "let app = new CheckButtonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/p
-#: C/checkbutton.js.page:126
-msgid ""
-"Finally, we create a new instance of the finished CheckButtonExample class, "
-"and set the application running."
+#: C/checkbutton.js.page:127
+msgid "Finally, we create a new instance of the finished CheckButtonExample class, and set the application 
running."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.js.page:131
+#: C/checkbutton.js.page:132
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -5025,39 +6288,109 @@ msgid ""
 "let app = new CheckButtonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
-#: C/checkbutton.js.page:135 C/comboboxtext.js.page:175 C/combobox.js.page:232
-#: C/messagedialog.js.page:188 C/radiobutton.js.page:273 C/scale.js.page:207
-#: C/spinbutton.js.page:198 C/statusbar.js.page:220 C/switch.js.page:263
-#: C/textview.js.page:247 C/togglebutton.js.page:152
-#: C/treeview_simple_liststore.js.page:271
+#: C/checkbutton.js.page:136 C/comboboxtext.js.page:176 C/combobox.js.page:233 C/messagedialog.js.page:189
+#: C/radiobutton.js.page:274 C/scale.js.page:208 C/spinbutton.js.page:199 C/statusbar.js.page:221
+#: C/switch.js.page:264 C/textview.js.page:248 C/togglebutton.js.page:153 
C/treeview_simple_liststore.js.page:272
 msgid "In-depth documentation"
-msgstr ""
+msgstr "Weiterführende Dokumentation"
 
 #. (itstool) path: item/p
-#: C/checkbutton.js.page:139
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.";
-"html\">Gtk.CheckButton</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.";
-"html\">Gtk.CheckButton</link>"
+#: C/checkbutton.js.page:140
+msgid "<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.html\";>Gtk.CheckButton</link>"
+msgstr "<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.html\";>Gtk.CheckButton</link>"
 
 #. (itstool) path: info/title
-#: C/checkbutton.py.page:7
+#: C/checkbutton.py.page:8
 msgctxt "text"
 msgid "CheckButton (Python)"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/checkbutton.py.page:18
+#: C/checkbutton.py.page:19
 msgid "A toggle button in a window"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/checkbutton.py.page:30
-#, fuzzy, no-wrap
+#: C/checkbutton.py.page:31
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -5171,46 +6504,41 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
 "    # a window\n"
+"\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
+"        Gtk.Window.__init__(self, title=\"CheckButton Example\", application=app)\n"
 "        self.set_default_size(300, 100)\n"
 "        self.set_border_width(10)\n"
 "\n"
-"        # a switch\n"
-"        switch = Gtk.Switch()\n"
-"        # turned on by default\n"
-"        switch.set_active(True)\n"
-"        # connect the signal notify::active emitted by the switch\n"
-"        # to the callback function activate_cb\n"
-"        switch.connect(\"notify::active\", self.activate_cb)\n"
-"\n"
-"        # a label\n"
-"        label = Gtk.Label()\n"
-"        label.set_text(\"Title\")\n"
-"\n"
-"        # a grid to allocate the widgets\n"
-"        grid = Gtk.Grid()\n"
-"        grid.set_column_spacing (10);\n"
-"        grid.attach (label, 0, 0, 1, 1);\n"
-"        grid.attach (switch, 1, 0, 1, 1);\n"
+"        # a new checkbutton\n"
+"        button = Gtk.CheckButton()\n"
+"        #  with a label\n"
+"        button.set_label(\"Show Title\")\n"
+"        # connect the signal \"toggled\" emitted by the checkbutton\n"
+"        # with the callback function toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"        # by default, the checkbutton is active\n"
+"        button.set_active(True)\n"
 "\n"
-"        # add the grid to the window\n"
-"        self.add(grid)\n"
+"        # add the checkbutton to the window\n"
+"        self.add(button)\n"
 "\n"
-"    # Callback function. Since the signal is notify::active\n"
-"    # we need the argument 'active'\n"
-"    def activate_cb(self, button, active):\n"
-"        # if the button (i.e. the switch) is active, set the title\n"
-"        # of the window to \"Switch Example\"\n"
+"    # callback function\n"
+"    def toggled_cb(self, button):\n"
+"        # if the togglebutton is active, set the title of the window\n"
+"        # as \"Checkbutton Example\"\n"
 "        if button.get_active():\n"
-"            self.set_title(\"Switch Example\")\n"
-"        # else, set it to \"\" (empty string)\n"
+"            self.set_title(\"CheckButton Example\")\n"
+"        # else, set it as \"\" (empty string)\n"
 "        else:\n"
 "            self.set_title(\"\")\n"
 "\n"
+"\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -5226,46 +6554,41 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/checkbutton.py.page:35
+#: C/checkbutton.py.page:36
 msgid "Useful methods for a CheckButton widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/checkbutton.py.page:36
+#: C/checkbutton.py.page:37
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/checkbutton.py.page:46 C/togglebutton.py.page:43
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToggleButton.html";
-"\">GtkToggleButton</link>"
+#: C/checkbutton.py.page:47 C/togglebutton.py.page:44
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToggleButton.html\";>GtkToggleButton</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/checkbutton.py.page:47
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCheckButton.html";
-"\">GtkCheckButton</link>"
+#: C/checkbutton.py.page:48
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCheckButton.html\";>GtkCheckButton</link>"
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/checkbutton.vala.page:7
+#: C/checkbutton.vala.page:8
 msgctxt "text"
 msgid "CheckButton (Vala)"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/checkbutton.vala.page:17
-msgid "Create widgets with a disrete toggle button"
+#: C/checkbutton.vala.page:18
+msgid "Create widgets with a discrete toggle button"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/checkbutton.vala.page:24
+#: C/checkbutton.vala.page:25
 #, no-wrap
 msgid ""
 "/* A window in the application */\n"
@@ -5321,56 +6644,98 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"CheckButton Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar checkbutton = new Gtk.CheckButton.with_label (\"Show Title\");\n"
+"\n"
+"\t\t/* Connect the checkbutton to the\n"
+"\t\t * callback function (aka. signal handler).\n"
+"\t\t */\n"
+"\t\tcheckbutton.toggled.connect (this.toggled_cb);\n"
+"\n"
+"\t\t/* Add the button to the this window */\n"
+"\t\tthis.add (checkbutton);\n"
+"\n"
+"\t\tcheckbutton.set_active (true);\n"
+"\t\tcheckbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the 'toggled' signal of the checkbutton. */\n"
+"\tvoid toggled_cb (Gtk.ToggleButton checkbutton) {\n"
+"\t\tif (checkbutton.get_active())\n"
+"\t\t\tthis.set_title (\"CheckButton Example\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/checkbutton.vala.page:29
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CheckButton.html\";>Gtk."
-"CheckButton</link>"
-msgstr ""
+#: C/checkbutton.vala.page:30
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CheckButton.html\";>Gtk.CheckButton</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CheckButton.html\";>Gtk.CheckButton</link>"
 
 #. (itstool) path: 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/colorbutton.js.page:21 C/colorbutton.py.page:22
-#: C/colorbutton.vala.page:23
+#: C/colorbutton.js.page:22 C/colorbutton.py.page:23 C/colorbutton.vala.page:24
 msgctxt "_"
-msgid ""
-"external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
-msgstr ""
-"external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
+msgid "external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
+msgstr "external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
 
 #. (itstool) path: info/title
-#: C/colorbutton.js.page:7
-#, fuzzy
-#| msgid "JavaScript"
+#: C/colorbutton.js.page:8
 msgctxt "text"
 msgid "ColorButton (JavaScript)"
-msgstr "JavaScript"
+msgstr ""
 
 #. (itstool) path: info/desc
-#: C/colorbutton.js.page:17 C/colorbutton.py.page:18
-#: C/colorbutton.vala.page:19
+#: C/colorbutton.js.page:18 C/colorbutton.py.page:19 C/colorbutton.vala.page:20
 msgid "A button to launch a color selection dialog"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/colorbutton.js.page:20 C/colorbutton.py.page:21
-#: C/colorbutton.vala.page:22
+#: C/colorbutton.js.page:21 C/colorbutton.py.page:22 C/colorbutton.vala.page:23
 msgid "ColorButton"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/colorbutton.js.page:22 C/colorbutton.py.page:23
+#: C/colorbutton.js.page:23 C/colorbutton.py.page:24
 msgid ""
-"This ColorButton launches a color selection dialog and prints in the "
-"terminal the RGB values of the color selected."
+"This ColorButton launches a color selection dialog and prints in the terminal the RGB values of the color 
selected."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/colorbutton.js.page:28
+#: C/colorbutton.js.page:29
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -5441,32 +6806,93 @@ msgid ""
 "let app = new ColorbuttonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ColorbuttonExample = new Lang.Class ({\n"
+"    Name: 'Colorbutton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({ application_id: 'org.example.jscolorbutton' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this.window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this.window = new Gtk.ApplicationWindow ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"ColorButton\",\n"
+"                                                   default_width: 150,\n"
+"                                                   default_height: 50,\n"
+"                                                   border_width: 10 });\n"
+"\n"
+"        this.button = new Gtk.ColorButton();\n"
+"        this.color = new Gdk.RGBA();\n"
+"        this.color.red = 0.0;\n"
+"        this.color.green = 0.0;\n"
+"        this.color.blue = 1.0;\n"
+"        this.color.alpha = 0.5;\n"
+"        this.button.set_rgba(this.color);\n"
+"        this.button.connect(\"color-set\", Lang.bind(this, this.onColorChosen));\n"
+"        this.label = new Gtk.Label();\n"
+"        this.label.set_text(\"Click to choose a color\");\n"
+"\n"
+"        let grid = new Gtk.Grid();\n"
+"        grid.attach(this.button, 0, 0, 2, 1);\n"
+"        grid.attach(this.label, 0, 1, 2, 1);\n"
+"        this.window.add(grid);\n"
+"        this.window.show_all();\n"
+"    },\n"
+"\n"
+"    onColorChosen: function() {\n"
+"    let colorName = this.color.to_string();\n"
+"    this.label.set_text(\"You chose the color \" + colorName);\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ColorbuttonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/colorbutton.js.page:35
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ColorButton.";
-"html\">GtkColorButton</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ColorButton.";
-"html\">GtkColorButton</link>"
+#: C/colorbutton.js.page:36
+msgid "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ColorButton.html\";>GtkColorButton</link>"
+msgstr "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ColorButton.html\";>GtkColorButton</link>"
 
 #. (itstool) path: item/p
-#: C/colorbutton.js.page:36 C/colorbutton.py.page:44
-msgid ""
-"<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html";
-"\">RGBA Colors</link>"
-msgstr ""
+#: C/colorbutton.js.page:37 C/colorbutton.py.page:45
+msgid "<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html\";>RGBA Colors</link>"
+msgstr "<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html\";>RGBA-Farben</link>"
 
 #. (itstool) path: info/title
-#: C/colorbutton.py.page:7
+#: C/colorbutton.py.page:8
 msgctxt "text"
 msgid "ColorButton (Python)"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/colorbutton.py.page:29
-#, fuzzy, no-wrap
+#: C/colorbutton.py.page:30
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -5563,7 +6989,7 @@ msgid ""
 "\n"
 "    # if a new color is chosen, we print it as rgb(r,g,b) in the terminal\n"
 "    def on_color_chosen(self, user_data):\n"
-"        print \"You chose the color: \" + self.button.get_rgba().to_string()\n"
+"        print(\"You chose the color: \" + self.button.get_rgba().to_string())\n"
 "\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
@@ -5583,48 +7009,48 @@ msgid ""
 "sys.exit(exit_status)\n"
 msgstr ""
 "from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
-"    # a window\n"
+"\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
-"        self.set_default_size(300, 100)\n"
+"        Gtk.Window.__init__(self, title=\"ColorButton\", application=app)\n"
+"        self.set_default_size(150, 50)\n"
 "        self.set_border_width(10)\n"
 "\n"
-"        # a switch\n"
-"        switch = Gtk.Switch()\n"
-"        # turned on by default\n"
-"        switch.set_active(True)\n"
-"        # connect the signal notify::active emitted by the switch\n"
-"        # to the callback function activate_cb\n"
-"        switch.connect(\"notify::active\", self.activate_cb)\n"
+"        # a colorbutton (which opens a dialogue window in\n"
+"        # which we choose a color)\n"
+"        self.button = Gtk.ColorButton()\n"
+"        # with a default color (blue, in this instance)\n"
+"        color = Gdk.RGBA()\n"
+"        color.red = 0.0\n"
+"        color.green = 0.0\n"
+"        color.blue = 1.0\n"
+"        color.alpha = 0.5\n"
+"        self.button.set_rgba(color)\n"
+"\n"
+"        # choosing a color in the dialogue window emits a signal\n"
+"        self.button.connect(\"color-set\", self.on_color_chosen)\n"
 "\n"
 "        # a label\n"
 "        label = Gtk.Label()\n"
-"        label.set_text(\"Title\")\n"
+"        label.set_text(\"Click to choose a color\")\n"
 "\n"
-"        # a grid to allocate the widgets\n"
+"        # a grid to attach button and label\n"
 "        grid = Gtk.Grid()\n"
-"        grid.set_column_spacing (10);\n"
-"        grid.attach (label, 0, 0, 1, 1);\n"
-"        grid.attach (switch, 1, 0, 1, 1);\n"
-"\n"
-"        # add the grid to the window\n"
+"        grid.attach(self.button, 0, 0, 2, 1)\n"
+"        grid.attach(label, 0, 1, 2, 1)\n"
 "        self.add(grid)\n"
 "\n"
-"    # Callback function. Since the signal is notify::active\n"
-"    # we need the argument 'active'\n"
-"    def activate_cb(self, button, active):\n"
-"        # if the button (i.e. the switch) is active, set the title\n"
-"        # of the window to \"Switch Example\"\n"
-"        if button.get_active():\n"
-"            self.set_title(\"Switch Example\")\n"
-"        # else, set it to \"\" (empty string)\n"
-"        else:\n"
-"            self.set_title(\"\")\n"
+"    # if a new color is chosen, we print it as rgb(r,g,b) in the terminal\n"
+"    def on_color_chosen(self, user_data):\n"
+"        print(\"You chose the color: \" + self.button.get_rgba().to_string())\n"
+"\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -5640,58 +7066,48 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/colorbutton.py.page:33
+#: C/colorbutton.py.page:34
 msgid "Useful methods for a ColorButton widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/colorbutton.py.page:34
+#: C/colorbutton.py.page:35
 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."
+"<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 ""
 
 #. (itstool) path: section/p
-#: C/colorbutton.py.page:35
+#: C/colorbutton.py.page:36
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/colorbutton.py.page:42
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html";
-"\">GtkColorButton</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html";
-"\">GtkColorButton</link>"
+#: C/colorbutton.py.page:43
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html\";>GtkColorButton</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html\";>GtkColorButton</link>"
 
 #. (itstool) path: item/p
-#: C/colorbutton.py.page:43
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html";
-"\">GtkColorChooser</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html";
-"\">GtkColorChooser</link>"
+#: C/colorbutton.py.page:44
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html\";>GtkColorChooser</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html\";>GtkColorChooser</link>"
 
 #. (itstool) path: info/title
-#: C/colorbutton.vala.page:7
+#: C/colorbutton.vala.page:8
 msgctxt "text"
 msgid "ColorButton (Vala)"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/colorbutton.vala.page:24
+#: C/colorbutton.vala.page:25
 msgid "RGB values of the selected color are shown in the label."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/colorbutton.vala.page:26
+#: C/colorbutton.vala.page:27
 #, no-wrap
 msgid ""
 "/* This is the application. */\n"
@@ -5734,71 +7150,100 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ColorButton\";\n"
+"\t\twindow.set_default_size (150, 50);\n"
+"\t\twindow.set_border_width (10);\n"
+"\n"
+"\t\t/* Create a new ColorButton with default blue. */\n"
+"\t\tvar blue = Gdk.RGBA ();\n"
+"\t\tblue.parse (\"blue\");\n"
+"\t\tvar colorbutton = new Gtk.ColorButton.with_rgba (blue);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Click to choose a color\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (colorbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (label, colorbutton, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"\t\tcolorbutton.color_set.connect (this.on_color_set);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_color_set (Gtk.ColorButton button) {\n"
+"\t\tvar color =  button.get_rgba ();\n"
+"\t\tlabel.set_text (\"RGBA: \" + color.to_string());\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/colorbutton.vala.page:31
-msgid ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk."
-"ColorButton</link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk."
-"ColorButton</link>"
+#: C/colorbutton.vala.page:32
+msgid "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk.ColorButton</link>"
+msgstr "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk.ColorButton</link>"
 
 #. (itstool) path: item/p
-#: C/colorbutton.vala.page:32
+#: C/colorbutton.vala.page:33
 msgid "<link href=\"http://valadoc.org/gdk-3.0/Gdk.RGBA.html\";>Gdk.RGBA</link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gdk-3.0/Gdk.RGBA.html\";>Gdk.RGBA</link>"
+msgstr "<link href=\"http://valadoc.org/gdk-3.0/Gdk.RGBA.html\";>Gdk.RGBA</link>"
 
 #. (itstool) path: 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/comboboxtext.js.page:23 C/combobox.c.page:25 C/combobox.py.page:23
-#: C/combobox.vala.page:21
+#: C/comboboxtext.js.page:24 C/combobox.c.page:26 C/combobox.py.page:24 C/combobox.vala.page:22
 msgctxt "_"
-msgid ""
-"external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
-msgstr ""
-"external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
+msgid "external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
+msgstr "external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
 
 #. (itstool) path: info/title
-#: C/comboboxtext.js.page:7
+#: C/comboboxtext.js.page:8
 msgctxt "text"
 msgid "ComboBoxText (JavaScript)"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/comboboxtext.js.page:19
+#: C/comboboxtext.js.page:20
 msgid "A text-only drop-down menu"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/comboboxtext.js.page:22
+#: C/comboboxtext.js.page:23
 msgid "ComboBoxText"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/comboboxtext.js.page:24
+#: C/comboboxtext.js.page:25
 msgid ""
-"A ComboBox is a drop-down menu. The difference between a <link xref="
-"\"combobox.js\">ComboBox</link> and a ComboBoxText is that a ComboBoxText "
-"just has basic text options, while a full ComboBox uses a ListStore or "
-"TreeStore (which are basically spreadsheets) to show things like branching "
-"options, or pictures to go alongside each choice."
+"A ComboBox is a drop-down menu. The difference between a <link xref=\"combobox.js\">ComboBox</link> and a "
+"ComboBoxText is that a ComboBoxText just has basic text options, while a full ComboBox uses a ListStore or "
+"TreeStore (which are basically spreadsheets) to show things like branching options, or pictures to go 
alongside "
+"each choice."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/comboboxtext.js.page:25
+#: C/comboboxtext.js.page:26
 msgid ""
-"Unless you need the added features of a full ComboBox, or are comfortable "
-"working with ListStores and TreeStores, you may find it a lot simpler to use "
-"a ComboBoxText whenever possible."
+"Unless you need the added features of a full ComboBox, or are comfortable working with ListStores and 
TreeStores, "
+"you may find it a lot simpler to use a ComboBoxText whenever possible."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:41
+#: C/comboboxtext.js.page:42
 #, no-wrap
 msgid ""
 "\n"
@@ -5825,18 +7270,40 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:65 C/messagedialog.js.page:69
+#: C/comboboxtext.js.page:66 C/messagedialog.js.page:70
 msgid ""
-"All the code for this sample goes in the MessageDialogExample class. The "
-"above code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/";
-"gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and window "
-"to go in."
+"All the code for this sample goes in the MessageDialogExample class. The above code creates a <link 
href=\"http://";
+"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and 
window to "
+"go in."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:66 C/combobox.js.page:70
+#: C/comboboxtext.js.page:67 C/combobox.js.page:71
 #, no-wrap
 msgid ""
 "\n"
@@ -5851,26 +7318,34 @@ msgid ""
 "            default_width: 200,\n"
 "            border_width: 10 });\n"
 msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:78 C/combobox.js.page:82 C/messagedialog.js.page:83
-#: C/radiobutton.js.page:78 C/scale.js.page:77 C/spinbutton.js.page:80
-#: C/switch.js.page:87 C/textview.js.page:87 C/togglebutton.js.page:80
-#: C/treeview_simple_liststore.js.page:89
+#: C/comboboxtext.js.page:79 C/combobox.js.page:83 C/messagedialog.js.page:84 C/radiobutton.js.page:79
+#: C/scale.js.page:78 C/spinbutton.js.page:81 C/switch.js.page:88 C/textview.js.page:88 
C/togglebutton.js.page:81
+#: C/treeview_simple_liststore.js.page:90
 msgid ""
-"The _buildUI function is where we put all the code to create the "
-"application's user interface. The first step is creating a new <link xref="
-"\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> to put all our "
-"widgets into."
+"The _buildUI function is where we put all the code to create the application's user interface. The first 
step is "
+"creating a new <link xref=\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> to put all our widgets 
into."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/comboboxtext.js.page:82
+#: C/comboboxtext.js.page:83
 msgid "Creating the ComboBoxText"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:83
+#: C/comboboxtext.js.page:84
 #, no-wrap
 msgid ""
 "\n"
@@ -5886,39 +7361,45 @@ msgid ""
 "        // Connect the combobox's 'changed' signal to our callback function\n"
 "        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 msgstr ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:96
+#: C/comboboxtext.js.page:97
 msgid ""
-"After we create the ComboBoxText, we use its <file>append_text</file> method "
-"to add text strings to it. Like the entries in an array, they each have a "
-"number for an ID, starting with 0. To make things simpler, you can actually "
-"create an array for your ComboBoxText entries, then use a for loop to append "
-"them in order, like we did here."
+"After we create the ComboBoxText, we use its <file>append_text</file> method to add text strings to it. 
Like the "
+"entries in an array, they each have a number for an ID, starting with 0. To make things simpler, you can 
actually "
+"create an array for your ComboBoxText entries, then use a for loop to append them in order, like we did 
here."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:97
+#: C/comboboxtext.js.page:98
 msgid ""
-"After we populate the ComboBoxText, we set its first entry to be active, so "
-"that we'll see the \"Select distribution\" line before we click on it. Then "
-"we connect its <file>changed</file> signal to the _onComboChanged function, "
-"so that it's called whenever you make a new selection from the drop-down "
-"menu."
+"After we populate the ComboBoxText, we set its first entry to be active, so that we'll see the \"Select "
+"distribution\" line before we click on it. Then we connect its <file>changed</file> signal to the 
_onComboChanged "
+"function, so that it's called whenever you make a new selection from the drop-down menu."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/comboboxtext.js.page:98
+#: C/comboboxtext.js.page:99
 msgid ""
-"If you'd like to add an entry to a ComboBoxText, you can use the "
-"<file>insert_text</file> method. And if you'd rather use a text string as an "
-"ID for each entry than rely on numbers alone, you can use the <file>append</"
-"file> and <file>insert</file> methods. See the links at the bottom of this "
-"tutorial for the details of how to use them."
+"If you'd like to add an entry to a ComboBoxText, you can use the <file>insert_text</file> method. And if 
you'd "
+"rather use a text string as an ID for each entry than rely on numbers alone, you can use the 
<file>append</file> "
+"and <file>insert</file> methods. See the links at the bottom of this tutorial for the details of how to use 
them."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:100
+#: C/comboboxtext.js.page:101
 #, no-wrap
 msgid ""
 "\n"
@@ -5929,21 +7410,26 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:108
-msgid ""
-"Finally, we add the ComboBoxText to the window, and tell the window to show "
-"itself and the widget inside it."
+#: C/comboboxtext.js.page:109
+msgid "Finally, we add the ComboBoxText to the window, and tell the window to show itself and the widget 
inside it."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/comboboxtext.js.page:112 C/combobox.js.page:169 C/radiobutton.js.page:180
+#: C/comboboxtext.js.page:113 C/combobox.js.page:170 C/radiobutton.js.page:181
 msgid "Function which handles your selection"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:113
+#: C/comboboxtext.js.page:114
 #, no-wrap
 msgid ""
 "\n"
@@ -5955,19 +7441,25 @@ msgid ""
 "            \"Mint is a popular distro based on Ubuntu.\",\n"
 "            \"SUSE is a name shared by two separate distros.\"];\n"
 msgstr ""
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:122
+#: C/comboboxtext.js.page:123
 msgid ""
-"We're going to create a pop-up <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, which shows you a message based on which distro you "
-"select. First, we create the array of responses to use. Since the first "
-"string in our ComboBoxText is just the \"Select distribution\" message, we "
-"make the first string in our array blank."
+"We're going to create a pop-up <link xref=\"messagedialog.js\">MessageDialog</link>, which shows you a 
message "
+"based on which distro you select. First, we create the array of responses to use. Since the first string in 
our "
+"ComboBoxText is just the \"Select distribution\" message, we make the first string in our array blank."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:124
+#: C/comboboxtext.js.page:125
 #, no-wrap
 msgid ""
 "\n"
@@ -5992,34 +7484,52 @@ msgid ""
 "\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:146
+#: C/comboboxtext.js.page:147
 msgid ""
-"Before showing a MessageDialog, we first test to make sure you didn't choose "
-"the \"Select distribution\" message. After that, we set its text to be the "
-"entry in the array that corresponds to the active entry in our ComboBoxText. "
-"We do that using the <file>get_active</file> method, which returns the "
-"number ID of your selection."
+"Before showing a MessageDialog, we first test to make sure you didn't choose the \"Select distribution\" 
message. "
+"After that, we set its text to be the entry in the array that corresponds to the active entry in our 
ComboBoxText. "
+"We do that using the <file>get_active</file> method, which returns the number ID of your selection."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/comboboxtext.js.page:147
+#: C/comboboxtext.js.page:148
 msgid ""
-"Other methods you can use include <file>get_active_id,</file> which returns "
-"the text ID assigned by <file>append,</file> and <file>get_active_text,</"
-"file> which returns the full text of the string you selected."
+"Other methods you can use include <file>get_active_id,</file> which returns the text ID assigned by 
<file>append,</"
+"file> and <file>get_active_text,</file> which returns the full text of the string you selected."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:148 C/combobox.js.page:205
+#: C/comboboxtext.js.page:149 C/combobox.js.page:206
 msgid ""
-"After we create the MessageDialog, we connect its response signal to the "
-"_onDialogResponse function, then tell it to show itself."
+"After we create the MessageDialog, we connect its response signal to the _onDialogResponse function, then 
tell it "
+"to show itself."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:150 C/combobox.js.page:207
+#: C/comboboxtext.js.page:151 C/combobox.js.page:208
 #, no-wrap
 msgid ""
 "\n"
@@ -6031,17 +7541,24 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:159 C/combobox.js.page:216
+#: C/comboboxtext.js.page:160 C/combobox.js.page:217
 msgid ""
-"Since the only button the MessageDialog has is an OK button, we don't need "
-"to test its response_id to see which button was clicked. All we do here is "
-"destroy the popup."
+"Since the only button the MessageDialog has is an OK button, we don't need to test its response_id to see 
which "
+"button was clicked. All we do here is destroy the popup."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:161
+#: C/comboboxtext.js.page:162
 #, no-wrap
 msgid ""
 "\n"
@@ -6049,16 +7566,18 @@ msgid ""
 "let app = new ComboBoxTextExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/p
-#: C/comboboxtext.js.page:166
-msgid ""
-"Finally, we create a new instance of the finished ComboBoxTextExample class, "
-"and set the application running."
+#: C/comboboxtext.js.page:167
+msgid "Finally, we create a new instance of the finished ComboBoxTextExample class, and set the application 
running."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/comboboxtext.js.page:171
+#: C/comboboxtext.js.page:172
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -6166,52 +7685,145 @@ msgid ""
 "let app = new ComboBoxTextExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/comboboxtext.js.page:182
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.";
-"html\">Gtk.ComboBoxText</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.";
-"html\">Gtk.ComboBoxText</link>"
+#: C/comboboxtext.js.page:183
+msgid "<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.html\";>Gtk.ComboBoxText</link>"
+msgstr "<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.html\";>Gtk.ComboBoxText</link>"
 
 #. (itstool) path: item/p
-#: C/comboboxtext.js.page:183 C/combobox.js.page:243 C/entry.js.page:32
-#: C/messagedialog.js.page:197
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.";
-"html\">Gtk.MessageDialog</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.";
-"html\">Gtk.MessageDialog</link>"
+#: C/comboboxtext.js.page:184 C/combobox.js.page:244 C/entry.js.page:33 C/messagedialog.js.page:198
+msgid "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.html\";>Gtk.MessageDialog</link>"
+msgstr "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.html\";>Gtk.MessageDialog</link>"
 
 #. (itstool) path: info/title
-#: C/combobox.c.page:7
-#, fuzzy
-#| msgid "JavaScript"
+#: C/combobox.c.page:8
 msgctxt "text"
 msgid "ComboBox (C)"
-msgstr "JavaScript"
+msgstr ""
 
 #. (itstool) path: info/desc
-#: C/combobox.c.page:21 C/combobox.py.page:19 C/combobox.vala.page:17
-#: C/combobox_multicolumn.py.page:18 C/combobox_multicolumn.vala.page:18
+#: C/combobox.c.page:22 C/combobox.py.page:20 C/combobox.vala.page:18 C/combobox_multicolumn.py.page:19
+#: C/combobox_multicolumn.vala.page:19
 msgid "A widget used to choose from a list of items"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/combobox.c.page:24 C/combobox.js.page:24 C/combobox.vala.page:20
+#: C/combobox.c.page:25 C/combobox.js.page:25 C/combobox.vala.page:21
 msgid "ComboBox"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/combobox.c.page:26 C/combobox.vala.page:22
+#: C/combobox.c.page:27 C/combobox.vala.page:23
 msgid "This ComboBox prints to the terminal when you change your selection."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/combobox.c.page:28
+#: C/combobox.c.page:29
 #, no-wrap
 msgid ""
 "\n"
@@ -6297,75 +7909,142 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* This is the callback function. It is a handler function which reacts to the\n"
+" * signal. In this case, if the row selected is not the first one of the\n"
+" * ComboBox, we write its value in the terminal for the user.\n"
+" */\n"
+"static void\n"
+"on_changed (GtkComboBox *widget,\n"
+"            gpointer   user_data)\n"
+"{\n"
+"  GtkComboBox *combo_box = widget;\n"
+"\n"
+"  if (gtk_combo_box_get_active (combo_box) != 0) {\n"
+"    gchar *distro = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(combo_box));\n"
+"    g_print (\"You chose %s\\n\", distro);\n"
+"    g_free (distro);\n"
+"  }\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  gint i;\n"
+"  GtkWidget *view;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *combo_box;\n"
+"\n"
+"  /* Create a window with a title, border width, and a default size. Setting the\n"
+"   * size to -1 means to use the \"natural\" default size.\n"
+"   * (the size request of the window)\n"
+"   */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, -1);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"\n"
+"  /* Create the combo box and append your string values to it. */\n"
+"  combo_box = gtk_combo_box_text_new ();\n"
+"  const char *distros[] = {\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"};\n"
+"\n"
+" \n"
+"  /* G_N_ELEMENTS is a macro which determines the number of elements in an array.*/ \n"
+"  for (i = 0; i &lt; G_N_ELEMENTS (distros); i++){\n"
+"  \tgtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), distros[i]);\n"
+"  }\n"
+"\n"
+"  /* Choose to set the first row as the active one by default, from the beginning */\n"
+"  gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);\n"
+"\n"
+"  /* Connect the signal emitted when a row is selected to the appropriate\n"
+"   * callback function.\n"
+"   */\n"
+"  g_signal_connect (combo_box,\n"
+"                    \"changed\",\n"
+"                    G_CALLBACK (on_changed),\n"
+"                    NULL);\n"
+"\n"
+"  /* Add it to the window */\n"
+"  gtk_container_add (GTK_CONTAINER (window), combo_box);\n"
+"\n"
+"  gtk_widget_show_all (window);\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"
 
 #. (itstool) path: item/p
-#: C/combobox.c.page:36
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkComboBoxText.html";
-"\">GtkComboBoxText</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkComboBoxText.html";
-"\">GtkComboBoxText</link>"
+#: C/combobox.c.page:37
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkComboBoxText.html\";>GtkComboBoxText</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkComboBoxText.html\";>GtkComboBoxText</link>"
 
 #. (itstool) path: 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/combobox.js.page:25 C/combobox_multicolumn.py.page:22
-#: C/combobox_multicolumn.vala.page:22
+#: C/combobox.js.page:26 C/combobox_multicolumn.py.page:23 C/combobox_multicolumn.vala.page:23
 msgctxt "_"
-msgid ""
-"external ref='media/combobox_multicolumn.png' "
-"md5='43f16648fb11ebc7d2f70825ed0f63b3'"
-msgstr ""
-"external ref='media/combobox_multicolumn.png' "
-"md5='43f16648fb11ebc7d2f70825ed0f63b3'"
+msgid "external ref='media/combobox_multicolumn.png' md5='43f16648fb11ebc7d2f70825ed0f63b3'"
+msgstr "external ref='media/combobox_multicolumn.png' md5='43f16648fb11ebc7d2f70825ed0f63b3'"
 
 #. (itstool) path: info/title
-#: C/combobox.js.page:7
-#, fuzzy
-#| msgid "JavaScript"
+#: C/combobox.js.page:8
 msgctxt "text"
 msgid "ComboBox (JavaScript)"
 msgstr "ComboBox (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/combobox.js.page:21
+#: C/combobox.js.page:22
 msgid "A customizable drop-down menu"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/combobox.js.page:26
+#: C/combobox.js.page:27
 msgid ""
-"A ComboBox is an extremely customizable drop-down menu. It holds the "
-"equivalent of a <link xref=\"treeview_simple_liststore.js\">TreeView</link> "
-"widget that appears when you click on it, complete with a ListStore "
-"(basically a spreadsheet) that says what's in the rows and columns. In this "
-"example, our ListStore has the name of each option in one column, and the "
-"name of a stock icon in the other, which the ComboBox then turns into an "
-"icon for each option."
+"A ComboBox is an extremely customizable drop-down menu. It holds the equivalent of a <link xref="
+"\"treeview_simple_liststore.js\">TreeView</link> widget that appears when you click on it, complete with a "
+"ListStore (basically a spreadsheet) that says what's in the rows and columns. In this example, our 
ListStore has "
+"the name of each option in one column, and the name of a stock icon in the other, which the ComboBox then 
turns "
+"into an icon for each option."
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/combobox.js.page:27
+#: C/combobox.js.page:28
 msgid ""
-"You select a whole horizontal row at a time, so the icons aren't treated as "
-"separate options. They and the text beside them make up each option you can "
-"click on."
+"You select a whole horizontal row at a time, so the icons aren't treated as separate options. They and the 
text "
+"beside them make up each option you can click on."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/combobox.js.page:28
+#: C/combobox.js.page:29
 msgid ""
-"Working with a ListStore can be time-consuming. If you just want a simple "
-"text-only drop-down menu, take a look at the <link xref=\"comboboxtext.js"
-"\">ComboBoxText</link>. It doesn't take as much time to set up, and is "
-"easier to work with."
+"Working with a ListStore can be time-consuming. If you just want a simple text-only drop-down menu, take a 
look at "
+"the <link xref=\"comboboxtext.js\">ComboBoxText</link>. It doesn't take as much time to set up, and is 
easier to "
+"work with."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:33
+#: C/combobox.js.page:34
 #, no-wrap
 msgid ""
 "\n"
@@ -6375,9 +8054,15 @@ msgid ""
 "const Gtk = imports.gi.Gtk;\n"
 "const Lang = imports.lang;\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:45
+#: C/combobox.js.page:46
 #, no-wrap
 msgid ""
 "\n"
@@ -6404,25 +8089,45 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:69
+#: C/combobox.js.page:70
 msgid ""
-"All the code for this sample goes in the ComboBoxExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"All the code for this sample goes in the ComboBoxExample class. The above code creates a <link 
href=\"http://www.";
+"roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and window 
to go "
+"in."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/combobox.js.page:86 C/treeview_simple_liststore.js.page:93
-#, fuzzy
-#| msgid "Creating the user interface"
+#: C/combobox.js.page:87 C/treeview_simple_liststore.js.page:94
 msgid "Creating the ListStore"
-msgstr "Erstellen der Benutzeroberfläche"
+msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:87
+#: C/combobox.js.page:88
 #, no-wrap
 msgid ""
 "\n"
@@ -6432,52 +8137,52 @@ msgid ""
 "            GObject.TYPE_STRING,\n"
 "            GObject.TYPE_STRING]);\n"
 msgstr ""
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:94
+#: C/combobox.js.page:95
 msgid ""
-"This ListStore works like the one used in the <link xref="
-"\"treeview_simple_liststore.js\">TreeView</link> example. We're giving it "
-"two columns, both strings, because one of them will contain the names of "
-"<link href=\"https://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html";
-"\">stock Gtk icons</link>."
+"This ListStore works like the one used in the <link xref=\"treeview_simple_liststore.js\">TreeView</link> 
example. "
+"We're giving it two columns, both strings, because one of them will contain the names of <link 
href=\"https://";
+"developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html\">stock Gtk icons</link>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:95
+#: C/combobox.js.page:96
 msgid ""
-"If we'd wanted to use our own icons that weren't already built in to GNOME, "
-"we'd have needed to use the <file>gtk.gdk.Pixbuf</file> type instead. Here "
-"are a few other types you can use:"
+"If we'd wanted to use our own icons that weren't already built in to GNOME, we'd have needed to use the 
<file>gtk."
+"gdk.Pixbuf</file> type instead. Here are a few other types you can use:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:97 C/treeview_simple_liststore.js.page:106
+#: C/combobox.js.page:98 C/treeview_simple_liststore.js.page:107
 msgid "<file>GObject.TYPE_BOOLEAN</file> -- True or false"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:98 C/treeview_simple_liststore.js.page:107
-msgid ""
-"<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a "
-"decimal point)"
+#: C/combobox.js.page:99 C/treeview_simple_liststore.js.page:108
+msgid "<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a decimal point)"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:99 C/treeview_simple_liststore.js.page:108
+#: C/combobox.js.page:100 C/treeview_simple_liststore.js.page:109
 msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/combobox.js.page:101 C/treeview_simple_liststore.js.page:112
+#: C/combobox.js.page:102 C/treeview_simple_liststore.js.page:113
 msgid ""
-"You need to put the line <file>const GObject = imports.gi.GObject;</file> at "
-"the start of your application's code, like we did in this example, if you "
-"want to be able to use GObject types."
+"You need to put the line <file>const GObject = imports.gi.GObject;</file> at the start of your 
application's code, "
+"like we did in this example, if you want to be able to use GObject types."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:103
+#: C/combobox.js.page:104
 #, no-wrap
 msgid ""
 "\n"
@@ -6496,31 +8201,43 @@ msgid ""
 "                this._listStore.set (iter, [1], [option.icon]);\n"
 "        }\n"
 msgstr ""
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:119
+#: C/combobox.js.page:120
 msgid ""
-"Here we create an array of the text options and their corresponding icons, "
-"then put them into the ListStore in much the same way we would for a <link "
-"xref=\"treeview_simple_liststore.js\">TreeView's</link> ListStore. We only "
-"want to put an icon in if there's actually an icon in the options array, so "
-"we make sure to check for that first."
+"Here we create an array of the text options and their corresponding icons, then put them into the ListStore 
in "
+"much the same way we would for a <link xref=\"treeview_simple_liststore.js\">TreeView's</link> ListStore. 
We only "
+"want to put an icon in if there's actually an icon in the options array, so we make sure to check for that 
first."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/combobox.js.page:120
+#: C/combobox.js.page:121
 msgid ""
-"\"Select\" isn't really an option so much as an invitation to click on our "
-"ComboBox, so it doesn't need an icon."
+"\"Select\" isn't really an option so much as an invitation to click on our ComboBox, so it doesn't need an 
icon."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/combobox.js.page:124
+#: C/combobox.js.page:125
 msgid "Creating the ComboBox"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:125
+#: C/combobox.js.page:126
 #, no-wrap
 msgid ""
 "\n"
@@ -6528,17 +8245,20 @@ msgid ""
 "        this._comboBox = new Gtk.ComboBox({\n"
 "            model: this._listStore});\n"
 msgstr ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:130
+#: C/combobox.js.page:131
 msgid ""
-"Each ComboBox has an underlying \"model\" it takes all its options from. You "
-"can use a TreeStore if you want to have a ComboBox with branching options. "
-"In this case, we're just using the ListStore we already created."
+"Each ComboBox has an underlying \"model\" it takes all its options from. You can use a TreeStore if you 
want to "
+"have a ComboBox with branching options. In this case, we're just using the ListStore we already created."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:131
+#: C/combobox.js.page:132
 #, no-wrap
 msgid ""
 "\n"
@@ -6554,40 +8274,47 @@ msgid ""
 "        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
 "        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
 msgstr ""
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:144
+#: C/combobox.js.page:145
 msgid ""
-"This part, again, works much like creating CellRenderers and packing them "
-"into the columns of a <link xref=\"treeview_simple_liststore.js\">TreeView</"
-"link>. The biggest difference is that we don't need to create the ComboBox's "
-"columns as separate objects. We just pack the CellRenderers into it in the "
-"order we want them to show up, then tell them to pull information from the "
-"ListStore (and what type of information we want them to expect)."
+"This part, again, works much like creating CellRenderers and packing them into the columns of a <link xref="
+"\"treeview_simple_liststore.js\">TreeView</link>. The biggest difference is that we don't need to create 
the "
+"ComboBox's columns as separate objects. We just pack the CellRenderers into it in the order we want them to 
show "
+"up, then tell them to pull information from the ListStore (and what type of information we want them to 
expect)."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:145
+#: C/combobox.js.page:146
 msgid ""
-"We use a CellRendererText to show the text, and a CellRendererPixbuf to show "
-"the icons. We can store the names of the icons' stock types as strings, but "
-"when we display them we need a CellRenderer that's designed for pictures."
+"We use a CellRendererText to show the text, and a CellRendererPixbuf to show the icons. We can store the 
names of "
+"the icons' stock types as strings, but when we display them we need a CellRenderer that's designed for 
pictures."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/combobox.js.page:146
+#: C/combobox.js.page:147
 msgid ""
-"Just like with a TreeView, the \"model\" (in this case a ListStore) and the "
-"\"view\" (in this case our ComboBox) are separate. Because of that, we can "
-"do things like have the columns in one order in the ListStore, and then pack "
-"the CellRenderers that correspond to those columns into the ComboBox in a "
-"different order. We can even create a TreeView or other widget that shows "
-"the information in the ListStore in a different way, without it affecting "
-"our ComboBox."
+"Just like with a TreeView, the \"model\" (in this case a ListStore) and the \"view\" (in this case our 
ComboBox) "
+"are separate. Because of that, we can do things like have the columns in one order in the ListStore, and 
then pack "
+"the CellRenderers that correspond to those columns into the ComboBox in a different order. We can even 
create a "
+"TreeView or other widget that shows the information in the ListStore in a different way, without it 
affecting our "
+"ComboBox."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:148
+#: C/combobox.js.page:149
 #, no-wrap
 msgid ""
 "\n"
@@ -6597,19 +8324,24 @@ msgid ""
 "        // Connect the combobox's 'changed' signal to our callback function\n"
 "        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 msgstr ""
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:155
+#: C/combobox.js.page:156
 msgid ""
-"We want the \"Select\" text to be the part people see at first, that gets "
-"them to click on the ComboBox. So we set it to be the active entry. We also "
-"connect the ComboBox's <file>changed</file> signal to a callback function, "
-"so that any time someone clicks on a new option something happens. In this "
-"case, we're just going to show a popup with a little haiku."
+"We want the \"Select\" text to be the part people see at first, that gets them to click on the ComboBox. So 
we set "
+"it to be the active entry. We also connect the ComboBox's <file>changed</file> signal to a callback 
function, so "
+"that any time someone clicks on a new option something happens. In this case, we're just going to show a 
popup "
+"with a little haiku."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:157
+#: C/combobox.js.page:158
 #, no-wrap
 msgid ""
 "\n"
@@ -6620,16 +8352,21 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:165
-msgid ""
-"Finally, we add the ComboBox to the window, and tell the window to show "
-"itself and everything inside it."
+#: C/combobox.js.page:166
+msgid "Finally, we add the ComboBox to the window, and tell the window to show itself and everything inside 
it."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:170
+#: C/combobox.js.page:171
 #, no-wrap
 msgid ""
 "\n"
@@ -6641,19 +8378,25 @@ msgid ""
 "            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
 "            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
 msgstr ""
+"\n"
+"    _selected: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:179
+#: C/combobox.js.page:180
 msgid ""
-"We're going to create a pop-up <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, which shows you a silly haiku based on which distro "
-"you select. First, we create the array of haiku to use. Since the first "
-"string in our ComboBox is just the \"Select\" message, we make the first "
-"string in our array blank."
+"We're going to create a pop-up <link xref=\"messagedialog.js\">MessageDialog</link>, which shows you a 
silly haiku "
+"based on which distro you select. First, we create the array of haiku to use. Since the first string in our 
"
+"ComboBox is just the \"Select\" message, we make the first string in our array blank."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:181
+#: C/combobox.js.page:182
 #, no-wrap
 msgid ""
 "\n"
@@ -6678,27 +8421,45 @@ msgid ""
 "\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:203
+#: C/combobox.js.page:204
 msgid ""
-"Before showing a MessageDialog, we first test to make sure you didn't choose "
-"the \"Select\" message. After that, we set its text to be the haiku in the "
-"array that corresponds to the active entry in our ComboBoxText. We do that "
-"using the <file>get_active</file> method, which returns the number ID of "
-"your selection."
+"Before showing a MessageDialog, we first test to make sure you didn't choose the \"Select\" message. After 
that, "
+"we set its text to be the haiku in the array that corresponds to the active entry in our ComboBoxText. We 
do that "
+"using the <file>get_active</file> method, which returns the number ID of your selection."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/combobox.js.page:204
+#: C/combobox.js.page:205
 msgid ""
-"Other methods you can use include <file>get_active_id</file>, which returns "
-"the text ID assigned by <file>append</file>, and <file>get_active_text</"
-"file>, which returns the full text of the string you selected."
+"Other methods you can use include <file>get_active_id</file>, which returns the text ID assigned by 
<file>append</"
+"file>, and <file>get_active_text</file>, which returns the full text of the string you selected."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:218
+#: C/combobox.js.page:219
 #, no-wrap
 msgid ""
 "\n"
@@ -6706,16 +8467,18 @@ msgid ""
 "let app = new ComboBoxExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/p
-#: C/combobox.js.page:223
-msgid ""
-"Finally, we create a new instance of the finished ComboBoxExample class, and "
-"set the application running."
+#: C/combobox.js.page:224
+msgid "Finally, we create a new instance of the finished ComboBoxExample class, and set the application 
running."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.js.page:228
+#: C/combobox.js.page:229
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -6855,72 +8618,250 @@ msgid ""
 "let app = new ComboBoxExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:239
+#: C/combobox.js.page:240
 msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"CellRendererPixbuf.html\">Gtk.CellRendererPixbuf</link>"
+"<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererPixbuf.html\";>Gtk.CellRendererPixbuf</"
+"link>"
 msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"CellRendererPixbuf.html\">Gtk.CellRendererPixbuf</link>"
+"<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererPixbuf.html\";>Gtk.CellRendererPixbuf</"
+"link>"
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:240 C/treeview_simple_liststore.js.page:278
+#: C/combobox.js.page:241 C/treeview_simple_liststore.js.page:279
 msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"CellRendererText.html\">Gtk.CellRendererText</link>"
+"<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererText.html\";>Gtk.CellRendererText</link>"
 msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"CellRendererText.html\">Gtk.CellRendererText</link>"
+"<link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererText.html\";>Gtk.CellRendererText</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:241
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html";
-"\">Gtk.ComboBox</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html";
-"\">Gtk.ComboBox</link>"
+#: C/combobox.js.page:242
+msgid "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html\";>Gtk.ComboBox</link>"
+msgstr "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html\";>Gtk.ComboBox</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:242 C/treeview_simple_liststore.js.page:279
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html";
-"\">Gtk.ListStore</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html";
-"\">Gtk.ListStore</link>"
+#: C/combobox.js.page:243 C/treeview_simple_liststore.js.page:280
+msgid "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html\";>Gtk.ListStore</link>"
+msgstr "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html\";>Gtk.ListStore</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.js.page:244 C/treeview_simple_liststore.js.page:280
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html";
-"\">Gtk.TreeIter</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html";
-"\">Gtk.TreeIter</link>"
+#: C/combobox.js.page:245 C/treeview_simple_liststore.js.page:281
+msgid "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html\";>Gtk.TreeIter</link>"
+msgstr "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html\";>Gtk.TreeIter</link>"
 
 #. (itstool) path: info/title
-#: C/combobox.py.page:7 C/combobox_multicolumn.py.page:7
+#: C/combobox.py.page:8 C/combobox_multicolumn.py.page:8
 msgctxt "text"
 msgid "ComboBox (Python)"
-msgstr ""
+msgstr "ComboBox (Python)"
 
 #. (itstool) path: page/title
-#: C/combobox.py.page:22
+#: C/combobox.py.page:23
 msgid "ComboBox (one column)"
-msgstr ""
+msgstr "ComboBox (einspaltig)"
 
 #. (itstool) path: page/p
-#: C/combobox.py.page:24 C/combobox_multicolumn.py.page:23
-#: C/combobox_multicolumn.vala.page:23
+#: C/combobox.py.page:25 C/combobox_multicolumn.py.page:24 C/combobox_multicolumn.vala.page:24
 msgid "This ComboBox prints to the terminal your selection when you change it."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox.py.page:30
+#: C/combobox.py.page:31
 #, no-wrap
+#| msgid ""
+#| "from gi.repository import Gtk\n"
+#| "import sys\n"
+#| "\n"
+#| "class MyWindow(Gtk.ApplicationWindow):\n"
+#| "    # a window\n"
+#| "    def __init__(self, app):\n"
+#| "        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
+#| "        self.set_default_size(300, 100)\n"
+#| "        self.set_border_width(10)\n"
+#| "\n"
+#| "        # a switch\n"
+#| "        switch = Gtk.Switch()\n"
+#| "        # turned on by default\n"
+#| "        switch.set_active(True)\n"
+#| "        # connect the signal notify::active emitted by the switch\n"
+#| "        # to the callback function activate_cb\n"
+#| "        switch.connect(\"notify::active\", self.activate_cb)\n"
+#| "\n"
+#| "        # a label\n"
+#| "        label = Gtk.Label()\n"
+#| "        label.set_text(\"Title\")\n"
+#| "\n"
+#| "        # a grid to allocate the widgets\n"
+#| "        grid = Gtk.Grid()\n"
+#| "        grid.set_column_spacing (10);\n"
+#| "        grid.attach (label, 0, 0, 1, 1);\n"
+#| "        grid.attach (switch, 1, 0, 1, 1);\n"
+#| "\n"
+#| "        # add the grid to the window\n"
+#| "        self.add(grid)\n"
+#| "\n"
+#| "    # Callback function. Since the signal is notify::active\n"
+#| "    # we need the argument 'active'\n"
+#| "    def activate_cb(self, button, active):\n"
+#| "        # if the button (i.e. the switch) is active, set the title\n"
+#| "        # of the window to \"Switch Example\"\n"
+#| "        if button.get_active():\n"
+#| "            self.set_title(\"Switch Example\")\n"
+#| "        # else, set it to \"\" (empty string)\n"
+#| "        else:\n"
+#| "            self.set_title(\"\")\n"
+#| "\n"
+#| "class MyApplication(Gtk.Application):\n"
+#| "    def __init__(self):\n"
+#| "        Gtk.Application.__init__(self)\n"
+#| "\n"
+#| "    def do_activate(self):\n"
+#| "        win = MyWindow(self)\n"
+#| "        win.show_all()\n"
+#| "\n"
+#| "    def do_startup(self):\n"
+#| "        Gtk.Application.do_startup(self)\n"
+#| "\n"
+#| "app = MyApplication()\n"
+#| "exit_status = app.run(sys.argv)\n"
+#| "sys.exit(exit_status)\n"
 msgid ""
 "from gi.repository import Gtk\n"
 "import sys\n"
@@ -6968,7 +8909,7 @@ msgid ""
 "        # if the row selected is not the first one, write its value on the\n"
 "        # terminal\n"
 "        if combo.get_active() != 0:\n"
-"            print \"You chose \" + str(distros[combo.get_active()][0]) + \".\"\n"
+"            print(\"You chose \" + str(distros[combo.get_active()][0]) + \".\")\n"
 "        return True\n"
 "\n"
 "\n"
@@ -6988,91 +8929,132 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"distros = [[\"Select distribution\"], [\"Fedora\"], [\"Mint\"], [\"Suse\"]]\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string\n"
+"        listmodel = Gtk.ListStore(str)\n"
+"        # append the data in the model\n"
+"        for i in range(len(distros)):\n"
+"            listmodel.append(distros[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # a cellrenderer to render the text\n"
+"        cell = Gtk.CellRendererText()\n"
+"\n"
+"        # pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed\n"
+"        combobox.pack_start(cell, False)\n"
+"        # associate a property (\"text\") of the cellrenderer (cell) to a column (column 0)\n"
+"        # in the model used by the combobox\n"
+"        combobox.add_attribute(cell, \"text\", 0)\n"
+"\n"
+"        # the first row is the active one by default at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback\n"
+"        # function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write its value on the\n"
+"        # terminal\n"
+"        if combo.get_active() != 0:\n"
+"            print(\"You chose \" + str(distros[combo.get_active()][0]) + \".\")\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/combobox.py.page:34 C/combobox_multicolumn.py.page:34
+#: C/combobox.py.page:35 C/combobox_multicolumn.py.page:35
 msgid "Useful methods for a ComboBox widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/combobox.py.page:35 C/combobox_multicolumn.py.page:35
+#: C/combobox.py.page:36 C/combobox_multicolumn.py.page:36
 msgid ""
-"The ComboBox 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 ComboBox "
-"see <link xref=\"model-view-controller.py\"/>."
+"The ComboBox 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 ComboBox see <link xref=\"model-view-controller.py\"/>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/combobox.py.page:36
+#: C/combobox.py.page:37
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/combobox.py.page:44 C/combobox_multicolumn.py.page:43
-#: C/model-view-controller.py.page:189
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html";
-"\">GtkComboBox</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html";
-"\">GtkComboBox</link>"
+#: C/combobox.py.page:45 C/combobox_multicolumn.py.page:44 C/model-view-controller.py.page:190
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html\";>GtkComboBox</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html\";>GtkComboBox</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.py.page:45 C/combobox_multicolumn.py.page:44
-#: C/treeview_advanced_liststore.py.page:45
-#: C/treeview_simple_liststore.py.page:46
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html";
-"\">GtkListStore</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html";
-"\">GtkListStore</link>"
+#: C/combobox.py.page:46 C/combobox_multicolumn.py.page:45 C/treeview_advanced_liststore.py.page:46
+#: C/treeview_simple_liststore.py.page:47
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html\";>GtkListStore</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html\";>GtkListStore</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.py.page:46 C/combobox_multicolumn.py.page:45
-#: C/treeview_advanced_liststore.py.page:46
-#: C/treeview_cellrenderertoggle.py.page:46
-#: C/treeview_simple_liststore.py.page:47 C/treeview_treestore.py.page:46
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.";
-"html\">GtkCellRendererText</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.";
-"html\">GtkCellRendererText</link>"
+#: C/combobox.py.page:47 C/combobox_multicolumn.py.page:46 C/treeview_advanced_liststore.py.page:47
+#: C/treeview_cellrenderertoggle.py.page:47 C/treeview_simple_liststore.py.page:48 
C/treeview_treestore.py.page:47
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.html\";>GtkCellRendererText</link>"
+msgstr "<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.html\";>GtkCellRendererText</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.py.page:47
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html";
-"\">GtkCellLayout</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html";
-"\">GtkCellLayout</link>"
+#: C/combobox.py.page:48
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html\";>GtkCellLayout</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html\";>GtkCellLayout</link>"
 
 #. (itstool) path: item/p
-#: C/combobox.py.page:48 C/combobox_multicolumn.py.page:48
-#: C/treeview_advanced_liststore.py.page:48
-#: C/treeview_simple_liststore.py.page:49
+#: C/combobox.py.page:49 C/combobox_multicolumn.py.page:49 C/treeview_advanced_liststore.py.page:49
+#: C/treeview_simple_liststore.py.page:50
 msgid ""
-"<link href=\"http://git.gnome.org/browse/pygobject/tree/gi/overrides/Gtk.py";
-"\">pygobject - Python bindings for GObject Introspection</link>"
+"<link href=\"http://git.gnome.org/browse/pygobject/tree/gi/overrides/Gtk.py\";>pygobject - Python bindings 
for "
+"GObject Introspection</link>"
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/combobox.vala.page:7 C/combobox_multicolumn.vala.page:7
+#: C/combobox.vala.page:8 C/combobox_multicolumn.vala.page:8
 msgctxt "text"
 msgid "ComboBox (Vala)"
-msgstr ""
+msgstr "ComboBox (Vala)"
 
 #. (itstool) path: page/code
-#: C/combobox.vala.page:24
+#: C/combobox.vala.page:25
 #, no-wrap
 msgid ""
 "/* A window in the application */\n"
@@ -7113,7 +9095,7 @@ msgid ""
 "\t\tcombobox.set_active (0);\n"
 "\n"
 "\t\t/* Connect the 'changed' signal of the combobox\n"
-"\t\t * to the signal handler (aka. callback function.\n"
+"\t\t * to the signal handler (aka. callback function).\n"
 "\t\t */\n"
 "\t\tcombobox.changed.connect (this.item_changed);\n"
 "\n"
@@ -7155,50 +9137,113 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* An instance array of linux distributions belonging to this window. */\n"
+"\tstring[] distros = {\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"};\n"
+"\n"
+"\t/* This enum makes the code more readable when we refer to\n"
+"\t * the column as Column.DISTRO, instead of just 0.\n"
+"\t */\n"
+"\tenum Column {\n"
+"\t\tDISTRO\n"
+"\t}\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tthis.set_default_size (200, -1);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tGtk.ListStore liststore = new Gtk.ListStore (1, typeof (string));\n"
+"\n"
+"\t\tfor (int i = 0; i &lt; distros.length; i++){\n"
+"\t\t\tGtk.TreeIter iter;\n"
+"\t\t\tliststore.append (out iter);\n"
+"\t\t\tliststore.set (iter, Column.DISTRO, distros[i]);\n"
+"\t\t}\n"
+"\n"
+"\t\tGtk.ComboBox combobox = new Gtk.ComboBox.with_model (liststore);\n"
+"\t\tGtk.CellRendererText cell = new Gtk.CellRendererText ();\n"
+"\t\tcombobox.pack_start (cell, false);\n"
+"\n"
+"\t\tcombobox.set_attributes (cell, \"text\", Column.DISTRO);\n"
+"\n"
+"\t\t/* Set the first item in the list to be selected (active). */\n"
+"\t\tcombobox.set_active (0);\n"
+"\n"
+"\t\t/* Connect the 'changed' signal of the combobox\n"
+"\t\t * to the signal handler (aka. callback function).\n"
+"\t\t */\n"
+"\t\tcombobox.changed.connect (this.item_changed);\n"
+"\n"
+"\t\t/* Add the combobox to this window */\n"
+"\t\tthis.add (combobox);\n"
+"\t\tcombobox.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'changed' signal of the combobox. */\n"
+"\tvoid item_changed (Gtk.ComboBox combo) {\n"
+"\t\tif (combo.get_active () !=0) {\n"
+"\t\t\tprint (\"You chose \" + distros [combo.get_active ()] +\"\\n\");\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application,\n"
+"\t * which is inherited by Gtk.Application.\n"
+"\t */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create the window of this application\n"
+"\t\t * and show it.\n"
+"\t\t */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/combobox.vala.page:29 C/treeview_simple_liststore.vala.page:32
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk."
-"ListStore</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk."
-"ListStore</link>"
-
-#. (itstool) path: item/p
-#: C/combobox.vala.page:30
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk."
-"ComboBox</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk."
-"ComboBox</link>"
+#: C/combobox.vala.page:30 C/treeview_simple_liststore.vala.page:33
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk.ListStore</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk.ListStore</link>"
 
 #. (itstool) path: item/p
 #: C/combobox.vala.page:31
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk."
-"CellRendererText</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk."
-"CellRendererText</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk.ComboBox</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk.ComboBox</link>"
 
 #. (itstool) path: item/p
 #: C/combobox.vala.page:32
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.";
-"html\">set_attributes</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.";
-"html\">set_attributes</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk.CellRendererText</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk.CellRendererText</link>"
+
+#. (itstool) path: item/p
+#: C/combobox.vala.page:33
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.html\";>set_attributes</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.html\";>set_attributes</link>"
 
 #. (itstool) path: page/title
-#: C/combobox_multicolumn.py.page:21 C/combobox_multicolumn.vala.page:21
+#: C/combobox_multicolumn.py.page:22 C/combobox_multicolumn.vala.page:22
 msgid "ComboBox (two columns)"
-msgstr ""
+msgstr "ComboBox (zweispaltig)"
 
 #. (itstool) path: section/code
-#: C/combobox_multicolumn.py.page:29
+#: C/combobox_multicolumn.py.page:30
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -7257,7 +9302,7 @@ msgid ""
 "        # if the row selected is not the first one, write on the terminal\n"
 "        # the value of the first column in the model\n"
 "        if combo.get_active() != 0:\n"
-"            print \"You chose \" + str(actions[combo.get_active()][0]) + \"\\n\"\n"
+"            print(\"You chose \" + str(actions[combo.get_active()][0]) + \"\\n\")\n"
 "        return True\n"
 "\n"
 "\n"
@@ -7277,35 +9322,104 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"actions = [[\"Select\", None],\n"
+"           [\"New\", Gtk.STOCK_NEW],\n"
+"           [\"Open\", Gtk.STOCK_OPEN],\n"
+"           [\"Save\", Gtk.STOCK_SAVE]]\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string on two columns\n"
+"        listmodel = Gtk.ListStore(str, str)\n"
+"        # append the data\n"
+"        for i in range(len(actions)):\n"
+"            listmodel.append(actions[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # cellrenderers to render the data\n"
+"        renderer_pixbuf = Gtk.CellRendererPixbuf()\n"
+"        renderer_text = Gtk.CellRendererText()\n"
+"\n"
+"        # we pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed;\n"
+"        # first the image, then the text;\n"
+"        # note that it does not matter in which order they are in the model,\n"
+"        # the visualization is decided by the order of the cellrenderers\n"
+"        combobox.pack_start(renderer_pixbuf, False)\n"
+"        combobox.pack_start(renderer_text, False)\n"
+"\n"
+"        # associate a property of the cellrenderer to a column in the model\n"
+"        # used by the combobox\n"
+"        combobox.add_attribute(renderer_text, \"text\", 0)\n"
+"        combobox.add_attribute(renderer_pixbuf, \"stock_id\", 1)\n"
+"\n"
+"        # the first row is the active one at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback\n"
+"        # function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write on the terminal\n"
+"        # the value of the first column in the model\n"
+"        if combo.get_active() != 0:\n"
+"            print(\"You chose \" + str(actions[combo.get_active()][0]) + \"\\n\")\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/p
-#: C/combobox_multicolumn.py.page:36
+#: C/combobox_multicolumn.py.page:37
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/combobox_multicolumn.py.page:46
+#: C/combobox_multicolumn.py.page:47
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.";
-"html\">GtkCellRendererPixbuf</link>"
+"<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.html\";>GtkCellRendererPixbuf</link>"
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.";
-"html\">GtkCellRendererPixbuf</link>"
+"<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.html\";>GtkCellRendererPixbuf</link>"
 
 #. (itstool) path: item/p
-#: C/combobox_multicolumn.py.page:47 C/combobox_multicolumn.vala.page:41
-#: C/toolbar.py.page:57
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
-"\">Stock Items</link>"
+#: C/combobox_multicolumn.py.page:48 C/combobox_multicolumn.vala.page:42 C/toolbar.py.page:58
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Stock Items</link>"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/combobox_multicolumn.vala.page:29
+#: C/combobox_multicolumn.vala.page:30
 #, no-wrap
 msgid ""
 "class MyWindow : Gtk.ApplicationWindow {\n"
@@ -7359,7 +9473,7 @@ msgid ""
 "\t\tcombobox.set_active (0);\n"
 "\n"
 "\t\t/* Connect the 'changed' signal of the combobox\n"
-"\t\t * to the signal handler (aka. callback function.\n"
+"\t\t * to the signal handler (aka. callback function).\n"
 "\t\t */\n"
 "\t\tcombobox.changed.connect (this.item_changed);\n"
 "\n"
@@ -7385,90 +9499,152 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
-
-#. (itstool) path: item/p
-#: C/combobox_multicolumn.vala.page:37
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html";
-"\">GtkComboBox</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html";
-"\">GtkComboBox</link>"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tstring[] file = {\"Select\", \"New\", \"Open\", \"Save\"};\n"
+"\tstring[] stock_item = {\"\",\"gtk-new\", \"gtk-open\", \"gtk-save\"};\n"
+"\n"
+"\tenum Column {\n"
+"\t\tFILE,\n"
+"\t\tSTOCK_ITEM\t\n"
+"\t}\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tthis.set_default_size (200, -1);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tGtk.ListStore liststore = new Gtk.ListStore (2, typeof (string), typeof (string));\n"
+"\n"
+"\t\tfor (int i = 0; i &lt; file.length; i++){\n"
+"\t\t\tGtk.TreeIter iter;\n"
+"\t\t\tliststore.append (out iter);\n"
+"\t\t\tliststore.set (iter, Column.FILE, file[i]);\n"
+"\t\t\tliststore.set (iter, Column.STOCK_ITEM, stock_item[i]);\n"
+"\t\t}\n"
+"\n"
+"\t\tGtk.ComboBox combobox = new Gtk.ComboBox.with_model (liststore);\n"
+"\n"
+"\t\t/* CellRenderers render the data. */\n"
+"\t\tGtk.CellRendererText cell = new Gtk.CellRendererText ();\n"
+"\t\tGtk.CellRendererPixbuf cell_pb = new Gtk.CellRendererPixbuf ();\n"
+"\t\t\n"
+"                /* we pack the cell into the beginning of the combobox, allocating\n"
+"\t\t * no more space than needed;\n"
+"\t\t * first the image, then the text;\n"
+"\t\t * note that it does not matter in which order they are in the model,\n"
+"\t\t * the visualization is decided by the order of the cellrenderers\n"
+"\t\t */\n"
+"\t\tcombobox.pack_start (cell_pb, false);\n"
+"\t\tcombobox.pack_start (cell, false);\n"
+"\n"
+"\t\t/* associate a property of the cellrenderer to a column in the model\n"
+"\t\t * used by the combobox\n"
+"\t\t */\n"
+"\t\tcombobox.set_attributes (cell_pb, \"stock_id\", Column.STOCK_ITEM);\n"
+"\t\tcombobox.set_attributes (cell, \"text\", Column.FILE);\n"
+"\n"
+"\t\t/* Set the first item in the list to be selected (active). */\n"
+"\t\tcombobox.set_active (0);\n"
+"\n"
+"\t\t/* Connect the 'changed' signal of the combobox\n"
+"\t\t * to the signal handler (aka. callback function).\n"
+"\t\t */\n"
+"\t\tcombobox.changed.connect (this.item_changed);\n"
+"\n"
+"\t\t/* Add the combobox to this window */\n"
+"\t\tthis.add (combobox);\n"
+"\t\tcombobox.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid item_changed (Gtk.ComboBox combo) {\n"
+"\t\tif (combo.get_active () !=0) {\n"
+"\t\t\tprint (\"You chose \" + file [combo.get_active ()] +\"\\n\");\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"        protected override void activate () {\n"
+"                new MyWindow (this).show ();\n"
+"        }\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/combobox_multicolumn.vala.page:38
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html";
-"\">GtkListStore</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html";
-"\">GtkListStore</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>GtkComboBox</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>GtkComboBox</link>"
 
 #. (itstool) path: item/p
 #: C/combobox_multicolumn.vala.page:39
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html";
-"\">GtkCellRendererText</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html";
-"\">GtkCellRendererText</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>GtkListStore</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>GtkListStore</link>"
 
 #. (itstool) path: item/p
 #: C/combobox_multicolumn.vala.page:40
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererPixbuf.html";
-"\">GtkCellRendererPixbuf</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererPixbuf.html";
-"\">GtkCellRendererPixbuf</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>GtkCellRendererText</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>GtkCellRendererText</link>"
+
+#. (itstool) path: item/p
+#: C/combobox_multicolumn.vala.page:41
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererPixbuf.html\";>GtkCellRendererPixbuf</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererPixbuf.html\";>GtkCellRendererPixbuf</link>"
 
 #. (itstool) path: info/title
-#: C/cpp.page:6
+#: C/cpp.page:7
 msgctxt "link"
 msgid "C++"
 msgstr "C++"
 
 #. (itstool) path: page/title
-#: C/cpp.page:15
+#: C/cpp.page:16
 msgid "Code samples and platform demos in C++"
 msgstr ""
 
+#. (itstool) path: section/title
+#: C/cpp.page:21 C/js.page:36 C/py.page:39 C/vala.page:30
+msgid "Examples of applications"
+msgstr "Anwendungsbeispiele"
+
 #. (itstool) path: 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/dialog.c.page:24 C/dialog.js.page:21 C/dialog.py.page:23
-#: C/dialog.vala.page:21
+#: C/dialog.c.page:25 C/dialog.js.page:22 C/dialog.py.page:24 C/dialog.vala.page:22
 msgctxt "_"
 msgid "external ref='media/dialog.png' md5='c90a33386a600e892fe623d4072c8c38'"
 msgstr "external ref='media/dialog.png' md5='c90a33386a600e892fe623d4072c8c38'"
 
 #. (itstool) path: info/title
-#: C/dialog.c.page:7
+#: C/dialog.c.page:8
 msgctxt "text"
 msgid "Dialog (C)"
 msgstr "Dialog (C)"
 
 #. (itstool) path: info/desc
-#: C/dialog.c.page:19 C/dialog.js.page:17 C/dialog.py.page:19
-#: C/dialog.vala.page:17
+#: C/dialog.c.page:20 C/dialog.js.page:18 C/dialog.py.page:20 C/dialog.vala.page:18
 msgid "A popup window"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/dialog.c.page:22 C/dialog.js.page:20 C/dialog.py.page:22
-#: C/dialog.vala.page:20
+#: C/dialog.c.page:23 C/dialog.js.page:21 C/dialog.py.page:23 C/dialog.vala.page:21
 msgid "Dialog"
 msgstr "Dialog"
 
 #. (itstool) path: page/p
-#: C/dialog.c.page:25
+#: C/dialog.c.page:26
 msgid "A dialog window that pops up when a button is pressed."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/dialog.c.page:27
+#: C/dialog.c.page:28
 #, no-wrap
 msgid ""
 "\n"
@@ -7573,39 +9749,193 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+" \n"
+"\n"
+"/*Callback function in which reacts to the \"response\" signal. Be sure to place \n"
+"it before the function it is called in*/\n"
+"static void\n"
+"on_response (GtkDialog *dialog,\n"
+"             gint       response_id,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  /*For demonstration purposes, this will show the int value \n"
+"  of the response type*/\n"
+"  g_print (\"response is %d\\n\", response_id);\n"
+"  \n"
+"  /*This will cause the dialog to be destroyed*/\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function in which reacts to the \"clicked\" signal*/\n"
+"static void\n"
+"show_dialog (GtkButton *button,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"  GtkWidget *dialog;\n"
+"  GtkWidget *content_area;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  gint response_id;\n"
+"\n"
+"  /*Create the dialog window. Modal windows prevent interaction with other \n"
+"  windows in the same application*/\n"
+"  dialog = gtk_dialog_new_with_buttons (\"A Gtk+ Dialog\", \n"
+"                                        window, \n"
+"                                        GTK_DIALOG_MODAL, \n"
+"                                        GTK_STOCK_OK, \n"
+"                                        GTK_RESPONSE_OK, \n"
+"                                        NULL);\n"
+"\n"
+"  /*Create a label and attach it to the content area of the dialog*/\n"
+"  content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));\n"
+"  label = gtk_label_new (\"This demonstrates a dialog with a label\");\n"
+"  gtk_container_add (GTK_CONTAINER (content_area), label);\n"
+"\n"
+"  /*The main purpose of this is to show dialog's child widget, label*/\n"
+"  gtk_widget_show_all (dialog);\n"
+"  \n"
+"  /*Connecting the \"response\" signal from the user to the associated\n"
+"  callback function*/\n"
+"  g_signal_connect (GTK_DIALOG (dialog), \n"
+"                    \"response\", \n"
+"                    G_CALLBACK (on_response), \n"
+"                    NULL);\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\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), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), button);\n"
+" \n"
+"  /*Connecting the clicked signal to the callback*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \n"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (show_dialog), \n"
+"                    GTK_WINDOW (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"
 
 #. (itstool) path: item/p
-#: C/dialog.c.page:35
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkDialog.html";
-"\">GtkDialog</link>"
-msgstr ""
+#: C/dialog.c.page:36
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkDialog.html\";>GtkDialog</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkDialog.html\";>GtkDialog</link>"
 
 #. (itstool) path: item/p
-#: C/dialog.c.page:36 C/radiobutton.c.page:35 C/spinbutton.c.page:37
-#: C/switch.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkLabel.html";
-"\">GtkLabel</link>"
+#: C/dialog.c.page:37 C/radiobutton.c.page:36 C/spinbutton.c.page:38 C/switch.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkLabel.html\";>GtkLabel</link>"
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/dialog.js.page:7
+#: C/dialog.js.page:8
 msgctxt "text"
 msgid "Dialog (JavaScript)"
 msgstr "Dialog (JavaScript)"
 
 #. (itstool) path: page/p
-#: C/dialog.js.page:22
+#: C/dialog.js.page:23
 msgid ""
-"A customizable popup window, which has a content area and an action area. "
-"This example dialog's content area contains a short message, and its action "
-"area contains a button which dismisses the dialog."
+"A customizable popup window, which has a content area and an action area. This example dialog's content 
area "
+"contains a short message, and its action area contains a button which dismisses the dialog."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/dialog.js.page:24
+#: C/dialog.js.page:25
 #, no-wrap
+#| msgid ""
+#| "#!/usr/bin/gjs\n"
+#| "\n"
+#| "const GObject = imports.gi.GObject;\n"
+#| "const Gtk = imports.gi.Gtk;\n"
+#| "const Lang = imports.lang;\n"
+#| "\n"
+#| "const ScrolledWindowExample = new Lang.Class ({\n"
+#| "    Name: 'ScrolledWindow Example',\n"
+#| "\n"
+#| "    // Create the application itself\n"
+#| "    _init: function () {\n"
+#| "        this.application = new Gtk.Application({ application_id: 'org.example.jscrolledwindow' });\n"
+#| "\n"
+#| "        // Connect 'activate' and 'startup' signals to the callback functions\n"
+#| "        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+#| "        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+#| "    },\n"
+#| "\n"
+#| "    // Callback function for 'activate' signal presents windows when active\n"
+#| "    _onActivate: function() {\n"
+#| "        this.window.present();\n"
+#| "    },\n"
+#| "\n"
+#| "    // Callback function for 'startup' signal builds the UI\n"
+#| "    _onStartup: function() {\n"
+#| "        this._buildUI ();\n"
+#| "    },\n"
+#| "\n"
+#| "    // Build the application's UI\n"
+#| "    _buildUI: function() {\n"
+#| "        // Create the application window\n"
+#| "        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+#| "                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+#| "                                                    title: \"ScrolledWindow Example\",\n"
+#| "                                                    default_width: 200,\n"
+#| "                                                    default_height: 200,\n"
+#| "                                                    border_width: 10 });\n"
+#| "        // the scrolledwindow\n"
+#| "        this.scrolledWindow = new Gtk.ScrolledWindow();\n"
+#| "        this.scrolledWindow.set_border_width(10);\n"
+#| "        // there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
+#| "        this.scrolledWindow.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS);\n"
+#| "        // an image - slightly larger than the window\n"
+#| "        this.image = new Gtk.Image();\n"
+#| "        this.image.set_from_file(\"gnome-image.png\");\n"
+#| "\n"
+#| "        // add the image to the scrolledwindow\n"
+#| "        this.scrolledWindow.add_with_viewport(this.image);\n"
+#| "\n"
+#| "        // add the scrolledwindow to the window\n"
+#| "        this.window.add(this.scrolledWindow);\n"
+#| "        this.window.show_all();\n"
+#| "    }\n"
+#| "});\n"
+#| "\n"
+#| "// Run the application\n"
+#| "let app = new ScrolledWindowExample();\n"
+#| "app.application.run (ARGV);\n"
 msgid ""
 "#!/usr/bin/gjs\n"
 "\n"
@@ -7674,7 +10004,7 @@ msgid ""
 "\n"
 "        // Create the dialog's action area, which contains a stock OK button\n"
 "        this._actionArea = this._dialog.get_action_area();\n"
-"        this._OKButton = new Gtk.Button.new_from_stock (Gtk.STOCK_OK);\n"
+"        this._OKButton = Gtk.Button.new_from_stock (Gtk.STOCK_OK);\n"
 "        this._actionArea.add (this._OKButton);\n"
 "\n"
 "        // Connect the button to the function that handles what it does\n"
@@ -7695,28 +10025,170 @@ msgid ""
 "let app = new DialogExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const DialogExample = new Lang.Class ({\n"
+"    Name: 'Dialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Gtk.Dialog Example\",\n"
+"                                                         default_height: 50,\n"
+"                                                         default_width: 250 });\n"
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Bind it to the function that creates the dialog\n"
+"        this._button.connect (\"clicked\", Lang.bind(this, this._createDialog));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _createDialog: function () {\n"
+"\n"
+"        // Create the dialog\n"
+"        this._dialog = new Gtk.Dialog ({ transient_for: this._window,\n"
+"                         modal: true,\n"
+"                         title: \"A Gtk+ dialog\" });\n"
+"\n"
+"        // Create the dialog's content area, which contains a message\n"
+"        this._contentArea = this._dialog.get_content_area();\n"
+"        this._message = new Gtk.Label ({label: \"This demonstrates a dialog with a label\"});\n"
+"        this._contentArea.add (this._message);\n"
+"\n"
+"        // Create the dialog's action area, which contains a stock OK button\n"
+"        this._actionArea = this._dialog.get_action_area();\n"
+"        this._OKButton = Gtk.Button.new_from_stock (Gtk.STOCK_OK);\n"
+"        this._actionArea.add (this._OKButton);\n"
+"\n"
+"        // Connect the button to the function that handles what it does\n"
+"        this._OKButton.connect (\"clicked\", Lang.bind (this, this._OKHandler));\n"
+"\n"
+"        this._dialog.show_all();\n"
+"    },\n"
+"\n"
+"    _OKHandler: function (dialog, response_id) {\n"
+"\n"
+"        // Destroy the dialog\n"
+"        this._dialog.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new DialogExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/dialog.js.page:31
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html";
-"\">Gtk.Dialog</link>"
-msgstr ""
+#: C/dialog.js.page:32
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html\";>Gtk.Dialog</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html\";>Gtk.Dialog</link>"
 
 #. (itstool) path: info/title
-#: C/dialog.py.page:7
+#: C/dialog.py.page:8
 msgctxt "text"
 msgid "Dialog (Python)"
-msgstr ""
+msgstr "Dialog (Python)"
 
 #. (itstool) path: page/p
-#: C/dialog.py.page:24
+#: C/dialog.py.page:25
 msgid "A dialog with the response signal connected to a callback function."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/dialog.py.page:31
+#: C/dialog.py.page:32
 #, no-wrap
+#| msgid ""
+#| "from gi.repository import Gtk\n"
+#| "import sys\n"
+#| "\n"
+#| "class MyWindow(Gtk.ApplicationWindow):\n"
+#| "    # a window\n"
+#| "    def __init__(self, app):\n"
+#| "        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
+#| "        self.set_default_size(300, 100)\n"
+#| "        self.set_border_width(10)\n"
+#| "\n"
+#| "        # a switch\n"
+#| "        switch = Gtk.Switch()\n"
+#| "        # turned on by default\n"
+#| "        switch.set_active(True)\n"
+#| "        # connect the signal notify::active emitted by the switch\n"
+#| "        # to the callback function activate_cb\n"
+#| "        switch.connect(\"notify::active\", self.activate_cb)\n"
+#| "\n"
+#| "        # a label\n"
+#| "        label = Gtk.Label()\n"
+#| "        label.set_text(\"Title\")\n"
+#| "\n"
+#| "        # a grid to allocate the widgets\n"
+#| "        grid = Gtk.Grid()\n"
+#| "        grid.set_column_spacing (10);\n"
+#| "        grid.attach (label, 0, 0, 1, 1);\n"
+#| "        grid.attach (switch, 1, 0, 1, 1);\n"
+#| "\n"
+#| "        # add the grid to the window\n"
+#| "        self.add(grid)\n"
+#| "\n"
+#| "    # Callback function. Since the signal is notify::active\n"
+#| "    # we need the argument 'active'\n"
+#| "    def activate_cb(self, button, active):\n"
+#| "        # if the button (i.e. the switch) is active, set the title\n"
+#| "        # of the window to \"Switch Example\"\n"
+#| "        if button.get_active():\n"
+#| "            self.set_title(\"Switch Example\")\n"
+#| "        # else, set it to \"\" (empty string)\n"
+#| "        else:\n"
+#| "            self.set_title(\"\")\n"
+#| "\n"
+#| "class MyApplication(Gtk.Application):\n"
+#| "    def __init__(self):\n"
+#| "        Gtk.Application.__init__(self)\n"
+#| "\n"
+#| "    def do_activate(self):\n"
+#| "        win = MyWindow(self)\n"
+#| "        win.show_all()\n"
+#| "\n"
+#| "    def do_startup(self):\n"
+#| "        Gtk.Application.do_startup(self)\n"
+#| "\n"
+#| "app = MyApplication()\n"
+#| "exit_status = app.run(sys.argv)\n"
+#| "sys.exit(exit_status)\n"
 msgid ""
 "from gi.repository import Gtk\n"
 "import sys\n"
@@ -7762,7 +10234,7 @@ msgid ""
 "        dialog.show_all()\n"
 "\n"
 "    def on_response(self, widget, response_id):\n"
-"        print \"response_id is\", response_id\n"
+"        print(\"response_id is\", response_id)\n"
 "        # destroy the widget (the dialog) when the function on_response() is called\n"
 "        # (that is, when the button of the dialog has been clicked)\n"
 "        widget.destroy()\n"
@@ -7784,61 +10256,119 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # construct a window (the parent window)\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a button on the parent window\n"
+"        button = Gtk.Button(\"Click me\")\n"
+"        # connect the signal \"clicked\" of the button with the function\n"
+"        # on_button_click()\n"
+"        button.connect(\"clicked\", self.on_button_click)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function for the signal \"clicked\" of the button in the parent\n"
+"    # window\n"
+"    def on_button_click(self, widget):\n"
+"        # create a Gtk.Dialog\n"
+"        dialog = Gtk.Dialog()\n"
+"        dialog.set_title(\"A Gtk+ Dialog\")\n"
+"        # The window defined in the constructor (self) is the parent of the dialog.\n"
+"        # Furthermore, the dialog is on top of the parent window\n"
+"        dialog.set_transient_for(self)\n"
+"        # set modal true: no interaction with other windows of the application\n"
+"        dialog.set_modal(True)\n"
+"        # add a button to the dialog window\n"
+"        dialog.add_button(button_text=\"OK\", response_id=Gtk.ResponseType.OK)\n"
+"        # connect the \"response\" signal (the button has been clicked) to the\n"
+"        # function on_response()\n"
+"        dialog.connect(\"response\", self.on_response)\n"
+"\n"
+"        # get the content area of the dialog, add a label to it\n"
+"        content_area = dialog.get_content_area()\n"
+"        label = Gtk.Label(\"This demonstrates a dialog with a label\")\n"
+"        content_area.add(label)\n"
+"        # show the dialog\n"
+"        dialog.show_all()\n"
+"\n"
+"    def on_response(self, widget, response_id):\n"
+"        print(\"response_id is\", response_id)\n"
+"        # destroy the widget (the dialog) when the function on_response() is called\n"
+"        # (that is, when the button of the dialog has been clicked)\n"
+"        widget.destroy()\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/dialog.py.page:36
+#: C/dialog.py.page:37
 msgid "Useful methods for a Dialog widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/dialog.py.page:37
+#: C/dialog.py.page:38
 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 "
+"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 ""
 
 #. (itstool) path: item/p
-#: C/dialog.py.page:39
+#: C/dialog.py.page:40
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/dialog.py.page:40
+#: C/dialog.py.page:41
 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(button_text=\"text\", response_id=Gtk.ResponseType."
-"RESPONSE)</code>, where <code>RESPONSE</code> could be one of <code>OK, "
-"CANCEL, CLOSE, YES, NO, APPLY, HELP</code>, which in turn correspond to the "
-"integers <code>-5, -6,..., -11</code>."
+"<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(button_text=\"text\", response_id=Gtk.ResponseType.RESPONSE)</code>, where "
+"<code>RESPONSE</code> could be one of <code>OK, CANCEL, CLOSE, YES, NO, APPLY, HELP</code>, which in turn "
+"correspond to the integers <code>-5, -6,..., -11</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/dialog.py.page:50 C/messagedialog.py.page:59
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkDialog.html";
-"\">GtkDialog</link>"
-msgstr ""
+#: C/dialog.py.page:51 C/messagedialog.py.page:60
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkDialog.html\";>GtkDialog</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkDialog.html\";>GtkDialog</link>"
 
 #. (itstool) path: info/title
-#: C/dialog.vala.page:7
+#: C/dialog.vala.page:8
 msgctxt "text"
 msgid "Dialog (Vala)"
-msgstr ""
+msgstr "Dialog (Vala)"
 
 #. (itstool) path: page/p
-#: C/dialog.vala.page:22
+#: C/dialog.vala.page:23
 msgid "A dialog with the response signal hooked up to a callback function."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/dialog.vala.page:24
+#: C/dialog.vala.page:25
 #, no-wrap
 msgid ""
 "\n"
@@ -7902,7 +10432,7 @@ msgid ""
 "/* This is the application. */\n"
 "public class MyApplication : Gtk.Application {\n"
 "\n"
-"\t/* The constructore of the application. */\n"
+"\t/* The constructor of the application. */\n"
 "\tinternal MyApplication () {\n"
 "\t\tObject (application_id: \"org.example.MyApplication\");\n"
 "\t}\n"
@@ -7920,102 +10450,140 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
-
-#. (itstool) path: item/p
-#: C/dialog.vala.page:31
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</"
-"link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</"
-"link>"
+"\n"
+"/* A window in the application. */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\n"
+"\t\t/* Connect the button's \"clicked\" signal to\n"
+"\t\t * the signal handler (aka. this.callback function).\n"
+"\t\t */\n"
+"\t\tbutton.clicked.connect (this.on_button_click);\n"
+"\n"
+"\t\t/* Add the button to this window and show it. */\n"
+"\t\tthis.add (button);\n"
+"\t\tbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the buttons 'clicked' signal. */\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\tvar dialog = new Gtk.Dialog.with_buttons (\"A Gtk+ Dialog\", this,\n"
+"                                                          Gtk.DialogFlags.MODAL,\n"
+"                                                          Gtk.Stock.OK,\n"
+"                                                          Gtk.ResponseType.OK, null);\n"
+"\n"
+"\t\tvar content_area = dialog.get_content_area ();\n"
+"\t\tvar label = new Gtk.Label (\"This demonstrates a dialog with a label\");\n"
+"\n"
+"\t\tcontent_area.add (label);\n"
+"\n"
+"\t\t/* Connect the 'response' signal of the dialog\n"
+"\t\t * the signal handler.  It is emitted when the dialog's\n"
+"\t\t * OK button is clicked.\n"
+"\t\t */\n"
+"\t\tdialog.response.connect (on_response);\n"
+"\n"
+"\t\t/* Show the dialog and all the widgets. */\n"
+"\t\tdialog.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'response' signal of the dialog. */\n"
+"        void on_response (Gtk.Dialog dialog, int response_id) {\n"
+"\n"
+"                /* To see the int value of the ResponseType. This is only\n"
+"\t\t * for demonstration purposes.*/\n"
+"                print (\"response is %d\\n\", response_id);\n"
+"\n"
+"\t\t/* This causes the dialog to be destroyed. */\n"
+"                dialog.destroy ();\n"
+"        }\n"
+"\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructor of the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a window for the this application and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/dialog.vala.page:32
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.";
-"html\">Gtk.Dialog.with_buttons</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.";
-"html\">Gtk.Dialog.with_buttons</link>"
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</link>"
 
 #. (itstool) path: item/p
-#: C/dialog.vala.page:33 C/label.vala.page:32
+#: C/dialog.vala.page:33
 msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</"
-"link>"
+"<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.html\";>Gtk.Dialog.with_buttons</link>"
 msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</"
-"link>"
+"<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.html\";>Gtk.Dialog.with_buttons</link>"
 
 #. (itstool) path: item/p
-#: C/dialog.vala.page:34
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html";
-"\">get_content_area</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html";
-"\">get_content_area</link>"
-
-#. (itstool) path: page/title
-#: C/documentation.page:19
-#, fuzzy
-msgid "Help develop"
-msgstr "Unterstützen Sie uns bei der Entwicklung"
+#: C/dialog.vala.page:34 C/label.vala.page:33
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</link>"
 
-#. (itstool) path: page/p
-#: C/documentation.page:20
-msgid ""
-"The <app>GNOME Developer Tutorials</app> are developed and maintained by a "
-"volunteer community. You are welcome to participate."
-msgstr ""
-
-#. (itstool) path: page/p
-#: C/documentation.page:23
-msgid ""
-"If you would like to <link href=\"https://live.gnome.org/";
-"DocumentationProject/Tasks/DeveloperDocs\">help develop <app>GNOME Developer "
-"Tutorials</app></link>, you can get in touch with the developers using <link "
-"href=\"https://cbe005.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fdocs";
-"\">irc</link>, or via our <link href=\"http://mail.gnome.org/mailman/";
-"listinfo/gnome-doc-devel-list\">mailing list</link>."
-msgstr ""
+#. (itstool) path: item/p
+#: C/dialog.vala.page:35
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html\";>get_content_area</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html\";>get_content_area</link>"
 
 #. (itstool) path: 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/entry.c.page:22 C/entry.js.page:21 C/entry.py.page:28
-#: C/entry.vala.page:21
+#: C/entry.c.page:23 C/entry.js.page:22 C/entry.py.page:29 C/entry.vala.page:22
 msgctxt "_"
 msgid "external ref='media/entry.png' md5='8a828cffdcbaa4bad83342e109f28cc8'"
 msgstr "external ref='media/entry.png' md5='8a828cffdcbaa4bad83342e109f28cc8'"
 
 #. (itstool) path: info/title
-#: C/entry.c.page:7
+#: C/entry.c.page:8
 msgctxt "text"
 msgid "Entry (C)"
 msgstr "Eintrag (C)"
 
 #. (itstool) path: info/desc
-#: C/entry.c.page:17 C/entry.py.page:24 C/entry.vala.page:17
+#: C/entry.c.page:18 C/entry.py.page:25 C/entry.vala.page:18
 msgid "A single line text entry field"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/entry.c.page:20 C/entry.js.page:20 C/entry.py.page:27
-#: C/entry.vala.page:20
+#: C/entry.c.page:21 C/entry.js.page:21 C/entry.py.page:28 C/entry.vala.page:21
 msgid "Entry"
 msgstr "Eintrag"
 
 #. (itstool) path: page/p
-#: C/entry.c.page:23 C/entry.vala.page:22
+#: C/entry.c.page:24 C/entry.vala.page:23
 msgid "This application greets you in the terminal."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/entry.c.page:25
+#: C/entry.c.page:26
 #, no-wrap
 msgid ""
 "\n"
@@ -8079,25 +10647,85 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will grab the \n"
+"text input from the entry box and print out a line to the user.*/\n"
+"static void\n"
+"on_activate (GtkEntry *entry,\n"
+"             gpointer  user_data)\n"
+"{\n"
+"  const char *name;\n"
+"  name = gtk_entry_get_text (entry);\n"
+"\n"
+"  g_print (\"\\nHello %s!\\n\\n\", name);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *entry_box;\n"
+"\n"
+"  /*Create a window with a title, a default size, \n"
+"  and a set border width*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"What is your name?\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Create a new entry box, and add it to the window*/\n"
+"  entry_box = gtk_entry_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), entry_box);\n"
+"\n"
+"  /*Connecting the activate signal to the callback*/\n"
+"  g_signal_connect (GTK_ENTRY (entry_box), \"activate\", \n"
+"                    G_CALLBACK (on_activate), NULL);\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"
 
 #. (itstool) path: info/title
-#: C/entry.js.page:7
+#: C/entry.js.page:8
 msgctxt "text"
 msgid "Entry (JavaScript)"
 msgstr "Eintrag (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/entry.js.page:17
+#: C/entry.js.page:18
 msgid "A single-line text entry field"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/entry.js.page:22
+#: C/entry.js.page:23
 msgid "This application greets you by name through a pop-up window."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/entry.js.page:24
+#: C/entry.js.page:25
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -8187,37 +10815,124 @@ msgid ""
 "let app = new EntryExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const EntryExample = new Lang.Class({\n"
+"    Name: 'Entry Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsentry',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"What is your name?\"});\n"
+"\n"
+"        // Create the text entry box\n"
+"        this.entry = new Gtk.Entry ();\n"
+"        this._window.add(this.entry);\n"
+"\n"
+"        // Connect the text entry box to a function that responds to what you type in\n"
+"        this.entry.connect(\"activate\", Lang.bind (this, this._hello));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _hello: function() {\n"
+"\n"
+"        // Create a popup dialog to greet the person who types in their name\n"
+"        this._greeter = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            text: \"Hello, \" + this.entry.get_text() + \"!\",\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"        });\n"
+"\n"
+"        // Show the popup dialog\n"
+"        this._greeter.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._greeter.connect (\"response\", Lang.bind(this, this._okClicked));\n"
+"    },\n"
+"\n"
+"    _okClicked: function () {\n"
+"        this._greeter.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new EntryExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/entry.js.page:31
-msgid ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
-"\">Gtk.Entry</link>"
-msgstr ""
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
-"\">Gtk.Entry</link>"
+#: C/entry.js.page:32
+msgid "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html\";>Gtk.Entry</link>"
+msgstr "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html\";>Gtk.Entry</link>"
 
 #. (itstool) path: info/title
-#: C/entry.py.page:7
+#: C/entry.py.page:8
 msgctxt "text"
 msgid "Entry (Python)"
 msgstr "Eintrag (Python)"
 
 #. (itstool) path: credit/name
-#: C/entry.py.page:20 C/label.py.page:20 C/model-view-controller.py.page:15
-#: C/properties.py.page:15 C/signals-callbacks.py.page:15 C/strings.py.page:15
-#: C/textview.py.page:15 C/toolbar_builder.py.page:27
+#: C/entry.py.page:21 C/label.py.page:22 C/model-view-controller.py.page:16 C/properties.py.page:16
+#: C/signals-callbacks.py.page:16 C/strings.py.page:16 C/textview.py.page:16 C/toolbar_builder.py.page:28
 msgid "Sebastian Pölsterl"
 msgstr "Sebastian Pölsterl"
 
+#. (itstool) path: credit/years
+#: C/entry.py.page:23 C/index.page:20 C/model-view-controller.py.page:18 C/properties.py.page:18
+#: C/signals-callbacks.py.page:18 C/strings.py.page:18 C/textview.py.page:18 C/toolbar_builder.py.page:30
+msgid "2011"
+msgstr "2011"
+
 #. (itstool) path: page/p
-#: C/entry.py.page:29
+#: C/entry.py.page:30
 msgid "This application greets you in the terminal with the name you provide."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/entry.py.page:35
-#, fuzzy, no-wrap
+#: C/entry.py.page:36
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -8283,7 +10998,7 @@ msgid ""
 "        # retrieve the content of the widget\n"
 "        name = entry.get_text()\n"
 "        # print it in a nice form in the terminal\n"
-"        print \"Hello \" + name + \"!\"\n"
+"        print(\"Hello \" + name + \"!\")\n"
 "\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
@@ -8305,28 +11020,33 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
+"        Gtk.Window.__init__(self, title=\"What is your name?\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"        # a single line entry\n"
+"        name_box = Gtk.Entry()\n"
+"        # emits a signal when the Enter key is pressed, connected to the\n"
+"        # callback function cb_activate\n"
+"        name_box.connect(\"activate\", self.cb_activate)\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
-"        image = Gtk.Image()\n"
-"        image.set_from_file(\"gnome-image.png\")\n"
+"        # add the Gtk.Entry to the window\n"
+"        self.add(name_box)\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
+"    # the content of the entry is used to write in the terminal\n"
+"    def cb_activate(self, entry):\n"
+"        # retrieve the content of the widget\n"
+"        name = entry.get_text()\n"
+"        # print it in a nice form in the terminal\n"
+"        print(\"Hello \" + name + \"!\")\n"
 "\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -8342,169 +11062,142 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/entry.py.page:39
+#: C/entry.py.page:40
 msgid "Useful methods for an Entry widget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/entry.py.page:40
-msgid ""
-"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 ""
-
-#. (itstool) path: item/p
-#: C/entry.py.page:42
+#: C/entry.py.page:41
 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."
+"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 activatable icon); <code>\"icon-release\"</code> (emitted on the button release from a 
mouse "
+"click over an activatable 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 ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:43
 msgid ""
-"<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
-"to get and set the content for the entry."
+"<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 ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:44
-msgid "<code>get_text_length()</code> is self-explanatory."
+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 ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:45
-msgid ""
-"<code>get_text_area()</code> gets the area where the entry's text is drawn."
+msgid "<code>get_text_length()</code> is self-explanatory."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:46
-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 "
-"font, but it can be changed with <code>set_invisible_char(ch)</code>, where "
-"<code>ch</code> is a Unicode charcater. The latter method is reversed by "
-"<code>unset_invisbile_char()</code>."
+msgid "<code>get_text_area()</code> gets the area where the entry's text is drawn."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:47
 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."
+"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 font, but it can be changed with <code>set_invisible_char(ch)</code>, 
where "
+"<code>ch</code> is a Unicode charcater. The latter method is reversed by 
<code>unset_invisbile_char()</code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:48
 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 "
-"the window (set using <code>set_default(widget)</code> on the window), then "
-"use <code>set_activates_default(True)</code>."
+"<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 ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:49
-msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
+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 the window (set using <code>set_default(widget)</code> on the window), 
then use "
+"<code>set_activates_default(True)</code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:50
-msgid ""
-"<code>set_placeholder_text(\"some text\")</code> sets the text to be "
-"displayed in the entry when it is empty and unfocused."
+msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:51
 msgid ""
-"<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
-"code> are self-explanatory."
+"<code>set_placeholder_text(\"some text\")</code> sets the text to be displayed in the entry when it is 
empty and "
+"unfocused."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:52
-msgid ""
-"If we have <code>set_editable(False)</code> the user cannot edit the text in "
-"the widget."
+msgid "<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</code> are 
self-explanatory."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:53
-msgid ""
-"<code>set_completion(completion)</code>, where <code>completion</code> is a "
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntryCompletion.html";
-"\"><code>Gtk.EntryCompletion</code></link>, sets completion - or disables it "
-"if <code>completion</code> is <code>None</code>."
+msgid "If we have <code>set_editable(False)</code> the user cannot edit the text in the widget."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:54
 msgid ""
-"An Entry widget can display progress or activity information behind the "
-"text. We use <code>set_progress_fraction(fraction)</code>, where "
-"<code>fraction</code> is a <code>float</code> between <code>0.0</code> and "
-"<code>1.0</code> inclusive, to fill in the given fraction of the bar. We use "
-"<code>set_progress_pulse_step()</code> to set the fraction of total entry "
-"width to move the progress bouncing block for each call to "
-"<code>progress_pulse()</code>. The latter method indicates that some "
-"progress is made, and causes the progress indicator of the entry to enter "
-"\"activity mode\", where a block bounces back and forth. Each call to "
-"<code>progress_pulse()</code> causes the block to move by a little bit (the "
-"amount of movement per pulse is determined, as said before, by "
-"<code>set_progress_pulse_step()</code>)."
+"<code>set_completion(completion)</code>, where <code>completion</code> is a <link 
href=\"http://developer.gnome.";
+"org/gtk3/unstable/GtkEntryCompletion.html\"><code>Gtk.EntryCompletion</code></link>, sets completion - or 
disables "
+"it if <code>completion</code> is <code>None</code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/entry.py.page:55
 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 "
-"icon, use <code>set_icon_from_stock(icon_position, stock_id)</code>, or one "
-"of <code>set_icon_from_pixbuf(icon_position, pixbuf)</code>, "
-"<code>set_icon_from_icon_name(icon_position, icon_name)</code>, where "
-"<code>icon_position</code> is one of <code>Gtk.EntryIconPosition.PRIMARY</"
-"code> (to set the icon at the beginning of the entry) <code>Gtk."
-"EntryIconPosition.SECONDARY</code> (to set the icon at the end of the "
-"entry). To set a tooltip on an icon, use "
-"<code>set_icon_tooltip_text(\"tooltip text\")</code> or "
-"<code>set_icon_tooltip_markup(\"tooltip text in Pango markup language\")</"
-"code>."
+"An Entry widget can display progress or activity information behind the text. We use "
+"<code>set_progress_fraction(fraction)</code>, where <code>fraction</code> is a <code>float</code> between "
+"<code>0.0</code> and <code>1.0</code> inclusive, to fill in the given fraction of the bar. We use "
+"<code>set_progress_pulse_step()</code> to set the fraction of total entry width to move the progress 
bouncing "
+"block for each call to <code>progress_pulse()</code>. The latter method indicates that some progress is 
made, and "
+"causes the progress indicator of the entry to enter \"activity mode\", where a block bounces back and 
forth. Each "
+"call to <code>progress_pulse()</code> causes the block to move by a little bit (the amount of movement per 
pulse "
+"is determined, as said before, by <code>set_progress_pulse_step()</code>)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/entry.py.page:63
+#: C/entry.py.page:56
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntry.html";
-"\">GtkEntry</link>"
+"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 icon, use <code>set_icon_from_stock(icon_position, stock_id)</code>, or one of 
"
+"<code>set_icon_from_pixbuf(icon_position, pixbuf)</code>, <code>set_icon_from_icon_name(icon_position, 
icon_name)</"
+"code>, where <code>icon_position</code> is one of <code>Gtk.EntryIconPosition.PRIMARY</code> (to set the 
icon at "
+"the beginning of the entry) <code>Gtk.EntryIconPosition.SECONDARY</code> (to set the icon at the end of the 
"
+"entry). To set a tooltip on an icon, use <code>set_icon_tooltip_text(\"tooltip text\")</code> or "
+"<code>set_icon_tooltip_markup(\"tooltip text in Pango markup language\")</code>."
 msgstr ""
 
+#. (itstool) path: item/p
+#: C/entry.py.page:64
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntry.html\";>GtkEntry</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntry.html\";>GtkEntry</link>"
+
 #. (itstool) path: info/title
-#: C/entry.vala.page:7
+#: C/entry.vala.page:8
 msgctxt "text"
 msgid "Entry (Vala)"
-msgstr ""
+msgstr "Eintrag (Vala)"
 
 #. (itstool) path: page/code
-#: C/entry.vala.page:24
+#: C/entry.vala.page:25
 #, no-wrap
 msgid ""
 "/* A window in the application. */\n"
@@ -8554,151 +11247,183 @@ msgid ""
 "\n"
 "}\n"
 "\n"
-"/* The main function creats and runs the application. */\n"
+"/* The main function creates and runs the application. */\n"
 "int main (string[] args) {\n"
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* A window in the application. */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"What is your name?\");\n"
+"\n"
+"\t\tvar name_box = new Gtk.Entry ();\n"
+"\n"
+"\t\t/* Connect to the signal handler. */\n"
+"\t\tname_box.activate.connect (this.on_activate);\n"
+"\t\tname_box.show ();\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\t/* Add the name_box to this window. */\n"
+"\t\tthis.add (name_box);\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler (aka. callback function) for the 'activate'\n"
+"\t * signal of a Gtk.Entry.\n"
+"\t */\n"
+"\tvoid on_activate (Gtk.Entry entry) {\n"
+"\t\tname = entry.get_text ();\n"
+"\t\tprint (\"\\nHello \" + name + \"!\\n\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor for the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application\n"
+"\t\t * and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* The main function creates and runs the application. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/entry.vala.page:29
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Entry.html\";>Gtk.Entry</"
-"link>"
-msgstr ""
+#: C/entry.vala.page:30
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Entry.html\";>Gtk.Entry</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Entry.html\";>Gtk.Entry</link>"
 
 #. (itstool) path: 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/filechooserdialog.py.page:25
+#: C/filechooserdialog.py.page:26
 msgctxt "_"
-msgid ""
-"external ref='media/filechooserdialog_save.png' "
-"md5='3a7a3b71b9d3a36066857843b68ff27f'"
-msgstr ""
-"external ref='media/filechooserdialog_save.png' "
-"md5='3a7a3b71b9d3a36066857843b68ff27f'"
+msgid "external ref='media/filechooserdialog_save.png' md5='3a7a3b71b9d3a36066857843b68ff27f'"
+msgstr "external ref='media/filechooserdialog_save.png' md5='3a7a3b71b9d3a36066857843b68ff27f'"
 
 #. (itstool) path: 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/filechooserdialog.py.page:27
+#: C/filechooserdialog.py.page:28
 msgctxt "_"
-msgid ""
-"external ref='media/filechooserdialog_menu.png' "
-"md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
-msgstr ""
-"external ref='media/filechooserdialog_menu.png' "
-"md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
+msgid "external ref='media/filechooserdialog_menu.png' md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
+msgstr "external ref='media/filechooserdialog_menu.png' md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
 
 #. (itstool) path: info/title
-#: C/filechooserdialog.py.page:7
+#: C/filechooserdialog.py.page:8
 msgctxt "text"
 msgid "FileChooserDialog (Python)"
-msgstr ""
+msgstr "FileChooserDialog (Python)"
 
 #. (itstool) path: info/desc
-#: C/filechooserdialog.py.page:21
+#: C/filechooserdialog.py.page:22
 msgid "A dialog suitable for \"Open\" and \"Save\" commands"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/filechooserdialog.py.page:24 C/filechooserdialog.vala.page:23
+#: C/filechooserdialog.py.page:25 C/filechooserdialog.vala.page:24
 msgid "FileChooserDialog"
-msgstr ""
+msgstr "FileChooserDialog"
 
 #. (itstool) path: page/p
-#: C/filechooserdialog.py.page:26
+#: C/filechooserdialog.py.page:27
 msgid ""
-"This FileChooserDialog saves a text document, which can be opened or written "
-"from scratch in a TextView (see below)."
+"This FileChooserDialog saves a text document, which can be opened or written from scratch in a TextView 
(see "
+"below)."
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/filechooserdialog.py.page:28
+#: C/filechooserdialog.py.page:29
 msgid "It is also possible to call a FileChooserDialog to open a new document."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.py.page:33
+#: C/filechooserdialog.py.page:34
 msgid "Steps to recreate the example"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:35
-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 ""
-
-#. (itstool) path: item/p
 #: C/filechooserdialog.py.page:36
 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>."
+"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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:37
 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."
+"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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:38
 msgid ""
-"\"New\" and \"Quit\" actions and callback functions are quite "
-"straightforward, see <link xref=\"#code\"/>. See <link xref=\"signals-"
-"callbacks.py\"/> for a more detailed explanation of signals and callback "
-"functions."
+"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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:39
 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."
+"\"New\" and \"Quit\" actions and callback functions are quite straightforward, see <link xref=\"#code\"/>. 
See "
+"<link xref=\"signals-callbacks.py\"/> for a more detailed explanation of signals and callback functions."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:40
 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>."
+"\"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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:41
 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 "
-"is the case \"Save as\"; and to the case where the file is not <code>None</"
-"code>, which in turn is reduced to <code>save_to_file()</code>."
+"\"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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:42
 msgid ""
-"Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
-"lines 146 - 175."
+"\"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 is the case \"Save as\"; and to the case where the file is not 
<code>None</"
+"code>, which in turn is reduced to <code>save_to_file()</code>."
+msgstr ""
+
+#. (itstool) path: item/p
+#: C/filechooserdialog.py.page:43
+msgid "Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, lines 146 - 175."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.py.page:47
+#: C/filechooserdialog.py.page:48
 msgid "XML file which creates the app-menu"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/filechooserdialog.py.page:48 C/filechooserdialog.vala.page:29
+#: C/filechooserdialog.py.page:49 C/filechooserdialog.vala.page:30
 #, no-wrap
 msgid ""
 "&lt;?xml version=\"1.0\"?&gt;\n"
@@ -8733,9 +11458,40 @@ msgid ""
 "  &lt;/menu&gt;\n"
 "&lt;/interface&gt;\n"
 msgstr ""
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Open&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.open&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save As...&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save-as&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
 
 #. (itstool) path: section/code
-#: C/filechooserdialog.py.page:53
+#: C/filechooserdialog.py.page:54
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -8790,7 +11546,7 @@ msgid ""
 "    # callback for new\n"
 "    def new_callback(self, action, parameter):\n"
 "        self.buffer.set_text(\"\")\n"
-"        print \"New file created\"\n"
+"        print(\"New file created\")\n"
 "\n"
 "    # callback for open\n"
 "    def open_callback(self, action, parameter):\n"
@@ -8828,13 +11584,13 @@ msgid ""
 "                # file has been modified from the version on the file system)\n"
 "                [success, content, etags] = self.file.load_contents(None)\n"
 "            except GObject.GError as e:\n"
-"                print \"Error: \" + e.message\n"
+"                print(\"Error: \" + e.message)\n"
 "            # set the content as the text into the buffer\n"
 "            self.buffer.set_text(content, len(content))\n"
-"            print \"opened: \" + open_dialog.get_filename()\n"
+"            print(\"opened: \" + open_dialog.get_filename())\n"
 "        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
 "        elif response_id == Gtk.ResponseType.CANCEL:\n"
-"            print \"cancelled: FileChooserAction.OPEN\"\n"
+"            print(\"cancelled: FileChooserAction.OPEN\")\n"
 "        # destroy the FileChooserDialog\n"
 "        dialog.destroy()\n"
 "\n"
@@ -8858,7 +11614,7 @@ msgid ""
 "                # set self.file as the current filename for the file chooser\n"
 "                save_dialog.set_file(self.file)\n"
 "            except GObject.GError as e:\n"
-"                print \"Error: \" + e.message\n"
+"                print(\"Error: \" + e.message)\n"
 "        # connect the dialog to the callback function save_response_cb()\n"
 "        save_dialog.connect(\"response\", self.save_response_cb)\n"
 "        # show the dialog\n"
@@ -8875,7 +11631,7 @@ msgid ""
 "            self.save_to_file()\n"
 "        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
 "        elif response_id == Gtk.ResponseType.CANCEL:\n"
-"            print \"cancelled: FileChooserAction.SAVE\"\n"
+"            print(\"cancelled: FileChooserAction.SAVE\")\n"
 "        # destroy the FileChooserDialog\n"
 "        dialog.destroy()\n"
 "\n"
@@ -8904,9 +11660,9 @@ msgid ""
 "                                           False,\n"
 "                                           Gio.FileCreateFlags.NONE,\n"
 "                                           None)\n"
-"                print \"saved: \" + self.file.get_path()\n"
+"                print(\"saved: \" + self.file.get_path())\n"
 "            except GObject.GError as e:\n"
-"                print \"Error: \" + e.message\n"
+"                print(\"Error: \" + e.message)\n"
 "        # if the contents are empty\n"
 "        else:\n"
 "            # create (if the file does not exist) or overwrite the file in readwrite mode.\n"
@@ -8916,9 +11672,9 @@ msgid ""
 "                                            False,\n"
 "                                            Gio.FileCreateFlags.NONE,\n"
 "                                            None)\n"
-"                print \"saved: \" + self.file.get_path()\n"
+"                print(\"saved: \" + self.file.get_path())\n"
 "            except GObject.GError as e:\n"
-"                print \"Error: \" + e.message\n"
+"                print(\"Error: \" + e.message)\n"
 "\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
@@ -8943,7 +11699,7 @@ msgid ""
 "        try:\n"
 "            builder.add_from_file(\"filechooserdialog.ui\")\n"
 "        except:\n"
-"            print \"file not found\"\n"
+"            print(\"file not found\")\n"
 "            sys.exit()\n"
 "        menu = builder.get_object(\"appmenu\")\n"
 "        self.set_app_menu(menu)\n"
@@ -8956,174 +11712,349 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"from gi.repository import GObject\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(\n"
+"            self, title=\"FileChooserDialog Example\", application=app)\n"
+"        self.set_default_size(400, 400)\n"
+"\n"
+"        # the actions for the window menu, connected to the callback functions\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        self.add_action(open_action)\n"
+"\n"
+"        save_action = Gio.SimpleAction.new(\"save\", None)\n"
+"        save_action.connect(\"activate\", self.save_callback)\n"
+"        self.add_action(save_action)\n"
+"\n"
+"        save_as_action = Gio.SimpleAction.new(\"save-as\", None)\n"
+"        save_as_action.connect(\"activate\", self.save_as_callback)\n"
+"        self.add_action(save_as_action)\n"
+"\n"
+"        # the file\n"
+"        self.file = None\n"
+"\n"
+"        # the textview with the buffer\n"
+"        self.buffer = Gtk.TextBuffer()\n"
+"        textview = Gtk.TextView(buffer=self.buffer)\n"
+"        textview.set_wrap_mode(Gtk.WrapMode.WORD)\n"
+"\n"
+"        # a scrolled window for the textview\n"
+"        self.scrolled_window = Gtk.ScrolledWindow()\n"
+"        self.scrolled_window.set_policy(\n"
+"            Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)\n"
+"        self.scrolled_window.add(textview)\n"
+"        self.scrolled_window.set_border_width(5)\n"
+"\n"
+"        # add the scrolled window to the window\n"
+"        self.add(self.scrolled_window)\n"
+"\n"
+"    # callback for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        self.buffer.set_text(\"\")\n"
+"        print(\"New file created\")\n"
+"\n"
+"    # callback for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to open:\n"
+"        # the arguments are: title of the window, parent_window, action,\n"
+"        # (buttons, response)\n"
+"        open_dialog = Gtk.FileChooserDialog(\"Pick a file\", self,\n"
+"                                            Gtk.FileChooserAction.OPEN,\n"
+"                                           (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,\n"
+"                                            Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT))\n"
+"\n"
+"        # not only local files can be selected in the file selector\n"
+"        open_dialog.set_local_only(False)\n"
+"        # dialog always on top of the textview window\n"
+"        open_dialog.set_modal(True)\n"
+"        # connect the dialog with the callback function open_response_cb()\n"
+"        open_dialog.connect(\"response\", self.open_response_cb)\n"
+"        # show the dialog\n"
+"        open_dialog.show()\n"
+"\n"
+"    # callback function for the dialog open_dialog\n"
+"    def open_response_cb(self, dialog, response_id):\n"
+"        open_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Open\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the file that we get from the FileChooserDialog\n"
+"            self.file = open_dialog.get_file()\n"
+"            # an empty string (provisionally)\n"
+"            content = \"\"\n"
+"            try:\n"
+"                # load the content of the file into memory:\n"
+"                # success is a boolean depending on the success of the operation\n"
+"                # content is self-explanatory\n"
+"                # etags is an entity tag (can be used to quickly determine if the\n"
+"                # file has been modified from the version on the file system)\n"
+"                [success, content, etags] = self.file.load_contents(None)\n"
+"            except GObject.GError as e:\n"
+"                print(\"Error: \" + e.message)\n"
+"            # set the content as the text into the buffer\n"
+"            self.buffer.set_text(content, len(content))\n"
+"            print(\"opened: \" + open_dialog.get_filename())\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print(\"cancelled: FileChooserAction.OPEN\")\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"\n"
+"    # callback function for save_as\n"
+"    def save_as_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to save:\n"
+"        # the arguments are: title of the window, parent_window, action,\n"
+"        # (buttons, response)\n"
+"        save_dialog = Gtk.FileChooserDialog(\"Pick a file\", self,\n"
+"                                            Gtk.FileChooserAction.SAVE,\n"
+"                                           (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,\n"
+"                                            Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT))\n"
+"        # the dialog will present a confirmation dialog if the user types a file name that\n"
+"        # already exists\n"
+"        save_dialog.set_do_overwrite_confirmation(True)\n"
+"        # dialog always on top of the textview window\n"
+"        save_dialog.set_modal(True)\n"
+"        # if self.file has already been saved\n"
+"        if self.file is not None:\n"
+"            try:\n"
+"                # set self.file as the current filename for the file chooser\n"
+"                save_dialog.set_file(self.file)\n"
+"            except GObject.GError as e:\n"
+"                print(\"Error: \" + e.message)\n"
+"        # connect the dialog to the callback function save_response_cb()\n"
+"        save_dialog.connect(\"response\", self.save_response_cb)\n"
+"        # show the dialog\n"
+"        save_dialog.show()\n"
+"\n"
+"    # callback function for the dialog save_dialog\n"
+"    def save_response_cb(self, dialog, response_id):\n"
+"        save_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Save\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the currently selected file\n"
+"            self.file = save_dialog.get_file()\n"
+"            # save to file (see below)\n"
+"            self.save_to_file()\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print(\"cancelled: FileChooserAction.SAVE\")\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"\n"
+"    # callback function for save\n"
+"    def save_callback(self, action, parameter):\n"
+"        # if self.file is not already there\n"
+"        if self.file is not None:\n"
+"            self.save_to_file()\n"
+"        # self.file is a new file\n"
+"        else:\n"
+"            # use save_as\n"
+"            self.save_as_callback(action, parameter)\n"
+"\n"
+"    # save_to_file\n"
+"    def save_to_file(self):\n"
+"        # get the content of the buffer, without hidden characters\n"
+"        [start, end] = self.buffer.get_bounds()\n"
+"        current_contents = self.buffer.get_text(start, end, False)\n"
+"        # if there is some content\n"
+"        if current_contents != \"\":\n"
+"            # set the content as content of self.file.\n"
+"            # arguments: contents, etags, make_backup, flags, GError\n"
+"            try:\n"
+"                self.file.replace_contents(current_contents,\n"
+"                                           None,\n"
+"                                           False,\n"
+"                                           Gio.FileCreateFlags.NONE,\n"
+"                                           None)\n"
+"                print(\"saved: \" + self.file.get_path())\n"
+"            except GObject.GError as e:\n"
+"                print(\"Error: \" + e.message)\n"
+"        # if the contents are empty\n"
+"        else:\n"
+"            # create (if the file does not exist) or overwrite the file in readwrite mode.\n"
+"            # arguments: etags, make_backup, flags, GError\n"
+"            try:\n"
+"                self.file.replace_readwrite(None,\n"
+"                                            False,\n"
+"                                            Gio.FileCreateFlags.NONE,\n"
+"                                            None)\n"
+"                print(\"saved: \" + self.file.get_path())\n"
+"            except GObject.GError as e:\n"
+"                print(\"Error: \" + e.message)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # app action quit, connected to the callback function\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"        # get the menu from the ui file with a builder\n"
+"        builder = Gtk.Builder()\n"
+"        try:\n"
+"            builder.add_from_file(\"filechooserdialog.ui\")\n"
+"        except:\n"
+"            print(\"file not found\")\n"
+"            sys.exit()\n"
+"        menu = builder.get_object(\"appmenu\")\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"    # callback function for quit\n"
+"    def quit_callback(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.py.page:57
+#: C/filechooserdialog.py.page:58
 msgid "Useful methods for a FileChooserDialog"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/filechooserdialog.py.page:58
+#: C/filechooserdialog.py.page:59
 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 "
-"user pick an existing file) <code>Gtk.FileChooserAction.SAVE</code> (the "
-"file chooser will let the user pick an existing file, or type in a new "
-"filename), <code>Gtk.FileChooserAction.SELECT_FOLDER</code> (the file "
-"chooser will let the user pick an existing folder), <code>Gtk."
-"FileChooserAction.CREATE_FOLDER</code> (the file chooser will let the user "
-"name an existing or new folder)."
+"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 user pick an existing file) <code>Gtk.FileChooserAction.SAVE</code> 
(the file "
+"chooser will let the user pick an existing file, or type in a new filename), <code>Gtk.FileChooserAction."
+"SELECT_FOLDER</code> (the file chooser will let the user pick an existing folder), 
<code>Gtk.FileChooserAction."
+"CREATE_FOLDER</code> (the file chooser will let the user name an existing or new folder)."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/filechooserdialog.py.page:59
+#: C/filechooserdialog.py.page:60
 msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:61
-msgid ""
-"<code>set_show_hidden(True)</code> is used to display hidden files and "
-"folders."
-msgstr ""
-
-#. (itstool) path: item/p
 #: C/filechooserdialog.py.page:62
-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>."
+msgid "<code>set_show_hidden(True)</code> is used to display hidden files and folders."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:63
 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; "
-"<code>current_name</code> can be something like <em>Untitled.txt</em>. This "
-"method should not be used except in a \"Save as\" dialog."
+"<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 ""
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:64
 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 "
-"method and cause the file chooser to show a specific folder only when you "
-"are doing a \"Save as\" command and you already have a file saved somewhere."
+"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; <code>current_name</code> can be something like <em>Untitled.txt</em>. 
This "
+"method should not be used except in a \"Save as\" dialog."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:72
+#: C/filechooserdialog.py.page:65
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html";
-"\">GtkFileChooserDialog</link>"
+"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 method and cause the file chooser to show a specific folder only when 
you are "
+"doing a \"Save as\" command and you already have a file saved somewhere."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html";
-"\">GtkFileChooserDialog</link>"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:73
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html";
-"\">GtkFileChooser</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html";
-"\">GtkFileChooser</link>"
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html\";>GtkFileChooserDialog</link>"
+msgstr "<link 
href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html\";>GtkFileChooserDialog</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:74 C/image.c.page:33 C/label.c.page:37
-#: C/menubar.c.page:37 C/scrolledwindow.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html";
-"\">GtkWindow</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html";
-"\">GtkWindow</link>"
+#: C/filechooserdialog.py.page:74
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html\";>GtkFileChooser</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html\";>GtkFileChooser</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:75 C/textview.c.page:38
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html";
-"\">GtkTextView</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html";
-"\">GtkTextView</link>"
+#: C/filechooserdialog.py.page:75 C/image.c.page:34 C/label.c.page:38 C/menubar.c.page:38 
C/scrolledwindow.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html\";>GtkWindow</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html\";>GtkWindow</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:76 C/textview.c.page:37
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html";
-"\">GtkTextBuffer</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html";
-"\">GtkTextBuffer</link>"
+#: C/filechooserdialog.py.page:76 C/textview.c.page:39
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html\";>GtkTextView</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html\";>GtkTextView</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:77 C/scrolledwindow.c.page:35
-#: C/textview.c.page:39
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html";
-"\">GtkScrolledWindow</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html";
-"\">GtkScrolledWindow</link>"
+#: C/filechooserdialog.py.page:77 C/textview.c.page:38
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html\";>GtkTextBuffer</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html\";>GtkTextBuffer</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:78
-msgid ""
-"<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
+#: C/filechooserdialog.py.page:78 C/scrolledwindow.c.page:36 C/textview.c.page:40
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html\";>GtkScrolledWindow</link>"
+msgstr "<link 
href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html\";>GtkScrolledWindow</link>"
 
 #. (itstool) path: item/p
-#: C/filechooserdialog.py.page:80
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html";
-"\">GtkBuilder</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html";
-"\">GtkBuilder</link>"
+#: C/filechooserdialog.py.page:79
+msgid "<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
+msgstr "<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
+
+#. (itstool) path: item/p
+#: C/filechooserdialog.py.page:81
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html\";>GtkBuilder</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html\";>GtkBuilder</link>"
 
 #. (itstool) path: info/title
-#: C/filechooserdialog.vala.page:7
+#: C/filechooserdialog.vala.page:8
 msgctxt "text"
 msgid "FileChooserDialog (Vala)"
-msgstr ""
+msgstr "FileChooserDialog (Vala)"
 
 #. (itstool) path: info/desc
-#: C/filechooserdialog.vala.page:20
+#: C/filechooserdialog.vala.page:21
 msgid "A dialog suitable for \"Open\" and \"Save\" commands."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.vala.page:25
+#: C/filechooserdialog.vala.page:26
 msgid "Overview of the example"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/filechooserdialog.vala.page:26
+#: C/filechooserdialog.vala.page:27
 msgid ""
-"This example demonstrates how the FileChooserDialog can be used. It is "
-"incorporated into a very simple text editor application. All the <link xref="
-"\"menubar.vala#win-app\">actions</link>, including the \"open\", \"save\" "
-"and \"save-as\" commands can be found in the <link xref=\"gmenu.vala\">app-"
-"menu</link>. Here, the app-menu is created using an XML UI file, which is "
-"then imported into the application using Gtk.Builder."
+"This example demonstrates how the FileChooserDialog can be used. It is incorporated into a very simple text 
editor "
+"application. All the <link xref=\"menubar.vala#win-app\">actions</link>, including the \"open\", \"save\" 
and "
+"\"save-as\" commands can be found in the <link xref=\"gmenu.vala\">app-menu</link>. Here, the app-menu is 
created "
+"using an XML UI file, which is then imported into the application using Gtk.Builder."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.vala.page:28
+#: C/filechooserdialog.vala.page:29
 msgid "XML UI file which creates the app-menu"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.vala.page:31
+#: C/filechooserdialog.vala.page:32
 msgid "Vala Code"
 msgstr "Vala-code"
 
 #. (itstool) path: section/code
-#: C/filechooserdialog.vala.page:32
+#: C/filechooserdialog.vala.page:33
 #, no-wrap
 msgid ""
 "class MyWindow: Gtk.ApplicationWindow {\n"
@@ -9323,93 +12254,264 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"class MyWindow: Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* MyWindow instance variables. */\n"
+"\tGLib.File? file;\n"
+"\tGtk.TextBuffer buffer;\n"
+"\tGtk.TextView textview;\n"
+"\tGtk.ScrolledWindow scrolled_window;\n"
+"\n"
+"\t/* Create ActionEntries. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"new\", new_cb },\n"
+"\t\t{ \"open\", open_cb },\n"
+"\t\t{ \"save\", save_cb },\n"
+"\t\t{ \"save-as\", save_as_cb }\n"
+"\t};\n"
+"\n"
+"\t/* Constructor creates MyWindow, and add the scrolled_window. */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"FileChooserDialog Example\");\n"
+"\t\tthis.set_default_size (400, 400);\n"
+"\n"
+"\t\t/* Add the ActionEntries to MyWindow. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\tbuffer = new Gtk.TextBuffer (null); //stores text to be displayed\n"
+"\t\ttextview = new Gtk.TextView.with_buffer (buffer); //displays TextBuffer\n"
+"\t\ttextview.set_wrap_mode (Gtk.WrapMode.WORD); //sets line wrapping\n"
+"\n"
+"\t\tscrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,\n"
+"\t\t                            Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\tscrolled_window.add (textview);\n"
+"\t\tscrolled_window.set_border_width (5);\n"
+"\n"
+"        this.add (scrolled_window);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid new_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tfile = null;\n"
+"\t\tbuffer.set_text (\"\");\n"
+"\t\tprint (\"New file created\\n\");\n"
+"\t}\n"
+"\n"
+"\t/* Create FileChooserDialog in OPEN mode. */\n"
+"\tvoid open_cb (SimpleAction action, Variant? parameter) {\n"
+"\n"
+"\t\tvar open_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.OPEN,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.OPEN,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\topen_dialog.local_only = false; //allow for uri\n"
+"\t\topen_dialog.set_modal (true);\n"
+"\t\topen_dialog.response.connect (open_response_cb);\n"
+"\t\topen_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Either open the file and load the file contents or cancel. */\n"
+"\tvoid open_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar open_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT: //open the file\n"
+"\t\t\t\tfile = open_dialog.get_file();\n"
+"\n"
+"\t\t\t\tuint8[] file_contents;\n"
+"\n"
+"\t\t\t\ttry {\n"
+"\t\t\t\t\tfile.load_contents (null, out file_contents, null);\n"
+"\t\t\t\t}\n"
+"\t\t\t\tcatch (GLib.Error err) { //handle the exception\n"
+"\t\t\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t\t\t}\n"
+"\t\t\t\t/* Set the buffer text to be the contents of the file. */\n"
+"\t\t\t\tbuffer.set_text ((string) file_contents,\n"
+"\t\t\t\t                 file_contents.length);\n"
+"\n"
+"\t\t\t\tprint (\"opened: %s\\n\", (open_dialog.get_filename ()));\n"
+"\t\t\t\tbreak;\n"
+"\n"
+"\t\t\tcase Gtk.ResponseType.CANCEL:\n"
+"\t\t\t\tprint (\"cancelled: FileChooserAction.OPEN\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\n"
+"\t/* Create FileChooserDialog in SAVE mode. */\n"
+"\tvoid save_as_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tvar save_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.SAVE,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.SAVE,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\tsave_dialog.set_do_overwrite_confirmation (true);\n"
+"\t\tsave_dialog.set_modal (true);\n"
+"\t\tif (file != null) {\n"
+"\t\t\ttry {\n"
+"\t\t\t\t(save_dialog as Gtk.FileChooser).set_file (file);\n"
+"\t\t\t}\n"
+"\t\t\tcatch (GLib.Error error) {\n"
+"\t\t\t\tprint (\"%s\\n\", error.message);\n"
+"\t\t\t}\n"
+"\t\t}\n"
+"\t\tsave_dialog.response.connect (save_as_response_cb);\n"
+"\t\tsave_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid save_as_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar save_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT:\n"
+"\t\t\t\tfile = save_dialog.get_file();\n"
+"\t\t\t\tthis.save_to_file ();\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tdefault:\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\t/* Save the existing contents to the file.\n"
+"\t * If file does not exist, call save_as_cb.\n"
+"\t */\n"
+"\tvoid save_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tif (file != null) {\n"
+"\t\t\tthis.save_to_file ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tsave_as_cb (action, parameter);\n"
+"\t\t}\n"
+"\t}\n"
+"\n"
+"\tvoid save_to_file (){\n"
+"\t\tGtk.TextIter start;\n"
+"\t\tGtk.TextIter end;\n"
+"\n"
+"\t\tbuffer.get_bounds (out start, out end);\n"
+"\t\tstring current_contents = buffer.get_text (start, end, false);\n"
+"\t\ttry {\n"
+"\t\t\t\tfile.replace_contents (current_contents.data, null, false,\n"
+"\t\t\t\t                       GLib.FileCreateFlags.NONE, null, null);\n"
+"\n"
+"\t\t\t\tprint (\"saved: %s\\n\", file.get_path ());\n"
+"\t\t}\n"
+"\t\tcatch (GLib.Error err) {\n"
+"\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all;\n"
+"\t}\n"
+"\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"quit\", quit_cb }\n"
+"\t};\n"
+"\n"
+"\tvoid quit_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tthis.quit ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup actions */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\t/* Setup menus */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"filechooserdialog.ui\");\n"
+"\t\t} catch (GLib.Error err) {\n"
+"\t\t\terror (\"Unable to load file: %s\\n\", err.message);\n"
+"\t\t}\n"
+"\t\tthis.app_menu = builder.get_object (\"appmenu\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: section/title
-#: C/filechooserdialog.vala.page:34 C/menubar.vala.page:186
-#, fuzzy
+#: C/filechooserdialog.vala.page:35 C/menubar.vala.page:187
 #| msgid "Reference Implementation"
 msgid "Relevant API documentation"
-msgstr "Referenz-Implementierung"
-
-#. (itstool) path: item/p
-#: C/filechooserdialog.vala.page:39
-msgid ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</"
-"link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</"
-"link>"
+msgstr "Relevante API-Dokumentation"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.vala.page:40
-msgid ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html";
-"\">FileChooserDialog</link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html";
-"\">FileChooserDialog</link>"
+msgid "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</link>"
+msgstr "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</link>"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.vala.page:41
-msgid ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</"
-"link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</"
-"link>"
+msgid "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html\";>FileChooserDialog</link>"
+msgstr "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html\";>FileChooserDialog</link>"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.vala.page:42
-msgid ""
-"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib."
-"ActionEntry</link>"
-msgstr ""
-"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib."
-"ActionEntry</link>"
+msgid "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</link>"
+msgstr "<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</link>"
+
+#. (itstool) path: item/p
+#: C/filechooserdialog.vala.page:43
+msgid "<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib.ActionEntry</link>"
+msgstr "<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib.ActionEntry</link>"
 
 #. (itstool) path: 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/fontchooserwidget.js.page:22 C/fontchooserwidget.py.page:24
-#: C/fontchooserwidget.vala.page:22
+#: C/fontchooserwidget.js.page:23 C/fontchooserwidget.py.page:25 C/fontchooserwidget.vala.page:23
 msgctxt "_"
-msgid ""
-"external ref='media/fontchooserwidget.png' "
-"md5='9161245e307b432ae1313e9a9941edae'"
-msgstr ""
-"external ref='media/fontchooserwidget.png' "
-"md5='9161245e307b432ae1313e9a9941edae'"
+msgid "external ref='media/fontchooserwidget.png' md5='9161245e307b432ae1313e9a9941edae'"
+msgstr "external ref='media/fontchooserwidget.png' md5='9161245e307b432ae1313e9a9941edae'"
 
 #. (itstool) path: info/title
-#: C/fontchooserwidget.js.page:7
-#, fuzzy
+#: C/fontchooserwidget.js.page:8
 #| msgctxt "text"
 #| msgid "Grid (JavaScript)"
 msgctxt "text"
 msgid "FontChooserWidget (JavaScript)"
-msgstr "Grid (JavaScript)"
+msgstr "FontChooserWidget (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/fontchooserwidget.js.page:17 C/fontchooserwidget.py.page:19
-#: C/fontchooserwidget.vala.page:17
+#: C/fontchooserwidget.js.page:18 C/fontchooserwidget.py.page:20 C/fontchooserwidget.vala.page:18
 msgid "A widget to choose a font"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/fontchooserwidget.js.page:20 C/fontchooserwidget.py.page:22
-#: C/fontchooserwidget.vala.page:20
+#: C/fontchooserwidget.js.page:21 C/fontchooserwidget.py.page:23 C/fontchooserwidget.vala.page:21
 msgid "FontChooserWidget"
-msgstr ""
+msgstr "FontChooserWidget"
 
 #. (itstool) path: page/p
-#: C/fontchooserwidget.js.page:23 C/fontchooserwidget.py.page:25
+#: C/fontchooserwidget.js.page:24 C/fontchooserwidget.py.page:26
 msgid "A FontChooserWidget with a callback function."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/fontchooserwidget.js.page:29
+#: C/fontchooserwidget.js.page:30
 #, no-wrap
 msgid ""
 "//!/usr/bin/gjs\n"
@@ -9474,25 +12576,83 @@ msgid ""
 "let app = new FontChooserWidgetExample();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"//!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const FontChooserWidgetExample = new Lang.Class ({\n"
+"    Name: 'Font Chooser Widget Example',\n"
+"\n"
+"    // Create the application itthis\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application({ application_id: 'org.example.fontchooserwidget' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this.window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"        // Create the application window\n"
+"        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                    title: \"FontChooserWidget\",\n"
+"                                                    default_width: 200,\n"
+"                                                    default_height: 200,\n"
+"                                                    border_width: 10 });\n"
+"\n"
+"        this.fontChooser = new Gtk.FontChooserWidget();\n"
+"        // a default font\n"
+"        this.fontChooser.set_font(\"Sans\");\n"
+"        // a text to preview the font\n"
+"        this.fontChooser.set_preview_text(\"This is an example of preview text!\");\n"
+"\n"
+"        // connect signal from the font chooser to the callback function\n"
+"        this.fontChooser.connect(\"notify::font\", Lang.bind(this, this._fontCb));\n"
+"\n"
+"        // add the font chooser to the window\n"
+"        this.window.add(this.fontChooser);\n"
+"        this.window.show_all();\n"
+"   },\n"
+"\n"
+"     // callback function:\n"
+"     _fontCb: function() {\n"
+"        // print in the terminal\n"
+"        print(\"You chose the font \" + this.fontChooser.get_font());\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new FontChooserWidgetExample();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/fontchooserwidget.js.page:36 C/fontchooserwidget.py.page:46
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.";
-"html\">GtkFontChooserWidget</link>"
+#: C/fontchooserwidget.js.page:37 C/fontchooserwidget.py.page:47
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.html\";>GtkFontChooserWidget</link>"
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.";
-"html\">GtkFontChooserWidget</link>"
+"<link 
href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.html\";>GtkFontChooserWidget</link>"
 
 #. (itstool) path: info/title
-#: C/fontchooserwidget.py.page:7
+#: C/fontchooserwidget.py.page:8
 msgctxt "text"
 msgid "FontChooserWidget (Python)"
-msgstr ""
+msgstr "FontChooserWidget (Python)"
 
 #. (itstool) path: section/code
-#: C/fontchooserwidget.py.page:31
-#, fuzzy, no-wrap
+#: C/fontchooserwidget.py.page:32
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -9559,7 +12719,7 @@ msgid ""
 "    # callback function:\n"
 "    def font_cb(self, event, user_data):\n"
 "        # print in the terminal\n"
-"        print \"You chose the font \" + self.font_chooser.get_font()\n"
+"        print(\"You chose the font \" + self.font_chooser.get_font())\n"
 "\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
@@ -9581,28 +12741,34 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
+"        Gtk.Window.__init__(self, title=\"FontChooserWidget\", application=app)\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"        # a font chooser\n"
+"        self.font_chooser = Gtk.FontChooserWidget()\n"
+"        # a default font\n"
+"        self.font_chooser.set_font(\"Sans\")\n"
+"        # a text to preview the font\n"
+"        self.font_chooser.set_preview_text(\n"
+"            \"This is an example of preview text!\")\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
-"        image = Gtk.Image()\n"
-"        image.set_from_file(\"gnome-image.png\")\n"
+"        # connect signal from the font chooser to the callback function\n"
+"        self.font_chooser.connect(\"notify::font\", self.font_cb)\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
+"        # add the font chooser to the window\n"
+"        self.add(self.font_chooser)\n"
+"\n"
+"    # callback function:\n"
+"    def font_cb(self, event, user_data):\n"
+"        # print in the terminal\n"
+"        print(\"You chose the font \" + self.font_chooser.get_font())\n"
 "\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -9618,60 +12784,53 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/fontchooserwidget.py.page:34
+#: C/fontchooserwidget.py.page:35
 msgid "Useful methods for a FontChooserWidget"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/fontchooserwidget.py.page:35
+#: C/fontchooserwidget.py.page:36
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/fontchooserwidget.py.page:37
+#: C/fontchooserwidget.py.page:38
 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)."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/fontchooserwidget.py.page:38
-msgid ""
-"To get the selected font use <code>get_font()</code> or "
-"<code>get_font_desc()</code>."
+#: C/fontchooserwidget.py.page:39
+msgid "To get the selected font use <code>get_font()</code> or <code>get_font_desc()</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/fontchooserwidget.py.page:39
-msgid ""
-"To change the text which is shown in the preview area, use "
-"<code>set_preview_text()</code>."
+#: C/fontchooserwidget.py.page:40
+msgid "To change the text which is shown in the preview area, use <code>set_preview_text()</code>."
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/fontchooserwidget.vala.page:7
+#: C/fontchooserwidget.vala.page:8
 msgctxt "text"
 msgid "FontChooserWidget (Vala)"
-msgstr ""
+msgstr "FontChooserWidget (Vala)"
 
 #. (itstool) path: credit/name
-#: C/fontchooserwidget.vala.page:12
+#: C/fontchooserwidget.vala.page:13
 msgid "Tiffany Antpoolski"
 msgstr "Tiffany Antpoolski"
 
 #. (itstool) path: page/p
-#: C/fontchooserwidget.vala.page:23
+#: C/fontchooserwidget.vala.page:24
 msgid "A FontChooserWidget with a lambda callback function."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/fontchooserwidget.vala.page:29
+#: C/fontchooserwidget.vala.page:30
 #, no-wrap
 msgid ""
 "public class MyWindow : Gtk.ApplicationWindow {\n"
@@ -9707,194 +12866,77 @@ msgid ""
 "}\n"
 "\n"
 msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"        internal MyWindow (MyApplication app) {\n"
+"                Object (application: app, title: \"FontChooserWidget\");\n"
+"\n"
+"\t\tvar font_chooser = new Gtk.FontChooserWidget ();\n"
+"\t\tfont_chooser.set_font (\"Sans\");\n"
+"\t\tfont_chooser.set_preview_text (\"This is an example of preview text!\");\n"
+"\t\tthis.add (font_chooser);\n"
+"\n"
+"\t\tfont_chooser.notify[\"font\"].connect (() =&gt; {\n"
+"\t\t\tprint (\"font: %s\\n\", font_chooser.get_font ().to_string ());\n"
+"\t\t\tprint (\"desc: %s\\n\", font_chooser.get_font_desc ().to_string ());\n"
+"\t\t\tprint (\"face: %s\\n\", font_chooser.get_font_face ().get_face_name ());\n"
+"\t\t\tprint (\"size: %d\\n\", font_chooser.get_font_size ());\n"
+"\t\t\tprint (\"family: %s\\n\", font_chooser.get_font_family ().get_name ());\n"
+"\t\t\tprint (\"monospace: %s\\n\\n\", font_chooser.get_font_family ().is_monospace ().to_string ());\n"
+"\t\t});\n"
+"\n"
+"                this.show_all ();\n"
+"        }\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"        protected override void activate () {\n"
+"                new MyWindow (this).show ();\n"
+"        }\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"        return new MyApplication ().run (args);\n"
+"}\n"
+"\n"
 
 #. (itstool) path: item/p
-#: C/fontchooserwidget.vala.page:36
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FontChooserWidget.html";
-"\">GtkFontChooserWidget</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FontChooserWidget.html";
-"\">GtkFontChooserWidget</link>"
-
-#. (itstool) path: 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/getting-ready.page:33
-msgctxt "_"
-msgid "external ref='media/ubuntu.png' md5='40845e4a40b335b1958da1403f01c13f'"
-msgstr "external ref='media/ubuntu.png' md5='40845e4a40b335b1958da1403f01c13f'"
-
-#. (itstool) path: 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/getting-ready.page:38
-msgctxt "_"
-msgid "external ref='media/fedora.png' md5='19add55f4349fd9e90f3a50b344ba626'"
-msgstr "external ref='media/fedora.png' md5='19add55f4349fd9e90f3a50b344ba626'"
-
-#. (itstool) path: 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/getting-ready.page:43
-msgctxt "_"
-msgid ""
-"external ref='media/opensuse.png' md5='a852a94199328e2f978c7f6a55bf8b54'"
-msgstr ""
-"external ref='media/opensuse.png' md5='a852a94199328e2f978c7f6a55bf8b54'"
-
-#. (itstool) path: info/title
-#: C/getting-ready.page:6
-msgctxt "link"
-msgid "Install GNOME development tools"
-msgstr ""
-
-#. (itstool) path: page/title
-#: C/getting-ready.page:16
-msgid "Getting ready for GNOME development"
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/getting-ready.page:19
-msgid "Install the required tools"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/getting-ready.page:20
-msgid ""
-"Before you can start coding you will have to install the required tools for "
-"GNOME development on your computer. This shouldn't take you more than ten "
-"minutes."
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/getting-ready.page:25
-msgid "Manual installation"
-msgstr "Manuelle Installation"
-
-#. (itstool) path: section/p
-#: C/getting-ready.page:26
-msgid ""
-"If you prefer manual installation you can find the instructions for the "
-"various distributions in the <link href=\"https://wiki.gnome.org/Apps/";
-"DeveloperTools/Installation\">GNOME wiki</link>. Click on the image to go "
-"directly to the installation page for your distribution:"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:31
-msgid ""
-"<link href=\"https://wiki.gnome.org/Apps/DeveloperTools/Installation/Ubuntu";
-"\"> <media type=\"image\" mime=\"image/png\" src=\"media/ubuntu.png"
-"\">Ubuntu</media> </link>"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:36
-msgid ""
-"<link href=\"https://wiki.gnome.org/Apps/DeveloperTools/Installation/Fedora";
-"\"> <media type=\"image\" mime=\"image/png\" src=\"media/fedora.png"
-"\">Fedora</media> </link>"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:41
-msgid ""
-"<link href=\"https://wiki.gnome.org/Apps/DeveloperTools/Installation/OpenSuSE";
-"\"> <media type=\"image\" mime=\"image/png\" src=\"media/opensuse.png"
-"\">OpenSuSE</media> </link>"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:46
-#, fuzzy
-#| msgid ""
-#| "<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</"
-#| "link>"
-msgid ""
-"<link href=\"https://wiki.gnome.org/Apps/DeveloperTools/Installation";
-"\">Others</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
-
-#. (itstool) path: section/title
-#: C/getting-ready.page:53
-msgid "Required versions"
-msgstr "Erforderliche Versionen"
-
-#. (itstool) path: section/p
-#: C/getting-ready.page:54
-msgid ""
-"The guides assume that you have at least the following versions of the tools "
-"installed:"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:57
-msgid "Anjuta - 3.0"
-msgstr "Anjuta - 3.0"
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:58
-msgid "Devhelp - 3.0"
-msgstr "Devhelp - 3.0"
-
-#. (itstool) path: item/p
-#: C/getting-ready.page:59
-msgid "Glade - 3.10"
-msgstr "Glade - 3.10"
-
-#. (itstool) path: section/p
-#: C/getting-ready.page:61
-msgid ""
-"Of course, any newer version will also work. Now, we wish you a lot of fun "
-"with the <link xref=\"index\">Demos</link>."
-msgstr ""
-"Natürlich wird auch jede neuere Version funktionieren. Wir wünschen Ihnen "
-"nun viel Spaß mit den <link xref=\"index\">Demos</link>."
+#: C/fontchooserwidget.vala.page:37
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FontChooserWidget.html\";>GtkFontChooserWidget</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FontChooserWidget.html\";>GtkFontChooserWidget</link>"
 
 #. (itstool) path: 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/gmenu.c.page:21
+#: C/gmenu.c.page:22
 msgctxt "_"
 msgid "external ref='media/gmenu.c.png' md5='f305fc3cae8d16d72b734ee53b559e33'"
-msgstr ""
-"external ref='media/gmenu.c.png' md5='f305fc3cae8d16d72b734ee53b559e33'"
+msgstr "external ref='media/gmenu.c.png' md5='f305fc3cae8d16d72b734ee53b559e33'"
 
 #. (itstool) path: info/title
-#: C/gmenu.c.page:7
+#: C/gmenu.c.page:8
 msgctxt "text"
 msgid "GMenu (C)"
-msgstr ""
+msgstr "GMenu (C)"
 
 #. (itstool) path: info/desc
-#: C/gmenu.c.page:17 C/gmenu.js.page:17 C/gmenu.vala.page:23
+#: C/gmenu.c.page:18 C/gmenu.js.page:18 C/gmenu.vala.page:24
 msgid "A simple implementation of GMenuModel"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/gmenu.c.page:20 C/gmenu.js.page:20 C/gmenu.py.page:28
-#: C/gmenu.vala.page:26
+#: C/gmenu.c.page:21 C/gmenu.js.page:21 C/gmenu.py.page:29 C/gmenu.vala.page:27
 msgid "GMenu"
-msgstr ""
+msgstr "GMenu"
 
 #. (itstool) path: page/p
-#: C/gmenu.c.page:22 C/gmenu.js.page:22 C/gmenu.py.page:30
-#: C/gmenu.vala.page:34
+#: C/gmenu.c.page:23 C/gmenu.js.page:23 C/gmenu.py.page:31 C/gmenu.vala.page:32
 msgid "A GtkApplication with a simple GMenu and SimpleActions"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/gmenu.c.page:25
+#: C/gmenu.c.page:26
 #, no-wrap
 msgid ""
 "\n"
@@ -9966,27 +13008,93 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"new_window (GSimpleAction *action,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"  g_print (\"This does nothing. It is only a demonstration.\\n\");\n"
+"}\n"
+"\n"
+"static void\n"
+"quit (GSimpleAction *action,\n"
+"      GVariant      *parameter,\n"
+"      gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"static void\n"
+"startup (GtkApplication *application,\n"
+"         gpointer        user_data)\n"
+"{\n"
+"  static const GActionEntry actions[] = {\n"
+"    { \"new\", new_window },\n"
+"    { \"quit\", quit }\n"
+"  };\n"
+"\n"
+"  GMenu *menu;\n"
+"\n"
+"  g_action_map_add_action_entries (G_ACTION_MAP (application), actions, G_N_ELEMENTS (actions), 
application);\n"
+"\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"New\", \"app.new\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"  gtk_application_set_app_menu (application, G_MENU_MODEL (menu));\n"
+"  g_object_unref (menu);\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\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, \"startup\", G_CALLBACK (startup), NULL);\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"
+"  return status;\n"
+"}\n"
 
 #. (itstool) path: 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/gmenu.js.page:21
+#: C/gmenu.js.page:22
 msgctxt "_"
-msgid ""
-"external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
-msgstr ""
-"external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
+msgid "external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
+msgstr "external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
 
 #. (itstool) path: info/title
-#: C/gmenu.js.page:7
+#: C/gmenu.js.page:8
 msgctxt "text"
 msgid "GMenu (JavaScript)"
 msgstr "GMenu (JavaScript)"
 
 #. (itstool) path: page/code
-#: C/gmenu.js.page:24
+#: C/gmenu.js.page:25
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -10079,32 +13187,119 @@ msgid ""
 "let app = new Application ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _showNew: function() {\n"
+"    print (\"This doesn't do anything. It is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"        print (\"No AboutDialog here.  This is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    //create the menu items and connect the signals to the callback functions.\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"New\",'app.new');\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        let newAction = new Gio.SimpleAction ({ name: 'new' });\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showNew();\n"
+"            }));\n"
+"        this.application.add_action(newAction);\n"
+"\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"         this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        //You must call _initMenus() before calling _buildUI().\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: 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/gmenu.py.page:29
+#: C/gmenu.py.page:30
 msgctxt "_"
-msgid ""
-"external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
-msgstr ""
-"external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
+msgid "external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
+msgstr "external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
 
 #. (itstool) path: info/title
-#: C/gmenu.py.page:7
+#: C/gmenu.py.page:8
 msgctxt "text"
 msgid "GMenu (Python)"
 msgstr "GMenu (Python)"
 
 #. (itstool) path: info/desc
-#: C/gmenu.py.page:25
+#: C/gmenu.py.page:26
 msgid "A simple implementation of GMenu"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/gmenu.py.page:36
+#: C/gmenu.py.page:37
 #, no-wrap
 msgid ""
 "\n"
@@ -10160,71 +13355,136 @@ msgid ""
 "\n"
 "    # callback function for \"new\"\n"
 "    def new_cb(self, action, parameter):\n"
-"        print \"This does nothing. It is only a demonstration.\"\n"
+"        print(\"This does nothing. It is only a demonstration.\")\n"
 "\n"
 "    # callback function for \"about\"\n"
 "    def about_cb(self, action, parameter):\n"
-"        print \"No AboutDialog for you. This is only a demonstration.\"\n"
+"        print(\"No AboutDialog for you. This is only a demonstration.\")\n"
 "\n"
 "    # callback function for \"quit\"\n"
 "    def quit_cb(self, action, parameter):\n"
-"        print \"You have quit.\"\n"
+"        print(\"You have quit.\")\n"
 "        self.quit()\n"
 "\n"
 "app = MyApplication()\n"
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"\n"
+"    from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GMenu Example\", application=app)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        # start the application\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu\n"
+"        menu = Gio.Menu()\n"
+"        # append to the menu three options\n"
+"        menu.append(\"New\", \"app.new\")\n"
+"        menu.append(\"About\", \"app.about\")\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set the menu as menu of the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # create an action for the option \"new\" of the menu\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        # connect it to the callback function new_cb\n"
+"        new_action.connect(\"activate\", self.new_cb)\n"
+"        # add the action to the application\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        # option \"about\"\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        self.add_action(about_action)\n"
+"\n"
+"        # option \"quit\"\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"    # callback function for \"new\"\n"
+"    def new_cb(self, action, parameter):\n"
+"        print(\"This does nothing. It is only a demonstration.\")\n"
+"\n"
+"    # callback function for \"about\"\n"
+"    def about_cb(self, action, parameter):\n"
+"        print(\"No AboutDialog for you. This is only a demonstration.\")\n"
+"\n"
+"    # callback function for \"quit\"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        print(\"You have quit.\")\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/gmenu.py.page:41
+#: C/gmenu.py.page:42
 msgid "Useful methods for a GSimpleAction and a GMenu"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/gmenu.py.page:43
+#: C/gmenu.py.page:44
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/gmenu.py.page:45
+#: C/gmenu.py.page:46
 msgid "Useful methods for a GSimpleAction:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:47
+#: C/gmenu.py.page:48
 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"
+"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 ""
 
 #. (itstool) path: item/code
-#: C/gmenu.py.page:48
+#: C/gmenu.py.page:49
 #, no-wrap
 msgid ""
 "\n"
 "action = Gio.SimpleAction.new(\"name\", parameter_type)"
 msgstr ""
+"\n"
+"action = Gio.SimpleAction.new(\"name\", parameter_type)"
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:50
+#: C/gmenu.py.page:51
 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 "
-"receives when being activated. This can be <code>None</code>, or <code>GLib."
-"VariantType.new('s')</code> if the parameter is of type <code>str</code>, or "
-"instead of <code>'s'</code> a character as described <link href=\"http://";
-"developer.gnome.org/glib/unstable/glib-GVariantType.html\">here</link>. To "
-"create a new <em>stateful</em> (i.e. not stateless) action, use"
+"where <code>\"name\"</code> is the name of the action and <code>parameter_type</code> is the type of the "
+"parameters that the action receives when being activated. This can be <code>None</code>, or 
<code>GLib.VariantType."
+"new('s')</code> if the parameter is of type <code>str</code>, or instead of <code>'s'</code> a character as 
"
+"described <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html\";>here</link>. To 
create a "
+"new <em>stateful</em> (i.e. not stateless) action, use"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/gmenu.py.page:51
+#: C/gmenu.py.page:52
 #, no-wrap
 msgid ""
 "\n"
@@ -10232,152 +13492,130 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:53
+#: C/gmenu.py.page:54
 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 "
-"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"where <code>initial_state</code> is defined as a GVariant - for instance 
<code>Glib.Variant.new_string('start')</"
+"code>; for a list of possibilities see <link 
href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
 "\">here</link>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:54
+#: C/gmenu.py.page:55
 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 "
-"outside callers. This should only be called by the implementor of the "
+"<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 outside callers. This should only be called by the implementor of 
the "
 "action. Users of the action should not attempt to modify its enabled flag."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:55
+#: C/gmenu.py.page:56
 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. "
-"This should only be called by the implementor of the action; users of the "
-"action should instead call <code>change_state(state)</code> (where "
-"<code>state</code> is as above) to request the change."
+"<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. This should only be called by the implementor of the action; users of 
the "
+"action should instead call <code>change_state(state)</code> (where <code>state</code> is as above) to 
request the "
+"change."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/gmenu.py.page:58
+#: C/gmenu.py.page:59
 msgid "Useful methods for a GMenu:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:60
+#: C/gmenu.py.page:61
 msgid ""
-"To insert an item in the menu in position <code>position</code>, use "
-"<code>insert(position, label, detailed_action)</code>, where <code>label</"
-"code> is the label that will appear in the menu and <code>detailed_action</"
-"code> is a string composed of the name of the action to which we prepend the "
-"prefix <code>app.</code>. A more detailed discussion of this can be found in "
-"<link xref=\"menubar.py#win-app\"/>."
+"To insert an item in the menu in position <code>position</code>, use <code>insert(position, label, "
+"detailed_action)</code>, where <code>label</code> is the label that will appear in the menu and "
+"<code>detailed_action</code> is a string composed of the name of the action to which we prepend the prefix "
+"<code>app.</code>. A more detailed discussion of this can be found in <link xref=\"menubar.py#win-app\"/>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:61
+#: C/gmenu.py.page:62
 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>."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:62
+#: C/gmenu.py.page:63
 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>, "
-"<code>append_item(item)</code>, or <code>prepend_item(item)</code>; so for "
-"instance we might have:"
+"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>, <code>append_item(item)</code>, or 
<code>prepend_item(item)</code>; so "
+"for instance we might have:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/gmenu.py.page:63
+#: C/gmenu.py.page:64
 #, no-wrap
 msgid ""
 "\n"
 "about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
 "menu.append_item(about)"
 msgstr ""
-
-#. (itstool) path: item/p
-#: C/gmenu.py.page:67
-msgid ""
-"We can also add a whole subsection in a menu using "
-"<code>insert_section(position, label, section)</code>, "
-"<code>append_section(label, section)</code>, or <code>prepend_section(label, "
-"section)</code>, where <code>label</code> is the title of the subsection."
-msgstr ""
+"\n"
+"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
+"menu.append_item(about)"
 
 #. (itstool) path: item/p
 #: C/gmenu.py.page:68
 msgid ""
-"To add a submenu that will expand and collapse, use "
-"<code>insert_submenu(position, label, section)</code>, "
-"<code>append_submenu(label, section)</code>, or <code>prepend_submenu(label, "
-"section)</code>, where <code>label</code> is the title of the subsection."
+"We can also add a whole subsection in a menu using <code>insert_section(position, label, section)</code>, "
+"<code>append_section(label, section)</code>, or <code>prepend_section(label, section)</code>, where 
<code>label</"
+"code> is the title of the subsection."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/gmenu.py.page:69
-msgid "To remove an item from the menu, use <code>remove(postion)</code>."
+msgid ""
+"To add a submenu that will expand and collapse, use <code>insert_submenu(position, label, section)</code>, "
+"<code>append_submenu(label, section)</code>, or <code>prepend_submenu(label, section)</code>, where 
<code>label</"
+"code> is the title of the subsection."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/gmenu.py.page:70
-msgid "To set a label for the menu, use <code>set_label(label)</code>."
+msgid "To remove an item from the menu, use <code>remove(position)</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/gmenu.py.page:81
-msgid ""
-"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html";
-"\">GVariantType</link>"
+#: C/gmenu.py.page:71
+msgid "To set a label for the menu, use <code>set_label(label)</code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/gmenu.py.page:82
-msgid ""
-"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
-"\">GVariant</link>"
-msgstr ""
+msgid "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html\";>GVariantType</link>"
+msgstr "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html\";>GVariantType</link>"
+
+#. (itstool) path: item/p
+#: C/gmenu.py.page:83
+msgid "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html\";>GVariant</link>"
+msgstr "<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html\";>GVariant</link>"
 
 #. (itstool) path: 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/gmenu.vala.page:27
+#: C/gmenu.vala.page:28
 msgctxt "_"
-msgid ""
-"external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
-msgstr ""
-"external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
+msgid "external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
+msgstr "external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
 
 #. (itstool) path: info/title
-#: C/gmenu.vala.page:7
+#: C/gmenu.vala.page:8
 msgctxt "text"
 msgid "GMenu (Vala)"
-msgstr ""
+msgstr "GMenu (Vala)"
 
 #. (itstool) path: note/p
-#: C/gmenu.vala.page:29
-msgid ""
-"<em style=\"strong\">You need to be running GTK+-3.4 or later for this to "
-"work</em>"
-msgstr ""
-
-#. (itstool) path: note/p
-#: C/gmenu.vala.page:32
-msgid ""
-"This program will not compile with the quit action connected until <link "
-"href=\"https://bugzilla.gnome.org/show_bug.cgi?id=674090\";>Bug #674090</"
-"link> is fixed. Therefore, the problematic line has been commented out."
+#: C/gmenu.vala.page:30
+msgid "<em style=\"strong\">You need to be running GTK+-3.4 or later for this to work</em>"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/gmenu.vala.page:36
+#: C/gmenu.vala.page:34
 #, no-wrap
 msgid ""
 "/* A window in the application. */\n"
@@ -10431,7 +13669,7 @@ msgid ""
 "\t\tthis.app_menu = menu;\n"
 "\n"
 "\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
-"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tquit_action.activate.connect (this.quit);\n"
 "\t\tthis.add_action (quit_action);\n"
 "\t}\n"
 "}\n"
@@ -10441,76 +13679,120 @@ msgid ""
 "\treturn new Application ().run (args);\n"
 "}\n"
 msgstr ""
+"/* A window in the application. */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"Gmenu Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\t/* Connect the 'activate' signal to the\n"
+"\t\t * signal handler (aka. callback).\n"
+"\t\t */\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\n"
+"\t\t/* Add the action to this window. */\n"
+"\t\tthis.add_action (about_action);\n"
+"\n"
+"\t\tthis.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for 'activate' signal of the SimpleAction. */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"This does nothing.  It is only a demonstration.\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application. */\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'startup' signal of GLib.Application. */\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\tquit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/gmenu.vala.page:43
-msgid ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
+#: C/gmenu.vala.page:41
+msgid "<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
+msgstr "<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
 
 #. (itstool) path: item/p
-#: C/gmenu.vala.page:44
-msgid ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</"
-"link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</"
-"link>"
+#: C/gmenu.vala.page:42
+msgid "<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</link>"
+msgstr "<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</link>"
 
 #. (itstool) path: item/p
-#: C/gmenu.vala.page:45
-msgid ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html";
-"\">SimpleAction</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html";
-"\">SimpleAction</link>"
+#: C/gmenu.vala.page:43
+msgid "<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html\";>SimpleAction</link>"
+msgstr "<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html\";>SimpleAction</link>"
 
 #. (itstool) path: item/p
-#: C/gmenu.vala.page:46
-msgid ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html";
-"\">add_action</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html";
-"\">add_action</link>"
+#: C/gmenu.vala.page:44
+msgid "<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html\";>add_action</link>"
+msgstr "<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html\";>add_action</link>"
 
 #. (itstool) path: 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/grid.c.page:22 C/grid.js.page:25 C/grid.vala.page:23
+#: C/grid.c.page:23 C/grid.js.page:26 C/grid.vala.page:24
 msgctxt "_"
 msgid "external ref='media/grid.png' md5='27d45da115401127456a3b854dcfc5be'"
 msgstr "external ref='media/grid.png' md5='27d45da115401127456a3b854dcfc5be'"
 
 #. (itstool) path: info/title
-#: C/grid.c.page:7
-#, fuzzy
+#: C/grid.c.page:8
 msgctxt "text"
 msgid "Grid (C)"
-msgstr "Raster"
+msgstr "Grid (C)"
 
 #. (itstool) path: info/desc
-#: C/grid.c.page:17 C/grid.js.page:21 C/grid.py.page:25 C/grid.vala.page:19
+#: C/grid.c.page:18 C/grid.js.page:22 C/grid.py.page:26 C/grid.vala.page:20
 msgid "Pack widgets in rows and columns"
-msgstr ""
+msgstr "Widgets in Zeilen und Spalten anordnen"
 
 #. (itstool) path: page/title
-#: C/grid.c.page:20 C/grid.js.page:24 C/grid.py.page:28
-#, fuzzy
+#: C/grid.c.page:21 C/grid.js.page:25 C/grid.py.page:29
 msgid "Grid"
-msgstr "Raster"
+msgstr "Grid"
 
 #. (itstool) path: page/p
-#: C/grid.c.page:23 C/grid.vala.page:24
+#: C/grid.c.page:24 C/grid.vala.page:25
 msgid "A button widget connected to a progress bar."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/grid.c.page:25
+#: C/grid.c.page:26
 #, no-wrap
 msgid ""
 "\n"
@@ -10583,31 +13865,94 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"clicked\" signal of the Button. Each\n"
+"click generates a progress bar pulse*/\n"
+"static void\n"
+"on_button_click (GtkButton *button,\n"
+"                 gpointer   user_data)\n"
+"{\n"
+"  GtkProgressBar *progress_bar = user_data;\n"
+"  gtk_progress_bar_pulse (progress_bar);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"  GtkWidget *progress_bar;\n"
+"\n"
+"  /*Create the window and set a title*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Grid Example\");\n"
+"\n"
+"  /*Create a button with a label*/\n"
+"  button = gtk_button_new_with_label (\"Button\");\n"
+"\n"
+"  /*Create the progress bar*/\n"
+"  progress_bar = gtk_progress_bar_new ();\n"
+"\n"
+"  /*Create a grid and attach the button and progress bar\n"
+"  accordingly*/\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), button, 1, 1, 1, 1);\n"
+"  gtk_grid_attach_next_to (GTK_GRID (grid), \n"
+"                           progress_bar, \n"
+"                           button, \n"
+"                           GTK_POS_BOTTOM, 1, 1);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \"clicked\", \n"
+"                    G_CALLBACK (on_button_click), progress_bar);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\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"
 
 #. (itstool) path: item/p
-#: C/grid.c.page:33 C/progressbar.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html";
-"\">GtkProgressBar</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html";
-"\">GtkProgressBar</link>"
+#: C/grid.c.page:34 C/progressbar.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html\";>GtkProgressBar</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html\";>GtkProgressBar</link>"
 
 #. (itstool) path: info/title
-#: C/grid.js.page:7
+#: C/grid.js.page:8
 msgctxt "text"
 msgid "Grid (JavaScript)"
 msgstr "Grid (JavaScript)"
 
 #. (itstool) path: page/p
-#: C/grid.js.page:26
-msgid ""
-"A button widget connected to a progress bar, inside of a grid which handles "
-"the layout."
+#: C/grid.js.page:27
+msgid "A button widget connected to a progress bar, inside of a grid which handles the layout."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/grid.js.page:28
+#: C/grid.js.page:29
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -10683,51 +14028,113 @@ msgid ""
 "let app = new GridExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const GridExample = new Lang.Class ({\n"
+"    Name: 'Grid Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsgrid',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Grid Example\"});\n"
+"\n"
+"        // Create the grid\n"
+"        this.Grid = new Gtk.Grid ();\n"
+"\n"
+"        // Create the widgets inside the grid\n"
+"        this.progressBar = new Gtk.ProgressBar ();\n"
+"        this.Button = new Gtk.Button ({ label: \"Button\" });\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"        // Assemble the grid\n"
+"        this._window.add (this.Grid);\n"
+"        this.Grid.attach (this.Button, 1, 1, 1, 1);\n"
+"        this.Grid.attach_next_to (this.progressBar, this.Button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.progressBar.pulse ();\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GridExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/grid.js.page:36
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
-"\">Gtk.Grid</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
-"\">Gtk.Grid</link>"
+#: C/grid.js.page:37
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>Gtk.Grid</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>Gtk.Grid</link>"
 
 #. (itstool) path: item/p
-#: C/grid.js.page:37 C/progressbar.js.page:41
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.";
-"html\">Gtk.ProgressBar</link>"
-msgstr ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.";
-"html\">Gtk.ProgressBar</link>"
+#: C/grid.js.page:38 C/progressbar.js.page:42
+msgid "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.html\";>Gtk.ProgressBar</link>"
+msgstr "<link 
href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.html\";>Gtk.ProgressBar</link>"
 
 #. (itstool) path: 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/grid.py.page:30
+#: C/grid.py.page:31
 msgctxt "_"
-msgid ""
-"external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
-msgstr ""
-"external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
+msgid "external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
+msgstr "external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
 
 #. (itstool) path: info/title
-#: C/grid.py.page:7
+#: C/grid.py.page:8
 msgctxt "text"
 msgid "Grid (Python)"
 msgstr "Grid (Python)"
 
 #. (itstool) path: page/p
-#: C/grid.py.page:31
+#: C/grid.py.page:32
 msgid "Some labels in a grid."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/grid.py.page:37
-#, fuzzy, no-wrap
+#: C/grid.py.page:38
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -10817,28 +14224,38 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
+"        Gtk.Window.__init__(self, title=\"Grid Example\", application=app)\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"        # three labels\n"
+"        label_top_left = Gtk.Label(label=\"This is Top Left\")\n"
+"        label_top_right = Gtk.Label(label=\"This is Top Right\")\n"
+"        label_bottom = Gtk.Label(label=\"This is Bottom\")\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
-"        image = Gtk.Image()\n"
-"        image.set_from_file(\"gnome-image.png\")\n"
+"        # a grid\n"
+"        grid = Gtk.Grid()\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
+"        # some space between the columns of the grid\n"
+"        grid.set_column_spacing(20)\n"
+"\n"
+"        # in the grid:\n"
+"        # attach the first label in the top left corner\n"
+"        grid.attach(label_top_left, 0, 0, 1, 1)\n"
+"        # attach the second label\n"
+"        grid.attach(label_top_right, 1, 0, 1, 1)\n"
+"        # attach the third label below the first label\n"
+"        grid.attach_next_to(\n"
+"            label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
 "\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -10846,105 +14263,80 @@ msgstr ""
 "        win = MyWindow(self)\n"
 "        win.show_all()\n"
 "\n"
-"    def do_startup(self):\n"
-"        Gtk.Application.do_startup(self)\n"
-"\n"
 "app = MyApplication()\n"
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
-#: C/grid.py.page:41
+#: C/grid.py.page:42
 msgid "Useful methods for a Grid widget"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/grid.py.page:44
-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, "
-"left, width, height)</code>. If a widget <code>sibling</code> is already in "
-"place, we can also use <code>attach_next_to(child, sibling, side, width, "
-"height)</code>, where <code>side</code> is one of <code>Gtk.PositionType."
-"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
-"code>."
-msgstr ""
-
-#. (itstool) path: item/p
 #: C/grid.py.page:45
 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 "
-"position are moved one row down, and children which span across this "
-"position are grown to span the new row. <code>insert_next_to(sibling, side)</"
-"code> inserts a row or column at the specified position. The new row or "
-"column is placed next to <code>sibling</code>, on the side determined by "
-"<code>side</code>; if side is <code>Gtk.PositionType.TOP</code> or <code>Gtk."
-"PositionType.BOTTOM</code>, a row is inserted, if side is <code>Gtk."
-"PositionType.LEFT</code> or <code>Gtk.PositionType.RIGHT</code>, a column is "
-"inserted."
+"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, left, width, height)</code>. If a widget <code>sibling</code> is already 
in "
+"place, we can also use <code>attach_next_to(child, sibling, side, width, height)</code>, where 
<code>side</code> "
+"is one of <code>Gtk.PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, 
Gtk.PositionType.BOTTOM</"
+"code>."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/grid.py.page:46
 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."
+"<code>insert_row(position)</code> and <code>insert_column(position)</code> do exactly what they say; 
children "
+"which are attached at or below this position are moved one row down, and children which span across this 
position "
+"are grown to span the new row. <code>insert_next_to(sibling, side)</code> inserts a row or column at the 
specified "
+"position. The new row or column is placed next to <code>sibling</code>, on the side determined by 
<code>side</"
+"code>; if side is <code>Gtk.PositionType.TOP</code> or <code>Gtk.PositionType.BOTTOM</code>, a row is 
inserted, if "
+"side is <code>Gtk.PositionType.LEFT</code> or <code>Gtk.PositionType.RIGHT</code>, a column is inserted."
 msgstr ""
 
 #. (itstool) path: item/p
 #: C/grid.py.page:47
 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>."
+"<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 ""
 
 #. (itstool) path: item/p
-#: C/grid.py.page:58 C/label.py.page:89 C/separator.c.page:40
-#: C/separator.py.page:41 C/switch.py.page:45
+#: C/grid.py.page:48
 msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html";
-"\">GtkLabel</link>"
+"<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>."
 msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html";
-"\">GtkLabel</link>"
 
 #. (itstool) path: item/p
-#: C/grid.py.page:59 C/image.py.page:102 C/paned.c.page:37 C/paned.py.page:43
-#: C/scrolledwindow.py.page:46
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html";
-"\">GtkImage</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html";
-"\">GtkImage</link>"
+#: C/grid.py.page:59 C/label.py.page:105 C/separator.c.page:41 C/separator.py.page:42 C/switch.py.page:46
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html\";>GtkLabel</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html\";>GtkLabel</link>"
 
 #. (itstool) path: item/p
-#: C/grid.py.page:60 C/radiobutton.py.page:49 C/separator.c.page:39
-#: C/separator.py.page:40 C/switch.py.page:46 C/toolbar_builder.py.page:195
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html";
-"\">GtkGrid</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html";
-"\">GtkGrid</link>"
+#: C/grid.py.page:60 C/paned.c.page:38 C/paned.py.page:44 C/scrolledwindow.py.page:47
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html\";>GtkImage</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html\";>GtkImage</link>"
+
+#. (itstool) path: item/p
+#: C/grid.py.page:61 C/radiobutton.py.page:50 C/separator.c.page:40 C/separator.py.page:41 
C/switch.py.page:47
+#: C/toolbar_builder.py.page:196
+msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html\";>GtkGrid</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html\";>GtkGrid</link>"
 
 #. (itstool) path: info/title
-#: C/grid.vala.page:7
+#: C/grid.vala.page:8
 msgctxt "text"
 msgid "Grid (Vala)"
 msgstr "Grid (Vala)"
 
 #. (itstool) path: page/title
-#: C/grid.vala.page:22
+#: C/grid.vala.page:23
 msgid "Grid widget"
 msgstr "Grid-Widget"
 
 #. (itstool) path: page/code
-#: C/grid.vala.page:26
+#: C/grid.vala.page:27
 #, no-wrap
 msgid ""
 "public class MyWindow : Gtk.ApplicationWindow {\n"
@@ -10988,51 +14380,88 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget progress_bar;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Grid Example\");\n"
+"\t\tvar grid = new Gtk.Grid();\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\tprogress_bar.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Button\");\n"
+"\t\tbutton.clicked.connect (on_button_click);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(button, 0, 1, 1, 1);\n"
+"\t\tgrid.attach_next_to (progress_bar, button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\t\tgrid.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\t(progress_bar as Gtk.ProgressBar).pulse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/grid.vala.page:31
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
-msgstr ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
+#: C/grid.vala.page:32
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
 
 #. (itstool) path: 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/GtkApplicationWindow.c.page:21 C/GtkApplicationWindow.js.page:21
-#: C/GtkApplicationWindow.py.page:28 C/GtkApplicationWindow.vala.page:21
-#: C/window.c.page:21 C/window.js.page:24 C/window.py.page:32
-#: C/window.vala.page:24
+#: C/GtkApplicationWindow.c.page:22 C/GtkApplicationWindow.js.page:22 C/GtkApplicationWindow.py.page:29
+#: C/GtkApplicationWindow.vala.page:22 C/window.c.page:22 C/window.js.page:25 C/window.py.page:33
+#: C/window.vala.page:25
 msgctxt "_"
 msgid "external ref='media/window.png' md5='eb0cde3530978619c25bddfaeb453345'"
 msgstr "external ref='media/window.png' md5='eb0cde3530978619c25bddfaeb453345'"
 
 #. (itstool) path: info/title
-#: C/GtkApplicationWindow.c.page:7
+#: C/GtkApplicationWindow.c.page:8
 msgctxt "text"
 msgid "ApplicationWindow (C)"
-msgstr ""
+msgstr "ApplicationWindow (C)"
 
 #. (itstool) path: info/desc
-#: C/GtkApplicationWindow.c.page:17
+#: C/GtkApplicationWindow.c.page:18
 msgid "A toplevel window which can contain other widgets, and support GMenu"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/GtkApplicationWindow.c.page:20 C/GtkApplicationWindow.js.page:20
-#: C/GtkApplicationWindow.py.page:27 C/GtkApplicationWindow.vala.page:20
+#: C/GtkApplicationWindow.c.page:21 C/GtkApplicationWindow.js.page:21 C/GtkApplicationWindow.py.page:28
+#: C/GtkApplicationWindow.vala.page:21
 msgid "ApplicationWindow"
-msgstr ""
+msgstr "ApplicationWindow"
 
 #. (itstool) path: page/p
-#: C/GtkApplicationWindow.c.page:22
+#: C/GtkApplicationWindow.c.page:23
 msgid "A minimal GtkApplication with a GtkApplicationWindow"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/GtkApplicationWindow.c.page:24
+#: C/GtkApplicationWindow.c.page:25
 #, no-wrap
 msgid ""
 "#include &lt;gtk/gtk.h&gt;\n"
@@ -11088,33 +14517,28 @@ msgstr ""
 "}\n"
 
 #. (itstool) path: item/p
-#: C/GtkApplicationWindow.c.page:30
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html";
-"\">GtkApplicationWindow</link>"
-msgstr ""
-"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html";
-"\">GtkApplicationWindow</link>"
+#: C/GtkApplicationWindow.c.page:31
+msgid "<link 
href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html\";>GtkApplicationWindow</link>"
+msgstr "<link 
href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html\";>GtkApplicationWindow</link>"
 
 #. (itstool) path: info/title
-#: C/GtkApplicationWindow.js.page:7
+#: C/GtkApplicationWindow.js.page:8
 msgctxt "text"
 msgid "ApplicationWindow (JavaScript)"
-msgstr ""
+msgstr "ApplicationWindow (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/GtkApplicationWindow.js.page:17 C/GtkApplicationWindow.py.page:24
-#: C/GtkApplicationWindow.vala.page:17
+#: C/GtkApplicationWindow.js.page:18 C/GtkApplicationWindow.py.page:25 C/GtkApplicationWindow.vala.page:18
 msgid "GtkWindow subclass with GtkApplication support"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/GtkApplicationWindow.js.page:22
+#: C/GtkApplicationWindow.js.page:23
 msgid "A simple GtkApplicationWindow which can support Menus."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/GtkApplicationWindow.js.page:24
+#: C/GtkApplicationWindow.js.page:25
 #, no-wrap
 msgid ""
 "\n"
@@ -11168,20 +14592,70 @@ msgid ""
 "let app = new Application ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function () {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: info/title
-#: C/GtkApplicationWindow.py.page:7
+#: C/GtkApplicationWindow.py.page:8
 msgctxt "text"
 msgid "ApplicationWindow (Python)"
-msgstr ""
+msgstr "ApplicationWindow (Python)"
 
 #. (itstool) path: page/p
-#: C/GtkApplicationWindow.py.page:29 C/GtkApplicationWindow.vala.page:22
-msgid "The simplest GtkApplication Window which can support Menus."
+#: C/GtkApplicationWindow.py.page:30
+msgid "The simplest GtkApplication Window which can support <link xref=\"gmenu.py\"/>."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/GtkApplicationWindow.py.page:36
+#: C/GtkApplicationWindow.py.page:37
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -11226,34 +14700,38 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/GtkApplicationWindow.py.page:40
+#: C/GtkApplicationWindow.py.page:41
 msgid "Useful methods for a Gtk.ApplicationWindow widget"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/GtkApplicationWindow.py.page:43 C/window.py.page:53
+#: C/GtkApplicationWindow.py.page:44 C/window.py.page:54
 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."
+"<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 ""
 
 #. (itstool) path: item/p
-#: C/GtkApplicationWindow.py.page:44 C/window.py.page:54
+#: C/GtkApplicationWindow.py.page:45 C/window.py.page:55
 msgid ""
-"<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
-"Other options are <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition.MOUSE, "
-"Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition.CENTER_ON_PARENT</code>."
+"<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. Other options are <code>Gtk."
+"WindowPosition.NONE, Gtk.WindowPosition.MOUSE, Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition."
+"CENTER_ON_PARENT</code>."
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/GtkApplicationWindow.vala.page:7
+#: C/GtkApplicationWindow.vala.page:8
 msgctxt "text"
 msgid "ApplicationWindow (Vala)"
+msgstr "ApplicationWindow (Vala)"
+
+#. (itstool) path: page/p
+#: C/GtkApplicationWindow.vala.page:23
+msgid "The simplest GtkApplication Window which can support Menus."
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/GtkApplicationWindow.vala.page:24
+#: C/GtkApplicationWindow.vala.page:25
 #, no-wrap
 msgid ""
 "\n"
@@ -11273,383 +14751,335 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Welcome to GNOME\";\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/GtkApplicationWindow.vala.page:30 C/label.vala.page:30
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html.content.tpl";
-"\">Gtk.Application</link>"
-msgstr ""
+#: C/GtkApplicationWindow.vala.page:31 C/label.vala.page:31
+msgid "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html.content.tpl\";>Gtk.Application</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html.content.tpl\";>Gtk.Application</link>"
 
 #. (itstool) path: 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/guitar-tuner.c.page:44 C/guitar-tuner.cpp.page:42
-#: C/guitar-tuner.js.page:36 C/guitar-tuner.py.page:49
-#: C/guitar-tuner.vala.page:47
+#: C/guitar-tuner.c.page:45 C/guitar-tuner.cpp.page:43 C/guitar-tuner.js.page:37 C/guitar-tuner.py.page:50
+#: C/guitar-tuner.vala.page:48
 msgctxt "_"
-msgid ""
-"external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
-msgstr ""
-"external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
+msgid "external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
+msgstr "external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
 
 #. (itstool) path: 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/guitar-tuner.c.page:99 C/guitar-tuner.cpp.page:93
-#: C/guitar-tuner.py.page:100 C/guitar-tuner.vala.page:100
+#: C/guitar-tuner.c.page:100 C/guitar-tuner.cpp.page:94 C/guitar-tuner.py.page:101 
C/guitar-tuner.vala.page:101
 msgctxt "_"
-msgid ""
-"external ref='media/guitar-tuner-glade.png' "
-"md5='f6606525443ab2160f53a87a454364d0'"
-msgstr ""
-"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+msgid "external ref='media/guitar-tuner-glade.png' md5='f6606525443ab2160f53a87a454364d0'"
+msgstr "@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
 
 #. (itstool) path: 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/guitar-tuner.c.page:144 C/guitar-tuner.cpp.page:122
-#: C/guitar-tuner.js.page:42 C/guitar-tuner.py.page:143
-#: C/guitar-tuner.vala.page:134
+#: C/guitar-tuner.c.page:145 C/guitar-tuner.cpp.page:123 C/guitar-tuner.js.page:43 C/guitar-tuner.py.page:144
+#: C/guitar-tuner.vala.page:135
 msgctxt "_"
-msgid ""
-"external ref='media/guitar-tuner-pipeline.png' "
-"md5='5adc952909d92af5dae6954781b4ad5f'"
-msgstr ""
-"@@image: 'media/guitar-tuner-pipeline.png'; "
-"md5=5adc952909d92af5dae6954781b4ad5f"
+msgid "external ref='media/guitar-tuner-pipeline.png' md5='5adc952909d92af5dae6954781b4ad5f'"
+msgstr "@@image: 'media/guitar-tuner-pipeline.png'; md5=5adc952909d92af5dae6954781b4ad5f"
 
 #. (itstool) path: info/title
-#: C/guitar-tuner.c.page:7
+#: C/guitar-tuner.c.page:8
 msgctxt "text"
 msgid "Guitar tuner (C)"
 msgstr "Gitarrenstimmgerät (C)"
 
 #. (itstool) path: info/desc
-#: C/guitar-tuner.c.page:10 C/guitar-tuner.py.page:10
+#: C/guitar-tuner.c.page:11 C/guitar-tuner.py.page:11
 msgid ""
-"Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME. "
-"Shows off how to use the interface designer."
+"Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME. Shows off how to use the 
interface "
+"designer."
 msgstr ""
 
 #. (itstool) path: credit/name
-#: C/guitar-tuner.c.page:18 C/guitar-tuner.cpp.page:16
-#: C/guitar-tuner.py.page:18 C/guitar-tuner.vala.page:17
-#: C/image-viewer.c.page:18 C/image-viewer.cpp.page:16
-#: C/image-viewer.js.page:18 C/image-viewer.py.page:18
-#: C/image-viewer.vala.page:18 C/index.page:17 C/magic-mirror.vala.page:18
-#: C/photo-wall.c.page:17 C/record-collection.js.page:18
+#: C/guitar-tuner.c.page:19 C/guitar-tuner.cpp.page:17 C/guitar-tuner.py.page:19 C/guitar-tuner.vala.page:18
+#: C/image-viewer.c.page:19 C/image-viewer.cpp.page:17 C/image-viewer.js.page:19 C/image-viewer.py.page:19
+#: C/image-viewer.vala.page:19 C/index.page:18 C/magic-mirror.vala.page:19 C/photo-wall.c.page:18
+#: C/record-collection.js.page:19
 msgid "Johannes Schmid"
 msgstr "Johannes Schmid"
 
 #. (itstool) path: page/title
-#: C/guitar-tuner.c.page:28 C/guitar-tuner.cpp.page:26
-#: C/guitar-tuner.js.page:19 C/guitar-tuner.py.page:33
-#: C/guitar-tuner.vala.page:31
+#: C/guitar-tuner.c.page:29 C/guitar-tuner.cpp.page:27 C/guitar-tuner.js.page:20 C/guitar-tuner.py.page:34
+#: C/guitar-tuner.vala.page:32
 msgid "Guitar tuner"
 msgstr "Gitarrenstimmgerät"
 
 #. (itstool) path: synopsis/p
-#: C/guitar-tuner.c.page:31 C/guitar-tuner.cpp.page:29
-#: C/guitar-tuner.py.page:36
+#: C/guitar-tuner.c.page:32 C/guitar-tuner.cpp.page:30 C/guitar-tuner.py.page:37
 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:"
+"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:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:33 C/guitar-tuner.cpp.page:31
-#: C/guitar-tuner.py.page:38
+#: C/guitar-tuner.c.page:34 C/guitar-tuner.cpp.page:32 C/guitar-tuner.py.page:39
 msgid "Set up a basic project in Anjuta"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:34 C/guitar-tuner.cpp.page:32
-#: C/guitar-tuner.py.page:39
+#: C/guitar-tuner.c.page:35 C/guitar-tuner.cpp.page:33 C/guitar-tuner.py.page:40
 msgid "Create a simple GUI with Anjuta's UI designer"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:35 C/guitar-tuner.cpp.page:33
-#: C/guitar-tuner.py.page:40
+#: C/guitar-tuner.c.page:36 C/guitar-tuner.cpp.page:34 C/guitar-tuner.py.page:41
 msgid "Use GStreamer to play sounds"
-msgstr ""
+msgstr "GStreamer zum Abspielen von Klängen verwenden"
 
 #. (itstool) path: synopsis/p
-#: C/guitar-tuner.c.page:37 C/guitar-tuner.cpp.page:35
-#: C/guitar-tuner.py.page:42 C/guitar-tuner.vala.page:40
-#: C/image-viewer.js.page:38 C/image-viewer.py.page:38
-#: C/image-viewer.vala.page:45 C/magic-mirror.vala.page:38
+#: C/guitar-tuner.c.page:38 C/guitar-tuner.cpp.page:36 C/guitar-tuner.py.page:43 C/guitar-tuner.vala.page:41
+#: C/image-viewer.js.page:39 C/image-viewer.py.page:39 C/image-viewer.vala.page:46 
C/magic-mirror.vala.page:39
 msgid "You'll need the following to be able to follow this tutorial:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:39 C/guitar-tuner.cpp.page:37
-#: C/guitar-tuner.py.page:44 C/image-viewer.js.page:40
-#: C/image-viewer.py.page:40 C/magic-mirror.vala.page:40
+#: C/guitar-tuner.c.page:40 C/guitar-tuner.cpp.page:38 C/guitar-tuner.py.page:45 C/image-viewer.js.page:41
+#: C/image-viewer.py.page:41 C/magic-mirror.vala.page:41
 msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:40
+#: C/guitar-tuner.c.page:41
 msgid "Basic knowledge of the C programming language"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:47 C/guitar-tuner.cpp.page:45
-#: C/guitar-tuner.py.page:52 C/image-viewer.c.page:41
-#: C/image-viewer.cpp.page:39 C/image-viewer.js.page:49
-#: C/image-viewer.py.page:48 C/image-viewer.vala.page:56
-#: C/magic-mirror.vala.page:49 C/message-board.c.page:45
-#: C/photo-wall.c.page:51 C/record-collection.js.page:52
+#: C/guitar-tuner.c.page:48 C/guitar-tuner.cpp.page:46 C/guitar-tuner.py.page:53 C/image-viewer.c.page:42
+#: C/image-viewer.cpp.page:40 C/image-viewer.js.page:50 C/image-viewer.py.page:49 C/image-viewer.vala.page:57
+#: C/magic-mirror.vala.page:50 C/message-board.c.page:46 C/photo-wall.c.page:52 
C/record-collection.js.page:53
 msgid "Create a project in Anjuta"
-msgstr ""
+msgstr "Erstellen eines Projekts in Anjuta"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:48 C/guitar-tuner.cpp.page:46
-#: C/guitar-tuner.py.page:53 C/guitar-tuner.vala.page:51
-#: C/image-viewer.c.page:42 C/image-viewer.cpp.page:40
-#: C/image-viewer.js.page:50 C/image-viewer.py.page:49
-#: C/image-viewer.vala.page:57 C/magic-mirror.vala.page:50
-#: C/photo-wall.c.page:52 C/record-collection.js.page:53
+#: C/guitar-tuner.c.page:49 C/guitar-tuner.cpp.page:47 C/guitar-tuner.py.page:54 C/guitar-tuner.vala.page:52
+#: C/image-viewer.c.page:43 C/image-viewer.cpp.page:41 C/image-viewer.js.page:51 C/image-viewer.py.page:50
+#: C/image-viewer.vala.page:58 C/magic-mirror.vala.page:51 C/photo-wall.c.page:53 
C/record-collection.js.page:54
 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. "
-"It's also useful for keeping everything together."
+"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. It's also useful for keeping everything together."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:51 C/guitar-tuner.cpp.page:49
-#: C/guitar-tuner.py.page:56 C/image-viewer.c.page:45
-#: C/image-viewer.cpp.page:43 C/image-viewer.js.page:53
-#: C/image-viewer.py.page:52 C/magic-mirror.vala.page:53
-#: C/photo-wall.c.page:55 C/record-collection.js.page:56
+#: C/guitar-tuner.c.page:52 C/guitar-tuner.cpp.page:50 C/guitar-tuner.py.page:57 C/image-viewer.c.page:46
+#: C/image-viewer.cpp.page:44 C/image-viewer.js.page:54 C/image-viewer.py.page:53 C/magic-mirror.vala.page:54
+#: C/photo-wall.c.page:56 C/record-collection.js.page:57
 msgid ""
-"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
-"gui></guiseq> to open the project wizard."
+"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></guiseq> to open the project 
wizard."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:54
+#: C/guitar-tuner.c.page:55
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:57
+#: C/guitar-tuner.c.page:58
 msgid ""
-"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</"
-"gui>. On the next page, select <em>gstreamer-0.10</em> from the list to "
-"include the GStreamer library in your project."
+"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</gui>. On the next page, select "
+"<em>gstreamer-0.10</em> from the list to include the GStreamer library in your project."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:61 C/image-viewer.c.page:56 C/photo-wall.c.page:70
+#: C/guitar-tuner.c.page:62 C/image-viewer.c.page:57 C/photo-wall.c.page:71
 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. "
-"You should see some code which starts with the lines:"
+"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. You should see some code which starts with the lines:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/guitar-tuner.c.page:62 C/image-viewer.c.page:57 C/photo-wall.c.page:71
+#: C/guitar-tuner.c.page:63 C/image-viewer.c.page:58 C/photo-wall.c.page:72
 #, no-wrap
 msgid ""
 "\n"
 "#include &lt;config.h&gt;\n"
 "#include &lt;gtk/gtk.h&gt;"
 msgstr ""
+"\n"
+"#include &lt;config.h&gt;\n"
+"#include &lt;gtk/gtk.h&gt;"
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:70 C/guitar-tuner.cpp.page:68
-#: C/guitar-tuner.vala.page:73 C/image-viewer.c.page:65
-#: C/image-viewer.cpp.page:65 C/image-viewer.vala.page:112
-#: C/magic-mirror.vala.page:77
+#: C/guitar-tuner.c.page:71 C/guitar-tuner.cpp.page:69 C/guitar-tuner.vala.page:74 C/image-viewer.c.page:66
+#: C/image-viewer.cpp.page:66 C/image-viewer.vala.page:113 C/magic-mirror.vala.page:78
 msgid "Build the code for the first time"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:71
+#: C/guitar-tuner.c.page:72
 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 "
-"from the user interface description file and shows it. More details are "
+"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 from the user interface description file and shows it. More 
details are "
 "given below; skip this list if you understand the basics:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:75 C/image-viewer.c.page:70
+#: C/guitar-tuner.c.page:76 C/image-viewer.c.page:71
 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 "
-"<code>gi18n</code> (internationalization) libraries. Functions from these "
+"The three <code>#include</code> lines at the top include the <code>config</code> (useful autoconf build 
defines), "
+"<code>gtk</code> (user interface) and <code>gi18n</code> (internationalization) libraries. Functions from 
these "
 "libraries are used in the rest of the code."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:78
+#: C/guitar-tuner.c.page:79
 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 "
-"above), connecting its signals and then displaying it in a window. The "
-"GtkBuilder file contains a description of a user interface and all of its "
-"elements. You can use Anjuta's editor to design GtkBuilder user interfaces."
+"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 above), connecting its signals and then displaying it in a window. The 
GtkBuilder "
+"file contains a description of a user interface and all of its elements. You can use Anjuta's editor to 
design "
+"GtkBuilder user interfaces."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:79 C/image-viewer.c.page:74
-#: C/image-viewer.vala.page:122
+#: C/guitar-tuner.c.page:80 C/image-viewer.c.page:75 C/image-viewer.vala.page:123
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:82 C/image-viewer.c.page:77
+#: C/guitar-tuner.c.page:83 C/image-viewer.c.page:78
 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 "
-"application. The <code>gtk_main</code> function starts the GTK main loop, "
-"which runs the user interface and starts listening for events (like clicks "
-"and key presses)."
+"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 application. The <code>gtk_main</code> function starts the GTK main loop, which 
runs the "
+"user interface and starts listening for events (like clicks and key presses)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:85 C/image-viewer.c.page:80
+#: C/guitar-tuner.c.page:86 C/image-viewer.c.page:81
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:89 C/guitar-tuner.cpp.page:83
-#: C/image-viewer.c.page:84 C/image-viewer.cpp.page:81
-#: C/image-viewer.vala.page:132 C/magic-mirror.vala.page:92
+#: C/guitar-tuner.c.page:90 C/guitar-tuner.cpp.page:84 C/image-viewer.c.page:85 C/image-viewer.cpp.page:82
+#: C/image-viewer.vala.page:133 C/magic-mirror.vala.page:93
 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>)."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:90 C/guitar-tuner.cpp.page:84
-#: C/image-viewer.c.page:85 C/image-viewer.cpp.page:82
+#: C/guitar-tuner.c.page:91 C/guitar-tuner.cpp.page:85 C/image-viewer.c.page:86 C/image-viewer.cpp.page:83
 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."
+"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."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:94 C/guitar-tuner.cpp.page:88
-#: C/guitar-tuner.py.page:95 C/guitar-tuner.vala.page:95
+#: C/guitar-tuner.c.page:95 C/guitar-tuner.cpp.page:89 C/guitar-tuner.py.page:96 C/guitar-tuner.vala.page:96
 msgid "Create the user interface"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:95 C/guitar-tuner.cpp.page:89
+#: C/guitar-tuner.c.page:96 C/guitar-tuner.cpp.page:90
 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>. "
-"This will switch to the interface designer. The design window is in the "
-"center; widgets and widgets' properties are on the left, and the palette of "
-"available widgets is on the right."
+"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>. This will switch to the interface designer. The design window is in the 
center; "
+"widgets and widgets' properties are on the left, and the palette of available widgets is on the right."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:97 C/guitar-tuner.cpp.page:91
-#: C/guitar-tuner.py.page:98
+#: C/guitar-tuner.c.page:98 C/guitar-tuner.cpp.page:92 C/guitar-tuner.py.page:99
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:103 C/guitar-tuner.cpp.page:97
-#: C/guitar-tuner.py.page:104
+#: C/guitar-tuner.c.page:104 C/guitar-tuner.cpp.page:98 C/guitar-tuner.py.page:105
 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 "
-"<gui>Properties</gui> pane, set the number of elements to 6 (for the six "
-"strings) and the orientation to vertical."
+"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 <gui>Properties</gui> pane, set the number of elements to 6 (for the six 
strings) "
+"and the orientation to vertical."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:107 C/guitar-tuner.cpp.page:101
-#: C/guitar-tuner.py.page:108
-msgid ""
-"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
-"first part of the box."
+#: C/guitar-tuner.c.page:108 C/guitar-tuner.cpp.page:102 C/guitar-tuner.py.page:109
+msgid "Now, choose a <gui>GtkButton</gui> from the palette and put it into the first part of the box."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:110 C/guitar-tuner.py.page:111
+#: C/guitar-tuner.c.page:111 C/guitar-tuner.py.page:112
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:113 C/guitar-tuner.py.page:114
+#: C/guitar-tuner.c.page:114 C/guitar-tuner.py.page:115
 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 "
-"connect a signal handler that will be called when the button is clicked by "
-"the user. To do this, click on the signal and type <code>on_button_clicked</"
-"code> in the <gui>Handler</gui> column and press <key>Return</key>."
+"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 connect a signal handler that will be called when the button is 
clicked "
+"by the user. To do this, click on the signal and type <code>on_button_clicked</code> in the 
<gui>Handler</gui> "
+"column and press <key>Return</key>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:116 C/guitar-tuner.py.page:117
-#: C/guitar-tuner.vala.page:121
+#: C/guitar-tuner.c.page:117 C/guitar-tuner.py.page:118 C/guitar-tuner.vala.page:122
 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>."
+"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>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:119 C/guitar-tuner.py.page:120
-#: C/guitar-tuner.vala.page:124
-msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and keep it open."
+#: C/guitar-tuner.c.page:120 C/guitar-tuner.py.page:121 C/guitar-tuner.vala.page:125
+msgid "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></guiseq>) and keep it open."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:125 C/guitar-tuner.vala.page:202
+#: C/guitar-tuner.c.page:126 C/guitar-tuner.vala.page:203
 msgid "Creating the signal handler"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:126 C/guitar-tuner.py.page:127
+#: C/guitar-tuner.c.page:127 C/guitar-tuner.py.page:128
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:127
+#: C/guitar-tuner.c.page:128
 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 "
-"the signal name. Now take the row where you set the <gui>clicked</gui> "
-"signal and drag it into to the source file at a position that is outside any "
-"function. The following code will be added to your source file:"
+"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 the signal name. Now take the row where you set the <gui>clicked</gui> 
signal "
+"and drag it into to the source file at a position that is outside any function. The following code will be 
added "
+"to your source file:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:130
+#: C/guitar-tuner.c.page:131
 #, no-wrap
 msgid ""
 "\n"
@@ -11658,122 +15088,107 @@ msgid ""
 "\n"
 "}"
 msgstr ""
+"\n"
+"void on_button_clicked (GtkWidget* button, gpointer user_data)\n"
+"{\n"
+"\n"
+"}"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:135
+#: C/guitar-tuner.c.page:136
 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</"
-"code>), and a pointer to some \"user data\" that you can define, but which "
-"we won't be using here. (You can set the user data by calling "
-"<code>gtk_builder_connect_signals</code>; it is normally used to pass a "
-"pointer to a data structure that you might need to access inside the signal "
-"handler.)"
+"This signal handler has two arguments: a pointer to the <code>GtkWidget</code> that called the function (in 
our "
+"case, always a <code>GtkButton</code>), and a pointer to some \"user data\" that you can define, but which 
we "
+"won't be using here. (You can set the user data by calling <code>gtk_builder_connect_signals</code>; it is "
+"normally used to pass a pointer to a data structure that you might need to access inside the signal 
handler.)"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:136 C/guitar-tuner.py.page:135
-msgid ""
-"For now, we'll leave the signal handler empty while we work on writing the "
-"code to produce sounds."
+#: C/guitar-tuner.c.page:137 C/guitar-tuner.py.page:136
+msgid "For now, we'll leave the signal handler empty while we work on writing the code to produce sounds."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:140 C/guitar-tuner.cpp.page:117
-#: C/guitar-tuner.js.page:38 C/guitar-tuner.py.page:139
-#: C/guitar-tuner.vala.page:130
+#: C/guitar-tuner.c.page:141 C/guitar-tuner.cpp.page:118 C/guitar-tuner.js.page:39 C/guitar-tuner.py.page:140
+#: C/guitar-tuner.vala.page:131
 msgid "GStreamer pipelines"
 msgstr "GStreamer-Weiterleitungen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:141 C/guitar-tuner.js.page:39
-#: C/guitar-tuner.py.page:140
+#: C/guitar-tuner.c.page:142 C/guitar-tuner.js.page:40 C/guitar-tuner.py.page:141
 msgid ""
-"GStreamer is GNOME's multimedia framework — you can use it for playing, "
-"recording, and processing video, audio, webcam streams and the like. Here, "
-"we'll be using it to produce single-frequency tones."
+"GStreamer is GNOME's multimedia framework — you can use it for playing, recording, and processing video, 
audio, "
+"webcam streams and the like. Here, we'll be using it to produce single-frequency tones."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:142 C/guitar-tuner.cpp.page:120
-#: C/guitar-tuner.js.page:40 C/guitar-tuner.py.page:141
+#: C/guitar-tuner.c.page:143 C/guitar-tuner.cpp.page:121 C/guitar-tuner.js.page:41 C/guitar-tuner.py.page:142
 msgid ""
-"Conceptually, GStreamer works as follows: You create a <em>pipeline</em> "
-"containing several processing elements going from the <em>source</em> to the "
-"<em>sink</em> (output). The source can be an image file, a video, or a music "
+"Conceptually, GStreamer works as follows: You create a <em>pipeline</em> containing several processing 
elements "
+"going from the <em>source</em> to the <em>sink</em> (output). The source can be an image file, a video, or 
a music "
 "file, for example, and the output could be a widget or the soundcard."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:143 C/guitar-tuner.cpp.page:121
-#: C/guitar-tuner.js.page:41 C/guitar-tuner.py.page:142
-#: C/guitar-tuner.vala.page:133
+#: C/guitar-tuner.c.page:144 C/guitar-tuner.cpp.page:122 C/guitar-tuner.js.page:42 C/guitar-tuner.py.page:143
+#: C/guitar-tuner.vala.page:134
 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."
+"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 ""
 
 #. (itstool) path: media/p
-#: C/guitar-tuner.c.page:145 C/guitar-tuner.cpp.page:123
-#: C/guitar-tuner.js.page:43 C/guitar-tuner.py.page:144
-#: C/guitar-tuner.vala.page:135
+#: C/guitar-tuner.c.page:146 C/guitar-tuner.cpp.page:124 C/guitar-tuner.js.page:44 C/guitar-tuner.py.page:145
+#: C/guitar-tuner.vala.page:136
 msgid "An example GStreamer pipeline."
 msgstr "Eine Beispiel-Weiterleitung in GStreamer."
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:150 C/guitar-tuner.py.page:149
-#: C/guitar-tuner.vala.page:140
+#: C/guitar-tuner.c.page:151 C/guitar-tuner.py.page:150 C/guitar-tuner.vala.page:141
 msgid "Set up the pipeline"
 msgstr "Einrichten der Weiterleitung"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:151 C/guitar-tuner.cpp.page:134
-#: C/guitar-tuner.py.page:150
+#: C/guitar-tuner.c.page:152 C/guitar-tuner.cpp.page:135 C/guitar-tuner.py.page:151
 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 "
-"device, <code>autoaudiosink</code>. We only need to configure the frequency "
-"of the tone generator; this is accessible through the <code>freq</code> "
-"property of <code>audiotestsrc</code>."
+"In this simple example we will use a tone generator source called <code>audiotestsrc</code> and send the 
output to "
+"the default system sound device, <code>autoaudiosink</code>. We only need to configure the frequency of the 
tone "
+"generator; this is accessible through the <code>freq</code> property of <code>audiotestsrc</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:153
+#: C/guitar-tuner.c.page:154
 msgid ""
-"Insert the following line into <file>main.c</file>, just below the "
-"<code>#include &lt;gtk/gtk.h&gt;</code> line:"
+"Insert the following line into <file>main.c</file>, just below the <code>#include &lt;gtk/gtk.h&gt;</code> 
line:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:154
+#: C/guitar-tuner.c.page:155
 #, no-wrap
 msgid "#include &lt;gst/gst.h&gt;"
 msgstr "#include &lt;gst/gst.h&gt;"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:155
+#: C/guitar-tuner.c.page:156
 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 "
-"<code>gtk_init</code> call in the <code>main</code> function:"
+"This includes the GStreamer library. You also 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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:156
+#: C/guitar-tuner.c.page:157
 #, no-wrap
 msgid "gst_init (&amp;argc, &amp;argv);"
 msgstr "gst_init (&amp;argc, &amp;argv);"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:157
+#: C/guitar-tuner.c.page:158
 msgid ""
-"Then, copy the following function into <file>main.c</file> above the empty "
-"<code>on_button_clicked</code> function:"
+"Then, copy the following function into <file>main.c</file> above the empty <code>on_button_clicked</code> 
function:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:158
+#: C/guitar-tuner.c.page:159
 #, no-wrap
 msgid ""
 "static void\n"
@@ -11800,74 +15215,87 @@ msgid ""
 "\tg_timeout_add (LENGTH, (GSourceFunc) pipeline_stop, pipeline);\n"
 "}"
 msgstr ""
+"static void\n"
+"play_sound (gdouble frequency)\n"
+"{\n"
+"\tGstElement *source, *sink;\n"
+"\tGstElement *pipeline;\n"
+"\n"
+"\tpipeline = gst_pipeline_new (\"note\");\n"
+"\tsource   = gst_element_factory_make (\"audiotestsrc\",\n"
+"\t                                     \"source\");\n"
+"\tsink     = gst_element_factory_make (\"autoaudiosink\",\n"
+"\t                                     \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tg_object_set (source, \"freq\", frequency, NULL);\n"
+"\n"
+"\tgst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);\n"
+"\tgst_element_link (source, sink);\n"
+"\n"
+"\tgst_element_set_state (pipeline, GST_STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 500ms */\n"
+"\tg_timeout_add (LENGTH, (GSourceFunc) pipeline_stop, pipeline);\n"
+"}"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:184
+#: C/guitar-tuner.c.page:185
 msgid ""
-"The first five lines create source and sink GStreamer elements "
-"(<code>GstElement</code>), and a pipeline element (which will be used as a "
-"container for the other two elements). The pipeline is given the name \"note"
-"\"; the source is named \"source\" and is set to the <code>audiotestsrc</"
-"code> source; and the sink is named \"output\" and set to the "
-"<code>autoaudiosink</code> sink (default sound card output)."
+"The first five lines create source and sink GStreamer elements (<code>GstElement</code>), and a pipeline 
element "
+"(which will be used as a container for the other two elements). The pipeline is given the name \"note\"; 
the "
+"source is named \"source\" and is set to the <code>audiotestsrc</code> source; and the sink is named 
\"output\" "
+"and set to the <code>autoaudiosink</code> sink (default sound card output)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:187
+#: C/guitar-tuner.c.page:188
 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 "
-"to the <code>play_sound</code> function. This is just the frequency of the "
-"note in Hertz; some useful frequencies will be defined later on."
+"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 to the <code>play_sound</code> function. This is 
just the "
+"frequency of the note in Hertz; some useful frequencies will be defined later on."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:190
+#: C/guitar-tuner.c.page:191
 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 "
-"contain multiple other GStreamer elements. In general, you can add as many "
-"elements as you like to the pipeline by adding more arguments to "
-"<code>gst_bin_add_many</code>."
+"<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 contain multiple other GStreamer elements. In general, you can add as 
many "
+"elements as you like to the pipeline by adding more arguments to <code>gst_bin_add_many</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:193
+#: C/guitar-tuner.c.page:194
 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 "
-"of <code>sink</code> (which is then output to the sound card). "
-"<code>gst_element_set_state</code> is then used to start playback, by "
-"setting the state of the pipeline to playing (<code>GST_STATE_PLAYING</"
-"code>)."
+"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 of <code>sink</code> (which is then output to the sound card). "
+"<code>gst_element_set_state</code> is then used to start playback, by setting the state of the pipeline to 
playing "
+"(<code>GST_STATE_PLAYING</code>)."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:200 C/guitar-tuner.py.page:190
+#: C/guitar-tuner.c.page:201 C/guitar-tuner.py.page:191
 msgid "Stopping playback"
 msgstr "Die Wiedergabe stoppen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:201
+#: C/guitar-tuner.c.page:202
 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 "
-"sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
-"milliseconds before calling the function <code>pipeline_stop</code>, and "
-"will keep calling it until <code>pipeline_stop</code> returns <code>FALSE</"
-"code>."
+"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 sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
+"milliseconds before calling the function <code>pipeline_stop</code>, and will keep calling it until "
+"<code>pipeline_stop</code> returns <code>FALSE</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:202
+#: C/guitar-tuner.c.page:203
 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 "
-"<code>play_sound</code> function:"
+"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 <code>play_sound</code> function:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:203
+#: C/guitar-tuner.c.page:204
 #, no-wrap
 msgid ""
 "\n"
@@ -11882,30 +15310,39 @@ msgid ""
 "\treturn FALSE;\n"
 "}"
 msgstr ""
+"\n"
+"#define LENGTH 500 /* Length of playing in ms */\n"
+"\n"
+"static gboolean\n"
+"pipeline_stop (GstElement* pipeline)\n"
+"{\n"
+"\tgst_element_set_state (pipeline, GST_STATE_NULL);\n"
+"\tg_object_unref (pipeline);\n"
+"\n"
+"\treturn FALSE;\n"
+"}"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:214
+#: C/guitar-tuner.c.page:215
 msgid ""
-"The call to <code>gst_element_set_state</code> stops the playback of the "
-"pipeline and <code>g_object_unref</code> unreferences the pipeline, "
-"destroying it and freeing its memory."
+"The call to <code>gst_element_set_state</code> stops the playback of the pipeline and 
<code>g_object_unref</code> "
+"unreferences the pipeline, destroying it and freeing its memory."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:218 C/guitar-tuner.py.page:207
+#: C/guitar-tuner.c.page:219 C/guitar-tuner.py.page:208
 msgid "Define the tones"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:219
+#: C/guitar-tuner.c.page:220
 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 "
-"defined (at the top of <file>main.c</file>) as follows:"
+"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 defined (at the top of <file>main.c</file>) as follows:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:220
+#: C/guitar-tuner.c.page:221
 #, no-wrap
 msgid ""
 "\n"
@@ -11917,19 +15354,25 @@ msgid ""
 "#define NOTE_B 987.77\n"
 "#define NOTE_e 1318.5"
 msgstr ""
+"\n"
+"/* Frequencies of the strings */\n"
+"#define NOTE_E 329.63\n"
+"#define NOTE_A 440\n"
+"#define NOTE_D 587.33\n"
+"#define NOTE_G 783.99\n"
+"#define NOTE_B 987.77\n"
+"#define NOTE_e 1318.5"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:228 C/guitar-tuner.py.page:221
+#: C/guitar-tuner.c.page:229 C/guitar-tuner.py.page:222
 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 "
-"different signal handler, but that would lead to a lot of code duplication. "
-"Instead, we can use the label of the button to figure out which button was "
-"clicked:"
+"Now to flesh out the signal handler that we defined earlier, <code>on_button_clicked</code>. We could have "
+"connected every button to a different signal handler, but that would lead to a lot of code duplication. 
Instead, "
+"we can use the label of the button to figure out which button was clicked:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.c.page:229
+#: C/guitar-tuner.c.page:230
 #, no-wrap
 msgid ""
 "\n"
@@ -11953,180 +15396,170 @@ msgid ""
 "\t    play_sound (NOTE_e);\n"
 "}\n"
 msgstr ""
+"\n"
+"/* Callback for the buttons */\n"
+"void on_button_clicked (GtkButton* button,\n"
+"                        gpointer user_data)\n"
+"{\n"
+"\tconst gchar* text = gtk_button_get_label (button);\n"
+"\n"
+"\tif (g_str_equal (text, _(\"E\")))\n"
+"\t    play_sound (NOTE_E);\n"
+"\telse if (g_str_equal (text, _(\"A\")))\n"
+"\t    play_sound (NOTE_A);\n"
+"\telse if (g_str_equal (text, _(\"G\")))\n"
+"\t    play_sound (NOTE_G);\n"
+"\telse if (g_str_equal (text, _(\"D\")))\n"
+"\t    play_sound (NOTE_D);\n"
+"\telse if (g_str_equal (text, _(\"B\")))\n"
+"\t    play_sound (NOTE_B);\n"
+"\telse if (g_str_equal (text, _(\"e\")))\n"
+"\t    play_sound (NOTE_e);\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:250
+#: C/guitar-tuner.c.page:251
 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 "
-"the text of that button using <code>gtk_button_get_label</code>."
+"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 the text of that button using <code>gtk_button_get_label</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:251
+#: C/guitar-tuner.c.page:252
 msgid ""
-"The 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 frequency appropriate "
-"for that note. This plays the tone; we have a working guitar tuner!"
+"The 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 frequency appropriate for that note. This plays the tone; we have a working guitar tuner!"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:255 C/guitar-tuner.cpp.page:254
-#: C/guitar-tuner.vala.page:252 C/image-viewer.c.page:221
-#: C/image-viewer.cpp.page:209 C/image-viewer.vala.page:279
-#: C/photo-wall.c.page:391
+#: C/guitar-tuner.c.page:256 C/guitar-tuner.cpp.page:255 C/guitar-tuner.vala.page:253 
C/image-viewer.c.page:222
+#: C/image-viewer.cpp.page:210 C/image-viewer.vala.page:280 C/photo-wall.c.page:392
 msgid "Build and run the application"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:256 C/guitar-tuner.vala.page:253
-#: C/image-viewer.c.page:222 C/image-viewer.cpp.page:210
-#: C/image-viewer.vala.page:280
+#: C/guitar-tuner.c.page:257 C/guitar-tuner.vala.page:254 C/image-viewer.c.page:223 
C/image-viewer.cpp.page:211
+#: C/image-viewer.vala.page:281
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:257 C/guitar-tuner.cpp.page:256
-#: C/guitar-tuner.vala.page:254
+#: C/guitar-tuner.c.page:258 C/guitar-tuner.cpp.page:257 C/guitar-tuner.vala.page:255
 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!"
+"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 ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:261 C/guitar-tuner.cpp.page:260
-#: C/guitar-tuner.js.page:241 C/guitar-tuner.py.page:239
-#: C/guitar-tuner.vala.page:258 C/image-viewer.c.page:227
-#: C/image-viewer.cpp.page:215 C/image-viewer.js.page:315
-#: C/image-viewer.py.page:229 C/image-viewer.vala.page:287
-#: C/magic-mirror.vala.page:149 C/photo-wall.c.page:399
-#: C/record-collection.js.page:296
+#: C/guitar-tuner.c.page:262 C/guitar-tuner.cpp.page:261 C/guitar-tuner.js.page:242 
C/guitar-tuner.py.page:240
+#: C/guitar-tuner.vala.page:259 C/image-viewer.c.page:228 C/image-viewer.cpp.page:216 
C/image-viewer.js.page:316
+#: C/image-viewer.py.page:230 C/image-viewer.vala.page:288 C/magic-mirror.vala.page:150 
C/photo-wall.c.page:400
+#: C/record-collection.js.page:297
 msgid "Reference Implementation"
 msgstr "Referenz-Implementierung"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:262
+#: C/guitar-tuner.c.page:263
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+"If you run into problems with the tutorial, compare your code with this <link 
href=\"guitar-tuner/guitar-tuner.c"
+"\">reference code</link>."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.c.page:266 C/guitar-tuner.cpp.page:273
-#: C/guitar-tuner.py.page:244 C/guitar-tuner.vala.page:269
-#: C/image-viewer.c.page:232 C/image-viewer.cpp.page:220
-#: C/image-viewer.js.page:320 C/image-viewer.py.page:234
-#: C/image-viewer.vala.page:292
+#: C/guitar-tuner.c.page:267 C/guitar-tuner.cpp.page:274 C/guitar-tuner.py.page:245 
C/guitar-tuner.vala.page:270
+#: C/image-viewer.c.page:233 C/image-viewer.cpp.page:221 C/image-viewer.js.page:321 
C/image-viewer.py.page:235
+#: C/image-viewer.vala.page:293
 msgid "Next steps"
 msgstr "Nächste Schritte"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.c.page:267 C/guitar-tuner.cpp.page:274
-#: C/guitar-tuner.py.page:245 C/guitar-tuner.vala.page:270
-#: C/image-viewer.c.page:233 C/image-viewer.cpp.page:221
-#: C/image-viewer.js.page:321 C/image-viewer.py.page:235
-#: C/image-viewer.vala.page:293
+#: C/guitar-tuner.c.page:268 C/guitar-tuner.cpp.page:275 C/guitar-tuner.py.page:246 
C/guitar-tuner.vala.page:271
+#: C/image-viewer.c.page:234 C/image-viewer.cpp.page:222 C/image-viewer.js.page:322 
C/image-viewer.py.page:236
+#: C/image-viewer.vala.page:294
 msgid "Here are some ideas for how you can extend this simple demonstration:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:270 C/guitar-tuner.cpp.page:277
-#: C/guitar-tuner.py.page:248 C/guitar-tuner.vala.page:273
+#: C/guitar-tuner.c.page:271 C/guitar-tuner.cpp.page:278 C/guitar-tuner.py.page:249 
C/guitar-tuner.vala.page:274
 msgid "Have the program automatically cycle through the notes."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:273 C/guitar-tuner.cpp.page:280
-#: C/guitar-tuner.py.page:251 C/guitar-tuner.vala.page:276
+#: C/guitar-tuner.c.page:274 C/guitar-tuner.cpp.page:281 C/guitar-tuner.py.page:252 
C/guitar-tuner.vala.page:277
 msgid "Make the program play recordings of real guitar strings being plucked."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:274 C/guitar-tuner.cpp.page:281
-#: C/guitar-tuner.py.page:252 C/guitar-tuner.vala.page:277
+#: C/guitar-tuner.c.page:275 C/guitar-tuner.cpp.page:282 C/guitar-tuner.py.page:253 
C/guitar-tuner.vala.page:278
 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 "
-"<link href=\"http://gstreamer.freedesktop.org/documentation/plugins.html";
-"\">decoder and demuxer</link> GStreamer elements based on the file format of "
-"your recorded sounds — MP3s use different elements to Ogg Vorbis files, for "
-"example."
+"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 <link href=\"http://gstreamer.freedesktop.org/documentation/plugins.html";
+"\">decoder and demuxer</link> GStreamer elements based on the file format of your recorded sounds — MP3s 
use "
+"different elements to Ogg Vorbis files, for example."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:275 C/guitar-tuner.cpp.page:282
-#: C/guitar-tuner.py.page:253 C/guitar-tuner.vala.page:278
+#: C/guitar-tuner.c.page:276 C/guitar-tuner.cpp.page:283 C/guitar-tuner.py.page:254 
C/guitar-tuner.vala.page:279
 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/";
-"gstreamer/head/manual/html/chapter-intro-basics.html\">GStreamer concepts</"
-"link> that we didn't cover in this tutorial, such as <link href=\"http://";
-"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
-"basics-pads.html\">pads</link>. You may also find the <cmd>gst-inspect</cmd> "
-"command useful."
+"You might need to connect the elements in more complicated ways too. This could involve using <link 
href=\"http://";
+"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-intro-basics.html\">GStreamer 
concepts</"
+"link> that we didn't cover in this tutorial, such as <link 
href=\"http://gstreamer.freedesktop.org/data/doc/";
+"gstreamer/head/manual/html/section-intro-basics-pads.html\">pads</link>. You may also find the 
<cmd>gst-inspect</"
+"cmd> command useful."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:278 C/guitar-tuner.cpp.page:285
-#: C/guitar-tuner.py.page:256 C/guitar-tuner.vala.page:281
+#: C/guitar-tuner.c.page:279 C/guitar-tuner.cpp.page:286 C/guitar-tuner.py.page:257 
C/guitar-tuner.vala.page:282
 msgid "Automatically analyze notes that the user plays."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.c.page:279 C/guitar-tuner.cpp.page:286
-#: C/guitar-tuner.py.page:257 C/guitar-tuner.vala.page:282
+#: C/guitar-tuner.c.page:280 C/guitar-tuner.cpp.page:287 C/guitar-tuner.py.page:258 
C/guitar-tuner.vala.page:283
 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-";
-"plugins/html/gst-plugins-good-plugins-autoaudiosrc.html\">input source</"
-"link>. Perhaps some form of <link href=\"http://gstreamer.freedesktop.org/";
-"data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-"
-"plugins-plugin-spectrum.html\">spectrum analysis</link> would allow you to "
-"figure out what notes are being played?"
+"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-plugins/html/gst-plugins-good-plugins-autoaudiosrc.html\">input 
source</"
+"link>. Perhaps some form of <link 
href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
+"plugins/html/gst-plugins-good-plugins-plugin-spectrum.html\">spectrum analysis</link> would allow you to 
figure "
+"out what notes are being played?"
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/guitar-tuner.cpp.page:8
+#: C/guitar-tuner.cpp.page:9
 msgid ""
-"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
-"GNOME. Shows off how to use the interface designer."
+"Use GTKmm and GStreamermm to build a simple guitar tuner application for GNOME. Shows off how to use the 
interface "
+"designer."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:38
+#: C/guitar-tuner.cpp.page:39
 msgid "Basic knowledge of the C++ programming language"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:52
+#: C/guitar-tuner.cpp.page:53
 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 "
-"<file>guitar-tuner</file> as project name and directory."
+"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 <file>guitar-tuner</file> as project name and directory."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:55
+#: C/guitar-tuner.cpp.page:56
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:59
+#: C/guitar-tuner.cpp.page:60
 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> "
-"tabs. You should see some code which starts with the lines:"
+"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> tabs. You should see some code which starts with the lines:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/guitar-tuner.cpp.page:60
+#: C/guitar-tuner.cpp.page:61
 #, no-wrap
 msgid ""
 "\n"
@@ -12138,109 +15571,98 @@ msgstr ""
 "#include &lt;iostream&gt;"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:69 C/image-viewer.cpp.page:66
+#: C/guitar-tuner.cpp.page:70 C/image-viewer.cpp.page:67
 msgid ""
-"This is a very basic C++ code setting up GTKmm. More details are given "
-"below; skip this list if you understand the basics:"
+"This is a very basic C++ code setting up GTKmm. More details are given below; skip this list if you 
understand the "
+"basics:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:73
+#: C/guitar-tuner.cpp.page:74
 msgid ""
-"The three <code>#include</code> lines at the top include the <code>config</"
-"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
-"and <code>iostream</code> (STL). Functions from these libraries are used in "
+"The three <code>#include</code> lines at the top include the <code>config</code> (useful autoconf build 
defines), "
+"<code>gtkmm</code> (user interface) and <code>iostream</code> (STL). Functions from these libraries are 
used in "
 "the rest of the code."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:76
+#: C/guitar-tuner.cpp.page:77
 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 "
-"displaying it in a window. The GtkBuilder file contains a description of a "
-"user interface and all of its elements. You can use Anjuta's editor to "
-"design GtkBuilder user interfaces."
+"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 displaying it in a window. The GtkBuilder file contains a 
description "
+"of a user interface and all of its elements. You can use Anjuta's editor to design GtkBuilder user 
interfaces."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:79
+#: C/guitar-tuner.cpp.page:80
 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, "
-"which runs the user interface and starts listening for events (like clicks "
-"and key presses)."
+"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, which runs the user interface and starts listening for events (like clicks and 
key "
+"presses)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:104
+#: C/guitar-tuner.cpp.page:105
 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. "
-"Also change the <gui>Name</gui> property to <gui>button_E</gui>. This is the "
+"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. Also change the <gui>Name</gui> property to <gui>button_E</gui>. This 
is the "
 "name we will refer to the widget later in code."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:108
+#: C/guitar-tuner.cpp.page:109
 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> "
-"and the names <em>button_A</em>, etc."
+"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> and the names <em>button_A</em>, etc."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:111
-msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and close the file."
+#: C/guitar-tuner.cpp.page:112
+msgid "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></guiseq>) and close the file."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:118
+#: C/guitar-tuner.cpp.page:119
 msgid ""
-"GStreamer is GNOME's multimedia framework — you can use it for playing, "
-"recording, and processing video, audio, webcam streams and the like. Here, "
-"we'll be using it to produce single-frequency tones. GStreamermm is the C++ "
+"GStreamer is GNOME's multimedia framework — you can use it for playing, recording, and processing video, 
audio, "
+"webcam streams and the like. Here, we'll be using it to produce single-frequency tones. GStreamermm is the 
C++ "
 "binding to GStreamer which we will use here."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.cpp.page:128
+#: C/guitar-tuner.cpp.page:129
 msgid "Using GStreamermm"
 msgstr "Verwendung von GStreamermm"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:129
+#: C/guitar-tuner.cpp.page:130
 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> "
-"line in <file>main.cc</file>:"
+"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> line in <file>main.cc</file>:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.cpp.page:131
+#: C/guitar-tuner.cpp.page:132
 #, no-wrap
 msgid "\tGst::init (argc, argv);"
 msgstr "\tGst::init (argc, argv);"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:132
+#: C/guitar-tuner.cpp.page:133
 msgid ""
-"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
-"included in <file>main.cc</file> properly."
+"While we are on it, also make sure that the <file>gstreamermm.h</file> is included in <file>main.cc</file> "
+"properly."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:136
+#: C/guitar-tuner.cpp.page:137
 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 "
-"example simple, whereas you might usually want to use a separate file:"
+"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 example simple, whereas you might usually want to use a separate 
file:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.cpp.page:139
+#: C/guitar-tuner.cpp.page:140
 #, no-wrap
 msgid ""
 "\n"
@@ -12286,68 +15708,102 @@ msgid ""
 "\treturn false;\n"
 "}\n"
 msgstr ""
+"\n"
+"class Sound\n"
+"{\n"
+"\tpublic:\n"
+"\t\tSound();\n"
+"\n"
+"\t\tvoid start_playing(double frequency);\n"
+"\t\tbool stop_playing();\n"
+"\n"
+"\tprivate:\n"
+"\t\tGlib::RefPtr&lt;Gst::Pipeline&gt; m_pipeline;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_source;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_sink;\n"
+"};\n"
+"\n"
+"Sound::Sound()\n"
+"{\n"
+"\tm_pipeline = Gst::Pipeline::create(\"note\");\n"
+"\tm_source = Gst::ElementFactory::create_element(\"audiotestsrc\",\n"
+"\t                                               \"source\");\n"
+"\tm_sink = Gst::ElementFactory::create_element(\"autoaudiosink\",\n"
+"\t                                             \"output\");\n"
+"\tm_pipeline-&gt;add(m_source);\n"
+"\tm_pipeline-&gt;add(m_sink);\n"
+"\tm_source-&gt;link(m_sink);\n"
+"}\n"
+"\n"
+"void Sound::start_playing (double frequency)\n"
+"{\n"
+"\tm_source-&gt;set_property(\"freq\", frequency);\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tGlib::signal_timeout().connect(sigc::mem_fun(*this, &amp;Sound::stop_playing),\n"
+"\t                               200);\n"
+"}\n"
+"\n"
+"bool Sound::stop_playing()\n"
+"{\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_NULL);\n"
+"\treturn false;\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:183
+#: C/guitar-tuner.cpp.page:184
 msgid "The code has the following purpose:"
 msgstr "Der Code hat den folgenden Zweck:"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:186
+#: C/guitar-tuner.cpp.page:187
 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 "
-"container for the other two elements). The pipeline is given the name \"note"
-"\"; the source is named \"source\" and is set to the <code>audiotestsrc</"
-"code> source; and the sink is named \"output\" and set to the "
-"<code>autoaudiosink</code> sink (default sound card output). After the "
-"elements have been added to the pipeline and linked together, the pipeline "
-"is ready to run."
+"In the constructor, source and sink GStreamer elements (<code>Gst::Element</code>) are created, and a 
pipeline "
+"element (which will be used as a container for the other two elements). The pipeline is given the name 
\"note\"; "
+"the source is named \"source\" and is set to the <code>audiotestsrc</code> source; and the sink is named 
\"output"
+"\" and set to the <code>autoaudiosink</code> sink (default sound card output). After the elements have been 
added "
+"to the pipeline and linked together, the pipeline is ready to run."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:189
+#: C/guitar-tuner.cpp.page:190
 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. "
-"As we don't want to have the annoying sound for ages, a timeout is set up to "
+"<code>start_playing</code> sets the source element to play a particular frequency and then starts the 
pipeline so "
+"the sound actually starts playing. As we don't want to have the annoying sound for ages, a timeout is set 
up to "
 "stop the pipeline after 200 ms by calling <code>stop_playing</code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:194
+#: C/guitar-tuner.cpp.page:195
 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 "
-"GStreamermm uses reference counting through the <code>Glib::RefPtr</code> "
-"object, the memory is automatically freed once the <code>Sound</code> class "
-"is destroyed."
+"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 GStreamermm uses reference counting through the 
<code>Glib::RefPtr</code> "
+"object, the memory is automatically freed once the <code>Sound</code> class is destroyed."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.cpp.page:202
+#: C/guitar-tuner.cpp.page:203
 msgid "Connecting the signals"
 msgstr "Verbinden der Signale"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:203
+#: C/guitar-tuner.cpp.page:204
 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 "
-"button. We also want to provide information to the called function which "
-"tone to play. GTKmm makes that quite easy as we can easily bind information "
-"with the <em>sigc</em> library."
+"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 button. We also want to provide information to the called function 
which "
+"tone to play. GTKmm makes that quite easy as we can easily bind information with the <em>sigc</em> library."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:208
+#: C/guitar-tuner.cpp.page:209
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.cpp.page:210
+#: C/guitar-tuner.cpp.page:211
 #, no-wrap
 msgid ""
 "\n"
@@ -12357,26 +15813,30 @@ msgid ""
 "\tsound-&gt;start_playing (frequency);\n"
 "}\n"
 msgstr ""
+"\n"
+"static void\n"
+"on_button_clicked(double frequency, Sound* sound)\n"
+"{\n"
+"\tsound-&gt;start_playing (frequency);\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:217
+#: C/guitar-tuner.cpp.page:218
 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 "
-"directly connect to the class without using the function but we will leave "
-"that to use as an exercise."
+"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 directly connect to the class without using the function but we will leave 
that to "
+"use as an exercise."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:221
+#: C/guitar-tuner.cpp.page:222
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.cpp.page:223
+#: C/guitar-tuner.cpp.page:224
 #, no-wrap
 msgid ""
 "\n"
@@ -12387,157 +15847,151 @@ msgid ""
 "button-&gt;signal_clicked().connect (sigc::bind&lt;double, 
Sound*&gt;(sigc::ptr_fun(&amp;on_button_clicked),\n"
 "                                              329.63, &amp;sound));\n"
 msgstr ""
+"\n"
+"Sound sound;\n"
+"Gtk::Button* button;\n"
+"\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"
+"                                              329.63, &amp;sound));\n"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:233
+#: C/guitar-tuner.cpp.page:234
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:237
+#: C/guitar-tuner.cpp.page:238
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.cpp.page:241
+#: C/guitar-tuner.cpp.page:242
 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 "
-"actually want to pass the frequency and our helper class to the signal "
-"handler. <code>sigc::ptr_fun(&amp;on_button_clicked)</code> creates a "
-"<em>slot</em> for the <code>on_button_clicked</code> method we defined "
-"above. With <code>sigc::bind</code> we are able to pass additional arguments "
-"to the slot and in this case we pass the frequency (as double) and our "
-"helper class."
+"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 actually want to pass the frequency and our helper class to the signal handler. 
<code>sigc::"
+"ptr_fun(&amp;on_button_clicked)</code> creates a <em>slot</em> for the <code>on_button_clicked</code> 
method we "
+"defined above. With <code>sigc::bind</code> we are able to pass additional arguments to the slot and in 
this case "
+"we pass the frequency (as double) and our helper class."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:248
+#: C/guitar-tuner.cpp.page:249
 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, "
-"783.99 for G, 987.77 for B and 1318.5 for the high E. This is done in the "
+"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, 783.99 for G, 987.77 for B and 1318.5 for the high E. This is done in 
the "
 "same way, just passing a different frequency to the handler."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:255
+#: C/guitar-tuner.cpp.page:256
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:261
+#: C/guitar-tuner.cpp.page:262
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
+"If you run into problems with the tutorial, compare your code with this <link 
href=\"guitar-tuner/guitar-tuner.cc"
+"\">reference code</link>."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.cpp.page:265
+#: C/guitar-tuner.cpp.page:266
 msgid "Further Reading"
 msgstr "Weitere Informationen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.cpp.page:266
+#: C/guitar-tuner.cpp.page:267
 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> "
-"which also covers a lot more key concept for using the full power of GTKmm. "
-"You might also be interested in the <link href=\"http://library.gnome.org/";
-"devel/gstreamermm/\">GStreamermm reference documentation</link>."
+"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> which also covers a lot more key concept for using the full power of 
GTKmm. "
+"You might also be interested in the <link href=\"http://library.gnome.org/devel/gstreamermm/\";>GStreamermm "
+"reference documentation</link>."
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/guitar-tuner.js.page:6
+#: C/guitar-tuner.js.page:7
 msgctxt "text"
 msgid "Guitar tuner (JavaScript)"
 msgstr "Gitarrenstimmgerät (JavaScript)"
 
 #. (itstool) path: info/desc
-#: C/guitar-tuner.js.page:16
-msgid ""
-"Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME."
+#: C/guitar-tuner.js.page:17
+msgid "Use GTK+ and GStreamer to build a simple guitar tuner application for GNOME."
 msgstr ""
 
 #. (itstool) path: synopsis/p
-#: C/guitar-tuner.js.page:22
+#: C/guitar-tuner.js.page:23
 msgid ""
-"In this tutorial we'll construct a small application, Guitar Tuner, using "
-"JavaScript and GTK+ and GStreamer. To do and run all the code examples "
-"yourself, you need an editor to write code in, terminal and GNOME 3. or "
-"higher installed into your computer."
+"In this tutorial we'll construct a small application, Guitar Tuner, using JavaScript and GTK+ and 
GStreamer. To do "
+"and run all the code examples yourself, you need an editor to write code in, terminal and GNOME 3. or 
higher "
+"installed into your computer."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:24
-#, fuzzy
+#: C/guitar-tuner.js.page:25
 #| msgid "An example GStreamer pipeline."
 msgid "<link xref=\"#gstreamer\">GStreamer pipelines</link>"
-msgstr "Eine Beispiel-Weiterleitung in GStreamer."
+msgstr "<link xref=\"#gstreamer\">GStreamer-Weiterleitungen</link>"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:25 C/weatherAppMain.js.page:22
+#: C/guitar-tuner.js.page:26 C/weatherAppMain.js.page:23
 msgid "<link xref=\"#script\">Script for running the application</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:26 C/weatherAppMain.js.page:23
+#: C/guitar-tuner.js.page:27 C/weatherAppMain.js.page:24
 msgid "<link xref=\"#imports\">Libraries to import</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:27 C/weatherAppMain.js.page:24
-msgid ""
-"<link xref=\"#mainwindow\">Creating the main window for the application</"
-"link>"
+#: C/guitar-tuner.js.page:28 C/weatherAppMain.js.page:25
+msgid "<link xref=\"#mainwindow\">Creating the main window for the application</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:28
+#: C/guitar-tuner.js.page:29
 msgid "<link xref=\"#buttons\">Buttons for the tunes</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:29
+#: C/guitar-tuner.js.page:30
 msgid "<link xref=\"#playSound\">Making the sounds with GStreamer</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:30
+#: C/guitar-tuner.js.page:31
 msgid "<link xref=\"#connecting\">Connecting buttons to playSound</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:31
+#: C/guitar-tuner.js.page:32
 msgid "<link xref=\"#guitarjs\">The whole program</link>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.js.page:32
+#: C/guitar-tuner.js.page:33
 msgid "<link xref=\"#terminal\">Running the application form Terminal</link>"
 msgstr ""
 
 #. (itstool) path: page/p
-#: C/guitar-tuner.js.page:35 C/weatherApp.js.page:39
+#: C/guitar-tuner.js.page:36 C/weatherApp.js.page:40
 msgid "After reading this tutorial, you should see this in your screen:"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:47 C/hello-world.js.page:45
-#: C/weatherAppMain.js.page:32
+#: C/guitar-tuner.js.page:48 C/hello-world.js.page:46 C/weatherAppMain.js.page:33
 msgid "Script for running the application"
 msgstr "Skript zum Ausführen der Anwendung"
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:48 C/weatherAppMain.js.page:33
+#: C/guitar-tuner.js.page:49 C/weatherAppMain.js.page:34
 #, no-wrap
 msgid ""
 "\n"
@@ -12547,18 +16001,16 @@ msgstr ""
 "  #!/usr/bin/gjs"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:50
+#: C/guitar-tuner.js.page:51
 msgid ""
-"This line tells how to run the script. It needs to be the first line of the "
-"code and it needs to be executable. To get the execution rights go to "
-"terminal and run in right folder: chmod +x scriptname. Or you can use the "
-"graphical filemanager. Just go to the right folder where your code is, right "
-"click you code file, choose properties, click the permissions tab and check "
-"the box for allow executing file as a program"
+"This line tells how to run the script. It needs to be the first line of the code and it needs to be 
executable. To "
+"get the execution rights go to terminal and run in right folder: chmod +x scriptname. Or you can use the 
graphical "
+"filemanager. Just go to the right folder where your code is, right click you code file, choose properties, 
click "
+"the permissions tab and check the box for allow executing file as a program"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:55
+#: C/guitar-tuner.js.page:56
 #, no-wrap
 msgid ""
 "\n"
@@ -12574,26 +16026,22 @@ msgstr ""
 "const Mainloop = imports.mainloop;"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:60
+#: C/guitar-tuner.js.page:61
 msgid ""
-"In order to have a working program we need to import a few GObject "
-"Introspection -libraries to our use. For working UI, we need Gtk and for "
-"Gstreamer to work we need Gst. These are imported in the beginning so we "
-"have them at use everywhere. Also in the beginning we import a construct "
-"Mainloop to handle the timeout to be used with the tuning sounds."
+"In order to have a working program we need to import a few GObject Introspection -libraries to our use. For 
"
+"working UI, we need Gtk and for Gstreamer to work we need Gst. These are imported in the beginning so we 
have them "
+"at use everywhere. Also in the beginning we import a construct Mainloop to handle the timeout to be used 
with the "
+"tuning sounds."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:63 C/hello-world.c.page:48 C/hello-world.js.page:58
-#: C/hello-world.py.page:51 C/hello-world.vala.page:43
-#: C/weatherAppMain.js.page:48
-#, fuzzy
-#| msgid "Designing the application"
+#: C/guitar-tuner.js.page:64 C/hello-world.js.page:59 C/hello-world.py.page:52 C/hello-world.vala.page:44
+#: C/weatherAppMain.js.page:49
 msgid "Creating the main window for the application"
-msgstr "Entwurf der Anwendung"
+msgstr "Erstellen des Hauptfensters der Anwendung"
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:64
+#: C/guitar-tuner.js.page:65
 #, no-wrap
 msgid ""
 "\n"
@@ -12619,22 +16067,21 @@ msgstr ""
 "Gtk.main();"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:74
+#: C/guitar-tuner.js.page:75
 msgid ""
-"Importing Gtk and Gst is not enough, we need to initialize them in order to "
-"get them working. When Gtk and Gst are up and running we need to create the "
-"window for the application. Later we are going to put all the buttons for "
-"making sounds inside this window. In order to get the window showing, we "
-"need to tell it to show and we need also to run the code with the Gtk.main()"
+"Importing Gtk and Gst is not enough, we need to initialize them in order to get them working. When Gtk and 
Gst are "
+"up and running we need to create the window for the application. Later we are going to put all the buttons 
for "
+"making sounds inside this window. In order to get the window showing, we need to tell it to show and we 
need also "
+"to run the code with the Gtk.main()"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:77
+#: C/guitar-tuner.js.page:78
 msgid "Buttons for the tunes"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:78
+#: C/guitar-tuner.js.page:79
 #, no-wrap
 msgid ""
 "\n"
@@ -12680,32 +16127,29 @@ msgstr ""
 "guitar_box.show_all();"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:98
+#: C/guitar-tuner.js.page:99
 msgid ""
-"Because Gtk.Window can only contain a single widget, we need to create "
-"something under it to be able to add all the necessary buttons inside it. In "
-"this example we use Buttonbox. After creating the Buttonbox we create "
-"buttons with necessary labels. After we have the buttons we need to add them "
-"to the Buttonbox and the Buttonbox must be added to the Gtk.Window and "
-"everything in the Buttonbox must be shown."
+"Because Gtk.Window can only contain a single widget, we need to create something under it to be able to add 
all "
+"the necessary buttons inside it. In this example we use Buttonbox. After creating the Buttonbox we create 
buttons "
+"with necessary labels. After we have the buttons we need to add them to the Buttonbox and the Buttonbox 
must be "
+"added to the Gtk.Window and everything in the Buttonbox must be shown."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:99
+#: C/guitar-tuner.js.page:100
 msgid ""
-"After this stage you should have a window appearing to your screen showing 6 "
-"buttons. Right now the buttons don't do anything and we shall address that "
-"issue later. Before we can connect the button signals to something we need "
+"After this stage you should have a window appearing to your screen showing 6 buttons. Right now the buttons 
don't "
+"do anything and we shall address that issue later. Before we can connect the button signals to something we 
need "
 "to code that something first."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:102
+#: C/guitar-tuner.js.page:103
 msgid "Making the sounds with GStreamer"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:103
+#: C/guitar-tuner.js.page:104
 #, no-wrap
 msgid ""
 "\n"
@@ -12713,8 +16157,8 @@ msgid ""
 "\n"
 "function playSound(frequency){\n"
 "  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
-"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
-"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"  var source = Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
 "\n"
 "  source.set_property('freq', frequency);\n"
 "  pipeline.add(source);\n"
@@ -12728,36 +16172,51 @@ msgid ""
 "  });\n"
 "}"
 msgstr ""
+"\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"
+"  var source = Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.NULL);\n"
+"\t  return false;\n"
+"  });\n"
+"}"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:122
+#: C/guitar-tuner.js.page:123
 msgid ""
-"The first thing we need to do is decide what tunes we want to make when we "
-"push a button. The frequencies list takes care of that. After that we get to "
-"actually making the sounds with the function playSound. For function "
-"playSound we give as an input a frequency (that we just defined in the "
-"frequencies variable). First thing we need to construct is a pipeline, a "
-"source and a sink. For the source we set the frequency. To the pipeline we "
-"add both the source and the sink and then we tell it to keep playing. As a "
-"last thing we use the const Mainloop to get the pipeline to stop after a "
-"500ms."
+"The first thing we need to do is decide what tunes we want to make when we push a button. The frequencies 
list "
+"takes care of that. After that we get to actually making the sounds with the function playSound. For 
function "
+"playSound we give as an input a frequency (that we just defined in the frequencies variable). First thing 
we need "
+"to construct is a pipeline, a source and a sink. For the source we set the frequency. To the pipeline we 
add both "
+"the source and the sink and then we tell it to keep playing. As a last thing we use the const Mainloop to 
get the "
+"pipeline to stop after a 500ms."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:123
+#: C/guitar-tuner.js.page:124
 msgid ""
-"Now we have the method of playing a tune when clicking a button. Next well "
-"make the conncetions between pushing a button and playing the correct sound "
-"from that button."
+"Now we have the method of playing a tune when clicking a button. Next well make the connections between 
pushing a "
+"button and playing the correct sound from that button."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:126
+#: C/guitar-tuner.js.page:127
 msgid "Connecting buttons to playSound"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:127
+#: C/guitar-tuner.js.page:128
 #, no-wrap
 msgid ""
 "\n"
@@ -12780,35 +16239,50 @@ msgid ""
 "  playSound(frequencies.e);\n"
 "});"
 msgstr ""
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:146
+#: C/guitar-tuner.js.page:147
 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 <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."
+"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 <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 ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:156
+#: C/guitar-tuner.js.page:157
 msgid "The whole program"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:157
+#: C/guitar-tuner.js.page:158
 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)."
+"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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.js.page:158
+#: C/guitar-tuner.js.page:159
 #, no-wrap
 msgid ""
 "\n"
@@ -12840,8 +16314,8 @@ msgid ""
 "function playSound(frequency){\n"
 "  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
 "\n"
-"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
-"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"  var source = Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
 "\n"
 "  source.set_property('freq', frequency);\n"
 "  pipeline.add(source);\n"
@@ -12887,146 +16361,212 @@ msgid ""
 "guitarwindow.show();\n"
 "Gtk.main();"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;\n"
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Guitar Tuner\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"var guitar_box = new Gtk.ButtonBox ({orientation: Gtk.Orientation.VERTICAL, spacing: 10});\n"
+"\n"
+"var E = new Gtk.Button({label: \"E\"});\n"
+"var A = new Gtk.Button({label: \"A\"});\n"
+"var D = new Gtk.Button({label: \"D\"});\n"
+"var G = new Gtk.Button({label: \"G\"});\n"
+"var B = new Gtk.Button({label: \"B\"});\n"
+"var e = new Gtk.Button({label: \"e\"});\n"
+"\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"
+"  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
+"\n"
+"  var source = Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.NULL);\n"
+"\t  return false;\n"
+"});\n"
+"}\n"
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});\n"
+"\n"
+"guitar_box.add(E);\n"
+"guitar_box.add(A);\n"
+"guitar_box.add(D);\n"
+"guitar_box.add(G);\n"
+"guitar_box.add(B);\n"
+"guitar_box.add(e);\n"
+"\n"
+"guitarwindow.add(guitar_box);\n"
+"\n"
+"guitar_box.show_all();\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.js.page:236
+#: C/guitar-tuner.js.page:237
 msgid "Running the application form Terminal"
 msgstr "Die Anwendung im Terminal ausführen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:237
-msgid ""
-"To run this application open Terminal, go to the folder where your "
-"application is stored and then run"
+#: C/guitar-tuner.js.page:238
+msgid "To run this application open Terminal, go to the folder where your application is stored and then run"
 msgstr ""
 
 #. (itstool) path: section/screen
-#: C/guitar-tuner.js.page:237
+#: C/guitar-tuner.js.page:238
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
-msgstr ""
+msgstr " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.js.page:242
+#: C/guitar-tuner.js.page:243
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.js\">reference code</link>."
+"If you run into problems with the tutorial, compare your code with this <link 
href=\"guitar-tuner/guitar-tuner.js"
+"\">reference code</link>."
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/guitar-tuner.py.page:7
+#: C/guitar-tuner.py.page:8
 msgctxt "text"
 msgid "Guitar tuner (Python)"
 msgstr "Gitarrenstimmgerät (Python)"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:45
+#: C/guitar-tuner.py.page:46
 msgid "Basic knowledge of the Python programming language"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:59
+#: C/guitar-tuner.py.page:60
 msgid ""
-"Choose <gui>PyGTK (automake)</gui> from the <gui>Python</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."
+"Choose <gui>PyGTK (automake)</gui> from the <gui>Python</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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:62
+#: C/guitar-tuner.py.page:63
 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</"
-"gui> tabs. You should see some code which starts with the lines:"
+"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</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/guitar-tuner.py.page:63
+#: C/guitar-tuner.py.page:64
 #, no-wrap
 msgid ""
 "\n"
 "from gi.repository import Gtk, GdkPixbuf, Gdk\n"
 "import os, sys"
 msgstr ""
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys"
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.py.page:71
+#: C/guitar-tuner.py.page:72
 msgid "Run the code for the first time"
 msgstr "Erste Ausführung des Codes"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:72
+#: C/guitar-tuner.py.page:73
 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:"
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:76
+#: C/guitar-tuner.py.page:77
 msgid ""
-"The <code>import</code> lines at the top include the tell Python to load the "
-"user interface and system libraries needed."
+"The <code>import</code> lines at the top include the tell Python to load the user interface and system 
libraries "
+"needed."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:80
+#: C/guitar-tuner.py.page:81
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:83
+#: C/guitar-tuner.py.page:84
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:86
+#: C/guitar-tuner.py.page:87
 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."
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:91
+#: C/guitar-tuner.py.page:92
 msgid ""
-"This code is ready to be used, so you can run it by clicking "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+"This code is ready to be used, so you can run it by clicking 
<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:96
+#: C/guitar-tuner.py.page:97
 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>. "
-"This will switch to the interface designer. The design window is in the "
-"center; widgets and widgets' properties are on the right, and the palette of "
-"available widgets is on the left."
+"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>. This will switch to the interface designer. The design window is in the 
center; "
+"widgets and widgets' properties are on the right, and the palette of available widgets is on the left."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.py.page:126
+#: C/guitar-tuner.py.page:127
 msgid "Write the signal handler"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:128
+#: C/guitar-tuner.py.page:129
 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 "
-"to set the signal name. Now take the row where you set the <gui>clicked</"
-"gui> signal and drag it into to the source file inside the class. The "
-"following code will be added to your source file:"
+"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 to set the signal name. Now take the row where you set the "
+"<gui>clicked</gui> signal and drag it into to the source file inside the class. The following code will be 
added "
+"to your source file:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:130
+#: C/guitar-tuner.py.page:131
 #, no-wrap
 msgid ""
 "\n"
@@ -13036,48 +16576,43 @@ msgstr ""
 "def on_button_clicked (self, button):\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:134
+#: C/guitar-tuner.py.page:135
 msgid ""
-"This signal handler has two arguments: the usual Python class pointer, and "
-"the <code>Gtk.Button</code> that called the function."
+"This signal handler has two arguments: the usual Python class pointer, and the <code>Gtk.Button</code> that 
called "
+"the function."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:152
-msgid ""
-"Change the import line in <file>guitar_tuner.py</file>, just at the "
-"beginning to :"
+#: C/guitar-tuner.py.page:153
+msgid "Change the import line in <file>guitar_tuner.py</file>, just at the beginning to :"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:153
+#: C/guitar-tuner.py.page:154
 #, no-wrap
 msgid "from gi.repository import Gtk, Gst, GObject "
 msgstr "from gi.repository import Gtk, Gst, GObject "
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:154
+#: C/guitar-tuner.py.page:155
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:157
+#: C/guitar-tuner.py.page:158
 #, no-wrap
 msgid "Gst.init_check(sys.argv)"
 msgstr "Gst.init_check(sys.argv)"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:158
-msgid ""
-"Then, copy the following function into the class in <file>guitar_tuner.py</"
-"file> somewhere:"
+#: C/guitar-tuner.py.page:159
+msgid "Then, copy the following function into the class in <file>guitar_tuner.py</file> somewhere:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:159
+#: C/guitar-tuner.py.page:160
 #, no-wrap
 msgid ""
 "\n"
@@ -13094,65 +16629,70 @@ msgid ""
 "\n"
 "\tGObject.timeout_add(self.LENGTH, self.pipeline_stop, pipeline)"
 msgstr ""
+"\n"
+"def play_sound(self, frequency):\n"
+"\tpipeline = Gst.Pipeline(name='note')\n"
+"\tsource = Gst.ElementFactory.make('audiotestsrc', 'src')\n"
+"\tsink = Gst.ElementFactory.make('autoaudiosink', 'output')\n"
+"\n"
+"\tsource.set_property('freq', frequency)\n"
+"\tpipeline.add(source)\n"
+"\tpipeline.add(sink)\n"
+"\tsource.link(sink)\n"
+"\tpipeline.set_state(Gst.State.PLAYING)\n"
+"\n"
+"\tGObject.timeout_add(self.LENGTH, self.pipeline_stop, pipeline)"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:174
+#: C/guitar-tuner.py.page:175
 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 "
-"elements). The pipeline is given the name \"note\"; the source is named "
-"\"source\" and is set to the <code>audiotestsrc</code> source; and the sink "
-"is named \"output\" and set to the <code>autoaudiosink</code> sink (default "
-"sound card output)."
+"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 elements). The pipeline is given the name \"note\"; the source is named 
\"source\" and "
+"is set to the <code>audiotestsrc</code> source; and the sink is named \"output\" and set to the "
+"<code>autoaudiosink</code> sink (default sound card output)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:177
+#: C/guitar-tuner.py.page:178
 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 "
-"as an argument to the <code>play_sound</code> function. This is just the "
-"frequency of the note in Hertz; some useful frequencies will be defined "
-"later on."
+"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 as an argument to the <code>play_sound</code> function. This is 
just the "
+"frequency of the note in Hertz; some useful frequencies will be defined later on."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:180
+#: C/guitar-tuner.py.page:181
 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 "
-"elements. In general, you can add as many elements as you like to the "
-"pipeline by calling its <code>add</code> method repeatedly."
+"The next two lines call <code>pipeline.add</code>, putting the source and sink into the pipeline. The 
pipeline can "
+"contain multiple other GStreamer elements. In general, you can add as many elements as you like to the 
pipeline by "
+"calling its <code>add</code> method repeatedly."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.py.page:183
+#: C/guitar-tuner.py.page:184
 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>)."
+"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>)."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:191
+#: C/guitar-tuner.py.page:192
 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>. "
-"This sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
-"milliseconds before calling the function <code>pipeline_stop</code>, and "
-"will keep calling it until <code>pipeline_stop</code> returns <code>False</"
-"code>."
+"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>. This sets a timeout for stopping the sound; it waits for 
<code>LENGTH</code> "
+"milliseconds before calling the function <code>pipeline_stop</code>, and will keep calling it until "
+"<code>pipeline_stop</code> returns <code>False</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:192
+#: C/guitar-tuner.py.page:193
 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> "
-"the <code>play_sound</code> function:"
+"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> the <code>play_sound</code> function:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:193
+#: C/guitar-tuner.py.page:194
 #, no-wrap
 msgid ""
 "\n"
@@ -13162,14 +16702,14 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:198
+#: C/guitar-tuner.py.page:199
 msgid ""
-"You need to define the <code>LENGTH</code> constant inside the class, so add "
-"this code at the beginning of the main class:"
+"You need to define the <code>LENGTH</code> constant inside the class, so add this code at the beginning of 
the "
+"main class:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:200
+#: C/guitar-tuner.py.page:201
 #, no-wrap
 msgid ""
 "\n"
@@ -13179,23 +16719,20 @@ msgstr ""
 "LENGTH = 500\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:203
-msgid ""
-"The call to <code>pipeline.set_state</code> stops the playback of the "
-"pipeline."
+#: C/guitar-tuner.py.page:204
+msgid "The call to <code>pipeline.set_state</code> stops the playback of the pipeline."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:208
+#: C/guitar-tuner.py.page:209
 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 "
-"defined (at the beginning of the main class) inside a dictionary so we can "
+"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 defined (at the beginning of the main class) inside a dictionary so we 
can "
 "easily map them to the names of the strings:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:210
+#: C/guitar-tuner.py.page:211
 #, no-wrap
 msgid ""
 "\n"
@@ -13209,9 +16746,19 @@ msgid ""
 "\t'e': 1318.5\n"
 "}\n"
 msgstr ""
+"\n"
+"# Frequencies of the strings\n"
+"frequencies = {\n"
+"\t'E': 329.63,\n"
+"\t'A': 440,\n"
+"\t'D': 587.33,\n"
+"\t'G': 783.99,\n"
+"\t'B': 987.77,\n"
+"\t'e': 1318.5\n"
+"}\n"
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.py.page:222
+#: C/guitar-tuner.py.page:223
 #, no-wrap
 msgid ""
 "\n"
@@ -13221,318 +16768,290 @@ msgid ""
 "\n"
 "\tself.play_sound (self.frequencies[text])\n"
 msgstr ""
+"\n"
+"def on_button_clicked(self, button):\n"
+"\tlabel = button.get_child()\n"
+"\ttext = label.get_label()\n"
+"\n"
+"\tself.play_sound (self.frequencies[text])\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:229
+#: C/guitar-tuner.py.page:230
 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 "
-"using <code>button.get_child</code>, and then get the text from that label "
+"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 using <code>button.get_child</code>, and then get the text from that 
label "
 "using <code>label.get_label</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:230
+#: C/guitar-tuner.py.page:231
 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!"
+"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 ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.py.page:234 C/image-viewer.js.page:310
-#: C/image-viewer.py.page:224 C/record-collection.js.page:291
+#: C/guitar-tuner.py.page:235 C/image-viewer.js.page:311 C/image-viewer.py.page:225 
C/record-collection.js.page:292
 msgid "Run the application"
 msgstr "Anwendung ausführen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:235
+#: C/guitar-tuner.py.page:236
 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!"
+"All of the code should now be ready to go. Click <guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start 
the "
+"application. Enjoy!"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.py.page:240
+#: C/guitar-tuner.py.page:241
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
+"If you run into problems with the tutorial, compare your code with this <link 
href=\"guitar-tuner/guitar-tuner.py"
+"\">reference code</link>."
 msgstr ""
 
 #. (itstool) path: info/desc
-#: C/guitar-tuner.vala.page:9
+#: C/guitar-tuner.vala.page:10
 msgid ""
-"Use <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
-"\">GTK+</link> and <link href=\"http://developer.gnome.org/platform-overview/";
-"stable/gstreamer\">GStreamer</link> to build a simple guitar tuner "
+"Use <link href=\"http://developer.gnome.org/platform-overview/stable/gtk\";>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 ""
 
 #. (itstool) path: synopsis/p
-#: C/guitar-tuner.vala.page:34
+#: C/guitar-tuner.vala.page:35
 msgid ""
-"In this tutorial you will create an application which plays tones that you "
-"can use to tune a guitar. You will learn how to:"
+"In this tutorial you will create an application which plays tones that you can use to tune a guitar. You 
will "
+"learn how to:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:36
-msgid ""
-"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
-"link>."
+#: C/guitar-tuner.vala.page:37
+msgid "Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</link>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:37
+#: C/guitar-tuner.vala.page:38
 msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:38
+#: C/guitar-tuner.vala.page:39
 msgid ""
-"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
-"gstreamer\">GStreamer</link> library to play sounds."
+"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/gstreamer\";>GStreamer</link> 
library to "
+"play sounds."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:42 C/image-viewer.vala.page:47
-msgid ""
-"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
-"\">Vala</link> programming language."
+#: C/guitar-tuner.vala.page:43 C/image-viewer.vala.page:48
+msgid "Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial\";>Vala</link> programming 
language."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:43 C/image-viewer.vala.page:48
+#: C/guitar-tuner.vala.page:44 C/image-viewer.vala.page:49
 msgid "An installed copy of <app>Anjuta</app>."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.vala.page:50
+#: C/guitar-tuner.vala.page:51
 msgid "Create a project in <app>Anjuta</app>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:54 C/image-viewer.vala.page:62
+#: C/guitar-tuner.vala.page:55 C/image-viewer.vala.page:63
 msgid ""
-"Start <app>Anjuta</app> and click <gui>Create a new project</gui> or "
-"<guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></guiseq> to open the "
-"project wizard."
+"Start <app>Anjuta</app> and click <gui>Create a new project</gui> or <guiseq><gui>File</gui><gui>New</"
+"gui><gui>Project</gui></guiseq> to open the project wizard."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:57
+#: C/guitar-tuner.vala.page:58
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:60
+#: C/guitar-tuner.vala.page:61
 msgid ""
-"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</"
-"gui>. On the next page, select <link href=\"http://valadoc.org/";
-"gstreamer-0.10/index.htm\"><em>gstreamer-0.10</em></link> from the list to "
-"include the GStreamer library in your project. Click <gui>Continue</gui>"
+"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</gui>. On the next page, select 
<link "
+"href=\"http://valadoc.org/gstreamer-0.10/index.htm\";><em>gstreamer-0.10</em></link> from the list to 
include the "
+"GStreamer library in your project. Click <gui>Continue</gui>"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:64
+#: C/guitar-tuner.vala.page:65
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. From the "
-"<gui>Project</gui> or <gui>Files</gui> tab, open <file>src/guitar_tuner."
-"vala</file> by double-clicking on it. You should see some code which starts "
-"with the lines:"
+"Click <gui>Apply</gui> and the project will be created for you. From the <gui>Project</gui> or 
<gui>Files</gui> "
+"tab, open <file>src/guitar_tuner.vala</file> by double-clicking on it. You should see some code which 
starts with "
+"the lines:"
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/guitar-tuner.vala.page:65 C/magic-mirror.vala.page:69
+#: C/guitar-tuner.vala.page:66 C/magic-mirror.vala.page:70
 #, no-wrap
 msgid ""
 "\n"
 "using GLib;\n"
 "using Gtk;"
 msgstr ""
+"\n"
+"using GLib;\n"
+"using Gtk;"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:74
+#: C/guitar-tuner.vala.page:75
 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:"
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:78 C/magic-mirror.vala.page:81
-msgid ""
-"The two <code>using</code> lines import namespaces so we don't have to name "
-"them explicitly."
+#: C/guitar-tuner.vala.page:79 C/magic-mirror.vala.page:82
+msgid "The two <code>using</code> lines import namespaces so we don't have to name them explicitly."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:81
+#: C/guitar-tuner.vala.page:82
 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 "
-"lines above), connecting its signals and then displaying it in a window. "
-"This GtkBuilder file contains a description of a user interface and all of "
-"its elements. You can use Anjuta's editor to design GtkBuilder user "
-"interfaces."
+"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 lines above), connecting its signals and then displaying it in a window. 
This "
+"GtkBuilder file contains a description of a user interface and all of its elements. You can use Anjuta's 
editor to "
+"design GtkBuilder user interfaces."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/guitar-tuner.vala.page:83
+#: C/guitar-tuner.vala.page:84
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:87
+#: C/guitar-tuner.vala.page:88
 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 "
-"up and then run the application. The <code>Gtk.main</code> function starts "
-"the GTK main loop, which runs the user interface and starts listening for "
-"events (like clicks and key presses)."
+"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 up and then run the application. The <code>Gtk.main</code> 
function "
+"starts the GTK main loop, which runs the user interface and starts listening for events (like clicks and 
key "
+"presses)."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:91
+#: C/guitar-tuner.vala.page:92
 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>). When you do this, a dialog "
-"will appear. Change the <gui>Configuration</gui> to <gui>Default</gui> and "
-"then click <gui>Execute</gui> to configure the build directory. You only "
-"need to do this once, for the first build."
+"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>). When you do this, a dialog will appear. 
Change "
+"the <gui>Configuration</gui> to <gui>Default</gui> and then click <gui>Execute</gui> to configure the build 
"
+"directory. You only need to do this once, for the first build."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:96
+#: C/guitar-tuner.vala.page:97
 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 "
-"the user interface, open <file>src/guitar_tuner.ui</file> by double-clicking "
-"on it in the <gui>Project</gui> or <gui>Files</gui> section. This will "
-"switch to the interface designer. The design window is in the center; "
-"<gui>Widgets</gui> and the widget properties are on the right, and the "
+"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 the user interface, open <file>src/guitar_tuner.ui</file> by 
double-"
+"clicking on it in the <gui>Project</gui> or <gui>Files</gui> section. This will switch to the interface 
designer. "
+"The design window is in the center; <gui>Widgets</gui> and the widget properties are on the right, and the "
 "<gui>Palette</gui> of available widgets is on the left."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:98
+#: C/guitar-tuner.vala.page:99
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:104
+#: C/guitar-tuner.vala.page:105
 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 "
-"click on the design window in the center to place it into the window. A "
-"dialog will display where you can set the <gui>Number of items</gui> to "
-"<input>6</input>. Then click <gui>Create</gui>."
+"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 click on the design window in the center to place it into the 
window. "
+"A dialog will display where you can set the <gui>Number of items</gui> to <input>6</input>. Then click "
+"<gui>Create</gui>."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/guitar-tuner.vala.page:105
+#: C/guitar-tuner.vala.page:106
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:109
+#: C/guitar-tuner.vala.page:110
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:112
+#: C/guitar-tuner.vala.page:113
 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."
+"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 ""
 
 #. (itstool) path: note/p
-#: C/guitar-tuner.vala.page:113
-msgid ""
-"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
-"the right."
+#: C/guitar-tuner.vala.page:114
+msgid "The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on the right."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:118
+#: C/guitar-tuner.vala.page:119
 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 "
-"use this to connect a signal handler that will be called when the button is "
-"clicked by the user. To do this, click on the signal and type "
-"<code>main_on_button_clicked</code> in the <gui>Handler</gui> column and "
-"press the <key>Enter</key>."
+"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 use this to connect a signal handler that will be called 
when "
+"the button is clicked by the user. To do this, click on the signal and type 
<code>main_on_button_clicked</code> in "
+"the <gui>Handler</gui> column and press the <key>Enter</key>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:131
+#: C/guitar-tuner.vala.page:132
 msgid ""
-"This section will show you how to create the code to produce sounds. <link "
-"href=\"http://developer.gnome.org/platform-overview/stable/gstreamer";
-"\">GStreamer</link> is GNOME's multimedia framework — you can use it for "
-"playing, recording, and processing video, audio, webcam streams and the "
-"like. Here, we'll be using it to produce single-frequency tones."
+"This section will show you how to create the code to produce sounds. <link 
href=\"http://developer.gnome.org/";
+"platform-overview/stable/gstreamer\">GStreamer</link> is GNOME's multimedia framework — you can use it for "
+"playing, recording, and processing video, audio, webcam streams and the like. Here, we'll be using it to 
produce "
+"single-frequency tones."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:132
+#: C/guitar-tuner.vala.page:133
 msgid ""
-"Conceptually, GStreamer works as follows: You create a <link href=\"http://";
-"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
-"basics-bins.html\"><em>pipeline</em></link> containing several processing "
-"elements going from the <em>source</em> to the <em>sink</em> (output). The "
-"source can be an image file, a video, or a music file, for example, and the "
-"output could be a widget or the soundcard."
+"Conceptually, GStreamer works as follows: You create a <link 
href=\"http://gstreamer.freedesktop.org/data/doc/";
+"gstreamer/head/manual/html/section-intro-basics-bins.html\"><em>pipeline</em></link> containing several 
processing "
+"elements going from the <em>source</em> to the <em>sink</em> (output). The source can be an image file, a 
video, "
+"or a music file, for example, and the output could be a widget or the soundcard."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:141
+#: C/guitar-tuner.vala.page:142
 msgid ""
-"In this example we will use a tone generator source called "
-"<code>audiotestsrc</code> and send the output to the default system sound "
-"device, <code>autoaudiosink</code>. We only need to configure the frequency "
-"of the tone generator; this is accessible through the <code>freq</code> "
-"property of <code>audiotestsrc</code>."
+"In this example we will use a tone generator source called <code>audiotestsrc</code> and send the output to 
the "
+"default system sound device, <code>autoaudiosink</code>. We only need to configure the frequency of the 
tone "
+"generator; this is accessible through the <code>freq</code> property of <code>audiotestsrc</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:143
+#: C/guitar-tuner.vala.page:144
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.vala.page:144
+#: C/guitar-tuner.vala.page:145
 #, no-wrap
 msgid "Gst.init (ref args);"
 msgstr "Gst::init (argc, argv);"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:145
-msgid ""
-"Then, copy the following function into <file>guitar_tuner.vala</file> inside "
-"our <code>Main</code> class:"
+#: C/guitar-tuner.vala.page:146
+msgid "Then, copy the following function into <file>guitar_tuner.vala</file> inside our <code>Main</code> 
class:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.vala.page:146
+#: C/guitar-tuner.vala.page:147
 #, no-wrap
 msgid ""
 "\n"
@@ -13567,92 +17086,109 @@ msgid ""
 "\ttime.attach(null);\n"
 "}"
 msgstr ""
+"\n"
+"Gst.Element sink;\n"
+"Gst.Element source;\n"
+"Gst.Pipeline pipeline;\n"
+"\n"
+"private void play_sound(double frequency)\n"
+"{\n"
+"\tpipeline = new Gst.Pipeline (\"note\");\n"
+"\tsource   = Gst.ElementFactory.make (\"audiotestsrc\",\n"
+"\t                                    \"source\");\n"
+"\tsink     = Gst.ElementFactory.make (\"autoaudiosink\",\n"
+"\t                                    \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tsource.set (\"freq\", frequency);\n"
+"\n"
+"\tpipeline.add (source);\n"
+"\tpipeline.add (sink);\n"
+"\tsource.link (sink);\n"
+"\n"
+"\tpipeline.set_state (Gst.State.PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tvar time = new TimeoutSource(200);\n"
+"\n"
+"\ttime.set_callback(() =&gt; {\n"
+"\t\tpipeline.set_state (Gst.State.NULL);\n"
+"\t\treturn false;\n"
+"\t});\n"
+"\ttime.attach(null);\n"
+"}"
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:180
+#: C/guitar-tuner.vala.page:181
 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</"
-"code></link>), and a <link href=\"http://valadoc.org/gstreamer-0.10/Gst.";
-"Pipeline.html\">pipeline element</link> (which will be used as a container "
-"for the other two elements). Those are class variables so they are defined "
-"outside the method. The pipeline is given the name \"note\"; the source is "
-"named \"source\" and is set to the <code>audiotestsrc</code> source; and the "
-"sink is named \"output\" and set to the <code>autoaudiosink</code> sink "
-"(default sound card output)."
+"The first three lines create source and sink GStreamer elements (<link 
href=\"http://valadoc.org/gstreamer-0.10/";
+"Gst.Element.html\"><code>Gst.Element</code></link>), and a <link 
href=\"http://valadoc.org/gstreamer-0.10/Gst.";
+"Pipeline.html\">pipeline element</link> (which will be used as a container for the other two elements). 
Those are "
+"class variables so they are defined outside the method. The pipeline is given the name \"note\"; the source 
is "
+"named \"source\" and is set to the <code>audiotestsrc</code> source; and the sink is named \"output\" and 
set to "
+"the <code>autoaudiosink</code> sink (default sound card output)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:183
+#: C/guitar-tuner.vala.page:184
 msgid ""
-"The call to <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html";
-"\"><code>source.set</code></link> sets the <code>freq</code> property of the "
-"source element to <code>frequency</code>, which is passed in as an argument "
-"to the <code>play_sound</code> function. This is just the frequency of the "
-"note in Hertz; some useful frequencies will be defined later on."
+"The call to <link 
href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html\";><code>source.set</code></link> sets "
+"the <code>freq</code> property of the source element to <code>frequency</code>, which is passed in as an 
argument "
+"to the <code>play_sound</code> function. This is just the frequency of the note in Hertz; some useful 
frequencies "
+"will be defined later on."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:186
+#: C/guitar-tuner.vala.page:187
 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 "
-"pipeline. The pipeline is a <link href=\"http://valadoc.org/gstreamer-0.10/";
-"Gst.Bin.html\"><code>Gst.Bin</code></link>, which is just an element that "
-"can contain multiple other GStreamer elements. In general, you can add as "
-"many elements as you like to the pipeline by adding more calls to "
-"<code>pipeline.add</code>."
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html\";><code>pipeline.add</code></link> puts the 
source "
+"and sink into the pipeline. The pipeline is a <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.html";
+"\"><code>Gst.Bin</code></link>, which is just an element that can contain multiple other GStreamer 
elements. In "
+"general, you can add as many elements as you like to the pipeline by adding more calls to 
<code>pipeline.add</"
+"code>."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:189
+#: C/guitar-tuner.vala.page:190
 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, "
-"so the output of source (a tone) goes into the input of sink (which is then "
-"output to the sound card). <link href=\"http://www.valadoc.org/";
-"gstreamer-0.10/Gst.Element.set_state.html\"><code>pipeline.set_state</code></"
-"link> is then used to start playback, by setting the <link href=\"http://www.";
-"valadoc.org/gstreamer-0.10/Gst.State.html\">state of the pipeline</link> to "
-"playing (<code>Gst.State.PLAYING</code>)."
+"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, so the output of source (a tone) goes into the input of sink (which is 
then "
+"output to the sound card). <link href=\"http://www.valadoc.org/gstreamer-0.10/Gst.Element.set_state.html";
+"\"><code>pipeline.set_state</code></link> is then used to start playback, by setting the <link 
href=\"http://www.";
+"valadoc.org/gstreamer-0.10/Gst.State.html\">state of the pipeline</link> to playing 
(<code>Gst.State.PLAYING</"
+"code>)."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/guitar-tuner.vala.page:192
+#: C/guitar-tuner.vala.page:193
 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/";
-"glib-2.0/GLib.TimeoutSource.html\"><code>TimeoutSource</code></link>. This "
-"sets a timeout for stopping the sound; it waits for 200 milliseconds before "
-"calling a signal handler defined inline that stops and destroys the "
-"pipeline. It returns <code>false</code> to remove itself from the timeout, "
-"otherwise it would continue to be called every 200 ms."
+"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/glib-2.0/GLib.TimeoutSource.html\";><code>TimeoutSource</code></link>. This 
sets a "
+"timeout for stopping the sound; it waits for 200 milliseconds before calling a signal handler defined 
inline that "
+"stops and destroys the pipeline. It returns <code>false</code> to remove itself from the timeout, otherwise 
it "
+"would continue to be called every 200 ms."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:203
+#: C/guitar-tuner.vala.page:204
 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 "
-"we type <gui>main_on_button_clicked</gui> which tells the UI designer that "
-"this method is part of our <code>Main</code>. We need to add that function "
-"in the source file."
+"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 we type <gui>main_on_button_clicked</gui> which tells the UI designer 
that "
+"this method is part of our <code>Main</code>. We need to add that function in the source file."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:204
+#: C/guitar-tuner.vala.page:205
 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 "
-"clicking on the tab in the center). Switch to the <gui>Signals</gui> tab on "
-"the right, which you used to set the signal name. Now take the row where you "
-"set the <gui>clicked</gui> signal and drag and drop it into to the source "
-"file at the beginning of the class. The following code will be added to your "
+"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 clicking on the tab in the center). Switch to the <gui>Signals</gui> tab 
on the "
+"right, which you used to set the signal name. Now take the row where you set the <gui>clicked</gui> signal 
and "
+"drag and drop it into to the source file at the beginning of the class. The following code will be added to 
your "
 "source file:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.vala.page:206
+#: C/guitar-tuner.vala.page:207
 #, no-wrap
 msgid ""
 "\n"
@@ -13660,41 +17196,40 @@ msgid ""
 "\n"
 "}"
 msgstr ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\n"
+"}"
 
 #. (itstool) path: note/p
-#: C/guitar-tuner.vala.page:211
-msgid ""
-"You can also just type the code at the beginning of the class instead of "
-"using the drag and drop."
+#: C/guitar-tuner.vala.page:212
+msgid "You can also just type the code at the beginning of the class instead of using the drag and drop."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:212
+#: C/guitar-tuner.vala.page:213
 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 "
-"the function (in our case, always a <link href=\"http://valadoc.org/gtk+-3.0/";
-"Gtk.Button.html\"><code>Gtk.Button</code></link>)."
+"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 the function (in our case, always a <link 
href=\"http://valadoc.org/";
+"gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.vala.page:218
+#: C/guitar-tuner.vala.page:219
 msgid "Define the signal handler"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:219
+#: C/guitar-tuner.vala.page:220
 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, "
-"<code>on_button_clicked</code>. We could have connected every button to a "
-"different signal handler, but that would lead to a lot of code duplication. "
-"Instead, we can use the label of the button to figure out which button was "
-"clicked:"
+"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, <code>on_button_clicked</code>. We could have connected every button to a different 
signal "
+"handler, but that would lead to a lot of code duplication. Instead, we can use the label of the button to 
figure "
+"out which button was clicked:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/guitar-tuner.vala.page:220
+#: C/guitar-tuner.vala.page:221
 #, no-wrap
 msgid ""
 "\n"
@@ -13724,42 +17259,65 @@ msgid ""
 "\t}\n"
 "}\n"
 msgstr ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\tvar label = sender.get_child () as Gtk.Label;\n"
+"\tswitch (label.get_label()) {\n"
+"\t\tcase \"E\":\n"
+"\t\t\tplay_sound (329.63);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"A\":\n"
+"\t\t\tplay_sound (440);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"D\":\n"
+"\t\t\tplay_sound (587.33);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"G\":\n"
+"\t\t\tplay_sound (783.99);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"B\":\n"
+"\t\t\tplay_sound (987.77);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"e\":\n"
+"\t\t\tplay_sound (1318);\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:247
+#: C/guitar-tuner.vala.page:248
 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 "
-"label of that button by using <code>get_child</code>, and then get the text "
-"from that label using <code>get_label</code>."
+"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 label of that button by using <code>get_child</code>, and 
then get "
+"the text from that label using <code>get_label</code>."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:248
+#: C/guitar-tuner.vala.page:249
 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!"
+"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 ""
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:259
+#: C/guitar-tuner.vala.page:260
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
+"If you run into problems with the tutorial, compare your code with this <link 
href=\"guitar-tuner/guitar-tuner.vala"
+"\">reference code</link>."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/guitar-tuner.vala.page:263 C/magic-mirror.vala.page:156
+#: C/guitar-tuner.vala.page:264 C/magic-mirror.vala.page:157
 msgid "Further reading"
 msgstr "Weitere Informationen"
 
 #. (itstool) path: section/p
-#: C/guitar-tuner.vala.page:264
+#: C/guitar-tuner.vala.page:265
 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</"
-"link> and the <link href=\"http://valadoc.org/\";>Vala API Documentation</"
+"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</link> and the <link href=\"http://valadoc.org/\";>Vala API 
Documentation</"
 "link>"
 msgstr ""
 
@@ -13768,55 +17326,48 @@ 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/hellognome.js.page:64
+#: C/hellognome.js.page:65
 msgctxt "_"
-msgid ""
-"external ref='media/hellognomewebapp.png' "
-"md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
-msgstr ""
-"external ref='media/hellognomewebapp.png' "
-"md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
+msgid "external ref='media/hellognomewebapp.png' md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
+msgstr "external ref='media/hellognomewebapp.png' md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
 
 #. (itstool) path: info/desc
-#: C/hellognome.js.page:16
+#: C/hellognome.js.page:17
 msgid "Your first GNOME application!"
 msgstr "Ihre erste GNOME-Anwendung!"
 
 #. (itstool) path: page/title
-#: C/hellognome.js.page:19
+#: C/hellognome.js.page:20
 msgid "1. Hello, GNOME!"
 msgstr "1. Hallo, GNOME!"
 
 #. (itstool) path: synopsis/p
-#: C/hellognome.js.page:21
+#: C/hellognome.js.page:22
 msgid ""
-"This tutorial will show you how to write your first GNOME application in "
-"JavaScript. You will use JavaScript to write for GNOME the same way you "
-"would for the web. Afterwards, you will learn how to use \"native\" widgets, "
-"to write applications that look and feel like other GNOME apps."
+"This tutorial will show you how to write your first GNOME application in JavaScript. You will use 
JavaScript to "
+"write for GNOME the same way you would for the web. Afterwards, you will learn how to use \"native\" 
widgets, to "
+"write applications that look and feel like other GNOME apps."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/hellognome.js.page:22
+#: C/hellognome.js.page:23
 msgid ""
-"Have you gotten GNOME installed on your computer, and <link xref=\"set-up-"
-"gedit.js\">gedit</link> set up to write code with? You'll want to do these "
-"things first."
+"Have you gotten GNOME installed on your computer, and <link xref=\"set-up-gedit.js\">gedit</link> set up to 
write "
+"code with? You'll want to do these things first."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hellognome.js.page:28
+#: C/hellognome.js.page:29
 msgid "Let's start with a web page"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:30
-msgid ""
-"Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
+#: C/hellognome.js.page:31
+msgid "Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:31
+#: C/hellognome.js.page:32
 #, no-wrap
 msgid ""
 "\n"
@@ -13849,49 +17400,72 @@ msgid ""
 "    &lt;/body&gt;\n"
 "&lt;/html&gt;\n"
 msgstr ""
+"\n"
+"&lt;!DOCTYPE html&gt;\n"
+"&lt;html&gt;\n"
+"    &lt;head&gt;\n"
+"        &lt;title&gt;Hello, GNOME!&lt;/title&gt;\n"
+"\n"
+"        &lt;!-- Use JavaScript to show a greeting when someone clicks the button --&gt;\n"
+"        &lt;script type=\"application/javascript\"&gt;\n"
+"        function greeting () {\n"
+"            document.getElementById (\"greeting\").innerHTML = (\"O hai!\");\n"
+"        }\n"
+"        &lt;/script&gt;\n"
+"\n"
+"        &lt;!-- Very basic CSS style using the GNOME font --&gt;\n"
+"        &lt;style type=\"text/css\"&gt;\n"
+"            body {\n"
+"                font-face: Cantarell, sans-serif;\n"
+"                text-align: center; }\n"
+"        &lt;/style&gt;\n"
+"\n"
+"    &lt;/head&gt;\n"
+"    &lt;body&gt;\n"
+"        &lt;br /&gt; &lt;br /&gt;\n"
+"        &lt;button type=\"button\" onclick=\"greeting()\"&gt;Hello, GNOME!&lt;/button&gt;\n"
+"\n"
+"        &lt;!-- Empty H1 element gets filled in when the button is clicked --&gt;\n"
+"        &lt;h1 id=\"greeting\"&gt;&lt;/h1&gt;\n"
+"    &lt;/body&gt;\n"
+"&lt;/html&gt;\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:62
-msgid ""
-"Let's save this as <file>hellognome.html</file>, and see what it looks like "
-"when we run it!"
+#: C/hellognome.js.page:63
+msgid "Let's save this as <file>hellognome.html</file>, and see what it looks like when we run it!"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:66
+#: C/hellognome.js.page:67
 msgid ""
-"You <em>can</em> run the above code by opening <file>hellognome.html</file> "
-"in a web browser. But here, we're going to create a GNOME application that "
-"runs our web app inside of it, just like you see in the screenshot. You'll "
-"be able to resize and maximize the window, and click the X in the corner to "
-"close it, just like you'd expect from any other GNOME app. The difference is "
-"that this one will run our web code inside of it."
+"You <em>can</em> run the above code by opening <file>hellognome.html</file> in a web browser. But here, 
we're "
+"going to create a GNOME application that runs our web app inside of it, just like you see in the 
screenshot. "
+"You'll be able to resize and maximize the window, and click the X in the corner to close it, just like 
you'd "
+"expect from any other GNOME app. The difference is that this one will run our web code inside of it."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:67
+#: C/hellognome.js.page:68
 msgid ""
-"The best part? We're going to continue to use JavaScript, to write all the "
-"parts that make our app work with GNOME. Let's look at the code, and see how "
-"it's done!"
+"The best part? We're going to continue to use JavaScript, to write all the parts that make our app work 
with "
+"GNOME. Let's look at the code, and see how it's done!"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hellognome.js.page:71
+#: C/hellognome.js.page:72
 msgid "Creating a GNOME window to frame our web app"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:73
+#: C/hellognome.js.page:74
 msgid ""
-"First, we need to tell GNOME that this is a JavaScript application, which "
-"uses gjs. Gjs is GNOME's way of turning your JavaScript code into "
-"instructions it understands, so this line always has to go at the start of "
-"your applications."
+"First, we need to tell GNOME that this is a JavaScript application, which uses gjs. Gjs is GNOME's way of 
turning "
+"your JavaScript code into instructions it understands, so this line always has to go at the start of your "
+"applications."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:74
+#: C/hellognome.js.page:75
 #, no-wrap
 msgid ""
 "\n"
@@ -13901,12 +17475,12 @@ msgstr ""
 "#!/usr/bin/gjs\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:77
+#: C/hellognome.js.page:78
 msgid "After that, we need to tell GNOME which libraries we want to import."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:78
+#: C/hellognome.js.page:79
 #, no-wrap
 msgid ""
 "\n"
@@ -13915,63 +17489,66 @@ msgid ""
 "const Lang = imports.lang;\n"
 "const Webkit = imports.gi.WebKit;\n"
 msgstr ""
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:84
+#: C/hellognome.js.page:85
 msgid ""
-"Just like how add-on libraries like jQuery let us do extra things with "
-"JavaScript, each of these libraries gives us new capabilities for our GNOME "
-"apps:"
+"Just like how add-on libraries like jQuery let us do extra things with JavaScript, each of these libraries 
gives "
+"us new capabilities for our GNOME apps:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/hellognome.js.page:86
+#: C/hellognome.js.page:87
 msgid ""
-"<file>Gtk</file> and <file>Lang</file> are basic parts of any GNOME "
-"application, which let you create windows and widgets and tie them together."
+"<file>Gtk</file> and <file>Lang</file> are basic parts of any GNOME application, which let you create 
windows and "
+"widgets and tie them together."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/hellognome.js.page:87
+#: C/hellognome.js.page:88
 msgid ""
-"<file>GLib</file> is a helper library, which lets us do things like tell "
-"GNOME where the <file>hellognome.html</file> file we created is."
+"<file>GLib</file> is a helper library, which lets us do things like tell GNOME where the 
<file>hellognome.html</"
+"file> file we created is."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/hellognome.js.page:88
+#: C/hellognome.js.page:89
 msgid ""
-"And <file>Webkit</file> is a web rendering engine, which we'll use to "
-"basically create a browser window to open our HTML file with."
+"And <file>Webkit</file> is a web rendering engine, which we'll use to basically create a browser window to 
open "
+"our HTML file with."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:91
-#, fuzzy
-#| msgid "How to write a Gtk application in C++"
+#: C/hellognome.js.page:92
 msgid "Now we create the application itself:"
-msgstr "Schreiben einer Gtk-Anwendung in C++"
+msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:92
+#: C/hellognome.js.page:93
 #, no-wrap
 msgid ""
 "\n"
 "const HelloGNOME = new Lang.Class ({\n"
 "    Name: 'Hello GNOME',\n"
 msgstr ""
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:96
+#: C/hellognome.js.page:97
 msgid ""
-"This will look familiar to you if you've worked with object-oriented "
-"JavaScript before. That's right; our whole application is a class called "
-"HelloGNOME. And as you can see, we've given it a property that says what its "
-"name is."
+"This will look familiar to you if you've worked with object-oriented JavaScript before. That's right; our 
whole "
+"application is a class called HelloGNOME. And as you can see, we've given it a property that says what its 
name is."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:98
+#: C/hellognome.js.page:99
 #, no-wrap
 msgid ""
 "\n"
@@ -13994,62 +17571,74 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:118
+#: C/hellognome.js.page:119
 msgid ""
-"Here's some code you will more or less copy-and-paste for every JavaScript "
-"application you build. It creates a new Application, and then binds its "
-"activate and startup signals to functions that make the window show itself "
-"and build its user interface, respectively."
+"Here's some code you will more or less copy-and-paste for every JavaScript application you build. It 
creates a new "
+"Application, and then binds its activate and startup signals to functions that make the window show itself 
and "
+"build its user interface, respectively."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:119
+#: C/hellognome.js.page:120
 msgid ""
-"What does that mean? Well, everything in a GNOME application sends out a "
-"signal when something important happens. A button might send out the clicked "
-"signal when you click on it, for instance. Our job is to connect the signals "
-"to functions which handle them, and make the things that we want to have "
-"happen occur. We do this using each object's connect method, which takes two "
-"arguments: The signal we want to handle, and the Lang.bind function, which "
-"we have to use to tell connect which function we want to have handle the "
-"signal."
+"What does that mean? Well, everything in a GNOME application sends out a signal when something important 
happens. "
+"A button might send out the clicked signal when you click on it, for instance. Our job is to connect the 
signals "
+"to functions which handle them, and make the things that we want to have happen occur. We do this using 
each "
+"object's connect method, which takes two arguments: The signal we want to handle, and the Lang.bind 
function, "
+"which we have to use to tell connect which function we want to have handle the signal."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:120
+#: C/hellognome.js.page:121
 msgid ""
-"In this case, we want _onActivate to handle the activate signal, and "
-"_onStartup to handle the startup signal. _onActivate just tells the window "
-"to present itself; so basically, whenever you <keyseq><key>Alt</key> "
-"<key>Tab</key></keyseq> to the application it appears, like you would expect "
-"it to. _onStartup calls _buildUI, which is the function that creates our "
-"user interface and is the next part that we will look at."
+"In this case, we want _onActivate to handle the activate signal, and _onStartup to handle the startup 
signal. "
+"_onActivate just tells the window to present itself; so basically, whenever you <keyseq><key>Alt</key> 
<key>Tab</"
+"key></keyseq> to the application it appears, like you would expect it to. _onStartup calls _buildUI, which 
is the "
+"function that creates our user interface and is the next part that we will look at."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/hellognome.js.page:121
+#: C/hellognome.js.page:122
 msgid ""
-"When you copy and paste the above code for your own applications, be sure to "
-"change the name to a unique one each time."
+"When you copy and paste the above code for your own applications, be sure to change the name to a unique 
one each "
+"time."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hellognome.js.page:125
+#: C/hellognome.js.page:126
 msgid "Designing our window's UI"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:126
+#: C/hellognome.js.page:127
 msgid ""
-"In the _buildUI function, we're going to tell GNOME about our window and the "
-"things inside it, one at a time. After that, we're going to connect "
-"everything together and put it all on display."
+"In the _buildUI function, we're going to tell GNOME about our window and the things inside it, one at a 
time. "
+"After that, we're going to connect everything together and put it all on display."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:128
+#: C/hellognome.js.page:129
 #, no-wrap
 msgid ""
 "\n"
@@ -14064,22 +17653,30 @@ msgid ""
 "            default_width: 400,\n"
 "            window_position: Gtk.WindowPosition.CENTER });\n"
 msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:141
+#: C/hellognome.js.page:142
 msgid ""
-"The first object we create is an ApplicationWindow. It needs a title to go "
-"in the title bar, and its application property needs to be the application "
-"that we created, above. Beyond that, there are various ways of customizing "
-"how it looks, which the <link xref=\"GtkApplicationWindow.js"
-"\">ApplicationWindow</link> reference page will go into more detail about. "
-"As you can see here, we gave it a default height and width (measured in "
-"pixels), and told GNOME we want our window to appear in the center of the "
-"screen."
+"The first object we create is an ApplicationWindow. It needs a title to go in the title bar, and its 
application "
+"property needs to be the application that we created, above. Beyond that, there are various ways of 
customizing "
+"how it looks, which the <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> reference page will 
go "
+"into more detail about. As you can see here, we gave it a default height and width (measured in pixels), 
and told "
+"GNOME we want our window to appear in the center of the screen."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:142
+#: C/hellognome.js.page:143
 #, no-wrap
 msgid ""
 "\n"
@@ -14090,31 +17687,34 @@ msgid ""
 "        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
 "            \"/hellognome.html\", null));\n"
 msgstr ""
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:150
+#: C/hellognome.js.page:151
 msgid ""
-"Remember how we imported Webkit right at the start? Here we're creating a "
-"new instance of a Webkit class called a WebView, which is more or less a "
-"browser window you can put inside of your app. After that, we then give it "
-"the URI that we want it to load when the application starts up."
+"Remember how we imported Webkit right at the start? Here we're creating a new instance of a Webkit class 
called a "
+"WebView, which is more or less a browser window you can put inside of your app. After that, we then give it 
the "
+"URI that we want it to load when the application starts up."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:151
+#: C/hellognome.js.page:152
 msgid ""
-"We <em>could</em> just give it a web URI, like <link href=\"http://gnome.org";
-"\">http://gnome.org</link>. Instead, here we use a couple of GLib helper "
-"functions to tell the WebView where our <file>hellognome.html</file> file "
-"is. GLib.get_current_dir returns the directory that our app's running in, "
-"and GLib.filename_to_uri turns our file's path and filename into a URI that "
-"the WebView's load_uri function understands. (filename_to_uri's second "
-"parameter should be null unless you know what it's used for and have a "
-"reason for changing it.)"
+"We <em>could</em> just give it a web URI, like <link href=\"http://gnome.org\";>http://gnome.org</link>. 
Instead, "
+"here we use a couple of GLib helper functions to tell the WebView where our <file>hellognome.html</file> 
file is. "
+"GLib.get_current_dir returns the directory that our app's running in, and GLib.filename_to_uri turns our 
file's "
+"path and filename into a URI that the WebView's load_uri function understands. (filename_to_uri's second 
parameter "
+"should be null unless you know what it's used for and have a reason for changing it.)"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:152
+#: C/hellognome.js.page:153
 #, no-wrap
 msgid ""
 "\n"
@@ -14127,20 +17727,27 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:162
+#: C/hellognome.js.page:163
 msgid ""
-"Each window can hold one, and only one, widget. Normally, we'd use a "
-"container widget like a <link xref=\"grid.js\">Grid</link> to put multiple "
-"widgets into, then use the window's add function to add the Grid to it. "
-"Here, we just need the WebView, so that's all we add to the window. After "
-"that, as the last part of the _buildUI function that creates our window, we "
-"tell the window to show itself and its contents."
+"Each window can hold one, and only one, widget. Normally, we'd use a container widget like a <link 
xref=\"grid.js"
+"\">Grid</link> to put multiple widgets into, then use the window's add function to add the Grid to it. 
Here, we "
+"just need the WebView, so that's all we add to the window. After that, as the last part of the _buildUI 
function "
+"that creates our window, we tell the window to show itself and its contents."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:163
+#: C/hellognome.js.page:164
 #, no-wrap
 msgid ""
 "\n"
@@ -14148,88 +17755,84 @@ msgid ""
 "let app = new HelloGNOME ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:168
-msgid ""
-"Finally, we create a new instance of our HelloGNOME class, and tell GNOME to "
-"run it."
+#: C/hellognome.js.page:169
+msgid "Finally, we create a new instance of our HelloGNOME class, and tell GNOME to run it."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hellognome.js.page:172
+#: C/hellognome.js.page:173
 msgid "Running your GNOME application"
 msgstr "Ihre GNOME-Anwendung ausführen"
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:174
+#: C/hellognome.js.page:175
 msgid ""
-"Now that we've created our first GNOME application, it's time to test it "
-"out! You don't need to compile your app or install any special software for "
-"this; GNOME has gjs built in, to let it run GNOME Shell. Just save "
-"<file>hellognome.html</file> and our actual application, <file>hellognome."
-"js</file>, to a directory you can get to with the terminal. (They usually "
-"open onto your home directory, the one that's called by your username.) "
-"After that, open a terminal, go there, and type:"
+"Now that we've created our first GNOME application, it's time to test it out! You don't need to compile 
your app "
+"or install any special software for this; GNOME has gjs built in, to let it run GNOME Shell. Just save "
+"<file>hellognome.html</file> and our actual application, <file>hellognome.js</file>, to a directory you can 
get to "
+"with the terminal. (They usually open onto your home directory, the one that's called by your username.) 
After "
+"that, open a terminal, go there, and type:"
 msgstr ""
 
 #. (itstool) path: section/screen
-#: C/hellognome.js.page:175
+#: C/hellognome.js.page:176
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output>gjs hellognome.js "
 msgstr " <output style=\"prompt\">$ </output>gjs hellognome.js "
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:176
+#: C/hellognome.js.page:177
 msgid ""
-"You should see more or less the same screenshot as before, with a button "
-"that you can click to make a short message appear."
+"You should see more or less the same screenshot as before, with a button that you can click to make a short 
"
+"message appear."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/hellognome.js.page:179
+#: C/hellognome.js.page:180
 msgid "You can use the terminal command"
 msgstr ""
 
 #. (itstool) path: note/screen
-#: C/hellognome.js.page:180
+#: C/hellognome.js.page:181
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
-msgstr ""
+msgstr " <output style=\"prompt\">$ </output>cd <var>(Ordnername)</var> "
 
 #. (itstool) path: note/p
-#: C/hellognome.js.page:181
+#: C/hellognome.js.page:182
 msgid ""
-"to navigate between directories inside the Terminal, in order to get to "
-"where you saved the files. There is also an extension for Nautilus, GNOME's "
-"file manager, which lets you right-click anywhere inside it to open a "
-"terminal window right there. Check the app you use to install new software "
-"(like Add/Remove Programs or the Software Center) for it."
+"to navigate between directories inside the Terminal, in order to get to where you saved the files. There is 
also "
+"an extension for Nautilus, GNOME's file manager, which lets you right-click anywhere inside it to open a 
terminal "
+"window right there. Check the app you use to install new software (like Add/Remove Programs or the Software 
"
+"Center) for it."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:188
+#: C/hellognome.js.page:189
 msgid ""
-"<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next tutorial</"
-"link> to learn how to build \"native\" GNOME applications that look and feel "
-"like the others, instead of a webview with HTML code inside. Or take a look "
-"at some <link xref=\"beginner.js#samples\">code samples</link>, if you'd "
-"like to see example code for each Gtk widget."
+"<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next tutorial</link> to learn how to build 
\"native\" "
+"GNOME applications that look and feel like the others, instead of a webview with HTML code inside. Or take 
a look "
+"at some <link xref=\"beginner.js#samples\">code samples</link>, if you'd like to see example code for each 
Gtk "
+"widget."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hellognome.js.page:189
+#: C/hellognome.js.page:190
 msgid ""
-"Finally, if you want to just build GNOME applications using JavaScript "
-"libraries designed for the web, you can basically stop here and go do that! "
-"Check out <link xref=\"beginner.js#tutorials\">the later tutorials</link> if "
-"you'd like to see how to create a .desktop file for your application, which "
-"will let it appear in your desktop's Activities menu with all your other "
-"apps."
+"Finally, if you want to just build GNOME applications using JavaScript libraries designed for the web, you 
can "
+"basically stop here and go do that! Check out <link xref=\"beginner.js#tutorials\">the later 
tutorials</link> if "
+"you'd like to see how to create a .desktop file for your application, which will let it appear in your 
desktop's "
+"Activities menu with all your other apps."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hellognome.js.page:194
+#: C/hellognome.js.page:195
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -14292,172 +17895,159 @@ msgid ""
 "let app = new HelloGNOME ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: 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/hello-world.c.page:27 C/hello-world.js.page:27 C/hello-world.py.page:27
-#: C/hello-world.vala.page:27
-#, fuzzy
+#: C/hello-world.c.page:51 C/hello-world.js.page:28 C/hello-world.py.page:28 C/hello-world.vala.page:28
 #| msgctxt "_"
-#| msgid ""
-#| "external ref='media/helloWorld.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
+#| msgid "external ref='media/helloWorld.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
 msgctxt "_"
-msgid ""
-"external ref='media/hello-world.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
-msgstr ""
-"external ref='media/helloWorld.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
+msgid "external ref='media/hello-world.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
+msgstr "external ref='media/hello-world.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
 
 #. (itstool) path: info/title
-#: C/hello-world.c.page:8
-msgctxt "text"
+#: C/hello-world.c.page:10
+msgctxt "link"
 msgid "Hello World (C)"
 msgstr "Hallo, Welt! (C)"
 
+#. (itstool) path: credit/name
+#: C/hello-world.c.page:24
+msgid "Bastian Ilsø"
+msgstr "Bastian Ilsø"
+
 #. (itstool) path: info/desc
-#: C/hello-world.c.page:23 C/hello-world.js.page:23 C/hello-world.py.page:23
-#: C/hello-world.vala.page:23
-msgid "A basic \"hello, world\" application"
+#: C/hello-world.c.page:28
+msgid "Creating a small \"Hello, World\" application using GTK+."
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/hello-world.c.page:26 C/hello-world.js.page:26 C/hello-world.py.page:26
-#: C/hello-world.vala.page:26
-msgid ""
-"How to build, install and create a <file>tar.xz</file> of a Hello World "
-"program"
+#: C/hello-world.c.page:31
+msgid "Hello world"
 msgstr ""
 
-#. (itstool) path: synopsis/p
-#: C/hello-world.c.page:29 C/hello-world.js.page:29 C/hello-world.py.page:29
-#: C/hello-world.vala.page:29
-msgid "This tutorial will demonstrate how to:"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:31 C/hello-world.vala.page:31
-msgid "create a small \"Hello, World\" application using GTK+"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:32 C/hello-world.js.page:32 C/hello-world.py.page:32
-#: C/hello-world.vala.page:32
-msgid "make the <file>.desktop</file> file"
+#. (itstool) path: note/p
+#: C/hello-world.c.page:34
+msgid ""
+"For a detailed walk-through of creating a GTK+ dialog in C, see <link 
href=\"https://developer.gnome.org/gtk3/";
+"stable/gtk-getting-started.html\">Getting Started with GTK+</link>"
 msgstr ""
 
-#. (itstool) path: item/p
-#: C/hello-world.c.page:33 C/hello-world.js.page:33 C/hello-world.py.page:33
-#: C/hello-world.vala.page:33
-msgid "how to set up the build system"
+#. (itstool) path: page/p
+#: C/hello-world.c.page:38
+msgid "Writing a hello world GTK+ dialog in C can be done as seen in the code sample below:"
 msgstr ""
 
-#. (itstool) path: section/title
-#: C/hello-world.c.page:39 C/hello-world.js.page:41 C/hello-world.py.page:41
-#: C/hello-world.vala.page:39
-#, fuzzy
-#| msgid "The different parts of the program"
-msgid "Create the program"
-msgstr "Die verschiedenen Teile des Programms"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:44
-#, no-wrap
-msgid "#include &lt;gtk/gtk.h&gt;\n"
-msgstr "#include &lt;gtk/gtk.h&gt;\n"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:49
+#. (itstool) path: page/code
+#: C/hello-world.c.page:39
 #, no-wrap
+#| msgid ""
+#| "#include &lt;gtk/gtk.h&gt;\n"
+#| "\n"
+#| "static void\n"
+#| "activate (GtkApplication *app,\n"
+#| "          gpointer        user_data)\n"
+#| "{\n"
+#| "  GtkWidget *window;\n"
+#| "\n"
+#| "  window = gtk_application_window_new (app);\n"
+#| "  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+#| "  gtk_widget_show_all (window);\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"
+#| "  return status;\n"
+#| "}\n"
 msgid ""
-"static void\n"
-"activate (GtkApplication* app,\n"
-"          gpointer        user_data)\n"
-"{\n"
-"  GtkWidget *window;\n"
 "\n"
-"  window = gtk_application_window_new (app);\n"
-"  gtk_window_set_title (GTK_WINDOW (window), \"Hello World\");\n"
-"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 100);\n"
-"  gtk_widget_show_all (window);\n"
-"}\n"
-msgstr ""
+"    #include &lt;gtk/gtk.h&gt;\n"
+"\n"
 "static void\n"
 "activate (GtkApplication* app,\n"
 "          gpointer        user_data)\n"
 "{\n"
 "  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
 "\n"
 "  window = gtk_application_window_new (app);\n"
-"  gtk_window_set_title (GTK_WINDOW (window), \"Hello World\");\n"
+"  label = gtk_label_new (\"Hello GNOME!\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), label);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
 "  gtk_window_set_default_size (GTK_WINDOW (window), 200, 100);\n"
 "  gtk_widget_show_all (window);\n"
 "}\n"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:62 C/hello-world.js.page:91
-msgid ""
-"GtkApplication initializes GTK+. It also connects the <gui>x</gui> button "
-"that's automatically generated along with the window to the \"destroy\" "
-"signal."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:63
-msgid ""
-"We can start building our first window. We do this by creating a variable "
-"called <var>window</var> and assigning it a gtk_application_window_new"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:64
-msgid ""
-"The window title can be any string you want it to be. To be on the safe "
-"side, it's best to stick to UTF-8 encoding."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:65 C/hello-world.js.page:94 C/hello-world.py.page:73
-#: C/hello-world.vala.page:56
-msgid ""
-"Now we have a window which has a title and a working \"close\" button. Let's "
-"add the actual \"Hello World\" text."
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/hello-world.c.page:68 C/hello-world.js.page:97 C/hello-world.py.page:76
-#: C/hello-world.vala.page:59
-#, fuzzy
-#| msgid "Closing the window"
-msgid "Label for the window"
-msgstr "Schließen des Fensters"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:69
-#, no-wrap
-msgid ""
-"GtkWidget *label;\n"
 "\n"
-"  label = gtk_label_new (\"Hello World!\");\n"
-"  gtk_container_add (GTK_CONTAINER (window), label);\n"
-msgstr ""
-"GtkWidget *label;\n"
-"\n"
-"  label = gtk_label_new (\"Hello World!\");\n"
-"  gtk_container_add (GTK_CONTAINER (window), label);\n"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:75 C/hello-world.vala.page:64
-#, fuzzy
-#| msgid "How to write a Gtk application in C++"
-msgid "Finally, we create and run the application:"
-msgstr "Schreiben einer Gtk-Anwendung in C++"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:77
-#, no-wrap
-msgid ""
 "int\n"
 "main (int    argc,\n"
 "      char **argv)\n"
@@ -14471,47 +18061,12 @@ msgid ""
 "  g_object_unref (app);\n"
 "\n"
 "  return status;\n"
-"}"
-msgstr ""
-"int\n"
-"main (int    argc,\n"
-"      char **argv)\n"
-"{\n"
-"  GtkApplication *app;\n"
-"  int status;\n"
-"\n"
-"  app = gtk_application_new (NULL, 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"
 "\n"
-"  return status;\n"
-"}"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:92
-msgid ""
-"GtkApplicationWindow can only hold one widget at a time. To construct more "
-"elaborate programs you need to create a holder widget like GtkGrid inside "
-"the window, and then add all the other widgets to it."
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/hello-world.c.page:96
-msgid "hello-world.c"
-msgstr "hello-world.c"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:97 C/hello-world.js.page:114 C/hello-world.py.page:101
-#: C/hello-world.vala.page:75
-msgid "The complete file:"
+"  "
 msgstr ""
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:98
-#, no-wrap
-msgid ""
-"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"    #include &lt;gtk/gtk.h&gt;\n"
 "\n"
 "static void\n"
 "activate (GtkApplication* app,\n"
@@ -14542,389 +18097,80 @@ msgid ""
 "\n"
 "  return status;\n"
 "}\n"
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/hello-world.c.page:101 C/hello-world.js.page:118
-#: C/hello-world.py.page:105 C/hello-world.vala.page:79
-msgid "Running the application from terminal"
-msgstr "Anwendung im Terminal ausführen"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:102
-msgid ""
-"To run this application, first save it as hello-world.c. Then open Terminal, "
-"go to the folder where your application is stored."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:103 C/hello-world.vala.page:81
-msgid "Compile the program:"
-msgstr ""
-
-#. (itstool) path: section/screen
-#: C/hello-world.c.page:104
-#, no-wrap
-msgid "gcc <var>hello-world</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>hello-world</var>"
-msgstr "gcc <var>hello-world</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>hello-world</var>"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:105 C/hello-world.vala.page:83
-#, fuzzy
-msgid "Run the program:"
-msgstr "Ein Programm ausführen"
-
-#. (itstool) path: section/screen
-#: C/hello-world.c.page:106 C/hello-world.vala.page:84
-#, no-wrap
-msgid "./<var>hello-world</var>"
-msgstr "./<var>hello-world</var>"
-
-#. (itstool) path: section/title
-#: C/hello-world.c.page:110 C/hello-world.js.page:126
-#: C/hello-world.py.page:111 C/hello-world.vala.page:88
-msgid "The <file>.desktop.in</file> file"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:111 C/hello-world.js.page:127
-#: C/hello-world.py.page:112 C/hello-world.vala.page:89
-msgid ""
-"Running applications from the Terminal is useful at the beginning of the "
-"application making process. To have fully working <link href=\"https://";
-"developer.gnome.org/integration-guide/stable/mime.html.en\">application "
-"integration</link> in GNOME 3 requires a desktop launcher. For this you need "
-"to create a <file>.desktop</file> file. The <file>.desktop</file> file "
-"describes the application name, the used icon and various integration bits. "
-"A deeper insight into the <file>.desktop</file> file can be found <link href="
-"\"http://developer.gnome.org/desktop-entry-spec/\";>here</link>. The <file>."
-"desktop.in</file> file will create the <file>.desktop</file>."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:113 C/hello-world.js.page:134
-#: C/hello-world.py.page:114 C/hello-world.vala.page:91
-msgid ""
-"The example shows you the minimum requirements for a <code>.desktop.in</"
-"code> file."
-msgstr ""
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:114 C/hello-world.js.page:135
-#: C/hello-world.py.page:115 C/hello-world.vala.page:92
-#, no-wrap
-msgid ""
-"[Desktop Entry]\n"
-"Version=1.0\n"
-"Encoding=UTF-8\n"
-"Name=Hello World\n"
-"Comment=Say Hello\n"
-"Exec= prefix@/bin/hello-world\n"
-"Icon=application-default-icon\n"
-"Terminal=false\n"
-"Type=Application\n"
-"StartupNotify=true\n"
-"Categories=GNOME;GTK;Utility;\n"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:116 C/hello-world.js.page:137
-#: C/hello-world.py.page:117 C/hello-world.vala.page:94
-msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
-msgstr ""
-
-#. (itstool) path: item/title
-#. (itstool) path: td/p
-#: C/hello-world.c.page:118 C/hello-world.js.page:139
-#: C/hello-world.py.page:119 C/hello-world.vala.page:96
-#: C/toolbar_builder.py.page:94 C/toolbar_builder.vala.page:77
-msgid "Name"
-msgstr "Name"
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:118 C/hello-world.js.page:139
-#: C/hello-world.py.page:119 C/hello-world.vala.page:96
-msgid "The application name."
-msgstr "Der Anwendungsname."
-
-#. (itstool) path: item/title
-#: C/hello-world.c.page:119 C/hello-world.js.page:140
-#: C/hello-world.py.page:120 C/hello-world.vala.page:97
-msgid "Comment"
-msgstr "Kommentar"
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:119 C/hello-world.js.page:140
-#: C/hello-world.py.page:120 C/hello-world.vala.page:97
-msgid "A short description of the application."
-msgstr "Eine kurze Beschreibung der Anwendung."
-
-#. (itstool) path: item/title
-#: C/hello-world.c.page:120 C/hello-world.js.page:141
-#: C/hello-world.py.page:121 C/hello-world.vala.page:98
-msgid "Exec"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:120 C/hello-world.js.page:141
-#: C/hello-world.py.page:121 C/hello-world.vala.page:98
-msgid ""
-"Specifies a command to execute when you choose the application from the "
-"menu. In this example exec just tells where to find the <file>hello-world</"
-"file> file and the file takes care of the rest."
-msgstr ""
-
-#. (itstool) path: item/title
-#: C/hello-world.c.page:121 C/hello-world.js.page:142
-#: C/hello-world.py.page:122 C/hello-world.vala.page:99
-msgid "Terminal"
-msgstr "Terminal"
-
-#. (itstool) path: item/p
-#: C/hello-world.c.page:121 C/hello-world.js.page:142
-#: C/hello-world.py.page:122 C/hello-world.vala.page:99
-msgid ""
-"Specifies whether the command in the Exec key runs in a terminal window."
-msgstr ""
+"\n"
+"  "
 
-#. (itstool) path: section/p
-#: C/hello-world.c.page:124 C/hello-world.js.page:145
-#: C/hello-world.py.page:125 C/hello-world.vala.page:102
+#. (itstool) path: page/p
+#: C/hello-world.c.page:43
 msgid ""
-"To put your application into the appropriate category, you need to add the "
-"necessary categories to the Categories line. More information on the "
-"different categories can be found in the <link href=\"http://standards.";
-"freedesktop.org/menu-spec/latest/apa.html\">menu specification</link>."
+"GtkApplication initializes GTK+. It also connects the <gui>x</gui> button that's automatically generated 
along "
+"with the window to the \"destroy\" signal. We can start building our first window. We do this by creating a 
"
+"variable called <var>window</var> and assigning it a gtk_application_window_new. The window title can be 
any "
+"string you want it to be. To be on the safe side, it's best to stick to UTF-8 encoding. The code above will 
create "
+"a dialog window similar to what can be seen below:"
 msgstr ""
 
-#. (itstool) path: section/p
-#: C/hello-world.c.page:125 C/hello-world.js.page:146
-#: C/hello-world.py.page:126 C/hello-world.vala.page:103
-msgid ""
-"In this example we use an existing icon. For a custom icon you need to have "
-"a .svg file of your icon, stored in <file>/usr/share/icons/hicolor/scalable/"
-"apps</file>. Write the name of your icon file to the .desktop.in file, on "
-"line 7. More information on icons in: <link href=\"https://live.gnome.org/";
-"GnomeGoals/AppIcon\">Installing Icons for Themes</link> and <link href="
-"\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>on "
-"freedesktop.org: Specifications/icon-theme-spec</link>."
+#. (itstool) path: info/title
+#: C/hello-world.js.page:9
+msgctxt "text"
+msgid "Hello World (JavaScript)"
 msgstr ""
 
-#. (itstool) path: section/title
-#: C/hello-world.c.page:128 C/hello-world.js.page:149
-#: C/hello-world.py.page:129 C/hello-world.vala.page:106
-msgid "The build system"
+#. (itstool) path: info/desc
+#: C/hello-world.js.page:24 C/hello-world.py.page:24 C/hello-world.vala.page:24
+msgid "A basic \"hello, world\" application"
 msgstr ""
 
-#. (itstool) path: section/p
-#: C/hello-world.c.page:129 C/hello-world.js.page:150
-#: C/hello-world.py.page:130 C/hello-world.vala.page:107
-msgid ""
-"To make your application truly a part of the GNOME 3 system you need to "
-"install it with the help of autotools. The autotools build will install all "
-"the necessary files to all the right places."
+#. (itstool) path: page/title
+#: C/hello-world.js.page:27 C/hello-world.py.page:27 C/hello-world.vala.page:27
+msgid "How to build, install and create a <file>tar.xz</file> of a Hello World program"
 msgstr ""
 
-#. (itstool) path: section/p
-#: C/hello-world.c.page:130 C/hello-world.js.page:151
-#: C/hello-world.py.page:131 C/hello-world.vala.page:108
-msgid "For this you need to have the following files:"
+#. (itstool) path: synopsis/p
+#: C/hello-world.js.page:30 C/hello-world.py.page:30 C/hello-world.vala.page:30
+msgid "This tutorial will demonstrate how to:"
 msgstr ""
 
-#. (itstool) path: section/title
 #. (itstool) path: item/p
-#: C/hello-world.c.page:133 C/hello-world.js.page:154
-#: C/hello-world.py.page:134 C/hello-world.vala.page:111
-#: C/weatherAutotools.js.page:39
-msgid "autogen.sh"
-msgstr "autogen.sh"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:134 C/hello-world.js.page:155
-#: C/hello-world.py.page:135 C/hello-world.vala.page:112
-#, no-wrap
-msgid ""
-"#!/bin/sh\n"
-"\n"
-"set -e\n"
-"\n"
-"test -n \"$srcdir\" || srcdir=`dirname \"$0\"`\n"
-"test -n \"$srcdir\" || srcdir=.\n"
-"\n"
-"olddir=`pwd`\n"
-"cd \"$srcdir\"\n"
-"\n"
-"# This will run autoconf, automake, etc. for us\n"
-"autoreconf --force --install\n"
-"\n"
-"cd \"$olddir\"\n"
-"\n"
-"if test -z \"$NOCONFIGURE\"; then\n"
-"  \"$srcdir\"/configure \"$ \"\n"
-"fi\n"
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:136 C/hello-world.js.page:157
-#: C/hello-world.py.page:137 C/hello-world.vala.page:114
-msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
-msgstr ""
-
-#. (itstool) path: section/screen
-#: C/hello-world.c.page:137 C/hello-world.js.page:158
-#: C/hello-world.py.page:138 C/hello-world.vala.page:115
-#, no-wrap
-msgid "<output style=\"prompt\">$ </output><input>chmod +x autogen.sh</input>"
+#: C/hello-world.js.page:32
+msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
 msgstr ""
 
-#. (itstool) path: section/title
 #. (itstool) path: item/p
-#. (itstool) path: section/p
-#: C/hello-world.c.page:141 C/hello-world.js.page:162
-#: C/hello-world.py.page:142 C/hello-world.vala.page:119
-#: C/weatherAutotools.js.page:37 C/weatherAutotools.js.page:63
-msgid "Makefile.am"
-msgstr "Makefile.am"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:142
-#, no-wrap
-msgid ""
-"# The actual runnable program is set to the SCRIPTS primitive.\n"
-"# # Prefix bin_ tells where to copy this\n"
-"bin_PROGRAMS = hello-world\n"
-"hello_world_CFLAGS = $(gtk_CFLAGS)\n"
-"hello_world_LDADD = $(gtk_LIBS)\n"
-"hello_world_SOURCES = hello-world.c\n"
-"\n"
-"desktopdir = $(datadir)/applications\n"
-"desktop_DATA = \\\n"
-"\thello-world.desktop\n"
+#: C/hello-world.js.page:33 C/hello-world.py.page:33 C/hello-world.vala.page:33
+msgid "make the <file>.desktop</file> file"
 msgstr ""
 
-#. (itstool) path: section/title
 #. (itstool) path: item/p
-#. (itstool) path: section/p
-#: C/hello-world.c.page:146 C/hello-world.js.page:167
-#: C/hello-world.py.page:147 C/hello-world.vala.page:124
-#: C/weatherAutotools.js.page:38 C/weatherAutotools.js.page:130
-msgid "configure.ac"
-msgstr "configure.ac"
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:147 C/hello-world.vala.page:125
-#, no-wrap
-msgid ""
-"# This file is processed by autoconf to create a configure script\n"
-"AC_INIT([Hello World], 1.0)\n"
-"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
-"AC_PROG_CC\n"
-"AM_PROG_VALAC([0.16])\n"
-"PKG_CHECK_MODULES(gtk, gtk+-3.0)\n"
-"AC_CONFIG_FILES([Makefile hello-world.desktop])\n"
-"\n"
-"AC_OUTPUT\n"
+#: C/hello-world.js.page:34 C/hello-world.py.page:34 C/hello-world.vala.page:34
+msgid "how to set up the build system"
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hello-world.c.page:151 C/hello-world.js.page:172
-#: C/hello-world.py.page:152 C/hello-world.vala.page:129
-msgid "README"
-msgstr "Lies mich"
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:152 C/hello-world.js.page:173
-#: C/hello-world.py.page:153 C/hello-world.vala.page:130
-msgid "Information users should read first. This file can be blank."
-msgstr ""
-
-#. (itstool) path: section/p
-#: C/hello-world.c.page:154 C/hello-world.vala.page:132
-msgid ""
-"When you have the <file>hello-world.c</file>, <file>hello-world.desktop.in</"
-"file>, <file>Makefile.am</file>, <file>configure.ac</file> and <file>autogen."
-"sh</file> files with correct information and rights, the <file>README</file> "
-"file can include the following instructions:"
-msgstr ""
-
-#. (itstool) path: section/code
-#: C/hello-world.c.page:155
-#, no-wrap
-msgid ""
-"To build and install this program:\n"
-"\n"
-"./autogen.sh --prefix=/home/your_username/.local\n"
-"make\n"
-"make install\n"
-"\n"
-"-------------\n"
-"Running the first line above creates the following files:\n"
-"\n"
-"aclocal.m4\n"
-"autom4te.cache\n"
-"config.log\n"
-"config.status\n"
-"configure\n"
-"depcomp\n"
-"hello-world\n"
-"hello-world.desktop\n"
-"hello_world-hello-world.o\n"
-"install-sh\n"
-"missing\n"
-"Makefile.in\n"
-"Makefile\n"
-"\n"
-"Running \"make\" links all the appropriate libraries.\n"
-"\n"
-"Running \"make install\", installs the application in /home/your_username/.local/bin\n"
-"and installs the hello-world.desktop file in /home/your_username/.local/share/applications\n"
-"\n"
-"You can now run the application by typing \"Hello World\" in the Overview.\n"
-"\n"
-"----------------\n"
-"To uninstall, type:\n"
-"\n"
-"make uninstall\n"
-"\n"
-"----------------\n"
-"To create a tarball type:\n"
-"\n"
-"make distcheck\n"
-"\n"
-"This will create hello-world-1.0.tar.xz\n"
-msgstr ""
-
-#. (itstool) path: info/title
-#: C/hello-world.js.page:8
-msgctxt "text"
-msgid "Hello World (JavaScript)"
-msgstr ""
-
-#. (itstool) path: item/p
-#: C/hello-world.js.page:31
-msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
+#: C/hello-world.js.page:42 C/hello-world.py.page:42 C/hello-world.vala.page:40
+msgid "Create the program"
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:46
+#: C/hello-world.js.page:47
 msgid "This needs to be the first line of your script:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:47
+#: C/hello-world.js.page:48
 #, no-wrap
 msgid "#!/usr/bin/gjs"
 msgstr "#!/usr/bin/gjs"
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:48
+#: C/hello-world.js.page:49
 msgid ""
-"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</"
-"link>. Gjs is a JavaScript binding for GNOME."
+"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</link>. Gjs is a JavaScript 
binding for "
+"GNOME."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:53
+#: C/hello-world.js.page:54
 #, no-wrap
 msgid ""
 "const Lang = imports.lang;\n"
@@ -14934,16 +18180,15 @@ msgstr ""
 "const Gtk = imports.gi.Gtk;"
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:55 C/hello-world.py.page:48
+#: C/hello-world.js.page:56 C/hello-world.py.page:49
 msgid ""
-"In order for our script to work with GNOME, we need to import GNOME "
-"libraries via GObject Introspection. Here we import the language bindings "
-"and GTK+, the library which contains the graphical widgets used to make "
-"GNOME applications."
+"In order for our script to work with GNOME, we need to import GNOME libraries via GObject Introspection. 
Here we "
+"import the language bindings and GTK+, the library which contains the graphical widgets used to make GNOME "
+"applications."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:59
+#: C/hello-world.js.page:60
 #, no-wrap
 msgid ""
 "const Application = new Lang.Class({\n"
@@ -14977,24 +18222,71 @@ msgid ""
 "    }\n"
 "});\n"
 msgstr ""
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
 
 #. (itstool) path: section/p
 #: C/hello-world.js.page:92
 msgid ""
-"We can start building our first window. We do this by creating a variable "
-"called <var>_window</var> and assigning it a new Gtk.ApplicationWindow."
+"GtkApplication initializes GTK+. It also connects the <gui>x</gui> button that's automatically generated 
along "
+"with the window to the \"destroy\" signal."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:93 C/hello-world.py.page:72
+#: C/hello-world.js.page:93
 msgid ""
-"We give the window a property called <var>title</var>. The title can be any "
-"string you want it to be. To be on the safe side, it's best to stick to "
-"UTF-8 encoding."
+"We can start building our first window. We do this by creating a variable called <var>_window</var> and 
assigning "
+"it a new Gtk.ApplicationWindow."
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:94 C/hello-world.py.page:73
+msgid ""
+"We give the window a property called <var>title</var>. The title can be any string you want it to be. To be 
on the "
+"safe side, it's best to stick to UTF-8 encoding."
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:95 C/hello-world.py.page:74 C/hello-world.vala.page:57
+msgid ""
+"Now we have a window which has a title and a working \"close\" button. Let's add the actual \"Hello World\" 
text."
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/hello-world.js.page:98 C/hello-world.py.page:77 C/hello-world.vala.page:60
+msgid "Label for the window"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:98
+#: C/hello-world.js.page:99
 #, no-wrap
 msgid ""
 "// Add a label widget to your window\n"
@@ -15002,42 +18294,51 @@ msgid ""
 "this._window.add(this.label);\n"
 "this._window.set_default_size(200, 200);"
 msgstr ""
+"// Add a label widget to your window\n"
+"this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"this._window.add(this.label);\n"
+"this._window.set_default_size(200, 200);"
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:103
+#: C/hello-world.js.page:104
 msgid ""
-"A text label is one of the GTK+ widgets we can use, on account of having "
-"imported the GTK+ library. To use it, we create a new variable called label, "
-"and assign it a new Gtk.Label. Then we give it properties inside the curly "
-"braces {}. In this case, we're setting the text that the label will hold. "
-"Finally, we create and run the application:"
+"A text label is one of the GTK+ widgets we can use, on account of having imported the GTK+ library. To use 
it, we "
+"create a new variable called label, and assign it a new Gtk.Label. Then we give it properties inside the 
curly "
+"braces {}. In this case, we're setting the text that the label will hold. Finally, we create and run the "
+"application:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:105
+#: C/hello-world.js.page:106
 #, no-wrap
 msgid ""
 "//run the application\n"
 "let app = new Application();\n"
 "app.application.run(ARGV);"
 msgstr ""
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);"
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:109 C/hello-world.py.page:96
-#: C/hello-world.vala.page:70
+#: C/hello-world.js.page:110 C/hello-world.py.page:97 C/hello-world.vala.page:71
 msgid ""
-"Gtk.ApplicationWindow can only hold one widget at a time. To construct more "
-"elaborate programs you need to create a holder widget like Gtk.Grid inside "
-"the window, and then add all the other widgets to it."
+"Gtk.ApplicationWindow can only hold one widget at a time. To construct more elaborate programs you need to 
create "
+"a holder widget like Gtk.Grid inside the window, and then add all the other widgets to it."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/hello-world.js.page:113
+#: C/hello-world.js.page:114
 msgid "hello-world.js"
 msgstr "hello-world.js"
 
+#. (itstool) path: section/p
+#: C/hello-world.js.page:115 C/hello-world.py.page:102 C/hello-world.vala.page:76
+msgid "The complete file:"
+msgstr "Die vollständige Datei:"
+
 #. (itstool) path: section/code
-#: C/hello-world.js.page:115
+#: C/hello-world.js.page:116
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -15083,35 +18384,284 @@ msgid ""
 "let app = new Application();\n"
 "app.application.run(ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Lang = imports.lang;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"        this._window.set_default_size(200, 200);\n"
+"        this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"        this._window.add(this.label);\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
+
+#. (itstool) path: section/title
+#: C/hello-world.js.page:119 C/hello-world.py.page:106 C/hello-world.vala.page:80
+msgid "Running the application from terminal"
+msgstr "Anwendung im Terminal ausführen"
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:119
+#: C/hello-world.js.page:120
 msgid ""
-"To run this application, first save it as hello-world.js. Then open "
-"Terminal, go to the folder where your application is stored and run:"
+"To run this application, first save it as hello-world.js. Then open Terminal, go to the folder where your "
+"application is stored and run:"
 msgstr ""
 
 #. (itstool) path: section/screen
-#: C/hello-world.js.page:120
+#: C/hello-world.js.page:121
 #, no-wrap
 msgid "<output style=\"prompt\">$ </output><input>gjs hello-world.js</input>"
+msgstr "<output style=\"prompt\">$ </output><input>gjs hello-world.js</input>"
+
+#. (itstool) path: section/title
+#: C/hello-world.js.page:127 C/hello-world.py.page:112 C/hello-world.vala.page:89
+msgid "The <file>.desktop.in</file> file"
+msgstr "Die Datei <file>.desktop.in</file>"
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:128 C/hello-world.py.page:113 C/hello-world.vala.page:90
+msgid ""
+"Running applications from the Terminal is useful at the beginning of the application making process. To 
have fully "
+"working <link href=\"https://developer.gnome.org/integration-guide/stable/mime.html.en\";>application 
integration</"
+"link> in GNOME 3 requires a desktop launcher. For this you need to create a <file>.desktop</file> file. The 
<file>."
+"desktop</file> file describes the application name, the used icon and various integration bits. A deeper 
insight "
+"into the <file>.desktop</file> file can be found <link 
href=\"http://developer.gnome.org/desktop-entry-spec/";
+"\">here</link>. The <file>.desktop.in</file> file will create the <file>.desktop</file>."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/hello-world.js.page:130
+#: C/hello-world.js.page:131
 msgid ""
-"Before continuing, resave <file>hello-world.js</file> as <file>hello-world</"
-"file>. Then run this in the command line:"
+"Before continuing, resave <file>hello-world.js</file> as <file>hello-world</file>. Then run this in the 
command "
+"line:"
 msgstr ""
 
 #. (itstool) path: note/screen
-#: C/hello-world.js.page:131
+#: C/hello-world.js.page:132
 #, no-wrap
 msgid "<output style=\"prompt\">$ </output><input>chmod +x hello-world</input>"
+msgstr "<output style=\"prompt\">$ </output><input>chmod +x hello-world</input>"
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:135 C/hello-world.py.page:115 C/hello-world.vala.page:92
+msgid "The example shows you the minimum requirements for a <code>.desktop.in</code> file."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:163
+#: C/hello-world.js.page:136 C/hello-world.py.page:116 C/hello-world.vala.page:93
+#, no-wrap
+msgid ""
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Hello World\n"
+"Comment=Say Hello\n"
+"Exec= prefix@/bin/hello-world\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;\n"
+msgstr ""
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Hello World\n"
+"Comment=Say Hello\n"
+"Exec= prefix@/bin/hello-world\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;\n"
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:138 C/hello-world.py.page:118 C/hello-world.vala.page:95
+msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
+msgstr ""
+
+#. (itstool) path: item/title
+#. (itstool) path: td/p
+#: C/hello-world.js.page:140 C/hello-world.py.page:120 C/hello-world.vala.page:97 
C/toolbar_builder.py.page:95
+#: C/toolbar_builder.vala.page:78
+msgid "Name"
+msgstr "Name"
+
+#. (itstool) path: item/p
+#: C/hello-world.js.page:140 C/hello-world.py.page:120 C/hello-world.vala.page:97
+msgid "The application name."
+msgstr "Der Anwendungsname."
+
+#. (itstool) path: item/title
+#: C/hello-world.js.page:141 C/hello-world.py.page:121 C/hello-world.vala.page:98
+msgid "Comment"
+msgstr "Comment"
+
+#. (itstool) path: item/p
+#: C/hello-world.js.page:141 C/hello-world.py.page:121 C/hello-world.vala.page:98
+msgid "A short description of the application."
+msgstr "Eine kurze Beschreibung der Anwendung."
+
+#. (itstool) path: item/title
+#: C/hello-world.js.page:142 C/hello-world.py.page:122 C/hello-world.vala.page:99
+msgid "Exec"
+msgstr "Exec"
+
+#. (itstool) path: item/p
+#: C/hello-world.js.page:142 C/hello-world.py.page:122 C/hello-world.vala.page:99
+msgid ""
+"Specifies a command to execute when you choose the application from the menu. In this example exec just 
tells "
+"where to find the <file>hello-world</file> file and the file takes care of the rest."
+msgstr ""
+
+#. (itstool) path: item/title
+#: C/hello-world.js.page:143 C/hello-world.py.page:123 C/hello-world.vala.page:100
+msgid "Terminal"
+msgstr "Terminal"
+
+#. (itstool) path: item/p
+#: C/hello-world.js.page:143 C/hello-world.py.page:123 C/hello-world.vala.page:100
+msgid "Specifies whether the command in the Exec key runs in a terminal window."
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:146 C/hello-world.py.page:126 C/hello-world.vala.page:103
+msgid ""
+"To put your application into the appropriate category, you need to add the necessary categories to the 
Categories "
+"line. More information on the different categories can be found in the <link 
href=\"http://standards.freedesktop.";
+"org/menu-spec/latest/apa.html\">menu specification</link>."
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:147 C/hello-world.py.page:127 C/hello-world.vala.page:104
+msgid ""
+"In this example we use an existing icon. For a custom icon you need to have a .svg file of your icon, 
stored in "
+"<file>/usr/share/icons/hicolor/scalable/apps</file>. Write the name of your icon file to the .desktop.in 
file, on "
+"line 7. More information on icons in: <link href=\"https://live.gnome.org/GnomeGoals/AppIcon\";>Installing 
Icons "
+"for Themes</link> and <link href=\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>on 
freedesktop."
+"org: Specifications/icon-theme-spec</link>."
+msgstr ""
+
+#. (itstool) path: section/title
+#: C/hello-world.js.page:150 C/hello-world.py.page:130 C/hello-world.vala.page:107
+msgid "The build system"
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:151 C/hello-world.py.page:131 C/hello-world.vala.page:108
+msgid ""
+"To make your application truly a part of the GNOME 3 system you need to install it with the help of 
autotools. The "
+"autotools build will install all the necessary files to all the right places."
+msgstr ""
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:152 C/hello-world.py.page:132 C/hello-world.vala.page:109
+msgid "For this you need to have the following files:"
+msgstr ""
+
+#. (itstool) path: section/title
+#. (itstool) path: item/p
+#. (itstool) path: section/p
+#: C/hello-world.js.page:155 C/hello-world.py.page:135 C/hello-world.vala.page:112 
C/weatherAutotools.js.page:40
+#: C/weatherAutotools.js.page:138
+msgid "autogen.sh"
+msgstr "autogen.sh"
+
+#. (itstool) path: section/code
+#: C/hello-world.js.page:156 C/hello-world.py.page:136 C/hello-world.vala.page:113
+#, no-wrap
+msgid ""
+"#!/bin/sh\n"
+"\n"
+"set -e\n"
+"\n"
+"test -n \"$srcdir\" || srcdir=`dirname \"$0\"`\n"
+"test -n \"$srcdir\" || srcdir=.\n"
+"\n"
+"olddir=`pwd`\n"
+"cd \"$srcdir\"\n"
+"\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install\n"
+"\n"
+"cd \"$olddir\"\n"
+"\n"
+"if test -z \"$NOCONFIGURE\"; then\n"
+"  \"$srcdir\"/configure \"$ \"\n"
+"fi\n"
+msgstr ""
+"#!/bin/sh\n"
+"\n"
+"set -e\n"
+"\n"
+"test -n \"$srcdir\" || srcdir=`dirname \"$0\"`\n"
+"test -n \"$srcdir\" || srcdir=.\n"
+"\n"
+"olddir=`pwd`\n"
+"cd \"$srcdir\"\n"
+"\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install\n"
+"\n"
+"cd \"$olddir\"\n"
+"\n"
+"if test -z \"$NOCONFIGURE\"; then\n"
+"  \"$srcdir\"/configure \"$ \"\n"
+"fi\n"
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:158 C/hello-world.py.page:138 C/hello-world.vala.page:115
+msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
+msgstr ""
+
+#. (itstool) path: section/screen
+#: C/hello-world.js.page:159 C/hello-world.py.page:139 C/hello-world.vala.page:116
+#, no-wrap
+msgid "<output style=\"prompt\">$ </output><input>chmod +x autogen.sh</input>"
+msgstr "<output style=\"prompt\">$ </output><input>chmod +x autogen.sh</input>"
+
+#. (itstool) path: section/title
+#. (itstool) path: item/p
+#. (itstool) path: section/p
+#: C/hello-world.js.page:163 C/hello-world.py.page:143 C/hello-world.vala.page:120 
C/weatherAutotools.js.page:38
+#: C/weatherAutotools.js.page:64
+msgid "Makefile.am"
+msgstr "Makefile.am"
+
+#. (itstool) path: section/code
+#: C/hello-world.js.page:164
 #, no-wrap
 msgid ""
 "# The actual runnable program is set to the SCRIPTS primitive.\n"
@@ -15126,9 +18676,28 @@ msgid ""
 "desktop_DATA = \\\n"
 "\thello-world.desktop\n"
 msgstr ""
+"# The actual runnable program is set to the SCRIPTS primitive.\n"
+"# # Prefix bin_ tells where to copy this\n"
+"bin_SCRIPTS = hello-world\n"
+"# # List of files to be distributed\n"
+"EXTRA_DIST =  \\\n"
+"\t$(bin_SCRIPTS)\n"
+"#\n"
+"#     # The desktop files\n"
+"desktopdir = $(datadir)/applications\n"
+"desktop_DATA = \\\n"
+"\thello-world.desktop\n"
+
+#. (itstool) path: section/title
+#. (itstool) path: item/p
+#. (itstool) path: section/p
+#: C/hello-world.js.page:168 C/hello-world.py.page:148 C/hello-world.vala.page:125 
C/weatherAutotools.js.page:39
+#: C/weatherAutotools.js.page:131
+msgid "configure.ac"
+msgstr "configure.ac"
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:168 C/hello-world.py.page:148
+#: C/hello-world.js.page:169 C/hello-world.py.page:149
 #, no-wrap
 msgid ""
 "# This file is processed by autoconf to create a configure script\n"
@@ -15137,18 +18706,32 @@ msgid ""
 "AC_CONFIG_FILES([Makefile hello-world.desktop])\n"
 "AC_OUTPUT\n"
 msgstr ""
+"# This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Hello World], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
+"AC_CONFIG_FILES([Makefile hello-world.desktop])\n"
+"AC_OUTPUT\n"
+
+#. (itstool) path: section/title
+#: C/hello-world.js.page:173 C/hello-world.py.page:153 C/hello-world.vala.page:130
+msgid "README"
+msgstr "Lies mich"
+
+#. (itstool) path: section/p
+#: C/hello-world.js.page:174 C/hello-world.py.page:154 C/hello-world.vala.page:131
+msgid "Information users should read first. This file can be blank."
+msgstr ""
 
 #. (itstool) path: section/p
-#: C/hello-world.js.page:175 C/hello-world.py.page:155
+#: C/hello-world.js.page:176 C/hello-world.py.page:156
 msgid ""
-"When you have the <file>hello-world</file>, <file>hello-world.desktop.in</"
-"file>, <file>Makefile.am</file>, <file>configure.ac</file> and <file>autogen."
-"sh</file> files with correct information and rights, the <file>README</file> "
-"file can include the following instructions:"
+"When you have the <file>hello-world</file>, <file>hello-world.desktop.in</file>, <file>Makefile.am</file>, "
+"<file>configure.ac</file> and <file>autogen.sh</file> files with correct information and rights, the 
<file>README</"
+"file> file can include the following instructions:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.js.page:176 C/hello-world.py.page:156
+#: C/hello-world.js.page:177 C/hello-world.py.page:157
 #, no-wrap
 msgid ""
 "To build and install this program:\n"
@@ -15189,21 +18772,18 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/hello-world.py.page:8
-#, fuzzy
-#| msgctxt "text"
-#| msgid "Grid (Python)"
+#: C/hello-world.py.page:9
 msgctxt "text"
 msgid "Hello World (Python)"
-msgstr "Grid (Python)"
+msgstr ""
 
 #. (itstool) path: item/p
-#: C/hello-world.py.page:31
+#: C/hello-world.py.page:32
 msgid "create a small \"Hello, World\" application using Python and GTK+"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:46
+#: C/hello-world.py.page:47
 #, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
@@ -15211,7 +18791,7 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:52
+#: C/hello-world.py.page:53
 #, no-wrap
 msgid ""
 "class MyWindow(Gtk.ApplicationWindow):\n"
@@ -15232,24 +18812,40 @@ msgid ""
 "    def do_startup(self):\n"
 "        Gtk.Application.do_startup(self)"
 msgstr ""
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    # constructor for a Gtk.ApplicationWindow\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Hello World!\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)"
 
 #. (itstool) path: section/p
-#: C/hello-world.py.page:70 C/hello-world.vala.page:53
+#: C/hello-world.py.page:71 C/hello-world.vala.page:54
 msgid ""
-"Gtk.Application initializes GTK+. It also connects the <gui>x</gui> button "
-"that's automatically generated along with the window to the \"destroy\" "
-"signal."
+"Gtk.Application initializes GTK+. It also connects the <gui>x</gui> button that's automatically generated 
along "
+"with the window to the \"destroy\" signal."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hello-world.py.page:71
+#: C/hello-world.py.page:72
 msgid ""
-"We can start building our first window. We do this by creating a class "
-"called <var>MyWindow</var> and assigning it a Gtk.ApplicationWindow."
+"We can start building our first window. We do this by creating a class called <var>MyWindow</var> and 
assigning it "
+"a Gtk.ApplicationWindow."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:77
+#: C/hello-world.py.page:78
 #, no-wrap
 msgid ""
 "# Add a label widget to your window\n"
@@ -15263,18 +18859,27 @@ msgid ""
 "        # add the label to the window\n"
 "        self.add(label)"
 msgstr ""
+"# Add a label widget to your window\n"
+"\n"
+"        # create a label\n"
+"        label = Gtk.Label()\n"
+"\n"
+"        # set the text of the label\n"
+"        label.set_text(\"Hello GNOME!\")\n"
+"\n"
+"        # add the label to the window\n"
+"        self.add(label)"
 
 #. (itstool) path: section/p
-#: C/hello-world.py.page:88
+#: C/hello-world.py.page:89
 msgid ""
-"A text label is one of the GTK+ widgets we can use, on account of having "
-"imported the GTK+ library. To use it, we create a variable called "
-"<var>label</var> and set the text that the label will hold. Finally, we "
-"create and run the application:"
+"A text label is one of the GTK+ widgets we can use, on account of having imported the GTK+ library. To use 
it, we "
+"create a variable called <var>label</var> and set the text that the label will hold. Finally, we create and 
run "
+"the application:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:90
+#: C/hello-world.py.page:91
 #, no-wrap
 msgid ""
 "#run the application\n"
@@ -15290,13 +18895,13 @@ msgstr ""
 "sys.exit(exit_status)"
 
 #. (itstool) path: section/title
-#: C/hello-world.py.page:100
+#: C/hello-world.py.page:101
 msgid "hello-world.py"
-msgstr ""
+msgstr "hello-world.py"
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:102 C/label.py.page:37
-#, fuzzy, no-wrap
+#: C/hello-world.py.page:103 C/label.py.page:39
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -15375,28 +18980,24 @@ msgstr ""
 "from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # constructor for a Gtk.ApplicationWindow\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
-"        image = Gtk.Image()\n"
-"        image.set_from_file(\"gnome-image.png\")\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
+"        # create a label\n"
+"        label = Gtk.Label()\n"
+"        # set the text of the label\n"
+"        label.set_text(\"Hello GNOME!\")\n"
+"        # add the label to the window\n"
+"        self.add(label)\n"
 "\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -15412,20 +19013,20 @@ msgstr ""
 "sys.exit(exit_status)\n"
 
 #. (itstool) path: section/p
-#: C/hello-world.py.page:106
+#: C/hello-world.py.page:107
 msgid ""
-"To run this application, first save it as hello-world.py. Then open "
-"Terminal, go to the folder where your application is stored and run:"
+"To run this application, first save it as hello-world.py. Then open Terminal, go to the folder where your "
+"application is stored and run:"
 msgstr ""
 
 #. (itstool) path: section/screen
-#: C/hello-world.py.page:107
+#: C/hello-world.py.page:108
 #, no-wrap
 msgid "<output style=\"prompt\">$ </output><input>python hello-world.py</input>"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.py.page:143
+#: C/hello-world.py.page:144
 #, no-wrap
 msgid ""
 "# The actual runnable program is set to the SCRIPTS primitive.\n"
@@ -15442,16 +19043,18 @@ msgid ""
 msgstr ""
 
 #. (itstool) path: info/title
-#: C/hello-world.vala.page:8
-#, fuzzy
-#| msgctxt "text"
-#| msgid "Toolbar (Vala)"
+#: C/hello-world.vala.page:9
 msgctxt "text"
 msgid "Hello World (Vala)"
-msgstr "Werkzeugleiste (Vala)"
+msgstr ""
+
+#. (itstool) path: item/p
+#: C/hello-world.vala.page:32
+msgid "create a small \"Hello, World\" application using GTK+"
+msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.vala.page:44
+#: C/hello-world.vala.page:45
 #, no-wrap
 msgid ""
 "class MyApplication : Gtk.Application {\n"
@@ -15463,46 +19066,63 @@ msgid ""
 "        }\n"
 "}"
 msgstr ""
+"class MyApplication : Gtk.Application {\n"
+"        protected override void activate () {\n"
+"                var window = new Gtk.ApplicationWindow (this);\n"
+"                window.set_title (\"Welcome to GNOME\");\n"
+"                window.set_default_size (200, 100);\n"
+"                window.show_all ();\n"
+"        }\n"
+"}"
 
 #. (itstool) path: section/p
-#: C/hello-world.vala.page:54
+#: C/hello-world.vala.page:55
 msgid ""
-"We can start building our first window. We do this by creating a variable "
-"called <var>window</var> and assigning it a new Gtk.ApplicationWindow."
+"We can start building our first window. We do this by creating a variable called <var>window</var> and 
assigning "
+"it a new Gtk.ApplicationWindow."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/hello-world.vala.page:55
+#: C/hello-world.vala.page:56
 msgid ""
-"We give the window a title using <code>set_title</code>. The title can be "
-"any string you want it to be. To be on the safe side, it's best to stick to "
-"UTF-8 encoding."
+"We give the window a title using <code>set_title</code>. The title can be any string you want it to be. To 
be on "
+"the safe side, it's best to stick to UTF-8 encoding."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.vala.page:60
+#: C/hello-world.vala.page:61
 #, no-wrap
 msgid ""
 "var label = new Gtk.Label (\"Hello GNOME!\");\n"
 "                window.add (label);\n"
 msgstr ""
+"var label = new Gtk.Label (\"Hello GNOME!\");\n"
+"                window.add (label);\n"
+
+#. (itstool) path: section/p
+#: C/hello-world.vala.page:65
+msgid "Finally, we create and run the application:"
+msgstr ""
 
 #. (itstool) path: section/code
-#: C/hello-world.vala.page:66
+#: C/hello-world.vala.page:67
 #, no-wrap
 msgid ""
 "int main (string[] args) {\n"
 "        return new MyApplication ().run (args);\n"
 "}"
 msgstr ""
+"int main (string[] args) {\n"
+"        return new MyApplication ().run (args);\n"
+"}"
 
 #. (itstool) path: section/title
-#: C/hello-world.vala.page:74
+#: C/hello-world.vala.page:75
 msgid "hello-world.vala"
 msgstr "hello-world.vala"
 
 #. (itstool) path: section/code
-#: C/hello-world.vala.page:76
+#: C/hello-world.vala.page:77
 #, no-wrap
 msgid ""
 "public class MyApplication : Gtk.Application {\n"
@@ -15520,22 +19140,52 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\tvar label = new Gtk.Label (\"Hello GNOME!\");\n"
+"\t\twindow.add (label);\n"
+"\t\twindow.set_title (\"Welcome to GNOME\");\n"
+"\t\twindow.set_default_size (200, 100);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/hello-world.vala.page:80
+#: C/hello-world.vala.page:81
 msgid ""
-"To run this application, first save it as hello-world.vala. Then open "
-"Terminal, go to the folder where your application is stored."
+"To run this application, first save it as hello-world.vala. Then open Terminal, go to the folder where your 
"
+"application is stored."
 msgstr ""
 
-#. (itstool) path: section/screen
+#. (itstool) path: section/p
 #: C/hello-world.vala.page:82
+msgid "Compile the program:"
+msgstr ""
+
+#. (itstool) path: section/screen
+#: C/hello-world.vala.page:83
 #, no-wrap
 msgid "valac --pkg gtk+-3.0 <file>hello-world.vala</file>"
 msgstr "valac --pkg gtk+-3.0 <file>hello-world.vala</file>"
 
+#. (itstool) path: section/p
+#: C/hello-world.vala.page:84
+msgid "Run the program:"
+msgstr ""
+
+#. (itstool) path: section/screen
+#: C/hello-world.vala.page:85
+#, no-wrap
+msgid "./<var>hello-world</var>"
+msgstr "./<var>hello-world</var>"
+
 #. (itstool) path: section/code
-#: C/hello-world.vala.page:120
+#: C/hello-world.vala.page:121
 #, no-wrap
 msgid ""
 "# The actual runnable program is set to the SCRIPTS primitive.\n"
@@ -15563,7 +19213,39 @@ msgstr ""
 "\thello-world.desktop\n"
 
 #. (itstool) path: section/code
+#: C/hello-world.vala.page:126
+#, no-wrap
+msgid ""
+"# This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Hello World], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
+"AC_PROG_CC\n"
+"AM_PROG_VALAC([0.16])\n"
+"PKG_CHECK_MODULES(gtk, gtk+-3.0)\n"
+"AC_CONFIG_FILES([Makefile hello-world.desktop])\n"
+"\n"
+"AC_OUTPUT\n"
+msgstr ""
+"# This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Hello World], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
+"AC_PROG_CC\n"
+"AM_PROG_VALAC([0.16])\n"
+"PKG_CHECK_MODULES(gtk, gtk+-3.0)\n"
+"AC_CONFIG_FILES([Makefile hello-world.desktop])\n"
+"\n"
+"AC_OUTPUT\n"
+
+#. (itstool) path: section/p
 #: C/hello-world.vala.page:133
+msgid ""
+"When you have the <file>hello-world.c</file>, <file>hello-world.desktop.in</file>, 
<file>Makefile.am</file>, "
+"<file>configure.ac</file> and <file>autogen.sh</file> files with correct information and rights, the 
<file>README</"
+"file> file can include the following instructions:"
+msgstr ""
+
+#. (itstool) path: section/code
+#: C/hello-world.vala.page:134
 #, no-wrap
 msgid ""
 "To build and install this program:\n"
@@ -15616,47 +19298,41 @@ 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.c.page:21 C/image.js.page:20 C/image.py.page:23
-#: C/image.vala.page:21
+#: C/image.c.page:22 C/image.js.page:21 C/image.py.page:29 C/image.vala.page:22
 msgctxt "_"
 msgid "external ref='media/image.png' md5='9416aa74d9d6a857783f7a36338e7a02'"
 msgstr "external ref='media/image.png' md5='9416aa74d9d6a857783f7a36338e7a02'"
 
 #. (itstool) path: info/title
-#: C/image.c.page:7
-#, fuzzy
+#: C/image.c.page:8
 msgctxt "text"
 msgid "Image (C)"
-msgstr "_Bild"
+msgstr "Image (C)"
 
 #. (itstool) path: info/desc
-#: C/image.c.page:17 C/image.js.page:16 C/image.py.page:19
-#: C/image.vala.page:17
+#: C/image.c.page:18 C/image.js.page:17 C/image.py.page:25 C/image.vala.page:18
 msgid "A widget displaying an image"
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/image.c.page:20 C/image.js.page:19 C/image.py.page:22
-#: C/image.vala.page:20
+#: C/image.c.page:21 C/image.js.page:20 C/image.py.page:28 C/image.vala.page:21
 msgid "Image"
 msgstr "Bild"
 
 #. (itstool) path: page/p
-#: C/image.c.page:22 C/image.js.page:21 C/image.py.page:24
-#: C/image.vala.page:22
+#: C/image.c.page:23 C/image.js.page:22 C/image.py.page:30 C/image.vala.page:23
 msgid "This GtkApplication displays an image file from the current directory."
 msgstr ""
 
 #. (itstool) path: note/p
-#: C/image.c.page:23 C/image.js.page:22 C/image.vala.page:23
+#: C/image.c.page:24 C/image.js.page:23 C/image.vala.page:24
 msgid ""
-"If the image file isn't 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. Use your favorite picture!"
+"If the image file isn't 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. Use your favorite picture!"
 msgstr ""
 
 #. (itstool) path: page/code
-#: C/image.c.page:27
+#: C/image.c.page:28
 #, no-wrap
 msgid ""
 "#include &lt;gtk/gtk.h&gt;\n"
@@ -15736,20 +19412,18 @@ msgstr ""
 "}\n"
 
 #. (itstool) path: item/p
-#: C/image.c.page:34
-msgid ""
-"<link href=\"http://developer.gnome.org/gtk3/stable/GtkImage.html";
-"\">GtkImage</link>"
-msgstr ""
+#: C/image.c.page:35
+msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkImage.html\";>GtkImage</link>"
+msgstr "<link href=\"http://developer.gnome.org/gtk3/stable/GtkImage.html\";>GtkImage</link>"
 
 #. (itstool) path: info/title
-#: C/image.js.page:6
+#: C/image.js.page:7
 msgctxt "text"
 msgid "Image (JavaScript)"
 msgstr "Bild (JavaScript)"
 
 #. (itstool) path: page/code
-#: C/image.js.page:26
+#: C/image.js.page:27
 #, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
@@ -15813,31 +19487,98 @@ msgid ""
 "let app = new ImageExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ImageExample = new Lang.Class ({\n"
+"\tName: 'Image Example',\n"
+"\n"
+"\t/* Create the application itself\n"
+"\t   This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"   \t     this.application = new Gtk.Application ({\n"
+"  \t          application_id: 'org.example.jsimage',\n"
+"  \t          flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"   \t     });\n"
+"\n"
+"\t// Connect 'activate' and 'startup' signals to the callback functions\n"
+"\tthis.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"\tthis.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'activate' signal presents windows when active\n"
+"\t_onActivate: function () {\n"
+"\t\tthis._window.present ();\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'startup' signal initializes menus and builds the UI\n"
+"\t_onStartup: function () {\n"
+"\t\tthis._buildUI ();\n"
+"\t},\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\t// Build the application's UI\n"
+"\t_buildUI: function () {\n"
+"\n"
+"\t\t// Create the application window\n"
+"        \tthis._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                     \t     window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                     \t     title: \"Welcome to GNOME\",\n"
+"                                                     \t     default_height: 300,\n"
+"                                                     \t     default_width: 300 });\n"
+"\n"
+"\t\t// Create the label\n"
+"\t\tthis.jsimage = new Gtk.Image ({file: \"gnome-image.png\"});\n"
+"\t\tthis._window.add (this.jsimage);\n"
+"\n"
+"       \t \t// Show the window and all child widgets\n"
+"       \t \tthis._window.show_all();\n"
+"\t}\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ImageExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
-#: C/image.js.page:33
-msgid ""
-"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html";
-"\">Gtk.Image</link>"
-msgstr ""
+#: C/image.js.page:34
+msgid "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html\";>Gtk.Image</link>"
+msgstr "<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html\";>Gtk.Image</link>"
 
 #. (itstool) path: info/title
-#: C/image.py.page:7
+#: C/image.py.page:8
 msgctxt "text"
 msgid "Image (Python)"
 msgstr "Bild (Python)"
 
+#. (itstool) path: credit/name
+#: C/image.py.page:20
+msgid "Sindhu S"
+msgstr "Sindhu S"
+
+#. (itstool) path: credit/years
+#: C/image.py.page:22
+msgid "2014"
+msgstr "2014"
+
 #. (itstool) path: note/p
-#: C/image.py.page:26
+#: C/image.py.page:32
 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."
+"If the image file is not loaded successfully, the image will contain a \"broken image\" icon. 
<file>filename.png</"
+"file> needs to be in the current directory for this code to work."
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/image.py.page:35
-#, fuzzy, no-wrap
+#: C/image.py.page:43
+#, no-wrap
 #| msgid ""
 #| "from gi.repository import Gtk\n"
 #| "import sys\n"
@@ -15878,7 +19619,8 @@ msgstr ""
 #| "exit_status = app.run(sys.argv)\n"
 #| "sys.exit(exit_status)\n"
 msgid ""
-"from gi.repository import Gtk\n"
+"\n"
+"  from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
 "\n"
@@ -15912,32 +19654,31 @@ msgid ""
 "app = MyApplication()\n"
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
+"\n"
+"  "
 msgstr ""
-"from gi.repository import Gtk\n"
+"\n"
+"  from gi.repository import Gtk\n"
 "import sys\n"
 "\n"
+"\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
-"        self.set_default_size(200, 200)\n"
+"    # create a window\n"
 "\n"
-"        # the scrolledwindow\n"
-"        scrolled_window = Gtk.ScrolledWindow()\n"
-"        scrolled_window.set_border_width(10)\n"
-"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
-"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
 "\n"
-"        # an image - slightly larger than the window...\n"
+"        # create an image\n"
 "        image = Gtk.Image()\n"
+"        # set the content of the image as the file filename.png\n"
 "        image.set_from_file(\"gnome-image.png\")\n"
+"        # add the image to the window\n"
+"        self.add(image)\n"
 "\n"
-"        # add the image to the scrolledwindow\n"
-"        scrolled_window.add_with_viewport(image)\n"
-"\n"
-"        # add the scrolledwindow to the window\n"
-"        self.add(scrolled_window)\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
+"\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -15951,33 +19692,73 @@ msgstr ""
 "app = MyApplication()\n"
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
+"\n"
+"  "
 
 #. (itstool) path: section/p
-#: C/image.py.page:37
+#: C/image.py.page:47
 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:"
+"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 ""
 
 #. (itstool) path: section/code
-#: C/image.py.page:38
+#: C/image.py.page:51
 #, no-wrap
+#| msgid ""
+#| "from gi.repository import Gtk\n"
+#| "import sys\n"
+#| "\n"
+#| "class MyWindow(Gtk.ApplicationWindow):\n"
+#| "    def __init__(self, app):\n"
+#| "        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
+#| "        self.set_default_size(200, 200)\n"
+#| "\n"
+#| "        # the scrolledwindow\n"
+#| "        scrolled_window = Gtk.ScrolledWindow()\n"
+#| "        scrolled_window.set_border_width(10)\n"
+#| "        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
+#| "        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+#| "\n"
+#| "        # an image - slightly larger than the window...\n"
+#| "        image = Gtk.Image()\n"
+#| "        image.set_from_file(\"gnome-image.png\")\n"
+#| "\n"
+#| "        # add the image to the scrolledwindow\n"
+#| "        scrolled_window.add_with_viewport(image)\n"
+#| "\n"
+#| "        # add the scrolledwindow to the window\n"
+#| "        self.add(scrolled_window)\n"
+#| "\n"
+#| "class MyApplication(Gtk.Application):\n"
+#| "    def __init__(self):\n"
+#| "        Gtk.Application.__init__(self)\n"
+#| "\n"
+#| "    def do_activate(self):\n"
+#| "        win = MyWindow(self)\n"
+#| "        win.show_all()\n"
+#| "\n"
+#| "    def do_startup(self):\n"
+#| "        Gtk.Application.do_startup(self)\n"
+#| "\n"
+#| "app = MyApplication()\n"
+#| "exit_status = app.run(sys.argv)\n"
+#| "sys.exit(exit_status)\n"
 msgid ""
 "\n"
-"# a class to create a window\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a class to create a window\n"
+"    class MyWindow(Gtk.ApplicationWindow):\n"
 "    def __init__(self, app):\n"
 "        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
 "        self.set_default_size(300, 300)\n"
 "\n"
-"# a class to create an image\n"
-"class MyImage(Gtk.Image):\n"
+"    # a class to create an image\n"
+"    class MyImage(Gtk.Image):\n"
 "    def __init__(self):\n"
 "        Gtk.Image.__init__(self)\n"
 "        self.set_from_file(\"gnome-image.png\")\n"
 "\n"
-"class MyApplication(Gtk.Application):\n"
+"    class MyApplication(Gtk.Application):\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
@@ -15987,93 +19768,138 @@ msgid ""
 "        # create an instance of MyImage and add it to the window\n"
 "        win.add(MyImage())\n"
 "        # show the window and everything on it\n"
-"        win.show_all()"
-msgstr ""
-
-#. (itstool) path: section/title
-#: C/image.py.page:65
-msgid "Useful methods for an Image widget"
+"        win.show_all()\n"
+"  "
 msgstr ""
+"\n"
+"    # a class to create a window\n"
+"    class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"    # a class to create an image\n"
+"    class MyImage(Gtk.Image):\n"
+"    def __init__(self):\n"
+"        Gtk.Image.__init__(self)\n"
+"        self.set_from_file(\"gnome-image.png\")\n"
+"\n"
+"    class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # create an instance of MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # create an instance of MyImage and add it to the window\n"
+"        win.add(MyImage())\n"
+"        # show the window and everything on it\n"
+"        win.show_all()\n"
+"  "
 
-#. (itstool) path: item/p
-#: C/image.py.page:68
+#. (itstool) path: note/p
+#: C/image.py.page:78
 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."
-"STOCK_ABOUT</code> (more can be found at <link href=\"http://developer.gnome.";
-"org/gtk3/unstable/gtk3-Stock-Items\">Stock Items</link>, with the caveat "
-"that they should be modified as above) and <code>size</code> is a stock icon "
-"size to be chosen from <code>Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk."
-"IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk."
-"IconSize.DND, Gtk.IconSize.DIALOG</code>."
+"To use this code snippet, you will need to add the code that imports <code>Gtk</code> and 
<code>GdkPixbuf</code> "
+"from <code>gi.repository</code> and lines that instantiate the <code>MyApplication</code> window."
 msgstr ""
 
-#. (itstool) path: item/p
-#: C/image.py.page:69
-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."
+#. (itstool) path: section/title
+#: C/image.py.page:85
+msgid "Useful methods for an Image widget"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image.py.page:70
+#: C/image.py.page:89
 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>."
+"To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, where <code>pixbuf</code> is a 
<link "
+"href=\"https://developer.gnome.org/gdk-pixbuf/unstable/index.html\";> GdkPixbuf</link>."
 msgstr ""
 
 #. (itstool) path: item/code
-#: C/image.py.page:71
+#: C/image.py.page:93
 #, no-wrap
 msgid ""
 "\n"
-"from gi.repository import Gtk\n"
-"from gi.repository import GdkPixbuf\n"
-"import sys\n"
+"        from gi.repository import Gtk\n"
+"        from gi.repository import GdkPixbuf\n"
+"        import sys\n"
 "\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    # create a window\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(300, 300)\n"
+"        class MyWindow(Gtk.ApplicationWindow):\n"
+"            # create a window\n"
+"            def __init__(self, app):\n"
+"                Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"                self.set_default_size(300, 300)\n"
 "\n"
-"        # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
-"        # and height=64 amd boolean preserve_aspect_ratio=False.\n"
-"        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
+"                # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
+"                # and height=64 amd boolean preserve_aspect_ratio=False.\n"
+"                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
 "\n"
-"        # create an image\n"
-"        image = Gtk.Image()\n"
-"        # set the content of the image as the pixbuf\n"
-"        image.set_from_pixbuf(pixbuf)\n"
-"        # add the image to the window\n"
-"        self.add(image)"
+"                # create an image\n"
+"                image = Gtk.Image()\n"
+"                # set the content of the image as the pixbuf\n"
+"                image.set_from_pixbuf(pixbuf)\n"
+"                # add the image to the window\n"
+"                self.add(image)\n"
+"        "
 msgstr ""
+"\n"
+"        from gi.repository import Gtk\n"
+"        from gi.repository import GdkPixbuf\n"
+"        import sys\n"
+"\n"
+"        class MyWindow(Gtk.ApplicationWindow):\n"
+"            # create a window\n"
+"            def __init__(self, app):\n"
+"                Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"                self.set_default_size(300, 300)\n"
+"\n"
+"                # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
+"                # and height=64 amd boolean preserve_aspect_ratio=False.\n"
+"                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
+"\n"
+"                # create an image\n"
+"                image = Gtk.Image()\n"
+"                # set the content of the image as the pixbuf\n"
+"                image.set_from_pixbuf(pixbuf)\n"
+"                # add the image to the window\n"
+"                self.add(image)\n"
+"        "
 
 #. (itstool) path: item/p
-#: C/image.py.page:92
+#: C/image.py.page:115
 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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/image.py.page:93
+#: C/image.py.page:119
 msgid ""
-"For loading from an input stream, see <code>new_from_stream()</code> and "
-"<code>new_from_stream_at_scale()</code> in the documentation"
+"For loading from an input stream, see <code>new_from_stream()</code> and 
<code>new_from_stream_at_scale()</code> "
+"in the documentation."
 msgstr ""
 
+#. (itstool) path: item/p
+#: C/image.py.page:131
+#| msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html\";>GtkImage</link>"
+msgid "<link href=\"https://developer.gnome.org/gtk3/unstable/GtkImage.html\";> GtkImage</link>"
+msgstr "<link href=\"https://developer.gnome.org/gtk3/unstable/GtkImage.html\";> GtkImage</link>"
+
+#. (itstool) path: item/p
+#: C/image.py.page:135
+#| msgid "<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html\";>GtkWindow</link>"
+msgid "<link href=\"https://developer.gnome.org/gtk3/unstable/GtkWindow.html\";> GtkWindow</link>"
+msgstr "<link href=\"https://developer.gnome.org/gtk3/unstable/GtkWindow.html\";> GtkWindow</link>"
+
 #. (itstool) path: info/title
-#: C/image.vala.page:7
+#: C/image.vala.page:8
 msgctxt "text"
 msgid "Image (Vala)"
-msgstr ""
+msgstr "Image (Vala)"
 
 #. (itstool) path: page/code
-#: C/image.vala.page:26
+#: C/image.vala.page:27
 #, no-wrap
 msgid ""
 "public class MyWindow : Gtk.ApplicationWindow {\n"
@@ -16101,125 +19927,134 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tvar image = new Gtk.Image ();\n"
+"\t\timage.set_from_file (\"gnome-image.png\");\n"
+"\t\tthis.add (image);\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/image.vala.page:31 C/separator.vala.page:39
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html";
-"\">GtkApplication</link>"
-msgstr ""
+#: C/image.vala.page:32 C/separator.vala.page:40
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>GtkApplication</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>GtkApplication</link>"
 
 #. (itstool) path: item/p
-#: C/image.vala.page:32
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
-"\">GtkApplicationWindow</link>"
-msgstr ""
+#: C/image.vala.page:33
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html\";>GtkApplicationWindow</link>"
+msgstr "<link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html\";>GtkApplicationWindow</link>"
 
 #. (itstool) path: item/p
-#: C/image.vala.page:33 C/paned.vala.page:37
-msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Image.html\";>GtkImage</link>"
-msgstr ""
+#: C/image.vala.page:34 C/paned.vala.page:38
+msgid "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Image.html\";>GtkImage</link>"
+msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Image.html\";>GtkImage</link>"
 
 #. (itstool) path: 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/image-viewer.c.page:38 C/image-viewer.cpp.page:36
-#: C/image-viewer.js.page:46 C/image-viewer.py.page:45
-#: C/image-viewer.vala.page:53
+#: C/image-viewer.c.page:39 C/image-viewer.cpp.page:37 C/image-viewer.js.page:47 C/image-viewer.py.page:46
+#: C/image-viewer.vala.page:54
 msgctxt "_"
-msgid ""
-"external ref='media/image-viewer.png' md5='7720360611243b14283b83527be968c2'"
-msgstr ""
-"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+msgid "external ref='media/image-viewer.png' md5='7720360611243b14283b83527be968c2'"
+msgstr "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 
 #. (itstool) path: info/title
-#: C/image-viewer.c.page:7
+#: C/image-viewer.c.page:8
 msgctxt "text"
 msgid "Image viewer (C)"
 msgstr "Bildbetrachter (C)"
 
 #. (itstool) path: info/desc
-#: C/image-viewer.c.page:10
+#: C/image-viewer.c.page:11
 msgid "A little bit more than a simple \"Hello world\" Gtk application."
 msgstr ""
 
 #. (itstool) path: page/title
-#: C/image-viewer.c.page:28 C/image-viewer.cpp.page:26
-#: C/image-viewer.js.page:28 C/image-viewer.py.page:28
-#: C/image-viewer.vala.page:36
+#: C/image-viewer.c.page:29 C/image-viewer.cpp.page:27 C/image-viewer.js.page:29 C/image-viewer.py.page:29
+#: C/image-viewer.vala.page:37
 msgid "Image viewer"
 msgstr "Bildbetrachter"
 
 #. (itstool) path: synopsis/p
-#: C/image-viewer.c.page:31 C/image-viewer.cpp.page:29
-#: C/message-board.c.page:28 C/record-collection.js.page:31
+#: C/image-viewer.c.page:32 C/image-viewer.cpp.page:30 C/message-board.c.page:29 
C/record-collection.js.page:32
 msgid "In this tutorial, you will learn:"
 msgstr "In diesem Tutorial lernen Sie, wie:"
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:33
+#: C/image-viewer.c.page:34
 msgid "Some basic concepts of C/GObject programming"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:34
+#: C/image-viewer.c.page:35
 msgid "How to write a Gtk application in C"
 msgstr "Schreiben einer Gtk-Anwendung in C"
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:48
+#: C/image-viewer.c.page:49
 msgid ""
-"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."
+"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 ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:51
+#: C/image-viewer.c.page:52
 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="
-"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to "
-"use the interface builder."
+"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=\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to 
use the "
+"interface builder."
 msgstr ""
 
 #. (itstool) path: section/p
-#: C/image-viewer.c.page:66
+#: C/image-viewer.c.page:67
 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 "
-"and shows it. More details are given below; skip this list if you understand "
-"the basics:"
+"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 and shows it. More details are given below; skip this list if you 
"
+"understand the basics:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:73
+#: C/image-viewer.c.page:74
 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."
+"The <code>create_window</code> function creates a new (empty) window and connects a signal to exit the 
application "
+"when that window is closed."
 msgstr ""
 
 #. (itstool) path: section/title
-#: C/image-viewer.c.page:89 C/image-viewer.cpp.page:86
-#: C/image-viewer.vala.page:138
+#: C/image-viewer.c.page:90 C/image-viewer.cpp.page:87 C/image-viewer.vala.page:139
 msgid "Creating the user interface"
 msgstr "Erstellen der Benutzeroberfläche"
 
 #. (itstool) path: section/p
-#: C/image-viewer.c.page:90
+#: C/image-viewer.c.page:91
 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 "
-"even other containers. Here we will use the simplest available container, a "
+"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 even other containers. Here we will use the simplest available 
container, a "
 "<code>GtkBox</code>:"
 msgstr ""
 
 #. (itstool) path: section/code
-#: C/image-viewer.c.page:93
+#: C/image-viewer.c.page:94
 #, no-wrap
 msgid ""
 "\n"
@@ -16255,71 +20090,92 @@ msgid ""
 "\treturn window;\n"
 "}\n"
 msgstr ""
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"\tGtkWidget *window;\n"
+"\tGtkWidget *button;\n"
+"\tGtkWidget *image;\n"
+"\tGtkWidget *box;\n"
+"\n"
+"\t/* Set up the UI */\n"
+"\twindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\tgtk_window_set_title (GTK_WINDOW (window), \"image-viewer-c\");\n"
+"\n"
+"\tbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);\n"
+"\tbutton = gtk_button_new_with_label (_(\"Open image\"));\n"
+"\timage = gtk_image_new ();\n"
+"\n"
+"\tgtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);\n"
+"\tgtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);\n"
+"\n"
+"\tgtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"\t/* Connect signals */\n"
+"\n"
+"\t/* Show open dialog when opening a file */\n"
+"\tg_signal_connect (button, \"clicked\", G_CALLBACK (on_open_image), image);\n"
+"\n"
+"\t/* Exit when the window is closed */\n"
+"\tg_signal_connect (window, \"destroy\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"\treturn window;\n"
+"}\n"
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:128
+#: C/image-viewer.c.page:129
 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. The macros like <code>GTK_BOX</code> are used for dynamic type "
-"checking and casting which is needed as C doesn't support object-orientation "
-"out-of-the-box."
+"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. The macros like <code>GTK_BOX</code> are used for dynamic type 
checking "
+"and casting which is needed as C doesn't support object-orientation out-of-the-box."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:133
+#: C/image-viewer.c.page:134
 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 "
-"while the button will just be as big as needed. You will notice that we "
-"don't set explicit sizes on the widgets. In GTK this is usually not needed "
-"as it makes it much easier to have a layout that looks good in different "
-"window sizes. Next, the box is added to the window."
+"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 while the button will just be as big as needed. You will notice that 
we don't "
+"set explicit sizes on the widgets. In GTK this is usually not needed as it makes it much easier to have a 
layout "
+"that looks good in different window sizes. Next, the box is added to the window."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:139
+#: C/image-viewer.c.page:140
 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 "
-"<em>clicked</em> signal, which we can connect to some action. This is done "
-"using the <code>g_signal_connect</code> function which tells GTK to call the "
-"<code>on_image_open</code> function when the button is clicked and to pass "
-"the image as an additional argument to that function. We will define the "
+"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 <em>clicked</em> signal, which we can connect to some action. This is 
done "
+"using the <code>g_signal_connect</code> function which tells GTK to call the <code>on_image_open</code> 
function "
+"when the button is clicked and to pass the image as an additional argument to that function. We will define 
the "
 "<em>callback</em> in the next section."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:144
-msgid ""
-"The last <code>g_signal_connect()</code> makes sure that the application "
-"exits when the window is closed."
+#: C/image-viewer.c.page:145
+msgid "The last <code>g_signal_connect()</code> makes sure that the application exits when the window is 
closed."
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:147
+#: C/image-viewer.c.page:148
 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."
+"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 ""
 
 #. (itstool) path: section/title
-#: C/image-viewer.c.page:154 C/image-viewer.cpp.page:141
-#: C/image-viewer.vala.page:209
+#: C/image-viewer.c.page:155 C/image-viewer.cpp.page:142 C/image-viewer.vala.page:210
 msgid "Showing the image"
 msgstr "Bildanzeige"
 
 #. (itstool) path: section/p
-#: C/image-viewer.c.page:155
+#: C/image-viewer.c.page:156
 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."
+"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 ""
 
 #. (itstool) path: section/code
-#: C/image-viewer.c.page:158
+#: C/image-viewer.c.page:159
 #, no-wrap
 msgid ""
 "\n"
@@ -16355,184 +20211,190 @@ msgid ""
 "\tgtk_widget_destroy (dialog);\n"
 "}\n"
 msgstr ""
+"\n"
+"static void\n"
+"on_open_image (GtkButton* button, gpointer user_data)\n"
+"{\n"
+"\tGtkWidget *image = GTK_WIDGET (user_data);\n"
+"\tGtkWidget *toplevel = gtk_widget_get_toplevel (image);\n"
+"\tGtkFileFilter *filter = gtk_file_filter_new ();\n"
+"\tGtkWidget *dialog = gtk_file_chooser_dialog_new (_(\"Open image\"),\n"
+"\t                                                 GTK_WINDOW (toplevel),\n"
+"\t                                                 GTK_FILE_CHOOSER_ACTION_OPEN,\n"
+"\t                                                 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,\n"
+"\t                                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,\n"
+"\t                                                 NULL);\n"
+"\n"
+"\tgtk_file_filter_add_pixbuf_formats (filter);\n"
+"\tgtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),\n"
+"\t                             filter);\n"
+"\n"
+"\tswitch (gtk_dialog_run (GTK_DIALOG (dialog)))\n"
+"\t{\n"
+"\t\tcase GTK_RESPONSE_ACCEPT:\n"
+"\t\t{\n"
+"\t\t\tgchar *filename =\n"
+"\t\t\t\tgtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));\n"
+"\t\t\tgtk_image_set_from_file (GTK_IMAGE (image), filename);\n"
+"\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tgtk_widget_destroy (dialog);\n"
+"}\n"
 
 #. (itstool) path: section/p
-#: C/image-viewer.c.page:191 C/image-viewer.cpp.page:177
-#: C/image-viewer.js.page:282 C/image-viewer.py.page:196
-msgid ""
-"This is a bit more complicated than anything we've attempted so far, so "
-"let's break it down:"
+#: C/image-viewer.c.page:192 C/image-viewer.cpp.page:178 C/image-viewer.js.page:283 
C/image-viewer.py.page:197
+msgid "This is a bit more complicated than anything we've attempted so far, so let's break it down:"
 msgstr ""
 
 #. (itstool) path: item/p
-#: C/image-viewer.c.page:193
+#: C/image-viewer.c.page:194
 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 "
-"<em>clicked</em> doesn't have any. Next is the <code>user_data</code> "
-"argument which is a pointer to the data we passed when connecting the "
-"signal. In th