[gnome-devel-docs] Updated Galician translations



commit 5ea611b801bae4495bac4a1d79db46e87bb2d29e
Author: Fran DiÃguez <fran dieguez mabishu com>
Date:   Sun Sep 23 22:22:48 2012 +0200

    Updated Galician translations

 platform-demos/gl/gl.po |18818 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 14069 insertions(+), 4749 deletions(-)
---
diff --git a/platform-demos/gl/gl.po b/platform-demos/gl/gl.po
index 1a49925..80e4995 100644
--- a/platform-demos/gl/gl.po
+++ b/platform-demos/gl/gl.po
@@ -1,226 +1,636 @@
 # Galician translation for gnome-devel-docs.
 # Copyright (C) 2011 gnome-devel-docs's COPYRIGHT HOLDER
 # This file is distributed under the same license as the gnome-devel-docs package.
-# FIRST AUTHOR <EMAIL ADDRESS>, YEAR.
 # Fran DiÃguez <frandieguez gnome org>, 2011.
 # Fran Dieguez <frandieguez gnome org>, 2011, 2012.
-#
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-04-19 16:01+0000\n"
-"PO-Revision-Date: 2012-04-19 22:28+0200\n"
+"POT-Creation-Date: 2012-09-14 16:41+0000\n"
+"PO-Revision-Date: 2012-09-23 22:22+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
-"Language-Team: Galician <gnome-l10n-gl gnome org>\n"
+"Language-Team: gnome-l10n-gl gnome org\n"
+"Language: gl\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.7.1\n"
+"X-Project-Style: gnome\n"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/window.vala.page:18(None) C/window.js.page:18(None)
-#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
-msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
-
-#: C/window.vala.page:9(name) C/translate.page:10(name)
-#: C/messagedialog.vala.page:9(name) C/index.page:22(name)
-#: C/image-viewer.vala.page:24(name) C/guitar-tuner.vala.page:20(name)
-#: C/GtkApplication.vala.page:15(name) C/documentation.page:10(name)
-#: C/dialog.vala.page:9(name) C/button.vala.page:9(name)
-#: C/bug-filing.page:9(name) C/beginner.vala.page:12(name)
-#: C/beginner.py.page:12(name) C/aboutdialog.vala.page:15(name)
+#: C/window.vala.page:24(None) C/window.py.page:30(None)
+#: C/window.js.page:24(None) C/window.c.page:21(None)
+#: C/GtkApplicationWindow.vala.page:21(None)
+#: C/GtkApplicationWindow.py.page:26(None)
+#: C/GtkApplicationWindow.js.page:21(None)
+#: C/GtkApplicationWindow.c.page:21(None)
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgid "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
+msgstr "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
+
+#: C/window.vala.page:7(title)
+#| msgid "Window"
+msgid "Window (Vala)"
+msgstr "Xanela (Vala)"
+
+#: C/window.vala.page:12(name) C/window.py.page:12(name)
+#: C/window.c.page:12(name) C/vala.page:10(name) C/tutorial.py.page:14(name)
+#: C/translate.page:10(name) C/treeview_simple_liststore.vala.page:14(name)
+#: C/toolbar_builder.vala.page:14(name) C/toolbar_builder.py.page:14(name)
+#: C/toolbar.vala.page:13(name) C/toolbar.js.page:12(name)
+#: C/togglebutton.vala.page:15(name) C/textview.vala.page:12(name)
+#: C/switch.vala.page:16(name) C/statusbar.vala.page:15(name)
+#: C/spinner.vala.page:12(name) C/spinbutton.vala.page:14(name)
+#: C/scrolledwindow.vala.page:13(name) C/scale.vala.page:14(name)
+#: C/radiobutton.vala.page:15(name) C/py.page:10(name)
+#: C/progressbar.vala.page:12(name) C/messagedialog.vala.page:12(name)
+#: C/menubutton.py.page:12(name) C/menubutton.vala.page:12(name)
+#: C/menubar.vala.page:14(name) C/menubar.py.page:14(name)
+#: C/linkbutton.vala.page:12(name) C/label.vala.page:12(name)
+#: C/js.page:11(name) C/index.page:22(name) C/image-viewer.vala.page:26(name)
+#: C/image.vala.page:12(name) C/helloWorld.js.page:19(name)
+#: C/guitar-tuner.vala.page:21(name) C/GtkApplicationWindow.vala.page:12(name)
+#: C/GtkApplicationWindow.py.page:12(name)
+#: C/GtkApplicationWindow.js.page:12(name)
+#: C/GtkApplicationWindow.c.page:12(name) C/grid.vala.page:14(name)
+#: C/grid.py.page:13(name) C/gmenu.vala.page:19(name) C/gmenu.py.page:12(name)
+#: C/gmenu.js.page:12(name) C/gmenu.c.page:12(name)
+#: C/filechooserdialog.vala.page:15(name) C/entry.vala.page:12(name)
+#: C/documentation.page:10(name) C/dialog.vala.page:12(name)
+#: C/cpp.page:10(name) C/combobox.vala.page:12(name)
+#: C/colorbutton.vala.page:14(name) C/checkbutton.vala.page:12(name)
+#: C/checkbutton.c.page:12(name) C/c.page:10(name) C/button.vala.page:13(name)
+#: C/bug-filing.page:9(name) C/beginner.vala.page:14(name)
+#: C/beginner.py.page:14(name) C/aboutdialog.vala.page:20(name)
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
-#: C/window.vala.page:10(email) C/translate.page:11(email)
-#: C/messagedialog.vala.page:10(email) C/index.page:23(email)
-#: C/image-viewer.vala.page:25(email) C/guitar-tuner.vala.page:21(email)
-#: C/GtkApplication.vala.page:16(email) C/documentation.page:11(email)
-#: C/dialog.vala.page:10(email) C/button.vala.page:10(email)
-#: C/beginner.vala.page:13(email) C/beginner.py.page:13(email)
-#: C/aboutdialog.vala.page:16(email)
+#: C/window.vala.page:13(email) C/window.py.page:13(email)
+#: C/window.c.page:13(email) C/vala.page:11(email)
+#: C/tutorial.py.page:15(email) C/translate.page:11(email)
+#: C/treeview_simple_liststore.vala.page:15(email)
+#: C/toolbar_builder.vala.page:15(email) C/toolbar_builder.py.page:15(email)
+#: C/toolbar.vala.page:14(email) C/toolbar.js.page:13(email)
+#: C/togglebutton.vala.page:16(email) C/textview.vala.page:13(email)
+#: C/switch.vala.page:17(email) C/statusbar.vala.page:16(email)
+#: C/spinner.vala.page:13(email) C/spinbutton.vala.page:15(email)
+#: C/scrolledwindow.vala.page:14(email) C/scale.vala.page:15(email)
+#: C/radiobutton.vala.page:16(email) C/py.page:11(email)
+#: C/progressbar.vala.page:13(email) C/messagedialog.vala.page:13(email)
+#: C/menubutton.py.page:13(email) C/menubutton.vala.page:13(email)
+#: C/menubar.vala.page:15(email) C/menubar.py.page:15(email)
+#: C/linkbutton.vala.page:13(email) C/label.vala.page:13(email)
+#: C/js.page:12(email) C/index.page:23(email)
+#: C/image-viewer.vala.page:27(email) C/image.vala.page:13(email)
+#: C/helloWorld.js.page:20(email) C/guitar-tuner.vala.page:22(email)
+#: C/GtkApplicationWindow.vala.page:13(email)
+#: C/GtkApplicationWindow.py.page:13(email)
+#: C/GtkApplicationWindow.js.page:13(email)
+#: C/GtkApplicationWindow.c.page:13(email) C/grid.vala.page:15(email)
+#: C/grid.py.page:14(email) C/gmenu.vala.page:20(email)
+#: C/gmenu.py.page:13(email) C/gmenu.js.page:13(email)
+#: C/gmenu.c.page:13(email) C/filechooserdialog.vala.page:16(email)
+#: C/entry.vala.page:13(email) C/documentation.page:11(email)
+#: C/dialog.vala.page:13(email) C/cpp.page:11(email)
+#: C/combobox.vala.page:13(email) C/colorbutton.vala.page:15(email)
+#: C/checkbutton.vala.page:13(email) C/c.page:11(email)
+#: C/button.vala.page:14(email) C/beginner.vala.page:15(email)
+#: C/beginner.py.page:15(email) C/aboutdialog.vala.page:21(email)
 msgid "tiffany antopolski gmail com"
 msgstr "tiffany antopolski gmail com"
 
-#: C/window.vala.page:11(years) C/window.js.page:11(years)
-#: C/weatherGeonames.js.page:11(years) C/weatherAutotools.js.page:11(years)
-#: C/weatherAppMain.js.page:11(years) C/weatherApp.js.page:11(years)
-#: C/toolbar.js.page:11(years) C/messagedialog.vala.page:11(years)
-#: C/helloWorld.js.page:11(years) C/guitar-tuner.js.page:11(years)
-#: C/GtkApplication.vala.page:11(years) C/grid.js.page:11(years)
-#: C/entry.js.page:11(years) C/dialog.vala.page:11(years)
-#: C/desktop.js.page:11(years) C/button.vala.page:11(years)
-#: C/button.js.page:11(years) C/beginner.js.page:11(years)
-#: C/aboutdialog.vala.page:11(years)
-#| msgid "2010"
+#: C/window.vala.page:14(years) C/window.py.page:14(years)
+#: C/window.py.page:19(years) C/window.js.page:14(years)
+#: C/window.c.page:14(years) C/weatherGeonames.js.page:12(years)
+#: C/weatherAutotools.js.page:12(years) C/weatherAppMain.js.page:12(years)
+#: C/weatherApp.js.page:13(years) C/tutorial.py.page:16(years)
+#: C/tutorial.py.page:21(years) C/treeview_treestore.py.page:14(years)
+#: C/treeview_simple_liststore.vala.page:16(years)
+#: C/treeview_simple_liststore.py.page:16(years)
+#: C/treeview_simple_liststore.js.page:17(years)
+#: C/treeview_cellrenderertoggle.py.page:14(years)
+#: C/treeview_advanced_liststore.py.page:17(years) C/tooltip.py.page:15(years)
+#: C/toolbar_builder.vala.page:16(years) C/toolbar_builder.py.page:16(years)
+#: C/toolbar_builder.py.page:22(years) C/toolbar.vala.page:15(years)
+#: C/toolbar.py.page:15(years) C/toolbar.js.page:14(years)
+#: C/togglebutton.vala.page:17(years) C/togglebutton.py.page:17(years)
+#: C/togglebutton.js.page:14(years) C/togglebutton.c.page:18(years)
+#: C/textview.vala.page:14(years) C/textview.py.page:22(years)
+#: C/textview.js.page:18(years) C/textview.c.page:14(years)
+#: C/switch.vala.page:18(years) C/switch.py.page:19(years)
+#: C/switch.js.page:14(years) C/switch.c.page:14(years)
+#: C/strings.py.page:21(years) C/statusbar.vala.page:17(years)
+#: C/statusbar.py.page:17(years) C/statusbar.js.page:14(years)
+#: C/statusbar.c.page:18(years) C/spinner.vala.page:14(years)
+#: C/spinner.py.page:14(years) C/spinner.js.page:14(years)
+#: C/spinner.c.page:15(years) C/spinbutton.vala.page:16(years)
+#: C/spinbutton.py.page:15(years) C/spinbutton.js.page:17(years)
+#: C/spinbutton.c.page:17(years) C/signals-callbacks.py.page:21(years)
+#: C/set-up-gedit.js.page:13(years) C/separator.py.page:15(years)
+#: C/scrolledwindow.vala.page:15(years) C/scrolledwindow.py.page:14(years)
+#: C/scale.vala.page:16(years) C/scale.py.page:15(years)
+#: C/scale.js.page:14(years) C/scale.c.page:16(years)
+#: C/radiobutton.vala.page:17(years) C/radiobutton.py.page:18(years)
+#: C/radiobutton.js.page:14(years) C/radiobutton.c.page:16(years)
+#: C/properties.py.page:21(years) C/progressbar.vala.page:14(years)
+#: C/progressbar.py.page:14(years) C/progressbar.js.page:13(years)
+#: C/progressbar.c.page:15(years) C/paned.py.page:14(years)
+#: C/model-view-controller.py.page:21(years)
+#: C/messagedialog.vala.page:14(years) C/messagedialog.py.page:15(years)
+#: C/messagedialog.js.page:17(years) C/messagedialog.c.page:15(years)
+#: C/menubutton.py.page:14(years) C/menubutton.py.page:20(years)
+#: C/menubutton.vala.page:14(years) C/menubutton.js.page:14(years)
+#: C/menubar.vala.page:16(years) C/menubar.py.page:16(years)
+#: C/menubar.py.page:21(years) C/linkbutton.vala.page:14(years)
+#: C/linkbutton.py.page:15(years) C/linkbutton.js.page:14(years)
+#: C/linkbutton.c.page:14(years) C/label.vala.page:14(years)
+#: C/label.py.page:15(years) C/label.py.page:20(years)
+#: C/label.js.page:14(years) C/label.c.page:15(years)
+#: C/image.vala.page:14(years) C/image.py.page:14(years)
+#: C/image.js.page:13(years) C/image.c.page:14(years)
+#: C/helloWorld.js.page:16(years) C/hellognome.js.page:13(years)
+#: C/guitar-tuner.js.page:13(years) C/GtkApplicationWindow.vala.page:14(years)
+#: C/GtkApplicationWindow.py.page:14(years)
+#: C/GtkApplicationWindow.py.page:19(years)
+#: C/GtkApplicationWindow.js.page:14(years)
+#: C/GtkApplicationWindow.c.page:14(years) C/grid.vala.page:16(years)
+#: C/grid.py.page:15(years) C/grid.py.page:21(years) C/grid.js.page:14(years)
+#: C/grid.c.page:14(years) C/gmenu.vala.page:15(years)
+#: C/gmenu.py.page:14(years) C/gmenu.py.page:20(years)
+#: C/gmenu.js.page:14(years) C/gmenu.c.page:14(years)
+#: C/fontchooserwidget.py.page:15(years)
+#: C/filechooserdialog.vala.page:17(years)
+#: C/filechooserdialog.py.page:17(years) C/entry.vala.page:14(years)
+#: C/entry.py.page:14(years) C/entry.js.page:14(years)
+#: C/entry.c.page:14(years) C/dialog.vala.page:14(years)
+#: C/dialog.py.page:15(years) C/dialog.js.page:14(years)
+#: C/dialog.c.page:16(years) C/combobox_multicolumn.py.page:15(years)
+#: C/combobox.vala.page:14(years) C/combobox.py.page:14(years)
+#: C/combobox.js.page:18(years) C/comboboxtext.js.page:16(years)
+#: C/colorbutton.vala.page:16(years) C/colorbutton.py.page:14(years)
+#: C/checkbutton.vala.page:14(years) C/checkbutton.py.page:15(years)
+#: C/checkbutton.js.page:14(years) C/checkbutton.c.page:14(years)
+#: C/buttonbox.py.page:15(years) C/button.vala.page:15(years)
+#: C/button.py.page:15(years) C/button.js.page:14(years)
+#: C/button.c.page:16(years) C/beginner.js.page:12(years)
+#: C/aboutdialog.vala.page:16(years) C/aboutdialog.py.page:15(years)
+#: C/aboutdialog.js.page:13(years) C/aboutdialog.c.page:16(years)
+#: C/03_getting_the_signal.js.page:17(years)
+#: C/02_welcome_to_the_grid.js.page:16(years)
 msgid "2012"
 msgstr "2012"
 
-#: C/window.vala.page:14(desc)
-msgid "A toplevel window which can contain other widgets."
-msgstr ""
+#: C/window.vala.page:17(desc) C/window.py.page:22(desc)
+#: C/window.c.page:17(desc)
+#| msgid "A button which can be connected to other widgets"
+msgid "A toplevel window which can contain other widgets"
+msgstr "Un botÃn de primeiro nivel que pode conter a outros widgets"
 
-#: C/window.vala.page:17(title) C/window.js.page:17(title)
+#: C/window.vala.page:20(title) C/window.py.page:25(title)
+#: C/window.js.page:20(title) C/window.c.page:20(title)
 msgid "Window"
 msgstr "Xanela"
 
-#: C/window.vala.page:19(p)
-msgid "A toplevel window with destroy signal hooked up."
-msgstr ""
-
-#: C/window.vala.page:52(p) C/messagedialog.vala.page:53(p)
-#: C/GtkApplication.vala.page:101(p) C/dialog.vala.page:47(p)
-#: C/aboutdialog.vala.page:72(p)
+#: C/window.vala.page:25(p)
+#| msgid "A first Gtk application"
+msgid "The simplest Gtk.Application"
+msgstr "O Gtk.Application mÃis simple"
+
+#: C/window.vala.page:28(p)
+msgid ""
+"Use <link xref=\"GtkApplicationWindow.vala\">Application Window</link> if "
+"you need GMenu support."
+msgstr ""
+"Use <link xref=\"GtkApplicationWindow.vala\">Xanela de aplicativo</link> se "
+"quere compatibilidade con GMenu."
+
+#: C/window.vala.page:33(p) C/window.py.page:60(p) C/window.c.page:29(p)
+#: C/treeview_treestore.py.page:39(p)
+#: C/treeview_simple_liststore.vala.page:27(p)
+#: C/treeview_simple_liststore.py.page:41(p)
+#: C/treeview_simple_liststore.js.page:272(p)
+#: C/treeview_cellrenderertoggle.py.page:39(p)
+#: C/treeview_advanced_liststore.py.page:43(p) C/tooltip.py.page:53(p)
+#: C/toolbar_builder.vala.page:146(p) C/toolbar_builder.py.page:189(p)
+#: C/toolbar.vala.page:29(p) C/toolbar.py.page:50(p) C/toolbar.js.page:26(p)
+#: C/togglebutton.vala.page:28(p) C/togglebutton.py.page:43(p)
+#: C/togglebutton.c.page:31(p) C/textview.vala.page:30(p)
+#: C/textview.py.page:93(p) C/textview.c.page:31(p) C/switch.vala.page:31(p)
+#: C/switch.py.page:46(p) C/switch.c.page:28(p) C/statusbar.vala.page:28(p)
+#: C/statusbar.py.page:50(p) C/statusbar.c.page:31(p)
+#: C/spinner.vala.page:25(p) C/spinner.py.page:38(p) C/spinner.js.page:25(p)
+#: C/spinner.c.page:28(p) C/spinbutton.vala.page:27(p)
+#: C/spinbutton.py.page:45(p) C/spinbutton.c.page:30(p)
+#: C/separator.py.page:35(p) C/scrolledwindow.vala.page:26(p)
+#: C/scrolledwindow.py.page:41(p) C/scale.vala.page:27(p)
+#: C/scale.py.page:53(p) C/scale.c.page:29(p) C/radiobutton.vala.page:28(p)
+#: C/radiobutton.py.page:49(p) C/radiobutton.c.page:29(p)
+#: C/progressbar.vala.page:25(p) C/progressbar.py.page:53(p)
+#: C/progressbar.js.page:34(p) C/progressbar.c.page:28(p)
+#: C/paned.py.page:38(p) C/messagedialog.vala.page:26(p)
+#: C/messagedialog.py.page:54(p) C/messagedialog.js.page:189(p)
+#: C/messagedialog.c.page:31(p) C/menubutton.py.page:50(p)
+#: C/menubutton.vala.page:28(p) C/menubutton.js.page:28(p)
+#: C/menubar.vala.page:187(p) C/menubar.py.page:181(p)
+#: C/linkbutton.vala.page:25(p) C/linkbutton.py.page:44(p)
+#: C/linkbutton.js.page:25(p) C/linkbutton.c.page:27(p)
+#: C/label.vala.page:26(p) C/label.py.page:86(p) C/label.js.page:25(p)
+#: C/label.c.page:32(p) C/image.vala.page:27(p) C/image.py.page:98(p)
+#: C/image.js.page:27(p) C/image.c.page:28(p)
+#: C/GtkApplicationWindow.vala.page:26(p) C/GtkApplicationWindow.py.page:48(p)
+#: C/GtkApplicationWindow.js.page:26(p) C/GtkApplicationWindow.c.page:25(p)
+#: C/grid.vala.page:27(p) C/grid.py.page:53(p) C/grid.js.page:29(p)
+#: C/grid.c.page:27(p) C/gmenu.vala.page:37(p) C/gmenu.py.page:74(p)
+#: C/gmenu.js.page:25(p) C/gmenu.c.page:27(p)
+#: C/fontchooserwidget.py.page:43(p) C/filechooserdialog.vala.page:35(p)
+#: C/filechooserdialog.py.page:69(p) C/entry.vala.page:25(p)
+#: C/entry.py.page:59(p) C/entry.js.page:25(p) C/entry.c.page:27(p)
+#: C/dialog.vala.page:27(p) C/dialog.py.page:45(p) C/dialog.js.page:25(p)
+#: C/dialog.c.page:29(p) C/combobox_multicolumn.py.page:41(p)
+#: C/combobox.vala.page:25(p) C/combobox.py.page:38(p)
+#: C/combobox.js.page:233(p) C/comboboxtext.js.page:176(p)
+#: C/colorbutton.vala.page:27(p) C/colorbutton.py.page:38(p)
+#: C/checkbutton.vala.page:25(p) C/checkbutton.py.page:44(p)
+#: C/checkbutton.c.page:25(p) C/buttonbox.py.page:45(p) C/button.py.page:50(p)
+#: C/button.js.page:26(p) C/button.c.page:29(p) C/aboutdialog.vala.page:34(p)
+#: C/aboutdialog.py.page:41(p) C/aboutdialog.js.page:24(p)
+#: C/aboutdialog.c.page:30(p)
 msgid "In this sample we used the following:"
-msgstr ""
+msgstr "Neste exemplo empregaremos o seguinte:"
+
+#: C/window.vala.page:37(link) C/window.js.page:38(link)
+#: C/treeview_simple_liststore.js.page:276(link)
+#: C/togglebutton.js.page:154(link) C/textview.js.page:249(link)
+#: C/switch.js.page:267(link) C/statusbar.js.page:222(link)
+#: C/spinner.js.page:30(link) C/spinbutton.js.page:201(link)
+#: C/scale.js.page:210(link) C/radiobutton.js.page:275(link)
+#: C/progressbar.js.page:39(link) C/messagedialog.js.page:195(link)
+#: C/linkbutton.js.page:29(link) C/label.vala.page:30(link)
+#: C/label.js.page:29(link) C/image.js.page:31(link)
+#: C/GtkApplicationWindow.vala.page:30(link)
+#: C/GtkApplicationWindow.js.page:30(link) C/grid.js.page:33(link)
+#: C/gmenu.vala.page:41(link) C/entry.js.page:29(link)
+#: C/dialog.js.page:29(link) C/combobox.js.page:237(link)
+#: C/comboboxtext.js.page:180(link) C/checkbutton.js.page:137(link)
+#: C/button.js.page:30(link) C/aboutdialog.vala.page:38(link)
+#: C/aboutdialog.js.page:31(link)
+msgid "Gtk.Application"
+msgstr "Gtk.Application"
 
-#: C/window.vala.page:56(p)
+#: C/window.vala.page:38(p)
 msgid ""
-"The widget <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window";
+"The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
 "\">Gtk.Window</link>"
 msgstr ""
+"O widget <link "
+"href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html\";>Gtk.Window</link>"
 
-#: C/window.vala.page:58(p)
+#: C/window.vala.page:40(p)
 msgid ""
-"The enum <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
-"WindowPosition\">Gtk.WindowPosition</link>"
+"The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
+"\">Gtk.WindowPosition</link>"
 msgstr ""
+"O enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html\";>"
+"Gtk.WindowPosition</link>"
 
-#: C/window.vala.page:60(p)
+#: C/window.vala.page:42(p)
 msgid ""
-"The method <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window.";
-"set_default_size\">set_default_size</link>"
+"The method <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"set_default_size.html\">set_default_size</link>"
 msgstr ""
+"O mÃtodo <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_";
+"size.html\">set_default_size</link>"
 
-#: C/window.vala.page:62(link)
+#: C/window.vala.page:44(link)
 msgid "border_width"
 msgstr "border_width"
 
-#: C/window.vala.page:64(link)
+#: C/window.vala.page:46(link)
 msgid "window_position"
 msgstr "window_position"
 
-#: C/window.js.page:9(name) C/button.js.page:9(name)
+#: C/window.py.page:7(title)
+msgid "Window (Python)"
+msgstr "Xanela (Python)"
+
+#: C/window.py.page:17(name) C/tutorial.py.page:19(name)
+#: C/treeview_treestore.py.page:12(name)
+#: C/treeview_simple_liststore.py.page:14(name)
+#: C/treeview_cellrenderertoggle.py.page:12(name)
+#: C/treeview_advanced_liststore.py.page:15(name) C/tooltip.py.page:13(name)
+#: C/toolbar_builder.py.page:20(name) C/toolbar.py.page:13(name)
+#: C/togglebutton.py.page:15(name) C/textview.py.page:20(name)
+#: C/switch.py.page:17(name) C/strings.py.page:19(name)
+#: C/statusbar.py.page:15(name) C/spinner.py.page:12(name)
+#: C/spinbutton.py.page:13(name) C/signals-callbacks.py.page:19(name)
+#: C/separator.py.page:13(name) C/scrolledwindow.py.page:12(name)
+#: C/scale.py.page:13(name) C/radiobutton.py.page:16(name)
+#: C/properties.py.page:19(name) C/progressbar.py.page:12(name)
+#: C/paned.py.page:12(name) C/model-view-controller.py.page:19(name)
+#: C/messagedialog.py.page:13(name) C/menubutton.py.page:18(name)
+#: C/menubar.py.page:19(name) C/linkbutton.py.page:13(name)
+#: C/label.py.page:13(name) C/image.py.page:12(name)
+#: C/GtkApplicationWindow.py.page:17(name) C/grid.py.page:19(name)
+#: C/gmenu.py.page:18(name) C/fontchooserwidget.py.page:13(name)
+#: C/filechooserdialog.py.page:15(name) C/entry.py.page:12(name)
+#: C/dialog.py.page:13(name) C/combobox_multicolumn.py.page:13(name)
+#: C/combobox.py.page:12(name) C/colorbutton.py.page:12(name)
+#: C/checkbutton.py.page:13(name) C/buttonbox.py.page:13(name)
+#: C/button.py.page:13(name) C/aboutdialog.py.page:13(name)
+msgid "Marta Maria Casetti"
+msgstr "Marta Maria Casetti"
+
+#: C/window.py.page:18(email) C/tutorial.py.page:20(email)
+#: C/treeview_treestore.py.page:13(email)
+#: C/treeview_simple_liststore.py.page:15(email)
+#: C/treeview_cellrenderertoggle.py.page:13(email)
+#: C/treeview_advanced_liststore.py.page:16(email) C/tooltip.py.page:14(email)
+#: C/toolbar_builder.py.page:21(email) C/toolbar.py.page:14(email)
+#: C/togglebutton.py.page:16(email) C/textview.py.page:21(email)
+#: C/switch.py.page:18(email) C/strings.py.page:20(email)
+#: C/statusbar.py.page:16(email) C/spinner.py.page:13(email)
+#: C/spinbutton.py.page:14(email) C/signals-callbacks.py.page:20(email)
+#: C/separator.py.page:14(email) C/scrolledwindow.py.page:13(email)
+#: C/scale.py.page:14(email) C/radiobutton.py.page:17(email)
+#: C/properties.py.page:20(email) C/progressbar.py.page:13(email)
+#: C/paned.py.page:13(email) C/model-view-controller.py.page:20(email)
+#: C/messagedialog.py.page:14(email) C/menubutton.py.page:19(email)
+#: C/menubar.py.page:20(email) C/linkbutton.py.page:14(email)
+#: C/label.py.page:14(email) C/image.py.page:13(email)
+#: C/GtkApplicationWindow.py.page:18(email) C/grid.py.page:20(email)
+#: C/gmenu.py.page:19(email) C/fontchooserwidget.py.page:14(email)
+#: C/filechooserdialog.py.page:16(email) C/dialog.py.page:14(email)
+#: C/combobox_multicolumn.py.page:14(email) C/combobox.py.page:13(email)
+#: C/colorbutton.py.page:13(email) C/checkbutton.py.page:14(email)
+#: C/buttonbox.py.page:14(email) C/button.py.page:14(email)
+#: C/aboutdialog.py.page:14(email)
+#| msgid "mdhillca gmail com"
+msgid "mmcasetti gmail com"
+msgstr "mmcasetti gmail com"
+
+#: C/window.py.page:31(p)
+msgid "A minimal Gtk+ Application: a window with a title."
+msgstr "Un aplicativo Gtk+ mÃnimo: unha xanela con un tÃtulo."
+
+#: C/window.py.page:34(p)
+msgid ""
+"Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if you "
+"need GMenu support."
+msgstr ""
+"Use <link xref=\"GtkApplicationWindow.py\">Xanela de aplicativo</link> se "
+"quere compatibilidade con GMenu."
+
+#: C/window.py.page:42(title) C/treeview_treestore.py.page:27(title)
+#: C/treeview_simple_liststore.py.page:29(title)
+#: C/treeview_cellrenderertoggle.py.page:27(title)
+#: C/treeview_advanced_liststore.py.page:30(title) C/tooltip.py.page:28(title)
+#: C/toolbar_builder.py.page:162(title) C/toolbar.py.page:29(title)
+#: C/togglebutton.py.page:30(title) C/textview.py.page:42(title)
+#: C/switch.py.page:34(title) C/statusbar.py.page:30(title)
+#: C/spinner.py.page:27(title) C/spinbutton.py.page:28(title)
+#: C/separator.py.page:29(title) C/scrolledwindow.py.page:27(title)
+#: C/scale.py.page:28(title) C/radiobutton.py.page:31(title)
+#: C/progressbar.py.page:37(title) C/paned.py.page:27(title)
+#: C/messagedialog.py.page:28(title) C/menubutton.py.page:35(title)
+#: C/linkbutton.py.page:29(title) C/label.py.page:33(title)
+#: C/image.py.page:31(title) C/GtkApplicationWindow.py.page:32(title)
+#: C/grid.py.page:35(title) C/gmenu.py.page:34(title)
+#: C/fontchooserwidget.py.page:29(title) C/filechooserdialog.py.page:51(title)
+#: C/entry.py.page:32(title) C/dialog.py.page:28(title)
+#: C/combobox_multicolumn.py.page:28(title) C/combobox.py.page:27(title)
+#: C/colorbutton.py.page:27(title) C/checkbutton.py.page:28(title)
+#: C/buttonbox.py.page:29(title) C/button.py.page:29(title)
+#: C/aboutdialog.py.page:28(title)
+msgid "Code used to generate this example"
+msgstr "CÃdigo usado para xerar este exemplo"
+
+#: C/window.py.page:49(title)
+msgid "Useful methods for a Window widget"
+msgstr "MÃtodos Ãtiles para o widget de Xanela"
+
+#: C/window.py.page:50(p)
+msgid ""
+"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
+"code> sets the title as well, without the need for the line <code>window."
+"set_title(\"Welcome to GNOME\")</code>. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
+msgstr ""
+
+#: C/window.py.page:52(p) C/GtkApplicationWindow.py.page:41(p)
+msgid ""
+"<code>set_default_size(200, 100)</code> sets the default size of the window "
+"to a width of <code>200</code> and a height of <code>100</code>; if instead "
+"of a positive number we pass <code>-1</code> we have the default size."
+msgstr ""
+
+#: C/window.py.page:53(p) C/GtkApplicationWindow.py.page:42(p)
+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>."
+msgstr ""
+
+#: C/window.py.page:58(title) C/treeview_treestore.py.page:38(title)
+#: C/treeview_simple_liststore.py.page:40(title)
+#: C/treeview_cellrenderertoggle.py.page:38(title)
+#: C/treeview_advanced_liststore.py.page:42(title) C/tooltip.py.page:52(title)
+#: C/toolbar_builder.py.page:188(title) C/toolbar.py.page:49(title)
+#: C/togglebutton.py.page:42(title) C/textview.py.page:92(title)
+#: C/switch.py.page:45(title) C/statusbar.py.page:49(title)
+#: C/spinner.py.page:37(title) C/spinbutton.py.page:44(title)
+#: C/scrolledwindow.py.page:40(title) C/scale.py.page:52(title)
+#: C/radiobutton.py.page:48(title) C/progressbar.py.page:52(title)
+#: C/paned.py.page:37(title) C/messagedialog.py.page:53(title)
+#: C/menubutton.py.page:49(title) C/menubar.py.page:180(title)
+#: C/linkbutton.py.page:43(title) C/label.py.page:85(title)
+#: C/image.py.page:97(title) C/GtkApplicationWindow.py.page:47(title)
+#: C/grid.py.page:52(title) C/gmenu.py.page:73(title)
+#: C/fontchooserwidget.py.page:42(title) C/filechooserdialog.py.page:68(title)
+#: C/entry.py.page:58(title) C/dialog.py.page:44(title)
+#: C/combobox_multicolumn.py.page:40(title) C/combobox.py.page:37(title)
+#: C/colorbutton.py.page:37(title) C/checkbutton.py.page:43(title)
+#: C/buttonbox.py.page:44(title) C/button.py.page:49(title)
+#: C/aboutdialog.py.page:40(title)
+msgid "API References"
+msgstr ""
+
+#: C/window.py.page:62(link) C/window.c.page:33(link)
+#: C/togglebutton.c.page:35(link) C/textview.c.page:35(link)
+#: C/switch.c.page:32(link) C/statusbar.c.page:35(link)
+#: C/spinner.c.page:32(link) C/spinbutton.c.page:34(link)
+#: C/scale.c.page:33(link) C/radiobutton.c.page:33(link)
+#: C/progressbar.c.page:32(link) C/messagedialog.py.page:64(link)
+#: C/messagedialog.c.page:35(link) C/linkbutton.c.page:31(link)
+#: C/label.c.page:36(link) C/image.vala.page:31(link) C/image.c.page:32(link)
+#: C/GtkApplicationWindow.py.page:52(link)
+#: C/GtkApplicationWindow.c.page:29(link) C/grid.py.page:55(link)
+#: C/grid.c.page:31(link) C/entry.c.page:31(link) C/dialog.c.page:33(link)
+#: C/checkbutton.py.page:46(link) C/button.c.page:33(link)
+#: C/aboutdialog.py.page:48(link) C/aboutdialog.c.page:34(link)
+#| msgid "Gtk.Application"
+msgid "GtkApplication"
+msgstr "GtkApplication"
+
+#: C/window.py.page:63(link) C/window.c.page:34(link)
+#: C/togglebutton.c.page:36(link) C/textview.c.page:36(link)
+#: C/switch.c.page:33(link) C/statusbar.c.page:36(link)
+#: C/spinner.c.page:33(link) C/spinbutton.c.page:35(link)
+#: C/separator.py.page:37(link) C/scale.c.page:34(link)
+#: C/radiobutton.py.page:51(link) C/radiobutton.c.page:34(link)
+#: C/progressbar.c.page:33(link) C/messagedialog.py.page:60(link)
+#: C/messagedialog.c.page:37(link) C/linkbutton.py.page:46(link)
+#: C/linkbutton.c.page:32(link) C/label.py.page:89(link)
+#: C/label.c.page:37(link) C/image.py.page:101(link) C/image.c.page:33(link)
+#: C/grid.c.page:32(link) C/filechooserdialog.py.page:73(link)
+#: C/entry.c.page:32(link) C/dialog.py.page:50(link) C/dialog.c.page:34(link)
+#: C/button.py.page:53(link) C/button.c.page:34(link)
+#: C/aboutdialog.c.page:35(link)
+#| msgid "Window"
+msgid "GtkWindow"
+msgstr "GtkWindow"
+
+#: C/window.js.page:7(title)
+#| msgid "JavaScript"
+msgid "Window (JavaScript)"
+msgstr "Xanela (JavaScript)"
+
+#: C/window.js.page:12(name) C/treeview_simple_liststore.js.page:15(name)
+#: C/togglebutton.js.page:12(name) C/textview.js.page:16(name)
+#: C/switch.js.page:12(name) C/statusbar.js.page:12(name)
+#: C/spinner.js.page:12(name) C/spinbutton.js.page:15(name)
+#: C/set-up-gedit.js.page:11(name) C/scale.js.page:12(name)
+#: C/radiobutton.js.page:12(name) C/progressbar.js.page:11(name)
+#: C/messagedialog.js.page:15(name) C/linkbutton.js.page:12(name)
+#: C/label.js.page:12(name) C/image.js.page:11(name)
+#: C/hellognome.js.page:11(name) C/grid.js.page:17(name)
+#: C/entry.js.page:12(name) C/dialog.js.page:12(name)
+#: C/combobox.js.page:16(name) C/comboboxtext.js.page:14(name)
+#: C/checkbutton.js.page:12(name) C/button.js.page:12(name)
+#: C/aboutdialog.js.page:11(name) C/03_getting_the_signal.js.page:15(name)
+#: C/02_welcome_to_the_grid.js.page:14(name)
 msgid "Taryn Fox"
 msgstr "Taryn Fox"
 
-#: C/window.js.page:10(email) C/button.js.page:10(email)
+#: C/window.js.page:13(email) C/treeview_simple_liststore.js.page:16(email)
+#: C/togglebutton.js.page:13(email) C/textview.js.page:17(email)
+#: C/switch.js.page:13(email) C/statusbar.js.page:13(email)
+#: C/spinner.js.page:13(email) C/spinbutton.js.page:16(email)
+#: C/set-up-gedit.js.page:12(email) C/scale.js.page:13(email)
+#: C/radiobutton.js.page:13(email) C/progressbar.js.page:12(email)
+#: C/messagedialog.js.page:16(email) C/linkbutton.js.page:13(email)
+#: C/label.js.page:13(email) C/image.js.page:12(email)
+#: C/hellognome.js.page:12(email) C/grid.js.page:18(email)
+#: C/entry.js.page:13(email) C/dialog.js.page:13(email)
+#: C/combobox.js.page:17(email) C/comboboxtext.js.page:15(email)
+#: C/checkbutton.js.page:13(email) C/button.js.page:13(email)
+#: C/aboutdialog.js.page:12(email) C/03_getting_the_signal.js.page:16(email)
+#: C/02_welcome_to_the_grid.js.page:15(email)
 msgid "jewelfox fursona net"
 msgstr "jewelfox fursona net"
 
-#: C/window.js.page:14(desc)
+#: C/window.js.page:17(desc)
 msgid "A basic window which can contain other widgets"
-msgstr ""
+msgstr "Unha xanela de primeiro nivel que pode conter a outros widgets"
 
-#: C/window.js.page:19(p)
-msgid "A plain window, without other widgets added to it."
-msgstr ""
+#: C/window.js.page:25(p)
+#| msgid "A first Gtk application"
+msgid "A minimal GtkApplication"
+msgstr "Un GtkApplication mÃnimo"
 
-#: C/window.js.page:21(code)
-#, no-wrap
+#: C/window.js.page:28(p)
 msgid ""
-"<![CDATA[\n"
-"]]>#!/usr/bin/gjs\n"
-"\n"
-"var Gtk = imports.gi.Gtk;\n"
-"Gtk.init(null, 0);\n"
-"\n"
-"// Create window and give it a name\n"
-"// You can't call it \"window\" as that name is a JavaScript keyword.\n"
-"var sampleWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
-"sampleWindow.title = \"Welcome to GNOME\";\n"
-"\n"
-"/* The \"destroy\" signal is sent out when you click the X button.\n"
-"   Here, we connect that signal to the GTK+ function to close the window. */\n"
-"sampleWindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
-"\n"
-"/* Here are a few ways we can customize our window.\n"
-"   Try uncommenting them or changing their values! */\n"
-"// sampleWindow.set_default_size (400,200);\n"
-"// sampleWindow.set_has_resize_grip (false);\n"
-"// sampleWindow.set_opacity (0.5);\n"
-"// sampleWindow.maximize ();\n"
-"\n"
-"// If the window has widgets in it, you'll want to use show_all() instead.\n"
-"sampleWindow.show();\n"
-"\n"
-"Gtk.main();"
+"Use <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> if you "
+"need GMenu support."
 msgstr ""
+"Use <link xref=\"GtkApplicationWindow.js\">Xanela de aplicativo</link> se "
+"quere compatibilidade con GMenu."
+
+#: C/window.js.page:34(p)
+msgid "In this example we used the following:"
+msgstr "Neste exemplo empregaremos o seguinte:"
+
+#: C/window.js.page:39(link) C/toolbar.js.page:30(link)
+#| msgid "Window"
+msgid "Gtk.Window"
+msgstr "Gtk.Window"
+
+#: C/window.c.page:7(title)
+#| msgid "Window"
+msgid "Window (C)"
+msgstr "Xanela (C)"
 
-#: C/window.js.page:47(p)
+#: C/window.c.page:23(p)
 msgid ""
-"In this sample we used the following widget: <link href=\"http://www.roojs.";
-"com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>"
+"A minimal GtkApplication. Use <link xref=\"GtkApplicationWindow.c"
+"\">Application Window</link> if you need GMenu support."
 msgstr ""
+"Un GtkApplication mÃnimo. Use <link xref=\"GtkApplicationWindow.c\">Xanela de "
+"aplicativo</link> se quere compatibilidade con GMenu."
 
-#: C/weatherGeonames.js.page:9(name) C/weatherAutotools.js.page:9(name)
-#: C/weatherAppMain.js.page:9(name) C/weatherApp.js.page:9(name)
-#: C/toolbar.js.page:9(name) C/helloWorld.js.page:9(name)
-#: C/guitar-tuner.js.page:9(name) C/grid.js.page:9(name)
-#: C/entry.js.page:9(name) C/desktop.js.page:9(name)
-#: C/beginner.js.page:9(name)
+#: C/weatherGeonames.js.page:10(name) C/weatherAutotools.js.page:10(name)
+#: C/weatherAppMain.js.page:10(name) C/weatherApp.js.page:11(name)
+#: C/helloWorld.js.page:14(name) C/guitar-tuner.js.page:11(name)
+#: C/grid.js.page:12(name) C/beginner.js.page:10(name)
 msgid "Susanna Huhtanen"
 msgstr "Susanna Huhtanen"
 
-#: C/weatherGeonames.js.page:10(email) C/weatherAutotools.js.page:10(email)
-#: C/weatherAppMain.js.page:10(email) C/weatherApp.js.page:10(email)
-#: C/toolbar.js.page:10(email) C/helloWorld.js.page:10(email)
-#: C/guitar-tuner.js.page:10(email) C/grid.js.page:10(email)
-#: C/entry.js.page:10(email) C/desktop.js.page:10(email)
-#: C/beginner.js.page:10(email)
+#: C/weatherGeonames.js.page:11(email) C/weatherAutotools.js.page:11(email)
+#: C/weatherAppMain.js.page:11(email) C/weatherApp.js.page:12(email)
+#: C/helloWorld.js.page:15(email) C/guitar-tuner.js.page:12(email)
+#: C/grid.js.page:13(email) C/beginner.js.page:11(email)
 msgid "ihmis suski gmail com"
 msgstr "ihmis suski gmail com"
 
-#: C/weatherGeonames.js.page:17(title)
+#: C/weatherGeonames.js.page:18(title)
 msgid "Local library geoNames"
-msgstr ""
+msgstr "Biblioteca de geoNames local"
 
-#: C/weatherGeonames.js.page:19(p)
+#: C/weatherGeonames.js.page:20(p)
 msgid ""
-"In this part of the guide well construct the local library geoNames using "
+"In this part of the guide we'll construct the local library geoNames using "
 "asynchronous calls. Weather information in this example is fetched from "
 "geonames.org and the application is using the <link href=\"http://en.";
 "wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E\">ICAO codes </link> to "
 "place your weather request. To write 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 guide we we'll go through the "
-"following parts:"
+"installed into your computer. In this guide we'll go through the following "
+"parts:"
 msgstr ""
 
-#: C/weatherGeonames.js.page:22(link) C/weatherGeonames.js.page:30(title)
+#: C/weatherGeonames.js.page:23(link) C/weatherGeonames.js.page:31(title)
 msgid "Local library for getting the weather"
-msgstr ""
+msgstr "Biblioteca global para obter o tempo"
 
-#: C/weatherGeonames.js.page:23(link)
+#: C/weatherGeonames.js.page:24(link)
 msgid "Creating function geoNames"
-msgstr ""
+msgstr "Crear funciÃn geoNames"
 
-#: C/weatherGeonames.js.page:24(link)
+#: C/weatherGeonames.js.page:25(link)
 msgid "Methods for geoNames"
-msgstr ""
+msgstr "MÃtodos para geoNames"
 
-#: C/weatherGeonames.js.page:25(link) C/weatherGeonames.js.page:100(title)
+#: C/weatherGeonames.js.page:26(link) C/weatherGeonames.js.page:101(title)
 msgid "geonames.js"
 msgstr "geonames.js"
 
-#: C/weatherGeonames.js.page:31(p)
+#: C/weatherGeonames.js.page:32(p)
 msgid "For this we need a new file that will be our local library."
 msgstr ""
 
-#: C/weatherGeonames.js.page:37(p)
+#: C/weatherGeonames.js.page:38(p)
 msgid ""
 "In the first lines we'll import and initialize the libraries we need to use "
 "in this local library. Soup handles all the requests we have to make with "
 "http."
 msgstr ""
 
-#: C/weatherGeonames.js.page:41(title)
+#: C/weatherGeonames.js.page:42(title)
 msgid "Creating function GeoNames"
-msgstr ""
+msgstr "Crear a funciÃn GeoNames"
 
-#: C/weatherGeonames.js.page:51(p)
+#: C/weatherGeonames.js.page:52(p)
 msgid ""
 "Here we create the function GeoNames that will handle getting weather for "
 "us. JavaScript allows us to create functions that have little inside at "
@@ -228,11 +638,11 @@ msgid ""
 "curly braces{}"
 msgstr ""
 
-#: C/weatherGeonames.js.page:55(title)
+#: C/weatherGeonames.js.page:56(title)
 msgid "Methods for GeoNames"
-msgstr ""
+msgstr "MÃtodos para GeoNames"
 
-#: C/weatherGeonames.js.page:95(p)
+#: C/weatherGeonames.js.page:96(p)
 msgid ""
 "The first method for GeoNames is getWeather and the second getIcon. In "
 "getWeather we make a http request with soup, handle errors and then parse "
@@ -242,17 +652,19 @@ msgid ""
 "ready, it's time to make use of it."
 msgstr ""
 
-#: C/weatherGeonames.js.page:101(p)
+#: C/weatherGeonames.js.page:102(p)
 msgid ""
 "Here is the entire code for our local library. The main program file calls "
 "this asynchronously."
 msgstr ""
+"Aquà està o cÃdigo completo para a nosa biblioteca global. O ficheiro do "
+"programa principal chamarà a isto de forma asÃncrona."
 
-#: C/weatherAutotools.js.page:17(title) C/weatherApp.js.page:28(link)
+#: C/weatherAutotools.js.page:18(title) C/weatherApp.js.page:30(link)
 msgid "Autotools and Icons"
-msgstr ""
+msgstr "Autotools e iconas"
 
-#: C/weatherAutotools.js.page:19(p)
+#: C/weatherAutotools.js.page:20(p)
 msgid ""
 "In this part of the guide well construct the autotools and custom icons "
 "needed for weather application to be a seamless part of your desktop. To "
@@ -261,19 +673,19 @@ msgid ""
 "this guide we we'll go through the following parts:"
 msgstr ""
 
-#: C/weatherAutotools.js.page:22(link)
+#: C/weatherAutotools.js.page:23(link)
 msgid "Autotools"
 msgstr "Autotools"
 
-#: C/weatherAutotools.js.page:23(link) C/weatherAutotools.js.page:143(title)
+#: C/weatherAutotools.js.page:24(link) C/weatherAutotools.js.page:144(title)
 msgid "Custom icons for your application"
-msgstr ""
+msgstr "Iconas personalizadas para o seu aplicativo"
 
-#: C/weatherAutotools.js.page:30(title)
+#: C/weatherAutotools.js.page:31(title)
 msgid "Autotools and necessary files"
-msgstr ""
+msgstr "Autotools e os ficheiros precisos"
 
-#: C/weatherAutotools.js.page:31(p)
+#: C/weatherAutotools.js.page:32(p)
 msgid ""
 "Having more than one file in your folder makes using autotools a bit tricky. "
 "You need the .desktop file, autogen.sh, Makefile.am, configure.ac and as a "
@@ -283,71 +695,78 @@ msgid ""
 "link> provides a good overwiev on the subject."
 msgstr ""
 
-#: C/weatherAutotools.js.page:34(p) C/weatherAutotools.js.page:40(p)
+#: C/weatherAutotools.js.page:35(p) C/weatherAutotools.js.page:41(p)
 msgid "weatherapp.desktop"
 msgstr "weatherapp.desktop"
 
-#: C/weatherAutotools.js.page:35(p) C/weatherAutotools.js.page:55(p)
+#: C/weatherAutotools.js.page:36(p) C/weatherAutotools.js.page:56(p)
 msgid "weatherapp.sh.in"
 msgstr "weatherapp.sh.in"
 
-#: C/weatherAutotools.js.page:36(p) C/weatherAutotools.js.page:62(p)
+#: C/weatherAutotools.js.page:37(p) C/weatherAutotools.js.page:63(p)
+#: C/helloWorld.js.page:162(title)
 msgid "Makefile.am"
 msgstr "Makefile.am"
 
-#: C/weatherAutotools.js.page:37(p) C/weatherAutotools.js.page:129(p)
+#: C/weatherAutotools.js.page:38(p) C/weatherAutotools.js.page:130(p)
+#: C/helloWorld.js.page:167(title)
 msgid "configure.ac"
 msgstr "configure.ac"
 
-#: C/weatherAutotools.js.page:38(p)
+#: C/weatherAutotools.js.page:39(p) C/helloWorld.js.page:154(title)
 msgid "autogen.sh"
 msgstr "autogen.sh"
 
-#: C/weatherAutotools.js.page:53(p)
+#: C/weatherAutotools.js.page:54(p)
 msgid ""
 "The thing to notice in this file is that the Exec line will make this ."
 "desktop file work only after running all the other makefiles. Weatherapp.sh "
 "is a small shell script created with the weatherapp.sh.in."
 msgstr ""
 
-#: C/weatherAutotools.js.page:60(p)
+#: C/weatherAutotools.js.page:61(p)
 msgid ""
 "This file is a template to the file Makefile will do to be run from .desktop."
 msgstr ""
+"Este ficheiro à un modelo para o ficheiro Makefile que terà que executar "
+"desde .desktop."
 
-#: C/weatherAutotools.js.page:123(p)
+#: C/weatherAutotools.js.page:124(p)
 msgid ""
 "This needs a bit more explaining. Compared to the HelloWorld Makefile.am "
 "this has changed quite a bit. Lets go through all the new blocks:"
 msgstr ""
+"Isto precisa unha explicaciÃn mÃis profunda. En comparaciÃn co Makefile.am "
+"de HelloWorld este cambiou un pouco. Vamos coa explicaciÃn de todos os "
+"bloques novos:"
 
-#: C/weatherAutotools.js.page:124(p)
+#: C/weatherAutotools.js.page:125(p)
 msgid ""
 "bin_scripts are the files that are needed to run your application. In thin "
 "case they are the first two files are the program itself and the third is "
 "the script that launches the application."
 msgstr ""
 
-#: C/weatherAutotools.js.page:125(p)
+#: C/weatherAutotools.js.page:126(p)
 msgid "EXTRA_DIST are the files that are to be distributed"
-msgstr ""
+msgstr "EXTRA_DIST son os ficheiros que van ser distribuidos"
 
-#: C/weatherAutotools.js.page:126(p)
+#: C/weatherAutotools.js.page:127(p)
 msgid "do_subst block is bits and pieces that need to be where they are"
-msgstr ""
+msgstr "o bloque do_subst son as partes que precisan estar onde estan"
 
-#: C/weatherAutotools.js.page:127(p)
+#: C/weatherAutotools.js.page:128(p)
 msgid ""
 "after the comment #icons in the application there are all the icons that are "
 "used by the program. For them to be useful you need to install the icons in "
 "correct places and that is done byt the install-icons: bit"
 msgstr ""
 
-#: C/weatherAutotools.js.page:136(p)
+#: C/weatherAutotools.js.page:137(p)
 msgid "autohen.sh"
 msgstr "autohen.sh"
 
-#: C/weatherAutotools.js.page:144(p)
+#: C/weatherAutotools.js.page:145(p)
 msgid ""
 "When thinking about custom icons a good rule of thumb is: do you expect to "
 "see that icon used elsewhere or is it private to your app? If the first (e."
@@ -356,7 +775,7 @@ msgid ""
 "$application/bla/bla"
 msgstr ""
 
-#: C/weatherAutotools.js.page:145(p)
+#: C/weatherAutotools.js.page:146(p)
 msgid ""
 "Using autotools you have to make some changes to your .desktop and Makefile."
 "am files. In the desktop file you change the Icon's name Icon=weather-icon. "
@@ -364,19 +783,19 @@ msgid ""
 "application #the application icon"
 msgstr ""
 
-#: C/weatherAutotools.js.page:146(p)
+#: C/weatherAutotools.js.page:147(p)
 msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
 msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
 
-#: C/weatherAutotools.js.page:147(p)
+#: C/weatherAutotools.js.page:148(p)
 msgid "appicon_DATA=weather-icon.svg"
 msgstr "appicon_DATA=weather-icon.svg"
 
-#: C/weatherAppMain.js.page:17(title) C/weatherApp.js.page:26(link)
+#: C/weatherAppMain.js.page:18(title) C/weatherApp.js.page:28(link)
 msgid "The main program file"
 msgstr "O ficheiro do programa principal"
 
-#: C/weatherAppMain.js.page:19(p)
+#: C/weatherAppMain.js.page:20(p)
 msgid ""
 "In this part of the guide well construct the main program file of the "
 "weather application. To write and run all the code examples yourself, you "
@@ -384,45 +803,49 @@ msgid ""
 "into your computer. In this part we we'll go through the following parts:"
 msgstr ""
 
-#: C/weatherAppMain.js.page:21(link) C/weatherAppMain.js.page:31(title)
-#: C/helloWorld.js.page:21(link) C/helloWorld.js.page:33(title)
-#: C/guitar-tuner.js.page:23(link) C/guitar-tuner.js.page:45(title)
-#, fuzzy
+#: C/weatherAppMain.js.page:22(link) C/weatherAppMain.js.page:32(title)
+#: C/helloWorld.js.page:45(title) C/guitar-tuner.js.page:25(link)
+#: C/guitar-tuner.js.page:47(title)
 #| msgid "Designing the application"
 msgid "Script for running the application"
-msgstr "DeseÃar o aplicativo"
-
-#: C/weatherAppMain.js.page:22(link) C/weatherAppMain.js.page:39(title)
-#: C/helloWorld.js.page:22(link) C/helloWorld.js.page:40(title)
-#: C/guitar-tuner.js.page:24(link) C/guitar-tuner.js.page:52(title)
+msgstr "Script para executar o aplicativo"
+
+#: C/weatherAppMain.js.page:23(link) C/weatherAppMain.js.page:40(title)
+#: C/treeview_simple_liststore.js.page:36(title)
+#: C/togglebutton.js.page:27(title) C/textview.js.page:37(title)
+#: C/switch.js.page:34(title) C/statusbar.js.page:27(title)
+#: C/spinbutton.js.page:30(title) C/scale.js.page:27(title)
+#: C/radiobutton.js.page:27(title) C/messagedialog.js.page:30(title)
+#: C/helloWorld.js.page:52(title) C/guitar-tuner.js.page:26(link)
+#: C/guitar-tuner.js.page:54(title) C/combobox.js.page:32(title)
+#: C/comboboxtext.js.page:29(title) C/checkbutton.js.page:27(title)
 msgid "Libraries to import"
 msgstr "Bibliotecas a importar"
 
-#: C/weatherAppMain.js.page:23(link) C/weatherAppMain.js.page:47(title)
-#: C/helloWorld.js.page:23(link) C/helloWorld.js.page:47(title)
-#: C/guitar-tuner.js.page:25(link) C/guitar-tuner.js.page:61(title)
-#, fuzzy
+#: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:48(title)
+#: C/helloWorld.js.page:58(title) C/guitar-tuner.js.page:27(link)
+#: C/guitar-tuner.js.page:63(title)
 #| msgid "Designing the application"
 msgid "Creating the main window for the application"
-msgstr "DeseÃar o aplicativo"
+msgstr "Crear a xanela principal para o aplicativo"
 
-#: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:62(title)
+#: C/weatherAppMain.js.page:25(link) C/weatherAppMain.js.page:63(title)
 msgid "Adding a grid and all the necessary widgets to it"
-msgstr ""
+msgstr "Engadir unha grade e todos os widgets precisos para eso"
 
-#: C/weatherAppMain.js.page:25(link) C/weatherAppMain.js.page:93(title)
+#: C/weatherAppMain.js.page:26(link) C/weatherAppMain.js.page:94(title)
 msgid "Requesting the weather information asynchronously"
-msgstr ""
+msgstr "Solicitando a informaciÃn do tempo de forma asÃncrona"
 
-#: C/weatherAppMain.js.page:26(link)
+#: C/weatherAppMain.js.page:27(link)
 msgid "Connecting signals to button and entry.\"&gt;"
-msgstr ""
+msgstr "Conectando sinais ao botÃn e entrada.\"&gt;"
 
-#: C/weatherAppMain.js.page:27(link)
+#: C/weatherAppMain.js.page:28(link)
 msgid "weatherapp.js"
 msgstr "weatherapp.js"
 
-#: C/weatherAppMain.js.page:34(p)
+#: C/weatherAppMain.js.page:35(p)
 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 "
@@ -432,7 +855,7 @@ msgid ""
 "the box for allow executing file as a program"
 msgstr ""
 
-#: C/weatherAppMain.js.page:43(p)
+#: C/weatherAppMain.js.page:44(p)
 msgid ""
 "In order to have a working program we need to import a GObject Introspection "
 "-library to our use. For working UI, we need Gtk. Gtk is imported in the "
@@ -440,7 +863,7 @@ msgid ""
 "JavaScript library geonames to our use here."
 msgstr ""
 
-#: C/weatherAppMain.js.page:89(p)
+#: C/weatherAppMain.js.page:90(p)
 msgid ""
 "In this section we create the grid we are going to use for positioning the "
 "widgets. All the buttons, labels and entrys are initialized and placed on "
@@ -454,7 +877,7 @@ msgid ""
 "the necessary widgets."
 msgstr ""
 
-#: C/weatherAppMain.js.page:119(p)
+#: C/weatherAppMain.js.page:120(p)
 msgid ""
 "This function is dedicated for calling for the weather information and "
 "updating labels and icons accordingly. In the beginning of the function we "
@@ -467,11 +890,11 @@ msgid ""
 "works."
 msgstr ""
 
-#: C/weatherAppMain.js.page:123(title)
+#: C/weatherAppMain.js.page:124(title)
 msgid "Connecting signals to button and entry."
 msgstr ""
 
-#: C/weatherAppMain.js.page:136(p)
+#: C/weatherAppMain.js.page:137(p)
 msgid ""
 "And finally we have the connections that make the whole application run as "
 "it should. We connect both the entry and the button to do the same thing, "
@@ -479,28 +902,29 @@ msgid ""
 "the search button."
 msgstr ""
 
-#: C/weatherAppMain.js.page:140(title)
+#: C/weatherAppMain.js.page:141(title)
 msgid "Weatherapp.js"
 msgstr "Weatherapp.js"
 
-#: C/weatherAppMain.js.page:141(p)
+#: C/weatherAppMain.js.page:142(p)
 msgid "Weatherapp.js file looks like this:"
 msgstr "O ficheiro Weatherapp.js à algo como:"
 
-#: C/weatherAppMain.js.page:227(p)
+#: C/weatherAppMain.js.page:228(p)
 msgid "Running until you have all the autotools files ready. :"
-msgstr ""
+msgstr "Executando atà que todos os ficheiros de autotools estean listos. :"
 
-#: C/weatherAppMain.js.page:229(output) C/helloWorld.js.page:109(output)
-#: C/helloWorld.js.page:110(output) C/guitar-tuner.js.page:228(output)
+#: C/weatherAppMain.js.page:230(output) C/helloWorld.js.page:120(output)
+#: C/helloWorld.js.page:131(output) C/helloWorld.js.page:158(output)
+#: C/guitar-tuner.js.page:230(output)
 msgid "$"
 msgstr "$"
 
-#: C/weatherAppMain.js.page:229(input)
+#: C/weatherAppMain.js.page:230(input)
 msgid "GJS_PATH=`pwd` gjs weatherapp.js"
 msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
 
-#: C/weatherAppMain.js.page:230(p)
+#: C/weatherAppMain.js.page:231(p)
 msgid ""
 "Use this command on terminal while developing your modules. When calling "
 "your program in this manner it knows where to find your custom JSlibraries, "
@@ -509,24 +933,28 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/weatherApp.js.page:33(None)
-#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+#: C/weatherApp.js.page:35(None)
 msgid "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
-msgstr ""
-"@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+msgstr "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
 
-#: C/weatherApp.js.page:14(desc)
+#: C/weatherApp.js.page:6(title)
+#| msgid "4 Weather Application"
+msgid "Weather Application (JavaScript)"
+msgstr "Aplicativo de tempo (JavaScript)"
+
+#: C/weatherApp.js.page:16(desc)
 msgid ""
 "How to plan an application that uses asynchronous calls. Asynchronous calls "
 "will be presented through a weather application."
 msgstr ""
+"Como planificar un aplicativo que use chamadas asÃncronas. As chamadas "
+"asÃncronas presentaranse mediante un aplicativo de tempo."
 
-#: C/weatherApp.js.page:19(title)
-#| msgid "Run the application"
+#: C/weatherApp.js.page:21(title)
 msgid "4 Weather Application"
-msgstr "4. Executar o aplicativo"
+msgstr "4. Aplicativo do tempo"
 
-#: C/weatherApp.js.page:21(p)
+#: C/weatherApp.js.page:23(p)
 msgid ""
 "In this guide well construct a weather application using asynchronous calls. "
 "Weather information in this example is fetched from geonames.org and the "
@@ -537,25 +965,24 @@ msgid ""
 "computer. In this guide we we'll go through the following parts:"
 msgstr ""
 
-#: C/weatherApp.js.page:24(link) C/weatherApp.js.page:36(title)
-#, fuzzy
+#: C/weatherApp.js.page:26(link) C/weatherApp.js.page:38(title)
 #| msgid "Creating the user interface"
 msgid "Planning the graphical user interface"
-msgstr "Crear a interface de usuario"
+msgstr "Planificando a interface de usuario grÃfica"
 
-#: C/weatherApp.js.page:25(link) C/weatherApp.js.page:40(title)
+#: C/weatherApp.js.page:27(link) C/weatherApp.js.page:42(title)
 msgid "Asynchronous calls"
 msgstr "Chamadas asÃncronas"
 
-#: C/weatherApp.js.page:27(link)
+#: C/weatherApp.js.page:29(link)
 msgid "Local library GeoNames"
-msgstr ""
+msgstr "Biblioteca de GeoNames local"
 
-#: C/weatherApp.js.page:32(p) C/guitar-tuner.js.page:33(p)
+#: C/weatherApp.js.page:34(p) C/guitar-tuner.js.page:35(p)
 msgid "After reading this tutorial, you should see this in your screen:"
-msgstr ""
+msgstr "Despois de ler este manual, deberÃa ver isto na pantalla:"
 
-#: C/weatherApp.js.page:37(p)
+#: C/weatherApp.js.page:39(p)
 msgid ""
 "Structuring an application for GNOME 3 means you will be using <link href="
 "\"http://developer.gnome.org/platform-overview/stable/gtk\";>GTK+</link>. The "
@@ -569,7 +996,7 @@ msgid ""
 "widget on the grid."
 msgstr ""
 
-#: C/weatherApp.js.page:41(p)
+#: C/weatherApp.js.page:43(p)
 msgid ""
 "With many programming languages, all operations are run synchronously - you "
 "tell the program to do something, and it will wait until that action "
@@ -583,7 +1010,7 @@ msgid ""
 "the background."
 msgstr ""
 
-#: C/weatherApp.js.page:44(p)
+#: C/weatherApp.js.page:46(p)
 msgid ""
 "In this example we have to get data from geonames.org. While we do that we "
 "want the rest of our program to continue. If we wouldn't get any information "
@@ -593,12 +1020,186 @@ msgid ""
 "Terminal."
 msgstr ""
 
-#: C/weatherApp.js.page:47(title)
+#: C/weatherApp.js.page:49(title)
 msgid "The different parts of the program"
 msgstr "As diferentes partes do programa"
 
-#: C/translate.page:12(years) C/index.page:19(years)
-#: C/documentation.page:12(years) C/bug-filing.page:11(years)
+#: C/vala.page:6(title)
+msgid "Vala"
+msgstr "Vala"
+
+#: C/vala.page:15(title)
+msgid "Tutorials, code samples and platform demos in Vala"
+msgstr "Titoriais, exemplos de cÃdigo e demostraciÃns da plataforma en Vala"
+
+#: C/tutorial.py.page:8(title)
+#| msgid "0 Beginner's Tutorials"
+msgid "Beginner's Tutorial (Python)"
+msgstr "Titorial para principantes (Python)"
+
+#: C/tutorial.py.page:12(desc)
+msgid ""
+"A tutorial for beginners who want to learn how to program GUIs using GTK+ in "
+"Python."
+msgstr ""
+"Un titorial para principiantes que queren aprender como programar interfaces "
+"de usuario GTK+ empregando Python."
+
+#: C/tutorial.py.page:25(title)
+#| msgid "0 Beginner's Tutorials"
+msgid "0 Beginner's Tutorial"
+msgstr "0. Titorial para principiantes"
+
+#: C/tutorial.py.page:28(p) C/beginner.vala.page:32(p) C/beginner.c.page:29(p)
+msgid ""
+"By following these tutorials you will learn the basics of GUI programming "
+"using Gtk+."
+msgstr ""
+"Seguindo estes titoriais aprenderà as bases para programar interfaces de "
+"usuario empregando Gtk+."
+
+#: C/tutorial.py.page:30(p)
+msgid ""
+"If you have never programmed before, or are not familiar with the concepts "
+"of object oriented programming, you may need to learn a few basics first. "
+"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
+"the Hard Way</link> or <link href=\"http://docs.python.org/tutorial/index.";
+"html\">The Python Tutorial</link> may be a better place for you to start. "
+"You may also be interested in <link href=\"http://python-gtk-3-tutorial.";
+"readthedocs.org/en/latest/index.html\">The Python GTK+ 3 Tutorial</link>. "
+"Once you master the basics, be sure to come back and check out these "
+"tutorials."
+msgstr ""
+
+#: C/tutorial.py.page:36(title)
+#| msgid "To run the code samples:"
+msgid "To run the code samples"
+msgstr "Para executar os exemplos de cÃdigo"
+
+#: C/tutorial.py.page:38(p) C/beginner.vala.page:41(p)
+#: C/beginner.js.page:42(p) C/beginner.c.page:38(p)
+msgid "To run the code samples:"
+msgstr "Para executar os exemplos de cÃdigo"
+
+#: C/tutorial.py.page:40(p)
+msgid "Copy and paste the code into <var>filename</var>.py"
+msgstr "Copie e pegue o cÃdigo en <var>nomedeficheiro</var>.py"
+
+#: C/tutorial.py.page:41(p) C/beginner.vala.page:46(p) C/beginner.c.page:43(p)
+#: C/beginner.c.page:56(p)
+msgid "In the terminal type:"
+msgstr "Escriba no terminal"
+
+#: C/tutorial.py.page:42(screen)
+#, no-wrap
+#| msgid "gjs <var>filename</var>.js"
+msgid "python <var>filename</var>.py"
+msgstr "python <var>nomeficheiro</var>.py"
+
+#: C/tutorial.py.page:48(title)
+msgid "A path through the widgets"
+msgstr "Unha ruta aos widgets"
+
+#: C/tutorial.py.page:50(title)
+#| msgid "Tutorials"
+msgid "Tutorial"
+msgstr "Titorial"
+
+#: C/tutorial.py.page:52(title)
+#| msgid "Windows"
+msgid "Basic windows"
+msgstr "Xanela bÃsica"
+
+#: C/tutorial.py.page:57(title)
+msgid "Images and labels"
+msgstr "Imaxes e etiquetas"
+
+#: C/tutorial.py.page:62(title) C/grid.py.page:27(title)
+#: C/grid.js.page:24(title) C/grid.c.page:20(title)
+msgid "Grid"
+msgstr "Grade"
+
+#: C/tutorial.py.page:66(title) C/beginner.vala.page:77(title)
+#: C/beginner.py.page:54(title) C/beginner.js.page:73(title)
+#: C/beginner.c.page:88(title)
+msgid "Ornaments"
+msgstr "Adornos"
+
+#: C/tutorial.py.page:70(title)
+#| msgid "Button"
+msgid "Basic buttons"
+msgstr "BotÃns bÃsicos"
+
+#: C/tutorial.py.page:79(title)
+#| msgid "Display widgets"
+msgid "Other display widgets"
+msgstr "Outros widgets de visualizaciÃn"
+
+#: C/tutorial.py.page:85(title)
+msgid "Entry widgets (with a detour on basic scrolling)"
+msgstr ""
+
+#: C/tutorial.py.page:93(title)
+#| msgid "AboutDialog"
+msgid "Dialogs"
+msgstr "DiÃlogos"
+
+#: C/tutorial.py.page:99(title)
+msgid "TreeViews and ComboBoxes (using the M/V/C design)"
+msgstr "TreeViews e ComboBoxes (usando o deseÃo M/V/C)"
+
+#: C/tutorial.py.page:108(title)
+msgid "Menus and toolbars (also: using Glade)"
+msgstr "MenÃs e barras de ferramentas (tamÃn: usando Glade)"
+
+#: C/tutorial.py.page:116(title)
+#| msgid "Selectors"
+msgid "Selectors (a recap)"
+msgstr "Selectores (un resumo)"
+
+#: C/tutorial.py.page:122(title) C/tooltip.py.page:21(title)
+msgid "Tooltip"
+msgstr "Consello"
+
+#: C/tutorial.py.page:126(title)
+#| msgid "Layout containers"
+msgid "More containers"
+msgstr "MÃis contedores"
+
+#: C/tutorial.py.page:131(title)
+#| msgid "Scrolling"
+msgid "More scrolling"
+msgstr "MÃis desprazamento"
+
+#: C/tutorial.py.page:132(p)
+msgid "\"scrollbar.py\""
+msgstr "\"scrollbar.py\""
+
+#: C/tutorial.py.page:135(title)
+#| msgid "Button widget"
+msgid "Custom widget"
+msgstr "Widget personalizado"
+
+#: C/tutorial.py.page:136(p)
+msgid "\"widget.py\""
+msgstr "\"widget.py\""
+
+#: C/tutorial.py.page:142(title)
+msgid "Some theory to help you"
+msgstr "Algunha teorÃa para axudarlle"
+
+#: C/tutorial.py.page:147(title) C/menubar.vala.page:197(title)
+#: C/beginner.vala.page:86(title) C/beginner.js.page:82(title)
+#: C/beginner.c.page:97(title)
+msgid "Exercises"
+msgstr "Exercicios"
+
+#: C/translate.page:12(years) C/toolbar_builder.py.page:28(years)
+#: C/textview.py.page:16(years) C/strings.py.page:16(years)
+#: C/signals-callbacks.py.page:16(years) C/properties.py.page:16(years)
+#: C/model-view-controller.py.page:16(years) C/index.page:19(years)
+#: C/entry.py.page:20(years) C/documentation.page:12(years)
+#: C/bug-filing.page:11(years)
 msgid "2011"
 msgstr "2011"
 
@@ -629,6 +1230,8 @@ msgid ""
 "There are <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>many "
 "languages</link> for which translations are still needed."
 msgstr ""
+"Hai <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>moitos "
+"idiomas</link> para os cales se precisan traduciÃns."
 
 #: C/translate.page:30(p)
 msgid ""
@@ -637,6 +1240,10 @@ msgid ""
 "teams/\">translation team</link> for your language. This will give you the "
 "ability to upload new translations."
 msgstr ""
+"Para comezar a traducir precisarà <link href=\"http://l10n.gnome.org\";>crear "
+"unha conta</link> e unirse ao <link "
+"href=\"http://l10n.gnome.org/teams/\";>equipo de traduciÃn</link> do seu "
+"idioma. Isto daralle a posibilidade de subir traduciÃns novas."
 
 #: C/translate.page:34(p)
 msgid ""
@@ -645,6 +1252,11 @@ msgid ""
 "channel are located worldwide, so you may not get an immediate response as a "
 "result of timezone differences."
 msgstr ""
+"Pode conversar cos tradutores de GNOME empregando <link "
+"href=\"https://cbe003.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%";
+"2Fi18n\">irc</link>. As persoas da canle estÃn espallados por todo o mundo, "
+"polo que poda que non obteÃa resposta de forma inmediata debido Ãs "
+"diferenzas de fuso de hora."
 
 #: C/translate.page:37(p)
 msgid ""
@@ -652,6358 +1264,15066 @@ msgid ""
 "<link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n\";>mailing "
 "list</link>."
 msgstr ""
+"De forma alternativa pode contactar o Equipo de InternacionalizaciÃn "
+"empregando a <link href=\"http://mail.gnome.org/mailman/listinfo/gnome-";
+"i18n\">rolda de correo</link>."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_treestore.py.page:21(None)
+msgid ""
+"@@image: 'media/treeview_treestore.png'; md5=5ca87bc4acd55c527b3fb5fd46779d85"
+msgstr ""
+"@@image: 'media/treeview_treestore.png'; "
+"md5=5ca87bc4acd55c527b3fb5fd46779d85"
+
+#: C/treeview_treestore.py.page:7(title)
+#: C/treeview_cellrenderertoggle.py.page:7(title)
+msgid "TreeView with TreeStore (Python)"
+msgstr "TreeView con TreeStore (Python)"
+
+#: C/treeview_treestore.py.page:17(desc)
+msgid "A TreeView displaying a TreeStore (simpler example)"
+msgstr "Un TreeView mostrando un TreeStore (exemplo mÃis simple)"
+
+#: C/treeview_treestore.py.page:20(title)
+#: C/treeview_cellrenderertoggle.py.page:20(title)
+#| msgid "TreeView widget"
+msgid "TreeView with TreeStore"
+msgstr "TreeView con TreeStore"
+
+#: C/treeview_treestore.py.page:22(p)
+msgid "This TreeView displays a TreeStore."
+msgstr "Este TreeView mostra un TreeStore."
+
+#: C/treeview_treestore.py.page:33(title)
+#: C/treeview_simple_liststore.py.page:35(title)
+#: C/treeview_cellrenderertoggle.py.page:33(title)
+#: C/treeview_advanced_liststore.py.page:36(title)
+msgid "Useful methods for a TreeView widget"
+msgstr "MÃtodos Ãtiles para o widget TreeView"
+
+#: C/treeview_treestore.py.page:34(p)
+#: C/treeview_simple_liststore.py.page:36(p)
+#: C/treeview_cellrenderertoggle.py.page:34(p)
+#: C/treeview_advanced_liststore.py.page:37(p)
+msgid ""
+"The TreeView widget is designed around a <em>Model/View/Controller</em> "
+"design. For more information, and for a list of useful methods for TreeView "
+"and the interface TreeModel, see <link xref=\"model-view-controller.py"
+"\">here</link>."
+msgstr ""
+
+#: C/treeview_treestore.py.page:41(link)
+#: C/treeview_simple_liststore.py.page:43(link)
+#: C/treeview_cellrenderertoggle.py.page:41(link)
+#: C/treeview_advanced_liststore.py.page:45(link)
+#: C/model-view-controller.py.page:186(link)
+#| msgid "TreeView widget"
+msgid "GtkTreeView"
+msgstr "GtkTreeView"
+
+#: C/treeview_treestore.py.page:42(link)
+#: C/treeview_simple_liststore.py.page:44(link)
+#: C/treeview_cellrenderertoggle.py.page:42(link)
+#: C/treeview_advanced_liststore.py.page:46(link)
+#: C/model-view-controller.py.page:185(link)
+msgid "GtkTreeModel"
+msgstr "GtkTreeModel"
+
+#: C/treeview_treestore.py.page:43(link)
+#: C/treeview_cellrenderertoggle.py.page:43(link)
+msgid "GtkTreeStore"
+msgstr "GtkTreeStore"
+
+#: C/treeview_treestore.py.page:44(link)
+#: C/treeview_simple_liststore.py.page:46(link)
+#: C/treeview_cellrenderertoggle.py.page:44(link)
+#: C/treeview_advanced_liststore.py.page:48(link)
+#: C/combobox_multicolumn.py.page:45(link) C/combobox.py.page:42(link)
+msgid "GtkCellRendererText"
+msgstr "GtkCellRendererText"
+
+#: C/treeview_treestore.py.page:45(link)
+#: C/treeview_simple_liststore.py.page:47(link)
+#: C/treeview_cellrenderertoggle.py.page:46(link)
+#: C/treeview_advanced_liststore.py.page:49(link)
+#: C/model-view-controller.py.page:187(link)
+msgid "GtkTreeViewColumn"
+msgstr "GtkTreeViewColumn"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/record-collection.js.page:62(None)
+#: C/treeview_simple_liststore.vala.page:23(None)
+#: C/treeview_simple_liststore.py.page:23(None)
+#| msgid ""
+#| "@@image: 'media/guitar-tuner-pipeline.png'; "
+#| "md5=5adc952909d92af5dae6954781b4ad5f"
 msgid ""
-"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+"@@image: 'media/treeview_simple_liststore.png'; "
+"md5=2dc501a2b95b094da985d37b66aee90c"
 msgstr ""
-"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+"@@image: 'media/treeview_simple_liststore.png'; "
+"md5=2dc501a2b95b094da985d37b66aee90c"
 
-#: C/record-collection.js.page:8(desc)
-msgid "Create a small database application for ordering your music collection"
+#: C/treeview_simple_liststore.vala.page:7(title)
+msgid "Simple Treeview with ListStore (Vala)"
 msgstr ""
-"Cree un pequeno aplicativo con unha base de datos para ordenar a sÃa "
-"colecciÃn de mÃsica"
 
-#: C/record-collection.js.page:12(name) C/image-viewer.vala.page:12(name)
-#: C/image-viewer.cpp.page:12(name) C/image-viewer.c.page:12(name)
-#: C/guitar-tuner.vala.page:12(name) C/guitar-tuner.py.page:12(name)
-#: C/guitar-tuner.cpp.page:12(name) C/guitar-tuner.c.page:12(name)
-#: C/getting-ready.page:12(name) C/audio-player.vala.page:12(name)
-msgid "GNOME Documentation Project"
-msgstr "Proxecto de documentacioÌn de GNOME"
+#: C/treeview_simple_liststore.vala.page:19(desc)
+msgid "A widget can display any TreeModel implementation (lists and trees)"
+msgstr ""
 
-#: C/record-collection.js.page:13(email) C/index.page:8(email)
-#: C/image-viewer.vala.page:13(email) C/image-viewer.cpp.page:13(email)
-#: C/image-viewer.c.page:13(email) C/guitar-tuner.vala.page:13(email)
-#: C/guitar-tuner.py.page:13(email) C/guitar-tuner.cpp.page:13(email)
-#: C/guitar-tuner.c.page:13(email) C/getting-ready.page:13(email)
-#: C/audio-player.vala.page:13(email)
-msgid "gnome-doc-list gnome org"
-msgstr "gnome-doc-list gnome org"
+#: C/treeview_simple_liststore.vala.page:22(title)
+#: C/treeview_advanced_liststore.py.page:23(title)
+msgid "Simple Treeview with ListStore"
+msgstr ""
 
-#: C/record-collection.js.page:16(name) C/photo-wall.c.page:15(name)
-#: C/magic-mirror.vala.page:16(name) C/index.page:17(name)
-#: C/image-viewer.vala.page:16(name) C/image-viewer.py.page:17(name)
-#: C/image-viewer.js.page:17(name) C/image-viewer.cpp.page:16(name)
-#: C/image-viewer.c.page:16(name) C/guitar-tuner.vala.page:16(name)
-#: C/guitar-tuner.py.page:16(name) C/guitar-tuner.cpp.page:16(name)
-#: C/guitar-tuner.c.page:16(name)
-msgid "Johannes Schmid"
-msgstr "Johannes Schmid"
+#: C/treeview_simple_liststore.vala.page:24(p)
+msgid ""
+"This TreeView displays a simple ListStore with the Selection \"changed\" "
+"signal connected."
+msgstr ""
 
-#: C/record-collection.js.page:17(email) C/photo-wall.c.page:16(email)
-#: C/magic-mirror.vala.page:17(email) C/index.page:18(email)
-#: C/image-viewer.vala.page:17(email) C/image-viewer.py.page:18(email)
-#: C/image-viewer.js.page:18(email) C/image-viewer.cpp.page:17(email)
-#: C/image-viewer.c.page:17(email) C/guitar-tuner.vala.page:17(email)
-#: C/guitar-tuner.py.page:17(email) C/guitar-tuner.cpp.page:17(email)
-#: C/guitar-tuner.c.page:17(email)
-msgid "jhs gnome org"
-msgstr "jhs gnome org"
+#: C/treeview_simple_liststore.vala.page:31(link)
+#: C/treeview_simple_liststore.js.page:282(link)
+msgid "Gtk.TreeView"
+msgstr "Gtk.TreeView"
 
-#: C/record-collection.js.page:21(title)
-#, fuzzy
-#| msgid "Record Collection"
-msgid "3 Record Collection"
-msgstr "ColecciÃn de mÃsica"
+#: C/treeview_simple_liststore.vala.page:32(link)
+#: C/treeview_simple_liststore.js.page:279(link) C/combobox.vala.page:29(link)
+#: C/combobox.js.page:242(link)
+msgid "Gtk.ListStore"
+msgstr "Gtk.ListStore"
 
-#: C/record-collection.js.page:24(p) C/message-board.c.page:23(p)
-#: C/image-viewer.cpp.page:24(p) C/image-viewer.c.page:24(p)
-msgid "In this tutorial, you will learn:"
-msgstr "Neste titorial aprenderÃ:"
+#: C/treeview_simple_liststore.vala.page:33(link)
+#: C/treeview_simple_liststore.js.page:281(link)
+#| msgid "Gtk.Application"
+msgid "Gtk.TreeSelection"
+msgstr "Gtk.TreeSelection"
 
-#: C/record-collection.js.page:26(p)
-msgid "How to connect to a database using libgda"
-msgstr "Como conectar con unha base de datos usando libgda"
+#: C/treeview_simple_liststore.py.page:7(title)
+msgid "Simple TreeView with ListStore (Python)"
+msgstr ""
 
-#: C/record-collection.js.page:27(p)
-msgid "How to insert and browse records in a database table"
-msgstr "Como insertar e examinar rexistros nunha tÃboa dunha base de datos"
+#: C/treeview_simple_liststore.py.page:19(desc)
+msgid "A TreeView displaying a ListStore (simpler example)"
+msgstr ""
 
-#: C/record-collection.js.page:32(title) C/photo-wall.c.page:34(title)
-msgid "Introduction"
-msgstr "IntroduciÃn"
+#: C/treeview_simple_liststore.py.page:22(title)
+msgid "Simple TreeView with ListStore"
+msgstr ""
 
-#: C/record-collection.js.page:33(p)
+#: C/treeview_simple_liststore.py.page:24(p)
+#: C/treeview_advanced_liststore.py.page:25(p)
 msgid ""
-"This demo uses the Javascript language. We are going to demonstrate how to "
-"connect and use a database from a GTK program, by using the GDA (GNOME Data "
-"Access) library. Thus you also need this library installed."
+"This TreeView displays a simple ListStore with the selection \"changed\" "
+"signal connected."
 msgstr ""
-"Esta demostraciÃn usa o linguaxe JavaScript. Vaise demostrar como conectar e "
-"usar unha base de datos desde un programa GTK, usando a biblioteca GDA "
-"(ÂGNOME Data AccessÂ, Acceso a datos de GNOME). Polo tanto, Ã preciso ter "
-"instalada tamÃn esta biblioteca."
 
-#: C/record-collection.js.page:36(p)
-msgid ""
-"GNOME Data Access (GDA) is library whose purpose is to provide universal "
-"access to different kinds and types of data sources. This goes from "
-"traditional relational database systems, to any imaginable kind of data "
-"source such as a mail server, a LDAP directory, etc. For more information, "
-"and for a full API and documentation, visit the <link href=\"http://library.";
-"gnome.org/devel/libgda/stable/\">GDA website</link>."
+#: C/treeview_simple_liststore.py.page:45(link)
+#: C/treeview_advanced_liststore.py.page:47(link)
+#: C/combobox_multicolumn.py.page:44(link) C/combobox.py.page:41(link)
+msgid "GtkListStore"
+msgstr "GtkListStore"
+
+#: C/treeview_simple_liststore.py.page:48(link)
+#: C/treeview_advanced_liststore.py.page:50(link)
+#: C/combobox_multicolumn.py.page:48(link) C/combobox.py.page:44(link)
+msgid "pygobject - Python bindings for GObject Introspection"
+msgstr ""
+
+#: C/treeview_simple_liststore.py.page:49(link)
+msgid "Fonts"
 msgstr ""
-"GNOME Data Access (GDA) à unha biblioteca cuxo propÃsito à fornecer acceso "
-"universal a diferentes tipos de orixes de datos. Isto vai desde os sistemas "
-"de bases de datos relacionais tradicionais a calquera tipo imaxinÃbel de "
-"orixe de datos como un servidor de correo, un directorio LDAP, ect. Para "
-"mÃis informaciÃn e para obter a API completa e a documentaciÃn visite o "
-"<link href=\"http://library.gnome.org/devel/libgda/stable/\";>sitio web de "
-"GDA</link>."
 
-#: C/record-collection.js.page:39(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_simple_liststore.js.page:24(None)
 msgid ""
-"Although a big part of the code is related to user interface (GUI), we are "
-"going to focus our tutorial on the database parts (we might mention other "
-"parts we think are relevant though). To know more about Javascript programs "
-"in GNOME, see the <link xref=\"image-viewer.js\">Image Viewer program</link> "
-"tutorial."
+"@@image: 'media/treeview_simple_liststore_penguins.png'; "
+"md5=d750a0b9fddf8e508753cc639839871d"
 msgstr ""
-"AÃnda que a maiorÃa do cÃdigo està relacionado con interfaces de usuario "
-"(GUI), imos enforcar este titorial nas partes relacionadas coa base de datos "
-"(aÃnda que podemos mencionar outras partes que son relevantes). Para saber "
-"mÃis sobre os programas JavaScript en GNOME vexa o titorial <link xref="
-"\"image-viewer.js\">programa Visor de Imaxes</link>."
+"@@image: 'media/treeview_simple_liststore_penguins.png'; "
+"md5=d750a0b9fddf8e508753cc639839871d"
 
-#: C/record-collection.js.page:45(title) C/photo-wall.c.page:44(title)
-#: C/message-board.c.page:40(title) C/magic-mirror.vala.page:42(title)
-#: C/image-viewer.vala.page:49(title) C/image-viewer.py.page:43(title)
-#: C/image-viewer.js.page:44(title) C/image-viewer.cpp.page:34(title)
-#: C/image-viewer.c.page:34(title) C/guitar-tuner.py.page:40(title)
-#: C/guitar-tuner.cpp.page:40(title) C/guitar-tuner.c.page:40(title)
-msgid "Create a project in Anjuta"
-msgstr "Cree un proxecto de Anjuta"
+#: C/treeview_simple_liststore.js.page:7(title)
+msgid "TreeView with ListStore (JavaScript)"
+msgstr ""
+
+#: C/treeview_simple_liststore.js.page:20(desc)
+msgid "A widget that shows a separate list of items"
+msgstr ""
 
-#: C/record-collection.js.page:46(p) C/photo-wall.c.page:45(p)
-#: C/magic-mirror.vala.page:43(p) C/image-viewer.vala.page:50(p)
-#: C/image-viewer.py.page:44(p) C/image-viewer.js.page:45(p)
-#: C/image-viewer.cpp.page:35(p) C/image-viewer.c.page:35(p)
-#: C/guitar-tuner.vala.page:45(p) C/guitar-tuner.py.page:41(p)
-#: C/guitar-tuner.cpp.page:41(p) C/guitar-tuner.c.page:41(p)
+#: C/treeview_simple_liststore.js.page:23(title)
+#| msgid "TreeView widget"
+msgid "TreeView with ListStore"
+msgstr "TreeView con ListStore"
+
+#: C/treeview_simple_liststore.js.page:25(p)
 msgid ""
-"Before you start coding, you'll need to set up a new project in Anjuta. This "
-"will create all of the files you need to build and run the code later on. "
-"It's also useful for keeping everything together."
+"A TreeView is like a window onto the contents of either a ListStore or a "
+"TreeStore. A ListStore is like a spreadsheet: a \"flat\", two-dimensional "
+"list of things broken up into rows and columns. A TreeStore, meanwhile, can "
+"branch out in different directions like a tree can. In this example, we "
+"create a TreeView that shows the contents of a ListStore with (fictitious) "
+"names and phone numbers in it, and set it so that the <link xref=\"label.js"
+"\">Label</link> at the bottom of the window shows more information about "
+"whichever name you click on."
 msgstr ""
-"Antes de comezar a programar, deberà configurar un proxecto novo en Anjuta. "
-"Isto crearà todos os ficheiros que precise para construÃr e executar o "
-"cÃdigo mÃis adiante. TamÃn à Ãtil para manter todo ordenado."
 
-#: C/record-collection.js.page:49(p) C/photo-wall.c.page:48(p)
-#: C/magic-mirror.vala.page:46(p) C/image-viewer.py.page:47(p)
-#: C/image-viewer.js.page:48(p) C/image-viewer.cpp.page:38(p)
-#: C/image-viewer.c.page:38(p) C/guitar-tuner.py.page:44(p)
-#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:44(p)
+#: C/treeview_simple_liststore.js.page:26(p)
 msgid ""
-"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
-"gui></guiseq> to open the project wizard."
+"The TreeView is not just a single widget, but contains a number of smaller "
+"ones:"
 msgstr ""
-"Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
-"gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
 
-#: C/record-collection.js.page:52(p)
+#: C/treeview_simple_liststore.js.page:28(p)
 msgid ""
-"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
-"<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
-"<file>record-collection</file> as project name and directory."
+"TreeViewColumn widgets show each (vertical) column of information from the "
+"ListStore. Each one has a title which can be shown at the top of the column, "
+"like in the screenshot."
 msgstr ""
-"Seleccione <gui>JavaScript xenÃrico</gui> desde a lapela <gui>JS</gui>, "
-"prema <gui>Adiante</gui> e complete os seus detalles nas seguintes pÃxinas. "
-"Use <file>record-collection</file> como nome do proxecto e cartafol."
 
-#: C/record-collection.js.page:55(p)
+#: C/treeview_simple_liststore.js.page:29(p)
 msgid ""
-"Click <gui>Finished</gui> and the project will be created for you. Open "
-"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. It contains very basic example code."
+"CellRenderer widgets are \"packed\" into each TreeViewColumn, and contain "
+"the instructions for how to display each individual \"cell\", or item from "
+"the ListStore. There are multiple different types, including the "
+"CellRendererText used here and the CellRendererPixbuf, which displays a "
+"picture (\"pixel buffer\")."
 msgstr ""
-"Prema <gui>Rematar</gui> e o proxecto serà creado. Abra <file>src/main.js</"
-"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ContÃn "
-"cÃdigo de exemplo moi bÃsico."
 
-#: C/record-collection.js.page:61(title)
-msgid "Program Structure"
-msgstr "Estrutura do programa"
+#: C/treeview_simple_liststore.js.page:31(p)
+msgid ""
+"Finally, we're going to use an object called a TreeIter, which isn't a "
+"widget so much as an invisible cursor which points to a (horizontal) row in "
+"the ListStore. Whenever you click on a name in the phonebook, for instance, "
+"we create a TreeIter pointing to the row that's selected, and then use that "
+"to tell the ListStore which entry we want the Label to show more information "
+"about."
+msgstr ""
 
-#: C/record-collection.js.page:63(p)
+#: C/treeview_simple_liststore.js.page:32(p)
 msgid ""
-"This demo is a simple GTK application (with a single window) capable of "
-"inserting records into a database table as well as browsing all records of "
-"the table. The table has two fields: <code>id</code>, an integer, and "
-"<code>name</code>, a varchar. The first section (on the top) of the "
-"application allows you to insert a record into the table. The last section "
-"(bottom) allows you to see all the records of that table. Its content is "
-"refreshed every time a new record is inserted and on the application startup."
+"The TreeView is probably the most complicated Gtk widget, because of how "
+"many parts it has and how they all have to work together. Give yourself time "
+"to learn how it works and experiment with it, or try something easier first "
+"if you're having trouble."
 msgstr ""
-"Esta demostraciÃn à un aplicativo GTK (cunha Ãnica xanela) capaz de inserir "
-"rexistros nunha tÃboa de base de datos asà como navegar por tÃdolos "
-"rexistros da toa. A tÃboa ten dous campos: <code>id</code>, un enteiro e "
-"<code>name</code>, un varchar. A primeira secciÃn (na parte superior) do "
-"aplicativo permÃtelle inserir un rexistro na tÃboa. A Ãltima secciÃn "
-"(abaixo) permÃtelle ver tÃdolos rexistros dunha tÃboa. Os contidos "
-"actualÃzanse cada vez que se insire un novo rexistro e ao iniciar o "
-"aplicativo."
 
-#: C/record-collection.js.page:68(title)
-msgid "Starting the fun"
-msgstr "Comezar a diversiÃn"
+#: C/treeview_simple_liststore.js.page:45(p) C/togglebutton.js.page:35(p)
+#: C/textview.js.page:44(p) C/switch.js.page:42(p) C/statusbar.js.page:35(p)
+#: C/spinbutton.js.page:38(p) C/scale.js.page:35(p)
+#: C/radiobutton.js.page:35(p) C/messagedialog.js.page:38(p)
+#: C/combobox.js.page:40(p) C/comboboxtext.js.page:36(p)
+#: C/checkbutton.js.page:35(p)
+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."
+msgstr ""
 
-#: C/record-collection.js.page:69(p)
-msgid "Let's start by examining the skeleton of the program:"
-msgstr "Comezar examinando o esqueleto do programa:"
+#: C/treeview_simple_liststore.js.page:49(title)
+#: C/togglebutton.js.page:39(title) C/textview.js.page:48(title)
+#: C/switch.js.page:46(title) C/statusbar.js.page:39(title)
+#: C/spinbutton.js.page:42(title) C/scale.js.page:39(title)
+#: C/radiobutton.js.page:39(title) C/messagedialog.js.page:42(title)
+#: C/combobox.js.page:44(title) C/comboboxtext.js.page:40(title)
+#: C/checkbutton.js.page:39(title)
+#| msgid "Designing the application"
+msgid "Creating the application window"
+msgstr "DeseÃar unha xanela de aplicativo"
 
-#: C/record-collection.js.page:95(p)
+#: C/treeview_simple_liststore.js.page:75(p)
 msgid ""
-"Lines 1â4: Initial imports. Pay special attention to line 3, which tells "
-"Javascript to import the GDA library, our focus in this tutorial."
+"All the code for this sample goes in the TreeViewExample 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 ""
-"LiÃas 1-4: importaciÃns iniciais. Preste especial atenciÃn à liÃa 3, que "
-"indica que JavaScript importe a a biblioteca GDA, noso obxectivo neste "
-"titorial."
 
-#: C/record-collection.js.page:96(p)
+#: C/treeview_simple_liststore.js.page:89(p) C/togglebutton.js.page:80(p)
+#: C/textview.js.page:87(p) C/switch.js.page:87(p) C/spinbutton.js.page:80(p)
+#: C/scale.js.page:77(p) C/radiobutton.js.page:78(p)
+#: C/messagedialog.js.page:83(p) C/combobox.js.page:82(p)
+#: C/comboboxtext.js.page:78(p)
 msgid ""
-"Lines 6â17: Define our <code>Demo</code> class. Pay special attention to "
-"lines 13â15, where we call 3 methods which will do the whole job. They will "
-"be detailed below."
+"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 ""
-"LiÃas 6-17: Define a clase <code>Demo</code>. PoÃa especial atenciÃn Ãs "
-"liÃas 13-15, onde chamamos a 3 mÃtodos que farÃn o traballo. Falaremos deles "
-"mÃis adiante."
 
-#: C/record-collection.js.page:97(p)
-msgid "Lines 19â23: Start the application."
-msgstr "LiÃas 19-23: Iniciar o aplicativo."
-
-#: C/record-collection.js.page:102(title)
-msgid "Designing the application"
-msgstr "DeseÃar o aplicativo"
+#: C/treeview_simple_liststore.js.page:93(title) C/combobox.js.page:86(title)
+#| msgid "Creating the user interface"
+msgid "Creating the ListStore"
+msgstr "Crear un ListStore"
 
-#: C/record-collection.js.page:103(p)
+#: C/treeview_simple_liststore.js.page:103(p)
 msgid ""
-"Let's take a look at the <code>setupWindow</code> method. It is responsible "
-"for creating the User Interface (UI). As UI is not our focus, we will "
-"explain only the relevant parts."
+"We first create the ListStore like we would any widget. Then we call its "
+"set_column_types method, and pass it an array of GObject data types. (We "
+"could have put the types all on one line, but here we are breaking them up "
+"to make it easier to read.)"
 msgstr ""
-"BotÃmoslle unha ollada ao mÃtodo <code>setupWindow</code>. Ã o responsÃbel "
-"de crear a Interface de Usuario (UI). Xa que a UI non à o noso enfoque "
-"explicaremos sà as partes mÃis relevantes."
+"Primeiro creamos un ListStore como farÃamos con calquera widget. Logo "
+"chamamos ao seu mÃtodo set_column_types, e pasÃmoslle un array dos tipos de "
+"datos GObject. (Podemos poÃerlle todos os tipos nunha liÃa, pero teremos que "
+"partila para facela mÃis doado de ler.)"
+
+#: C/treeview_simple_liststore.js.page:104(p)
+msgid "The GObject data types you can use include:"
+msgstr "Os tipos de datos GObject que pode usar son:"
 
-#: C/record-collection.js.page:154(p)
+#: C/treeview_simple_liststore.js.page:106(p) C/combobox.js.page:97(p)
+msgid "<file>GObject.TYPE_BOOLEAN</file> -- True or false"
+msgstr "<file>GObject.TYPE_BOOLEAN</file> -- Verdadeiro ou falso"
+
+#: C/treeview_simple_liststore.js.page:107(p) C/combobox.js.page:98(p)
 msgid ""
-"Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
-"will type something to get inserted in the database."
+"<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a "
+"decimal point)"
 msgstr ""
-"LiÃas 22 e 27: crear as dÃas entradas (para os dous campos) nas que o "
-"usuario escribirà algo para inserilo na base de datos."
+"<file>GObject.TYPE_FLOAT</file> -- Un nÃmero en punto flotante (un con un "
+"punto decimal)"
+
+#: C/treeview_simple_liststore.js.page:108(p) C/combobox.js.page:99(p)
+msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
+msgstr "<file>GObject.TYPE_STRING</file> -- Unha cadea de nÃmeros e letras"
 
-#: C/record-collection.js.page:155(p)
+#: C/treeview_simple_liststore.js.page:109(p)
+msgid "<file>gtk.gdk.Pixbuf</file> -- A picture"
+msgstr "<file>gtk.gdk.Pixbuf</file> -- Unha imaxe"
+
+#: C/treeview_simple_liststore.js.page:111(p)
 msgid ""
-"Lines 31â34: Create the Insert button. We connect its <code>clicked</code> "
-"signal to the <code>_insertClicked</code> private method of the class. This "
-"method is detailed below."
+"In this case, we're making a ListStore of four columns, each one containing "
+"string values."
 msgstr ""
-"LiÃas 31-34: crear o botÃn ÂInsertarÂ. ConÃctase o seu sinal <code>clicked</"
-"code> co mÃtodo privado <code>_insertClicked</code> de clase. Este mÃtodo "
-"detÃllase a continuaciÃn"
+"Neste caso, crearemos unha ListStore para catro columnas, cada unha delas "
+"contÃn valores en cadeas."
 
-#: C/record-collection.js.page:156(p)
+#: C/treeview_simple_liststore.js.page:112(p) C/combobox.js.page:101(p)
 msgid ""
-"Line 39: Create the widget (<code>TextView</code>) where we will show the "
-"contents of the table."
+"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 ""
-"LiÃa 39: Crear o widget (<code>TextView</code>) onde se mostrarÃn os "
-"contidos da tÃboa."
 
-#: C/record-collection.js.page:157(p)
+#: C/treeview_simple_liststore.js.page:131(p)
 msgid ""
-"Line 44: Create the label where we will show the number of records in the "
-"table. Initially it's empty, it will be updated later."
+"Here we have the information to go in the ListStore. It's an array of "
+"objects, each one corresponding to a single entry in our phone book."
 msgstr ""
-"LiÃa 44: crea a etiqueta onde se mostrarà o nÃmero de rexistros existentes "
-"na tÃboa. Inicialmente està baleiro, actualizarase mÃis tarde."
-
-#: C/record-collection.js.page:162(title)
-msgid "Connecting to and initializing the database"
-msgstr "Conectar e inicializar a base de datos"
 
-#: C/record-collection.js.page:163(p)
+#: C/treeview_simple_liststore.js.page:132(p)
 msgid ""
-"The code which makes the connection to the database is in the "
-"<code>setupDatabase</code> method below:"
+"Note that the TreeView in the screenshot doesn't actually show the data from "
+"the \"description\" properties. Instead, that information's shown in the "
+"Label beneath it, for whichever row that you click on. That's because the "
+"TreeView and ListStore are two separate things, and a TreeView can show all "
+"or part of a ListStore, and display what's in it in different ways. You can "
+"even have multiple widgets show things from the same ListStore, like the "
+"Label in our example or even a second TreeView."
 msgstr ""
-"O cÃdigo que fai a conexiÃn coa base de datos està no mÃtodo "
-"<code>setupDatabase</code> de embaixo:"
 
-#: C/record-collection.js.page:180(p)
+#: C/treeview_simple_liststore.js.page:141(p)
 msgid ""
-"Lines 2â3: Create the GDA's <code>Connection</code> object. We must supply "
-"to its constructor some properties:"
+"This <file>for</file> loop puts the strings from our phonebook into our "
+"ListStore in order. In order, we pass the ListStore's set method the iter "
+"that points to the correct row, an array which says which columns we want to "
+"set, and an array which contains the data we want to put into those columns."
 msgstr ""
-"LiÃa 2-3: crear o obxecto de GDA <code>Conection</code>. Debe fornecerlle ao "
-"seu construtor algunhas propiedades:"
 
-#: C/record-collection.js.page:183(p)
+#: C/treeview_simple_liststore.js.page:142(p)
 msgid ""
-"<code>provider</code>: One of GDA's supported providers. GDA supports "
-"SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
-"use a SQLite database, as it comes installed by default in most "
-"distributions and it is simple to use (it just uses a file as a database)."
+"A ListStore's <file>append</file> method adds a horizontal row onto it (it "
+"starts out with none), and returns a TreeIter pointing to that row like a "
+"cursor. So by passing <file>this._listStore.append()</file> to the ListStore "
+"as a property, we're creating a new row and telling the <file>set</file> "
+"method which row to set data for at the same time."
 msgstr ""
-"<code>provider</code>: un dos fornecedores con asistencia en GDA. GDA Ã "
-"compatÃbel con SQLite, MySQL, PostgreSQL, Oracle e moitos outros. Para os "
-"propÃsitos desta demostraciÃn usaremos unha base de datos SQLite, xa que ven "
-"instalada por omisiÃn na maiorÃa das distribuciÃns e à moi sinxela de usar "
-"(usa un sà ficheiro por base de datos)."
 
-#: C/record-collection.js.page:186(p)
+#: C/treeview_simple_liststore.js.page:147(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the TreeView"
+msgstr "Crear a interface de usuario"
+
+#: C/treeview_simple_liststore.js.page:154(p)
 msgid ""
-"<code>cnc_string</code>: The connection string. It may change from provider "
-"to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
-"DB_NAME=<var>FILENAME</var></code>. In this demo we are accessing a database "
-"called gnome_demo in the user home dir (note the call to GLib's "
-"<code>get_home_dir</code> function)."
+"Here we create a basic TreeView widget, that expands both horizontally and "
+"vertically to use as much space as needed. We set it to use the ListStore we "
+"created as its \"model\", or the thing it'll show us stuff from."
 msgstr ""
-"<code>cnc_string</code>: A cadea de conexiÃn. Pode cambiar dun fornecedor a "
-"outro. A sintaxe para SQLite Ã: <code>DB_DIR=<var>PATH</var>;"
-"DB_NAME=<var>FILENAME</var></code>. Nesta demostraciÃn accederemos a unha "
-"base de datos chamada gnome_demo no cartafol persoal do usuario (olle a "
-"chamada à funciÃn de GLib <code>get_home_dir</code>)."
 
-#: C/record-collection.js.page:190(p)
+#: C/treeview_simple_liststore.js.page:162(p)
 msgid ""
-"If the provider is not supported by GDA, or if the connection string is "
-"missing some element, line 2 will raise an exception. So, in real life we "
-"should handle it with JavaScript's statement <code>try</code>...<code>catch</"
-"code>."
+"Now we create each of the vertical TreeViewColumns we'll see in the "
+"TreeView. The title for each one goes at the top, as you can see in the "
+"screenshot."
 msgstr ""
-"Se o fornecedor non à compatÃbel con GDA, ou falta algÃn elemento na cadea "
-"de conexiÃn, dispararase a excepciÃn da liÃa 2. Polo que na vida real "
-"deberÃamos xestionar as declaraciÃns JavaScript entre bloques <code>try</"
-"code>...<code>catch</code>."
 
-#: C/record-collection.js.page:194(p)
+#: C/treeview_simple_liststore.js.page:177(p)
 msgid ""
-"Line 4: Open the connection. In the SQLite provider, if the database does "
-"not exist, it will be created in this step."
+"Here we create the CellRenderers that we'll use to display the text from our "
+"ListStore, and pack them into the TreeViewColumns. Each CellRendererText is "
+"used for all the entries in that column. Our normal CellRendererText just "
+"creates plain text, while our bold one uses heavier-weight text. We put it "
+"into the first name column, and tell the other two to use copies of the "
+"normal one. The \"true\" used as the second parameter for the "
+"<file>pack_start</file> method tells it to expand the cells when possible, "
+"instead of keeping them compact."
 msgstr ""
-"LiÃa 4: Abrir a conexiÃn. No fornecedor de SQLite, se a conexiÃn non existe "
-"crearase neste paso."
 
-#: C/record-collection.js.page:196(p)
+#: C/treeview_simple_liststore.js.page:178(p)
 msgid ""
-"Lines 6â10: Try to do a simple select to check if the table exists (line 7). "
-"If it does not exist (because the database was just created), this command "
-"will raise an exception, which is handled by the <code>try</code>..."
-"<code>catch</code> block. If it is the case, we run the create table "
-"statement (line 9)."
+"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>Here is "
+"a list</link> of other text properties you can use. In order to use these "
+"Pango constants, make sure to put the line <file>const Pango = imports.gi."
+"Pango;</file> at the beginning of your code like we did."
 msgstr ""
-"LiÃas 6-10: Tenta facer unha selecciÃn sinxela para comprobar que a tÃboa "
-"existe (liÃa 7). Se non existe (porque a base de datos foi recÃn creada), "
-"esta orde dispararà unha excepciÃn, que està xestionada polo bloque "
-"<code>try</code>...<code>catch</code>. Se este à o caso executarase a "
-"declaraciÃn de creaciÃn de tÃboa (liÃa 9)."
 
-#: C/record-collection.js.page:197(p)
+#: C/treeview_simple_liststore.js.page:190(p)
 msgid ""
-"In order to run the SQL commands above we are using global GDA functions, "
-"<code>execute_select_command</code> and <code>execute_non_select_command</"
-"code>. They are simple to use, and just require two arguments: The "
-"<code>Connection</code> object and the SQL command to be parsed."
+"Now that we've put the CellRenderers into the TreeViewColumns, we use the "
+"<file>add_attribute</file> method to tell each column to pull in text from "
+"the model our TreeView is set to use; in this case, the ListStore with the "
+"phonebook."
 msgstr ""
-"Para executar ordes SQL usamos as funciÃns globais de GDA, "
-"<code>execute_select_command</code> e <code>execute_non_select_command</"
-"code>. Son moi sinxelas de usar, e sà requiren dous argumentos: o obxecto "
-"<code>Connection</code> e a orde SQL a analizar."
-
-#: C/record-collection.js.page:201(p)
-msgid "At this point we have the database set up, and are ready to use it."
-msgstr "Neste punto temos a base de datos configurada e lista para usala."
 
-#: C/record-collection.js.page:205(title)
-msgid "Selecting"
-msgstr "Seleccionar"
+#: C/treeview_simple_liststore.js.page:192(p)
+msgid ""
+"The first parameter is which CellRenderer we're going to use to render what "
+"we're pulling in."
+msgstr ""
 
-#: C/record-collection.js.page:206(p)
+#: C/treeview_simple_liststore.js.page:193(p)
 msgid ""
-"After connecting to the database, our demo's constructor calls the "
-"<code>selectData</code> method. It is responsible for getting all the "
-"records in the table and showing them on the <code>TextView</code> widget. "
-"Let's take a look at it:"
+"The second parameter is what kind of information we're going to pull in. In "
+"this case, we're letting it know that we're rendering text."
 msgstr ""
-"Despois de conectarse aÌ base de datos, o construtor da nosa demostracioÌn "
-"chama ao meÌtodo <code>selectData</code>. EÌ responsaÌbel de obter toÌdolos "
-"rexistros na taÌboa e para mostrarllas no widget <code>TextView</code>. "
-"VoteÌmoslle unha ollada:"
 
-#: C/record-collection.js.page:227(p)
+#: C/treeview_simple_liststore.js.page:194(p)
 msgid ""
-"Line 2: The <code>SELECT</code> command. We are using the global GDA's "
-"function <code>execute_select_command</code> for that. It returns a "
-"<code>DataModel</code> object, which is later used to retrieve the rows."
+"The third parameter is which of the ListStore's columns we're pulling that "
+"information in from."
 msgstr ""
-"LinÌa 2: A orde <code>SELECT</code>. Usamos a funcioÌn global de GDA "
-"<code>execute_select_command</code> para iso. DevoÌlve un obxecto "
-"<code>DataModel</code>, que maÌis tarde empregaremos para obter as filas."
 
-#: C/record-collection.js.page:228(p)
+#: C/treeview_simple_liststore.js.page:196(p)
 msgid ""
-"Line 3: Create an <code>Iter</code> object, which is used to iterate over "
-"the <code>DataModel</code>'s records."
+"After we've set that up, we use the TreeView's <file>insert_column</file> "
+"method to put our TreeViewColumns inside it in order. Our TreeView is now "
+"complete."
 msgstr ""
-"LinÌa 3: Crea un obxecto <code>Iter</code>, que se usa para iterar sobre os "
-"rexistros de <code>DataModel</code>."
 
-#: C/record-collection.js.page:229(p)
+#: C/treeview_simple_liststore.js.page:197(p)
 msgid ""
-"Line 7: Loop through all the records, fetching them with the help of the "
-"<code>Iter</code> object. At this point, the <code>iter</code> variable "
-"contains the actual, retrieved data. Its <code>move_next</code> method "
-"returns <code>false</code> when it reaches the last record."
+"Normally, you might want to use a loop to initialize your TreeView, but in "
+"this example we're spelling things out step by step for the sake of making "
+"it easier to understand."
 msgstr ""
-"LinÌa 7: Iterar por toÌdolos rexistros e obtelos coa axuda do obxecto "
-"<code>Iter</code>. Neste punto a variaÌbel <code>iter</code> conteÌn os datos "
-"actualizados obtidos. O seu meÌtodo <code>move_next</code> devolve "
-"<code>false</code> cando se chegue ao uÌltimo rexistro."
 
-#: C/record-collection.js.page:231(p)
-msgid "Lines 8â9: We do two things in each line:"
-msgstr "LinÌas 8-9: fanse duÌas cousas en cada linÌa:"
+#: C/treeview_simple_liststore.js.page:201(title)
+#| msgid "Build the code for the first time"
+msgid "Building the rest of the UI"
+msgstr "ConstruÃr o resto da IU"
 
-#: C/record-collection.js.page:233(p)
+#: C/treeview_simple_liststore.js.page:212(p)
 msgid ""
-"Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
-"only one argument: the column number to retrieve, starting at 0. As our "
-"<code>SELECT</code> command returns only two columns, we are retrieving "
-"columns 0 and 1."
+"The TreeView's <file>get_selection</file> method returns an object called a "
+"TreeSelection. A TreeSelection is like a TreeIter in that it's basically a "
+"cursor that points at a particular row, except that the one it points to is "
+"the one that's visibly highlighted as selected."
 msgstr ""
-"Use o mÃtodo <code>get_value_at</code> de <code>Iter</code>, que sà precisa "
-"un argumento: o nÃmero de columna que recuperar, comezando por 0. Xa que a "
-"orde <code>SELECT</code> sà devolve dÃas columnas, se està recuperando as "
-"columnas 0 e 1."
 
-#: C/record-collection.js.page:234(p)
+#: C/treeview_simple_liststore.js.page:213(p)
 msgid ""
-"The method <code>get_value_at</code> returns the field in GLib's "
-"<code>GValue</code> format. A simple way to convert this format to a string "
-"is by using GDA's global function <code>value_stringify</code>. That's what "
-"we are doing here, and we store the results in the variables <code>id_field</"
-"code> and <code>name_field</code>."
+"After we get the TreeSelection that goes with our TreeView, we ask it to "
+"tell us when it changes which row it's pointing to. We do this by connecting "
+"its <file>changed</file> signal to the _onSelectionChanged function we "
+"wrote. This function changes the text displayed by the Label we just made."
 msgstr ""
-"O meÌtodo <code>get_value_at</code> devolve o campo no formato <code>GValue</"
-"code> de GLib. Unha forma sinxela de converter este formato a unha cadea eÌ "
-"usando a funcioÌn global de GDA <code>value_stringify</code>. Que eÌ o facemos "
-"aquiÌ, e almacenamos os resultados nas variaÌbeis <code>id_field</code> e "
-"<code>name_field</code>."
 
-#: C/record-collection.js.page:237(p)
+#: C/treeview_simple_liststore.js.page:230(p)
 msgid ""
-"Line 11: Concatenate the two fields to make one text line, separated by "
-"<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
+"After we've gotten that out of the way, we create a <link xref=\"grid.js"
+"\">Grid</link> to put everything in, then add it to our window and tell the "
+"window to show itself and its contents."
 msgstr ""
-"LinÌa 11: ConcateÌnanse os dous campos para facer unha uÌnica linÌa de texto, "
-"separada por <code>\"=&gt;\"</code>, e almacenaÌmolas na variaÌbel <code>text</"
-"code>."
 
-#: C/record-collection.js.page:238(p)
-msgid ""
-"Line 14: After the loop is finished, we have all the records formatted in "
-"the <code>text</code> variable. In this line we just set the contents of the "
-"<code>TextView</code> with that variable."
+#: C/treeview_simple_liststore.js.page:234(title)
+msgid "Function which handles a changed selection"
 msgstr ""
-"LinÌa 14: Logo de que o bucle remate, temos toÌdolos rexistros formatados na "
-"variaÌbel <code>text</code>. Nesta linÌa estabelecemos os contidos de "
-"<code>TextView</code> con dita variaÌbel."
 
-#: C/record-collection.js.page:239(p)
+#: C/treeview_simple_liststore.js.page:253(p)
 msgid ""
-"Line 15: Display the number of records in the table, making use of the "
-"<code>DataModel</code>'s <code>get_n_rows</code> method."
+"The line of code with the let statement is a little convoluted, but it's "
+"nonetheless the best way to get a TreeIter pointing to the same row as our "
+"TreeSelection. It has to create a couple of other object references, but "
+"<file>iter</file> is the only one we need."
 msgstr ""
-"LinÌa 15: mostrar o nuÌmero de rexistros na taÌboa, usando o meÌtodo "
-"<code>get_n_rows</code> de <code>DataModel</code> <code>get_n_rows</code>."
-
-#: C/record-collection.js.page:244(title)
-msgid "Inserting"
-msgstr "Insertando"
 
-#: C/record-collection.js.page:245(p)
+#: C/treeview_simple_liststore.js.page:254(p)
 msgid ""
-"OK, we know how to connect to a database and how to select rows from a "
-"table. Now it's time to do an <code>INSERT</code> on the table. Do you "
-"remember above, in the method <code>setupWindow</code> we connected the "
-"<gui>Insert</gui> button's <code>clicked</code> signal to the method "
-"<code>_insertClicked</code>? Let's see the implementation of this method."
+"After we've done that, we call the Label's <file>set_label</file> function, "
+"and use the ListStore's <file>get_value</file> function a handful of times "
+"to fill in the data we want to put in it. Its parameters are a TreeIter "
+"pointing to the row we want to get data from, and the column."
 msgstr ""
-"OK, sabemos como conectarse a unha base de datos e como seleccionar filas "
-"dunha taÌboa. Agora eÌ tempo de facer un <code>INSERT</code> na taÌboa. Lembra "
-"arriba no meÌtodo <code>setupWindow</code> que conectamos o sinal "
-"<code>clicked</code> do botoÌn <gui>Insert</gui> ao meÌtodo "
-"<code>_insertClicked</code>? Vexamos a implementacioÌn deste meÌtodo."
 
-#: C/record-collection.js.page:266(p)
+#: C/treeview_simple_liststore.js.page:255(p)
 msgid ""
-"We have learned how to use GDA's convenience functions "
-"<code>execute_select_command</code> and <code>execute_non_select_command</"
-"code> to quickly execute SQL commands on the database. GDA allows one to "
-"build a SQL statement indirectly, by using its <code>SqlBuilder</code> "
-"object. What are the benefits of this? GDA will generate the SQL statement "
-"dynamically, and it will be valid for the connection provider used (it will "
-"use the same SQL dialect the provider uses). Let's study the code:"
+"Here, we want to get data from all four columns, including the \"hidden\" "
+"one that's not part of the TreeView. This way, we can use our Label to show "
+"strings that are too large to fit in the TreeView, and that we don't need to "
+"see at a glance."
 msgstr ""
-"Aprendemos como usar as funcioÌns de GDA de forma conveniente "
-"<code>execute_select_command</code> e <code>execute_non_select_command</"
-"code> para executar ordes SQL de forma raÌpida nunha base de datos. GDA "
-"permiÌtelle construiÌr unha declaracioÌn SQL de forma indirecta usando o seu "
-"obxecto <code>SqlBuilder</code>. Cales son os beneficios de isto? GDA xeraraÌ "
-"a declaracioÌn SQL de forma dinaÌmica e seraÌ vaÌlida para o fornecedor de "
-"conexioÌn usado (usarase o mesmo dialecto SQL que o fornecedor usa). "
-"Estudiemos o coÌdigo:"
 
-#: C/record-collection.js.page:270(p)
+#: C/treeview_simple_liststore.js.page:262(p)
 msgid ""
-"Lines 2â3: Check if the user filled all the fields. The code for the private "
-"method <code>_validateFields</code> is really simple and you can read it in "
-"the full demo source code."
+"Finally, we create a new instance of the finished TreeViewExample class, and "
+"set the application running."
 msgstr ""
-"LinÌa 2-3: comproÌbase que o usuario completa toÌdolos campos. O coÌdigo do "
-"meÌtodo privato <code>_validateFields</code> eÌ realmente sinxelo e pode lelo "
-"no coÌdigo fonte completo da demostracioÌn."
 
-#: C/record-collection.js.page:271(p)
+#: C/treeview_simple_liststore.js.page:266(title)
+#: C/togglebutton.js.page:147(title) C/textview.js.page:242(title)
+#: C/switch.js.page:258(title) C/statusbar.js.page:215(title)
+#: C/spinbutton.js.page:193(title) C/scale.js.page:202(title)
+#: C/radiobutton.js.page:268(title) C/messagedialog.js.page:183(title)
+#: C/hellognome.js.page:193(title) C/combobox.js.page:227(title)
+#: C/comboboxtext.js.page:170(title) C/checkbutton.js.page:130(title)
+#: C/02_welcome_to_the_grid.js.page:275(title)
+#| msgid "Code samples"
+msgid "Complete code sample"
+msgstr "Exemplos de cÃdigo"
+
+#: C/treeview_simple_liststore.js.page:271(title)
+#: C/togglebutton.js.page:152(title) C/textview.js.page:247(title)
+#: C/switch.js.page:263(title) C/statusbar.js.page:220(title)
+#: C/spinbutton.js.page:198(title) C/scale.js.page:207(title)
+#: C/radiobutton.js.page:273(title) C/messagedialog.js.page:188(title)
+#: C/combobox.js.page:232(title) C/comboboxtext.js.page:175(title)
+#: C/checkbutton.js.page:135(title)
+msgid "In-depth documentation"
+msgstr "DocumentaciÃn en profundo"
+
+#: C/treeview_simple_liststore.js.page:277(link)
+#: C/togglebutton.js.page:155(link) C/textview.js.page:250(link)
+#: C/switch.js.page:268(link) C/statusbar.js.page:223(link)
+#: C/spinner.js.page:31(link) C/spinbutton.js.page:202(link)
+#: C/scale.js.page:211(link) C/radiobutton.js.page:276(link)
+#: C/progressbar.js.page:40(link) C/messagedialog.js.page:196(link)
+#: C/linkbutton.js.page:30(link) C/label.vala.page:31(link)
+#: C/label.js.page:30(link) C/image.js.page:32(link)
+#: C/GtkApplicationWindow.vala.page:31(link)
+#: C/GtkApplicationWindow.js.page:31(link) C/grid.js.page:34(link)
+#: C/gmenu.vala.page:42(link) C/entry.js.page:30(link)
+#: C/dialog.js.page:30(link) C/combobox.js.page:238(link)
+#: C/comboboxtext.js.page:181(link) C/checkbutton.js.page:138(link)
+#: C/button.js.page:31(link) C/aboutdialog.vala.page:39(link)
+#: C/aboutdialog.js.page:32(link)
+msgid "Gtk.ApplicationWindow"
+msgstr "Gtk.ApplicationWindow"
+
+#: C/treeview_simple_liststore.js.page:278(link) C/combobox.vala.page:31(link)
+#: C/combobox.js.page:240(link)
+msgid "Gtk.CellRendererText"
+msgstr "Gtk.CellRendererText"
+
+#: C/treeview_simple_liststore.js.page:280(link) C/combobox.js.page:244(link)
+msgid "Gtk.TreeIter"
+msgstr "Gtk.TreeIter"
+
+#: C/treeview_simple_liststore.js.page:283(link)
+msgid "Gtk.TreeViewColumn"
+msgstr "Gtk.TreeViewColumn"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_cellrenderertoggle.py.page:21(None)
 msgid ""
-"Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
-"as we want to show how to use the <code>SqlBuilder</code> object to build a "
-"SQL statement portable across databases."
+"@@image: 'media/treeview_cellrenderertoggle.png'; "
+"md5=ade9b9437f8f83150acf37610dab834d"
 msgstr ""
-"LinÌa 5: A forma maÌis raÌpida eÌ <code>INSERT</code>. EstaÌ descomentado xa que "
-"queremos ver como usar o obxecto <code>SqlBuilder</code> para construiÌr unha "
-"declaracioÌn SQL portaÌbel a traveÌs das bases de datos."
+"@@image: 'media/treeview_cellrenderertoggle.png'; "
+"md5=ade9b9437f8f83150acf37610dab834d"
 
-#: C/record-collection.js.page:272(p)
+#: C/treeview_cellrenderertoggle.py.page:17(desc)
 msgid ""
-"Line 7: Create the <code>SqlBuilder</code> object. We must pass the type of "
-"statement we are going to build. It can be <code>SELECT</code>, "
-"<code>UPDATE</code>, <code>INSERT</code> or <code>DELETE</code>."
+"A TreeView displaying a TreeStore (more complex example, with "
+"CellRendererToggle)"
 msgstr ""
-"LinÌa 7: crea o obxecto <code>SqlBilder</code>. Debemos pasar o tipo de "
-"declaracioÌn que queremos construiÌr. Pode ser <code>SELECT</code>, "
-"<code>UPDATE</code>, <code>INSERT</code> ou <code>DELETE</code>."
 
-#: C/record-collection.js.page:273(p)
+#: C/treeview_cellrenderertoggle.py.page:22(p)
 msgid ""
-"Line 8: Set the name of the table on which the built statement will operate "
-"(it will generate <code>INSERT INTO demo</code>)"
+"This TreeView displays a TreeStore with two columns, one of which is "
+"rendered as a toggle."
 msgstr ""
-"LinÌa 8: estabelecer o nome da base de datos na que operaraÌ a sentencia "
-"construiÌda (xeraraÌ <code>INSERT INTO demo</code>)"
 
-#: C/record-collection.js.page:274(p)
+#: C/treeview_cellrenderertoggle.py.page:45(link)
+msgid "GtkCellRendererToggle"
+msgstr "GtkCellRendererToggle"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_advanced_liststore.py.page:24(None)
 msgid ""
-"Lines 9â10: Set the fields and its values that will be part of the "
-"statement. The first argument is the field name (as in the table). The "
-"second one is the value for that field."
+"@@image: 'media/treeview_advanced_liststore.png'; "
+"md5=102b512197fb9aa4ed9a16462f6af911"
 msgstr ""
-"LinÌas 9-10: estabelecer os campos que formaraÌn parte da sentenza e os seus "
-"valores. O primeiro campo eÌ o nome do campo (como aparece na taÌboa). O "
-"segundo eÌ o valor deste campo."
+"@@image: 'media/treeview_advanced_liststore.png'; "
+"md5=102b512197fb9aa4ed9a16462f6af911"
 
-#: C/record-collection.js.page:275(p)
-msgid ""
-"Line 11: Get the dynamically generated <code>Statement</code> object, which "
-"represents a SQL statement."
+#: C/treeview_advanced_liststore.py.page:7(title)
+msgid "Simple Treeview with ListStore (Python)"
 msgstr ""
-"LinÌa 11: obter o obxecto <code>Statement</code> xerado dinamicamente, que "
-"representa unha sentenza SQL."
 
-#: C/record-collection.js.page:276(p)
-msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
-msgstr "LinÌa 12: finalmente, executar a sentenza SQL (<code>INSERT</code>)."
+#: C/treeview_advanced_liststore.py.page:20(desc)
+msgid "A TreeView displaying a ListStore (more complex example)"
+msgstr ""
 
-#: C/record-collection.js.page:277(p)
+#: C/treeview_advanced_liststore.py.page:38(p)
 msgid ""
-"Line 14: Clear the id and name fields on the screen. The code for the "
-"private method <code>_clearFields</code> is really simple and you can read "
-"it in the full demo source code."
+"For buttons and callbacks functions, see <link xref=\"signals-callbacks.py"
+"\">here</link>"
 msgstr ""
-"LinÌa 14: limpar os campos id e nome na pantalla. O coÌdigo do meÌtodo privado "
-"<code>_clearFields</code> eÌ moi sinxelo e pode lelo no coÌdigo fonte completo "
-"da demostracioÌn."
 
-#: C/record-collection.js.page:278(p)
-msgid ""
-"Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
-msgstr ""
-"LinÌa 15: actualizar a vista na pantalla facendo outro <code>SELECT</code>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/tooltip.py.page:22(None)
+#| msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+msgid "@@image: 'media/tooltip.png'; md5=6950da5f4444aa941ecc2f0fc5951d52"
+msgstr "@@image: 'media/tooltip.png'; md5=6950da5f4444aa941ecc2f0fc5951d52"
 
-#: C/record-collection.js.page:280(p)
-msgid ""
-"You can also make use of parameters while building the statement. By using "
-"the <code>SqlBuilder</code> objects and parameters you are less subject to "
-"attacks like SQL injection. Check the <link href=\"http://library.gnome.org/";
-"devel/libgda/stable/\">GDA documentation</link> for more information about "
-"parameters."
+#: C/tooltip.py.page:7(title) C/menubutton.py.page:7(title)
+#: C/menubutton.py.page:26(title) C/menubutton.py.page:52(link)
+#: C/menubutton.vala.page:20(title) C/menubutton.vala.page:32(link)
+#: C/menubutton.js.page:20(title) C/menubutton.js.page:32(link)
+#| msgid "Button"
+msgid "MenuButton"
+msgstr "MenuButton"
+
+#: C/tooltip.py.page:18(desc)
+msgid "Add tips to your widgets"
+msgstr "Engadir consellos aos seus widgets"
+
+#: C/tooltip.py.page:23(p)
+msgid "A toolbar with a tooltip (with an image) for a button."
 msgstr ""
-"TameÌn pode usar paraÌmetros mentres construÌe a sentenza. Usando obxectos e "
-"paraÌmetros <code>SqlBuilder</code> seraÌ menos susceptiÌbel a ataques de "
-"inxeccioÌn de SQL. Para obter informacioÌn adicional sobre os paraÌmetros, "
-"consulte a <link href=\"http://library.gnome.org/devel/libgda/stable/";
-"\">documentacioÌn de GDA</link>."
 
-#: C/record-collection.js.page:284(title) C/image-viewer.py.page:219(title)
-#: C/image-viewer.js.page:305(title) C/guitar-tuner.py.page:222(title)
-msgid "Run the application"
-msgstr "Executar o aplicativo"
+#: C/tooltip.py.page:33(title)
+msgid "Useful methods for a Tooltip widget"
+msgstr "MÃtodos Ãtiles para o widget Tooltip"
 
-#: C/record-collection.js.page:285(p)
+#: C/tooltip.py.page:34(p)
 msgid ""
-"All of the code you need should now be in place, so try running the code. "
-"You now have a database for your record collection!"
+"<code>set_tooltip_text(text)</code> and <code>set_tooltip_markup(text)</"
+"code> can be used to add a tooltip of plain text (or text in the Pango "
+"Markup Language) to a widget."
 msgstr ""
-"Todo o coÌdigo que precisa agora estaÌ no seu lugar, polo que tente executar o "
-"coÌdigo. Agora ten unha base de datos para a suÌa coleccioÌn de rexistros!"
 
-#: C/record-collection.js.page:289(title) C/photo-wall.c.page:377(title)
-#: C/magic-mirror.vala.page:142(title) C/image-viewer.vala.page:280(title)
-#: C/image-viewer.py.page:224(title) C/image-viewer.js.page:310(title)
-#: C/image-viewer.cpp.page:210(title) C/image-viewer.c.page:220(title)
-#: C/guitar-tuner.vala.page:252(title) C/guitar-tuner.py.page:227(title)
-#: C/guitar-tuner.js.page:232(title) C/guitar-tuner.cpp.page:255(title)
-#: C/guitar-tuner.c.page:255(title)
-msgid "Reference Implementation"
-msgstr "ImplementaciÃn de referencia"
+#: C/tooltip.py.page:35(p)
+msgid "For more complex tooltips, for instance for a tooltip with an image:"
+msgstr ""
 
-#: C/record-collection.js.page:290(p)
+#: C/tooltip.py.page:37(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"record-collection/record-collection.js\">reference code</link>."
+"Set the <code>\"has-tooltip\"</code> property of the widget to <code>True</"
+"code>; this will make GTK+ monitor the widget for motion and related events "
+"which are needed to determine when and where to show a tooltip."
 msgstr ""
-"Se ten problemas co titorial, compare o seu coÌdigo con este <link href="
-"\"record-collection/record-collection.js\">coÌdigo de referencia</link>."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/photo-wall.c.page:76(None)
-msgid "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
-msgstr "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/photo-wall.c.page:79(None)
+#: C/tooltip.py.page:38(p)
 msgid ""
-"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
+"Connect to the <code>\"query-tooltip\"</code> signal. This signal will be "
+"emitted when a tooltip is supposed to be shown. One of the arguments passed "
+"to the signal handler is a GtkTooltip object. This is the object that we are "
+"about to display as a tooltip, and can be manipulated in your callback using "
+"functions like <code>set_icon()</code>. There are functions for setting the "
+"tooltip's markup (<code>set_markup(text)</code>), setting an image from a "
+"stock icon (<code>set_icon_from_stock(stock_id, size)</code>), or even "
+"putting in a custom widget (<code>set_custom(widget)</code>)."
 msgstr ""
-"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
 
-#: C/photo-wall.c.page:7(desc)
-msgid "A Clutter image viewer"
-msgstr "Un visor de imaxes Clutter"
+#: C/tooltip.py.page:39(p)
+msgid ""
+"Return <code>True</code> from your query-tooltip handler. This causes the "
+"tooltip to be show. If you return <code>False</code>, it will not be shown."
+msgstr ""
 
-#: C/photo-wall.c.page:11(name)
-msgid "Chris KÃhl"
-msgstr "Chris KÃhl"
+#: C/tooltip.py.page:42(p)
+msgid ""
+"In the probably rare case where you want to have even more control over the "
+"tooltip that is about to be shown, you can set your own GtkWindow which will "
+"be used as tooltip window. This works as follows:"
+msgstr ""
 
-#: C/photo-wall.c.page:12(email)
-msgid "chrisk openismus com"
-msgstr "chrisk openismus com"
+#: C/tooltip.py.page:44(p)
+msgid ""
+"Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</"
+"code> as before."
+msgstr ""
 
-#: C/photo-wall.c.page:20(title)
-msgid "Photo Wall"
-msgstr "Mural de fotos"
+#: C/tooltip.py.page:45(p)
+msgid ""
+"Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow "
+"created by you as tooltip window."
+msgstr ""
 
-#: C/photo-wall.c.page:23(p)
+#: C/tooltip.py.page:46(p)
 msgid ""
-"For this example we will build a simple image viewer using Clutter. You will "
-"learn:"
+"In the <code>\"query-tooltip\"</code> callback you can access your window "
+"using <code>get_tooltip_window()</code> and manipulate as you wish. The "
+"semantics of the return value are exactly as before, return <code>True</"
+"code> to show the window, <code>False</code> to not show it."
 msgstr ""
-"Para este exemplo construirase un sinxelo visor de imaxes usando Clutter. "
-"AprenderÃ:"
 
-#: C/photo-wall.c.page:25(p)
-msgid "How to size and position <code>ClutterActor</code>s"
-msgstr "Como dimensionar e posicionar varios <code>ClutterActor</code>"
+#: C/tooltip.py.page:55(link)
+msgid "GtkTooltip"
+msgstr "GtkTooltip"
 
-#: C/photo-wall.c.page:26(p)
-msgid "How to place an image in a <code>ClutterActor</code>"
-msgstr "Como posicionar unha imaxe nun <code>ClutterActor</code>"
+#: C/tooltip.py.page:56(link) C/toolbar.py.page:52(link)
+msgid "GtkToolbar"
+msgstr "GtkToolbar"
 
-#: C/photo-wall.c.page:27(p)
-msgid "How to do simple transitions using Clutter's animation framework"
-msgstr ""
-"Como facer transiciÃns sinxelas usando o framework de animaciÃns Clutter."
+#: C/tooltip.py.page:57(link) C/toolbar_builder.py.page:195(link)
+#: C/toolbar.py.page:57(link) C/togglebutton.py.page:46(link)
+msgid "GtkWidget"
+msgstr "GtkWidget"
 
-#: C/photo-wall.c.page:28(p)
-msgid "How to make <code>ClutterActor</code>s respond to mouse events"
-msgstr ""
-"Como facer que os <code>ClutterActor</code> respondan a eventos do rato"
+#: C/tooltip.py.page:58(link) C/toolbar.py.page:55(link)
+#: C/combobox_multicolumn.py.page:47(link)
+msgid "Stock Items"
+msgstr "Elemento de inventario"
 
-#: C/photo-wall.c.page:29(p)
-msgid "How to get file names from a directory"
-msgstr "Como obter nomes de ficheiros dun cartafol"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:24(None) C/toolbar_builder.py.page:36(None)
+#: C/toolbar.vala.page:23(None) C/toolbar.py.page:23(None)
+#: C/toolbar.js.page:21(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:32(None) C/toolbar_builder.py.page:48(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+msgid "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
+msgstr "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
 
-#: C/photo-wall.c.page:35(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:38(None) C/toolbar_builder.py.page:54(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
 msgid ""
-"Clutter is a library for creating dynamic user interfaces using OpenGL for "
-"hardware acceleration. This example demonstates a small, but central, part "
-"of the Clutter library to create a simple but attractive image viewing "
-"program."
+"@@image: 'media/glade_select_toolbar.png'; "
+"md5=f7b5b224050b2e387eb04362fc99df00"
 msgstr ""
-"Clutter eÌ unha biblioteca para crear interfaces de usuario dinaÌmicas usando "
-"OpenGL para a aceleracioÌn graÌfica. Este exemplo demostra unha parte pequena, "
-"poreÌn central, da biblioteca Clutter para crear un sinxelo, maÌis atractivo, "
-"programa de visualizacioÌn de imaxes."
+"@@image: 'media/glade_select_toolbar.png'; "
+"md5=f7b5b224050b2e387eb04362fc99df00"
 
-#: C/photo-wall.c.page:38(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:44(None) C/toolbar_builder.py.page:60(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
 msgid ""
-"To help us reach our goal we will be utilising a few other common pieces of "
-"GLib as well. Most importantly, we'll use one <code>GSList</code>, a singly-"
-"linked list, to hold our <code>ClutterActor</code>s and another one for file "
-"path names. We will also use <code>GDir</code>, a utility for working with "
-"directories, to access our image directory and gather file paths."
+"@@image: 'media/glade_toolbar_general.png'; "
+"md5=e31daba6e8a3e526aca89d5f1622edaa"
 msgstr ""
-"Para axudarlle a alcanzar o seu destino usaremos tameÌn algunhas pezas comuÌns "
-"de GLib. A maÌis importante, usaremos <code>GSList</code>, unha lista ligada "
-"para manter os nosos <code>ClutterActor</code>s e os nomes de ruta de "
-"ficheiro."
+"@@image: 'media/glade_toolbar_general.png'; "
+"md5=e31daba6e8a3e526aca89d5f1622edaa"
 
-#: C/photo-wall.c.page:51(p)
-#, fuzzy
-#| msgid ""
-#| "Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
-#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#| "<file>photo-wall</file> as project name and directory."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:50(None) C/toolbar_builder.py.page:66(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
 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>photo-wall</file> as project name and directory."
+"@@image: 'media/glade_toolbar_common.png'; "
+"md5=d5ec6cc0218ca98e195dbd033feb9ac5"
 msgstr ""
-"Seleccione <gui>Gtk+ (sinmple)</gui> desde a lapela <gui>C</gui>, e prema "
-"<gui>Adiante</gui>, e complete os detalles nas seguintes paÌxinas. Use "
-"<file>photo-wall</file> como nome do proxecto e cartafol."
+"@@image: 'media/glade_toolbar_common.png'; "
+"md5=d5ec6cc0218ca98e195dbd033feb9ac5"
 
-#: C/photo-wall.c.page:54(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:56(None) C/toolbar_builder.py.page:72(None)
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
 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 using the interface builder."
+"@@image: 'media/glade_toolbar_edit.png'; md5=feb1e2b7040d24a4d030f94cf07c81fd"
 msgstr ""
-"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
-"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
-"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
-"construtor de interface."
+"@@image: 'media/glade_toolbar_edit.png'; "
+"md5=feb1e2b7040d24a4d030f94cf07c81fd"
 
-#: C/photo-wall.c.page:59(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:115(None) C/toolbar_builder.py.page:131(None)
+#| msgid ""
+#| "@@image: 'media/guitar-tuner-glade.png'; "
+#| "md5=f6606525443ab2160f53a87a454364d0"
 msgid ""
-"Enable <gui>Configure external packages</gui>. On the next page, select "
-"<em>clutter-1.0</em> from the list to include the Clutter library in your "
-"project."
+"@@image: 'media/glade_toolbar_editor.png'; "
+"md5=8af65241e5ca47d5494a7b36640e6f1c"
 msgstr ""
-"Active <gui>Configurar paquetes externos</gui>. Na seguinte paÌxina "
-"seleccione <em>clutter-1.0</em> desde a lista para incluiÌr a biblioteca "
-"Clutter no seu proxecto."
+"@@image: 'media/glade_toolbar_editor.png'; "
+"md5=8af65241e5ca47d5494a7b36640e6f1c"
 
-#: C/photo-wall.c.page:63(p) C/image-viewer.c.page:49(p)
-#: C/guitar-tuner.c.page:54(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar_builder.vala.page:124(None) C/toolbar_builder.py.page:140(None)
+#| msgid ""
+#| "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
 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:"
+"@@image: 'media/glade_visible_no.png'; md5=dc6c025aa825f4d772fbd283d6330026"
 msgstr ""
-"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.c</file> "
-"desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa ver "
-"alguÌn coÌdigo que comeza coas linÌas:"
+"@@image: 'media/glade_visible_no.png'; md5=dc6c025aa825f4d772fbd283d6330026"
 
-#: C/photo-wall.c.page:72(title)
-msgid "A look at Photo Wall"
-msgstr "Unha ollada ao Muro de fotos"
+#: C/toolbar_builder.vala.page:7(title)
+msgid "Toolbar created using Glade (Vala)"
+msgstr "Barra de ferramentas creada empregando Glade (Vala)"
 
-#: C/photo-wall.c.page:73(p)
-msgid "Our image viewer presents the user with a wall of images."
-msgstr "O novo visor de imaxes mÃstralle ao usuario un muro de imaxes."
+#: C/toolbar_builder.vala.page:19(desc) C/toolbar.vala.page:18(desc)
+msgid "A bar of buttons"
+msgstr "Unha barra de botÃns"
+
+#: C/toolbar_builder.vala.page:22(title) C/toolbar_builder.py.page:34(title)
+msgid "Toolbar created using Glade"
+msgstr "Barra de ferramentas creada empregando Glade"
 
-#: C/photo-wall.c.page:77(p)
+#: C/toolbar_builder.vala.page:25(p)
 msgid ""
-"When an image is clicked, it is animated to fill the viewing area. When the "
-"image having focus is clicked it is returned to its original position using "
-"an animation with the same duration of 500 milliseconds."
+"This example is similar to <link xref=\"toolbar.vala\"/>, except we use "
+"Glade to create the toolbar in an XML ui file."
 msgstr ""
-"Cando se fai clic sobre unha imaxe, esta anÃmase para ocupar todo o Ãrea de "
-"visualizaciÃn. Cando se fai clic sobre unha imaxe que ten o foco volverà à "
-"sÃa posiciÃn orixinal usando unha animaciÃn da mesma duraciÃn de 500 "
-"milisegundos."
-
-#: C/photo-wall.c.page:83(title)
-msgid "Initial setup"
-msgstr "ConfiguraciÃn inicial"
 
-#: C/photo-wall.c.page:84(p)
+#: C/toolbar_builder.vala.page:27(p) C/toolbar_builder.py.page:43(p)
 msgid ""
-"The following code segment contains many of the defines and variables we "
-"will be using in the following sections. Use this as a reference for later "
-"sections. Copy this code to the beginning of <file>src/main.c</file>:"
+"To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade "
+"Interface Designer</link>:"
 msgstr ""
-"O seguinte fragmento de cÃdigo contÃn moitas definiciÃns e variÃbeis que se "
-"usarÃn nas seguintes secciÃns. Ãseo como referencia para as prÃximas "
-"secciÃns. Copie este cÃdigo ao principio de <file>src/main.c</file>:"
 
-#: C/photo-wall.c.page:121(title)
-msgid "Jumping into the code"
-msgstr "Saltando ao cÃdigo"
+#: C/toolbar_builder.vala.page:31(p) C/toolbar_builder.py.page:47(p)
+msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
+msgstr ""
+
+#: C/toolbar_builder.vala.page:32(media) C/toolbar_builder.py.page:48(media)
+msgid "Screenshot of Glade ui"
+msgstr "Captura de pantalla da IU de Glade"
 
-#: C/photo-wall.c.page:122(p)
+#: C/toolbar_builder.vala.page:37(p) C/toolbar_builder.py.page:53(p)
 msgid ""
-"We will start by taking a look at the <code>main()</code> function as a "
-"whole. Then we'll discuss the other code sections in detail. Change the "
-"<file>src/main.c</file> to contain this <code>main()</code> function. You "
-"can delete the <code>create_window()</code> function as we don't need it in "
-"this example."
+"Under <gui>Containers</gui> on the left hand side, right click on the "
+"toolbar icon and select <gui>Add widget as toplevel</gui>."
 msgstr ""
-"Comezaremos ollando a funciÃn <code>main()</code>. Logo discutiremos as "
-"outras secciÃns de cÃdigo en detalle. Cambie o ficheiro <file>src/main.c</"
-"file> para que conte;a a funciÃn <code>main()</code>. Pode elminar a funciÃn "
-"<code>create_window()</code> xa que non a necesitamos neste exemplo."
 
-#: C/photo-wall.c.page:163(p)
-msgid ""
-"Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
-"and transparency (alpha) values. The values range from 0-255. For "
-"transparency a value of 255 is opaque."
+#: C/toolbar_builder.vala.page:38(media) C/toolbar_builder.py.page:54(media)
+msgid "Screenshot of toolbar icon in Glade ui"
 msgstr ""
-"LinÌa 4: <code>ClutterColor</code> eÌ definido estabelecendo o valor a "
-"vermello, verde, azul ou transparente (alfa). O rango de valores estaÌn entre "
-"0-255. Para a transparencia 255 eÌ opaco."
 
-#: C/photo-wall.c.page:164(p)
+#: C/toolbar_builder.vala.page:43(p) C/toolbar_builder.py.page:59(p)
 msgid ""
-"Line 7: You must initialize Clutter. If you forget to do this, you will get "
-"very strange errors. Be warned."
+"Under the <gui>General</gui> tab on the bottom right, change the <gui>Name</"
+"gui> to <input>toolbar</input> and <gui>Show Arrow</gui> to <gui>No</gui>."
 msgstr ""
-"LinÌa 7: Debe inicializar Clutter. Se esqueceu isto, haberaÌ moitos erros "
-"estranÌos. EstaÌ avisado."
 
-#: C/photo-wall.c.page:165(p)
-msgid ""
-"Lines 9â11: Here we get the default <code>ClutterStage</code> that was "
-"provided by <code>clutter_init</code>. We then set the size using the "
-"defines from the previous section and the address of the <code>ClutterColor</"
-"code> we just defined."
+#: C/toolbar_builder.vala.page:44(media) C/toolbar_builder.py.page:60(media)
+msgid "Screenshot of General tab"
 msgstr ""
-"LiÃas 9-11: aquà à onde se obtÃn o <code>ClutterStage</code> predeterminado "
-"que forneceu <code>clutter_init</code>. EntÃn estabelÃcese o tamaÃo usando o "
-"definido na secciÃn anterior e os enderezos do <code>ClutterColor</code> que "
-"xa estÃn definidas."
 
-#: C/photo-wall.c.page:166(p)
+#: C/toolbar_builder.vala.page:49(p) C/toolbar_builder.py.page:65(p)
 msgid ""
-"A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
-"which other <code>ClutterActor</code>s are placed."
+"Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to "
+"<gui>Yes</gui>."
 msgstr ""
-"Un <code>CluterStage</code> Ã o nivel superior dun <code>ClutterActor</code> "
-"no que se localizan outros <code>ClutterActor</code>."
 
-#: C/photo-wall.c.page:168(p)
-msgid ""
-"Line 12: Here we call our function for getting the image file paths. We'll "
-"look at this in a bit."
+#: C/toolbar_builder.vala.page:50(media) C/toolbar_builder.py.page:66(media)
+msgid "Screenshot of Common tab"
 msgstr ""
-"LiÃa 12: aquà chÃmase à funciÃn para obter as rutas das imaxes. Isto verase "
-"en breve."
 
-#: C/photo-wall.c.page:169(p)
+#: C/toolbar_builder.vala.page:55(p) C/toolbar_builder.py.page:71(p)
 msgid ""
-"Lines 14â26: This is where we set up the <code>ClutterActor</code>s, load "
-"the images and place them into their spot in the image wall. We will look at "
-"this in detail in the next section."
+"Right click on the toolbar in the top right and select <gui>Edit</gui>. The "
+"<gui>Tool Bar Editor</gui> window will appear."
 msgstr ""
-"LiÃa 14-26: aquà à onde se configuran os <code>ClutterActor</code>, cÃrganse "
-"as imaxes e colÃcanse no seu sitio no mural de imaxes. Isto verase con mÃis "
-"detalle na seguinte secciÃn."
 
-#: C/photo-wall.c.page:170(p)
+#: C/toolbar_builder.vala.page:56(media) C/toolbar_builder.py.page:72(media)
+msgid "Screenshot of where to right click to edit toolbar."
+msgstr ""
+"Captura de pantalla onde facer clic dereito para editar a barra de "
+"ferramentas."
+
+#: C/toolbar_builder.vala.page:61(p) C/toolbar_builder.py.page:77(p)
 msgid ""
-"Line 29: Show the stage and <em>all its children</em>, meaning our images."
+"We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave "
+"Fullscreen. First, we will add the New ToolButton."
 msgstr ""
-"LiÃa 29: mostra o escenario e <em>todos os seus fillos</em>, Ã dicir, as "
-"imaxes."
 
-#: C/photo-wall.c.page:171(p)
-msgid "Line 32: Start the Clutter main loop."
-msgstr "LinÌa 32: inicia o bucle principal de Clutter."
+#: C/toolbar_builder.vala.page:64(p) C/toolbar_builder.py.page:80(p)
+msgid "Under <gui>Hierarchy</gui> tab, click <gui>Add</gui>."
+msgstr "Baixo a lapela <gui>XerarquÃa</gui>, prema <gui>Engadir</gui>."
 
-#: C/photo-wall.c.page:176(title)
-msgid "Setting up our image actors"
-msgstr "Configurar os nosos actores de imaxe"
+#: C/toolbar_builder.vala.page:65(p) C/toolbar_builder.py.page:81(p)
+msgid "Change the name of the ToolItem to <input>new_button</input>."
+msgstr "Cambie o nome do TollItem a <input>new_button</input>."
 
-#: C/photo-wall.c.page:177(p)
+#: C/toolbar_builder.vala.page:66(p) C/toolbar_builder.py.page:82(p)
 msgid ""
-"In Clutter, an actor is the most basic visual element. Basically, everything "
-"you see is an actor."
+"Scroll down and set <gui>Is important</gui> to <gui>Yes</gui>. This will "
+"cause the label of the ToolButton to be shown, when you view the toolbar."
+msgstr ""
+
+#: C/toolbar_builder.vala.page:67(p) C/toolbar_builder.py.page:83(p)
+msgid "Enter the <gui>action name</gui>: <input>app.new</input>."
+msgstr ""
+
+#: C/toolbar_builder.vala.page:68(p) C/toolbar_builder.py.page:84(p)
+msgid "Change the <gui>Label</gui> to <input>New</input>."
 msgstr ""
-"En Clutter, un actor eÌ o elemento visual maÌis baÌsico. Basicamente, todo o "
-"que ve eÌ un actor."
 
-#: C/photo-wall.c.page:178(p)
+#: C/toolbar_builder.vala.page:69(p) C/toolbar_builder.py.page:85(p)
 msgid ""
-"In this section, we are going to take a closer look at the loop used for "
-"setting up the <code>ClutterActor</code>s that will display our images."
+"Select the <gui>New</gui> Stock Id from the drop down menu, or type "
+"<input>gtk-new</input>."
 msgstr ""
-"Nesta seccioÌn, imos botar unha ollada maÌis polo miuÌdo ao buÌcle usado para "
-"configurar os <code>ClutterActor</code>s que mostraraÌn as nosas imaxes."
 
-#: C/photo-wall.c.page:196(p)
+#: C/toolbar_builder.vala.page:71(p) C/toolbar_builder.py.page:87(p)
 msgid ""
-"Line 5: Here we want to get the path at the <var>n</var>th location in the "
-"<code>GSList</code> that is holding our image path names. The <var>n</var>th "
-"position is calculated based on <code>row</code> and <code>col</code>. The "
-"return value is a pointer to a <code>GSList</code> which is just a node in "
-"the list. We will use this to get the actual path in the next line. The "
-"first parameter is a pointer to the head of the list."
+"Repeat the above steps for the remaining ToolButtons, with the following "
+"properties:"
 msgstr ""
-"LiÃa 5: aquà quÃrese obter a ruta à localizaciÃn <var>n</var>-Ãsima na "
-"<code>GSList</code> que contÃn os nomes das rutas das imaxes. A <var>n</var>-"
-"Ãsima posiciÃn calcÃlase baseÃndose en <code>row</code> e <code>col</code>. "
-"O valor de retorno à un punteiro a <code>GSList</code> que à simplemente un "
-"nodo na lista. Isto usarase para obter a ruta actual na seguinte liÃa. O "
-"primeiro parÃmetro à un punteiro à cabeceira da lista."
 
-#: C/photo-wall.c.page:198(p)
+#: C/toolbar_builder.vala.page:77(p) C/toolbar_builder.py.page:93(p)
+#: C/helloWorld.js.page:139(title)
+msgid "Name"
+msgstr "nome"
+
+#: C/toolbar_builder.vala.page:78(p) C/toolbar_builder.py.page:94(p)
+msgid "Is important"
+msgstr "Ã importante"
+
+#: C/toolbar_builder.vala.page:79(p) C/toolbar_builder.py.page:95(p)
+msgid "action name"
+msgstr "nome da acciÃn"
+
+#: C/toolbar_builder.vala.page:80(p) C/toolbar_builder.py.page:96(p)
+#: C/label.vala.page:20(title) C/label.py.page:26(title)
+#: C/label.js.page:20(title) C/label.c.page:21(title)
+#, fuzzy
+msgid "Label"
+msgstr "Etiqueta"
+
+#: C/toolbar_builder.vala.page:81(p) C/toolbar_builder.py.page:97(p)
+msgid "Stock Id"
+msgstr "ID de inventario"
+
+#: C/toolbar_builder.vala.page:86(p) C/toolbar_builder.py.page:102(p)
+msgid "open_button"
+msgstr "open_button"
+
+#: C/toolbar_builder.vala.page:87(p) C/toolbar_builder.vala.page:94(p)
+#: C/toolbar_builder.vala.page:101(p) C/toolbar_builder.vala.page:108(p)
+#: C/toolbar_builder.py.page:103(p) C/toolbar_builder.py.page:110(p)
+#: C/toolbar_builder.py.page:117(p) C/toolbar_builder.py.page:124(p)
+msgid "Yes"
+msgstr "Si"
+
+#: C/toolbar_builder.vala.page:88(p) C/toolbar_builder.py.page:104(p)
+msgid "app.open"
+msgstr "app.open"
+
+#: C/toolbar_builder.vala.page:89(p) C/toolbar_builder.py.page:105(p)
+#| msgid "OpenSuSE"
+msgid "Open"
+msgstr "Open"
+
+#: C/toolbar_builder.vala.page:90(p) C/toolbar_builder.py.page:106(p)
+msgid "gtk-open"
+msgstr "gtk-open"
+
+#: C/toolbar_builder.vala.page:93(p) C/toolbar_builder.py.page:109(p)
+msgid "undo_button"
+msgstr "undo_button"
+
+#: C/toolbar_builder.vala.page:95(p) C/toolbar_builder.py.page:111(p)
+msgid "win.undo"
+msgstr "win.undo"
+
+#: C/toolbar_builder.vala.page:96(p) C/toolbar_builder.py.page:112(p)
+msgid "Undo"
+msgstr "Desfacer"
+
+#: C/toolbar_builder.vala.page:97(p) C/toolbar_builder.py.page:113(p)
+msgid "gtk-undo"
+msgstr "gtk-undo"
+
+#: C/toolbar_builder.vala.page:100(p) C/toolbar_builder.py.page:116(p)
+msgid "fullscreen_button"
+msgstr "fullscreen_button"
+
+#: C/toolbar_builder.vala.page:102(p) C/toolbar_builder.vala.page:109(p)
+#: C/toolbar_builder.py.page:118(p) C/toolbar_builder.py.page:125(p)
+msgid "win.fullscreen"
+msgstr "win.fullscreen"
+
+#: C/toolbar_builder.vala.page:103(p) C/toolbar_builder.py.page:119(p)
+msgid "Fullscreen"
+msgstr "Pantalla completa"
+
+#: C/toolbar_builder.vala.page:104(p) C/toolbar_builder.py.page:120(p)
+msgid "gtk-fullscreen"
+msgstr "gtk-fullscreen"
+
+#: C/toolbar_builder.vala.page:107(p) C/toolbar_builder.py.page:123(p)
+msgid "leave_fullscreen_button"
+msgstr "leave_fullscreen_button"
+
+#: C/toolbar_builder.vala.page:110(p) C/toolbar_builder.py.page:126(p)
+msgid "Leave Fullscreen"
+msgstr "SaÃr do modo de pantalla completa"
+
+#: C/toolbar_builder.vala.page:111(p) C/toolbar_builder.py.page:127(p)
+msgid "gtk-leave-fullscreen"
+msgstr "gtk-leave-fullscreen"
+
+#: C/toolbar_builder.vala.page:120(p) C/toolbar_builder.py.page:136(p)
+msgid "Close the <gui>Tool Bar Editor</gui>."
+msgstr "Pechar o <gui>Editor de barra de ferramentas</gui>."
+
+#: C/toolbar_builder.vala.page:123(p)
 msgid ""
-"Line 6: This is where we actually create the <code>ClutterActor</code> and "
-"place the image into the actor. The first argument is the path which we "
-"access through our <code>GSList</code> node. The second argument is for "
-"error reporting but we are ignoring that to keep things short."
+"When our program will first start, we don't want the <gui>Leave Fullscreen</"
+"gui> ToolButton to be visible, since the application will not be in "
+"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
+"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
+"appear in the interface designer, but will behave correctly when the file is "
+"loaded into your program code."
 msgstr ""
-"LiÃa 6: aquà à onde actualmente se crea o <code>ClutterActor</code> e "
-"localÃzase a imaxe no actor. O primeiro argumento à a ruta coa que se "
-"acceder ao nodo da <code>GSList</code>. O seguindo argumento à para informar "
-"dun error, pero ignÃrase para simplificar."
 
-#: C/photo-wall.c.page:200(p)
-msgid "Line 7: We'll look at this function in a later section."
-msgstr "LiÃa 7: esta funciÃn verase nunha secciÃn posterior."
+#: C/toolbar_builder.vala.page:124(media) C/toolbar_builder.py.page:140(media)
+msgid "Setting the visible property to No"
+msgstr "Estabeleza a propiedade visible a Non"
 
-#: C/photo-wall.c.page:202(p)
+#: C/toolbar_builder.vala.page:129(p) C/toolbar_builder.py.page:145(p)
+msgid "Save your work, and close Glade."
+msgstr "Garde o seu traballo e saia de Glade."
+
+#: C/toolbar_builder.vala.page:132(p) C/toolbar_builder.py.page:148(p)
 msgid ""
-"Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
-"container. It also assumes ownership of the <code>ClutterActor</code> which "
-"is something you'll want to look into as you get deeper into GNOME "
-"development. See the <link href=\"http://library.gnome.org/devel/gobject/";
-"stable/gobject-memory.html\"><code>GObject</code> documentation</link> for "
-"the gory details."
+"The XML file created by Glade is shown below. This is the description of the "
+"toolbar. At the time of this writing, the option to add the class Gtk."
+"STYLE_CLASS_PRIMARY_TOOLBAR in the Glade Interface did not exist. We can "
+"manually add this to the XML file. To do this, add the following XML code at "
+"line 9 of <file>toolbar_builder.ui</file>:"
 msgstr ""
-"LiÃa 8: isto engade o <code>ClutterActor</code> ao escenario, que à un "
-"contedor. Asume o propietario do <code>ClutterActor</code>, que à algo que "
-"quererà cando profundice no desenvolvemento de GNOME. Para obter mÃis "
-"detalles, consulte a <link href=\"http://library.gnome.org/devel/gobject/";
-"stable/gobject-memory.html\">documentaciÃn de <code>GObject</code></link>."
 
-#: C/photo-wall.c.page:204(p)
+#: C/toolbar_builder.vala.page:138(p) C/toolbar_builder.py.page:154(p)
 msgid ""
-"Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
-"that we can later iterate over the <code>ClutterActor</code>s."
+"If you do not add this, the program will still work fine. The resulting "
+"toolbar will however look slightly different then the screenshot at the top "
+"of this page."
 msgstr ""
-"LiÃa 9: isto engade o <code>ClutterActor</code> a unha <code>GSList</code> "
-"que logo se poderà iterar sobre os <code>ClutterActor</code>."
 
-#: C/photo-wall.c.page:205(p)
+#: C/toolbar_builder.vala.page:143(p) C/toolbar_builder.py.page:164(p)
 msgid ""
-"Interesting to note is that we want to prepend the <code>ClutterActor</"
-"code>s rather than append so that we avoid traversing the list upon each "
-"insertion. You will often see <code>g_slist_prepend</code> followed by "
-"<code>g_slist_reverse</code> because it faster than inserting many objects "
-"at the end of the list."
+"We now create the code below, which adds the toolbar from the file we just "
+"created."
 msgstr ""
-"Ã interesante ter en conta que prefÃrese antepoÃer os <code>ClutterActor</"
-"code> no lugar de anexalos, o que evita atravesar a lista en cada inserciÃn. "
-"A miÃdo verà <code>g_slist_prepend</code> seguido de <code>g_slist_reverse</"
-"code>, xa que à mÃis rÃpido que inserir varios obxectos ao final da lista."
 
-#: C/photo-wall.c.page:211(title)
-msgid "Loading the images"
-msgstr "Cargar as imaxes"
+#: C/toolbar_builder.vala.page:150(link) C/toolbar.vala.page:33(link)
+#: C/toolbar.js.page:31(link)
+msgid "Gtk.Toolbar"
+msgstr "Gtk.Toolbar"
 
-#: C/photo-wall.c.page:212(p)
-msgid ""
-"Let's take a short break from Clutter to see how we can get the file names "
-"from our image directory."
+#: C/toolbar_builder.vala.page:151(link) C/toolbar.vala.page:34(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.Toolbutton"
+msgstr "Gtk.Toolbutton"
+
+#: C/toolbar_builder.vala.page:152(link) C/toolbar.vala.page:35(link)
+msgid "Gtk.Stock"
+msgstr "Gtk.Stock"
+
+#: C/toolbar_builder.py.page:7(title)
+msgid "Toolbar created using Glade (Python)"
 msgstr ""
-"Botemos unha pequena ollada a Clutter para ver como obter os nomes dos "
-"ficheiros desde o noso cartafol de imaxes."
 
-#: C/photo-wall.c.page:239(p)
+#: C/toolbar_builder.py.page:26(name) C/textview.py.page:14(name)
+#: C/strings.py.page:14(name) C/signals-callbacks.py.page:14(name)
+#: C/properties.py.page:14(name) C/model-view-controller.py.page:14(name)
+#: C/label.py.page:18(name) C/entry.py.page:18(name)
+msgid "Sebastian PÃlsterl"
+msgstr "Sebastian PÃlsterl"
+
+#: C/toolbar_builder.py.page:27(email) C/textview.py.page:15(email)
+#: C/strings.py.page:15(email) C/signals-callbacks.py.page:15(email)
+#: C/properties.py.page:15(email) C/model-view-controller.py.page:15(email)
+#: C/label.py.page:19(email) C/entry.py.page:19(email)
+msgid "sebp k-d-w org"
+msgstr "sebp k-d-w org"
+
+#: C/toolbar_builder.py.page:31(desc) C/toolbar.py.page:18(desc)
+#, fuzzy
+#| msgid "A button which can be connected to other widgets"
+msgid "A bar of buttons and other widgets"
+msgstr "Un botÃn que pode conectarse a outros widgets"
+
+#: C/toolbar_builder.py.page:37(p)
 msgid ""
-"Lines 5 and 12: This opens our directory or, if an error occured, returns "
-"after printing an error message."
+"This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade "
+"to create the toolbar in an XML .ui file."
 msgstr ""
-"LinÌas 5 e 12: Isto abre o noso cartafol ou, se se produce un erro, devolve "
-"despois de imprimir unha mensaxe de erro."
 
-#: C/photo-wall.c.page:240(p)
+#: C/toolbar_builder.py.page:42(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the toolbar with Glade"
+msgstr "Crear a interface de usuario"
+
+#: C/toolbar_builder.py.page:139(p)
 msgid ""
-"Lines 14â23: The first line gets another file name from the <code>GDir</"
-"code> we opened earlier. If there was an image file (which we check by "
-"looking at its extension, \".png\" or \".jpg\") in the directory we proceed "
-"to prepend the image directory path to the filename and prepend that to the "
-"list we set up earlier. Lastly we attempt to get the next path name and "
-"reenter the loop if another file was found."
+"When our program will first start, we do not want the <gui>Leave Fullscreen</"
+"gui> ToolButton to be visible, since the application will not be in "
+"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
+"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
+"appear in the interface designer, but will behave correctly when the file is "
+"loaded into your program code. Note that the method <code>show_all()</code> "
+"would override this setting - so in the code we have to use <code>show()</"
+"code> separately on all the elements."
 msgstr ""
-"LiÃas 14â23: la primeira liÃa obtÃn outro nome de ficheiro do <code>GDir</"
-"code> aberto anteriormente. Se hai un ficheiro de imaxe (comprÃbase mirando "
-"se a extensiÃn à Â.png o Â.jpgÂ) no cartafol, procÃdese a antepoÃer a ruta "
-"do cartafol da imaxe ao nome do ficheiro e anteponse na lista creada "
-"anteriormente. Por Ãltimo, intÃntase obter a seguinte ruta e vÃlvese entrar "
-"no bucle se se atopa outro ficheiro."
 
-#: C/photo-wall.c.page:245(title)
-msgid "Set up the actors"
-msgstr "Configurar os actores"
+#: C/toolbar_builder.py.page:170(title)
+msgid "Useful methods for Gtk.Builder"
+msgstr ""
 
-#: C/photo-wall.c.page:246(p)
+#: C/toolbar_builder.py.page:171(p)
 msgid ""
-"We now take a look at the sizing and positioning of <code>ClutterActor</"
-"code>s and also readying the <code>ClutterActor</code> for user interaction."
+"For the useful methods for a Toolbar widget, see <link xref=\"toolbar.py\"/>"
 msgstr ""
-"Vote unha ollada ao tamaÃo e ao posicionamento dos <code>ClutterActor</code> "
-"e a como se deixa listo o <code>ClutterActor</code> para a interacciÃn do "
-"usuario."
 
-#: C/photo-wall.c.page:265(p)
-msgid ""
-"Line 7: Setting an actor reactive means that it reacts to events, such as "
-"<code>button-press-event</code> in our case. For Photo Wall, all "
-"<code>ClutterActor</code>s in the wall should initially be reactive."
+#: C/toolbar_builder.py.page:173(p)
+msgid "Gtk.Builder builds an interface from an XML UI definition."
 msgstr ""
-"LiÃa 7: configurar un actor como Âreactivo significa que reacciona aos "
-"eventos tales como <code>button-press-event</code> no noso caso. Para o "
-"mural de fotos, todos os <code>ClutterActor</code> do mural deben ser "
-"inicialmente reactivos."
 
-#: C/photo-wall.c.page:268(p)
+#: C/toolbar_builder.py.page:176(p)
 msgid ""
-"Line 9â12: Now we connect the <code>button-press-event</code> to the "
-"<code>actor_clicked_cb</code> callback which we will look at next."
+"<code>add_from_file(filename)</code> loads and parses the given file and "
+"merges it with the current contents of the Gtk.Builder."
 msgstr ""
-"LiÃas 9-12: agora conÃctase o evento <code>button-press-evento</code> Ã "
-"chamada <code>actor_clicked_cb</code> que veremos mÃis adiante."
 
-#: C/photo-wall.c.page:271(p)
-msgid "At this point we've got a wall of images that are ready to be viewed."
+#: C/toolbar_builder.py.page:177(p)
+msgid ""
+"<code>add_from_string(string)</code> parses the given string and merges it "
+"with the current contents of the Gtk.Builder."
 msgstr ""
-"Neste punto obteremos un muro de imaxes que estaÌn listas para ser mostradas."
-
-#: C/photo-wall.c.page:275(title)
-msgid "Reacting to the clicks"
-msgstr "Reaccionar aos clics"
 
-#: C/photo-wall.c.page:320(p)
+#: C/toolbar_builder.py.page:178(p)
 msgid ""
-"Lines 1â4: We have to make sure our callback function matches the signature "
-"required for the <code>button_clicked_event</code> signal. For our example, "
-"we will only use the first argument, the <code>ClutterActor</code> that is "
-"actually clicked."
+"<code>add_objects_from_file(filename, object_ids)</code> is the same as "
+"<code>add_from_file()</code>, but it loads only the objects with the ids "
+"given in the <code>object_id</code>s list."
 msgstr ""
 
-#: C/photo-wall.c.page:322(p)
+#: C/toolbar_builder.py.page:179(p)
 msgid ""
-"A few words on the arguments we are not using in this example. The "
-"<code>ClutterEvent</code> is different depending on what event is being "
-"handled. For example, a key event produces a <code>ClutterKeyEvent</code> "
-"from which you can get the key being pressed among other information. For "
-"mouse click events you get a <code>ClutterButtonEvent</code> from which you "
-"can get the <code>x</code> and <code>y</code> values. See the Clutter "
-"documentation for other <code>ClutterEvent</code> types."
+"<code>add_objects_from_string(filename, object_ids)</code> is the same as "
+"<code>add_from_string()</code>, but it loads only the objects with the ids "
+"given in the <code>object_id</code>s list."
 msgstr ""
 
-#: C/photo-wall.c.page:323(p)
+#: C/toolbar_builder.py.page:180(p)
 msgid ""
-"The <code>user_data</code> is what one uses to pass data into the the "
-"function. A pointer to any data type can be passed in. If you need multiple "
-"data to be passed into the callback, you can place the data into a struct "
-"and pass its address in."
+"<code>get_object(object_id)</code> retrieves the widget with the id "
+"<code>object_id</code> from the loaded objects in the builder."
+msgstr ""
+
+#: C/toolbar_builder.py.page:181(p)
+msgid "<code>get_objects()</code> returns all loaded objects."
 msgstr ""
 
-#: C/photo-wall.c.page:327(p)
+#: C/toolbar_builder.py.page:182(p)
 msgid ""
-"Line 7: We set up a static flag to track which state we are in: wall mode or "
-"focus mode. We start out in wall mode so no image has focus. Thus, we set "
-"the flag to <code>FALSE</code> initially."
+"<code>connect_signals(handler_object)</code> connects the signals to the "
+"methods given in the <code>handler_object</code>. This can be any object "
+"which contains keys or attributes that are called like the signal handler "
+"names given in the interface description, e.g. a class or a dict."
+msgstr ""
+
+#: C/toolbar_builder.py.page:193(link) C/togglebutton.c.page:39(link)
+#: C/switch.py.page:50(link) C/switch.c.page:36(link)
+#: C/statusbar.c.page:39(link) C/spinbutton.c.page:39(link)
+#: C/separator.py.page:39(link) C/radiobutton.py.page:52(link)
+#: C/radiobutton.c.page:36(link) C/grid.py.page:59(link)
+#: C/grid.c.page:35(link) C/buttonbox.py.page:51(link)
+msgid "GtkGrid"
+msgstr "GtkGrid"
+
+#: C/toolbar_builder.py.page:194(link) C/menubar.py.page:184(link)
+#: C/filechooserdialog.py.page:79(link)
+msgid "GtkBuilder"
+msgstr "GtkBuilder"
+
+#: C/toolbar_builder.py.page:196(link) C/toolbar.py.page:58(link)
+#| msgid "Program Structure"
+msgid "Event Structures"
+msgstr "Estrutura de eventos"
+
+#: C/toolbar_builder.py.page:197(link)
+msgid "The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder"
 msgstr ""
 
-#: C/photo-wall.c.page:328(p)
+#: C/toolbar.vala.page:7(title)
+msgid "Toolbar (Vala)"
+msgstr "Barra de ferramentas (Vala)"
+
+#: C/toolbar.vala.page:21(title) C/toolbar.py.page:21(title)
+#: C/toolbar.js.page:20(title)
+#| msgid "Toolbar widget"
+msgid "Toolbar"
+msgstr "Barra de ferramentas"
+
+#: C/toolbar.vala.page:24(p) C/toolbar.js.page:22(p)
 msgid ""
-"Line 9: This line of code runs a custom function, "
-"<code>foreach_set_focus_state</code>, for each element in our "
-"<code>actor_list</code>, passing it the address to the <code>is_focused</"
-"code> flag. We'll see the definition of the <code>foreach_set_focus_state</"
-"code> function in the next section."
+"Toolbar can contain either text or stock icons. In this sample we use stock "
+"icons. This example has fullscreen functionality."
 msgstr ""
 
-#: C/photo-wall.c.page:329(p)
+#: C/toolbar.vala.page:25(p) C/toolbar.js.page:23(p)
 msgid ""
-"Lines 13â19: Reaching this code means that one image currently has focus and "
-"we want to return to wall mode. The <code>clutter_actor_animate</code> "
-"function is used to animate a <code>ClutterActor</code>'s property or "
-"properties from the current state(s) to the specified state(s). The "
-"arguments are as follows:"
+"This example uses SimpleActions (window and app). App actions can easily be "
+"added the the app menu."
 msgstr ""
 
-#: C/photo-wall.c.page:331(p)
-msgid "The address of the <code>ClutterActor</code> to animate"
-msgstr "O enderezo do <code>ClutterActor</code> a animar"
+#: C/toolbar.py.page:7(title)
+#| msgid "Toolbar widget"
+msgid "Toolbar (Python)"
+msgstr "Barra de ferramentas (Python)"
 
-#: C/photo-wall.c.page:332(p)
-msgid ""
-"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
-"we have a constant speed for animation."
+#: C/toolbar.py.page:24(p)
+msgid "An example of toolbar with buttons (from stock icons)."
 msgstr ""
 
-#: C/photo-wall.c.page:333(p)
+#: C/toolbar.py.page:35(title)
+#, fuzzy
+#| msgid "Menu, combo box and toolbar widgets"
+msgid "Useful methods for a Toolbar widget"
+msgstr "Widgets de menÃ, caixa combinada e barra de ferramentas"
+
+#: C/toolbar.py.page:38(p)
 msgid ""
-"The duration of the animation in milliseconds. I've chosen 500 ms for this "
-"example."
+"Use <code>insert(tool_item, position)</code> to insert the <code>tool_item</"
+"code> at <code>position</code>. If <code>position</code> is negative, the "
+"item is appended at the end of the toolbar."
 msgstr ""
 
-#: C/photo-wall.c.page:334(p)
+#: C/toolbar.py.page:39(p)
 msgid ""
-"The remaining arguments are property/value pairs. Here we want to set the "
-"<code>x</code> value to the starting <code>x</code> value this "
-"<code>ClutterActor</code> was at before being brought into focus."
+"<code>get_item_index(tool_item)</code> retrieves the position of "
+"<code>tool_item</code> on the toolbar."
 msgstr ""
 
-#: C/photo-wall.c.page:335(p)
+#: C/toolbar.py.page:40(p)
 msgid ""
-"The last argument must always be <code>NULL</code> to indicate that there "
-"are no more properties to be set."
+"<code>get_n_items()</code> returns the number of items on the toolbar; "
+"<code>get_nth_item(position)</code> returns the item in position "
+"<code>position</code>."
 msgstr ""
 
-#: C/photo-wall.c.page:337(p)
+#: C/toolbar.py.page:41(p)
 msgid ""
-"The <code>depth</code> property needs a little more explaining. We need to "
-"raise the focused image so that it doesn't slide behind other "
-"<code>ClutterActor</code>s. In this section we are returning it to the same "
-"depth as the others on the wall."
+"If the toolbar does not have room for all the menu items, and "
+"<code>set_show_arrow(True)</code>, the items that do not have room are shown "
+"through an overflow menu."
 msgstr ""
 
-#: C/photo-wall.c.page:338(p)
+#: C/toolbar.py.page:42(p)
 msgid ""
-"Depth also determines which <code>ClutterActor</code>s receive events. A "
-"<code>ClutterActor</code> with a higher depth value receives the click "
-"events and can choose whether the event gets sent to <code>ClutterActor</"
-"code>s under it. We'll see how that works in a few steps."
+"<code>set_icon_size(icon_size)</code> sets the size of icons in the toolbar; "
+"<code>icon_size</code> can be one of <code>Gtk.IconSize.INVALID, Gtk."
+"IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk."
+"IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize.DIALOG</code>. This should "
+"be used only for special-purpose toolbars, normal application toolbars "
+"should respect user preferences for the size of icons. <code>unset_icon_size"
+"()</code> unsets the preferences set with <code>set_icon_size(icon_size)</"
+"code>, so that user preferences will be used to determine the icon size."
 msgstr ""
 
-#: C/photo-wall.c.page:340(p)
+#: C/toolbar.py.page:43(p)
 msgid ""
-"Line 24: Reaching this line of code means we are currently in the wall state "
-"and are about to give a <code>ClutterActor</code> focus. Here we save the "
-"starting position so that we can return to it later."
+"<code>set_style(style)</code>, where <code>style</code> is one of <code>Gtk."
+"ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, Gtk."
+"ToolbarStyle.BOTH_HORIZ</code>, sets if the toolbar shows only icons, only "
+"text, or both (vertically stacked or alongside each other). To let user "
+"preferences determine the toolbar style, and unset a toolbar style so set, "
+"use <code>unset_style()</code>."
+msgstr ""
+
+#: C/toolbar.py.page:53(link)
+#| msgid "Gtk.ButtonsType"
+msgid "GtkToolButton"
+msgstr "GtkToolButton"
+
+#: C/toolbar.py.page:54(link)
+msgid "GtkToolItem"
+msgstr "GtkToolItem"
+
+#: C/toolbar.py.page:56(link)
+#| msgid "Gtk.Application"
+msgid "GtkActionable"
+msgstr "GtkActionable"
+
+#: C/toolbar.js.page:7(title)
+#| msgid "JavaScript"
+msgid "Toolbar (JavaScript)"
+msgstr "Barra de ferramentas (JavaScript)"
+
+#: C/toolbar.js.page:17(desc)
+#| msgid "Autotools"
+msgid "A bar of tools"
+msgstr "Unha barra de ferramentas"
+
+#: C/toolbar.js.page:32(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.ToolButton"
+msgstr "Gtk.ToolButton"
+
+#: C/toolbar.js.page:33(link)
+msgid "Gtk Stock items"
+msgstr "Elementos do inventario de Gtk"
+
+#: C/toolbar.js.page:34(link)
+msgid "Gdk.WindowState"
+msgstr "Gdk.WindowState"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/togglebutton.vala.page:24(None) C/togglebutton.py.page:24(None)
+#: C/togglebutton.js.page:21(None) C/togglebutton.c.page:26(None)
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/togglebutton.png'; md5=791e062613d4f9bd5936390b0aa18448"
+msgstr "@@image: 'media/togglebutton.png'; md5=791e062613d4f9bd5936390b0aa18448"
+
+#: C/togglebutton.vala.page:7(title)
+msgid "ToggleButton (Vala)"
+msgstr "ToggleButton (Vala)"
+
+#: C/togglebutton.vala.page:20(desc) C/togglebutton.py.page:20(desc)
+#: C/togglebutton.c.page:21(desc)
+msgid "A button which retains state"
+msgstr "Un botÃn que mantÃn o seu estado"
+
+#: C/togglebutton.vala.page:23(title) C/togglebutton.py.page:23(title)
+#: C/togglebutton.js.page:20(title) C/togglebutton.c.page:24(title)
+#| msgid "Button"
+msgid "ToggleButton"
+msgstr "ToggleButton"
+
+#: C/togglebutton.vala.page:25(p) C/togglebutton.py.page:25(p)
+#: C/togglebutton.c.page:27(p)
+msgid "When this ToggleButton is in an active state, the spinner spins."
 msgstr ""
 
-#: C/photo-wall.c.page:341(p)
+#: C/togglebutton.vala.page:32(link) C/togglebutton.js.page:158(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.ToggleButton"
+msgstr "Gtk.ToggleButton"
+
+#: C/togglebutton.py.page:7(title)
+msgid "ToggleButton (Python)"
+msgstr "ToggleButton (Python)"
+
+#: C/togglebutton.py.page:37(title)
+msgid "Useful methods for a ToggleButton widget"
+msgstr "MÃtodos Ãtiles para o widget ToggleButton"
+
+#: C/togglebutton.py.page:38(p) C/radiobutton.py.page:37(p)
+#: C/messagedialog.py.page:36(p) C/fontchooserwidget.py.page:34(p)
+#: C/dialog.py.page:36(p) C/button.py.page:34(p) C/aboutdialog.py.page:36(p)
 msgid ""
-"Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
-"property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
-"events. In this focused state the only <code>ClutterActor</code> that we "
-"want to receive events will be the <code>ClutterActor</code> being viewed. "
-"Clicking on the <code>ClutterActor</code> will return it to its starting "
-"position."
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>."
 msgstr ""
 
-#: C/photo-wall.c.page:342(p)
+#: C/togglebutton.py.page:45(link) C/checkbutton.py.page:48(link)
+#| msgid "Gtk.ButtonsType"
+msgid "GtkToggleButton"
+msgstr "GtkToggleButton"
+
+#: C/togglebutton.py.page:47(link) C/togglebutton.c.page:37(link)
+#: C/spinner.py.page:40(link) C/spinner.c.page:35(link)
+msgid "GtkSpinner"
+msgstr "GtkSpinner"
+
+#: C/togglebutton.js.page:7(title)
+#| msgid "Classes in JavaScript"
+msgid "ToggleButton (JavaScript)"
+msgstr "ToggleButton (JavaScript)"
+
+#: C/togglebutton.js.page:17(desc)
+msgid "Stays pressed until you click it again"
+msgstr "Mantense premido atà que prema de novo sobre Ãl"
+
+#: C/togglebutton.js.page:22(p)
 msgid ""
-"Lines 27â33: This is similar to the above block of code. Notice that we are "
-"setting the the depth to raise it above the other images."
+"A ToggleButton is like a normal <link xref=\"button.js\">Button,</link> "
+"except that it stays pressed in when you click it. You can use it like an on/"
+"off switch, to control things like the <link xref=\"spinner.js\">Spinner</"
+"link> in this example."
 msgstr ""
 
-#: C/photo-wall.c.page:343(p)
+#: C/togglebutton.js.page:23(p)
 msgid ""
-"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
-"state."
+"A ToggleButton's get_active method returns true if it's pressed in, and "
+"false if it's not. Its set_active method is used if you want to change its "
+"state without needing to click on it. When it changes state from pressed in "
+"to popped out and vice-versa, it sends out the \"toggled\" signal, which you "
+"can connect to a function to do something."
 msgstr ""
 
-#: C/photo-wall.c.page:344(p)
+#: C/togglebutton.js.page:66(p) C/radiobutton.js.page:66(p)
 msgid ""
-"As mentioned previously, the <code>ClutterActor</code>s with higher "
-"<code>depth</code> values receive events but can allow <code>ClutterActor</"
-"code>s below them to also receive events. Returning <code>TRUE</code> will "
-"stop events from being passed down, while <code>FALSE</code> will pass "
-"events down."
+"All the code for this sample goes in the RadioButtonExample 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 ""
 
-#: C/photo-wall.c.page:346(p)
+#: C/togglebutton.js.page:84(title)
+#, fuzzy
+#| msgid "Creating the signal handler"
+msgid "Creating the ToggleButton and other widgets"
+msgstr "Crear o manexador de sinais"
+
+#: C/togglebutton.js.page:90(p)
 msgid ""
-"Remember, however, that to receive events the <code>ClutterActor</code>s "
-"must be set <code>reactive</code>."
+"We want this <link xref=\"spinner.js\">Spinner</link> to expand vertically "
+"and horizontally, to take up as much space as possible inside the window."
 msgstr ""
 
-#: C/photo-wall.c.page:350(p)
+#: C/togglebutton.js.page:98(p)
 msgid ""
-"The following is the convenience function passed to <code>g_slist_foreach</"
-"code>."
+"Creating a ToggleButton is a lot like creating a normal <link xref=\"button."
+"js\">Button.</link> The biggest difference is that you're handling a "
+"\"toggled\" signal instead of a \"clicked\" signal. This code binds the "
+"_onToggle function to that signal, so that it's called whenever our "
+"ToggleButton is toggled."
 msgstr ""
 
-#: C/photo-wall.c.page:363(p)
+#: C/togglebutton.js.page:108(p)
 msgid ""
-"Lines 2â5: The signature of this function requires two <code>gpointer</"
-"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
-"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
-"that we've passed in the previous section. We want to cast these and store "
-"them for easy use."
+"Here we create a simple <link xref=\"grid.js\">Grid</link> to organize "
+"everything in, then attach the Spinner and ToggleButton to it."
 msgstr ""
 
-#: C/photo-wall.c.page:364(p)
+#: C/togglebutton.js.page:118(p)
 msgid ""
-"Line 7: Depending on which boolean value is passed in, the "
-"<code>ClutterActor</code> will be set to respond to events or not."
+"Now we add the Grid to the Window, and tell the Window to show itself and "
+"its child widgets when the application is started."
 msgstr ""
 
-#: C/photo-wall.c.page:369(title) C/image-viewer.vala.page:272(title)
-#: C/image-viewer.cpp.page:204(title) C/image-viewer.c.page:214(title)
-#: C/guitar-tuner.vala.page:246(title) C/guitar-tuner.cpp.page:249(title)
-#: C/guitar-tuner.c.page:249(title)
-msgid "Build and run the application"
-msgstr "ConstruiÌr e executar o aplicativo"
+#: C/togglebutton.js.page:122(title)
+msgid "Making something happen when the ToggleButton is toggled"
+msgstr ""
 
-#: C/photo-wall.c.page:370(p)
+#: C/togglebutton.js.page:136(p)
 msgid ""
-"All of the code should now be ready to go. All you need now is some pictures "
-"to load. By default, the pictures are loaded from a <file>berlin_images</"
-"file> directory. If you want, you can change the <code>#define "
-"IMAGE_DIR_PATH</code> line near the top to refer to your photo directory, or "
-"create a <file>berlin_images</file> directory by clicking "
-"<guiseq><gui>Project</gui><gui>New Directory...</gui></guiseq> and creating "
-"a <file>berlin_images</file> directory as a subdirectory of the <file>photo-"
-"wall</file> directory. Make sure to put at least twelve images in the "
-"directory!"
+"Whenever someone toggles the button, this function checks what its state is "
+"afterwards using get_active and starts or stops the spinner accordingly. We "
+"want it to spin only while the button is pressed in, so if get_active "
+"returns true we start the spinner. Otherwise, we tell it to stop."
 msgstr ""
-"Todo o cÃdigo deberÃa estar listo para executarse. Todo o que necesita son "
-"algunhas imaxes para cargar. De maneira predeterminada, as imaxes cÃrganse "
-"desde o cartafol <file>berlin_images</file>. Se quere, pode cambiar a liÃa "
-"<code>#define IMAGE_DIR_PATH</code> do principio para que faga referencia ao "
-"seu cartafol de fotos, ou crear un cartafol <file>berlin_images</file> "
-"premendo en <guiseq><gui>Proxecto</gui><gui>Cartafol novoâ</gui></guiseq> e "
-"creando un cartafol <file>berlin_images</file> como subcartafol do cartafol "
-"<file>mural-fotos</file>. AsegÃrese de poÃer cando menos doce imaxes no "
-"cartafol."
 
-#: C/photo-wall.c.page:372(p)
+#: C/togglebutton.js.page:143(p) C/radiobutton.js.page:264(p)
 msgid ""
-"When you have done that, click <guiseq><gui>Build</gui><gui>Build Project</"
-"gui></guiseq> to build everything again, then <guiseq><gui>Run</"
-"gui><gui>Execute</gui></guiseq> to start the application."
+"Finally, we create a new instance of the finished RadioButtonExample class, "
+"and set the application running."
 msgstr ""
-"Cando tenÌa que facer iso, prema <guiseq><gui>ConstruiÌr</gui><gui>ConstruiÌr "
-"proxecto</gui></guiseq> para construiÌr todo de novo, logo "
-"<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq> para iniciar o "
-"aplicativo."
 
-#: C/photo-wall.c.page:373(p)
-msgid ""
-"If you haven't already done so, choose the <file>Debug/src/photo-wall</file> "
-"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
-"enjoy!"
-msgstr ""
-"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/photo-wall</"
-"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
-"desfrute!"
+#: C/togglebutton.js.page:156(link) C/textview.js.page:252(link)
+#: C/switch.js.page:269(link) C/spinbutton.js.page:203(link)
+#: C/scale.js.page:212(link) C/radiobutton.js.page:278(link)
+#: C/grid.vala.page:31(link) C/grid.js.page:36(link)
+msgid "Gtk.Grid"
+msgstr "Gtk.Grid"
 
-#: C/photo-wall.c.page:378(p)
-msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"photo-wall/photo-wall.c\">reference code</link>."
-msgstr ""
-"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
-"<link href=\"photo-wall/photo-wall.c\">coÌdigo de referencia</link>."
+#: C/togglebutton.js.page:157(link) C/spinner.vala.page:30(link)
+#: C/spinner.js.page:32(link)
+msgid "Gtk.Spinner"
+msgstr "Gtk.Spinner"
+
+#: C/togglebutton.c.page:7(title)
+msgid "ToggleButton (C)"
+msgstr "ToggleButton (C)"
+
+#: C/togglebutton.c.page:16(name) C/textview.c.page:12(name)
+#: C/switch.c.page:12(name) C/statusbar.c.page:16(name)
+#: C/spinner.c.page:13(name) C/spinbutton.c.page:15(name)
+#: C/scale.c.page:14(name) C/radiobutton.c.page:14(name)
+#: C/progressbar.c.page:13(name) C/messagedialog.c.page:13(name)
+#: C/linkbutton.c.page:12(name) C/label.c.page:13(name)
+#: C/image.c.page:12(name) C/grid.c.page:12(name) C/entry.c.page:12(name)
+#: C/dialog.c.page:14(name) C/button.c.page:14(name)
+#: C/aboutdialog.c.page:14(name)
+msgid "Monica Kochofar"
+msgstr "Monica Kochofar"
+
+#: C/togglebutton.c.page:17(email) C/textview.c.page:13(email)
+#: C/switch.c.page:13(email) C/statusbar.c.page:17(email)
+#: C/spinner.c.page:14(email) C/spinbutton.c.page:16(email)
+#: C/scale.c.page:15(email) C/radiobutton.c.page:15(email)
+#: C/progressbar.c.page:14(email) C/messagedialog.c.page:14(email)
+#: C/linkbutton.c.page:13(email) C/label.c.page:14(email)
+#: C/image.c.page:13(email) C/grid.c.page:13(email) C/entry.c.page:13(email)
+#: C/dialog.c.page:15(email) C/button.c.page:15(email)
+#: C/aboutdialog.c.page:15(email)
+#| msgid "mdhillca gmail com"
+msgid "monicakochofar gmail com"
+msgstr "monicakochofar gmail com"
+
+#: C/togglebutton.c.page:38(link)
+msgid "GtkTogglebutton"
+msgstr "GtkTogglebutton"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/toolbar.js.page:19(None)
-msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
-msgstr "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+#: C/textview.vala.page:26(None) C/textview.py.page:37(None)
+#: C/textview.c.page:26(None)
+#| msgid ""
+#| "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+msgid "@@image: 'media/textview.png'; md5=049e859ed1af2d7c93d8cb5cfd9f7792"
+msgstr "@@image: 'media/textview.png'; md5=049e859ed1af2d7c93d8cb5cfd9f7792"
 
-#: C/toolbar.js.page:14(desc)
-msgid "A toolbar widget which is connected to a Dialog widget"
+#: C/textview.vala.page:7(title)
+msgid "TextView (Vala)"
+msgstr "TextView (Vala)"
+
+#: C/textview.vala.page:17(desc) C/textview.c.page:17(desc)
+msgid "Widget which displays a GtkTextBuffer"
 msgstr ""
 
-#: C/toolbar.js.page:17(title)
-msgid "Toolbar widget"
-msgstr "Widget da barra de ferramentas"
+#: C/textview.vala.page:20(title) C/textview.c.page:20(title)
+#| msgid "TreeView widget"
+msgid "TextView widget"
+msgstr "Widget TextView"
+
+#: C/textview.vala.page:21(p) C/textview.py.page:31(p) C/textview.c.page:21(p)
+msgid "If we press \"enter\", we have a new line."
+msgstr ""
 
-#: C/toolbar.js.page:20(p)
+#: C/textview.vala.page:22(p) C/textview.c.page:22(p)
 msgid ""
-"Toolbar is a widget that may contain either text or stock icons. In this "
-"sample we use stock icons."
+"If we press \"enter\" more times then there are lines in the default sized "
+"window, then a vertical scrollbar appears."
 msgstr ""
 
-#: C/toolbar.js.page:49(p)
+#: C/textview.vala.page:23(p) C/textview.c.page:23(p)
 msgid ""
-"In this sample we use the following widgets: <link href=\"http://www.roojs.";
-"com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>, <link href="
-"\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>Gtk.Grid</"
-"link>, <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"Toolbar.html\">Gtk.Toolbar</link>, <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.ToolButton.html\">Gtk.ToolButton</link>, <link href="
-"\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html\";>Gtk."
-"Dialog</link>."
+"If we write a long sentence, the text will wrap breaking lines between words."
 msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/messagedialog.vala.page:18(None)
-#| msgid ""
-#| "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+#: C/textview.vala.page:24(p)
 msgid ""
-"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+"If we have a loooooooooooooooooooooooooooooooooooong word, a horizontal "
+"scrollbar will appear."
 msgstr ""
-"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 
-#: C/messagedialog.vala.page:14(desc)
-msgid "A message window"
-msgstr "Unha xanela de mensaxe"
+#: C/textview.vala.page:27(p) C/textview.c.page:27(p)
+msgid "This is an example of Gtk.TextView"
+msgstr ""
 
-#: C/messagedialog.vala.page:17(title)
-#| msgid "Message Board"
-msgid "MessageDialog"
-msgstr "MessageDialog"
+#: C/textview.vala.page:34(link) C/textview.js.page:256(link)
+msgid "Gtk.TextBuffer"
+msgstr "Gtk.TextBuffer"
 
-#: C/messagedialog.vala.page:19(p)
-msgid "A modal message dialog which can cause the world to explode."
-msgstr ""
+#: C/textview.vala.page:35(link) C/textview.js.page:257(link)
+msgid "Gtk.TextView"
+msgstr "Gtk.TextView"
 
-#: C/messagedialog.vala.page:57(link)
-msgid "Gtk.ResponseType"
-msgstr "Gtk.ResponseType"
+#: C/textview.vala.page:36(link) C/textview.js.page:255(link)
+#: C/scrolledwindow.vala.page:30(link)
+msgid "Gtk.ScrolledWindow"
+msgstr "Gtk.ScrolledWindow"
 
-#: C/messagedialog.vala.page:58(link)
-msgid "Gtk.MessageDialog"
-msgstr "Gtk.MessageDialog"
+#: C/textview.vala.page:37(link)
+msgid "Gtk.WrapMode"
+msgstr "Gtk.WrapMode"
 
-#: C/messagedialog.vala.page:59(link)
-msgid "Gtk.DialogFlags"
-msgstr "Gtk.DialogFlags"
+#: C/textview.vala.page:38(link) C/scrolledwindow.vala.page:31(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.PolicyType"
+msgstr "Gtk.PolicyType"
 
-#: C/messagedialog.vala.page:60(link)
-msgid "Gtk.MessageType"
-msgstr "Gtk.MessageType"
+#: C/textview.py.page:7(title)
+msgid "TextView (Python)"
+msgstr "TextView (Python)"
 
-#: C/messagedialog.vala.page:61(link)
-msgid "Gtk.ButtonsType"
-msgstr "Gtk.ButtonsType"
+#: C/textview.py.page:25(desc)
+msgid "Widget that displays a GtkTextBuffer"
+msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/message-board.c.page:35(None)
+#: C/textview.py.page:28(title) C/textview.js.page:24(title)
+msgid "TextView"
+msgstr "TextView"
+
+#: C/textview.py.page:30(p)
+msgid "This is an example of Gtk.TextView."
+msgstr ""
+
+#: C/textview.py.page:32(p)
 msgid ""
-"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+"But we can also have a new line if we write a long sentence (the text will "
+"wrap breaking lines between words)."
 msgstr ""
-"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
 
-#: C/message-board.c.page:9(desc)
-msgid "A simple program using WebKitGTK+ and the DOM."
-msgstr "Un programa sinxelo usando WebKitGTK+ e DOM."
+#: C/textview.py.page:33(p)
+msgid "If we have a loooooooooooooooooooooooooooooooooooong"
+msgstr ""
 
-#: C/message-board.c.page:13(name) C/index.page:12(name)
-msgid "Shaun McCance"
-msgstr "Shaun McCance"
+#: C/textview.py.page:34(p)
+msgid "(that was long)"
+msgstr ""
 
-#: C/message-board.c.page:14(email) C/index.page:13(email)
-msgid "shaunm gnome org"
-msgstr "shaunm gnome org"
+#: C/textview.py.page:35(p)
+msgid "word, an horizontal scrollbar will appear."
+msgstr ""
 
-#: C/message-board.c.page:15(years) C/index.page:14(years)
-msgid "2010"
-msgstr "2010"
+#: C/textview.py.page:48(title)
+msgid "Useful methods for a TextView widget"
+msgstr ""
 
-#: C/message-board.c.page:20(title)
-msgid "Message Board"
-msgstr "Taboleiro de mensaxes"
+#: C/textview.py.page:49(p) C/label.py.page:69(p)
+msgid ""
+"An explanation of how to deal with strings and Unicode (and a recap of what "
+"these things are) can be found <link xref=\"strings.py.page\">here</link>."
+msgstr ""
 
-#: C/message-board.c.page:25(p)
-msgid "How to display a web page with WebKit."
-msgstr "Como mostrar unha pÃxina web con WebKit"
+#: C/textview.py.page:50(p)
+msgid ""
+"A <code>Gtk.TextView</code> displays the text stored in a <code>Gtk."
+"TextBuffer</code>. However, most text manipulation is accomplished with "
+"iterators, represented by a <code>Gtk.TextIter</code> - a position between "
+"two characters in the text buffer. Iterators are not valid indefinitely; "
+"whenever the buffer is modified in a way that affects the contents of the "
+"buffer, all outstanding iterators become invalid. Because of this, iterators "
+"canât be used to preserve positions across buffer modifications. To preserve "
+"a position, we use a <code>Gtk.TextMark</code>, that can be set visible with "
+"<code>visible(True)</code>. A text buffer contains two built-in marks; an "
+"\"insert\" mark (the position of the cursor) and the \"selection_bound\" "
+"mark."
+msgstr ""
 
-#: C/message-board.c.page:26(p)
+#: C/textview.py.page:51(p)
+msgid "Methods for a TextView widget:"
+msgstr ""
+
+#: C/textview.py.page:53(p)
 msgid ""
-"How to manipulate the contents of a web page using WebKit's DOM functions."
+"The TextView widget is by default editable. If you prefer otherwise, use "
+"<code>set_editable(False)</code>. If the buffer has no editable text, it "
+"might be a good idea to use <code>set_cursor_visible(False)</code> as well."
 msgstr ""
-"Como manipular os contidos dunha pÃxina web usando as funciÃns de DOM de "
-"WebKit."
 
-#: C/message-board.c.page:29(p)
+#: C/textview.py.page:54(p)
 msgid ""
-"This tutorial assumes you are familiar with the C programming language and "
-"have a basic understanding of GTK+, including how to create and place "
-"widgets and how to connect callback functions to signals. See <link xref="
-"\"image-viewer.c\"/> to learn the basics of GTK+."
+"The justification of the text is set with <code>set_justification(Gtk."
+"Justification.JUSTIFICATION)</code> where <code>JUSTIFICATION</code> is one "
+"of <code>LEFT, RIGHT, CENTER, FILL</code>."
 msgstr ""
-"Este titorial asume que vostede estaÌ familiarizado co linguaxe de "
-"programacioÌn C e ten conÌecementos baÌsicos de GTK+, incluiÌndo como crear e "
-"dispor widgets e como conectar funcioÌns de callback a sinais. Vexa <link "
-"xref=\"image-viewer.c\"/> para aprender o baÌsico de GTK+."
 
-#: C/message-board.c.page:42(p)
+#: C/textview.py.page:55(p)
 msgid ""
-"The GNOME platform includes WebKitGTK+, built on top of the powerful WebKit "
-"HTML framework. WebKit is used throughout GNOME, not just to view web pages "
-"on the Internet, but also to create rich user interfaces that can be easily "
-"styled with CSS."
+"The line wrapping of the text is set with <code>set_wrap_mode(Gtk.WrapMode."
+"WRAP)</code> where <code>WRAP</code> is one of <code>NONE</code> (the text "
+"area is made wider), <code>CHAR</code> (break lines anywhere the cursor can "
+"appear), <code>WORD</code> (break lines between words), <code>WORD_CHAR</"
+"code> (break lines between words, but if that is not enough between "
+"characters)."
+msgstr ""
+
+#: C/textview.py.page:57(p)
+msgid "Methods for a TextBuffer widget:"
 msgstr ""
-"A paltaforma GNOME inclÃe WebKitGTK+, construÃdo sobre o potente marco de "
-"traballo WebKit. WebKitGTK usase en todo GNOME, non sà para ver pÃxinas web "
-"en Internet, senÃn tamÃn para crear interfaces de usuario enriquecidas Ãs "
-"que se poden engadir estilos de forma doada con CSS."
 
-#: C/message-board.c.page:47(p)
+#: C/textview.py.page:59(p)
 msgid ""
-"In this tutorial, you will create a simple message board using WebKit. The "
-"message board will allow you to enter some text and have it added to a list "
-"of messages in HTML. Before you begin, you need to set up a project in "
-"Anjuta."
+"<code>get_insert()</code> returns the <code>Gtk.TextMark</code> that "
+"represents the cursor, that is the insertion point."
 msgstr ""
-"Neste titorial, vostede crearaÌ un taboleiro de mensaxes sinxelo usando "
-"WebKit. O taboleiro de mensaxes permitiralle inserir alguÌn texto e engadilo "
-"a unha lista de mensaxes en HTML. Antes de comezar debe configurar un "
-"proxecto en Anjuta."
 
-#: C/message-board.c.page:53(p)
+#: C/textview.py.page:60(p)
 msgid ""
-"In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
-"guiseq> to open the new project assistant."
+"<code>get_selection_bound()</code> returns the <code>Gtk.TextMark</code> "
+"that represents the selection bound."
 msgstr ""
-"En Anjuta, prema <guiseq><gui>Ficheiro</gui><gui>Novo</gui><gui>Proxecto</"
-"gui></guiseq> para abrir un asistente de novo proxecto."
 
-#: C/message-board.c.page:55(p)
-#, fuzzy
-#| msgid ""
-#| "Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
-#| "<gui>Forward</gui>."
+#: C/textview.py.page:61(p)
 msgid ""
-"Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
-"<gui>Continue</gui>."
+"<code>set_text(\"some text\", length)</code> where <code>length</code> is a "
+"positive integer or <code>-1</code>, sets the content of the buffer as the "
+"first <code>length</code> characters of the <code>\"some text\"</code> text. "
+"If <code>length</code> is omitted or <code>-1</code>, the text is inserted "
+"completely. The content of the buffer, if there is any, is destroyed."
 msgstr ""
-"Seleccione <gui>GTK+ (simple)</gui> na lapela <gui>C</gui> e prema "
-"<gui>Adiante</gui>."
 
-#: C/message-board.c.page:57(p)
-#, fuzzy
-#| msgid ""
-#| "Fill out your details on the <gui>Basic information</gui> page. Use "
-#| "<input>message-board</input> for the project name. Click <gui>Forward</"
-#| "gui>."
+#: C/textview.py.page:62(p)
 msgid ""
-"Fill out your details on the <gui>Basic information</gui> page. Use "
-"<input>message-board</input> for the project name. Click <gui>Continue</gui>."
+"<code>insert(iter, \"some text\", length)</code> where <code>iter</code> is "
+"a text iterator and <code>length</code> is a positive integer or <code>-1</"
+"code>, inserts in the buffer at <code>iter</code> the first <code>length</"
+"code> characters of the <code>\"some text\"</code> text. If <code>length</"
+"code> is omitted or <code>-1</code>, the text is inserted completely."
 msgstr ""
-"Complete os detalles na paÌxina <gui>InformacioÌn baÌsica</gui>. Use "
-"<input>message-board</input> para o nome do proxecto. Prema <gui>Seguinte</"
-"gui>."
 
-#: C/message-board.c.page:60(p)
+#: C/textview.py.page:63(p)
 msgid ""
-"Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
-"tutorial builds the user-interface manually."
+"<code>insert_at_cursor(\"some text\", length)</code> does the same as "
+"<code>insert(iter, \"some text\", length)</code>, with the current cursor "
+"taken as <code>iter</code>."
 msgstr ""
-"Desactive a opcioÌn <gui>Usar GtkBuilder para a interface de usuario</gui> xa "
-"que neste titorial construirase a interface de usuario de forma manual."
 
-#: C/message-board.c.page:63(p)
-#, fuzzy
-#| msgid ""
-#| "You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
-#| "<gui>Project options</gui> page, select <gui>Configure external packages</"
-#| "gui>. Click <gui>Forward</gui>. On the <gui>Configure external packages</"
-#| "gui> page, check <gui>webkitgtk-3.0</gui>."
+#: C/textview.py.page:64(p)
 msgid ""
-"You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
-"<gui>Project options</gui> page, select <gui>Configure external packages</"
-"gui>. Click <gui>Continue</gui>. On the <gui>Configure external packages</"
-"gui> page, check <gui>webkitgtk-3.0</gui>."
+"<code>create_mark(\"mark_name\", iter, left_gravity)</code> where "
+"<code>iter</code> is a <code>Gtk.TextIter</code> and <code>left_gravity</"
+"code> is a boolean, creates a <code>Gtk.TextMark</code> at the position of "
+"<code>iter</code>. If <code>\"mark_name\"</code> is <code>None</code>, the "
+"mark is anonymous; otherwise, the mark can be retrieved by name using "
+"<code>get_mark()</code>. If a mark has left gravity, and text is inserted at "
+"the markâs current location, the mark will be moved to the left of the newly-"
+"inserted text. If <code>left_gravity</code> is omitted, it defaults to "
+"<code>False</code>."
 msgstr ""
-"Debe dicirlle a Anjuta que estaÌ usando WebKitGTK+ neste proxecto. Na paÌxina "
-"de <gui>OpcioÌns do proxecto</gui>, seleccione <gui>Configurar paquetes "
-"externos</gui>. Prema <gui>Seguinte</gui>. Na paÌxina <gui>Configurar "
-"paquetes externos</gui> marque <gui>webkitgtk-3.0</gui>."
 
-#: C/message-board.c.page:69(p)
+#: C/textview.py.page:66(p)
 msgid ""
-"After you finish the new project assistant, open the file <file>src/main.c</"
-"file> from either the <gui>Project</gui> or the <gui>File</gui> tab. Anjuta "
-"will have filled this in with some basic GTK+ code from its templates. Since "
-"you are creating a WebKit project, you first need to include the WebKit "
-"headers. After the line that includes <code>gtk/gtk.h</code>, add the "
-"following line:"
+"To specify that some text in the buffer should have specific formatting, you "
+"must define a tag to hold that formatting information, and then apply that "
+"tag to the region of text using <code>create_tag(\"tag name\", property)</"
+"code> and <code>apply_tag(tag, start_iter, end_iter)</code> as in, for "
+"instance:"
 msgstr ""
 
-#: C/message-board.c.page:76(code)
+#: C/textview.py.page:67(code)
 #, no-wrap
-msgid "#include &lt;webkit/webkit.h&gt;"
-msgstr "#include &lt;webkit/webkit.h&gt;"
-
-#: C/message-board.c.page:78(p)
 msgid ""
-"Verify that everything works by building what you have so far. Click "
-"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
-"<keyseq><key>Shift</key><key>F7</key></keyseq>. The first time you build, "
-"you will be asked for some configure options. Just accept the defaults and "
-"click <gui>Execute</gui>."
+"\n"
+"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
+"textbuffer.apply_tag(tag, start_iter, end_iter)"
 msgstr ""
 
-#: C/message-board.c.page:84(p)
-msgid ""
-"You should now be able to run the program. Click <guiseq><gui>Run</"
-"gui><gui>Execute</gui></guiseq> or just press <key>F3</key>. You should see "
-"an empty window appear."
+#: C/textview.py.page:70(p)
+msgid "The following are some of the common styles applied to text:"
 msgstr ""
-"DeberiÌa poder executar o programa. Prema <guiseq><gui>Executar</"
-"gui><gui>Executar</gui></guiseq> ou prema <key>F3</key>. DeberiÌa aparecer "
-"unha xanela baleira."
 
-#: C/message-board.c.page:90(title)
-msgid "Lay out your window and web view"
-msgstr "Dispor a suÌa xanela e a vista web"
+#: C/textview.py.page:72(p)
+msgid "Background colour (\"background\" property)"
+msgstr ""
 
-#: C/message-board.c.page:92(p)
-msgid ""
-"Now that you can show a window, it's time to start working with WebKit. For "
-"this tutorial, you'll create a text entry and a web view and pack them both "
-"into a window. Find the function <code>create_window</code> and replace it "
-"with the following:"
+#: C/textview.py.page:73(p)
+msgid "Foreground colour (\"foreground\" property)"
 msgstr ""
-"Agora que pode mostrar unha xanela, eÌ hora de comezar o traballo con webkit. "
-"Para este titorial, crearemos unha entrada de texto e unha vista web e "
-"empaquetareÌmolas nunha xanela. Busque a funcioÌn <code>create_window</code> e "
-"substituÌaa co seguinte:"
 
-#: C/message-board.c.page:132(p)
-msgid ""
-"You first create a <code>GtkWindow</code> object and set its title and "
-"default size. You also connect the <code>gtk_main_quit</code> function to "
-"the <code>delete-event</code> signal. The <code>delete-event</code> signal "
-"is emitted when the window is closed. The <code>gtk_main_quit</code> "
-"function is part of GTK, and it quits the application."
+#: C/textview.py.page:74(p)
+msgid "Underline (\"underline\" property)"
 msgstr ""
-"Primeiro cree un obxecto <code>GtkWindow</code> e estabeleza o seu tÃtulo e "
-"o seu tamaÃo predeterminado. TamÃn pode conectar a funciÃn "
-"<code>gtk_main_quit</code> ao sinal <code>delete-event</code>. O sinal "
-"<code>delete-event</code> emÃtese cando se pecha a xanela. A funciÃn "
-"<code>gtk_main_quit</code> Ã parte de GTK+, e sae do aplicativo."
 
-#: C/message-board.c.page:138(p)
-msgid ""
-"You then create a vertical box and add it to the window. A window can only "
-"hold a single child widget, so you need to use a box to add multiple "
-"widgets. The second argument to <code>gtk_box_new</code> sets the amount of "
-"padding (in pixels) between each child, and the next line puts a six-pixel "
-"border around the entire thing."
+#: C/textview.py.page:75(p)
+msgid "Bold (\"weight\" property)"
 msgstr ""
 
-#: C/message-board.c.page:144(p)
-msgid ""
-"You next create a <code>GtkEntry</code> object and pack it into the box. The "
-"third and fourth arguments to <code>gtk_box_pack_start</code> specify that "
-"the entry shouldn't take up any extra space the box has available. The "
-"fourth argument is the amount of padding you want around the entry. In this "
-"case, you set the padding to zero, because you're allowing the box to handle "
-"all the padding."
+#: C/textview.py.page:76(p)
+msgid "Italics (\"style\" property)"
 msgstr ""
 
-#: C/message-board.c.page:151(p)
-msgid ""
-"Before you add a web view, you have to create a scrolled window to put it "
-"inside of. The scrolled window will place scrollbars on the right and bottom "
-"when necessary, and prevent your web view from filling your entire screen. "
-"This time, you pass <code>TRUE</code> and <code>TRUE</code> to "
-"<code>gtk_box_pack_start</code> to allow the scrolled window (and thus, the "
-"web view) to use any extra space available in the box."
+#: C/textview.py.page:77(p)
+msgid "Strikethrough (\"strikethrough\" property)"
+msgstr ""
+
+#: C/textview.py.page:78(p)
+msgid "Justification (\"justification\" property)"
+msgstr ""
+
+#: C/textview.py.page:79(p)
+msgid "Size (\"size\" and \"size-points\" properties)"
+msgstr ""
+
+#: C/textview.py.page:80(p)
+msgid "Text wrapping (\"wrap-mode\" property)"
 msgstr ""
 
-#: C/message-board.c.page:158(p)
+#: C/textview.py.page:82(p)
 msgid ""
-"Finally, you create a <code>WebKitWebView</code> and add it to the scrolled "
-"window. Then load a very basic HTML page into the web view by calling "
-"<code>webkit_web_view_load_string</code> with the following arguments:"
+"You can also delete particular tags later using <code>remove_tag()</code> or "
+"delete all tags in a given region by calling <code>remove_all_tags()</code>."
 msgstr ""
 
-#: C/message-board.c.page:164(code)
-#, no-wrap
-msgid "WEBKIT_WEB_VIEW (view)"
-msgstr "WEBKIT_WEB_VIEW (view)"
+#: C/textview.py.page:84(p)
+msgid "Methods for a TextIter widget"
+msgstr ""
 
-#: C/message-board.c.page:165(p)
+#: C/textview.py.page:86(p)
 msgid ""
-"The view itself. Because <code>view</code> is typed as a <code>GtkWidget*</"
-"code>, you have to use <code>WEBKIT_WEB_VIEW</code> to safely cast the "
-"object."
+"<code>forward_search(needle, flags, limit)</code> searches forward for "
+"<code>needle</code>. The search will not continue past the <code>Gtk."
+"TextIter</code> limit. The <code>flags</code> can be set to one of the "
+"following, or any combination of it by concatenating them with the bitwise-"
+"OR operator <code>|</code>: <code>0</code> (the match must be exact); "
+"<code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (the match may have invisible "
+"text interspersed in needle); <code>Gtk.TextSearchFlags.TEXT_ONLY</code> "
+"(the match may have pixbufs or child widgets mixed inside the matched "
+"range); <code>Gtk.TextSearchFlags.CASE_INSENSITIVE</code> (the text will be "
+"matched regardless of what case it is in). The method returns a tuple "
+"containing a <code>Gtk.TextIter</code> pointing to the start and to the "
+"first character after the match; if no match is found, <code>None</code> is "
+"returned."
 msgstr ""
-"A vista por si mesma. Xa que <code>view</code> Ã de tipo <code>GtkWidget*</"
-"code>, debe usar <code>WEBKIT_WEB_VIEW</code> para converter o tipo de "
-"obxecto con seguranza."
 
-#: C/message-board.c.page:170(code)
-#, no-wrap
-msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
-msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
+#: C/textview.py.page:87(p)
+msgid ""
+"<code>backward_search(needle, flags, limit)</code> does the same as "
+"<code>forward_search()</code>, but moving backwards."
+msgstr ""
 
-#: C/message-board.c.page:171(p)
-msgid "The simplest HTML file you could possibly write."
-msgstr "O ficheiro HTLM mÃis sinxelo que pode escribir."
+#: C/textview.py.page:95(link) C/textview.c.page:38(link)
+#: C/filechooserdialog.py.page:74(link)
+#, fuzzy
+msgid "GtkTextView"
+msgstr "GtkTextView"
 
-#: C/message-board.c.page:174(code)
-#, no-wrap
-msgid "\"text/html\""
-msgstr "\"text/html\""
+#: C/textview.py.page:96(link) C/textview.c.page:37(link)
+#: C/filechooserdialog.py.page:75(link)
+msgid "GtkTextBuffer"
+msgstr "GtkTextBuffer"
+
+#: C/textview.py.page:97(link)
+msgid "GtkTextTag"
+msgstr "GtkTextTag"
 
-#: C/message-board.c.page:175(p)
+#: C/textview.py.page:98(link) C/textview.c.page:39(link)
+#: C/scrolledwindow.py.page:43(link) C/filechooserdialog.py.page:76(link)
+#| msgid "Scrolling"
+msgid "GtkScrolledWindow"
+msgstr "GtkScrolledWindow"
+
+#: C/textview.py.page:99(link) C/scrolledwindow.py.page:44(link)
+#: C/scale.py.page:57(link) C/paned.py.page:41(link)
+msgid "Standard Enumerations"
+msgstr "EnumeraciÃns estÃndar"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/textview.js.page:25(None)
 msgid ""
-"The MIME type of the content you provided. In this case, you're using plain "
-"HTML."
+"@@image: 'media/textviewpenguinchat.png'; "
+"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
 msgstr ""
-"O tipo MIME do contido que forneceu. Neste caso, està usando HTML plano."
+"@@image: 'media/textviewpenguinchat.png'; "
+"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
 
-#: C/message-board.c.page:179(code)
-#, no-wrap
-msgid "\"UTF-8\""
-msgstr "\"UTF-8\""
+#: C/textview.js.page:7(title)
+#| msgid "JavaScript"
+msgid "TextView (JavaScript)"
+msgstr "TextView (JavaScript)"
 
-#: C/message-board.c.page:180(p)
+#: C/textview.js.page:21(desc)
+msgid "A multiline text editor"
+msgstr "Un editor de texto multiliÃa"
+
+#: C/textview.js.page:26(p)
 msgid ""
-"The character encoding of the content you provided. Although you only used "
-"ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used as the "
-"default encoding throughout the GNOME platform."
+"A TextView is really (or at least usually) a nested set of three objects."
 msgstr ""
-"A codificaciÃn de caracteres do contido que forneceu. AÃnda que sà se usen "
-"caracteres ASCII Ã boa idea especificar UTF-8. UTF-8 Ãsase como a "
-"codificaciÃn predeterminada na plataforma GNOME."
 
-#: C/message-board.c.page:185(code)
-#, no-wrap
-msgid "NULL"
-msgstr "NULL"
+#: C/textview.js.page:28(p)
+msgid ""
+"At the bottom is a <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.TextBuffer.html\">TextBuffer.</link> This holds the text itself."
+msgstr ""
 
-#: C/message-board.c.page:186(p)
+#: C/textview.js.page:29(p)
 msgid ""
-"The base URI. You don't need it in this simple example, but you might want "
-"to provide a <sys>file:</sys> URI if you add images or other features where "
-"you want to use relative URI references."
+"In the middle is the <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.TextView.html\">TextView,</link> which is a widget that lets you see "
+"and edit the text in the buffer. It automatically resizes itself depending "
+"on how much text there is."
 msgstr ""
-"O URI base. Non o precisa neste exemplo sinxelo, pero poderiÌa fornecer unha "
-"URI <sys>file:</sys> se quere engadir imaxes ou outras caracteriÌsticas onde "
-"queira usar preferencias relativas a URI."
 
-#: C/message-board.c.page:193(p)
+#: C/textview.js.page:30(p)
 msgid ""
-"Every time you add a widget, you have to call <code>gtk_widget_show</code> "
-"on it for it to be visible. If you call <code>gtk_widget_show_all</code> on "
-"a container widget like a <code>GtkBox</code>, GTK+ will automatically show "
-"all the widgets inside the container, to any depth. Sometimes you don't want "
-"to call <code>gtk_widget_show_all</code>, such as when you want to "
-"dynamically hide and show some widgets in response to events."
+"Since the automatic resizing can make a TextView unwieldy, you normally "
+"place it inside of a <link xref=\"scrolledwindow.js\">ScrolledWindow.</link> "
+"Despite the name, it's not an actual window in terms of having a title bar "
+"and an X button; it's a widget you put on the application you're making, "
+"which acts like a window onto a more manageable chunk of a TextView. If the "
+"text in the buffer is too big to fit, scrollbars will appear."
 msgstr ""
 
-#: C/message-board.c.page:201(p)
+#: C/textview.js.page:32(p)
 msgid ""
-"Finally, you have to call <code>gtk_widget_show_all</code> on the box. "
-"Otherwise, none of the widgets you created will be visible. (The window is "
-"shown in the <code>main</code> function with <code>gtk_widget_show</code>.)"
+"If you want to change what text is displayed in the TextView, you act on the "
+"TextBuffer, since it's what actually holds the text. The same goes for if "
+"you want to see what text someone typed in. This sample application lets you "
+"talk to a (make-believe) penguin, and checks the TextBuffer to see if you "
+"typed the word \"fish\" anywhere in it."
 msgstr ""
 
-#: C/message-board.c.page:205(p)
+#: C/textview.js.page:33(p)
 msgid ""
-"Build and run the message board again. You should see a window with a text "
-"entry and a web view. It doesn't do anything yet because the text entry and "
-"the web view don't know anything about each other."
+"Real-life penguin populations are declining fast, because climate change is "
+"melting the ice that they live on and killing the fish that they eat. If "
+"you'd like to play a (somewhat silly) GNOME game based on this premise, take "
+"a look at <link href=\"http://pingus.seul.org/\";>Pingus.</link>"
 msgstr ""
 
-#: C/message-board.c.page:211(title)
-msgid "Hook up signals"
-msgstr "Capturar sinais"
+#: C/textview.js.page:73(p)
+msgid ""
+"All the code for this sample goes in the TextViewExample 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 ""
 
-#: C/message-board.c.page:213(p)
+#: C/textview.js.page:91(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the TextView"
+msgstr "Crear a interface de usuario"
+
+#: C/textview.js.page:101(p)
 msgid ""
-"Now you want to make the message board actually <em>do</em> something when "
-"you enter text into the text entry. To do this, connect a callback function "
-"to the <code>activate</code> signal of <code>entry</code>. GTK+ emits the "
-"<code>activate</code> signal whenever the user presses <key>Enter</key> in "
-"the entry. Add the following into <code>create_window</code>, anywhere after "
-"both <code>entry</code> and <code>view</code> have been defined:"
+"Our first step in this example is to create the <link xref=\"label.js"
+"\">Label</link> that the penguin will use to talk to you. We set the text in "
+"it to wrap by setting its wrap property to true, but we'll use a different "
+"method on the TextView itself that allows for more fine-grained control."
 msgstr ""
 
-#: C/message-board.c.page:224(p)
+#: C/textview.js.page:112(p)
 msgid ""
-"You then have to actually define <code>entry_activate_cb</code>. Define it "
-"as follows, anywhere above <code>create_window</code>:"
+"Our first step is to create a TextBuffer to put the words into. After that "
+"we create the TextView, and tell it to use the TextBuffer we created as its "
+"buffer. We also set it to be editable, since we want to be able to type new "
+"things in."
 msgstr ""
 
-#: C/message-board.c.page:247(p)
+#: C/textview.js.page:113(p)
 msgid ""
-"The first thing you do is get a <code>WebKitDOMDocument</code> object that "
-"represents the HTML document displayed in <code>view</code>. The DOM classes "
-"and methods in WebKit allow you to inspect and manipulate the HTML document, "
-"and work very similarly to the DOM APIs you might already know from "
-"JavaScript."
+"The wrap_mode property lets you select from four different <link href="
+"\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
+"\">WrapModes.</link> Gtk.WrapMode.CHAR, for instance, starts wrapping around "
+"in the middle of a word if you keep typing when it gets to the edge. Most "
+"people are probably used to Gtk.WrapMode.WORD, which will automatically put "
+"the word you're typing on the next line if it gets to be too long."
 msgstr ""
 
-#: C/message-board.c.page:253(p)
+#: C/textview.js.page:127(p)
 msgid ""
-"Once you have the document, you want to get the <code>body</code> element so "
-"that you can add <code>div</code> elements to it. The "
-"<code>webkit_dom_document_query_selector</code> function lets you find an "
-"element in the document using CSS selectors. This keeps you from having to "
-"write tedious loops to traverse the document."
+"Here we create a <link xref=\"scrolledwindow.js\">ScrolledWindow,</link> and "
+"set it to automatically scroll if it gets to be too big horizontally or "
+"vertically. We also give it a nice-looking ETCHED_IN border. After that, we "
+"put our TextView inside, and tell the ScrolledWindow to give us a viewport "
+"onto it."
 msgstr ""
 
-#: C/message-board.c.page:260(cite) C/message-board.c.page:272(cite)
-#: C/message-board.c.page:324(cite) C/message-board.c.page:381(cite)
-#: C/message-board.c.page:389(cite)
-msgid "shaunm"
-msgstr "shaunm"
+#: C/textview.js.page:131(title) C/radiobutton.js.page:117(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the rest of the user interface"
+msgstr "Crear a interface de usuario"
 
-#: C/message-board.c.page:261(p)
-msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
+#: C/textview.js.page:143(p)
+msgid ""
+"The first <link xref=\"grid.js\">Grid</link> we create only has the Label "
+"and the ScrolledWindow inside it."
 msgstr ""
 
-#: C/message-board.c.page:264(p)
+#: C/textview.js.page:162(p)
 msgid ""
-"Next, you create a new <code>div</code> element to hold the message. Every "
-"element you create has to be attached to a document, so the function to "
-"create an element takes the <code>WebKitDOMDocument</code> as its first "
-"arguments. You then set the text content of the element to the contents of "
-"the text entry. Because <code>gtk_entry_get_text</code> returns a "
-"<code>const gchar*</code>, you don't have to free the result."
+"We create a <link xref=\"button.js\">Button</link> to send your message to "
+"the penguin, and a new Grid that has the other one on top and the Button on "
+"the bottom. The Button has a margin on top, so that it isn't squished up "
+"against the ScrolledWindow."
 msgstr ""
 
-#: C/message-board.c.page:273(p)
+#: C/textview.js.page:173(p)
 msgid ""
-"Not passing the GError**, but we should give it a quick mention and link to "
-"somewhere that explains how GError-handling works."
+"Finally, we attach the main Grid to the window, then we tell the window and "
+"everything inside it to become visible when the application is run."
+msgstr ""
+
+#: C/textview.js.page:178(title)
+msgid "Function which handles the penguin's response"
 msgstr ""
 
-#: C/message-board.c.page:277(p)
+#: C/textview.js.page:230(p)
 msgid ""
-"Finally, you append the new <code>div</code> element to the body and clear "
-"out the text entry so you can type something new. Build and run the program "
-"again and test it for yourself."
+"Here we use some basic JavaScript functions to have the penguins say "
+"something random. Penguins like fish, though, so if you mention fish we want "
+"the penguin to respond to that. To do that, we use the JavaScript String "
+"object's match method on <file>this.buffer.text</file>, which returns the "
+"contents of our TextBuffer."
 msgstr ""
 
-#: C/message-board.c.page:284(title)
-msgid "Make it look better with CSS"
-msgstr "Mellorar o aspecto con CSS"
+#: C/textview.js.page:231(p)
+msgid ""
+"Since we want to clear out the TextBuffer after each time you click Send, we "
+"set <file>this.buffer.text</file> to contain an empty string afterwards. "
+"Then we return focus to our TextView, so that you can keep typing without "
+"having to click on it beforehand."
+msgstr ""
 
-#: C/message-board.c.page:286(p)
+#: C/textview.js.page:238(p)
 msgid ""
-"At this point, your program is completely functional, but not very pretty. "
-"You can style the message display with CSS, just like you can with any other "
-"HTML page. There are many ways you could attach some CSS to the page: You "
-"could add it in the initial HTML document. You could inline it in the "
-"<code>style</code> attribute of the <code>div</code> elements. You could "
-"even programmatically construct it using the DOM APIs."
+"Finally, we create a new instance of the finished TextViewExample class, and "
+"set the application running."
 msgstr ""
 
-#: C/message-board.c.page:293(p)
+#: C/textview.js.page:251(link) C/statusbar.js.page:224(link)
+#: C/radiobutton.js.page:277(link) C/grid.js.page:35(link)
+#: C/button.js.page:32(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.Button"
+msgstr "Gtk.Button"
+
+#: C/textview.js.page:253(link) C/switch.js.page:271(link)
+#: C/spinbutton.js.page:204(link) C/scale.js.page:213(link)
+#: C/radiobutton.js.page:279(link) C/label.vala.page:32(link)
+#: C/label.js.page:31(link) C/dialog.vala.page:33(link)
+msgid "Gtk.Label"
+msgstr "Gtk.Label"
+
+#: C/textview.js.page:254(link) C/radiobutton.vala.page:32(link)
+#: C/radiobutton.js.page:280(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.RadioButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/textview.c.page:7(title)
+msgid "TextView (C)"
+msgstr "TextView (C)"
+
+#: C/textview.c.page:24(p)
 msgid ""
-"In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
-"code> property of the <code>WebKitWebSetting</code> object attached to your "
-"web view. In a more complete application, you would want to save and load "
-"your HTML file. Keeping the style information outside the actual HTML means "
-"that you can change the styling completely within your application, without "
-"having to change users' files. You would normally just install a file along "
-"with your application, but just to keep everything in one file for this "
-"demo, we'll use a trick called a data URI. First, define the CSS as a static "
-"string near the top of your file."
+"If we have a loooooooooooooooooooooooooooooooooooong (that was long) word, "
+"a* horizontal scrollbar will appear."
+msgstr ""
+
+#: C/textview.c.page:40(link)
+#| msgid "Layout containers"
+msgid "GtkContainer"
+msgstr "GtkContainer"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/switch.vala.page:25(None) C/switch.py.page:26(None)
+#: C/switch.c.page:22(None)
+#| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+msgid "@@image: 'media/switch_off.png'; md5=211a2962708800697ad5373dcc86ad6d"
+msgstr "@@image: 'media/switch_off.png'; md5=211a2962708800697ad5373dcc86ad6d"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/switch.vala.page:26(None) C/switch.py.page:27(None)
+#: C/switch.c.page:23(None)
+#| msgid ""
+#| "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
+msgid "@@image: 'media/switch_on.png'; md5=95e8769f758c2d95ace0fa8ecf30b29d"
+msgstr "@@image: 'media/switch_on.png'; md5=95e8769f758c2d95ace0fa8ecf30b29d"
+
+#: C/switch.vala.page:7(title)
+msgid "Switch (Vala)"
+msgstr "Switch (Vala)"
+
+#: C/switch.vala.page:21(desc) C/switch.py.page:22(desc)
+#: C/switch.c.page:17(desc)
+msgid "A \"light switch\" style toggle"
+msgstr ""
+
+#: C/switch.vala.page:24(title) C/switch.py.page:25(title)
+#: C/switch.js.page:20(title) C/switch.c.page:20(title)
+msgid "Switch"
+msgstr "Interruptor"
+
+#: C/switch.vala.page:28(p)
+msgid "This Switch toggles the title."
+msgstr ""
+
+#: C/switch.vala.page:35(link) C/switch.js.page:272(link)
+msgid "Gtk.Switch"
+msgstr "Gtk.Switch"
+
+#: C/switch.py.page:7(title)
+msgid "Switch (Python)"
+msgstr "Switch (Python)"
+
+#: C/switch.py.page:29(p)
+msgid "This Switch makes the title appears and disappear."
+msgstr ""
+
+#: C/switch.py.page:40(title)
+msgid "Useful methods for a Switch widget"
 msgstr ""
 
-#: C/message-board.c.page:315(p)
+#: C/switch.py.page:41(p) C/checkbutton.py.page:38(p)
 msgid ""
-"All you have in this example are <code>div</code> elements inside a "
-"<code>body</code> element. If you created more complicated HTML, you could "
-"use whatever CSS is necessary. In fact, if you're comfortable with CSS, you "
-"should trying changing this to something you like better."
+"For a discussion on signals and callback functions, see <link xref=\"signals-"
+"callbacks.py\">this page</link>."
 msgstr ""
 
-#: C/message-board.c.page:320(p)
+#: C/switch.py.page:48(link) C/switch.c.page:35(link)
+#: C/radiobutton.c.page:37(link)
+msgid "GtkSwitch"
+msgstr "GtkSwitch"
+
+#: C/switch.py.page:49(link) C/switch.c.page:34(link)
+#: C/spinbutton.c.page:37(link) C/separator.py.page:40(link)
+#: C/radiobutton.c.page:35(link) C/label.py.page:88(link)
+#: C/label.c.page:38(link) C/grid.py.page:57(link) C/dialog.c.page:36(link)
+msgid "GtkLabel"
+msgstr "GtkLabel"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/switch.js.page:21(None)
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 msgid ""
-"To apply the CSS, you set the <code>user-stylesheet-uri</code> in the "
-"<code>create_window</code> function, anywhere after <code>view</code> has "
-"already been defined."
+"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
 msgstr ""
+"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
 
-#: C/message-board.c.page:324(p)
-msgid "g_base64_encode has bad args"
-msgstr "g_base64_encode ten argumentos non vÃlidos"
+#: C/switch.js.page:7(title)
+#| msgid "JavaScript"
+msgid "Switch (JavaScript)"
+msgstr "Switch (JavaScript)"
+
+#: C/switch.js.page:17(desc)
+msgid "A sliding switch that can be flipped on and off"
+msgstr ""
 
-#: C/message-board.c.page:336(p)
+#: C/switch.js.page:22(p)
 msgid ""
-"Also, make sure to add variable declarations for <code>tmp</code> and "
-"<code>css</code> to the top of <code>create_window</code>."
+"A Switch has two positions, on and off. This example shows how you can use "
+"multiple switches together to control which <link xref=\"image.js\">Image</"
+"link> is shown in the window. The pictures used in this example <link href="
+"\"https://live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;";
+"target=Animal+Photos.zip\">can be downloaded here.</link>"
 msgstr ""
 
-#: C/message-board.c.page:339(code)
-#, no-wrap
+#: C/switch.js.page:23(p)
 msgid ""
-"\n"
-"gchar *tmp, *css;\n"
+"The window will contain a \"broken image\" icon instead of a picture if "
+"picture files named <file>redfox.png</file>, <file>muteswan.png</file>, "
+"<file>fruitbat.png</file>, and <file>gentoopenguin.png</file> aren't in the "
+"same directory. You can change the code and the pictures around as you like, "
+"but the Creative Commons-licensed photos used in this example were taken "
+"from the following sources and cropped to 640x425:"
 msgstr ""
-"\n"
-"gchar *tmp, *css;\n"
 
-#: C/message-board.c.page:343(p)
+#: C/switch.js.page:25(p)
 msgid ""
-"A data URI starts with <sys>data:</sys> and some information about the "
-"content type and how the data is encoded. The actual data follows after a "
-"comma, in this case encoded in Base64. Unlike other URI schemes like "
-"<sys>http:</sys>, <sys>ftp:</sys>, and <sys>file:</sys>, the <sys>data:</"
-"sys> URI scheme doesn't specify where to find a file to load. Rather, it "
-"gives the entire contents of the file."
+"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>Red fox "
+"photo</link> by Rob Lee, licensed <link href=\"http://creativecommons.org/";
+"licenses/by/2.0/deed.en\">CC-By</link>"
 msgstr ""
 
-#: C/message-board.c.page:350(p)
+#: C/switch.js.page:26(p)
 msgid ""
-"The code above first encodes your CSS definitions in Base64, then combines "
-"that with a fixed string to create a data URI. The <code>g_strconcat</code> "
-"function can take any number of string arguments and concatenate them all "
-"together, so you have to pass <code>NULL</code> as the final argument so it "
-"knows when to stop. And don't forget to free those temporary strings after "
-"you set the stylesheet property."
+"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
+"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">Gentoo penguin "
+"photo</link> by Ken Funakoshi, licensed <link href=\"http://creativecommons.";
+"org/licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
 msgstr ""
 
-#: C/message-board.c.page:357(p)
+#: C/switch.js.page:27(p)
 msgid ""
-"Build and run the program again. It should now work exactly the same as at "
-"the end of the last section, except the messages will be nicely styled with "
-"a border and a subtle background gradient."
+"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
+"photostream/\">Fruit bat photo</link> by Shek Graham, licensed <link href="
+"\"http://creativecommons.org/licenses/by/2.0/deed.en\";>CC-By</link>"
 msgstr ""
 
-#: C/message-board.c.page:363(title)
-msgid "Learn more"
-msgstr "Aprender mÃis"
+#: C/switch.js.page:28(p)
+msgid ""
+"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
+"Mindaugas_Urbonas.jpg\">Mute swan photo</link> by Mindaugas Urbonas, "
+"licensed <link href=\"http://creativecommons.org/licenses/by-sa/2.5/deed.en";
+"\">CC-By-SA</link>"
+msgstr ""
 
-#: C/message-board.c.page:365(p)
+#: C/switch.js.page:30(p)
 msgid ""
-"This tutorial showed you how to create a basic application using GTK+ and "
-"WebKit, including showing a document and manipulating its contents. To "
-"create a real application, you probably want to do a little bit more. Try "
-"adding features on your own. Here are a few ideas:"
+"Photo credits and licensing information are shown in the application's <link "
+"xref=\"aboutdialog.js\">AboutDialog.</link> Always remember to credit the "
+"original artist when using <link href=\"http://creativecommons.org";
+"\">Creative Commons-licensed works!</link>"
 msgstr ""
-"Este titorial mostroulle como crear un aplicativo sinxelo usando GTK+ e "
-"WebKit, incluindo como mostrar un documento e manipular o seu contido. Para "
-"crear un aplicativo real, probabelmente queira facer algo mÃis. Probe a "
-"engadir caracterÃsticas vostede mesmo. Aquà hai algunhas ideas:"
 
-#: C/message-board.c.page:371(p)
+#: C/switch.js.page:74(p)
 msgid ""
-"If you're comfortable with CSS, try changing the style of the message "
-"display. CSS is easy to get started with, but increasingly more powerful. "
-"There is a wealth of CSS tutorials on the Internet, and just about "
-"everything you can do on the web, you can do in this application."
+"All the code for this sample goes in the SwitchExample 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 ""
-"Si se sinte comodo usando CSS, probe a cambiar o estilo da visualizaciÃn da "
-"mensaxe. à moi doado iniciarse en CSS, pero cada vez à mÃis potente. Hai "
-"unha gran cantidade de titoriais de CSS en Internet, e case todo o que se "
-"pode facer nunha pÃxina web, pÃdese facer neste aplicativo."
 
-#: C/message-board.c.page:377(p)
+#: C/switch.js.page:75(p) C/messagedialog.js.page:70(p)
 msgid ""
-"Right now, you lose all your messages whenever you close the message board. "
-"Try saving the HTML contents after each post, and loading the saved file (if "
-"it exists) on startup."
+"Before we call _buildUI to create the window and the widgets inside it, we "
+"need to call _initMenus, which tells GNOME to create the menu. We can put "
+"the actual code for _initMenus after the code for _buildUI, since it doesn't "
+"matter what order we put them in so long as _initMenus is called first in "
+"_onStartup."
 msgstr ""
-"Agora mesmo, tÃdalas mesnaxes pÃrdense ao pechar o cadro de mensaxes. Probe "
-"a gardar o contido HTML despois de cada envÃo, e a cargar o ficheiro cargado "
-"(se existe) ao inicio."
 
-#: C/message-board.c.page:381(p)
-msgid "Link to method to get HTML from DOM and to GIO APIs."
-msgstr "LigazÃn ao mÃtodo para obter HTML desde DOM e nas API de GIO."
+#: C/switch.js.page:91(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the switches"
+msgstr "Crear a interface de usuario"
 
-#: C/message-board.c.page:385(p)
+#: C/switch.js.page:97(p)
 msgid ""
-"If you keep your messages around for a long time, you'll start wondering "
-"when you posted them. Add a timestamp to each message when it's posted. "
-"You'll probably want to create some additional child <code>div</code> "
-"elements with different classes that you can style in the CSS."
+"We first create the <link xref=\"image.js\">Image</link> that the switches "
+"will control. Remember that a file named <file>redfox.png</file> needs to be "
+"in the same directory as this application."
 msgstr ""
 
-#: C/message-board.c.page:389(p)
-msgid "Link to strftime or something"
-msgstr "LigazÃns a strftime ou algo"
+#: C/switch.js.page:119(p)
+msgid ""
+"We use a <link xref=\"label.js\">Label</link> to mark each Switch, and give "
+"them a bit of a margin on the right so that they aren't crammed right next "
+"to the Switches. After that we create the Switches, and set them to be "
+"switched off by default."
+msgstr ""
 
-#: C/message-board.c.page:392(p)
+#: C/switch.js.page:120(p)
 msgid ""
-"This program keeps messages around forever. Think about ways you could allow "
-"the user to delete messages. Perhaps you want messages to disappear "
-"automatically after they're too old, or after there are a certain number of "
-"messages before them. Or you could add a link in each message to delete it. "
-"You could even override the context menu when you right-click on a message. "
-"These features involve exploring WebKit's DOM API more."
+"The signal a switch sends out when it's flipped on or off is called notify::"
+"active. After we create each switch, we connect its notify::active signal to "
+"a function called _switchFlip. If you have multiple switches that each do "
+"something different, you might want to connect them to different functions, "
+"but here they're both used for the same thing: To control what picture's "
+"displayed by _image."
 msgstr ""
-"Este programa garda as mensaxes para sempre. Pense algunha maneira para que "
-"o usuario poida borrar mensaxes. Tal vez queira que as mensaxes desapareza "
-"automaticamente cando son moi antigas ou despois de que haxa certo nÃmero de "
-"mensaxes por diante. Ou poderÃa engadir unha ligazÃn en cada mensaxe para "
-"borrala. TamÃn pode omitir o menà contextual cando preme co botÃn dereito "
-"sobe unha mensaxe. Esta caracterÃsticas implican explorar mÃis da API do DOM "
-"de WebKit."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/magic-mirror.vala.page:39(None)
-msgid "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+#: C/switch.js.page:144(p)
+msgid ""
+"We create a <link xref=\"grid.js\">Grid</link> for the Labels and Switches "
+"first, so that we can organize them in a 2x2 layout with a margin between it "
+"and the Image. Then we put that Grid into a larger 2x1 Grid that has the "
+"Image on top, and the Grid with the Labels and Switches on the bottom."
 msgstr ""
-"@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
 
-#: C/magic-mirror.vala.page:8(desc)
-msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+#: C/switch.js.page:153(p) C/spinbutton.js.page:165(p)
+msgid ""
+"Finally, we add the larger Grid to the window, then tell the window to show "
+"itself and all the widgets inside of it."
 msgstr ""
-"Use a sÃa cÃmara web como un espello usando o marco de traballo GStreamer e "
-"GTK+"
 
-#: C/magic-mirror.vala.page:12(name)
-msgid "Daniel G. Siegel"
-msgstr "Daniel G. Siegel"
+#: C/switch.js.page:157(title)
+msgid "Function which handles the switches being flipped"
+msgstr ""
 
-#: C/magic-mirror.vala.page:13(email)
-msgid "dgsiegel gnome org"
-msgstr "dgsiegel gnome org"
+#: C/switch.js.page:180(p)
+msgid ""
+"Each time a Switch is flipped, this function checks to see which of the two "
+"Switches are active afterwards, using the Switches' built-in get_active() "
+"function. It then changes the Image accordingly. You can change the "
+"filenames around as you like, so long as you have pictures to go with them."
+msgstr ""
 
-#: C/magic-mirror.vala.page:21(title)
+#: C/switch.js.page:184(title)
 #, fuzzy
-#| msgid "Magic Mirror"
-msgid "4 Magic Mirror"
-msgstr "Espello mÃxico"
+#| msgid "AboutDialog"
+msgid "Creating the AboutDialog"
+msgstr "AboutDialog"
 
-#: C/magic-mirror.vala.page:24(em)
+#: C/switch.js.page:211(p)
 msgid ""
-"Your mirror just fell off the wall and broke into a thousand pieces â but "
-"you need a mirror to shave your beard off or add some makeup! You only have "
-"15 minutes left before catching the bus to work. So what can you do?"
+"The first step is building the <link xref=\"gmenu.js\">GMenu</link> that the "
+"\"About\" button goes into. This is the menu that appears when you click the "
+"application's name in the upper-left corner of the screen, next to the "
+"Activities menu. Our menu only has two options in it: About, and Quit."
 msgstr ""
 
-#: C/magic-mirror.vala.page:25(p)
+#: C/switch.js.page:247(p)
 msgid ""
-"In this tutorial, we're going to make a program which lets you use your "
-"webcam as a mirror. You will learn how to:"
+"An <link xref=\"aboutdialog.js\">AboutDialog</link> has a lot of different "
+"things you can set, to credit everyone who worked on the application and "
+"leave a note to whomever reads it. In this case, the copyright section "
+"contains our note and credits the original photographers, while the artists "
+"section shows you a list of the photographers with links to the original "
+"photos when you click the Credits button. The web URLs put after their names "
+"in the array turn their names into clickable links in the Credits section."
 msgstr ""
 
-#: C/magic-mirror.vala.page:27(p)
-msgid "Create a GTK+ application"
-msgstr "Crear un apliativo GTK+"
+#: C/switch.js.page:254(p)
+msgid ""
+"Finally, we create a new instance of the finished SwitchExample class, and "
+"set the application running."
+msgstr ""
 
-#: C/magic-mirror.vala.page:28(p)
-msgid "Access your webcam using GStreamer and embed the result into a window"
+#: C/switch.js.page:265(link) C/messagedialog.py.page:63(link)
+#: C/messagedialog.js.page:193(link) C/messagedialog.c.page:41(link)
+#: C/gmenu.vala.page:26(title) C/gmenu.py.page:26(title)
+#: C/gmenu.py.page:76(link) C/gmenu.js.page:20(title) C/gmenu.js.page:29(link)
+#: C/gmenu.c.page:20(title) C/gmenu.c.page:31(link)
+#: C/aboutdialog.py.page:47(link) C/aboutdialog.js.page:28(link)
+#: C/aboutdialog.c.page:37(link)
+msgid "GMenu"
 msgstr ""
-"Acceda à sÃa cÃmara web usando GStreamer e incruste o resultado nunha xanela"
 
-#: C/magic-mirror.vala.page:29(p)
-msgid "Grab photos off your webcam"
-msgstr "Obter as fotos da Åua cÃmara web"
+#: C/switch.js.page:266(link) C/messagedialog.py.page:61(link)
+#: C/messagedialog.js.page:194(link) C/messagedialog.c.page:39(link)
+#: C/menubar.py.page:183(link) C/gmenu.py.page:77(link)
+#: C/gmenu.js.page:30(link) C/gmenu.c.page:32(link)
+#: C/filechooserdialog.py.page:78(link) C/aboutdialog.js.page:29(link)
+#, fuzzy
+#| msgid "SimpleAction"
+msgid "GSimpleAction"
+msgstr "SimpleAction"
 
-#: C/magic-mirror.vala.page:31(p) C/image-viewer.vala.page:38(p)
-#: C/image-viewer.py.page:33(p) C/image-viewer.js.page:33(p)
-#: C/guitar-tuner.vala.page:34(p) C/guitar-tuner.py.page:30(p)
-#: C/guitar-tuner.cpp.page:30(p) C/guitar-tuner.c.page:30(p)
-msgid "You'll need the following to be able to follow this tutorial:"
+#: C/switch.js.page:270(link) C/image.js.page:33(link)
+msgid "Gtk.Image"
 msgstr ""
 
-#: C/magic-mirror.vala.page:33(p) C/image-viewer.py.page:35(p)
-#: C/image-viewer.js.page:35(p) C/guitar-tuner.py.page:32(p)
-#: C/guitar-tuner.cpp.page:32(p) C/guitar-tuner.c.page:32(p)
-msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
+#: C/switch.c.page:7(title)
+msgid "Switch (C)"
 msgstr ""
 
-#: C/magic-mirror.vala.page:34(p)
-msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
-msgstr "Copias instaladas de GTK, GStreamer e compilador de Vala"
+#: C/switch.c.page:24(p)
+msgid "This switch toggles the title of the window."
+msgstr ""
 
-#: C/magic-mirror.vala.page:35(p)
-msgid "Basic knowledge of an object-oriented programming language"
-msgstr "CoÃecemento bÃsico dun linguaxe de programaciÃn orientado a obxectos"
+#: C/strings.py.page:8(title)
+msgid "Strings (Python)"
+msgstr ""
 
-#: C/magic-mirror.vala.page:49(p)
-msgid ""
-"Choose <gui>Gtk+ (simple)</gui> from the <gui>Vala</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-"<file>guitar-tuner</file> as project name and directory."
+#: C/strings.py.page:12(desc)
+msgid "An explanation of how to deal with strings in Python and GTK+."
 msgstr ""
 
-#: C/magic-mirror.vala.page:52(p)
-msgid ""
-"Disable <gui>Use GtkBuilder for user interface</gui> as we will create the "
-"UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
-"\">Guitar-Tuner</link> tutorial using the interface builder."
+#: C/strings.py.page:25(title)
+msgid "Strings"
 msgstr ""
 
-#: C/magic-mirror.vala.page:57(p)
+#: C/strings.py.page:30(title)
+#, fuzzy
+#| msgid "Define the tones"
+msgid "Definitions"
+msgstr "Definir os tonos"
+
+#: C/strings.py.page:32(p)
 msgid ""
-"Make sure that <gui>Configure external packages</gui> is selected. On the "
-"next page, select <em>gstreamer-0.10</em> from the list to include the "
-"<app>GStreamer</app> library into your project."
+"Conceptionally, a <em>string</em> is a list of <em>characters</em> such as "
+"'A', 'B', 'C' or 'Ã'. Characters are abstract representations and their "
+"meaning depends on the language and context they are used in. The "
+"<em>Unicode standard</em> describes how characters are represented by "
+"<em>code points</em>. For example the characters above are represented with "
+"the code points U+0041, U+0042, U+0043, and U+00C9, respectively. Basically, "
+"code points are numbers in the range from 0 to 0x10FFFF."
 msgstr ""
 
-#: C/magic-mirror.vala.page:61(p)
+#: C/strings.py.page:34(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
-"gui> tabs. You should see some code which starts with the lines:"
+"The representation of a string as a list of code points is abstract. In "
+"order to convert this abstract representation into a sequence of bytes the "
+"Unicode string must be <em>encoded</em>. The simplest from of encoding is "
+"ASCII and is performed as follows:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:70(title) C/image-viewer.vala.page:105(title)
-#: C/image-viewer.cpp.page:60(title) C/image-viewer.c.page:58(title)
-#: C/guitar-tuner.vala.page:67(title) C/guitar-tuner.cpp.page:63(title)
-#: C/guitar-tuner.c.page:63(title)
-msgid "Build the code for the first time"
-msgstr "ConstruÃr o cÃdigo por primeira vez"
+#: C/strings.py.page:37(p)
+msgid ""
+"If the code point is strictly less than 128, each byte is the same as the "
+"value of the code point."
+msgstr ""
 
-#: C/magic-mirror.vala.page:71(p)
+#: C/strings.py.page:38(p)
 msgid ""
-"The code loads an (empty) window and shows it. More details are given below; "
-"skip this list if you understand the basics:"
+"If the code point is 128 or greater, the Unicode string canât be represented "
+"in this encoding. (Python raises a <sys>UnicodeEncodeError</sys> exception "
+"in this case.)"
 msgstr ""
 
-#: C/magic-mirror.vala.page:74(p) C/guitar-tuner.vala.page:72(p)
+#: C/strings.py.page:41(p)
 msgid ""
-"The two <code>using</code> lines import namespaces so we don't have to name "
-"them explicitly."
+"Although ASCII encoding is simple to apply it can only encode for 128 "
+"different characters which is hardly enough. One of the most commonly used "
+"encodings that addresses this problem is UTF-8 (it can handle any Unicode "
+"code point). UTF stands for âUnicode Transformation Formatâ, and the â8â "
+"means that 8-bit numbers are used in the encoding."
+msgstr ""
+
+#: C/strings.py.page:46(title)
+msgid "Strings in Python 2"
 msgstr ""
 
-#: C/magic-mirror.vala.page:77(p)
+#: C/strings.py.page:48(p)
 msgid ""
-"The constructor of the <code>Main</code> class creates a new window and sets "
-"its title. Afterwards the window is shown and a signal is connected which "
-"quits the application if the window is closed. More on signals later on."
+"Python 2 comes with two different kinds of objects that can be used to "
+"represent strings, <code>str</code> and <code>unicode</code>. Instances of "
+"<code>unicode</code> are used to express Unicode strings, whereas instances "
+"of the <code>str</code> type are byte representations (the encoded string). "
+"Under the hood, Python represents Unicode strings as either 16- or 32-bit "
+"integers, depending on how the Python interpreter was compiled."
 msgstr ""
 
-#: C/magic-mirror.vala.page:81(p)
+#: C/strings.py.page:50(code)
+#, no-wrap
 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)."
+"<![CDATA[\n"
+">>> unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+">>> print unicode_string]]>\n"
+"FuÃbÃlle\n"
 msgstr ""
 
-#: C/magic-mirror.vala.page:85(p) C/image-viewer.vala.page:125(p)
-#: C/image-viewer.cpp.page:76(p) C/image-viewer.c.page:77(p)
-#: C/guitar-tuner.cpp.page:78(p) C/guitar-tuner.c.page:82(p)
+#: C/strings.py.page:56(p)
 msgid ""
-"This code is ready to be used, so you can compile it by clicking "
-"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
-"<keyseq><key>Shift</key><key>F7</key></keyseq>)."
+"Unicode strings can be converted to 8-bit strings with <code>unicode.encode()"
+"</code>. Pythonâs 8-bit strings have a <code>str.decode()</code> method that "
+"interprets the string using the given encoding (that is, it is the inverse "
+"of the <code>unicode.encode()</code>):"
 msgstr ""
 
-#: C/magic-mirror.vala.page:86(p) C/image-viewer.vala.page:126(p)
+#: C/strings.py.page:69(p)
 msgid ""
-"Change the <gui>Configuration</gui> to <gui>Default</gui> and then press "
-"<gui>Execute</gui> to configure the build directory. You only need to do "
-"this once, for the first build."
+"Unfortunately, Python 2.x allows you to mix <code>unicode</code> and "
+"<code>str</code> if the 8-bit string happened to contain only 7-bit (ASCII) "
+"bytes, but would get <sys>UnicodeDecodeError</sys> if it contained non-ASCII "
+"values."
 msgstr ""
 
-#: C/magic-mirror.vala.page:90(title)
-msgid "Access the webcam video stream with GStreamer"
-msgstr "Acceder ao fluxo de vÃdeo de cÃmara web con GStreamer"
+#: C/strings.py.page:74(title)
+msgid "Strings in Python 3"
+msgstr ""
 
-#: C/magic-mirror.vala.page:91(p)
+#: C/strings.py.page:76(p)
 msgid ""
-"The GStreamer multimedia framework is able to handle video from webcams. "
-"Let's add GStreamer to our application and so we can access the video stream."
+"Since Python 3.0, all strings are stored as Unicode in an instance of the "
+"<code>str</code> type. Encoded strings on the other hand are represented as "
+"binary data in the form of instances of the bytes type. Conceptionally, "
+"<code>str</code> refers to text, whereas bytes refers to data. Use "
+"<code>encode()</code> to go from <code>str</code> to <code>bytes</code>, and "
+"<code>decode()</code> to go from <code>bytes</code> to <code>str</code>."
 msgstr ""
-"O contorno multimedia de traballo de GStreamer à capaz de manexar vÃdeo "
-"desde cÃmara web. Engada GStreamer ao seu aplicativo e poderà acceder ao "
-"fluxo de vÃdeo."
 
-#: C/magic-mirror.vala.page:118(p)
+#: C/strings.py.page:78(p)
 msgid ""
-"First we remove the window we created before because GStreamer will take "
-"care of showing the picture on screen."
+"In addition, it is no longer possible to mix Unicode strings with encoded "
+"strings, because it will result in a <code>TypeError</code>:"
 msgstr ""
-"Primeiro quÃtase a xanela creada anteriormente, xa que GStreamer encargarase "
-"de mostrar a imaxe na pantalla."
 
-#: C/magic-mirror.vala.page:122(p)
-msgid ""
-"Now we are creating a GStreamer element which accesses our webcam. We are "
-"using the Camerabin element, which is an all-in-one camera element and is "
-"capable of taking photos, videos, applying effects and much more. Perfect "
-"for our use case! With <code>this.camerabin.set_state (Gst.State.PLAYING)</"
-"code> we tell the GStreamer pipeline we just created to start playing. Easy, "
-"no?"
+#: C/strings.py.page:95(title)
+msgid "Unicode in GTK+"
 msgstr ""
-"Agora vaise crear un elemento de GStreamer que accede à cÃmara web. Vaise a "
-"usar o elemento ÂCamerabinÂ, que à un elemento de cÃmara todo en un capaz de "
-"facer fotos, vÃdeos, aplicar efectos e moito mÃis. Perfecto para o noso caso "
-"de uso. Con <code>this.camerabin.set_state (Gst.State.PLAYING)</code> "
-"indÃcase à tÃberÃa de GStreamer que se acaba de crear que empece a "
-"reproducir. Sinxelo, non?"
 
-#: C/magic-mirror.vala.page:129(p)
+#: C/strings.py.page:97(p)
 msgid ""
-"Of course it is also possible to integrate the video more tighly into other "
-"windows but that is an advanced topic that includes some details of the X "
-"Window System we will omit here."
+"GTK+ uses UTF-8 encoded strings for all text. This means that if you call a "
+"method that returns a string you will always obtain an instance of the "
+"<code>str</code> type. The same applies to methods that expect one or more "
+"strings as parameter, they must be UTF-8 encoded. However, for convenience "
+"PyGObject will automatically convert any unicode instance to str if supplied "
+"as argument:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:133(p)
+#: C/strings.py.page:108(p)
+#, fuzzy
+#| msgid "Further reading"
+msgid "Furthermore:"
+msgstr "Lectura complementaria"
+
+#: C/strings.py.page:113(p)
 msgid ""
-"Compile and run it again. You will end up with two windows. In the next step "
-"we will integrate the video into the GTK+ window."
+"would return <code>False</code>, with the warning <code>__main__:1: "
+"UnicodeWarning: Unicode equal comparison failed to convert both arguments to "
+"Unicode - interpreting them as being unequal</code> (<code>Gtk.Label.get_text"
+"()</code> will always return a <code>str</code> instance; therefore, "
+"<code>txt</code> and <code>unicode_string</code> are not equal)."
 msgstr ""
 
-#: C/magic-mirror.vala.page:143(p)
+#: C/strings.py.page:115(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
-"is also a more <link href=\"magic-mirror/magic-mirror-advanced.vala"
-"\">extensive implementation</link> that embeds the window into a regular Gtk."
-"Window which involves some advanced techniques, and adds buttons to start/"
-"stop the picture."
+"This is especially important if you want to internationalize your program "
+"using <link href=\"http://docs.python.org/library/gettext.html";
+"\"><code>gettext</code></link>. You have to make sure that <code>gettext</"
+"code> will return UTF-8 encoded 8-bit strings for all languages."
 msgstr ""
-"Se ten problemas con este titorial, compare o seu cÃdigo con este <link href="
-"\"magic-mirror/magic-mirror.vala\">cÃdigo de referencia</link>. TamÃn hai "
-"unha <link href=\"magic-mirror/magic-mirror-advanced.vala\">implementaciÃn "
-"mÃis ampla</link> que incrusta a xanela nunha xanela GTK regular que implica "
-"algunhas tÃcnicas avanzadas, e engade botÃns para iniciar/deter a imaxe."
 
-#: C/magic-mirror.vala.page:149(title) C/guitar-tuner.vala.page:257(title)
-msgid "Further reading"
-msgstr "Lectura complementaria"
+#: C/strings.py.page:117(p)
+msgid ""
+"In general it is recommended to not use <code>unicode</code> objects in GTK+ "
+"applications at all, and only use UTF-8 encoded <code>str</code> objects "
+"since GTK+ does not fully integrate with <code>unicode</code> objects."
+msgstr ""
 
-#: C/magic-mirror.vala.page:150(p)
+#: C/strings.py.page:119(p)
 msgid ""
-"To find out more about the Vala programming language you might want to check "
-"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
-"link>."
+"With Python 3.x things are much more consistent, because PyGObject will "
+"automatically encode/decode to/from UTF-8 if you pass a string to a method "
+"or a method returns a string. Strings, or text, will always be represented "
+"as instances of <code>str</code> only:"
 msgstr ""
-"Para atopar mÃis informaciÃn sobre a linguaxe de programaciÃn Vala pode "
-"visitar <link href=\"http://live.gnome.org/Vala/Tutorial\";>o titorial de "
-"Vala</link>."
 
-#: C/magic-mirror.vala.page:155(title)
-msgid "Conclusion"
-msgstr "ConclusiÃn"
+#: C/strings.py.page:124(title) C/signals-callbacks.py.page:44(title)
+#: C/properties.py.page:49(title) C/model-view-controller.py.page:182(title)
+msgid "References"
+msgstr ""
 
-#: C/magic-mirror.vala.page:156(p)
-msgid ""
-"That's it, you have managed to create a full-featured webcam photo "
-"application in 15 minutes. Now you can shave your beard off or add some "
-"makeup to your beautiful face, right before having a beautiful day at your "
-"workplace, where you can impress your friends and colleagues with an awesome "
-"application you just made in 15 minutes."
+#: C/strings.py.page:126(link)
+msgid "How To Deal With Strings - The Python GTK+ 3 Tutorial"
 msgstr ""
-"Isto eÌ todo, acaba de crear un aplicativo completo para sacar fotos coa "
-"caÌmara web en menos de 15 minutos. Agora xa pode afeitar a barba, "
-"maquillarse un pouco e ordenar o seu espazo de traballo para impresionar aos "
-"seus amigos e colegas con un aplicativo feito en 15 minutos."
 
-#: C/index.page:7(name)
-msgid "GNOME Documentation Team"
-msgstr "Equipo de documentaciÃn de GNOME"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/statusbar.vala.page:24(None) C/statusbar.py.page:24(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
+msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 
-#: C/index.page:9(years)
-msgid "2010, 2011"
-msgstr "2010, 2011"
+#: C/statusbar.vala.page:7(title)
+msgid "Statusbar (Vala)"
+msgstr ""
 
-#: C/index.page:28(title)
-msgid "GNOME Developer Platform Demos"
-msgstr "DemostraciÃns da plataforma de desenvolvemento de GNOME"
+#: C/statusbar.vala.page:20(desc) C/statusbar.py.page:20(desc)
+#: C/statusbar.c.page:21(desc)
+msgid "Report messages of minor importance to the user"
+msgstr ""
 
-#: C/index.page:31(title)
-msgid "Getting Ready"
-msgstr "Como comezar"
+#: C/statusbar.vala.page:23(title) C/statusbar.py.page:23(title)
+#: C/statusbar.js.page:20(title) C/statusbar.c.page:24(title)
+msgid "Statusbar"
+msgstr ""
 
-#: C/index.page:35(title)
-msgid "C"
-msgstr "C"
+#: C/statusbar.vala.page:25(p)
+msgid "This statusbar tells you what's going on."
+msgstr ""
 
-#: C/index.page:39(title)
-msgid "C++"
-msgstr "C+"
+#: C/statusbar.vala.page:32(link) C/statusbar.js.page:227(link)
+msgid "Gtk.Statusbar"
+msgstr ""
 
-#: C/index.page:43(title)
-msgid "JavaScript"
-msgstr "JavaScript"
+#: C/statusbar.py.page:7(title)
+msgid "Statusbar (Python)"
+msgstr ""
 
-#: C/index.page:47(title)
-msgid "Python"
-msgstr "Python"
+#: C/statusbar.py.page:25(p)
+msgid ""
+"This statusbar tells you if you click the button or if you press any key "
+"(and which key)."
+msgstr ""
 
-#: C/index.page:51(title)
-msgid "Vala"
-msgstr "Vala"
+#: C/statusbar.py.page:34(p)
+msgid ""
+"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
+"<code>event.keyval</code> into a symbolic name. The names and corresponding "
+"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
+"gdk/gdkkeysyms.h\">here</link>, but for instance <code>GDK_KEY_BackSpace</"
+"code> becomes the string <code>\"BackSpace\"</code>."
+msgstr ""
 
-#: C/index.page:55(title)
-msgid "Get Involved"
-msgstr "Involucrarse"
+#: C/statusbar.py.page:40(title)
+msgid "Useful methods for a Statusbar widget"
+msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/image-viewer.vala.page:46(None) C/image-viewer.py.page:40(None)
-#: C/image-viewer.js.page:41(None) C/image-viewer.cpp.page:31(None)
-#: C/image-viewer.c.page:31(None)
-msgid "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+#: C/statusbar.py.page:42(p)
+msgid ""
+"<code>pop(context_id)</code> removes the first message in the statusbar "
+"stack with the given <code>context_id</code>."
 msgstr ""
-"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 
-#: C/image-viewer.vala.page:8(desc) C/image-viewer.c.page:8(desc)
-msgid "A little bit more than a simple \"Hello world\" Gtk application."
-msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+#: C/statusbar.py.page:43(p)
+msgid ""
+"<code>remove_all(context_id)</code> removes all the messages in the "
+"statusbar stack with the given <code>context_id</code>."
+msgstr ""
 
-#: C/image-viewer.vala.page:20(name)
-msgid "Philip Chimento"
-msgstr "Philip Chimento"
+#: C/statusbar.py.page:44(p)
+msgid ""
+"<code>remove(context_id, message_id)</code> removes the message with the "
+"given <code>message_id</code> in the statusbar stack with the given "
+"<code>context_id</code>. The <code>message_id</code> is returned by "
+"<code>push(context_id, \"the message\")</code> when pushing the message on "
+"the statusbar."
+msgstr ""
 
-#: C/image-viewer.vala.page:21(email)
-msgid "philip chimento gmail com"
-msgstr "philip chimento gmail com"
+#: C/statusbar.py.page:52(link)
+msgid "GtkStatusbar"
+msgstr ""
 
-#: C/image-viewer.vala.page:29(title) C/image-viewer.py.page:23(title)
-#: C/image-viewer.js.page:23(title)
-#, fuzzy
-#| msgid "Image Viewer"
-msgid "1 Image Viewer"
-msgstr "Visor de imaxes"
+#: C/statusbar.py.page:53(link) C/spinner.js.page:29(link)
+#: C/progressbar.py.page:57(link)
+msgid "Gdk - Key Values"
+msgstr ""
 
-#: C/image-viewer.vala.page:31(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/statusbar.js.page:21(None)
 #, fuzzy
 #| msgid ""
-#| "In this tutorial, we're going to write a very simple GTK application that "
-#| "loads and displays an image file. You will learn how to:"
-msgid ""
-"In this tutorial you will create an application which opens and displays an "
-"image file. You will learn:"
+#| "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+msgid "@@image: 'media/statusbar2.png'; md5=ff6f7e5b270827ca98b2d5f7087aa766"
 msgstr ""
-"Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
-"mostra un ficheiro de imaxe. Vostede aprenderaÌ a:"
+"@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
 
-#: C/image-viewer.vala.page:33(p)
+#: C/statusbar.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Statusbar (JavaScript)"
+msgstr "JavaScript"
+
+#: C/statusbar.js.page:17(desc)
+msgid "Show notifications in a dedicated statusbar"
+msgstr ""
+
+#: C/statusbar.js.page:22(p)
 msgid ""
-"How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
-"IDE</link>."
+"This statusbar keeps track of how many times you've clicked a button. "
+"Applications like <link href=\"http://projects.gnome.org/gedit/\";>gedit</"
+"link> use statusbars to display information at a glance, and show "
+"notifications without interrupting the user."
 msgstr ""
 
-#: C/image-viewer.vala.page:34(p)
+#: C/statusbar.js.page:23(p)
 msgid ""
-"How to write a <link href=\"http://developer.gnome.org/platform-overview/";
-"stable/gtk\">Gtk application</link> in Vala"
+"Messages pushed to a statusbar go on top of its stack, and can be popped off "
+"to show the next-most recent one. You can also clear away every message of a "
+"specific type all at once. This sample application demonstrates these "
+"functions."
 msgstr ""
 
-#: C/image-viewer.vala.page:35(p)
+#: C/statusbar.js.page:66(p)
 msgid ""
-"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
-"stable/\">GObject</link> programming"
+"All the code for this sample goes in the StatusbarExample 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 ""
 
-#: C/image-viewer.vala.page:40(p) C/guitar-tuner.vala.page:36(p)
-#, fuzzy
-#| msgid "Basic knowledge of the Vala programming language"
+#: C/statusbar.js.page:83(p)
 msgid ""
-"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
-"\">Vala</link> programming language."
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Vala"
+"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 next step is to create a vertically-oriented <link href="
+"\"paned.js.page\">Gtk.Paned</link> interface, to divide the window up into "
+"two sections. This way the statusbar looks like those used in other "
+"applications, and it stays at the bottom of the window, even if the user "
+"resizes it."
+msgstr ""
 
-#: C/image-viewer.vala.page:41(p) C/guitar-tuner.vala.page:37(p)
+#: C/statusbar.js.page:87(title)
 #, fuzzy
-#| msgid "An installed copy of the <em>gjs</em> interpreter"
-msgid "An installed copy of <app>Anjuta</app>."
-msgstr "Unha copia instalada do inteÌrprete <em>gjs</em>"
+#| msgid "Starting the fun"
+msgid "Creating the buttons"
+msgstr "Comezar a diversiÃn"
 
-#: C/image-viewer.vala.page:42(p)
+#: C/statusbar.js.page:106(p)
 msgid ""
-"You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> "
-"API Reference useful, although it is not necessary to follow the tutorial."
+"This code creates the three <link href=\"button.js.page\">Gtk.Buttons</link> "
+"we'll use to push a new message to the statusbar, pop the last one off, and "
+"clear all existing messages. The \"back\" and \"clear\" buttons are <link "
+"href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock "
+"buttons,</link> which are automatically translated into any language GNOME "
+"supports."
 msgstr ""
 
-#: C/image-viewer.vala.page:55(p) C/guitar-tuner.vala.page:48(p)
-#, fuzzy
-#| msgid ""
-#| "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
-#| "gui></guiseq> to open the project wizard."
+#: C/statusbar.js.page:124(p)
 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."
+"This code creates the <link href=\"grid.js.page\">Gtk.Grid</link> that we'll "
+"use to organize the buttons, and attaches the buttons to it in order. It "
+"then creates a <link href=\"paned.js.page\">Gtk.Frame</link> which will take "
+"up most of the window and has a large amount of padding around the buttons, "
+"and adds the Grid to the Frame. Note that we still need to put the Frame "
+"into the Paned interface, and then add it to the ApplicationWindow."
 msgstr ""
-"Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
-"gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
 
-#: C/image-viewer.vala.page:58(p)
+#: C/statusbar.js.page:128(title)
 #, fuzzy
-#| msgid ""
-#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#| "<file>image-viewer</file> as project name and directory."
+#| msgid "Creating the signal handler"
+msgid "Creating the statusbar"
+msgstr "Crear o manexador de sinais"
+
+#: C/statusbar.js.page:145(p)
 msgid ""
-"Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-"<file>image-viewer</file> as project name and directory."
+"Here we create the Gtk.Statusbar, and push a message to it to start off "
+"with. Then we give it its own narrow frame at the bottom of the window."
 msgstr ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes pÃxinas. Use "
-"<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.vala.page:62(p)
-#, fuzzy
-#| 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 using the interface "
-#| "builder."
+#: C/statusbar.js.page:146(p)
 msgid ""
-"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
-"we will create the UI manually in this tutorial."
+"Every message needs to have a context id, which is an integer value you can "
+"get from the statusbar with the get_context_id() function. Its only "
+"parameter is the string value you use to describe that particular context "
+"id. Normally, you'll get a new context id for different kinds of messages, "
+"so that you can use the remove() function to remove a specific message and "
+"not just the most recent one on the stack. This is a simple example with "
+"only one kind of message, though, so we're just using one for everything."
 msgstr ""
-"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
-"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
-"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
-"construtor de interface."
 
-#: C/image-viewer.vala.page:63(p)
+#: C/statusbar.js.page:147(p)
 msgid ""
-"You will learn how to use the interface builder in the <link xref=\"guitar-"
-"tuner.vala\">Guitar-Tuner</link> tutorial."
+"We use the push() function to push a new message onto the stack. Its first "
+"parameter is the context id, and its second is the message."
 msgstr ""
 
-#: C/image-viewer.vala.page:67(p)
-#, fuzzy
-#| msgid ""
-#| "Click <gui>Apply</gui> and the project will be created for you. Open "
-#| "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
-#| "tabs. It contains very basic example code."
+#: C/statusbar.js.page:160(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/main.vala</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. You will see this code:"
+"This code finishes up creating the window, by packing the frames into the "
+"pane, adding it to the window, and telling the window to show all child "
+"widgets."
 msgstr ""
-"Prema <gui>Aplicar</gui> e o proxecto seraÌ creado. Abra <file>src/main.js</"
-"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ConteÌn "
-"coÌdigo de exemplo moi baÌsico."
 
-#: C/image-viewer.vala.page:106(p)
+#: C/statusbar.js.page:164(title)
+msgid "Functions for interacting with the statusbar"
+msgstr ""
+
+#: C/statusbar.js.page:205(p)
 msgid ""
-"The code loads an (empty) window from the user interface description file "
-"and shows it. More details are given below; skip this list if you understand "
-"the basics:"
+"Here we have functions which demonstrate pushing a message onto the stack, "
+"popping the top one off of it, and clearing all messages of a particular "
+"context id. The pop() function just takes one parameter, which is the "
+"context id for the type of message you want to pop off the most recent one "
+"of. The remove_all() function works the same way, except it removes all "
+"messages of that type from the stack."
 msgstr ""
 
-#: C/image-viewer.vala.page:111(p)
+#: C/statusbar.js.page:211(p)
 msgid ""
-"The two <code>using</code> lines at the top import namespaces so we don't "
-"have to name them explicitly."
+"Finally, we create a new instance of the finished StatusbarExample class, "
+"and set the application running."
+msgstr ""
+
+#: C/statusbar.js.page:225(link)
+msgid "Gtk.Frame"
+msgstr ""
+
+#: C/statusbar.js.page:226(link)
+msgid "Gtk.Paned"
 msgstr ""
 
-#: C/image-viewer.vala.page:114(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/statusbar.c.page:26(None)
 #, fuzzy
-#| 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."
-msgid ""
-"The constructor of the <code>Main</code> class creates a new (empty) window "
-"and connects a <link href=\"https://live.gnome.org/Vala/SignalsAndCallbacks";
-"\">signal</link> to exit the application when that window is closed."
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+msgid "@@image: 'media/statusbar3.png'; md5=60c71604fb44656237ee66dfb39a8689"
+msgstr "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+
+#: C/statusbar.c.page:7(title)
+msgid "Statusbar (C)"
 msgstr ""
-"A funciÃn <code>create_window</code> crea unha xanela (baleira) nova e "
-"conecta un sinal para saÃr do aplicativo pÃchase esa xanela."
 
-#: C/image-viewer.vala.page:115(p) C/image-viewer.c.page:67(p)
-#: C/guitar-tuner.c.page:72(p)
+#: C/statusbar.c.page:27(p)
 msgid ""
-"Connecting signals is how you define what happens when you push a button, or "
-"when some other event happens. Here, the <code>destroy</code> function is "
-"called (and quits the app) when you close the window."
+"This statusbar is used to demonstrate how messages are stacked in a last-in-"
+"first-out order. The message at the top of the stack is always the one "
+"displayed."
 msgstr ""
 
-#: C/image-viewer.vala.page:119(p)
-msgid ""
-"The <code>static main</code> function is run by default when you start a "
-"Vala application. It calls a few functions which create the <code>Main</"
-"code> class, set up and then run the application. The <link href=\"http://";
-"valadoc.org/gtk+-3.0/Gtk.main.html\"><code>Gtk.main</code></link> function "
-"starts the GTK <link href=\"http://en.wikipedia.org/wiki/Event_loop\";>main "
-"loop</link>, which runs the user interface and starts listening for events "
-"(like clicks and key presses)."
+#: C/statusbar.c.page:37(link)
+msgid "GtkStatusBar"
 msgstr ""
 
-#: C/image-viewer.vala.page:131(title) C/image-viewer.cpp.page:81(title)
-#: C/image-viewer.c.page:82(title)
-msgid "Creating the user interface"
-msgstr "Crear a interface de usuario"
+#: C/statusbar.c.page:38(link) C/scale.c.page:38(link)
+msgid "String Utility Functions"
+msgstr ""
 
-#: C/image-viewer.vala.page:132(p)
-msgid ""
-"Now we will bring life into the empty window. GTK organizes the user "
-"interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
-"html\"><code>Gtk.Container</code></link>s that can contain other widgets and "
-"even other containers. Here we will use the simplest available container, a "
-"<link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.html\";><code>Gtk."
-"Box</code></link>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/spinner.vala.page:21(None) C/spinner.py.page:21(None)
+#: C/spinner.js.page:21(None) C/spinner.c.page:23(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+msgid "@@image: 'media/spinner.png'; md5=d04f2d81f1d72c6c2f97e8729947dfed"
 msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
 
-#: C/image-viewer.vala.page:136(p)
-msgid "Add the following lines to the top of the <code>Main</code> class:"
+#: C/spinner.vala.page:7(title)
+msgid "Spinner (Vala)"
 msgstr ""
 
-#: C/image-viewer.vala.page:142(p)
-msgid "Now replace the current constructor with the one below:"
+#: C/spinner.vala.page:17(desc) C/spinner.py.page:17(desc)
+#: C/spinner.js.page:17(desc) C/spinner.c.page:18(desc)
+msgid "A spinner animation"
 msgstr ""
 
-#: C/image-viewer.vala.page:168(p)
-msgid ""
-"The first two lines are the parts of the GUI that we will need to access "
-"from more than one method. We declare them up here so that they are "
-"accessible throughout the class instead of only in the method where they are "
-"created."
+#: C/spinner.vala.page:20(title) C/spinner.py.page:20(title)
+#: C/spinner.js.page:20(title) C/spinner.c.page:21(title)
+msgid "Spinner"
 msgstr ""
 
-#: C/image-viewer.vala.page:172(p)
-msgid ""
-"The first lines of the constructor create the empty window. The next lines "
-"create the widgets we want to use: a button for opening up an image, the "
-"image view widget itself and the box we will use as a container."
+#: C/spinner.vala.page:22(p) C/spinner.py.page:22(p) C/spinner.js.page:22(p)
+#: C/spinner.c.page:24(p)
+msgid "This Spinner is stopped and started by pressing the spacebar."
 msgstr ""
 
-#: C/image-viewer.vala.page:176(p)
+#: C/spinner.vala.page:29(link)
+msgid "Gtk.Widget"
+msgstr "Gtk.Widget"
+
+#: C/spinner.vala.page:31(link)
+msgid "Gdk.keyval_name"
+msgstr "Gdk.keyval_name"
+
+#: C/spinner.py.page:7(title)
+msgid "Spinner (Python)"
+msgstr "Spinner (Python)"
+
+#: C/spinner.py.page:31(p)
 msgid ""
-"The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-"pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
-"box and define their behaviour. The image will expand into any available "
-"space whereas 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."
+"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
+"<code>event.keyval</code> into a symbolic name. The names and corresponding "
+"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
+"gdk/gdkkeysyms.h\">here</link>,but for instance <code>GDK_KEY_BackSpace</"
+"code> becomes the string <code>\"BackSpace\"</code>."
+msgstr ""
+
+#: C/spinner.py.page:41(link)
+msgid "Key Values"
+msgstr "Valores da chave"
+
+#: C/spinner.js.page:7(title)
+#| msgid "JavaScript"
+msgid "Spinner (JavaScript)"
+msgstr "Spinner (JavaScript)"
+
+#: C/spinner.c.page:7(title)
+msgid "Spinner (C)"
+msgstr "Spinner (C)"
+
+#: C/spinner.c.page:34(link)
+msgid "GObject"
+msgstr "GObject"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/spinbutton.vala.page:23(None) C/spinbutton.py.page:22(None)
+#: C/spinbutton.c.page:25(None)
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/spinbutton.png'; md5=993cbb7d9bd271a329727a926195712a"
+msgstr "@@image: 'media/spinbutton.png'; md5=993cbb7d9bd271a329727a926195712a"
+
+#: C/spinbutton.vala.page:7(title)
+msgid "SpinButton (Vala)"
+msgstr "SpinButton (Vala)"
+
+#: C/spinbutton.vala.page:19(desc)
+msgid "Retrieve an integer or floating point number."
+msgstr ""
+
+#: C/spinbutton.vala.page:22(title) C/spinbutton.py.page:21(title)
+#: C/spinbutton.js.page:23(title) C/spinbutton.c.page:23(title)
+#| msgid "Button"
+msgid "SpinButton"
+msgstr "SpinButton"
+
+#: C/spinbutton.vala.page:24(p) C/spinbutton.py.page:23(p)
+#: C/spinbutton.c.page:26(p)
+msgid "Choose a number, by entering it or by clicking on the -/+ buttons!"
+msgstr ""
+
+#: C/spinbutton.vala.page:31(link) C/spinbutton.js.page:205(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.SpinButton"
+msgstr "Gtk.SpinButton"
+
+#: C/spinbutton.py.page:7(title)
+msgid "SpinButton (Python)"
+msgstr "SpinButton (Python)"
+
+#: C/spinbutton.py.page:18(desc)
+msgid "Retrieve an integer or floating-point number from the user."
+msgstr ""
+
+#: C/spinbutton.py.page:33(title)
+msgid "Useful methods for a SpinButton widget"
 msgstr ""
 
-#: C/image-viewer.vala.page:183(p)
+#: C/spinbutton.py.page:34(p)
 msgid ""
-"We need to define what happens when the user clicks on the button. GTK uses "
-"the concept of <em>signals</em>."
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
+"changed\"</code> signal, emitted when the value of the spinbutton changes."
 msgstr ""
 
-#: C/image-viewer.vala.page:184(p)
+#: C/spinbutton.py.page:35(p)
 msgid ""
-"When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
-"link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
-"Button.clicked.html\"><code>clicked</code></link> signal, which we can "
-"connect to some action (defined in a <link href=\"https://live.gnome.org/";
-"Vala/SignalsAndCallbacks\">callback</link> method)."
+"A Gtk.Adjustment is needed to construct the Gtk.SpinButton. This is the "
+"representation of a value with a lower and upper bound, together with step "
+"and page increments, and a page size, and it is constructed as <code>Gtk."
+"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
+"code> where the fields are of type <code>float</code>; <code>step_increment</"
+"code> is the increment/decrement that is obtained by using the cursor keys "
+"or the buttons of the spinbutton. Note that <code>page_increment</code> and "
+"<code>page_size</code> are not used in this case, and they should be set to "
+"<code>0</code>."
 msgstr ""
 
-#: C/image-viewer.vala.page:187(p)
+#: C/spinbutton.py.page:37(p)
 msgid ""
-"This is done using the <code>connect</code> method of the button's "
-"<code>clicked</code> signal, which in this case tells GTK to call the (yet "
-"undefined) <code>on_image_open</code> callback method when the button is "
-"clicked. We will define the <em>callback</em> in the next section."
+"If you want the value of the spinbutton to wrap around when they exceed the "
+"maximum or the minimum, set <code>set_wrap(True)</code>. The <code>\"wrapped"
+"\"</code> signal is emitted when this happens."
 msgstr ""
 
-#: C/image-viewer.vala.page:191(p)
+#: C/spinbutton.py.page:38(p)
 msgid ""
-"In the callback, we need to access the <code>window</code> and <code>image</"
-"code> widgets, which is why we defined them as private members at the top of "
-"our class."
+"<code>set_digits(digits)</code> sets the precision to be displayed by the "
+"spinbutton, up to 20 digits."
 msgstr ""
 
-#: C/image-viewer.vala.page:195(p)
+#: C/spinbutton.py.page:39(p)
 msgid ""
-"The last <code>connect</code> call makes sure that the application exits "
-"when the window is closed. The code generated by Anjuta called an "
-"<code>on_destroy</code> callback method which called <link href=\"http://www.";
-"valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></link>, "
-"but just connecting our signal to <code>main_quit</code> directly is easier. "
-"You can delete the <code>on_destroy</code> method."
+"To get the value of the spinbutton as an integer, use <code>get_value_as_int"
+"()</code>."
 msgstr ""
 
-#: C/image-viewer.vala.page:202(title) C/image-viewer.cpp.page:136(title)
-#: C/image-viewer.c.page:147(title)
-msgid "Showing the image"
-msgstr "Mostrar a imaxe"
+#: C/spinbutton.py.page:47(link) C/spinbutton.c.page:36(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "GtkSpinButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/spinbutton.py.page:48(link) C/spinbutton.c.page:38(link)
+#: C/scale.py.page:56(link) C/scale.c.page:37(link)
+msgid "GtkAdjustment"
+msgstr ""
 
-#: C/image-viewer.vala.page:203(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/spinbutton.js.page:24(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
 msgid ""
-"We will now define the signal handler for the <code>clicked</code> signal "
-"for the button we mentioned before. Add this code after the constructor:"
+"@@image: 'media/spinbuttonkittens.png'; md5=577cce8a902140aacbab73fe8a76a010"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/spinbutton.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "SpinButton (JavaScript)"
+msgstr "JavaScript"
+
+#: C/spinbutton.js.page:20(desc)
+msgid "A number entry field that has + and - buttons"
 msgstr ""
 
-#: C/image-viewer.vala.page:229(p)
-msgid "This is a bit complicated, so let's break it down:"
+#: C/spinbutton.js.page:25(p)
+msgid ""
+"A SpinButton is not related to a <link xref=\"spinner.js\">Spinner.</link> "
+"It's a text entry field which only accepts numbers, and which has plus and "
+"minus buttons to let you change the value without having to type anything in."
 msgstr ""
 
-#: C/image-viewer.vala.page:230(p)
+#: C/spinbutton.js.page:26(p)
 msgid ""
-"A signal handler is a type of callback method that is called when a signal "
-"is emitted. Here the terms are used interchangeably."
+"It's best used when it's obvious that only a number can be entered into it. "
+"In this example, two SpinButtons are used for the number of kittens and "
+"number of cans of tuna to give them."
 msgstr ""
 
-#: C/image-viewer.vala.page:233(p)
+#: C/spinbutton.js.page:68(p)
 msgid ""
-"The first argument of the callback method is always the widget that sent the "
-"signal. Sometimes other arguments related to the signal come after that, but "
-"<em>clicked</em> doesn't have any."
+"All the code for this sample goes in the SpinButtonExample 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 ""
 
-#: C/image-viewer.vala.page:235(p)
+#: C/spinbutton.js.page:84(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the SpinButtons"
+msgstr "Crear a interface de usuario"
+
+#: C/spinbutton.js.page:91(p)
 msgid ""
-"In this case the <code>button</code> sent the <code>clicked</code> signal, "
-"which is connected to the <code>on_open_image</code> callback method:"
+"We can use the new_with_range function to create a new SpinButton quickly. "
+"Its first parameter is the SpinButton's starting value, its second is the "
+"maximum value, and its third is how much to increment it when the plus or "
+"minus buttons are pressed."
 msgstr ""
 
-#: C/image-viewer.vala.page:240(p)
+#: C/spinbutton.js.page:92(p)
 msgid ""
-"The <code>on_open_image</code> method takes the button that emitted the "
-"signal as an argument:"
+"After we create the first SpinButton, we connect its value-changed signal to "
+"a function which handles what happens when the number inside either "
+"SpinButton changes."
 msgstr ""
 
-#: C/image-viewer.vala.page:246(p)
+#: C/spinbutton.js.page:111(p)
 msgid ""
-"The next interesting line is where the dialog for choosing the file is "
-"created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.";
-"html\"><code>FileChooserDialog</code></link>'s constructor takes the title "
-"of the dialog, the parent window of the dialog and several options like the "
-"number of buttons and their corresponding values."
+"If you want more fine-grained control over a SpinButton, or want to create a "
+"bunch of SpinButtons which all use the same parameters, you can create an "
+"object called an <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Adjustment.html\">Adjustment.</link> Then you can use that object as a "
+"new SpinButton's adjustment property, and it sets all the values at once. "
+"Afterwards, you can change all the SpinButtons which use that adjustment by "
+"changing the Adjustment object's properties."
 msgstr ""
 
-#: C/image-viewer.vala.page:248(p)
+#: C/spinbutton.js.page:112(p)
 msgid ""
-"Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-3.0/";
-"Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead of "
-"manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
-"is that the button labels will already be translated into the user's "
-"language."
+"The commented-out lines here show things you can do to customize your "
+"SpinButton. You can set the number of digits which go after the decimal "
+"point, for example, or tell it to wrap the number around if it goes past the "
+"upper or lower bounds that you set."
 msgstr ""
 
-#: C/image-viewer.vala.page:252(p)
+#: C/spinbutton.js.page:113(p)
 msgid ""
-"The next two lines restrict the <gui>Open</gui> dialog to only display files "
-"which can be opened by <em>GtkImage</em>. GtkImage is a widget which "
-"displays an image. A filter object is created first; we then add all kinds "
-"of files supported by <link href=\"http://www.valadoc.org/gdk-pixbuf-2.0/Gdk.";
-"Pixbuf.html\"><code>Gdk.Pixbuf</code></link> (which includes most image "
-"formats like PNG and JPEG) to the filter. Finally, we set this filter to be "
-"the <gui>Open</gui> dialog's filter."
+"For the kitties' sake, please don't use set_digits to allow a decimal number "
+"of kittens."
 msgstr ""
 
-#: C/image-viewer.vala.page:257(p)
+#: C/spinbutton.js.page:117(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Creating the rest of the UI"
+msgstr "Crear a interface de usuario"
+
+#: C/spinbutton.js.page:128(p)
 msgid ""
-"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
-"\"><code>dialog.run</code></link> displays the <gui>Open</gui> dialog. The "
-"dialog will wait for the user to choose an image; when they do, <code>dialog."
-"run</code> will return the <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
-"ResponseType.html\">ResponseType</link> value <code>ResponseType.ACCEPT</"
-"code> (it would return <code>ResponseType.CANCEL</code> if the user clicked "
-"<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
+"We create each <link xref=\"label.js\">Label</link> individually, and then "
+"string them together along with the SpinButtons. The last label needs to "
+"show the number of cans of tuna per kitten, so it has a variable in the "
+"middle, which corresponds to an equation that uses the SpinButtons' "
+"get_value functions to find out what they're set at. JavaScript's Math "
+"function's floor method is used to round the number of cans of tuna per "
+"kitten down to the nearest whole number."
 msgstr ""
 
-#: C/image-viewer.vala.page:262(p)
+#: C/spinbutton.js.page:154(p)
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next lines get the "
-"filename of the image selected by the user, and tell the <code>GtkImage</"
-"code> widget to load and display the selected image."
+"Here we use <link xref=\"grid.js\">Grid</link> widgets to keep everything "
+"organized. One Grid holds the labels and SpinButtons in order, while the "
+"next puts that Grid on top and the final Label on the bottom."
 msgstr ""
 
-#: C/image-viewer.vala.page:265(p) C/image-viewer.py.page:212(p)
-#: C/image-viewer.js.page:298(p)
+#: C/spinbutton.js.page:155(p)
 msgid ""
-"In the final line of this method, we destroy the <gui>Open</gui> dialog "
-"because we don't need it any more."
+"There isn't a wrong way to organize things in Grids, so long as you like how "
+"it turns out. In this case, the top Grid has a margin on the bottom to keep "
+"it evenly spaced from the bottom Label, and the bottom Label is inside a "
+"separate Grid so it will be centered relative to the Labels and SpinButtons "
+"on the top."
 msgstr ""
 
-#: C/image-viewer.vala.page:266(p)
-msgid "Destroying automatically hides the dialog."
+#: C/spinbutton.js.page:169(title)
+msgid "Function which handles the SpinButtons' numerical values being adjusted"
 msgstr ""
 
-#: C/image-viewer.vala.page:273(p) C/image-viewer.cpp.page:205(p)
-#: C/image-viewer.c.page:215(p) C/guitar-tuner.vala.page:247(p)
-#: C/guitar-tuner.c.page:250(p)
+#: C/spinbutton.js.page:182(p)
 msgid ""
-"All of the code should now be ready to go. Click <guiseq><gui>Build</"
-"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start the application."
+"Here we update the perKitten variable based on the SpinButtons' new values, "
+"and use the set_label property to refresh what _lastLabel shows. Since both "
+"SpinButtons have their value-changed signal connected to this function, "
+"every time either of the numbers changes this function will update the Label."
 msgstr ""
 
-#: C/image-viewer.vala.page:275(p)
-#, fuzzy
-#| msgid ""
-#| "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
-#| "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-#| "and enjoy!"
+#: C/spinbutton.js.page:189(p)
 msgid ""
-"If you haven't already done so, choose the <file>src/image-viewer</file> "
-"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
-"enjoy!"
+"Finally, we create a new instance of the finished SpinButtonExample class, "
+"and set the application running."
+msgstr ""
+
+#: C/spinbutton.js.page:200(link) C/scale.vala.page:32(link)
+#: C/scale.js.page:209(link)
+msgid "Gtk.Adjustment"
 msgstr ""
-"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/image-viewer</"
-"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
-"desfrute!"
 
-#: C/image-viewer.vala.page:281(p)
+#: C/spinbutton.c.page:7(title)
 #, fuzzy
-#| msgid ""
-#| "If you run into problems with the tutorial, compare your code with this "
-#| "<link href=\"image-viewer/image-viewer.js\">reference code</link>."
-msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
+#| msgid "Button"
+msgid "SpinButton (C)"
+msgstr "BotÃn"
+
+#: C/spinbutton.c.page:20(desc)
+msgid "Retrieve an integer or floating point number"
 msgstr ""
-"Se ten problemas con este titorial, compare o seu coÌdigo con este <link href="
-"\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
 
-#: C/image-viewer.vala.page:285(title) C/image-viewer.py.page:229(title)
-#: C/image-viewer.js.page:315(title) C/image-viewer.cpp.page:215(title)
-#: C/image-viewer.c.page:225(title) C/guitar-tuner.vala.page:263(title)
-#: C/guitar-tuner.py.page:232(title) C/guitar-tuner.cpp.page:268(title)
-#: C/guitar-tuner.c.page:260(title)
-msgid "Next steps"
-msgstr "Seguintes pasos"
+#: C/signals-callbacks.py.page:8(title)
+msgid "Signals and callbacks (Python)"
+msgstr ""
 
-#: C/image-viewer.vala.page:286(p) C/image-viewer.py.page:230(p)
-#: C/image-viewer.js.page:316(p) C/image-viewer.cpp.page:216(p)
-#: C/image-viewer.c.page:226(p) C/guitar-tuner.vala.page:264(p)
-#: C/guitar-tuner.py.page:233(p) C/guitar-tuner.cpp.page:269(p)
-#: C/guitar-tuner.c.page:261(p)
-msgid "Here are some ideas for how you can extend this simple demonstration:"
+#: C/signals-callbacks.py.page:12(desc)
+msgid "An explanation of signals and callbacks in GTK+."
 msgstr ""
-"Aquà hai algunhas ideas sobre como pode estender esta sinxela demostraciÃn:"
 
-#: C/image-viewer.vala.page:288(p)
-msgid ""
-"Set it up so that when the window opens it is of a specific size to start "
-"off with. For example, 200 X 200 pixels."
+#: C/signals-callbacks.py.page:25(title)
+msgid "Signals and callbacks"
 msgstr ""
 
-#: C/image-viewer.vala.page:290(p) C/image-viewer.py.page:233(p)
-#: C/image-viewer.js.page:319(p) C/image-viewer.cpp.page:219(p)
-#: C/image-viewer.c.page:229(p)
-msgid ""
-"Have the user select a directory rather than a file, and provide controls to "
-"cycle through all of the images in a directory."
+#: C/signals-callbacks.py.page:30(title) C/properties.py.page:30(title)
+#: C/model-view-controller.py.page:30(title)
+msgid "Overview"
 msgstr ""
 
-#: C/image-viewer.vala.page:293(p) C/image-viewer.py.page:236(p)
-#: C/image-viewer.js.page:322(p) C/image-viewer.cpp.page:222(p)
-#: C/image-viewer.c.page:232(p)
+#: C/signals-callbacks.py.page:32(p)
 msgid ""
-"Apply random filters and effects to the image when it is loaded and allow "
-"the user to save the modified image."
+"Like most GUI toolkits, GTK+ uses an event-driven programming model. When "
+"the user is doing nothing, GTK+ sits in the main loop and waits for input. "
+"If the user performs some action - say, a mouse click - then the main loop "
+"\"wakes up\" and delivers an event to GTK+."
 msgstr ""
-"Aplicar filtros aleatorios e efectos à imaxe cando se carga e permitir ao "
-"usuario gardar a imaxe modificada."
 
-#: C/image-viewer.vala.page:294(p) C/image-viewer.py.page:237(p)
-#: C/image-viewer.js.page:323(p) C/image-viewer.cpp.page:223(p)
-#: C/image-viewer.c.page:233(p)
+#: C/signals-callbacks.py.page:34(p)
 msgid ""
-"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
-"image manipulation capabilities."
+"When widgets receive an event, they frequently emit one or more signals. "
+"Signals notify your program that \"something interesting happened\" by "
+"invoking functions you have connected to the signal. Such functions are "
+"commonly known as callbacks. When your callbacks are invoked, you would "
+"typically take some action. After a callback finishes, GTK+ will return to "
+"the main loop and await more user input."
 msgstr ""
-"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> fornece capacidades "
-"moi potentes de manipulaciÃn de imaxes."
 
-#: C/image-viewer.vala.page:297(p) C/image-viewer.py.page:240(p)
-#: C/image-viewer.js.page:326(p) C/image-viewer.cpp.page:226(p)
-#: C/image-viewer.c.page:236(p)
+#: C/signals-callbacks.py.page:36(p)
 msgid ""
-"Allow the user to load images from network shares, scanners, and other more "
-"complicated sources."
+"A generic example is: <code>handler_id = widget.connect(\"event\", callback, "
+"data)</code>. <code>widget</code> is an instance of a widget we created "
+"earlier. Next, the <code>event</code> we are interested in. Each widget has "
+"its own particular events which can occur. For instance, if you have a Gtk."
+"Button you usually want to connect to the \"clicked\" event: this means that "
+"when the button is clicked, the signal is issued. Another example is the "
+"<code>notify::property</code> signal: whenever a <link xref=\"properties.py"
+"\">property</link> is modified on a GObject, instead of just emitting the "
+"<code>notify</code> signal, GObject associates as a detail to this signal "
+"emission the name of the property modified. This allows clients who wish to "
+"be notified of changes to only one property to filter most events before "
+"receiving them. Thirdly, the callback argument is the name of the callback "
+"function, which contains the code which runs when signals of the specified "
+"type are issued. Finally, the optional data argument includes any data which "
+"should be passed when the signal is issued."
 msgstr ""
-"Permitir ao usuario cargar imaxes desde recursos de rede compartidos, "
-"escÃneres e outras fontes mÃis complicadas."
 
-#: C/image-viewer.vala.page:298(p) C/image-viewer.py.page:241(p)
-#: C/image-viewer.js.page:327(p) C/image-viewer.cpp.page:227(p)
-#: C/image-viewer.c.page:237(p)
+#: C/signals-callbacks.py.page:38(p)
 msgid ""
-"You can use <link href=\"http://library.gnome.org/devel/gio/unstable/\";>GIO</"
-"link> to handle network file tranfers and the like, and <link href=\"http://";
-"library.gnome.org/devel/gnome-scan/unstable/\">GNOME Scan</link> to handle "
-"scanning."
+"The function returns a number (the <code>handler_id</code>) that identifies "
+"this particular signal-callback pair. This number is required to disconnect "
+"from a signal such that the callback function will not be called during any "
+"future or currently ongoing emissions of the signal it has been connected "
+"to, as in <code>widget.disconnect(handler_id)</code>."
 msgstr ""
 
-#: C/image-viewer.py.page:9(desc)
+#: C/signals-callbacks.py.page:45(p)
 msgid ""
-"A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK."
+"<link href=\"http://developer.gnome.org/gobject/stable/signal.html";
+"\">Signals</link> in GObject documentation"
 msgstr ""
-"Algo mÃis que un aplicativo sinxelo ÂHola mundo - escribir un visor de "
-"imaxes en GTK."
-
-#: C/image-viewer.py.page:13(name) C/image-viewer.js.page:13(name)
-msgid "Jonh Wendell"
-msgstr "Jonh Wendell"
 
-#: C/image-viewer.py.page:14(email) C/image-viewer.js.page:14(email)
-msgid "jwendell gnome org"
-msgstr "jwendell gnome org"
-
-#: C/image-viewer.py.page:26(p) C/image-viewer.js.page:26(p)
+#: C/signals-callbacks.py.page:46(p)
 msgid ""
-"In this tutorial, we're going to write a very simple GTK application that "
-"loads and displays an image file. You will learn how to:"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Basics - Main loop and Signals</link> in Python Gtk+ 3 Tutorial"
 msgstr ""
-"Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
-"mostra un ficheiro de imaxe. Vostede aprenderaÌ a:"
 
-#: C/image-viewer.py.page:28(p)
-msgid "Write a basic GTK user interface in Python"
-msgstr "Escribir unha interface de usuario bÃsica en Python"
-
-#: C/image-viewer.py.page:29(p) C/image-viewer.js.page:29(p)
-msgid "Deal with events by connecting signals to signal handlers"
-msgstr "Xestionar eventos conectando sinais a xestores de sinais"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/set-up-gedit.js.page:24(None)
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/geditview.png'; md5=f1438295662d95f56fcd1d8200efaaf2"
+msgstr "@@image: 'media/geditview.png'; md5=f1438295662d95f56fcd1d8200efaaf2"
 
-#: C/image-viewer.py.page:30(p) C/image-viewer.js.page:30(p)
-msgid "Lay out GTK user interfaces using containers"
-msgstr "DisponÌer interfaces de usuario GTK usando contedores"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/set-up-gedit.js.page:36(None)
+#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+msgid "@@image: 'media/gediteditor.png'; md5=50db1ee8f2c545744879ee9fba5b4b24"
+msgstr "@@image: 'media/gediteditor.png'; md5=50db1ee8f2c545744879ee9fba5b4b24"
 
-#: C/image-viewer.py.page:31(p) C/image-viewer.js.page:31(p)
-msgid "Load and display image files"
-msgstr "Cargar e mostrar ficheiros de imaxe"
+#: C/set-up-gedit.js.page:18(title)
+msgid "Set up gedit for JavaScript development"
+msgstr "Configurar gedit para o desenvolvemento con JavaScript"
 
-#: C/image-viewer.py.page:36(p)
-msgid "Basic knowledge of the python programming language"
+#: C/set-up-gedit.js.page:19(p)
+msgid ""
+"This tutorial will show you how to set up <link href=\"http://projects.gnome.";
+"org/gedit/\">gedit,</link> GNOME's basic text editor, so that it has a "
+"handful of extra features which are useful for writing JavaScript code."
 msgstr ""
 
-#: C/image-viewer.py.page:50(p)
-#, fuzzy
-#| 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>image-viewer</file> as project name and directory."
+#: C/set-up-gedit.js.page:22(title)
+msgid "Making code clearer"
+msgstr "Facer o cÃdigo mÃis claro"
+
+#: C/set-up-gedit.js.page:23(p)
 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>image-viewer</file> as project name and directory."
+"Click on <gui>Edit</gui> in gedit's menu bar, then click on <gui>Preferences."
+"</gui> You should see something like this:"
 msgstr ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.py.page:53(p)
-msgid ""
-"Be sure to disable <gui>Use GtkBuilder for user interface</gui> as we will "
-"build the user interface manually in this example. For an example of using "
-"the interface designer, check the <link xref=\"guitar-tuner.py\">Guitar-"
-"Tuner demo</link>."
+#: C/set-up-gedit.js.page:25(p)
+msgid "Here are the options you want to make sure are turned on."
 msgstr ""
 
-#: C/image-viewer.py.page:58(p)
+#: C/set-up-gedit.js.page:27(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/image_viewer.py</file> from the <gui>Project</gui> or <gui>File</"
-"gui> tabs. It contains very basic example code."
+"<gui>Display line numbers</gui> will help you compare the code you type in "
+"with the original, and make it easier to see which line is causing an error "
+"if there is a bug."
 msgstr ""
-"Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/image_viewer."
-"py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
-"ContÃn un exemplo de cÃdigo moi bÃsico:"
 
-#: C/image-viewer.py.page:64(title) C/image-viewer.js.page:125(title)
-msgid "A first Gtk application"
-msgstr "Un primeiro aplicativo en GTK"
+#: C/set-up-gedit.js.page:28(p)
+msgid ""
+"<gui>Highlight current line</gui> makes it easier to see which line you're "
+"on, when you have to go back and forth a lot."
+msgstr ""
 
-#: C/image-viewer.py.page:65(p)
-msgid "Let's see what a very basic Gtk application looks like in Python:"
-msgstr "Vexamos como à o mÃis bÃsico dun aplicativo Gtk en Python:"
+#: C/set-up-gedit.js.page:29(p)
+msgid ""
+"<gui>Highlight matching brackets</gui> helps you make sure you didn't leave "
+"out a bracket by accident."
+msgstr ""
 
-#: C/image-viewer.py.page:89(p) C/image-viewer.js.page:136(p)
-msgid "Let's take a look at what's happening:"
-msgstr "Botemos unha ollada ao que està pasando:"
+#: C/set-up-gedit.js.page:34(title)
+msgid "Making editing easier"
+msgstr ""
 
-#: C/image-viewer.py.page:92(p) C/image-viewer.js.page:139(p)
+#: C/set-up-gedit.js.page:35(p)
 msgid ""
-"The first line imports the Gtk namespace (that is, it includes the Gtk "
-"library). The libraries are provided by GObject Introspection (gi), which "
-"provides language bindings for many GNOME libraries."
+"In gedit's <gui>Preferences</gui> dialog, click on the <gui>Editor</gui> "
+"tab. You should see something like this:"
 msgstr ""
 
-#: C/image-viewer.py.page:95(p)
+#: C/set-up-gedit.js.page:37(p)
 msgid ""
-"In the <code>__init__</code> method of the <code>GUI</code> class creates an "
-"(empty) <code>Gtk.Window</code>, sets its title and then connects a signal "
-"to quit the application once the window is closed. That's pretty simple "
-"overall, more on signals later."
+"Here, you want to have <gui>Enable automatic indentation</gui> turned on. "
+"This means that when you hit <key>Enter</key> the cursor stays indented as "
+"far as the last line was. This is extremely useful when writing JavaScript "
+"code, since it uses indentation to make it clearer which parts do what."
 msgstr ""
 
-#: C/image-viewer.py.page:100(p)
+#: C/set-up-gedit.js.page:38(p)
 msgid ""
-"Next, <code>destroy</code> is defined which just quits the application. It "
-"is called by the <code>destroy</code> signal connected above."
+"If you want to share code with other people who write GNOME JavaScript "
+"applications, you'll also want to set <gui>Tab width</gui> to 4 and turn on "
+"<gui>Insert spaces instead of tabs.</gui>"
 msgstr ""
-"A continuaciÃn, <code>destroy</code> està definido sà para saÃr do "
-"aplicativo. Ã chamado pola sinal <code>destroy</code> conectada enriba."
 
-#: C/image-viewer.py.page:104(p)
-msgid "The rest of the file does initialisation for Gtk and displays the GUI."
-msgstr "O resto do ficheiro inicializa Gtk e mostra o GUI."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/separator.py.page:23(None)
+#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+msgid "@@image: 'media/separator.png'; md5=8769b27662ce5c77f99e9ce33751a21a"
+msgstr "@@image: 'media/separator.png'; md5=8769b27662ce5c77f99e9ce33751a21a"
 
-#: C/image-viewer.py.page:108(p)
-msgid ""
-"This code is ready to run, so try it using <guiseq><gui>Run</"
-"gui><gui>Execute</gui></guiseq>. It should show you an empty window."
+#: C/separator.py.page:7(title)
+msgid "Seperator (Python)"
 msgstr ""
 
-#: C/image-viewer.py.page:113(title) C/image-viewer.js.page:180(title)
-msgid "Signals"
-msgstr "Sinais"
+#: C/separator.py.page:18(desc)
+#| msgid "Display widgets"
+msgid "A separator widget"
+msgstr "Un widgets de separaciÃn"
+
+#: C/separator.py.page:21(title)
+msgid "Separator"
+msgstr "Separador"
+
+#: C/separator.py.page:24(p)
+msgid "A horizontal and a vertical separator divide some labels."
+msgstr "Un separador horizontal ou vertical para dividir algunhas etiquetas."
+
+#: C/separator.py.page:34(title)
+msgid "API Reference"
+msgstr "Referencia da API"
 
-#: C/image-viewer.py.page:114(p) C/image-viewer.js.page:181(p)
+#: C/separator.py.page:38(link)
+msgid "GtkSeparator"
+msgstr "GtkSeparator"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/scrolledwindow.vala.page:22(None) C/scrolledwindow.py.page:21(None)
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
 msgid ""
-"Signals are one of the key concepts in Gtk programming. Whenever something "
-"happens to an object, it emits a signal; for example, when a button is "
-"clicked it gives off the <code>clicked</code> signal. If you want your "
-"program to do something when that event occurs, you must connect a function "
-"(a \"signal handler\") to that signal. Here's an example:"
+"@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
 msgstr ""
+"@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
 
-#: C/image-viewer.py.page:121(p) C/image-viewer.js.page:188(p)
-msgid ""
-"The last two lines create a <code>Gtk.Button</code> called <code>b</code> "
-"and connect its <code>clicked</code> signal to the <code>button_clicked</"
-"code> function, which is defined above. Every time the button is clicked, "
-"the code in the <code>button_clicked</code> function will be executed. It "
-"just prints a message here."
+#: C/scrolledwindow.vala.page:7(title)
+msgid "ScrolledWindow (Vala)"
+msgstr "ScrolledWindow (Vala)"
+
+#: C/scrolledwindow.vala.page:18(desc) C/scrolledwindow.py.page:17(desc)
+msgid "Adds scrollbars to its child widget"
 msgstr ""
 
-#: C/image-viewer.py.page:125(title) C/image-viewer.js.page:211(title)
-msgid "Containers: Laying-out the user interface"
-msgstr "Contedores: deseÃar a interface de usuario"
+#: C/scrolledwindow.vala.page:21(title) C/scrolledwindow.py.page:20(title)
+#| msgid "Scrolling"
+msgid "ScrolledWindow"
+msgstr "ScrolledWindow"
+
+#: C/scrolledwindow.vala.page:23(p) C/scrolledwindow.py.page:22(p)
+msgid "An image in a scrolled window."
+msgstr "Unha imaxe dunha xanela con desprazamento."
+
+#: C/scrolledwindow.py.page:7(title)
+msgid "ScrolledWindow (Python)"
+msgstr "ScrolledWindow (Python)"
+
+#: C/scrolledwindow.py.page:31(title)
+msgid "Useful methods for a ScrolledWindow widget"
+msgstr "MÃtodos Ãtiles para o widget ScrollWindow"
 
-#: C/image-viewer.py.page:126(p) C/image-viewer.js.page:212(p)
+#: C/scrolledwindow.py.page:33(p)
 msgid ""
-"Widgets (controls, such as buttons and labels) can be arranged in the window "
-"by making use of <em>containers</em>. You can organize the layout by mixing "
-"different types of containers, like boxes and grids."
+"<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> where each of "
+"the arguments is one of <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
+"Policy.NEVER</code> regulates whether the horizontal and vertical scrollbars "
+"should appear: with <code>AUTOMATIC</code> they appear only if needed, "
+"<code>ALWAYS</code> and <code>NEVER</code> are self-explanatory."
 msgstr ""
 
-#: C/image-viewer.py.page:127(p) C/image-viewer.js.page:213(p)
+#: C/scrolledwindow.py.page:34(p)
 msgid ""
-"A <code>Gtk.Window</code> is itself a type of container, but you can only "
-"put one widget directly into it. We would like to have two widgets, an image "
-"and a button, so we must put a \"higher-capacity\" container inside the "
-"window to hold the other widgets. A number of <link href=\"http://library.";
-"gnome.org/devel/gtk/stable/GtkContainer.html\">container types</link> are "
-"available, but we will use a <code>Gtk.Box</code> here. A <code>Gtk.Box</"
-"code> can hold several widgets, organized horizontally or vertically. You "
-"can do more complicated layouts by putting several boxes inside another box "
-"and so on."
+"<code>add_with_viewport(widget)</code> is used to add the Gtk.Widget "
+"<code>widget</code> without native scrolling capabilities inside the window."
 msgstr ""
 
-#: C/image-viewer.py.page:129(p) C/image-viewer.js.page:215(p)
+#: C/scrolledwindow.py.page:35(p)
 msgid ""
-"There is a graphical user interface designer called <app>Glade</app> "
-"integrated in <app>Anjuta</app> which makes UI design really easy. For this "
-"simple example, however, we will code everything manually."
+"<code>set_placement(window_placement)</code> sets the placement of the "
+"contents with respect to the scrollbars for the scrolled window. The options "
+"for the argument are <code>Gtk.CornerType.TOP_LEFT</code> (default: the "
+"scrollbars are on the bottom and on the right of the window), <code>Gtk."
+"CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk.CornerType."
+"BOTTOM_RIGHT</code>."
 msgstr ""
 
-#: C/image-viewer.py.page:131(p)
+#: C/scrolledwindow.py.page:36(p)
 msgid ""
-"Let's add the box and widgets to the window. Insert the following code into "
-"the <code>__init__</code> method, immediately after the <code>window."
-"connect_after</code> line:"
+"<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
+"(adjustment)</code> set the Gtk.Adjustment <code>adjustment</code>. This is "
+"the representation of a value with a lower and upper bound, together with "
+"step and page increments, and a page size, and it is constructed as "
+"<code>Gtk.Adjustment(value, lower, upper, step_increment, page_increment, "
+"page_size)</code> where the fields are of type <code>float</code>. (Note "
+"that <code>step_increment</code> is not used in this case, it can be set to "
+"<code>0</code>.)"
 msgstr ""
 
-#: C/image-viewer.py.page:139(p)
-msgid ""
-"The first line creates a <code>Gtk.Box</code> called <code>box</code> and "
-"the following lines set two of its properties: the <code>orientation</code> "
-"is set to vertical (so the widgets are arranged in a column), and the "
-"<code>spacing</code> between the widgets is set to 5 pixels. The next line "
-"then adds the newly-created <code>Gtk.Box</code> to the window."
+#: C/scrolledwindow.py.page:45(link) C/paned.py.page:42(link)
+#: C/image.vala.page:33(link) C/image.py.page:100(link)
+#: C/image.c.page:34(link) C/grid.py.page:58(link)
+msgid "GtkImage"
 msgstr ""
 
-#: C/image-viewer.py.page:140(p) C/image-viewer.js.page:222(p)
-msgid ""
-"So far the window only contains an empty <code>Gtk.Box</code>, and if you "
-"run the program now you will see no changes at all (the <code>Gtk.Box</code> "
-"is a transparent container, so you can't see that it's there)."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/scale.vala.page:23(None) C/scale.py.page:22(None)
+#| msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+msgid "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+msgstr "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+
+#: C/scale.vala.page:7(title)
+#| msgid "Sample Vala code"
+msgid "Scale (Vala)"
+msgstr "Scale (Vala)"
+
+#: C/scale.vala.page:19(desc) C/scale.py.page:18(desc) C/scale.c.page:19(desc)
+msgid "A slider widget for selecting a value from a range"
 msgstr ""
 
-#: C/image-viewer.py.page:144(title) C/image-viewer.js.page:226(title)
-msgid "Packing: Adding widgets to the container"
-msgstr "Empaquetado: Engadir widgets ao contedor"
+#: C/scale.vala.page:22(title) C/scale.py.page:21(title)
+#: C/scale.js.page:20(title) C/scale.c.page:22(title)
+msgid "Scale"
+msgstr ""
 
-#: C/image-viewer.py.page:145(p)
-msgid ""
-"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
-"directly below the <code>window.add (box)</code> line:"
+#: C/scale.vala.page:24(p) C/scale.py.page:23(p) C/scale.c.page:25(p)
+msgid "Slide the scales!"
 msgstr ""
 
-#: C/image-viewer.py.page:149(p)
+#: C/scale.vala.page:31(link) C/scale.js.page:214(link)
+msgid "Gtk.Scale"
+msgstr "Gtk.Scale"
+
+#: C/scale.vala.page:33(link)
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.PositionType"
+msgstr "Gtk.PositionType"
+
+#: C/scale.vala.page:34(link)
+#| msgid "Gtk.Application"
+msgid "Gtk.Orientation"
+msgstr "Gtk.Orientation"
+
+#: C/scale.py.page:7(title)
+#| msgid "Python"
+msgid "Scale (Python)"
+msgstr "Scale (Python)"
+
+#: C/scale.py.page:33(title)
+msgid "Useful methods for a Scale widget"
+msgstr "MÃtodos Ãtiles para o widget Scale"
+
+#: C/scale.py.page:34(p)
 msgid ""
-"The first line creates a new <code>Gtk.Image</code> called <code>image</"
-"code>, which will be used to display an image file. As we need that later on "
-"in the signal handler, we will define it as a class-wide variable. You need "
-"to add <code>image = 0</code> to the beginning of the <code>GUI</code> "
-"class. Then, the image widget is added (<em>packed</em>) into the <code>box</"
-"code> container using GtkBox's <link href=\"http://library.gnome.org/devel/";
-"gtk/stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> "
-"method."
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
+"changed\"</code> signal, emitted when the value of the scale changes."
 msgstr ""
 
-#: C/image-viewer.py.page:151(p)
+#: C/scale.py.page:35(p)
 msgid ""
-"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
-"the GtkBox (<code>child</code>); whether the <code>Gtk.Box</code> should "
-"grow larger when the new widget is added (<code>expand</code>); whether the "
-"new widget should take up all of the extra space created if the <code>Gtk."
-"Box</code> gets bigger (<code>fill</code>); and how much space there should "
-"be, in pixels, between the widget and its neighbors inside the <code>Gtk."
-"Box</code> (<code>padding</code>)."
+"A Gtk.Adjustment is needed to construct the Gtk.Scale. This is the "
+"representation of a value with a lower and upper bound, together with step "
+"and page increments, and a page size, and it is constructed as <code>Gtk."
+"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
+"code> where the fields are of type <code>float</code>; <code>step_increment</"
+"code> is the increment/decrement that is obtained by using the cursor keys, "
+"<code>page_increment</code> the one that is obtained clicking on the scale "
+"itself. Note that <code>page_size</code> is not used in this case, it should "
+"be set to <code>0</code>."
 msgstr ""
 
-#: C/image-viewer.py.page:152(p) C/image-viewer.js.page:233(p)
+#: C/scale.py.page:37(p)
 msgid ""
-"Gtk containers (and widgets) dynamically expand to fill the available space, "
-"if you let them. You don't position widgets by giving them a precise x,y-"
-"coordinate location in the window; rather, they are positioned relative to "
-"one another. This makes handling window resizing much easier, and widgets "
-"should automatically take a sensible size in most situations."
+"<code>get_value()</code> retrieves the current value of the scale; "
+"<code>set_value(value)</code> sets it (if the <code>value</code>, of type "
+"<code>float</code>, is outside the minimum or maximum range, it will be "
+"clamped to fit inside them). These are methods of the class Gtk.Range."
 msgstr ""
 
-#: C/image-viewer.py.page:153(p) C/image-viewer.js.page:234(p)
+#: C/scale.py.page:38(p)
 msgid ""
-"Also note how the widgets are organized in a hierarchy. Once packed in the "
-"<code>Gtk.Box</code>, the <code>Gtk.Image</code> is considered a <em>child</"
-"em> of the <code>Gtk.Box</code>. This allows you to treat all of the "
-"children of a widget as a group; for example, you could hide the <code>Gtk."
-"Box</code>, which would also hide all of its children at the same time."
+"Use <code>set_draw_value(False)</code> to avoid displaying the current value "
+"as a string next to the slider."
 msgstr ""
 
-#: C/image-viewer.py.page:154(p) C/image-viewer.js.page:235(p)
-msgid "Now insert these two lines, below the two you just added:"
-msgstr "Agora escriba estas dÃas liÃas, embaixo das dÃas que acaba de engadir:"
-
-#: C/image-viewer.py.page:159(p)
+#: C/scale.py.page:39(p)
 msgid ""
-"These lines are similar to the first two, but this time they create a "
-"<code>Gtk.Button</code> and add it to <code>box</code>. Notice that we are "
-"setting the <code>expand</code> argument (the second one) to <code>False</"
-"code> here, whereas it was set to <code>True</code> for the <code>Gtk.Image</"
-"code>. This will cause the image to take up all available space and the "
-"button to take only the space it needs. When you maximize the window, the "
-"button size will remain the same, but the image size will increase, taking "
-"up all of the rest of the window."
+"To highlight the part of the scale between the origin and the current value:"
 msgstr ""
 
-#: C/image-viewer.py.page:163(title) C/image-viewer.js.page:246(title)
+#: C/scale.py.page:40(code)
+#, no-wrap
 msgid ""
-"Loading the image: Connecting to the button's <code>clicked</code> signal"
+"\n"
+"self.h_scale.set_restrict_to_fill_level(False)\n"
+"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
+"self.h_scale.set_show_fill_level(True)"
 msgstr ""
 
-#: C/image-viewer.py.page:164(p)
+#: C/scale.py.page:44(p)
 msgid ""
-"When the user clicks on the <gui>Open Image...</gui> button, a dialog should "
-"appear so that the user can choose a picture. Once chosen, the picture "
-"should be loaded and shown in the image widget."
+"in the callback function of the \"value-changed\" signal, so to have the new "
+"filling every time the value is changed. These are methods of the class Gtk."
+"Range."
 msgstr ""
 
-#: C/image-viewer.py.page:165(p)
+#: C/scale.py.page:46(p)
 msgid ""
-"The first step is to connect the <code>clicked</code> signal of the button "
-"to a signal handler function, which we call <code>on_open_clicked</code>. "
-"Put this code immediately after the <code>button = Gtk.Button()</code> line "
-"where the button was created:"
+"<code>add_mark(value, position, markup)</code> adds a mark at the "
+"<code>value</code> (<code>float</code> or <code>int</code> if that is the "
+"precision of the scale), in <code>position</code> (<code>Gtk.PositionType."
+"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
+"code>) with text <code>Null</code> or <code>markup</code> in the Pango "
+"Markup Language. To clear marks, <code>clear_marks()</code>."
 msgstr ""
 
-#: C/image-viewer.py.page:169(p)
+#: C/scale.py.page:47(p)
 msgid ""
-"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
-"code> method that we will define below."
+"<code>set_digits(digits)</code> sets the precision of the scale at "
+"<code>digits</code> digits."
 msgstr ""
 
-#: C/image-viewer.py.page:174(title) C/image-viewer.js.page:256(title)
-msgid "Loading the image: Writing the signal's callback"
+#: C/scale.py.page:55(link) C/scale.c.page:35(link)
+msgid "GtkScale"
 msgstr ""
 
-#: C/image-viewer.py.page:175(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/scale.js.page:21(None)
+#| msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
 msgid ""
-"Now we can create the <code>on_open_clicked</code> method. Insert the "
-"following into the <code>GUI</code> class code block, after the "
-"<code>__init__</code> method:"
+"@@image: 'media/scalepenguins.png'; md5=2dbe6a833fec86fde71a5ddb421e2cd5"
+msgstr ""
+"@@image: 'media/scalepenguins.png'; md5=2dbe6a833fec86fde71a5ddb421e2cd5"
+
+#: C/scale.js.page:7(title)
+#| msgid "JavaScript"
+msgid "Scale (JavaScript)"
+msgstr "Scale (JavaScript)"
+
+#: C/scale.js.page:17(desc)
+msgid "A slider which corresponds to a numerical value"
 msgstr ""
 
-#: C/image-viewer.py.page:191(p) C/image-viewer.js.page:277(p)
-#: C/image-viewer.cpp.page:172(p) C/image-viewer.c.page:184(p)
+#: C/scale.js.page:22(p)
 msgid ""
-"This is a bit more complicated than anything we've attempted so far, so "
-"let's break it down:"
+"A Scale is a horizontal or vertical slider, that represents a value inside a "
+"numerical range. When you create a new Scale, you set what its default "
+"position is, what the numbers at the top and bottom of the range are, and "
+"things like how much it moves up or down when you click on the Scale to "
+"either side of the knob. To keep from having to type all that in every time "
+"you create a new Scale, you can create an object called an Adjustment which "
+"keeps track of all that, then tell each new Scale to use that Adjustment."
 msgstr ""
 
-#: C/image-viewer.py.page:194(p)
+#: C/scale.js.page:23(p)
 msgid ""
-"The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
-"dialog, which the user can use to choose files. We set three properties: the "
-"title of the dialog; the action (type) of the dialog (it's an \"open\" "
-"dialog, but we could have used <code>SAVE</code> if the intention was to "
-"save a file; and <code>transient_for</code>, which sets the parent window of "
-"the dialog."
+"This scale is a simple widget that lets you adjust the size of an iceberg "
+"that penguins live on. The number of penguins on the iceberg is the product "
+"of the values of the two sliders. Try playing with them and seeing what "
+"happens."
 msgstr ""
 
-#: C/image-viewer.py.page:197(p) C/image-viewer.js.page:283(p)
+#: C/scale.js.page:65(p)
 msgid ""
-"The next two lines add <gui>Cancel</gui> and <gui>Open</gui> buttons to the "
-"dialog. The second argument of the <code>add_button</code> method is the "
-"(integer) value that is returned when the button is pressed: 0 for "
-"<gui>Cancel</gui> and 1 for <gui>Open</gui>."
+"All the code for this sample goes in the ScaleExample 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 ""
 
-#: C/image-viewer.py.page:198(p) C/image-viewer.js.page:284(p)
-#: C/image-viewer.cpp.page:180(p) C/image-viewer.c.page:196(p)
+#: C/scale.js.page:81(title)
+#| msgid "Creating the signal handler"
+msgid "Creating the scales"
+msgstr "Creando as escalas"
+
+#: C/scale.js.page:91(p)
 msgid ""
-"Notice that we are using <em>stock</em> button names from Gtk, instead of "
-"manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
-"is that the button labels will already be translated into the user's "
-"language."
+"The new_with_range method is one way to create a new Scale widget. The "
+"parameters it takes are a <link href=\"http://www.roojs.org/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.Orientation.html\">Gtk.Orientation</link>, the minimum "
+"value, the maximum value, and the increment for a single step. After that we "
+"use the Scale's methods to set its starting value, and how many decimal "
+"places it runs to. We also set its vertical alignment in this case, to "
+"control where it appears in the window."
 msgstr ""
 
-#: C/image-viewer.py.page:201(p) C/image-viewer.js.page:287(p)
+#: C/scale.js.page:92(p)
 msgid ""
-"<code>set_default_response</code> determines the button that will be "
-"activated if the user double-clicks a file or presses <key>Enter</key>. In "
-"our case, we are using the <gui>Open</gui> button as default (which has the "
-"value 1)."
+"We can use the set_draw_value method to tell it whether or not to show the "
+"number next to the sliding scale. It's commented out in this example."
 msgstr ""
 
-#: C/image-viewer.py.page:204(p) C/image-viewer.js.page:290(p)
+#: C/scale.js.page:104(p)
 msgid ""
-"The next three lines restrict the <gui>Open</gui> dialog to only display "
-"files which can be opened by <code>Gtk.Image</code>. A filter object is "
-"created first; we then add all kinds of files supported by <code>Gdk.Pixbuf</"
-"code> (which includes most image formats like PNG and JPEG) to the filter. "
-"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+"An Adjustment is an object we can use to simplify things when creating a new "
+"Scale. The Adjustment's \"value\" property is what the Scale's default value "
+"is, while \"upper\" and \"lower\" make the high and low ends of the "
+"numerical range. Meanwhile, the increment values show how much the slider "
+"moves when you do things like click on it."
 msgstr ""
 
-#: C/image-viewer.py.page:207(p)
+#: C/scale.js.page:116(p)
 msgid ""
-"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
-"wait for the user to choose an image; when they do, <code>dialog.run</code> "
-"will return the value <output>1</output> (it would return <output>0</output> "
-"if the user clicked <gui>Cancel</gui>). The <code>if</code> statement tests "
-"for this."
+"Here we create a new Scale object using _adjustment as its \"adjustment\" "
+"property. This is a great shortcut. We still have to tell it to round off "
+"the decimal place, though. Note that the draw_value property is commented "
+"out; this is how you tell it not to show the number next to the Scale when "
+"you're creating one this way."
 msgstr ""
 
-#: C/image-viewer.py.page:209(p) C/image-viewer.js.page:295(p)
+#: C/scale.js.page:132(p)
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next line sets the "
-"<code>file</code> property of the <code>Gtk.Image</code> to the filename of "
-"the image selected by the user. The <code>Gtk.Image</code> will then load "
-"and display the chosen image."
+"We can use the get_value method to find out the numerical value a Scale is "
+"set at. We can then do whatever we want with it, including multiply the two "
+"Scales' values together and have a <link xref=\"label.js\">Label</link> show "
+"us the product. We set the label's text to wrap around, because we're having "
+"it display a silly message too."
 msgstr ""
 
-#: C/image-viewer.py.page:220(p)
+#: C/scale.js.page:133(p)
 msgid ""
-"All of the code you need should now be in place, so try running the code. "
-"That should be it; a fully-functioning image viewer (and a whistlestop tour "
-"of Python and Gtk) in not much time at all!"
+"After we create the Label, we connect the two Scales' \"value-changed\" "
+"signals to _recalc, a function that will recalculate the number of penguins "
+"on the iceberg and come up with a new message."
 msgstr ""
 
-#: C/image-viewer.py.page:225(p)
+#: C/scale.js.page:148(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.py\">reference code</link>."
+"Here we create a <link xref=\"grid.js\">Grid</link> to put everything in, "
+"then attach all our widgets to it. Note that here and on some of the widgets "
+"themselves we're using margins to keep things neatly spaced."
 msgstr ""
 
-#: C/image-viewer.js.page:9(desc)
+#: C/scale.js.page:157(p)
 msgid ""
-"A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK. Includes an introduction to the JavaScript language."
+"Finally, we add the Grid to the window, then tell the window to show itself "
+"and all the widgets inside of it."
 msgstr ""
-"Un aplicativo maÌis completo que un simple ÂOla Mundo - escriba un visor de "
-"imaxes en GTK. Isto incluÌe unha introducioÌn ao linguaxe JavaScript."
 
-#: C/image-viewer.js.page:28(p)
-msgid "Write a basic GTK user interface in JavaScript"
-msgstr "Escribir unha interface de usuario GTK baÌsica en JavaScript"
+#: C/scale.js.page:161(title)
+msgid "Function which handles the scales' values changing"
+msgstr ""
 
-#: C/image-viewer.js.page:36(p)
-msgid "An installed copy of the <em>gjs</em> interpreter"
-msgstr "Unha copia instalada do inteÌrprete <em>gjs</em>"
+#: C/scale.js.page:191(p)
+msgid ""
+"Remember, we can get a Scale's value using its get_value method. Here we "
+"simply recalculate what the product of the two values is after one of the "
+"Scales is moved, add in a silly message depending on how many penguins are "
+"left, and change the wording on _label to show the new number and message."
+msgstr ""
 
-#: C/image-viewer.js.page:37(p)
-msgid "Basic knowledge of any object-orientated programming language"
+#: C/scale.js.page:198(p)
+msgid ""
+"Finally, we create a new instance of the finished ScaleExample class, and "
+"set the application running."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/scale.c.page:24(None)
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+msgstr "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+
+#: C/scale.c.page:7(title)
+msgid "Scale (C)"
+msgstr ""
+
+#: C/scale.c.page:36(link)
+msgid "GtkRange"
+msgstr "GtkRange"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/record-collection.js.page:64(None)
+msgid ""
+"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+msgstr ""
+"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+
+#: C/record-collection.js.page:7(title)
+#| msgid "Record Collection"
+msgid "Record Collection (JavaScript)"
+msgstr "ColecciÃn de mÃsica (JavaScript)"
+
+#: C/record-collection.js.page:10(desc)
+msgid "Create a small database application for ordering your music collection"
+msgstr ""
+"Cree un pequeno aplicativo con unha base de datos para ordenar a sÃa "
+"colecciÃn de mÃsica"
+
+#: C/record-collection.js.page:14(name) C/image-viewer.vala.page:14(name)
+#: C/image-viewer.cpp.page:12(name) C/image-viewer.c.page:14(name)
+#: C/guitar-tuner.vala.page:13(name) C/guitar-tuner.py.page:14(name)
+#: C/guitar-tuner.cpp.page:12(name) C/guitar-tuner.c.page:14(name)
+#: C/getting-ready.page:11(name) C/audio-player.vala.page:13(name)
+msgid "GNOME Documentation Project"
+msgstr "Proxecto de documentacioÌn de GNOME"
+
+#: C/record-collection.js.page:15(email) C/index.page:8(email)
+#: C/image-viewer.vala.page:15(email) C/image-viewer.cpp.page:13(email)
+#: C/image-viewer.c.page:15(email) C/guitar-tuner.vala.page:14(email)
+#: C/guitar-tuner.py.page:15(email) C/guitar-tuner.cpp.page:13(email)
+#: C/guitar-tuner.c.page:15(email) C/getting-ready.page:12(email)
+#: C/audio-player.vala.page:14(email)
+msgid "gnome-doc-list gnome org"
+msgstr "gnome-doc-list gnome org"
+
+#: C/record-collection.js.page:18(name) C/photo-wall.c.page:17(name)
+#: C/magic-mirror.vala.page:18(name) C/index.page:17(name)
+#: C/image-viewer.vala.page:18(name) C/image-viewer.py.page:18(name)
+#: C/image-viewer.js.page:18(name) C/image-viewer.cpp.page:16(name)
+#: C/image-viewer.c.page:18(name) C/guitar-tuner.vala.page:17(name)
+#: C/guitar-tuner.py.page:18(name) C/guitar-tuner.cpp.page:16(name)
+#: C/guitar-tuner.c.page:18(name)
+msgid "Johannes Schmid"
+msgstr "Johannes Schmid"
+
+#: C/record-collection.js.page:19(email) C/photo-wall.c.page:18(email)
+#: C/magic-mirror.vala.page:19(email) C/index.page:18(email)
+#: C/image-viewer.vala.page:19(email) C/image-viewer.py.page:19(email)
+#: C/image-viewer.js.page:19(email) C/image-viewer.cpp.page:17(email)
+#: C/image-viewer.c.page:19(email) C/guitar-tuner.vala.page:18(email)
+#: C/guitar-tuner.py.page:19(email) C/guitar-tuner.cpp.page:17(email)
+#: C/guitar-tuner.c.page:19(email)
+msgid "jhs gnome org"
+msgstr "jhs gnome org"
+
+#: C/record-collection.js.page:23(title)
+#| msgid "Record Collection"
+msgid "3 Record Collection"
+msgstr "3 ColecciÃn de gravaciÃns"
+
+#: C/record-collection.js.page:26(p) C/message-board.c.page:24(p)
+#: C/image-viewer.cpp.page:24(p) C/image-viewer.c.page:26(p)
+msgid "In this tutorial, you will learn:"
+msgstr "Neste titorial aprenderÃ:"
+
+#: C/record-collection.js.page:28(p)
+msgid "How to connect to a database using libgda"
+msgstr "Como conectar con unha base de datos usando libgda"
+
+#: C/record-collection.js.page:29(p)
+msgid "How to insert and browse records in a database table"
+msgstr "Como insertar e examinar rexistros nunha tÃboa dunha base de datos"
+
+#: C/record-collection.js.page:34(title) C/photo-wall.c.page:36(title)
+msgid "Introduction"
+msgstr "IntroduciÃn"
+
+#: C/record-collection.js.page:35(p)
+msgid ""
+"This demo uses the Javascript language. We are going to demonstrate how to "
+"connect and use a database from a GTK program, by using the GDA (GNOME Data "
+"Access) library. Thus you also need this library installed."
+msgstr ""
+"Esta demostraciÃn usa o linguaxe JavaScript. Vaise demostrar como conectar e "
+"usar unha base de datos desde un programa GTK, usando a biblioteca GDA "
+"(ÂGNOME Data AccessÂ, Acceso a datos de GNOME). Polo tanto, Ã preciso ter "
+"instalada tamÃn esta biblioteca."
+
+#: C/record-collection.js.page:38(p)
+msgid ""
+"GNOME Data Access (GDA) is library whose purpose is to provide universal "
+"access to different kinds and types of data sources. This goes from "
+"traditional relational database systems, to any imaginable kind of data "
+"source such as a mail server, a LDAP directory, etc. For more information, "
+"and for a full API and documentation, visit the <link href=\"http://library.";
+"gnome.org/devel/libgda/stable/\">GDA website</link>."
+msgstr ""
+"GNOME Data Access (GDA) à unha biblioteca cuxo propÃsito à fornecer acceso "
+"universal a diferentes tipos de orixes de datos. Isto vai desde os sistemas "
+"de bases de datos relacionais tradicionais a calquera tipo imaxinÃbel de "
+"orixe de datos como un servidor de correo, un directorio LDAP, ect. Para "
+"mÃis informaciÃn e para obter a API completa e a documentaciÃn visite o "
+"<link href=\"http://library.gnome.org/devel/libgda/stable/\";>sitio web de "
+"GDA</link>."
+
+#: C/record-collection.js.page:41(p)
+msgid ""
+"Although a big part of the code is related to user interface (GUI), we are "
+"going to focus our tutorial on the database parts (we might mention other "
+"parts we think are relevant though). To know more about Javascript programs "
+"in GNOME, see the <link xref=\"image-viewer.js\">Image Viewer program</link> "
+"tutorial."
+msgstr ""
+"AÃnda que a maiorÃa do cÃdigo està relacionado con interfaces de usuario "
+"(GUI), imos enforcar este titorial nas partes relacionadas coa base de datos "
+"(aÃnda que podemos mencionar outras partes que son relevantes). Para saber "
+"mÃis sobre os programas JavaScript en GNOME vexa o titorial <link xref="
+"\"image-viewer.js\">programa Visor de Imaxes</link>."
+
+#: C/record-collection.js.page:47(title) C/photo-wall.c.page:46(title)
+#: C/message-board.c.page:41(title) C/magic-mirror.vala.page:44(title)
+#: C/image-viewer.vala.page:51(title) C/image-viewer.py.page:44(title)
+#: C/image-viewer.js.page:45(title) C/image-viewer.cpp.page:34(title)
+#: C/image-viewer.c.page:36(title) C/guitar-tuner.py.page:42(title)
+#: C/guitar-tuner.cpp.page:40(title) C/guitar-tuner.c.page:42(title)
+msgid "Create a project in Anjuta"
+msgstr "Cree un proxecto de Anjuta"
+
+#: C/record-collection.js.page:48(p) C/photo-wall.c.page:47(p)
+#: C/magic-mirror.vala.page:45(p) C/image-viewer.vala.page:52(p)
+#: C/image-viewer.py.page:45(p) C/image-viewer.js.page:46(p)
+#: C/image-viewer.cpp.page:35(p) C/image-viewer.c.page:37(p)
+#: C/guitar-tuner.vala.page:46(p) C/guitar-tuner.py.page:43(p)
+#: C/guitar-tuner.cpp.page:41(p) C/guitar-tuner.c.page:43(p)
+msgid ""
+"Before you start coding, you'll need to set up a new project in Anjuta. This "
+"will create all of the files you need to build and run the code later on. "
+"It's also useful for keeping everything together."
+msgstr ""
+"Antes de comezar a programar, deberà configurar un proxecto novo en Anjuta. "
+"Isto crearà todos os ficheiros que precise para construÃr e executar o "
+"cÃdigo mÃis adiante. TamÃn à Ãtil para manter todo ordenado."
+
+#: C/record-collection.js.page:51(p) C/photo-wall.c.page:50(p)
+#: C/magic-mirror.vala.page:48(p) C/image-viewer.py.page:48(p)
+#: C/image-viewer.js.page:49(p) C/image-viewer.cpp.page:38(p)
+#: C/image-viewer.c.page:40(p) C/guitar-tuner.py.page:46(p)
+#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:46(p)
+msgid ""
+"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
+"gui></guiseq> to open the project wizard."
+msgstr ""
+"Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
+"gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
+
+#: C/record-collection.js.page:54(p)
+msgid ""
+"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
+"<file>record-collection</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>JavaScript xenÃrico</gui> desde a lapela <gui>JS</gui>, "
+"prema <gui>Adiante</gui> e complete os seus detalles nas seguintes pÃxinas. "
+"Use <file>record-collection</file> como nome do proxecto e cartafol."
+
+#: C/record-collection.js.page:57(p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. It contains very basic example code."
+msgstr ""
+"Prema <gui>Rematar</gui> e o proxecto serà creado. Abra <file>src/main.js</"
+"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ContÃn "
+"cÃdigo de exemplo moi bÃsico."
+
+#: C/record-collection.js.page:63(title)
+msgid "Program Structure"
+msgstr "Estrutura do programa"
+
+#: C/record-collection.js.page:65(p)
+msgid ""
+"This demo is a simple GTK application (with a single window) capable of "
+"inserting records into a database table as well as browsing all records of "
+"the table. The table has two fields: <code>id</code>, an integer, and "
+"<code>name</code>, a varchar. The first section (on the top) of the "
+"application allows you to insert a record into the table. The last section "
+"(bottom) allows you to see all the records of that table. Its content is "
+"refreshed every time a new record is inserted and on the application startup."
+msgstr ""
+"Esta demostraciÃn à un aplicativo GTK (cunha Ãnica xanela) capaz de inserir "
+"rexistros nunha tÃboa de base de datos asà como navegar por tÃdolos "
+"rexistros da toa. A tÃboa ten dous campos: <code>id</code>, un enteiro e "
+"<code>name</code>, un varchar. A primeira secciÃn (na parte superior) do "
+"aplicativo permÃtelle inserir un rexistro na tÃboa. A Ãltima secciÃn "
+"(abaixo) permÃtelle ver tÃdolos rexistros dunha tÃboa. Os contidos "
+"actualÃzanse cada vez que se insire un novo rexistro e ao iniciar o "
+"aplicativo."
+
+#: C/record-collection.js.page:70(title)
+msgid "Starting the fun"
+msgstr "Comezar a diversiÃn"
+
+#: C/record-collection.js.page:71(p)
+msgid "Let's start by examining the skeleton of the program:"
+msgstr "Comezar examinando o esqueleto do programa:"
+
+#: C/record-collection.js.page:97(p)
+msgid ""
+"Lines 1â4: Initial imports. Pay special attention to line 3, which tells "
+"Javascript to import the GDA library, our focus in this tutorial."
+msgstr ""
+"LiÃas 1-4: importaciÃns iniciais. Preste especial atenciÃn à liÃa 3, que "
+"indica que JavaScript importe a a biblioteca GDA, noso obxectivo neste "
+"titorial."
+
+#: C/record-collection.js.page:98(p)
+msgid ""
+"Lines 6â17: Define our <code>Demo</code> class. Pay special attention to "
+"lines 13â15, where we call 3 methods which will do the whole job. They will "
+"be detailed below."
+msgstr ""
+"LiÃas 6-17: Define a clase <code>Demo</code>. PoÃa especial atenciÃn Ãs "
+"liÃas 13-15, onde chamamos a 3 mÃtodos que farÃn o traballo. Falaremos deles "
+"mÃis adiante."
+
+#: C/record-collection.js.page:99(p)
+msgid "Lines 19â23: Start the application."
+msgstr "LiÃas 19-23: Iniciar o aplicativo."
+
+#: C/record-collection.js.page:104(title)
+msgid "Designing the application"
+msgstr "DeseÃar o aplicativo"
+
+#: C/record-collection.js.page:105(p)
+msgid ""
+"Let's take a look at the <code>setupWindow</code> method. It is responsible "
+"for creating the User Interface (UI). As UI is not our focus, we will "
+"explain only the relevant parts."
+msgstr ""
+"BotÃmoslle unha ollada ao mÃtodo <code>setupWindow</code>. Ã o responsÃbel "
+"de crear a Interface de Usuario (UI). Xa que a UI non à o noso enfoque "
+"explicaremos sà as partes mÃis relevantes."
+
+#: C/record-collection.js.page:156(p)
+msgid ""
+"Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
+"will type something to get inserted in the database."
+msgstr ""
+"LiÃas 22 e 27: crear as dÃas entradas (para os dous campos) nas que o "
+"usuario escribirà algo para inserilo na base de datos."
+
+#: C/record-collection.js.page:157(p)
+msgid ""
+"Lines 31â34: Create the Insert button. We connect its <code>clicked</code> "
+"signal to the <code>_insertClicked</code> private method of the class. This "
+"method is detailed below."
+msgstr ""
+"LiÃas 31-34: crear o botÃn ÂInsertarÂ. ConÃctase o seu sinal <code>clicked</"
+"code> co mÃtodo privado <code>_insertClicked</code> de clase. Este mÃtodo "
+"detÃllase a continuaciÃn"
+
+#: C/record-collection.js.page:158(p)
+msgid ""
+"Line 39: Create the widget (<code>TextView</code>) where we will show the "
+"contents of the table."
+msgstr ""
+"LiÃa 39: Crear o widget (<code>TextView</code>) onde se mostrarÃn os "
+"contidos da tÃboa."
+
+#: C/record-collection.js.page:159(p)
+msgid ""
+"Line 44: Create the label where we will show the number of records in the "
+"table. Initially it's empty, it will be updated later."
+msgstr ""
+"LiÃa 44: crea a etiqueta onde se mostrarà o nÃmero de rexistros existentes "
+"na tÃboa. Inicialmente està baleiro, actualizarase mÃis tarde."
+
+#: C/record-collection.js.page:164(title)
+msgid "Connecting to and initializing the database"
+msgstr "Conectar e inicializar a base de datos"
+
+#: C/record-collection.js.page:165(p)
+msgid ""
+"The code which makes the connection to the database is in the "
+"<code>setupDatabase</code> method below:"
+msgstr ""
+"O cÃdigo que fai a conexiÃn coa base de datos està no mÃtodo "
+"<code>setupDatabase</code> de embaixo:"
+
+#: C/record-collection.js.page:182(p)
+msgid ""
+"Lines 2â3: Create the GDA's <code>Connection</code> object. We must supply "
+"to its constructor some properties:"
+msgstr ""
+"LiÃa 2-3: crear o obxecto de GDA <code>Conection</code>. Debe fornecerlle ao "
+"seu construtor algunhas propiedades:"
+
+#: C/record-collection.js.page:185(p)
+msgid ""
+"<code>provider</code>: One of GDA's supported providers. GDA supports "
+"SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
+"use a SQLite database, as it comes installed by default in most "
+"distributions and it is simple to use (it just uses a file as a database)."
+msgstr ""
+"<code>provider</code>: un dos fornecedores con asistencia en GDA. GDA Ã "
+"compatÃbel con SQLite, MySQL, PostgreSQL, Oracle e moitos outros. Para os "
+"propÃsitos desta demostraciÃn usaremos unha base de datos SQLite, xa que ven "
+"instalada por omisiÃn na maiorÃa das distribuciÃns e à moi sinxela de usar "
+"(usa un sà ficheiro por base de datos)."
+
+#: C/record-collection.js.page:188(p)
+msgid ""
+"<code>cnc_string</code>: The connection string. It may change from provider "
+"to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
+"DB_NAME=<var>FILENAME</var></code>. In this demo we are accessing a database "
+"called gnome_demo in the user home dir (note the call to GLib's "
+"<code>get_home_dir</code> function)."
+msgstr ""
+"<code>cnc_string</code>: A cadea de conexiÃn. Pode cambiar dun fornecedor a "
+"outro. A sintaxe para SQLite Ã: <code>DB_DIR=<var>PATH</var>;"
+"DB_NAME=<var>FILENAME</var></code>. Nesta demostraciÃn accederemos a unha "
+"base de datos chamada gnome_demo no cartafol persoal do usuario (olle a "
+"chamada à funciÃn de GLib <code>get_home_dir</code>)."
+
+#: C/record-collection.js.page:192(p)
+msgid ""
+"If the provider is not supported by GDA, or if the connection string is "
+"missing some element, line 2 will raise an exception. So, in real life we "
+"should handle it with JavaScript's statement <code>try</code>...<code>catch</"
+"code>."
+msgstr ""
+"Se o fornecedor non à compatÃbel con GDA, ou falta algÃn elemento na cadea "
+"de conexiÃn, dispararase a excepciÃn da liÃa 2. Polo que na vida real "
+"deberÃamos xestionar as declaraciÃns JavaScript entre bloques <code>try</"
+"code>...<code>catch</code>."
+
+#: C/record-collection.js.page:196(p)
+msgid ""
+"Line 4: Open the connection. In the SQLite provider, if the database does "
+"not exist, it will be created in this step."
+msgstr ""
+"LiÃa 4: Abrir a conexiÃn. No fornecedor de SQLite, se a conexiÃn non existe "
+"crearase neste paso."
+
+#: C/record-collection.js.page:198(p)
+msgid ""
+"Lines 6â10: Try to do a simple select to check if the table exists (line 7). "
+"If it does not exist (because the database was just created), this command "
+"will raise an exception, which is handled by the <code>try</code>..."
+"<code>catch</code> block. If it is the case, we run the create table "
+"statement (line 9)."
+msgstr ""
+"LiÃas 6-10: Tenta facer unha selecciÃn sinxela para comprobar que a tÃboa "
+"existe (liÃa 7). Se non existe (porque a base de datos foi recÃn creada), "
+"esta orde dispararà unha excepciÃn, que està xestionada polo bloque "
+"<code>try</code>...<code>catch</code>. Se este à o caso executarase a "
+"declaraciÃn de creaciÃn de tÃboa (liÃa 9)."
+
+#: C/record-collection.js.page:199(p)
+msgid ""
+"In order to run the SQL commands above we are using global GDA functions, "
+"<code>execute_select_command</code> and <code>execute_non_select_command</"
+"code>. They are simple to use, and just require two arguments: The "
+"<code>Connection</code> object and the SQL command to be parsed."
+msgstr ""
+"Para executar ordes SQL usamos as funciÃns globais de GDA, "
+"<code>execute_select_command</code> e <code>execute_non_select_command</"
+"code>. Son moi sinxelas de usar, e sà requiren dous argumentos: o obxecto "
+"<code>Connection</code> e a orde SQL a analizar."
+
+#: C/record-collection.js.page:203(p)
+msgid "At this point we have the database set up, and are ready to use it."
+msgstr "Neste punto temos a base de datos configurada e lista para usala."
+
+#: C/record-collection.js.page:207(title)
+msgid "Selecting"
+msgstr "Seleccionar"
+
+#: C/record-collection.js.page:208(p)
+msgid ""
+"After connecting to the database, our demo's constructor calls the "
+"<code>selectData</code> method. It is responsible for getting all the "
+"records in the table and showing them on the <code>TextView</code> widget. "
+"Let's take a look at it:"
+msgstr ""
+"Despois de conectarse aÌ base de datos, o construtor da nosa demostracioÌn "
+"chama ao meÌtodo <code>selectData</code>. EÌ responsaÌbel de obter toÌdolos "
+"rexistros na taÌboa e para mostrarllas no widget <code>TextView</code>. "
+"VoteÌmoslle unha ollada:"
+
+#: C/record-collection.js.page:229(p)
+msgid ""
+"Line 2: The <code>SELECT</code> command. We are using the global GDA's "
+"function <code>execute_select_command</code> for that. It returns a "
+"<code>DataModel</code> object, which is later used to retrieve the rows."
+msgstr ""
+"LinÌa 2: A orde <code>SELECT</code>. Usamos a funcioÌn global de GDA "
+"<code>execute_select_command</code> para iso. DevoÌlve un obxecto "
+"<code>DataModel</code>, que maÌis tarde empregaremos para obter as filas."
+
+#: C/record-collection.js.page:230(p)
+msgid ""
+"Line 3: Create an <code>Iter</code> object, which is used to iterate over "
+"the <code>DataModel</code>'s records."
+msgstr ""
+"LinÌa 3: Crea un obxecto <code>Iter</code>, que se usa para iterar sobre os "
+"rexistros de <code>DataModel</code>."
+
+#: C/record-collection.js.page:231(p)
+msgid ""
+"Line 7: Loop through all the records, fetching them with the help of the "
+"<code>Iter</code> object. At this point, the <code>iter</code> variable "
+"contains the actual, retrieved data. Its <code>move_next</code> method "
+"returns <code>false</code> when it reaches the last record."
+msgstr ""
+"LinÌa 7: Iterar por toÌdolos rexistros e obtelos coa axuda do obxecto "
+"<code>Iter</code>. Neste punto a variaÌbel <code>iter</code> conteÌn os datos "
+"actualizados obtidos. O seu meÌtodo <code>move_next</code> devolve "
+"<code>false</code> cando se chegue ao uÌltimo rexistro."
+
+#: C/record-collection.js.page:233(p)
+msgid "Lines 8â9: We do two things in each line:"
+msgstr "LinÌas 8-9: fanse duÌas cousas en cada linÌa:"
+
+#: C/record-collection.js.page:235(p)
+msgid ""
+"Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
+"only one argument: the column number to retrieve, starting at 0. As our "
+"<code>SELECT</code> command returns only two columns, we are retrieving "
+"columns 0 and 1."
+msgstr ""
+"Use o mÃtodo <code>get_value_at</code> de <code>Iter</code>, que sà precisa "
+"un argumento: o nÃmero de columna que recuperar, comezando por 0. Xa que a "
+"orde <code>SELECT</code> sà devolve dÃas columnas, se està recuperando as "
+"columnas 0 e 1."
+
+#: C/record-collection.js.page:236(p)
+msgid ""
+"The method <code>get_value_at</code> returns the field in GLib's "
+"<code>GValue</code> format. A simple way to convert this format to a string "
+"is by using GDA's global function <code>value_stringify</code>. That's what "
+"we are doing here, and we store the results in the variables <code>id_field</"
+"code> and <code>name_field</code>."
+msgstr ""
+"O meÌtodo <code>get_value_at</code> devolve o campo no formato <code>GValue</"
+"code> de GLib. Unha forma sinxela de converter este formato a unha cadea eÌ "
+"usando a funcioÌn global de GDA <code>value_stringify</code>. Que eÌ o facemos "
+"aquiÌ, e almacenamos os resultados nas variaÌbeis <code>id_field</code> e "
+"<code>name_field</code>."
+
+#: C/record-collection.js.page:239(p)
+msgid ""
+"Line 11: Concatenate the two fields to make one text line, separated by "
+"<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
+msgstr ""
+"LinÌa 11: ConcateÌnanse os dous campos para facer unha uÌnica linÌa de texto, "
+"separada por <code>\"=&gt;\"</code>, e almacenaÌmolas na variaÌbel <code>text</"
+"code>."
+
+#: C/record-collection.js.page:240(p)
+msgid ""
+"Line 14: After the loop is finished, we have all the records formatted in "
+"the <code>text</code> variable. In this line we just set the contents of the "
+"<code>TextView</code> with that variable."
+msgstr ""
+"LinÌa 14: Logo de que o bucle remate, temos toÌdolos rexistros formatados na "
+"variaÌbel <code>text</code>. Nesta linÌa estabelecemos os contidos de "
+"<code>TextView</code> con dita variaÌbel."
+
+#: C/record-collection.js.page:241(p)
+msgid ""
+"Line 15: Display the number of records in the table, making use of the "
+"<code>DataModel</code>'s <code>get_n_rows</code> method."
+msgstr ""
+"LinÌa 15: mostrar o nuÌmero de rexistros na taÌboa, usando o meÌtodo "
+"<code>get_n_rows</code> de <code>DataModel</code> <code>get_n_rows</code>."
+
+#: C/record-collection.js.page:246(title)
+msgid "Inserting"
+msgstr "Insertando"
+
+#: C/record-collection.js.page:247(p)
+msgid ""
+"OK, we know how to connect to a database and how to select rows from a "
+"table. Now it's time to do an <code>INSERT</code> on the table. Do you "
+"remember above, in the method <code>setupWindow</code> we connected the "
+"<gui>Insert</gui> button's <code>clicked</code> signal to the method "
+"<code>_insertClicked</code>? Let's see the implementation of this method."
+msgstr ""
+"OK, sabemos como conectarse a unha base de datos e como seleccionar filas "
+"dunha taÌboa. Agora eÌ tempo de facer un <code>INSERT</code> na taÌboa. Lembra "
+"arriba no meÌtodo <code>setupWindow</code> que conectamos o sinal "
+"<code>clicked</code> do botoÌn <gui>Insert</gui> ao meÌtodo "
+"<code>_insertClicked</code>? Vexamos a implementacioÌn deste meÌtodo."
+
+#: C/record-collection.js.page:268(p)
+msgid ""
+"We have learned how to use GDA's convenience functions "
+"<code>execute_select_command</code> and <code>execute_non_select_command</"
+"code> to quickly execute SQL commands on the database. GDA allows one to "
+"build a SQL statement indirectly, by using its <code>SqlBuilder</code> "
+"object. What are the benefits of this? GDA will generate the SQL statement "
+"dynamically, and it will be valid for the connection provider used (it will "
+"use the same SQL dialect the provider uses). Let's study the code:"
+msgstr ""
+"Aprendemos como usar as funcioÌns de GDA de forma conveniente "
+"<code>execute_select_command</code> e <code>execute_non_select_command</"
+"code> para executar ordes SQL de forma raÌpida nunha base de datos. GDA "
+"permiÌtelle construiÌr unha declaracioÌn SQL de forma indirecta usando o seu "
+"obxecto <code>SqlBuilder</code>. Cales son os beneficios de isto? GDA xeraraÌ "
+"a declaracioÌn SQL de forma dinaÌmica e seraÌ vaÌlida para o fornecedor de "
+"conexioÌn usado (usarase o mesmo dialecto SQL que o fornecedor usa). "
+"Estudiemos o coÌdigo:"
+
+#: C/record-collection.js.page:272(p)
+msgid ""
+"Lines 2â3: Check if the user filled all the fields. The code for the private "
+"method <code>_validateFields</code> is really simple and you can read it in "
+"the full demo source code."
+msgstr ""
+"LinÌa 2-3: comproÌbase que o usuario completa toÌdolos campos. O coÌdigo do "
+"meÌtodo privato <code>_validateFields</code> eÌ realmente sinxelo e pode lelo "
+"no coÌdigo fonte completo da demostracioÌn."
+
+#: C/record-collection.js.page:273(p)
+msgid ""
+"Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
+"as we want to show how to use the <code>SqlBuilder</code> object to build a "
+"SQL statement portable across databases."
+msgstr ""
+"LinÌa 5: A forma maÌis raÌpida eÌ <code>INSERT</code>. EstaÌ descomentado xa que "
+"queremos ver como usar o obxecto <code>SqlBuilder</code> para construiÌr unha "
+"declaracioÌn SQL portaÌbel a traveÌs das bases de datos."
+
+#: C/record-collection.js.page:274(p)
+msgid ""
+"Line 7: Create the <code>SqlBuilder</code> object. We must pass the type of "
+"statement we are going to build. It can be <code>SELECT</code>, "
+"<code>UPDATE</code>, <code>INSERT</code> or <code>DELETE</code>."
+msgstr ""
+"LinÌa 7: crea o obxecto <code>SqlBilder</code>. Debemos pasar o tipo de "
+"declaracioÌn que queremos construiÌr. Pode ser <code>SELECT</code>, "
+"<code>UPDATE</code>, <code>INSERT</code> ou <code>DELETE</code>."
+
+#: C/record-collection.js.page:275(p)
+msgid ""
+"Line 8: Set the name of the table on which the built statement will operate "
+"(it will generate <code>INSERT INTO demo</code>)"
+msgstr ""
+"LinÌa 8: estabelecer o nome da base de datos na que operaraÌ a sentencia "
+"construiÌda (xeraraÌ <code>INSERT INTO demo</code>)"
+
+#: C/record-collection.js.page:276(p)
+msgid ""
+"Lines 9â10: Set the fields and its values that will be part of the "
+"statement. The first argument is the field name (as in the table). The "
+"second one is the value for that field."
+msgstr ""
+"LinÌas 9-10: estabelecer os campos que formaraÌn parte da sentenza e os seus "
+"valores. O primeiro campo eÌ o nome do campo (como aparece na taÌboa). O "
+"segundo eÌ o valor deste campo."
+
+#: C/record-collection.js.page:277(p)
+msgid ""
+"Line 11: Get the dynamically generated <code>Statement</code> object, which "
+"represents a SQL statement."
+msgstr ""
+"LinÌa 11: obter o obxecto <code>Statement</code> xerado dinamicamente, que "
+"representa unha sentenza SQL."
+
+#: C/record-collection.js.page:278(p)
+msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
+msgstr "LinÌa 12: finalmente, executar a sentenza SQL (<code>INSERT</code>)."
+
+#: C/record-collection.js.page:279(p)
+msgid ""
+"Line 14: Clear the id and name fields on the screen. The code for the "
+"private method <code>_clearFields</code> is really simple and you can read "
+"it in the full demo source code."
+msgstr ""
+"LinÌa 14: limpar os campos id e nome na pantalla. O coÌdigo do meÌtodo privado "
+"<code>_clearFields</code> eÌ moi sinxelo e pode lelo no coÌdigo fonte completo "
+"da demostracioÌn."
+
+#: C/record-collection.js.page:280(p)
+msgid ""
+"Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
+msgstr ""
+"LinÌa 15: actualizar a vista na pantalla facendo outro <code>SELECT</code>."
+
+#: C/record-collection.js.page:282(p)
+msgid ""
+"You can also make use of parameters while building the statement. By using "
+"the <code>SqlBuilder</code> objects and parameters you are less subject to "
+"attacks like SQL injection. Check the <link href=\"http://library.gnome.org/";
+"devel/libgda/stable/\">GDA documentation</link> for more information about "
+"parameters."
+msgstr ""
+"TameÌn pode usar paraÌmetros mentres construÌe a sentenza. Usando obxectos e "
+"paraÌmetros <code>SqlBuilder</code> seraÌ menos susceptiÌbel a ataques de "
+"inxeccioÌn de SQL. Para obter informacioÌn adicional sobre os paraÌmetros, "
+"consulte a <link href=\"http://library.gnome.org/devel/libgda/stable/";
+"\">documentacioÌn de GDA</link>."
+
+#: C/record-collection.js.page:286(title) C/image-viewer.py.page:220(title)
+#: C/image-viewer.js.page:306(title) C/guitar-tuner.py.page:224(title)
+msgid "Run the application"
+msgstr "Executar o aplicativo"
+
+#: C/record-collection.js.page:287(p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"You now have a database for your record collection!"
+msgstr ""
+"Todo o coÌdigo que precisa agora estaÌ no seu lugar, polo que tente executar o "
+"coÌdigo. Agora ten unha base de datos para a suÌa coleccioÌn de rexistros!"
+
+#: C/record-collection.js.page:291(title) C/photo-wall.c.page:379(title)
+#: C/magic-mirror.vala.page:144(title) C/image-viewer.vala.page:282(title)
+#: C/image-viewer.py.page:225(title) C/image-viewer.js.page:311(title)
+#: C/image-viewer.cpp.page:210(title) C/image-viewer.c.page:222(title)
+#: C/guitar-tuner.vala.page:253(title) C/guitar-tuner.py.page:229(title)
+#: C/guitar-tuner.js.page:234(title) C/guitar-tuner.cpp.page:255(title)
+#: C/guitar-tuner.c.page:257(title)
+msgid "Reference Implementation"
+msgstr "ImplementaciÃn de referencia"
+
+#: C/record-collection.js.page:292(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"record-collection/record-collection.js\">reference code</link>."
+msgstr ""
+"Se ten problemas co titorial, compare o seu coÌdigo con este <link href="
+"\"record-collection/record-collection.js\">coÌdigo de referencia</link>."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/radiobutton.vala.page:24(None) C/radiobutton.py.page:25(None)
+#: C/radiobutton.c.page:24(None)
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/radiobutton.png'; md5=d115460280d8e41493dd98054b5822a5"
+msgstr "@@image: 'media/radiobutton.png'; md5=d115460280d8e41493dd98054b5822a5"
+
+#: C/radiobutton.vala.page:7(title)
+msgid "RadioButton (Vala)"
+msgstr "RadioButton (Vala)"
+
+#: C/radiobutton.vala.page:20(desc)
+msgid "A choice from multiple CheckButtons."
+msgstr ""
+
+#: C/radiobutton.vala.page:23(title) C/radiobutton.py.page:24(title)
+#: C/radiobutton.js.page:20(title) C/radiobutton.c.page:22(title)
+#| msgid "Button"
+msgid "RadioButton"
+msgstr "RadioButton"
+
+#: C/radiobutton.vala.page:25(p)
+msgid "These RadioButtons report their activity in the terminal."
+msgstr ""
+
+#: C/radiobutton.py.page:7(title)
+msgid "RadioButton (Python)"
+msgstr "RadioButton (Python)"
+
+#: C/radiobutton.py.page:21(desc)
+msgid "Mutually exclusive buttons."
+msgstr "BotÃns mutuamente exclusivos."
+
+#: C/radiobutton.py.page:26(p)
+msgid ""
+"Three RadioButtons. You can see in the terminal if they are turned off or on."
+msgstr ""
+
+#: C/radiobutton.py.page:36(title)
+msgid "Useful methods for a RadioButton widget"
+msgstr "MÃtodos Ãtiles para o widget RadioButton"
+
+#: C/radiobutton.py.page:39(p)
+msgid ""
+"Instead of <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> we "
+"could create the button and label it with"
+msgstr ""
+
+#: C/radiobutton.py.page:40(code)
+#, no-wrap
+msgid ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(\"Button 1\")."
+msgstr ""
+
+#: C/radiobutton.py.page:43(p)
+msgid ""
+"For a general discussion of this, see <link xref=\"properties.py\">here</"
+"link>."
+msgstr ""
+
+#: C/radiobutton.py.page:44(p)
+msgid ""
+"Yet another way to create a new RadioButton with a label is <code>button1 = "
+"Gtk.RadioButton.new_with_label(None, \"Button 1\")</code> (the first "
+"arguement is the group of the radiobuttons, which we can get with "
+"<code>get_group()</code>, the second argument is the label)."
+msgstr ""
+
+#: C/radiobutton.py.page:53(link)
+#| msgid "Gtk.ButtonsType"
+msgid "GtkRadioButton"
+msgstr "GtkRadioButton"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/radiobutton.js.page:21(None)
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid ""
+"@@image: 'media/radiobuttontravel.png'; md5=0c5f01ee160bb42716ccf5dccbd080c0"
+msgstr ""
+"@@image: 'media/radiobuttontravel.png'; md5=0c5f01ee160bb42716ccf5dccbd080c0"
+
+#: C/radiobutton.js.page:7(title)
+#| msgid "Classes in JavaScript"
+msgid "RadioButton (JavaScript)"
+msgstr "RadioButton (JavaScript)"
+
+#: C/radiobutton.js.page:17(desc)
+msgid "Only one can be selected at a time"
+msgstr ""
+
+#: C/radiobutton.js.page:22(p)
+msgid ""
+"RadioButtons are named after old-style car radios, which had buttons for "
+"switching between channel presets. Because the radio could only be tuned to "
+"one station at a time, only one button could be pressed in at a time; if you "
+"pressed a new one, the one that was already pressed in would pop back out. "
+"That's how these buttons work, too."
+msgstr ""
+
+#: C/radiobutton.js.page:23(p)
+msgid ""
+"Each RadioButton needs a text label and a group. Only one button in a group "
+"can be selected at a time. You don't name each group; you just set new "
+"RadioButtons to be part of the same group as an existing one. If you create "
+"a new one outside of a group, it automatically creates a new group for it to "
+"be part of."
+msgstr ""
+
+#: C/radiobutton.js.page:82(title)
+#| msgid "Creating the user interface"
+msgid "Creating the radiobuttons"
+msgstr "Crear os radiobuttons"
+
+#: C/radiobutton.js.page:88(p)
+msgid ""
+"We use a <link xref=\"label.js\">Gtk.Label</link> to set each group of "
+"RadioButtons apart. Nothing will stop you from putting RadioButtons from all "
+"different groups wherever you want, so if you want people to know which ones "
+"go together you need to organize things accordingly."
+msgstr ""
+
+#: C/radiobutton.js.page:101(p)
+msgid ""
+"Here are three different ways to create RadioButtons. The first is the usual "
+"way, where we create a new Gtk.RadioButton and assign its properties at the "
+"same time. The second and third use functions which automatically handle "
+"some of the properties; new_from_widget takes a single argument, the "
+"RadioButton that you want to put this new one in the same group as. "
+"Meanwhile, new_with_label_from_widget takes that and the RadioButton's label "
+"at the same time."
+msgstr ""
+
+#: C/radiobutton.js.page:102(p)
+msgid ""
+"The first RadioButton in a group is the one that's selected by default. Try "
+"uncommenting the last line in this sample code to see how you can set a "
+"different one to be the default selection."
+msgstr ""
+
+#: C/radiobutton.js.page:113(p)
+msgid ""
+"Here we create the label for the second group of buttons, and then create "
+"them all the same way."
+msgstr ""
+
+#: C/radiobutton.js.page:129(p)
+msgid ""
+"This code creates a <link xref=\"button.js\">Gtk.Button</link> and binds it "
+"to a function which will show people a silly message when they click OK, "
+"depending on which RadioButtons were selected."
+msgstr ""
+
+#: C/radiobutton.js.page:130(p)
+msgid ""
+"To make sure the button's \"OK\" label shows up properly in every language "
+"that GNOME is translated into, remember to use one of Gtk's <link href="
+"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock button "
+"types.</link>"
+msgstr ""
+
+#: C/radiobutton.js.page:166(p)
+msgid ""
+"We use a separate <link xref=\"grid.js\">Gtk.Grid</link> to organize each "
+"group of radio buttons. This way we can change the layout with less fuss "
+"later on. The second Grid has a margin on top, to visually separate the two "
+"sets of choices."
+msgstr ""
+
+#: C/radiobutton.js.page:167(p)
+msgid ""
+"After we've organized them, we put them into a third, master Grid, along "
+"with the OK button. Then we attach that to the window."
+msgstr ""
+
+#: C/radiobutton.js.page:175(p)
+msgid ""
+"Finally, we tell the window and everything inside it to become visible when "
+"the application is run."
+msgstr ""
+
+#: C/radiobutton.js.page:180(title) C/combobox.js.page:169(title)
+#: C/comboboxtext.js.page:112(title)
+msgid "Function which handles your selection"
+msgstr ""
+
+#: C/radiobutton.js.page:200(p)
+msgid ""
+"When you click OK, a <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
+"link> appears. This function creates and displays the popup window, then "
+"binds its OK button to a function that closes it. What text appears in the "
+"popup depends on the _messageText() function, which returns a different "
+"value depending on which set of options you chose."
+msgstr ""
+
+#: C/radiobutton.js.page:246(p)
+msgid ""
+"The get_active() method is how we can tell which RadioButton's pressed in. "
+"This function returns a different silly message depending on which set of "
+"buttons was pressed. Its return value is used as the MessageDialog's text "
+"property."
+msgstr ""
+
+#: C/radiobutton.js.page:257(p)
+msgid ""
+"This function is called when the MessageDialog's OK button is pressed. It "
+"simply makes the popup go away."
+msgstr ""
+
+#: C/radiobutton.c.page:7(title)
+msgid "RadioButton (C)"
+msgstr ""
+
+#: C/radiobutton.c.page:19(desc)
+msgid "A choice from multiple checkbuttons"
+msgstr ""
+
+#: C/radiobutton.c.page:25(p)
+msgid "These radiobuttons report their activity in the terminal."
+msgstr ""
+
+#: C/py.page:6(title)
+msgid "Python"
+msgstr "Python"
+
+#: C/py.page:15(title)
+msgid "Tutorials, code samples and platform demos in Python"
+msgstr ""
+
+#: C/properties.py.page:8(title)
+msgid "Properties (Python)"
+msgstr ""
+
+#: C/properties.py.page:12(desc)
+msgid "An explanation of properties, getters and setters."
+msgstr ""
+
+#: C/properties.py.page:25(title)
+msgid "Properties"
+msgstr ""
+
+#: C/properties.py.page:32(p)
+msgid ""
+"<em>Properties</em> describe the configuration and state of widgets, and "
+"each widget has its own particular set of properties. For example, a widget "
+"such as a button or a label has the property \"label\" which contains the "
+"text of the widget. You can specify the name and value of any number of "
+"properties as keyword arguments when creating an instance of a widget: for "
+"example, to create a label aligned to the right with the text âHello Worldâ "
+"and an angle of 25 degrees, you can use:"
+msgstr ""
+
+#: C/properties.py.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
+msgstr ""
+"\n"
+"label = Gtk.Label(label=\"Hola mundo\", angle=25, halign=Gtk.Align.END)"
+
+#: C/properties.py.page:36(p)
+msgid "This is equivalent to:"
+msgstr "Isto à equivalente a:"
+
+#: C/properties.py.page:37(code)
+#, no-wrap
+msgid ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hello World\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
+msgstr ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hola Mundo\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
+
+#: C/properties.py.page:43(p)
+msgid ""
+"Once you have created such a label, you can get the text with the getter "
+"<code>label.get_label()</code>."
+msgstr ""
+
+#: C/properties.py.page:45(p)
+msgid ""
+"Instead of using getters and setters you can also get and set the properties "
+"with <code>get_property(\"prop-name\")</code> and <code>set_property(\"prop-"
+"name\", value)</code>, respectively."
+msgstr ""
+
+#: C/properties.py.page:51(p)
+msgid ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Basics - Properties</link> in Python Gtk+ 3 Tutorial"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/progressbar.vala.page:21(None) C/progressbar.c.page:23(None)
+msgid ""
+"@@image: 'media/progressbar_fill.ogv'; md5=287763d1d3f4a328212ea2243910f5e4"
+msgstr ""
+"@@image: 'media/progressbar_fill.ogv'; md5=287763d1d3f4a328212ea2243910f5e4"
+
+#: C/progressbar.vala.page:7(title)
+msgid "ProgressBar (Vala)"
+msgstr ""
+
+#: C/progressbar.vala.page:17(desc) C/progressbar.c.page:18(desc)
+msgid "A widget which indicates progress visually"
+msgstr ""
+
+#: C/progressbar.vala.page:20(title) C/progressbar.py.page:20(title)
+#: C/progressbar.js.page:19(title) C/progressbar.c.page:21(title)
+msgid "ProgressBar"
+msgstr "ProgressBar"
+
+#: C/progressbar.vala.page:22(p) C/progressbar.c.page:24(p)
+msgid ""
+"This ProgressBar \"fills in\" by a fraction of the bar until it is full."
+msgstr ""
+
+#: C/progressbar.vala.page:29(link) C/progressbar.js.page:41(link)
+#: C/grid.js.page:37(link)
+msgid "Gtk.ProgressBar"
+msgstr "Gtk.ProgressBar"
+
+#: C/progressbar.vala.page:30(link)
+msgid "GLib.Timeout"
+msgstr "GLib.Timeout"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/progressbar.py.page:21(None) C/progressbar.js.page:20(None)
+#| msgid ""
+#| "@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+msgid "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
+msgstr "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
+
+#: C/progressbar.py.page:7(title)
+msgid "ProgressBar (Python)"
+msgstr "ProgressBar (Python)"
+
+#: C/progressbar.py.page:17(desc)
+msgid "A widget which indicates progress visually."
+msgstr ""
+
+#: C/progressbar.py.page:25(p) C/progressbar.js.page:24(p)
+msgid "Pressing any key stops and starts this ProgressBar."
+msgstr ""
+
+#: C/progressbar.py.page:32(p) C/progressbar.js.page:31(p)
+msgid "This ProgressBar is stopped and started by pressing any key."
+msgstr ""
+
+#: C/progressbar.py.page:44(title)
+msgid "Useful methods for a ProgressBar widget"
+msgstr ""
+
+#: C/progressbar.py.page:46(p)
+msgid ""
+"Instead of <code>pulse()</code>, that makes the bar go back and forth, if we "
+"want the ProgressBar to \"fill in\" a fraction (a <code>float</code> between "
+"<code>0.0</code> and <code>1.0</code> included) of the bar that has been "
+"completed, use <code>set_fraction(fraction)</code>."
+msgstr ""
+
+#: C/progressbar.py.page:47(p)
+msgid ""
+"To set a text and show it (superimposed over the bar) use <code>set_text"
+"(\"some text\")</code> and <code>set_show_text(True)</code>. If a text is "
+"not set and <code>set_show_text(True)</code> the text will be the percentage "
+"of the work that has been completed."
+msgstr ""
+
+#: C/progressbar.py.page:55(link) C/progressbar.c.page:34(link)
+#: C/grid.c.page:33(link)
+msgid "GtkProgressBar"
+msgstr "GtkProgressBar"
+
+#: C/progressbar.py.page:56(link)
+msgid "GLib - The Main Event Loop"
+msgstr "Glib - O bÃcle de eventos principal"
+
+#: C/progressbar.js.page:6(title)
+msgid "ProgressBar (JavaScript)"
+msgstr "ProgressBar (JavaScript)"
+
+#: C/progressbar.js.page:16(desc)
+msgid "A bar which animates to indicate progress"
+msgstr ""
+
+#: C/progressbar.js.page:38(link)
+msgid "GLib"
+msgstr "GLib"
+
+#: C/progressbar.c.page:7(title)
+msgid "ProgressBar (C)"
+msgstr "ProgressBar (C)"
+
+#: C/progressbar.c.page:35(link)
+msgid "G_Timeout"
+msgstr "G_Timeout"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/photo-wall.c.page:78(None)
+msgid "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
+msgstr "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/photo-wall.c.page:81(None)
+msgid ""
+"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
+msgstr ""
+"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
+
+#: C/photo-wall.c.page:6(title)
+#| msgid "Photo Wall"
+msgid "Photo Wall (C)"
+msgstr "Mural de fotos (C)"
+
+#: C/photo-wall.c.page:9(desc)
+msgid "A Clutter image viewer"
+msgstr "Un visor de imaxes Clutter"
+
+#: C/photo-wall.c.page:13(name)
+msgid "Chris KÃhl"
+msgstr "Chris KÃhl"
+
+#: C/photo-wall.c.page:14(email)
+msgid "chrisk openismus com"
+msgstr "chrisk openismus com"
+
+#: C/photo-wall.c.page:22(title)
+msgid "Photo Wall"
+msgstr "Mural de fotos"
+
+#: C/photo-wall.c.page:25(p)
+msgid ""
+"For this example we will build a simple image viewer using Clutter. You will "
+"learn:"
+msgstr ""
+"Para este exemplo construirase un sinxelo visor de imaxes usando Clutter. "
+"AprenderÃ:"
+
+#: C/photo-wall.c.page:27(p)
+msgid "How to size and position <code>ClutterActor</code>s"
+msgstr "Como dimensionar e posicionar varios <code>ClutterActor</code>"
+
+#: C/photo-wall.c.page:28(p)
+msgid "How to place an image in a <code>ClutterActor</code>"
+msgstr "Como posicionar unha imaxe nun <code>ClutterActor</code>"
+
+#: C/photo-wall.c.page:29(p)
+msgid "How to do simple transitions using Clutter's animation framework"
+msgstr ""
+"Como facer transiciÃns sinxelas usando o framework de animaciÃns Clutter."
+
+#: C/photo-wall.c.page:30(p)
+msgid "How to make <code>ClutterActor</code>s respond to mouse events"
+msgstr ""
+"Como facer que os <code>ClutterActor</code> respondan a eventos do rato"
+
+#: C/photo-wall.c.page:31(p)
+msgid "How to get file names from a directory"
+msgstr "Como obter nomes de ficheiros dun cartafol"
+
+#: C/photo-wall.c.page:37(p)
+msgid ""
+"Clutter is a library for creating dynamic user interfaces using OpenGL for "
+"hardware acceleration. This example demonstates a small, but central, part "
+"of the Clutter library to create a simple but attractive image viewing "
+"program."
+msgstr ""
+"Clutter eÌ unha biblioteca para crear interfaces de usuario dinaÌmicas usando "
+"OpenGL para a aceleracioÌn graÌfica. Este exemplo demostra unha parte pequena, "
+"poreÌn central, da biblioteca Clutter para crear un sinxelo, maÌis atractivo, "
+"programa de visualizacioÌn de imaxes."
+
+#: C/photo-wall.c.page:40(p)
+msgid ""
+"To help us reach our goal we will be utilising a few other common pieces of "
+"GLib as well. Most importantly, we'll use one <code>GSList</code>, a singly-"
+"linked list, to hold our <code>ClutterActor</code>s and another one for file "
+"path names. We will also use <code>GDir</code>, a utility for working with "
+"directories, to access our image directory and gather file paths."
+msgstr ""
+"Para axudarlle a alcanzar o seu destino usaremos tameÌn algunhas pezas comuÌns "
+"de GLib. A maÌis importante, usaremos <code>GSList</code>, unha lista ligada "
+"para manter os nosos <code>ClutterActor</code>s e os nomes de ruta de "
+"ficheiro."
+
+#: C/photo-wall.c.page:53(p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>photo-wall</file> as project name and directory."
+msgid ""
+"Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>photo-wall</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>Gtk+ (sinmple)</gui> desde a lapela <gui>C</gui>, e prema "
+"<gui>Adiante</gui>, e complete os detalles nas seguintes paÌxinas. Use <file"
+">photo-wall</file> como nome do proxecto e cartafol."
+
+#: C/photo-wall.c.page:56(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial using the interface builder."
+msgstr ""
+"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
+"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
+"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
+"construtor de interface."
+
+#: C/photo-wall.c.page:61(p)
+msgid ""
+"Enable <gui>Configure external packages</gui>. On the next page, select "
+"<em>clutter-1.0</em> from the list to include the Clutter library in your "
+"project."
+msgstr ""
+"Active <gui>Configurar paquetes externos</gui>. Na seguinte paÌxina "
+"seleccione <em>clutter-1.0</em> desde a lista para incluiÌr a biblioteca "
+"Clutter no seu proxecto."
+
+#: C/photo-wall.c.page:65(p) C/image-viewer.c.page:51(p)
+#: C/guitar-tuner.c.page:56(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> tabs. "
+"You should see some code which starts with the lines:"
+msgstr ""
+"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.c</file> "
+"desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa ver "
+"alguÌn coÌdigo que comeza coas linÌas:"
+
+#: C/photo-wall.c.page:74(title)
+msgid "A look at Photo Wall"
+msgstr "Unha ollada ao Muro de fotos"
+
+#: C/photo-wall.c.page:75(p)
+msgid "Our image viewer presents the user with a wall of images."
+msgstr "O novo visor de imaxes mÃstralle ao usuario un muro de imaxes."
+
+#: C/photo-wall.c.page:79(p)
+msgid ""
+"When an image is clicked, it is animated to fill the viewing area. When the "
+"image having focus is clicked it is returned to its original position using "
+"an animation with the same duration of 500 milliseconds."
+msgstr ""
+"Cando se fai clic sobre unha imaxe, esta anÃmase para ocupar todo o Ãrea de "
+"visualizaciÃn. Cando se fai clic sobre unha imaxe que ten o foco volverà à "
+"sÃa posiciÃn orixinal usando unha animaciÃn da mesma duraciÃn de 500 "
+"milisegundos."
+
+#: C/photo-wall.c.page:85(title)
+msgid "Initial setup"
+msgstr "ConfiguraciÃn inicial"
+
+#: C/photo-wall.c.page:86(p)
+msgid ""
+"The following code segment contains many of the defines and variables we "
+"will be using in the following sections. Use this as a reference for later "
+"sections. Copy this code to the beginning of <file>src/main.c</file>:"
+msgstr ""
+"O seguinte fragmento de cÃdigo contÃn moitas definiciÃns e variÃbeis que se "
+"usarÃn nas seguintes secciÃns. Ãseo como referencia para as prÃximas "
+"secciÃns. Copie este cÃdigo ao principio de <file>src/main.c</file>:"
+
+#: C/photo-wall.c.page:123(title)
+msgid "Jumping into the code"
+msgstr "Saltando ao cÃdigo"
+
+#: C/photo-wall.c.page:124(p)
+msgid ""
+"We will start by taking a look at the <code>main()</code> function as a "
+"whole. Then we'll discuss the other code sections in detail. Change the "
+"<file>src/main.c</file> to contain this <code>main()</code> function. You "
+"can delete the <code>create_window()</code> function as we don't need it in "
+"this example."
+msgstr ""
+"Comezaremos ollando a funciÃn <code>main()</code>. Logo discutiremos as "
+"outras secciÃns de cÃdigo en detalle. Cambie o ficheiro <file>src/main.c</"
+"file> para que conte;a a funciÃn <code>main()</code>. Pode elminar a funciÃn "
+"<code>create_window()</code> xa que non a necesitamos neste exemplo."
+
+#: C/photo-wall.c.page:165(p)
+msgid ""
+"Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
+"and transparency (alpha) values. The values range from 0-255. For "
+"transparency a value of 255 is opaque."
+msgstr ""
+"LinÌa 4: <code>ClutterColor</code> eÌ definido estabelecendo o valor a "
+"vermello, verde, azul ou transparente (alfa). O rango de valores estaÌn entre "
+"0-255. Para a transparencia 255 eÌ opaco."
+
+#: C/photo-wall.c.page:166(p)
+msgid ""
+"Line 7: You must initialize Clutter. If you forget to do this, you will get "
+"very strange errors. Be warned."
+msgstr ""
+"LinÌa 7: Debe inicializar Clutter. Se esqueceu isto, haberaÌ moitos erros "
+"estranÌos. EstaÌ avisado."
+
+#: C/photo-wall.c.page:167(p)
+msgid ""
+"Lines 9â11: Here we get the default <code>ClutterStage</code> that was "
+"provided by <code>clutter_init</code>. We then set the size using the "
+"defines from the previous section and the address of the <code>ClutterColor</"
+"code> we just defined."
+msgstr ""
+"LiÃas 9-11: aquà à onde se obtÃn o <code>ClutterStage</code> predeterminado "
+"que forneceu <code>clutter_init</code>. EntÃn estabelÃcese o tamaÃo usando o "
+"definido na secciÃn anterior e os enderezos do <code>ClutterColor</code> que "
+"xa estÃn definidas."
+
+#: C/photo-wall.c.page:168(p)
+msgid ""
+"A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
+"which other <code>ClutterActor</code>s are placed."
+msgstr ""
+"Un <code>CluterStage</code> Ã o nivel superior dun <code>ClutterActor</code> "
+"no que se localizan outros <code>ClutterActor</code>."
+
+#: C/photo-wall.c.page:170(p)
+msgid ""
+"Line 12: Here we call our function for getting the image file paths. We'll "
+"look at this in a bit."
+msgstr ""
+"LiÃa 12: aquà chÃmase à funciÃn para obter as rutas das imaxes. Isto verase "
+"en breve."
+
+#: C/photo-wall.c.page:171(p)
+msgid ""
+"Lines 14â26: This is where we set up the <code>ClutterActor</code>s, load "
+"the images and place them into their spot in the image wall. We will look at "
+"this in detail in the next section."
+msgstr ""
+"LiÃa 14-26: aquà à onde se configuran os <code>ClutterActor</code>, cÃrganse "
+"as imaxes e colÃcanse no seu sitio no mural de imaxes. Isto verase con mÃis "
+"detalle na seguinte secciÃn."
+
+#: C/photo-wall.c.page:172(p)
+msgid ""
+"Line 29: Show the stage and <em>all its children</em>, meaning our images."
+msgstr ""
+"LiÃa 29: mostra o escenario e <em>todos os seus fillos</em>, Ã dicir, as "
+"imaxes."
+
+#: C/photo-wall.c.page:173(p)
+msgid "Line 32: Start the Clutter main loop."
+msgstr "LinÌa 32: inicia o bucle principal de Clutter."
+
+#: C/photo-wall.c.page:178(title)
+msgid "Setting up our image actors"
+msgstr "Configurar os nosos actores de imaxe"
+
+#: C/photo-wall.c.page:179(p)
+msgid ""
+"In Clutter, an actor is the most basic visual element. Basically, everything "
+"you see is an actor."
+msgstr ""
+"En Clutter, un actor eÌ o elemento visual maÌis baÌsico. Basicamente, todo o "
+"que ve eÌ un actor."
+
+#: C/photo-wall.c.page:180(p)
+msgid ""
+"In this section, we are going to take a closer look at the loop used for "
+"setting up the <code>ClutterActor</code>s that will display our images."
+msgstr ""
+"Nesta seccioÌn, imos botar unha ollada maÌis polo miuÌdo ao buÌcle usado para "
+"configurar os <code>ClutterActor</code>s que mostraraÌn as nosas imaxes."
+
+#: C/photo-wall.c.page:198(p)
+msgid ""
+"Line 5: Here we want to get the path at the <var>n</var>th location in the "
+"<code>GSList</code> that is holding our image path names. The <var>n</var>th "
+"position is calculated based on <code>row</code> and <code>col</code>. The "
+"return value is a pointer to a <code>GSList</code> which is just a node in "
+"the list. We will use this to get the actual path in the next line. The "
+"first parameter is a pointer to the head of the list."
+msgstr ""
+"LiÃa 5: aquà quÃrese obter a ruta à localizaciÃn <var>n</var>-Ãsima na "
+"<code>GSList</code> que contÃn os nomes das rutas das imaxes. A <var>n</var>-"
+"Ãsima posiciÃn calcÃlase baseÃndose en <code>row</code> e <code>col</code>. "
+"O valor de retorno à un punteiro a <code>GSList</code> que à simplemente un "
+"nodo na lista. Isto usarase para obter a ruta actual na seguinte liÃa. O "
+"primeiro parÃmetro à un punteiro à cabeceira da lista."
+
+#: C/photo-wall.c.page:200(p)
+msgid ""
+"Line 6: This is where we actually create the <code>ClutterActor</code> and "
+"place the image into the actor. The first argument is the path which we "
+"access through our <code>GSList</code> node. The second argument is for "
+"error reporting but we are ignoring that to keep things short."
+msgstr ""
+"LiÃa 6: aquà à onde actualmente se crea o <code>ClutterActor</code> e "
+"localÃzase a imaxe no actor. O primeiro argumento à a ruta coa que se "
+"acceder ao nodo da <code>GSList</code>. O seguindo argumento à para informar "
+"dun error, pero ignÃrase para simplificar."
+
+#: C/photo-wall.c.page:202(p)
+msgid "Line 7: We'll look at this function in a later section."
+msgstr "LiÃa 7: esta funciÃn verase nunha secciÃn posterior."
+
+#: C/photo-wall.c.page:204(p)
+msgid ""
+"Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
+"container. It also assumes ownership of the <code>ClutterActor</code> which "
+"is something you'll want to look into as you get deeper into GNOME "
+"development. See the <link href=\"http://library.gnome.org/devel/gobject/";
+"stable/gobject-memory.html\"><code>GObject</code> documentation</link> for "
+"the gory details."
+msgstr ""
+"LiÃa 8: isto engade o <code>ClutterActor</code> ao escenario, que à un "
+"contedor. Asume o propietario do <code>ClutterActor</code>, que à algo que "
+"quererà cando profundice no desenvolvemento de GNOME. Para obter mÃis "
+"detalles, consulte a <link href=\"http://library.gnome.org/devel/gobject/";
+"stable/gobject-memory.html\">documentaciÃn de <code>GObject</code></link>."
+
+#: C/photo-wall.c.page:206(p)
+msgid ""
+"Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
+"that we can later iterate over the <code>ClutterActor</code>s."
+msgstr ""
+"LiÃa 9: isto engade o <code>ClutterActor</code> a unha <code>GSList</code> "
+"que logo se poderà iterar sobre os <code>ClutterActor</code>."
+
+#: C/photo-wall.c.page:207(p)
+msgid ""
+"Interesting to note is that we want to prepend the <code>ClutterActor</"
+"code>s rather than append so that we avoid traversing the list upon each "
+"insertion. You will often see <code>g_slist_prepend</code> followed by "
+"<code>g_slist_reverse</code> because it faster than inserting many objects "
+"at the end of the list."
+msgstr ""
+"Ã interesante ter en conta que prefÃrese antepoÃer os <code>ClutterActor</"
+"code> no lugar de anexalos, o que evita atravesar a lista en cada inserciÃn. "
+"A miÃdo verà <code>g_slist_prepend</code> seguido de <code>g_slist_reverse</"
+"code>, xa que à mÃis rÃpido que inserir varios obxectos ao final da lista."
+
+#: C/photo-wall.c.page:213(title)
+msgid "Loading the images"
+msgstr "Cargar as imaxes"
+
+#: C/photo-wall.c.page:214(p)
+msgid ""
+"Let's take a short break from Clutter to see how we can get the file names "
+"from our image directory."
+msgstr ""
+"Botemos unha pequena ollada a Clutter para ver como obter os nomes dos "
+"ficheiros desde o noso cartafol de imaxes."
+
+#: C/photo-wall.c.page:241(p)
+msgid ""
+"Lines 5 and 12: This opens our directory or, if an error occured, returns "
+"after printing an error message."
+msgstr ""
+"LinÌas 5 e 12: Isto abre o noso cartafol ou, se se produce un erro, devolve "
+"despois de imprimir unha mensaxe de erro."
+
+#: C/photo-wall.c.page:242(p)
+msgid ""
+"Lines 14â23: The first line gets another file name from the <code>GDir</"
+"code> we opened earlier. If there was an image file (which we check by "
+"looking at its extension, \".png\" or \".jpg\") in the directory we proceed "
+"to prepend the image directory path to the filename and prepend that to the "
+"list we set up earlier. Lastly we attempt to get the next path name and "
+"reenter the loop if another file was found."
+msgstr ""
+"LiÃas 14â23: la primeira liÃa obtÃn outro nome de ficheiro do <code>GDir</"
+"code> aberto anteriormente. Se hai un ficheiro de imaxe (comprÃbase mirando "
+"se a extensiÃn à Â.png o Â.jpgÂ) no cartafol, procÃdese a antepoÃer a ruta "
+"do cartafol da imaxe ao nome do ficheiro e anteponse na lista creada "
+"anteriormente. Por Ãltimo, intÃntase obter a seguinte ruta e vÃlvese entrar "
+"no bucle se se atopa outro ficheiro."
+
+#: C/photo-wall.c.page:247(title)
+msgid "Set up the actors"
+msgstr "Configurar os actores"
+
+#: C/photo-wall.c.page:248(p)
+msgid ""
+"We now take a look at the sizing and positioning of <code>ClutterActor</"
+"code>s and also readying the <code>ClutterActor</code> for user interaction."
+msgstr ""
+"Vote unha ollada ao tamaÃo e ao posicionamento dos <code>ClutterActor</code> "
+"e a como se deixa listo o <code>ClutterActor</code> para a interacciÃn do "
+"usuario."
+
+#: C/photo-wall.c.page:267(p)
+msgid ""
+"Line 7: Setting an actor reactive means that it reacts to events, such as "
+"<code>button-press-event</code> in our case. For Photo Wall, all "
+"<code>ClutterActor</code>s in the wall should initially be reactive."
+msgstr ""
+"LiÃa 7: configurar un actor como Âreactivo significa que reacciona aos "
+"eventos tales como <code>button-press-event</code> no noso caso. Para o "
+"mural de fotos, todos os <code>ClutterActor</code> do mural deben ser "
+"inicialmente reactivos."
+
+#: C/photo-wall.c.page:270(p)
+msgid ""
+"Line 9â12: Now we connect the <code>button-press-event</code> to the "
+"<code>actor_clicked_cb</code> callback which we will look at next."
+msgstr ""
+"LiÃas 9-12: agora conÃctase o evento <code>button-press-evento</code> Ã "
+"chamada <code>actor_clicked_cb</code> que veremos mÃis adiante."
+
+#: C/photo-wall.c.page:273(p)
+msgid "At this point we've got a wall of images that are ready to be viewed."
+msgstr ""
+"Neste punto obteremos un muro de imaxes que estaÌn listas para ser mostradas."
+
+#: C/photo-wall.c.page:277(title)
+msgid "Reacting to the clicks"
+msgstr "Reaccionar aos clics"
+
+#: C/photo-wall.c.page:322(p)
+msgid ""
+"Lines 1â4: We have to make sure our callback function matches the signature "
+"required for the <code>button_clicked_event</code> signal. For our example, "
+"we will only use the first argument, the <code>ClutterActor</code> that is "
+"actually clicked."
+msgstr ""
+
+#: C/photo-wall.c.page:324(p)
+msgid ""
+"A few words on the arguments we are not using in this example. The "
+"<code>ClutterEvent</code> is different depending on what event is being "
+"handled. For example, a key event produces a <code>ClutterKeyEvent</code> "
+"from which you can get the key being pressed among other information. For "
+"mouse click events you get a <code>ClutterButtonEvent</code> from which you "
+"can get the <code>x</code> and <code>y</code> values. See the Clutter "
+"documentation for other <code>ClutterEvent</code> types."
+msgstr ""
+
+#: C/photo-wall.c.page:325(p)
+msgid ""
+"The <code>user_data</code> is what one uses to pass data into the the "
+"function. A pointer to any data type can be passed in. If you need multiple "
+"data to be passed into the callback, you can place the data into a struct "
+"and pass its address in."
+msgstr ""
+
+#: C/photo-wall.c.page:329(p)
+msgid ""
+"Line 7: We set up a static flag to track which state we are in: wall mode or "
+"focus mode. We start out in wall mode so no image has focus. Thus, we set "
+"the flag to <code>FALSE</code> initially."
+msgstr ""
+
+#: C/photo-wall.c.page:330(p)
+msgid ""
+"Line 9: This line of code runs a custom function, "
+"<code>foreach_set_focus_state</code>, for each element in our "
+"<code>actor_list</code>, passing it the address to the <code>is_focused</"
+"code> flag. We'll see the definition of the <code>foreach_set_focus_state</"
+"code> function in the next section."
+msgstr ""
+
+#: C/photo-wall.c.page:331(p)
+msgid ""
+"Lines 13â19: Reaching this code means that one image currently has focus and "
+"we want to return to wall mode. The <code>clutter_actor_animate</code> "
+"function is used to animate a <code>ClutterActor</code>'s property or "
+"properties from the current state(s) to the specified state(s). The "
+"arguments are as follows:"
+msgstr ""
+
+#: C/photo-wall.c.page:333(p)
+msgid "The address of the <code>ClutterActor</code> to animate"
+msgstr "O enderezo do <code>ClutterActor</code> a animar"
+
+#: C/photo-wall.c.page:334(p)
+msgid ""
+"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
+"we have a constant speed for animation."
+msgstr ""
+
+#: C/photo-wall.c.page:335(p)
+msgid ""
+"The duration of the animation in milliseconds. I've chosen 500 ms for this "
+"example."
+msgstr ""
+
+#: C/photo-wall.c.page:336(p)
+msgid ""
+"The remaining arguments are property/value pairs. Here we want to set the "
+"<code>x</code> value to the starting <code>x</code> value this "
+"<code>ClutterActor</code> was at before being brought into focus."
+msgstr ""
+
+#: C/photo-wall.c.page:337(p)
+msgid ""
+"The last argument must always be <code>NULL</code> to indicate that there "
+"are no more properties to be set."
+msgstr ""
+
+#: C/photo-wall.c.page:339(p)
+msgid ""
+"The <code>depth</code> property needs a little more explaining. We need to "
+"raise the focused image so that it doesn't slide behind other "
+"<code>ClutterActor</code>s. In this section we are returning it to the same "
+"depth as the others on the wall."
+msgstr ""
+
+#: C/photo-wall.c.page:340(p)
+msgid ""
+"Depth also determines which <code>ClutterActor</code>s receive events. A "
+"<code>ClutterActor</code> with a higher depth value receives the click "
+"events and can choose whether the event gets sent to <code>ClutterActor</"
+"code>s under it. We'll see how that works in a few steps."
+msgstr ""
+
+#: C/photo-wall.c.page:342(p)
+msgid ""
+"Line 24: Reaching this line of code means we are currently in the wall state "
+"and are about to give a <code>ClutterActor</code> focus. Here we save the "
+"starting position so that we can return to it later."
+msgstr ""
+
+#: C/photo-wall.c.page:343(p)
+msgid ""
+"Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
+"property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
+"events. In this focused state the only <code>ClutterActor</code> that we "
+"want to receive events will be the <code>ClutterActor</code> being viewed. "
+"Clicking on the <code>ClutterActor</code> will return it to its starting "
+"position."
+msgstr ""
+
+#: C/photo-wall.c.page:344(p)
+msgid ""
+"Lines 27â33: This is similar to the above block of code. Notice that we are "
+"setting the the depth to raise it above the other images."
+msgstr ""
+
+#: C/photo-wall.c.page:345(p)
+msgid ""
+"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
+"state."
+msgstr ""
+
+#: C/photo-wall.c.page:346(p)
+msgid ""
+"As mentioned previously, the <code>ClutterActor</code>s with higher "
+"<code>depth</code> values receive events but can allow <code>ClutterActor</"
+"code>s below them to also receive events. Returning <code>TRUE</code> will "
+"stop events from being passed down, while <code>FALSE</code> will pass "
+"events down."
+msgstr ""
+
+#: C/photo-wall.c.page:348(p)
+msgid ""
+"Remember, however, that to receive events the <code>ClutterActor</code>s "
+"must be set <code>reactive</code>."
+msgstr ""
+
+#: C/photo-wall.c.page:352(p)
+msgid ""
+"The following is the convenience function passed to <code>g_slist_foreach</"
+"code>."
+msgstr ""
+
+#: C/photo-wall.c.page:365(p)
+msgid ""
+"Lines 2â5: The signature of this function requires two <code>gpointer</"
+"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
+"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
+"that we've passed in the previous section. We want to cast these and store "
+"them for easy use."
+msgstr ""
+
+#: C/photo-wall.c.page:366(p)
+msgid ""
+"Line 7: Depending on which boolean value is passed in, the "
+"<code>ClutterActor</code> will be set to respond to events or not."
+msgstr ""
+
+#: C/photo-wall.c.page:371(title) C/image-viewer.vala.page:274(title)
+#: C/image-viewer.cpp.page:204(title) C/image-viewer.c.page:216(title)
+#: C/guitar-tuner.vala.page:247(title) C/guitar-tuner.cpp.page:249(title)
+#: C/guitar-tuner.c.page:251(title)
+msgid "Build and run the application"
+msgstr "ConstruiÌr e executar o aplicativo"
+
+#: C/photo-wall.c.page:372(p)
+msgid ""
+"All of the code should now be ready to go. All you need now is some pictures "
+"to load. By default, the pictures are loaded from a <file>berlin_images</"
+"file> directory. If you want, you can change the <code>#define "
+"IMAGE_DIR_PATH</code> line near the top to refer to your photo directory, or "
+"create a <file>berlin_images</file> directory by clicking "
+"<guiseq><gui>Project</gui><gui>New Directory...</gui></guiseq> and creating "
+"a <file>berlin_images</file> directory as a subdirectory of the <file>photo-"
+"wall</file> directory. Make sure to put at least twelve images in the "
+"directory!"
+msgstr ""
+"Todo o cÃdigo deberÃa estar listo para executarse. Todo o que necesita son "
+"algunhas imaxes para cargar. De maneira predeterminada, as imaxes cÃrganse "
+"desde o cartafol <file>berlin_images</file>. Se quere, pode cambiar a liÃa "
+"<code>#define IMAGE_DIR_PATH</code> do principio para que faga referencia ao "
+"seu cartafol de fotos, ou crear un cartafol <file>berlin_images</file> "
+"premendo en <guiseq><gui>Proxecto</gui><gui>Cartafol novoâ</gui></guiseq> e "
+"creando un cartafol <file>berlin_images</file> como subcartafol do cartafol "
+"<file>mural-fotos</file>. AsegÃrese de poÃer cando menos doce imaxes no "
+"cartafol."
+
+#: C/photo-wall.c.page:374(p)
+msgid ""
+"When you have done that, click <guiseq><gui>Build</gui><gui>Build Project</"
+"gui></guiseq> to build everything again, then <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> to start the application."
+msgstr ""
+"Cando tenÌa que facer iso, prema <guiseq><gui>ConstruiÌr</gui><gui>ConstruiÌr "
+"proxecto</gui></guiseq> para construiÌr todo de novo, logo "
+"<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq> para iniciar o "
+"aplicativo."
+
+#: C/photo-wall.c.page:375(p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/photo-wall</file> "
+"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
+"enjoy!"
+msgstr ""
+"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/photo-wall</"
+"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
+"desfrute!"
+
+#: C/photo-wall.c.page:380(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"photo-wall/photo-wall.c\">reference code</link>."
+msgstr ""
+"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
+"<link href=\"photo-wall/photo-wall.c\">coÌdigo de referencia</link>."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/paned.py.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgid "@@image: 'media/paned.png'; md5=01e36d8a51ee18313616d63d2e15d993"
+msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+
+#: C/paned.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Paned (Python)"
+msgstr "Python"
+
+#: C/paned.py.page:17(desc)
+msgid "A widget with two adjustable panes"
+msgstr ""
+
+#: C/paned.py.page:20(title)
+msgid "Paned"
+msgstr ""
+
+#: C/paned.py.page:22(p)
+msgid "Two images in two adjustable panes, horizontally aligned."
+msgstr ""
+
+#: C/paned.py.page:32(title)
+msgid "Useful methods for a Paned widget"
+msgstr ""
+
+#: C/paned.py.page:33(p)
+msgid ""
+"To have two vertically aligned panes, use <code>Gtk.Orientation.VERTICAL</"
+"code> instead of <code>Gtk.Orientation.HORIZONTAL</code>. The method "
+"<code>add1(widget1)</code> will add the <code>widget1</code> to the top "
+"pane, and <code>add2(widget2)</code> will add the <code>widget2</code> to "
+"the bottom pane."
+msgstr ""
+
+#: C/paned.py.page:40(link)
+msgid "GtkPaned"
+msgstr ""
+
+#: C/model-view-controller.py.page:8(title)
+msgid "The Model/View/Controller design (Python)"
+msgstr ""
+
+#: C/model-view-controller.py.page:12(desc)
+#: C/model-view-controller.py.page:25(title)
+msgid "The Model/View/Controller design"
+msgstr ""
+
+#: C/model-view-controller.py.page:32(p)
+msgid ""
+"Both the <link xref=\"treeview_simple_liststore.py\">TreeView</link> and the "
+"<link xref=\"combobox.py\">ComboBox</link> widgets are built on the "
+"<em>Model/View/Controller</em> design. The <em>Model</em> (an implementation "
+"of <code>Gtk.TreeModel</code>, usually <code>Gtk.TreeStore</code> or "
+"<code>Gtk.ListStore</code>) stores the data; the <em>View</em> (e.g. "
+"<code>Gtk.TreeView</code>, <code>Gtk.ComboBox</code>, or <code>Gtk."
+"ComboBoxText</code>) gets change notifications and displays the content of "
+"the model. The <em>Controller</em>, finally, changes the state of the model "
+"(via some methods in the model's implementation - such as <code>append()</"
+"code> or <code>remove()</code>) and notifies the view of these changes (via "
+"signals like <code>\"changed\"</code>)."
+msgstr ""
+
+#: C/model-view-controller.py.page:37(title)
+msgid "The Model"
+msgstr ""
+
+#: C/model-view-controller.py.page:39(p)
+msgid ""
+"The main difference between the two main implementations of <code>Gtk."
+"TreeModel</code> is that <code>Gtk.ListStore</code> contains simple rows of "
+"data without children, whereas <code>Gtk.TreeStore</code> also contains rows "
+"of data, but each row may have child rows (which in turn can have child "
+"rows, and so on)."
+msgstr ""
+
+#: C/model-view-controller.py.page:41(p)
+msgid ""
+"The data in the Model can be retrieved or modified using the tree iter and "
+"column index, or <code>Gtk.TreeIter</code>, or <code>Gtk.TreePath</code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:43(p)
+msgid ""
+"As with Python's built-in list object you can use <code>len()</code> to get "
+"the number of rows and use slices to retrieve or set values. Otherwise, the "
+"method <code>append()</code> returns a <code>Gtk.TreeIter</code> instance, "
+"which points to the location of the newly inserted row. You can also "
+"retrieve a <code>Gtk.TreeIter</code> by calling <code>get_iter()</code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:45(p)
+msgid ""
+"As <code>Gtk.ListStore</code> contains only one level, i.e. nodes do not "
+"have any child nodes, a path is essentially the index of the row you want to "
+"access. In the case of <code>Gtk.TreeStore</code>, a path is a list of "
+"indexes or a string. The string form is a list of numbers separated by a "
+"colon. Each number refers to the offset at that level. Thus, the path <code>"
+"\"0\"</code> refers to the root node and the path <code>\"2:4\"</code> "
+"refers to the fifth child of the third node."
+msgstr ""
+
+#: C/model-view-controller.py.page:47(p)
+msgid "Useful methods for a <code>Gtk.TreeModel</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:49(p)
+msgid ""
+"<code>get_iter(path)</code> returns a <code>Gtk.TreeIter</code> instance "
+"pointing to <code>path</code>. This is expected to be a colon-separated list "
+"of numbers, or a tuple. For example, the string <code>\"10:4:0\"</code> is "
+"equivalent to the tuple <code>(10, 4, 0)</code>, as both would create a path "
+"of depth 3 pointing to the 11th child of the root node, the 5th child of "
+"that 11th child, and the 1st child of that 5th child."
+msgstr ""
+
+#: C/model-view-controller.py.page:50(p)
+msgid ""
+"<code>iter_next(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
+"instance pointing the node following treeiter at the current level or "
+"<code>None</code> if there is no next iter."
+msgstr ""
+
+#: C/model-view-controller.py.page:51(p)
+msgid ""
+"<code>iter_has_child(treeiter)</code> returns <code>True</code> if "
+"<code>treeiter</code> has children, <code>False</code> otherwise."
+msgstr ""
+
+#: C/model-view-controller.py.page:52(p)
+msgid ""
+"<code>iter_children(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
+"instance pointing to the first child of <code>treeiter</code> or <code>None</"
+"code> if <code>treeiter</code> has no children."
+msgstr ""
+
+#: C/model-view-controller.py.page:53(p)
+msgid ""
+"<code>get_iter_first()</code> returns a <code>Gtk.TreeIter</code> instance "
+"pointing to the first iterator in the tree (the one at the path <code>\"0\"</"
+"code>) or <code>None</code> if the tree is empty."
+msgstr ""
+
+#: C/model-view-controller.py.page:56(p)
+msgid "Useful methods for a <code>Gtk.ListStore</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:58(p)
+msgid ""
+"<code>append(row)</code> appends a new row to this list store, where "
+"<code>row</code> can be a list of values for each column; <code>row</code> "
+"can also be omitted or <code>None</code>, and in that case an empty row will "
+"be appended. The method returns a <code>Gtk.TreeIter</code> pointing to the "
+"appended row."
+msgstr ""
+
+#: C/model-view-controller.py.page:59(p) C/model-view-controller.py.page:65(p)
+msgid ""
+"<code>remove(iter)</code> removes <code>iter</code> from the <code>Gtk."
+"ListStore</code>, and returns <code>True</code> if the iter is valid, and "
+"<code>False</code> if the iter is not. After being removed, <code>iter</"
+"code> is set to be the next valid row."
+msgstr ""
+
+#: C/model-view-controller.py.page:62(p)
+msgid "Useful methods for a <code>Gtk.TreeStore</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:64(p)
+msgid ""
+"<code>append(parent, row)</code> appends a new row to this tree store; "
+"<code>parent</code> must be a valid Gtk.TreeIter. If parent is not "
+"<code>None</code>, then it will append the new row after the last child of "
+"parent, otherwise it will append a row to the top level; <code>row</code> "
+"can be a list of values for each column, or it can be omitted or <code>None</"
+"code>; in this latter case an empty row will be appended. The method returns "
+"a <code>Gtk.TreeIter</code> pointing to the appended row."
+msgstr ""
+
+#: C/model-view-controller.py.page:71(title)
+msgid "The View: the TreeView case"
+msgstr ""
+
+#: C/model-view-controller.py.page:73(p)
+msgid ""
+"A Treeview shows the structure of children and parent items as a tree. See "
+"for instance <link xref=\"treeview_treestore.py\">this example</link>."
+msgstr ""
+
+#: C/model-view-controller.py.page:75(p)
+msgid ""
+"The <code>Gtk.TreeViewColumn</code> is used to organize the vertical columns."
+msgstr ""
+
+#: C/model-view-controller.py.page:77(p)
+msgid "Useful methods for a <code>Gtk.TreeView</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:79(p)
+msgid ""
+"<code>set_model(model)</code> sets the model for this tree view. If this "
+"tree view already has a model set, it will remove it before setting the new "
+"model. If model is <code>None</code>, then it will unset the old model."
+msgstr ""
+
+#: C/model-view-controller.py.page:80(p)
+msgid ""
+"<code>get_model()</code> returns the model this tree view is based on, "
+"<code>None</code> if the model is unset."
+msgstr ""
+
+#: C/model-view-controller.py.page:81(p)
+msgid ""
+"<code>append_column(column)</code> appends <code>column</code> to the list "
+"of columns."
+msgstr ""
+
+#: C/model-view-controller.py.page:82(p)
+msgid ""
+"<code>get_selection()</code> gets the <code>Gtk.TreeSelection</code> "
+"associated with this tree view."
+msgstr ""
+
+#: C/model-view-controller.py.page:85(p)
+msgid "Useful methods for a <code>Gtk.TreeViewColumn</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:87(p)
+msgid ""
+"<code>add_attribute(renderer, attribute, value)</code> adds an attribute "
+"mapping to this column. <code>attribute</code> is the parameter on "
+"<code>renderer</code> to be set from the <code>value</code>"
+msgstr ""
+
+#: C/model-view-controller.py.page:88(p)
+msgid ""
+"<code>pack_start(renderer, expand)</code> packs <code>renderer</code> into "
+"the beginning of this column. If <code>expand</code> is <code>False</code>, "
+"then <code>renderer</code> is allocated no more space than it needs. Any "
+"unused space is divided evenly between cells for which expand is <code>True</"
+"code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:89(p)
+msgid ""
+"<code>pack_end(renderer, expand)</code> adds <code>renderer</code> to end of "
+"this column. If <code>expand</code> is <code>False</code>, then "
+"<code>renderer</code> is allocated no more space than it needs. Any unused "
+"space is divided evenly between cells for which <code>expand</code> is "
+"<code>True</code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:90(p)
+msgid ""
+"<code>set_sort_column_id(sort_column_id)</code> sets the column of the model "
+"by which this column (of the view) should be sorted. This also makes the "
+"columnd header clickable."
+msgstr ""
+
+#: C/model-view-controller.py.page:91(p)
+msgid ""
+"<code>set_sort_indicator(setting)</code> sets whether a little arrow is "
+"displayed in the column header; <code>setting</code> can either be "
+"<code>True</code> (indicator is shown) or <code>False</code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:92(p)
+msgid ""
+"<code>set_sort_order(order)</code> changes the order by which the column is "
+"sorted; <code>order</code> can either be <code>Gtk.SortType.ASCENDING</code> "
+"or <code>Gtk.SortType.DESCENDING</code>."
+msgstr ""
+
+#: C/model-view-controller.py.page:98(title)
+msgid "The View: the ComboBox case"
+msgstr ""
+
+#: C/model-view-controller.py.page:100(p)
+msgid ""
+"A <code>Gtk.ComboBox</code> allows for the selection of an item from a "
+"dropdown menu, see for instance <link xref=\"combobox.py\">this example</"
+"link>. For a list of textual choices, one can also use the simpler <code>Gtk."
+"ComboBoxText</code>. Both <code>Gtk.ComboBox</code> and <code>Gtk."
+"ComboBoxText</code> can contain an entry."
+msgstr ""
+
+#: C/model-view-controller.py.page:102(p)
+msgid "Useful methods for a <code>Gtk.ComboBox</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:104(p)
+msgid ""
+"The static method <code>new_with_entry()</code> creates a new empty "
+"<code>Gtk.ComboBox</code> with an entry; the static method "
+"<code>new_with_model(model)</code> creates a new one with the model "
+"initialized to <code>model</code>; and the static method "
+"<code>new_with_model_and_entry(model)</code> is a combination of the two."
+msgstr ""
+
+#: C/model-view-controller.py.page:105(p)
+msgid ""
+"<code>get_active_iter()</code> returns a <code>Gtk.TreeIter</code> pointing "
+"to the current active item. If no active item exists, <code>None</code> is "
+"returned."
+msgstr ""
+
+#: C/model-view-controller.py.page:106(p)
+msgid ""
+"<code>set_model(model)</code> sets the model used by this combo box to be "
+"<code>model</code>, and it will unset a previously set model (if there is "
+"any). If <code>model</code> is <code>None</code>, then it will unset the "
+"model. Note that this function does not clear the cell renderers."
+msgstr ""
+
+#: C/model-view-controller.py.page:107(p)
+msgid ""
+"<code>set_entry_text_column(text_column)</code> sets the model column which "
+"this combo box should use to get strings from to be <code>text_column</"
+"code>. The column <code>text_column</code> in the model of this combo box "
+"must be of type <code>str</code> (this is only relevant if this combo box "
+"has been created with the âhas-entryâ property set to True)."
+msgstr ""
+
+#: C/model-view-controller.py.page:108(p)
+msgid ""
+"<code>set_wrap_width(width)</code> sets the wrap width of this combo box to "
+"be <code>width</code>. The wrap width is basically the preferred number of "
+"columns when you want the popup to be layed out in a grid."
+msgstr ""
+
+#: C/model-view-controller.py.page:111(p)
+msgid "Useful methods for a <code>Gtk.ComboBoxText</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:113(p)
+msgid ""
+"The static method <code>new_with_entry()</code> creates a new empty "
+"<code>Gtk.ComboBoxText</code> with an entry."
+msgstr ""
+
+#: C/model-view-controller.py.page:114(p)
+msgid ""
+"<code>append_text(text)</code> appends <code>text</code> to the list of "
+"strings stored in this combo box."
+msgstr ""
+
+#: C/model-view-controller.py.page:115(p)
+msgid ""
+"<code>get_active_text()</code> returns the currently active string in this "
+"combo box, or <code>None</code> if none is selected. If this combo box "
+"contains an entry, this function will return its contents (which will not "
+"necessarily be an item from the list)."
+msgstr ""
+
+#: C/model-view-controller.py.page:121(title)
+msgid "The View: the Cellrenderers"
+msgstr ""
+
+#: C/model-view-controller.py.page:123(p)
+msgid ""
+"The View makes use of <code>Gtk.CellRenderer</code>s of various types to "
+"draw the data."
+msgstr ""
+
+#: C/model-view-controller.py.page:125(p)
+msgid "Implementations of <code>Gtk.CellRenderer</code> and useful methods:"
+msgstr ""
+
+#: C/model-view-controller.py.page:127(p)
+msgid "<code>Gtk.CellRendererText</code> - renders text in a cell"
+msgstr ""
+
+#: C/model-view-controller.py.page:128(p)
+msgid ""
+"<code>Gtk.CellRendererToggle</code> - renders a toggle or radio button in a "
+"cell. Useful methods:"
+msgstr ""
+
+#: C/model-view-controller.py.page:130(p)
+msgid ""
+"<code>set_active(setting)</code> - activates or deactivates a cell renderer"
+msgstr ""
+
+#: C/model-view-controller.py.page:131(p)
+msgid "<code>get_active()</code> - returns whether the cell renderer is active"
+msgstr ""
+
+#: C/model-view-controller.py.page:132(p)
+msgid ""
+"<code>set_radio(radio)</code> - if radio is <code>True</code>, the cell "
+"renderer renders a radio toggle (i.e. a toggle in a group of mutually-"
+"exclusive toggles); if <code>False</code>, it renders a check toggle (a "
+"standalone boolean option)"
+msgstr ""
+
+#: C/model-view-controller.py.page:133(p)
+msgid ""
+"<code>get_radio()</code> - returns whether we are rendering radio toggles "
+"rather than checkboxes."
+msgstr ""
+
+#: C/model-view-controller.py.page:136(p)
+msgid "<code>Gtk.CellRendererPixbuf</code> - renders an image in a cell"
+msgstr ""
+
+#: C/model-view-controller.py.page:137(p)
+msgid ""
+"<code>Gtk.CellRendererCombo</code> - renders text in a cell; but while "
+"<code>Gtk.CellRendererText</code> offers a simple entry to edit the text, "
+"<code>Gtk.CellRendererCombo</code> offers a <code>Gtk.ComboBox</code> widget "
+"to edit the text. It can be used with and without an associated Gtk.Entry "
+"widget, depending on the value of the âhas-entryâ property."
+msgstr ""
+
+#: C/model-view-controller.py.page:138(p)
+msgid ""
+"<code>Gtk.CellRendererProgress</code> - renders a numeric value as a "
+"progress bar in a cell; it can display a text on top of the progress bar"
+msgstr ""
+
+#: C/model-view-controller.py.page:139(p)
+msgid ""
+"<code>Gtk.CellRendererSpinner</code> - renders a spinning animation in a cell"
+msgstr ""
+
+#: C/model-view-controller.py.page:140(p)
+msgid "<code>Gtk.CellRendererSpin</code> - renders a spin button in a cell"
+msgstr ""
+
+#: C/model-view-controller.py.page:141(p)
+msgid ""
+"<code>Gtk.CellRendererAccel</code> - renders a keyboard accelerator in a cell"
+msgstr ""
+
+#: C/model-view-controller.py.page:147(title)
+msgid "The Controller: the Selection"
+msgstr ""
+
+#: C/model-view-controller.py.page:149(p)
+msgid ""
+"Most applications will need to not only deal with displaying data, but also "
+"receiving input events from users. To do this, simply get a reference to a "
+"selection object and connect to the <code>\"changed\"</code> signal."
+msgstr ""
+
+#: C/model-view-controller.py.page:151(code)
+#, no-wrap
+msgid ""
+"\n"
+"select = tree.get_selection()\n"
+"select.connect(\"changed\", on_tree_selection_changed)\n"
+msgstr ""
+
+#: C/model-view-controller.py.page:156(p)
+msgid "Then to retrieve data for the row selected:"
+msgstr ""
+
+#: C/model-view-controller.py.page:158(code)
+#, no-wrap
+msgid ""
+"\n"
+"def on_tree_selection_changed(selection):\n"
+"    model, treeiter = selection.get_selected()\n"
+"    if treeiter != None:\n"
+"        print \"You selected\", model[treeiter][0]\n"
+msgstr ""
+
+#: C/model-view-controller.py.page:165(p)
+msgid "Useful method for a <code>Gtk.TreeSelection</code>:"
+msgstr ""
+
+#: C/model-view-controller.py.page:168(p)
+msgid ""
+"<code>set_mode(type)</code> sets the type of selection, where type is one of"
+msgstr ""
+
+#: C/model-view-controller.py.page:170(p)
+msgid "<code>Gtk.SelectionMode.NONE</code> - no selection is possible"
+msgstr ""
+
+#: C/model-view-controller.py.page:171(p)
+msgid ""
+"<code>Gtk.SelectionMode.SINGLE</code> - zero or one element may be selected"
+msgstr ""
+
+#: C/model-view-controller.py.page:172(p)
+msgid ""
+"<code>Gtk.SelectionMode.BROWSE</code> - exactly one element is selected. In "
+"some circumstances, such as initially or during a search operation, itâs "
+"possible for no element to be selected. What is really enforced is that the "
+"user canât deselect a currently selected element except by selecting another "
+"element."
+msgstr ""
+
+#: C/model-view-controller.py.page:173(p)
+msgid ""
+"<code>Gtk.SelectionMode.MULTIPLE</code> -any number of elements may be "
+"selected. Clicks toggle the state of an item. Any number of elements may be "
+"selected. The Ctrl key may be used to enlarge the selection, and Shift key "
+"to select between the focus and the child pointed to. Some widgets may also "
+"allow Click-drag to select a range of elements."
+msgstr ""
+
+#: C/model-view-controller.py.page:176(p)
+msgid ""
+"<code>get_selected()</code> returns a tuple <code>(model, treeiter)</code>, "
+"where <code>model</code> is the current model and <code>treeiter</code> a "
+"<code>Gtk.TreeIter</code> pointing to the currently selected row, or None if "
+"no rows are selected. The method does not work if the selection mode is set "
+"to <code>Gtk.SelectionMode.MULTIPLE</code>; in that case, use "
+"<code>get_selected_rows()</code> instead, which Returns a list of <code>Gtk."
+"TreePath</code> instances of all selected rows."
+msgstr ""
+
+#: C/model-view-controller.py.page:188(link)
+#: C/combobox_multicolumn.py.page:43(link) C/combobox.py.page:40(link)
+msgid "GtkComboBox"
+msgstr ""
+
+#: C/model-view-controller.py.page:189(link)
+msgid "GtkCellRenderer"
+msgstr ""
+
+#: C/model-view-controller.py.page:190(link)
+msgid "The Python Gtk+ 3 Tutorial - Tree and List Widgets"
+msgstr ""
+
+#: C/model-view-controller.py.page:191(link)
+msgid "The Python Gtk+ 3 Tutorial - CellRenderers"
+msgstr ""
+
+#: C/model-view-controller.py.page:192(link)
+msgid "The Python Gtk+ 3 Tutorial - ComboBox"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/messagedialog.vala.page:21(None) C/messagedialog.py.page:22(None)
+#: C/messagedialog.js.page:24(None) C/messagedialog.c.page:23(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+msgid ""
+"@@image: 'media/messagedialog.png'; md5=1956288274018e2386d9cba96a2101de"
+msgstr ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+
+#: C/messagedialog.vala.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (Vala)"
+msgstr "MessageDialog"
+
+#: C/messagedialog.vala.page:17(desc) C/messagedialog.py.page:18(desc)
+#: C/messagedialog.c.page:18(desc)
+msgid "A message window"
+msgstr "Unha xanela de mensaxe"
+
+#: C/messagedialog.vala.page:20(title) C/messagedialog.py.page:21(title)
+#: C/messagedialog.js.page:23(title) C/messagedialog.c.page:21(title)
+msgid "MessageDialog"
+msgstr "MessageDialog"
+
+#: C/messagedialog.vala.page:22(p) C/messagedialog.c.page:24(p)
+msgid "A modal message dialog which can cause the world to explode."
+msgstr ""
+
+#: C/messagedialog.vala.page:30(link)
+msgid "Gtk.ResponseType"
+msgstr "Gtk.ResponseType"
+
+#: C/messagedialog.vala.page:31(link) C/messagedialog.js.page:197(link)
+#: C/entry.js.page:32(link) C/combobox.js.page:243(link)
+#: C/comboboxtext.js.page:183(link)
+msgid "Gtk.MessageDialog"
+msgstr "Gtk.MessageDialog"
+
+#: C/messagedialog.vala.page:32(link)
+msgid "Gtk.DialogFlags"
+msgstr "Gtk.DialogFlags"
+
+#: C/messagedialog.vala.page:33(link)
+msgid "Gtk.MessageType"
+msgstr "Gtk.MessageType"
+
+#: C/messagedialog.vala.page:34(link)
+msgid "Gtk.ButtonsType"
+msgstr "Gtk.ButtonsType"
+
+#: C/messagedialog.py.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (Python)"
+msgstr "MessageDialog"
+
+#: C/messagedialog.py.page:23(p)
+msgid ""
+"A message dialog which prints messages on the terminal, depending on your "
+"choices."
+msgstr ""
+
+#: C/messagedialog.py.page:35(title)
+msgid "Useful methods for a MessageDialog widget"
+msgstr ""
+
+#: C/messagedialog.py.page:38(p)
+msgid ""
+"In the constructor of MessageDialog we could set flags as <code>Gtk."
+"DialogFlags.DESTROY_WITH_PARENT</code> (to destroy the messagedialog window "
+"when its parent window is destroyed) or as <code>Gtk.DialogFlags.MODAL</"
+"code> (no interaction with other windows of the application)."
+msgstr ""
+
+#: C/messagedialog.py.page:39(p)
+msgid ""
+"In the constructor of MessageDialog we could set type as any of <code>Gtk."
+"MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType.QUESTION, Gtk."
+"MessageType.ERROR, Gtk.MessageType.OTHER</code> depending on what type of "
+"message we want."
+msgstr ""
+
+#: C/messagedialog.py.page:40(p)
+msgid ""
+"In the constructor of MessageDialog we could set buttons as any of <code>Gtk."
+"ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType.CLOSE, Gtk.ButtonsType."
+"CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType.OK_CANCEL</code>, or any "
+"button using <code>add_button()</code> as in Gtk.Dialog."
+msgstr ""
+
+#: C/messagedialog.py.page:41(p)
+msgid ""
+"We could substitute the default image of the MessageDialog with another "
+"image using"
+msgstr ""
+
+#: C/messagedialog.py.page:42(code)
+#, no-wrap
+msgid ""
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_CAPS_LOCK_WARNING, Gtk.IconSize.DIALOG)\n"
+"image.show()\n"
+"messagedialog.set_image(image)"
+msgstr ""
+
+#: C/messagedialog.py.page:47(p)
+msgid ""
+"where <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> is any image from <link href="
+"\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Stock "
+"Items</link>. We could also set any image as in the Image widget, as "
+"<code>image.set_from_file(\"filename.png\")</code>."
+msgstr ""
+
+#: C/messagedialog.py.page:48(p)
+msgid ""
+"<code>format_secondary_text(\"some secondary message\")</code> sets a "
+"secondary message. The primary text becomes bold."
+msgstr ""
+
+#: C/messagedialog.py.page:58(link) C/messagedialog.c.page:38(link)
+#, fuzzy
+#| msgid "Gtk.MessageDialog"
+msgid "GtkMessageDialog"
+msgstr "Gtk.MessageDialog"
+
+#: C/messagedialog.py.page:59(link) C/dialog.py.page:49(link)
+#: C/dialog.c.page:35(link)
+#, fuzzy
+#| msgid "Gtk.DialogFlags"
+msgid "GtkDialog"
+msgstr "Gtk.DialogFlags"
+
+#: C/messagedialog.py.page:62(link) C/messagedialog.c.page:40(link)
+#: C/aboutdialog.c.page:38(link)
+msgid "GActionMap"
+msgstr ""
+
+#: C/messagedialog.js.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (JavaScript)"
+msgstr "MessageDialog"
+
+#: C/messagedialog.js.page:20(desc)
+#, fuzzy
+#| msgid "A message window"
+msgid "A popup message attached to a window"
+msgstr "Unha xanela de mensaxe"
+
+#: C/messagedialog.js.page:25(p)
+msgid ""
+"A MessageDialog is a modal message dialog, which means a popup that you have "
+"to respond to before you get back to what you were doing in the window that "
+"it's attached to. This one can cause the world to explode (or at least it "
+"says that it can). To make the popup appear when you run this sample, click "
+"on \"Message\" inside of its application menu -- that's the menu that "
+"appears when you click on an application's name in the upper-left screen "
+"corner, next to Activities."
+msgstr ""
+
+#: C/messagedialog.js.page:26(p)
+msgid ""
+"The difference between a MessageDialog and a <link xref=\"dialog.js"
+"\">Dialog</link> is that a Dialog can contain whatever widgets and content "
+"you want to put in it, whereas a MessageDialog is just a convenient way to "
+"make popups appear with a basic message and buttons."
+msgstr ""
+
+#: C/messagedialog.js.page:69(p) C/comboboxtext.js.page:65(p)
+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."
+msgstr ""
+
+#: C/messagedialog.js.page:91(p)
+msgid ""
+"For this example, all that we have in the window the popup comes out of is a "
+"silly warning <link xref=\"label.js\">Label.</link>"
+msgstr ""
+
+#: C/messagedialog.js.page:95(title)
+#, fuzzy
+#| msgid "Designing the application"
+msgid "Creating the application's menu"
+msgstr "DeseÃar o aplicativo"
+
+#: C/messagedialog.js.page:121(p)
+msgid ""
+"Here, we build the <link xref=\"gmenu.js\">GMenu</link> where we'll be "
+"putting the \"Message\" button which triggers the popup MessageDialog. The "
+"GMenu is the menu that appears when you click the application's name in the "
+"upper-left corner of the screen, next to the Activities menu. Our menu only "
+"has two options in it: Message, and Quit."
+msgstr ""
+
+#: C/messagedialog.js.page:125(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "Creating the MessageDialog"
+msgstr "MessageDialog"
+
+#: C/messagedialog.js.page:141(p)
+msgid ""
+"To make our MessageDialog a popup attached to the main window, we set its "
+"modal property to true and set it to be \"transient_for\" _window. After "
+"that, we can set what kind of buttons it has and what kind of message it is "
+"(which determines what icon appears next to the message), and write out the "
+"text inside it, before connecting its \"response\" signal to the callback "
+"function which handles it."
+msgstr ""
+
+#: C/messagedialog.js.page:142(p)
+msgid "Here are some resources for making your own MessageDialogs:"
+msgstr ""
+
+#: C/messagedialog.js.page:144(link)
+msgid "List of button types"
+msgstr ""
+
+#: C/messagedialog.js.page:145(link)
+msgid "List of message types"
+msgstr ""
+
+#: C/messagedialog.js.page:172(p)
+msgid ""
+"This function takes two parameters, the MessageDialog and its response_id, "
+"both of which are automatically supplied (you don't have to manually pass "
+"them to it for it to work). Here we use a simple switch to change the "
+"\"warning label\"'s text, depending on which option you select. The "
+"DELETE_EVENT occurs if you press Escape to cancel the MessageDialog, instead "
+"of clicking OK or Cancel. Whatever you select, the popup is destroyed "
+"afterwards."
+msgstr ""
+
+#: C/messagedialog.js.page:179(p)
+msgid ""
+"Finally, we create a new instance of the finished MessageDialogExample "
+"class, and set the application running."
+msgstr ""
+
+#: C/messagedialog.c.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (C)"
+msgstr "MessageDialog"
+
+#: C/messagedialog.c.page:25(p)
+msgid ""
+"To test out the application once it has started running, you can click on "
+"the \"Message Dialog\" tab that appears in the top menubar of the screen."
+msgstr ""
+
+#: C/messagedialog.c.page:36(link)
+#, fuzzy
+#| msgid "Gtk.Application"
+msgid "GApplication"
+msgstr "Gtk.Application"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/message-board.c.page:36(None)
+msgid ""
+"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+msgstr ""
+"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+
+#: C/message-board.c.page:7(title)
+#, fuzzy
+#| msgid "Message Board"
+msgid "Message Board (C)"
+msgstr "Taboleiro de mensaxes"
+
+#: C/message-board.c.page:10(desc)
+msgid "A simple program using WebKitGTK+ and the DOM."
+msgstr "Un programa sinxelo usando WebKitGTK+ e DOM."
+
+#: C/message-board.c.page:14(name) C/index.page:12(name)
+msgid "Shaun McCance"
+msgstr "Shaun McCance"
+
+#: C/message-board.c.page:15(email) C/index.page:13(email)
+msgid "shaunm gnome org"
+msgstr "shaunm gnome org"
+
+#: C/message-board.c.page:16(years) C/index.page:14(years)
+msgid "2010"
+msgstr "2010"
+
+#: C/message-board.c.page:21(title)
+msgid "Message Board"
+msgstr "Taboleiro de mensaxes"
+
+#: C/message-board.c.page:26(p)
+msgid "How to display a web page with WebKit."
+msgstr "Como mostrar unha pÃxina web con WebKit"
+
+#: C/message-board.c.page:27(p)
+msgid ""
+"How to manipulate the contents of a web page using WebKit's DOM functions."
+msgstr ""
+"Como manipular os contidos dunha pÃxina web usando as funciÃns de DOM de "
+"WebKit."
+
+#: C/message-board.c.page:30(p)
+msgid ""
+"This tutorial assumes you are familiar with the C programming language and "
+"have a basic understanding of GTK+, including how to create and place "
+"widgets and how to connect callback functions to signals. See <link xref="
+"\"image-viewer.c\"/> to learn the basics of GTK+."
+msgstr ""
+"Este titorial asume que vostede estaÌ familiarizado co linguaxe de "
+"programacioÌn C e ten conÌecementos baÌsicos de GTK+, incluiÌndo como crear e "
+"dispor widgets e como conectar funcioÌns de callback a sinais. Vexa <link "
+"xref=\"image-viewer.c\"/> para aprender o baÌsico de GTK+."
+
+#: C/message-board.c.page:43(p)
+msgid ""
+"The GNOME platform includes WebKitGTK+, built on top of the powerful WebKit "
+"HTML framework. WebKit is used throughout GNOME, not just to view web pages "
+"on the Internet, but also to create rich user interfaces that can be easily "
+"styled with CSS."
+msgstr ""
+"A paltaforma GNOME inclÃe WebKitGTK+, construÃdo sobre o potente marco de "
+"traballo WebKit. WebKitGTK usase en todo GNOME, non sà para ver pÃxinas web "
+"en Internet, senÃn tamÃn para crear interfaces de usuario enriquecidas Ãs "
+"que se poden engadir estilos de forma doada con CSS."
+
+#: C/message-board.c.page:48(p)
+msgid ""
+"In this tutorial, you will create a simple message board using WebKit. The "
+"message board will allow you to enter some text and have it added to a list "
+"of messages in HTML. Before you begin, you need to set up a project in "
+"Anjuta."
+msgstr ""
+"Neste titorial, vostede crearaÌ un taboleiro de mensaxes sinxelo usando "
+"WebKit. O taboleiro de mensaxes permitiralle inserir alguÌn texto e engadilo "
+"a unha lista de mensaxes en HTML. Antes de comezar debe configurar un "
+"proxecto en Anjuta."
+
+#: C/message-board.c.page:54(p)
+msgid ""
+"In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
+"guiseq> to open the new project assistant."
+msgstr ""
+"En Anjuta, prema <guiseq><gui>Ficheiro</gui><gui>Novo</gui><gui>Proxecto</"
+"gui></guiseq> para abrir un asistente de novo proxecto."
+
+#: C/message-board.c.page:56(p)
+#, fuzzy
+#| msgid ""
+#| "Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
+#| "<gui>Forward</gui>."
+msgid ""
+"Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
+"<gui>Continue</gui>."
+msgstr ""
+"Seleccione <gui>GTK+ (simple)</gui> na lapela <gui>C</gui> e prema "
+"<gui>Adiante</gui>."
+
+#: C/message-board.c.page:58(p)
+#, fuzzy
+#| msgid ""
+#| "Fill out your details on the <gui>Basic information</gui> page. Use "
+#| "<input>message-board</input> for the project name. Click <gui>Forward</"
+#| "gui>."
+msgid ""
+"Fill out your details on the <gui>Basic information</gui> page. Use "
+"<input>message-board</input> for the project name. Click <gui>Continue</gui>."
+msgstr ""
+"Complete os detalles na paÌxina <gui>InformacioÌn baÌsica</gui>. Use "
+"<input>message-board</input> para o nome do proxecto. Prema <gui>Seguinte</"
+"gui>."
+
+#: C/message-board.c.page:61(p)
+msgid ""
+"Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
+"tutorial builds the user-interface manually."
+msgstr ""
+"Desactive a opcioÌn <gui>Usar GtkBuilder para a interface de usuario</gui> xa "
+"que neste titorial construirase a interface de usuario de forma manual."
+
+#: C/message-board.c.page:64(p)
+#, fuzzy
+#| msgid ""
+#| "You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
+#| "<gui>Project options</gui> page, select <gui>Configure external packages</"
+#| "gui>. Click <gui>Forward</gui>. On the <gui>Configure external packages</"
+#| "gui> page, check <gui>webkitgtk-3.0</gui>."
+msgid ""
+"You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
+"<gui>Project options</gui> page, select <gui>Configure external packages</"
+"gui>. Click <gui>Continue</gui>. On the <gui>Configure external packages</"
+"gui> page, check <gui>webkitgtk-3.0</gui>."
+msgstr ""
+"Debe dicirlle a Anjuta que estaÌ usando WebKitGTK+ neste proxecto. Na paÌxina "
+"de <gui>OpcioÌns do proxecto</gui>, seleccione <gui>Configurar paquetes "
+"externos</gui>. Prema <gui>Seguinte</gui>. Na paÌxina <gui>Configurar "
+"paquetes externos</gui> marque <gui>webkitgtk-3.0</gui>."
+
+#: C/message-board.c.page:70(p)
+msgid ""
+"After you finish the new project assistant, open the file <file>src/main.c</"
+"file> from either the <gui>Project</gui> or the <gui>File</gui> tab. Anjuta "
+"will have filled this in with some basic GTK+ code from its templates. Since "
+"you are creating a WebKit project, you first need to include the WebKit "
+"headers. After the line that includes <code>gtk/gtk.h</code>, add the "
+"following line:"
+msgstr ""
+
+#: C/message-board.c.page:77(code)
+#, no-wrap
+msgid "#include &lt;webkit/webkit.h&gt;"
+msgstr "#include &lt;webkit/webkit.h&gt;"
+
+#: C/message-board.c.page:79(p)
+msgid ""
+"Verify that everything works by building what you have so far. Click "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>. The first time you build, "
+"you will be asked for some configure options. Just accept the defaults and "
+"click <gui>Execute</gui>."
+msgstr ""
+
+#: C/message-board.c.page:85(p)
+msgid ""
+"You should now be able to run the program. Click <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> or just press <key>F3</key>. You should see "
+"an empty window appear."
+msgstr ""
+"DeberiÌa poder executar o programa. Prema <guiseq><gui>Executar</"
+"gui><gui>Executar</gui></guiseq> ou prema <key>F3</key>. DeberiÌa aparecer "
+"unha xanela baleira."
+
+#: C/message-board.c.page:91(title)
+msgid "Lay out your window and web view"
+msgstr "Dispor a suÌa xanela e a vista web"
+
+#: C/message-board.c.page:93(p)
+msgid ""
+"Now that you can show a window, it's time to start working with WebKit. For "
+"this tutorial, you'll create a text entry and a web view and pack them both "
+"into a window. Find the function <code>create_window</code> and replace it "
+"with the following:"
+msgstr ""
+"Agora que pode mostrar unha xanela, eÌ hora de comezar o traballo con webkit. "
+"Para este titorial, crearemos unha entrada de texto e unha vista web e "
+"empaquetareÌmolas nunha xanela. Busque a funcioÌn <code>create_window</code> e "
+"substituÌaa co seguinte:"
+
+#: C/message-board.c.page:133(p)
+msgid ""
+"You first create a <code>GtkWindow</code> object and set its title and "
+"default size. You also connect the <code>gtk_main_quit</code> function to "
+"the <code>delete-event</code> signal. The <code>delete-event</code> signal "
+"is emitted when the window is closed. The <code>gtk_main_quit</code> "
+"function is part of GTK, and it quits the application."
+msgstr ""
+"Primeiro cree un obxecto <code>GtkWindow</code> e estabeleza o seu tÃtulo e "
+"o seu tamaÃo predeterminado. TamÃn pode conectar a funciÃn "
+"<code>gtk_main_quit</code> ao sinal <code>delete-event</code>. O sinal "
+"<code>delete-event</code> emÃtese cando se pecha a xanela. A funciÃn "
+"<code>gtk_main_quit</code> Ã parte de GTK+, e sae do aplicativo."
+
+#: C/message-board.c.page:139(p)
+msgid ""
+"You then create a vertical box and add it to the window. A window can only "
+"hold a single child widget, so you need to use a box to add multiple "
+"widgets. The second argument to <code>gtk_box_new</code> sets the amount of "
+"padding (in pixels) between each child, and the next line puts a six-pixel "
+"border around the entire thing."
+msgstr ""
+
+#: C/message-board.c.page:145(p)
+msgid ""
+"You next create a <code>GtkEntry</code> object and pack it into the box. The "
+"third and fourth arguments to <code>gtk_box_pack_start</code> specify that "
+"the entry shouldn't take up any extra space the box has available. The "
+"fourth argument is the amount of padding you want around the entry. In this "
+"case, you set the padding to zero, because you're allowing the box to handle "
+"all the padding."
+msgstr ""
+
+#: C/message-board.c.page:152(p)
+msgid ""
+"Before you add a web view, you have to create a scrolled window to put it "
+"inside of. The scrolled window will place scrollbars on the right and bottom "
+"when necessary, and prevent your web view from filling your entire screen. "
+"This time, you pass <code>TRUE</code> and <code>TRUE</code> to "
+"<code>gtk_box_pack_start</code> to allow the scrolled window (and thus, the "
+"web view) to use any extra space available in the box."
+msgstr ""
+
+#: C/message-board.c.page:159(p)
+msgid ""
+"Finally, you create a <code>WebKitWebView</code> and add it to the scrolled "
+"window. Then load a very basic HTML page into the web view by calling "
+"<code>webkit_web_view_load_string</code> with the following arguments:"
+msgstr ""
+
+#: C/message-board.c.page:165(code)
+#, no-wrap
+msgid "WEBKIT_WEB_VIEW (view)"
+msgstr "WEBKIT_WEB_VIEW (view)"
+
+#: C/message-board.c.page:166(p)
+msgid ""
+"The view itself. Because <code>view</code> is typed as a <code>GtkWidget*</"
+"code>, you have to use <code>WEBKIT_WEB_VIEW</code> to safely cast the "
+"object."
+msgstr ""
+"A vista por si mesma. Xa que <code>view</code> Ã de tipo <code>GtkWidget*</"
+"code>, debe usar <code>WEBKIT_WEB_VIEW</code> para converter o tipo de "
+"obxecto con seguranza."
+
+#: C/message-board.c.page:171(code)
+#, no-wrap
+msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
+msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
+
+#: C/message-board.c.page:172(p)
+msgid "The simplest HTML file you could possibly write."
+msgstr "O ficheiro HTLM mÃis sinxelo que pode escribir."
+
+#: C/message-board.c.page:175(code)
+#, no-wrap
+msgid "\"text/html\""
+msgstr "\"text/html\""
+
+#: C/message-board.c.page:176(p)
+msgid ""
+"The MIME type of the content you provided. In this case, you're using plain "
+"HTML."
+msgstr ""
+"O tipo MIME do contido que forneceu. Neste caso, està usando HTML plano."
+
+#: C/message-board.c.page:180(code)
+#, no-wrap
+msgid "\"UTF-8\""
+msgstr "\"UTF-8\""
+
+#: C/message-board.c.page:181(p)
+msgid ""
+"The character encoding of the content you provided. Although you only used "
+"ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used as the "
+"default encoding throughout the GNOME platform."
+msgstr ""
+"A codificaciÃn de caracteres do contido que forneceu. AÃnda que sà se usen "
+"caracteres ASCII Ã boa idea especificar UTF-8. UTF-8 Ãsase como a "
+"codificaciÃn predeterminada na plataforma GNOME."
+
+#: C/message-board.c.page:186(code)
+#, no-wrap
+msgid "NULL"
+msgstr "NULL"
+
+#: C/message-board.c.page:187(p)
+msgid ""
+"The base URI. You don't need it in this simple example, but you might want "
+"to provide a <sys>file:</sys> URI if you add images or other features where "
+"you want to use relative URI references."
+msgstr ""
+"O URI base. Non o precisa neste exemplo sinxelo, pero poderiÌa fornecer unha "
+"URI <sys>file:</sys> se quere engadir imaxes ou outras caracteriÌsticas onde "
+"queira usar preferencias relativas a URI."
+
+#: C/message-board.c.page:194(p)
+msgid ""
+"Every time you add a widget, you have to call <code>gtk_widget_show</code> "
+"on it for it to be visible. If you call <code>gtk_widget_show_all</code> on "
+"a container widget like a <code>GtkBox</code>, GTK+ will automatically show "
+"all the widgets inside the container, to any depth. Sometimes you don't want "
+"to call <code>gtk_widget_show_all</code>, such as when you want to "
+"dynamically hide and show some widgets in response to events."
+msgstr ""
+
+#: C/message-board.c.page:202(p)
+msgid ""
+"Finally, you have to call <code>gtk_widget_show_all</code> on the box. "
+"Otherwise, none of the widgets you created will be visible. (The window is "
+"shown in the <code>main</code> function with <code>gtk_widget_show</code>.)"
+msgstr ""
+
+#: C/message-board.c.page:206(p)
+msgid ""
+"Build and run the message board again. You should see a window with a text "
+"entry and a web view. It doesn't do anything yet because the text entry and "
+"the web view don't know anything about each other."
+msgstr ""
+
+#: C/message-board.c.page:212(title)
+msgid "Hook up signals"
+msgstr "Capturar sinais"
+
+#: C/message-board.c.page:214(p)
+msgid ""
+"Now you want to make the message board actually <em>do</em> something when "
+"you enter text into the text entry. To do this, connect a callback function "
+"to the <code>activate</code> signal of <code>entry</code>. GTK+ emits the "
+"<code>activate</code> signal whenever the user presses <key>Enter</key> in "
+"the entry. Add the following into <code>create_window</code>, anywhere after "
+"both <code>entry</code> and <code>view</code> have been defined:"
+msgstr ""
+
+#: C/message-board.c.page:225(p)
+msgid ""
+"You then have to actually define <code>entry_activate_cb</code>. Define it "
+"as follows, anywhere above <code>create_window</code>:"
+msgstr ""
+
+#: C/message-board.c.page:248(p)
+msgid ""
+"The first thing you do is get a <code>WebKitDOMDocument</code> object that "
+"represents the HTML document displayed in <code>view</code>. The DOM classes "
+"and methods in WebKit allow you to inspect and manipulate the HTML document, "
+"and work very similarly to the DOM APIs you might already know from "
+"JavaScript."
+msgstr ""
+
+#: C/message-board.c.page:254(p)
+msgid ""
+"Once you have the document, you want to get the <code>body</code> element so "
+"that you can add <code>div</code> elements to it. The "
+"<code>webkit_dom_document_query_selector</code> function lets you find an "
+"element in the document using CSS selectors. This keeps you from having to "
+"write tedious loops to traverse the document."
+msgstr ""
+
+#: C/message-board.c.page:261(cite) C/message-board.c.page:273(cite)
+#: C/message-board.c.page:325(cite) C/message-board.c.page:382(cite)
+#: C/message-board.c.page:390(cite)
+msgid "shaunm"
+msgstr "shaunm"
+
+#: C/message-board.c.page:262(p)
+msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
+msgstr ""
+
+#: C/message-board.c.page:265(p)
+msgid ""
+"Next, you create a new <code>div</code> element to hold the message. Every "
+"element you create has to be attached to a document, so the function to "
+"create an element takes the <code>WebKitDOMDocument</code> as its first "
+"arguments. You then set the text content of the element to the contents of "
+"the text entry. Because <code>gtk_entry_get_text</code> returns a "
+"<code>const gchar*</code>, you don't have to free the result."
+msgstr ""
+
+#: C/message-board.c.page:274(p)
+msgid ""
+"Not passing the GError**, but we should give it a quick mention and link to "
+"somewhere that explains how GError-handling works."
+msgstr ""
+
+#: C/message-board.c.page:278(p)
+msgid ""
+"Finally, you append the new <code>div</code> element to the body and clear "
+"out the text entry so you can type something new. Build and run the program "
+"again and test it for yourself."
+msgstr ""
+
+#: C/message-board.c.page:285(title)
+msgid "Make it look better with CSS"
+msgstr "Mellorar o aspecto con CSS"
+
+#: C/message-board.c.page:287(p)
+msgid ""
+"At this point, your program is completely functional, but not very pretty. "
+"You can style the message display with CSS, just like you can with any other "
+"HTML page. There are many ways you could attach some CSS to the page: You "
+"could add it in the initial HTML document. You could inline it in the "
+"<code>style</code> attribute of the <code>div</code> elements. You could "
+"even programmatically construct it using the DOM APIs."
+msgstr ""
+
+#: C/message-board.c.page:294(p)
+msgid ""
+"In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
+"code> property of the <code>WebKitWebSetting</code> object attached to your "
+"web view. In a more complete application, you would want to save and load "
+"your HTML file. Keeping the style information outside the actual HTML means "
+"that you can change the styling completely within your application, without "
+"having to change users' files. You would normally just install a file along "
+"with your application, but just to keep everything in one file for this "
+"demo, we'll use a trick called a data URI. First, define the CSS as a static "
+"string near the top of your file."
+msgstr ""
+
+#: C/message-board.c.page:316(p)
+msgid ""
+"All you have in this example are <code>div</code> elements inside a "
+"<code>body</code> element. If you created more complicated HTML, you could "
+"use whatever CSS is necessary. In fact, if you're comfortable with CSS, you "
+"should trying changing this to something you like better."
+msgstr ""
+
+#: C/message-board.c.page:321(p)
+msgid ""
+"To apply the CSS, you set the <code>user-stylesheet-uri</code> in the "
+"<code>create_window</code> function, anywhere after <code>view</code> has "
+"already been defined."
+msgstr ""
+
+#: C/message-board.c.page:325(p)
+msgid "g_base64_encode has bad args"
+msgstr "g_base64_encode ten argumentos non vÃlidos"
+
+#: C/message-board.c.page:337(p)
+msgid ""
+"Also, make sure to add variable declarations for <code>tmp</code> and "
+"<code>css</code> to the top of <code>create_window</code>."
+msgstr ""
+
+#: C/message-board.c.page:340(code)
+#, no-wrap
+msgid ""
+"\n"
+"gchar *tmp, *css;\n"
+msgstr ""
+"\n"
+"gchar *tmp, *css;\n"
+
+#: C/message-board.c.page:344(p)
+msgid ""
+"A data URI starts with <sys>data:</sys> and some information about the "
+"content type and how the data is encoded. The actual data follows after a "
+"comma, in this case encoded in Base64. Unlike other URI schemes like "
+"<sys>http:</sys>, <sys>ftp:</sys>, and <sys>file:</sys>, the <sys>data:</"
+"sys> URI scheme doesn't specify where to find a file to load. Rather, it "
+"gives the entire contents of the file."
+msgstr ""
+
+#: C/message-board.c.page:351(p)
+msgid ""
+"The code above first encodes your CSS definitions in Base64, then combines "
+"that with a fixed string to create a data URI. The <code>g_strconcat</code> "
+"function can take any number of string arguments and concatenate them all "
+"together, so you have to pass <code>NULL</code> as the final argument so it "
+"knows when to stop. And don't forget to free those temporary strings after "
+"you set the stylesheet property."
+msgstr ""
+
+#: C/message-board.c.page:358(p)
+msgid ""
+"Build and run the program again. It should now work exactly the same as at "
+"the end of the last section, except the messages will be nicely styled with "
+"a border and a subtle background gradient."
+msgstr ""
+
+#: C/message-board.c.page:364(title)
+msgid "Learn more"
+msgstr "Aprender mÃis"
+
+#: C/message-board.c.page:366(p)
+msgid ""
+"This tutorial showed you how to create a basic application using GTK+ and "
+"WebKit, including showing a document and manipulating its contents. To "
+"create a real application, you probably want to do a little bit more. Try "
+"adding features on your own. Here are a few ideas:"
+msgstr ""
+"Este titorial mostroulle como crear un aplicativo sinxelo usando GTK+ e "
+"WebKit, incluindo como mostrar un documento e manipular o seu contido. Para "
+"crear un aplicativo real, probabelmente queira facer algo mÃis. Probe a "
+"engadir caracterÃsticas vostede mesmo. Aquà hai algunhas ideas:"
+
+#: C/message-board.c.page:372(p)
+msgid ""
+"If you're comfortable with CSS, try changing the style of the message "
+"display. CSS is easy to get started with, but increasingly more powerful. "
+"There is a wealth of CSS tutorials on the Internet, and just about "
+"everything you can do on the web, you can do in this application."
+msgstr ""
+"Si se sinte comodo usando CSS, probe a cambiar o estilo da visualizaciÃn da "
+"mensaxe. à moi doado iniciarse en CSS, pero cada vez à mÃis potente. Hai "
+"unha gran cantidade de titoriais de CSS en Internet, e case todo o que se "
+"pode facer nunha pÃxina web, pÃdese facer neste aplicativo."
+
+#: C/message-board.c.page:378(p)
+msgid ""
+"Right now, you lose all your messages whenever you close the message board. "
+"Try saving the HTML contents after each post, and loading the saved file (if "
+"it exists) on startup."
+msgstr ""
+"Agora mesmo, tÃdalas mesnaxes pÃrdense ao pechar o cadro de mensaxes. Probe "
+"a gardar o contido HTML despois de cada envÃo, e a cargar o ficheiro cargado "
+"(se existe) ao inicio."
+
+#: C/message-board.c.page:382(p)
+msgid "Link to method to get HTML from DOM and to GIO APIs."
+msgstr "LigazÃn ao mÃtodo para obter HTML desde DOM e nas API de GIO."
+
+#: C/message-board.c.page:386(p)
+msgid ""
+"If you keep your messages around for a long time, you'll start wondering "
+"when you posted them. Add a timestamp to each message when it's posted. "
+"You'll probably want to create some additional child <code>div</code> "
+"elements with different classes that you can style in the CSS."
+msgstr ""
+
+#: C/message-board.c.page:390(p)
+msgid "Link to strftime or something"
+msgstr "LigazÃns a strftime ou algo"
+
+#: C/message-board.c.page:393(p)
+msgid ""
+"This program keeps messages around forever. Think about ways you could allow "
+"the user to delete messages. Perhaps you want messages to disappear "
+"automatically after they're too old, or after there are a certain number of "
+"messages before them. Or you could add a link in each message to delete it. "
+"You could even override the context menu when you right-click on a message. "
+"These features involve exploring WebKit's DOM API more."
+msgstr ""
+"Este programa garda as mensaxes para sempre. Pense algunha maneira para que "
+"o usuario poida borrar mensaxes. Tal vez queira que as mensaxes desapareza "
+"automaticamente cando son moi antigas ou despois de que haxa certo nÃmero de "
+"mensaxes por diante. Ou poderÃa engadir unha ligazÃn en cada mensaxe para "
+"borrala. TamÃn pode omitir o menà contextual cando preme co botÃn dereito "
+"sobe unha mensaxe. Esta caracterÃsticas implican explorar mÃis da API do DOM "
+"de WebKit."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/menubutton.py.page:27(None) C/menubutton.vala.page:21(None)
+#: C/menubutton.js.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/menubutton.png'; md5=1feb7b836a522c3007079d4420621d9d"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/menubutton.py.page:23(desc) C/menubutton.vala.page:17(desc)
+#: C/menubutton.js.page:17(desc)
+msgid "A widget that shows a menu when clicked on"
+msgstr ""
+
+#: C/menubutton.py.page:28(p) C/menubutton.vala.page:22(p)
+#: C/menubutton.js.page:22(p)
+msgid ""
+"The GtkMenuButton widget is used to display a menu when clicked on. This "
+"menu can be provided either as a GtkMenu, or an abstract GMenuModel. The "
+"GtkMenuButton widget can hold any valid child widget. That is, it can hold "
+"almost any other standard GtkWidget. The most commonly used child is the "
+"provided GtkArrow."
+msgstr ""
+
+#: C/menubutton.py.page:30(p) C/menubutton.vala.page:26(p)
+#: C/menubutton.js.page:26(p)
+msgid "You need to be running GNOME 3.6 for the MenuButton to work."
+msgstr ""
+
+#: C/menubutton.py.page:40(title)
+msgid "Useful methods for a MenuButton widget"
+msgstr ""
+
+#: C/menubutton.py.page:41(p)
+msgid ""
+"The positioning of the menu is determined by the \"direction\" property of "
+"the menu button and the \"halign\" or \"valign\" properties of the menu. For "
+"example, when the direction is <code>Gtk.ArrowType.DOWN</code> (other "
+"option: <code>UP</code>) and the horizontal alignment is <code>Gtk.Align."
+"START</code> (other options: <code>CENTER</code> and <code>END</code>), the "
+"menu will be positioned below the button, with the starting edge (depending "
+"on the text direction) of the menu aligned with the starting edge of the "
+"button. If there is not enough space below the button, the menu is popped up "
+"above the button instead. If the alignment would move part of the menu "
+"offscreen, it is 'pushed in'."
+msgstr ""
+
+#: C/menubutton.py.page:43(p)
+msgid ""
+"In the case of vertical alignment, the possible ArrowType directions are "
+"<code>LEFT</code> and <code>RIGHT</code> and the vertical alignment is again "
+"<code>START</code>, <code>CENTER</code> or <code>END</code>."
+msgstr ""
+
+#: C/menubutton.py.page:45(p)
+msgid ""
+"<code>set_align_widget(alignment)</code> and <code>set_direction(direction)</"
+"code> can be used to set these properties."
+msgstr ""
+
+#: C/menubutton.vala.page:7(title)
+msgid "MenuButton (Vala)"
+msgstr ""
+
+#: C/menubutton.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "MenuButton (JavaScript)"
+msgstr "JavaScript"
+
+#: C/menubutton.js.page:12(name)
+msgid "Anna Zacchi"
+msgstr ""
+
+#: C/menubutton.js.page:13(email)
+msgid "azzurroverde gmail com"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/menubar.vala.page:23(None) C/menubar.py.page:28(None)
+#, fuzzy
+#| msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+msgid "@@image: 'media/menubar.png'; md5=7b642aaa1628d5e43ab85ac230ac1c78"
+msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/menubar.vala.page:133(None) C/menubar.py.page:129(None)
+#, fuzzy
+#| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+msgid ""
+"@@image: 'media/menubar_choices.png'; md5=47cdfa12caf85ba20dd3e835bd7f893f"
+msgstr "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+
+#: C/menubar.vala.page:7(title)
+msgid "MenuBar (Vala)"
+msgstr ""
+
+#: C/menubar.vala.page:19(desc) C/menubar.py.page:24(desc)
+msgid "A widget which holds GtkMenuItem widgets"
+msgstr ""
+
+#: C/menubar.vala.page:22(title) C/menubar.py.page:27(title)
+msgid "MenuBar"
+msgstr ""
+
+#: C/menubar.vala.page:24(p) C/menubar.py.page:29(p)
+msgid "A MenuBar created using XML and GtkBuilder."
+msgstr ""
+
+#: C/menubar.vala.page:28(title) C/menubar.py.page:33(title)
+msgid "Create a MenuBar using XML"
+msgstr ""
+
+#: C/menubar.vala.page:29(p) C/menubar.py.page:34(p)
+msgid "To create the menubar using XML:"
+msgstr ""
+
+#: C/menubar.vala.page:31(p) C/menubar.py.page:36(p)
+msgid "Create <file>menubar.ui</file> using your favorite text editor."
+msgstr ""
+
+#: C/menubar.vala.page:32(p) C/menubar.py.page:37(p)
+msgid "Enter the following line at the top of the file:"
+msgstr ""
+
+#: C/menubar.vala.page:36(p) C/menubar.py.page:41(p)
+msgid ""
+"We want to create the interface which will contain our menubar and it's "
+"submenus. Our menubar will contain <gui>File</gui>, <gui>Edit</gui>, "
+"<gui>Choices</gui> and <gui>Help</gui> submenus. We add the following XML "
+"code to the file:"
+msgstr ""
+
+#: C/menubar.vala.page:39(p)
+msgid ""
+"Now we will create the .vala file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
+msgstr ""
+
+#: C/menubar.vala.page:42(title) C/menubar.py.page:48(title)
+msgid "Add the MenuBar to the window using GtkBuilder"
+msgstr ""
+
+#: C/menubar.vala.page:44(p)
+msgid ""
+"Now, compile the vala file, and run it. The application should look like the "
+"picture at the top of this page."
+msgstr ""
+
+#: C/menubar.vala.page:50(title) C/menubar.py.page:54(title)
+msgid "Add items to the menus"
+msgstr ""
+
+#: C/menubar.vala.page:51(p) C/menubar.py.page:55(p)
+msgid ""
+"We start off by adding 2 menuitems to the <gui>File</gui> menu: <gui>New</"
+"gui> and <gui>Quit</gui>. We do this by adding a <code>section</code> to the "
+"the <code>File</code> submenu with these items. The <file>menubar.ui</file> "
+"should look like this (lines 6 to 13 inclusive comprise the newly added "
+"section):"
+msgstr ""
+
+#: C/menubar.vala.page:79(p)
+msgid ""
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu. We will hold off "
+"on adding items to the <link xref=\"menubar.vala#choices\">Choices submenu</"
+"link> until further in the tutorial."
+msgstr ""
+
+#: C/menubar.vala.page:81(p)
+msgid ""
+"You do not need to recompile the vala program if you only made changes to "
+"the UI file. Just run your previously compiled application, and the UI "
+"changes will be reflected."
+msgstr ""
+
+#: C/menubar.vala.page:86(title) C/menubar.py.page:92(title)
+#, fuzzy
+#| msgid "Set up the actors"
+msgid "Setup actions"
+msgstr "Configurar os actores"
+
+#: C/menubar.vala.page:87(p)
+msgid "This is a three step process."
+msgstr ""
+
+#: C/menubar.vala.page:89(p)
+msgid ""
+"First we create the ActionEntry array in the MyApplication class. An "
+"ActionEntry consists of:"
+msgstr ""
+
+#: C/menubar.vala.page:92(p)
+msgid "the \"action name\" (mandatory)"
+msgstr ""
+
+#: C/menubar.vala.page:93(p)
+msgid ""
+"the callback function to connect to the \"activate\" signal of the action "
+"(if applicable)"
+msgstr ""
+
+#: C/menubar.vala.page:94(p)
+msgid ""
+"the type of the parameter that must be passed to the activate function for "
+"the action (if applicable)"
+msgstr ""
+
+#: C/menubar.vala.page:95(p)
+msgid "the initial state for this action (if applicable)"
+msgstr ""
+
+#: C/menubar.vala.page:96(p)
+msgid "the callback to connect to \"change-state\" signal (if applicable)"
+msgstr ""
+
+#: C/menubar.vala.page:98(code)
+#, no-wrap
+msgid ""
+"\n"
+"const ActionEntry[] actions = {\n"
+"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
+"    { \"quit\", quit_cb }\n"
+"};"
+msgstr ""
+
+#: C/menubar.vala.page:105(p)
+msgid "Second, we create the callback functions the actions are connected to."
+msgstr ""
+
+#: C/menubar.vala.page:106(code)
+#, no-wrap
+msgid ""
+"\n"
+"void new_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"New\\\"\\n\");\n"
+"    //new MyWindow (this).show ();\n"
+"}\n"
+"\n"
+"void quit_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"Quit\\\"\\n\");\n"
+"    //this.quit ();  **Bug #674090**\n"
+"}"
+msgstr ""
+
+#: C/menubar.vala.page:117(p)
+msgid ""
+"And lastly, we connect the menu items to the actions in the XML file by "
+"adding the \"action\" attribute:"
+msgstr ""
+
+#: C/menubar.vala.page:132(title) C/menubar.py.page:128(title)
+msgid "Choices submenu and items with state"
+msgstr ""
+
+#: C/menubar.vala.page:134(p)
+msgid ""
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.vala#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+msgstr ""
+
+#: C/menubar.vala.page:138(title) C/menubar.py.page:119(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "Actions: Application or Window?"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/menubar.vala.page:139(p) C/menubar.py.page:120(p)
+msgid ""
+"Above, we created the \"new\" and \"open\" actions as part of the "
+"MyApplication class. Actions which control the application itself, such as "
+"\"quit\" should be created similarly."
+msgstr ""
+
+#: C/menubar.vala.page:142(p) C/menubar.py.page:122(p)
+msgid ""
+"Some actions, such as \"copy\" and \"paste\" deal with the window, not the "
+"application. Window actions should be created as part of the window class."
+msgstr ""
+
+#: C/menubar.vala.page:145(p)
+msgid ""
+"The complete example files contain both application actions and window "
+"applications. The window actions are the ones usually included in the <link "
+"xref=\"gmenu.vala\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
+msgstr ""
+
+#: C/menubar.vala.page:153(title) C/menubar.py.page:147(title)
+msgid "Complete XML UI file for this example"
+msgstr ""
+
+#: C/menubar.vala.page:156(title)
+msgid "Complete Vala file for this example"
+msgstr ""
+
+#: C/menubar.vala.page:160(title)
+msgid "Mnemonics"
+msgstr ""
+
+#: C/menubar.vala.page:161(p) C/menubar.py.page:157(p)
+msgid ""
+"Labels may contain mnemonics. Mnemonics are underlined characters in the "
+"label, used for keyboard navigation. Mnemonics are created by placing an "
+"underscore before the mnemonic character. For example \"_File\" instead of "
+"just \"File\" in the menubar.ui label attribute."
+msgstr ""
+
+#: C/menubar.vala.page:162(p) C/menubar.py.page:158(p)
+msgid ""
+"The mnemonics are visible when you press the <key>Alt</key> key. Pressing "
+"<keyseq><key>Alt</key><key>F</key></keyseq> will open the <gui>File</gui> "
+"menu."
+msgstr ""
+
+#: C/menubar.vala.page:166(title)
+#, fuzzy
+#| msgid "Selectors"
+msgid "Accelerators"
+msgstr "Selectores"
+
+#: C/menubar.vala.page:167(p) C/menubar.py.page:160(p)
+msgid ""
+"Accelerators can be explicitly added in the UI definitions. For example, it "
+"is common to be able to quit an application by pressing <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> or to save a file by pressing <keyseq><key>Ctrl</"
+"key><key>S</key></keyseq>. To add an accelerator to the UI definition, you "
+"simply need add an \"accel\" attribute to the item."
+msgstr ""
+
+#: C/menubar.vala.page:168(p) C/menubar.py.page:161(p)
+msgid ""
+"<code mime=\"application/xml\"><![CDATA[<attribute name=\"accel\">&lt;"
+"Primary&gt;q</attribute>]]></code> will create the <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> sequence when added to the <code>Quit</code> label "
+"item. Here, \"Primary\" refers to the <key>Ctrl</key> key on a PC or the "
+"<key>â</key> key on a Mac."
+msgstr ""
+
+#: C/menubar.vala.page:178(title) C/menubar.py.page:171(title)
+msgid "Translatable strings"
+msgstr ""
+
+#: C/menubar.vala.page:179(p) C/menubar.py.page:172(p)
+msgid ""
+"Since GNOME applications are being translated into <link href=\"http://l10n.";
+"gnome.org/languages/\">many languages</link>, it is important that the "
+"strings in your application are translable. To make a label translatable, "
+"simple set <code>translatable=\"yes\"</code>:"
+msgstr ""
+
+#: C/menubar.vala.page:186(title) C/filechooserdialog.vala.page:34(title)
+#, fuzzy
+#| msgid "Reference Implementation"
+msgid "Relevant API documentation"
+msgstr "ImplementaciÃn de referencia"
+
+#: C/menubar.vala.page:191(link)
+msgid "Glib.ActionEntry"
+msgstr ""
+
+#: C/menubar.vala.page:192(link) C/filechooserdialog.vala.page:41(link)
+msgid "Gtk.Builder"
+msgstr ""
+
+#: C/menubar.py.page:7(title)
+msgid "MenuBar (Python)"
+msgstr ""
+
+#: C/menubar.py.page:44(p)
+msgid ""
+"Now we will create the .py file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
+msgstr ""
+
+#: C/menubar.py.page:50(p)
+msgid ""
+"Now run the python application. It should look like the picture at the top "
+"of this page."
+msgstr ""
+
+#: C/menubar.py.page:58(title)
+msgid "menubar.ui"
+msgstr ""
+
+#: C/menubar.py.page:87(p)
+msgid ""
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu."
+msgstr ""
+
+#: C/menubar.py.page:94(p)
+msgid ""
+"We now create the actions for \"New\" and \"Quit\" connected to a callback "
+"function in the Python file; for instance we create \"new\" as:"
+msgstr ""
+
+#: C/menubar.py.page:95(code)
+#, no-wrap
+msgid ""
+"\n"
+"new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"new_action.connect(\"activate\", self.new_callback)"
+msgstr ""
+
+#: C/menubar.py.page:99(p)
+msgid "And we create the callback function of \"new\" as"
+msgstr ""
+
+#: C/menubar.py.page:100(code)
+#, no-wrap
+msgid ""
+"\n"
+"def new_callback(self, action, parameter):\n"
+"    print \"You clicked \\\"New\\\"\""
+msgstr ""
+
+#: C/menubar.py.page:104(p)
+msgid ""
+"Now, in the XML file, we we connect the menu items to the actions in the XML "
+"file by adding the \"action\" attribute:"
+msgstr ""
+
+#: C/menubar.py.page:111(p)
+msgid ""
+"Note that for an action that is relative to the application, we use the "
+"prefix <code>app.</code>; for actions that are relative to the window we use "
+"the prefix <code>win.</code>."
+msgstr ""
+
+#: C/menubar.py.page:113(p)
+msgid ""
+"Finally, in the Python file, we add the action to the application or to the "
+"window - so for instance <code>app.new</code> will be added to the "
+"application in the method <code>do_startup(self)</code> as"
+msgstr ""
+
+#: C/menubar.py.page:114(code)
+#, no-wrap
+msgid ""
+"\n"
+"self.add_action(new_action)"
+msgstr ""
+
+#: C/menubar.py.page:124(p)
+msgid ""
+"The complete example files contain both application actions and window "
+"applications. The window actions are the ones usually included in the <link "
+"xref=\"gmenu.py\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
+msgstr ""
+
+#: C/menubar.py.page:130(p)
+msgid ""
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.py#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+msgstr ""
+
+#: C/menubar.py.page:132(p)
+msgid ""
+"The actions created so far are <em>stateless</em>, that is they do not "
+"retain or depend on a state given by the action itself. The actions we need "
+"to create for the Choices submenu, on the other hand, are <em>stateful</em>. "
+"An example of creation of a stateful action is:"
+msgstr ""
+
+#: C/menubar.py.page:133(code)
+#, no-wrap
+msgid ""
+"\n"
+"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))"
+msgstr ""
+
+#: C/menubar.py.page:136(p)
+msgid ""
+"where the variables of the method are: name, parameter type (in this case, a "
+"string - see <link href=\"http://developer.gnome.org/glib/unstable/glib-";
+"GVariantType.html\">here</link> for a complete list of character meanings), "
+"initial state (in this case, 'line' - in case of a <code>True</code> boolean "
+"value it should be <code>Glib.Variant.new_boolean(True)</code>, and so on, "
+"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">here</link> for a complete list)"
+msgstr ""
+
+#: C/menubar.py.page:138(p)
+msgid ""
+"After creating the stateful SimpleAction we connect it to the callback "
+"function and we add it to the window (or the application, if it is the "
+"case), as before:"
+msgstr ""
+
+#: C/menubar.py.page:140(code)
+#, no-wrap
+msgid ""
+"\n"
+"shape_action.connect(\"activate\", self.shape_callback)\n"
+"self.add_action(shape_action)"
+msgstr ""
+
+#: C/menubar.py.page:152(title)
+msgid "Complete Python file for this example"
+msgstr ""
+
+#: C/menubar.py.page:156(title)
+msgid "Mnemonics and Accelerators"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/magic-mirror.vala.page:41(None)
+msgid "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+msgstr ""
+"@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+
+#: C/magic-mirror.vala.page:7(title)
+#, fuzzy
+#| msgid "Magic Mirror"
+msgid "Magic Mirror (Vala)"
+msgstr "Espello mÃxico"
+
+#: C/magic-mirror.vala.page:10(desc)
+msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+msgstr ""
+"Use a sÃa cÃmara web como un espello usando o marco de traballo GStreamer e "
+"GTK+"
+
+#: C/magic-mirror.vala.page:14(name)
+msgid "Daniel G. Siegel"
+msgstr "Daniel G. Siegel"
+
+#: C/magic-mirror.vala.page:15(email)
+msgid "dgsiegel gnome org"
+msgstr "dgsiegel gnome org"
+
+#: C/magic-mirror.vala.page:23(title)
+#, fuzzy
+#| msgid "Magic Mirror"
+msgid "4 Magic Mirror"
+msgstr "Espello mÃxico"
+
+#: C/magic-mirror.vala.page:26(em)
+msgid ""
+"Your mirror just fell off the wall and broke into a thousand pieces â but "
+"you need a mirror to shave your beard off or add some makeup! You only have "
+"15 minutes left before catching the bus to work. So what can you do?"
+msgstr ""
+
+#: C/magic-mirror.vala.page:27(p)
+msgid ""
+"In this tutorial, we're going to make a program which lets you use your "
+"webcam as a mirror. You will learn how to:"
+msgstr ""
+
+#: C/magic-mirror.vala.page:29(p)
+msgid "Create a GTK+ application"
+msgstr "Crear un apliativo GTK+"
+
+#: C/magic-mirror.vala.page:30(p)
+msgid "Access your webcam using GStreamer and embed the result into a window"
+msgstr ""
+"Acceda à sÃa cÃmara web usando GStreamer e incruste o resultado nunha xanela"
+
+#: C/magic-mirror.vala.page:31(p)
+msgid "Grab photos off your webcam"
+msgstr "Obter as fotos da Åua cÃmara web"
+
+#: C/magic-mirror.vala.page:33(p) C/image-viewer.vala.page:40(p)
+#: C/image-viewer.py.page:34(p) C/image-viewer.js.page:34(p)
+#: C/guitar-tuner.vala.page:35(p) C/guitar-tuner.py.page:32(p)
+#: C/guitar-tuner.cpp.page:30(p) C/guitar-tuner.c.page:32(p)
+msgid "You'll need the following to be able to follow this tutorial:"
+msgstr ""
+
+#: C/magic-mirror.vala.page:35(p) C/image-viewer.py.page:36(p)
+#: C/image-viewer.js.page:36(p) C/guitar-tuner.py.page:34(p)
+#: C/guitar-tuner.cpp.page:32(p) C/guitar-tuner.c.page:34(p)
+msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
+msgstr ""
+
+#: C/magic-mirror.vala.page:36(p)
+msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
+msgstr "Copias instaladas de GTK, GStreamer e compilador de Vala"
+
+#: C/magic-mirror.vala.page:37(p)
+msgid "Basic knowledge of an object-oriented programming language"
+msgstr "CoÃecemento bÃsico dun linguaxe de programaciÃn orientado a obxectos"
+
+#: C/magic-mirror.vala.page:51(p)
+msgid ""
+"Choose <gui>Gtk+ (simple)</gui> from the <gui>Vala</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+
+#: C/magic-mirror.vala.page:54(p)
+msgid ""
+"Disable <gui>Use GtkBuilder for user interface</gui> as we will create the "
+"UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
+"\">Guitar-Tuner</link> tutorial using the interface builder."
+msgstr ""
+
+#: C/magic-mirror.vala.page:59(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is selected. On the "
+"next page, select <em>gstreamer-0.10</em> from the list to include the "
+"<app>GStreamer</app> library into your project."
+msgstr ""
+
+#: C/magic-mirror.vala.page:63(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+
+#: C/magic-mirror.vala.page:72(title) C/image-viewer.vala.page:107(title)
+#: C/image-viewer.cpp.page:60(title) C/image-viewer.c.page:60(title)
+#: C/guitar-tuner.vala.page:68(title) C/guitar-tuner.cpp.page:63(title)
+#: C/guitar-tuner.c.page:65(title)
+msgid "Build the code for the first time"
+msgstr "ConstruÃr o cÃdigo por primeira vez"
+
+#: C/magic-mirror.vala.page:73(p)
+msgid ""
+"The code loads an (empty) window and shows it. More details are given below; "
+"skip this list if you understand the basics:"
+msgstr ""
+
+#: C/magic-mirror.vala.page:76(p) C/guitar-tuner.vala.page:73(p)
+msgid ""
+"The two <code>using</code> lines import namespaces so we don't have to name "
+"them explicitly."
+msgstr ""
+
+#: C/magic-mirror.vala.page:79(p)
+msgid ""
+"The constructor of the <code>Main</code> class creates a new window and sets "
+"its title. Afterwards the window is shown and a signal is connected which "
+"quits the application if the window is closed. More on signals later on."
+msgstr ""
+
+#: C/magic-mirror.vala.page:83(p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"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 ""
+
+#: C/magic-mirror.vala.page:87(p) C/image-viewer.vala.page:127(p)
+#: C/image-viewer.cpp.page:76(p) C/image-viewer.c.page:79(p)
+#: C/guitar-tuner.cpp.page:78(p) C/guitar-tuner.c.page:84(p)
+msgid ""
+"This code is ready to be used, so you can compile it by clicking "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>)."
+msgstr ""
+
+#: C/magic-mirror.vala.page:88(p) C/image-viewer.vala.page:128(p)
+msgid ""
+"Change the <gui>Configuration</gui> to <gui>Default</gui> and then press "
+"<gui>Execute</gui> to configure the build directory. You only need to do "
+"this once, for the first build."
+msgstr ""
+
+#: C/magic-mirror.vala.page:92(title)
+msgid "Access the webcam video stream with GStreamer"
+msgstr "Acceder ao fluxo de vÃdeo de cÃmara web con GStreamer"
+
+#: C/magic-mirror.vala.page:93(p)
+msgid ""
+"The GStreamer multimedia framework is able to handle video from webcams. "
+"Let's add GStreamer to our application and so we can access the video stream."
+msgstr ""
+"O contorno multimedia de traballo de GStreamer à capaz de manexar vÃdeo "
+"desde cÃmara web. Engada GStreamer ao seu aplicativo e poderà acceder ao "
+"fluxo de vÃdeo."
+
+#: C/magic-mirror.vala.page:120(p)
+msgid ""
+"First we remove the window we created before because GStreamer will take "
+"care of showing the picture on screen."
+msgstr ""
+"Primeiro quÃtase a xanela creada anteriormente, xa que GStreamer encargarase "
+"de mostrar a imaxe na pantalla."
+
+#: C/magic-mirror.vala.page:124(p)
+msgid ""
+"Now we are creating a GStreamer element which accesses our webcam. We are "
+"using the Camerabin element, which is an all-in-one camera element and is "
+"capable of taking photos, videos, applying effects and much more. Perfect "
+"for our use case! With <code>this.camerabin.set_state (Gst.State.PLAYING)</"
+"code> we tell the GStreamer pipeline we just created to start playing. Easy, "
+"no?"
+msgstr ""
+"Agora vaise crear un elemento de GStreamer que accede à cÃmara web. Vaise a "
+"usar o elemento ÂCamerabinÂ, que à un elemento de cÃmara todo en un capaz de "
+"facer fotos, vÃdeos, aplicar efectos e moito mÃis. Perfecto para o noso caso "
+"de uso. Con <code>this.camerabin.set_state (Gst.State.PLAYING)</code> "
+"indÃcase à tÃberÃa de GStreamer que se acaba de crear que empece a "
+"reproducir. Sinxelo, non?"
+
+#: C/magic-mirror.vala.page:131(p)
+msgid ""
+"Of course it is also possible to integrate the video more tighly into other "
+"windows but that is an advanced topic that includes some details of the X "
+"Window System we will omit here."
+msgstr ""
+
+#: C/magic-mirror.vala.page:135(p)
+msgid ""
+"Compile and run it again. You will end up with two windows. In the next step "
+"we will integrate the video into the GTK+ window."
+msgstr ""
+
+#: C/magic-mirror.vala.page:145(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
+"is also a more <link href=\"magic-mirror/magic-mirror-advanced.vala"
+"\">extensive implementation</link> that embeds the window into a regular Gtk."
+"Window which involves some advanced techniques, and adds buttons to start/"
+"stop the picture."
+msgstr ""
+"Se ten problemas con este titorial, compare o seu cÃdigo con este <link href="
+"\"magic-mirror/magic-mirror.vala\">cÃdigo de referencia</link>. TamÃn hai "
+"unha <link href=\"magic-mirror/magic-mirror-advanced.vala\">implementaciÃn "
+"mÃis ampla</link> que incrusta a xanela nunha xanela GTK regular que implica "
+"algunhas tÃcnicas avanzadas, e engade botÃns para iniciar/deter a imaxe."
+
+#: C/magic-mirror.vala.page:151(title) C/guitar-tuner.vala.page:258(title)
+msgid "Further reading"
+msgstr "Lectura complementaria"
+
+#: C/magic-mirror.vala.page:152(p)
+msgid ""
+"To find out more about the Vala programming language you might want to check "
+"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"link>."
+msgstr ""
+"Para atopar mÃis informaciÃn sobre a linguaxe de programaciÃn Vala pode "
+"visitar <link href=\"http://live.gnome.org/Vala/Tutorial\";>o titorial de "
+"Vala</link>."
+
+#: C/magic-mirror.vala.page:157(title)
+msgid "Conclusion"
+msgstr "ConclusiÃn"
+
+#: C/magic-mirror.vala.page:158(p)
+msgid ""
+"That's it, you have managed to create a full-featured webcam photo "
+"application in 15 minutes. Now you can shave your beard off or add some "
+"makeup to your beautiful face, right before having a beautiful day at your "
+"workplace, where you can impress your friends and colleagues with an awesome "
+"application you just made in 15 minutes."
+msgstr ""
+"Isto eÌ todo, acaba de crear un aplicativo completo para sacar fotos coa "
+"caÌmara web en menos de 15 minutos. Agora xa pode afeitar a barba, "
+"maquillarse un pouco e ordenar o seu espazo de traballo para impresionar aos "
+"seus amigos e colegas con un aplicativo feito en 15 minutos."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/linkbutton.vala.page:21(None) C/linkbutton.py.page:23(None)
+#: C/linkbutton.js.page:21(None) C/linkbutton.c.page:22(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/linkbutton.png'; md5=3712eae8953e87c65a6aa74503b8e32b"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/linkbutton.vala.page:7(title)
+msgid "LinkButton (Vala)"
+msgstr ""
+
+#: C/linkbutton.vala.page:17(desc) C/linkbutton.c.page:17(desc)
+msgid "Create buttons bound to a URL"
+msgstr ""
+
+#: C/linkbutton.vala.page:20(title) C/linkbutton.py.page:21(title)
+#: C/linkbutton.js.page:20(title) C/linkbutton.c.page:20(title)
+#, fuzzy
+#| msgid "Button"
+msgid "LinkButton"
+msgstr "BotÃn"
+
+#: C/linkbutton.vala.page:22(p)
+msgid "This button links to GNOME live."
+msgstr ""
+
+#: C/linkbutton.vala.page:29(link) C/linkbutton.js.page:31(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.LinkButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/linkbutton.py.page:7(title)
+msgid "LinkButton (Python)"
+msgstr ""
+
+#: C/linkbutton.py.page:18(desc)
+msgid "A button bound to an URL"
+msgstr ""
+
+#: C/linkbutton.py.page:24(p)
+msgid "A button that links to a web page."
+msgstr ""
+
+#: C/linkbutton.py.page:35(title)
+msgid "Useful methods for a LinkButton widget"
+msgstr ""
+
+#: C/linkbutton.py.page:37(p)
+msgid ""
+"<code>get_visited()</code> returns the 'visited' state (<code>True</code> or "
+"<code>False</code>) of the URI where the LinkButton points. The button "
+"becomes visited when it is clicked."
+msgstr ""
+
+#: C/linkbutton.py.page:38(p)
+msgid ""
+"<code>set_visited(True)</code> sets the 'visited' state of the URI where the "
+"LinkButton points as <code>True</code> (analogously for <code>False</code>)."
+msgstr ""
+
+#: C/linkbutton.py.page:39(p)
+msgid ""
+"Each time the button is clicked, the signal <code>\"activate-link\"</code> "
+"is emitted. For an explanation of signals and callback functions, see <link "
+"xref=\"signals-callbacks.py\">this page</link>."
+msgstr ""
+
+#: C/linkbutton.py.page:47(link) C/linkbutton.c.page:33(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "GtkLinkButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/linkbutton.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "LinkButton (JavaScript)"
+msgstr "JavaScript"
+
+#: C/linkbutton.js.page:17(desc)
+msgid "A button that links to a web page"
+msgstr ""
+
+#: C/linkbutton.js.page:22(p)
+msgid "A button that links to live.gnome.org."
+msgstr ""
+
+#: C/linkbutton.c.page:7(title)
+#, fuzzy
+#| msgid "Button"
+msgid "LinkButton (C)"
+msgstr "BotÃn"
+
+#: C/linkbutton.c.page:23(p)
+msgid "This button links to the GNOME live webpage."
+msgstr ""
+
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr ""
+
+#: C/license.page:11(title)
+msgid "License"
+msgstr ""
+
+#: C/license.page:12(p)
+msgid ""
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
+msgstr ""
+
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr ""
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr ""
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr ""
+
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr ""
+
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr ""
+
+#: C/license.page:33(p)
+#, fuzzy
+#| msgid "The code has the following purpose:"
+msgid "Under the following conditions:"
+msgstr "O cÃdigo ten o seguinte propÃsito:"
+
+#: C/license.page:38(em)
+#, fuzzy
+#| msgid "Introduction"
+msgid "Attribution"
+msgstr "IntroduciÃn"
+
+#: C/license.page:39(p)
+msgid ""
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
+msgstr ""
+
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr ""
+
+#: C/license.page:47(p)
+msgid ""
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
+msgstr ""
+
+#: C/license.page:53(p)
+msgid ""
+"For the full text of the license, see the <link href=\"http://";
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-";
+"sa/3.0/\">Commons Deed</link>."
+msgstr ""
+
+#: C/license.page:60(p)
+msgid ""
+"As a special exception, the copyright holders give you permission to copy, "
+"modify, and distribute the example code contained in this documentation "
+"under the terms of your choosing, without restriction."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/label.vala.page:21(None) C/label.py.page:27(None)
+#: C/label.js.page:21(None) C/label.c.page:25(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/label.png'; md5=734975c18653d88379f983e4501c3fc0"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/label.vala.page:7(title)
+msgid "Label (Vala)"
+msgstr ""
+
+#: C/label.vala.page:17(desc) C/label.c.page:18(desc)
+msgid "A widget which displays text"
+msgstr ""
+
+#: C/label.vala.page:22(p) C/label.py.page:28(p) C/label.c.page:26(p)
+msgid "A simple label"
+msgstr ""
+
+#: C/label.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Label (Python)"
+msgstr "Python"
+
+#: C/label.py.page:23(desc)
+msgid "A widget that displays a small to medium amount of text"
+msgstr ""
+
+#: C/label.py.page:37(p)
+msgid ""
+"Another way to obtain what we have in the example is to create the label as "
+"an instance of another class and add it to the instance of <code>MyWindow</"
+"code> in the <code>do_activate(self)</code> method:"
+msgstr ""
+
+#: C/label.py.page:38(code)
+#, no-wrap
+msgid ""
+"\n"
+"# a class to define 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(200, 100)\n"
+"\n"
+"# a class to define a label\n"
+"class MyLabel(Gtk.Label):\n"
+"    def __init__(self):\n"
+"        Gtk.Label.__init__(self)\n"
+"        self.set_text(\"Hello GNOME!\")\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 MyLabel\n"
+"        label = MyLabel()\n"
+"        # and add it to the window\n"
+"        win.add(label)\n"
+"        # show the window and everything on it\n"
+"        win.show_all()"
+msgstr ""
+
+#: C/label.py.page:68(title)
+msgid "Useful methods for a Label widget"
+msgstr ""
+
+#: C/label.py.page:70(p)
+msgid ""
+"<code>label = Gtk.Label(label=\"Hello GNOME!\")</code> could also be used "
+"create a label and set the text directly. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
+msgstr ""
+
+#: C/label.py.page:72(p)
+msgid ""
+"<code>set_line_wrap(True)</code> breaks lines if the text of the label "
+"exceeds the size of the widget."
+msgstr ""
+
+#: C/label.py.page:73(p)
+msgid ""
+"<code>set_justify(Gtk.Justification.LEFT)</code> (or <code>Gtk.Justification."
+"RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</code>) sets the "
+"alignment of the lines in the text of the label relative to each other. The "
+"method has no effect on a single-line label."
+msgstr ""
+
+#: C/label.py.page:74(p)
+msgid ""
+"For decorated text we can use <code>set_markup(\"text\")</code>, where <code>"
+"\"text\"</code> is a text in the <link href=\"http://developer.gnome.org/";
+"pango/stable/PangoMarkupFormat.html\">Pango Markup Language</link>. An "
+"example:"
+msgstr ""
+
+#: C/label.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Label (JavaScript)"
+msgstr "JavaScript"
+
+#: C/label.js.page:17(desc)
+msgid "A label which can contain text"
+msgstr ""
+
+#: C/label.js.page:22(p)
+msgid "A label displaying a friendly message."
+msgstr ""
+
+#: C/label.c.page:7(title)
+msgid "Label (C)"
+msgstr ""
+
+#: C/js.page:7(title)
+msgid "JavaScript"
+msgstr "JavaScript"
+
+#: C/js.page:16(title)
+msgid "Tutorials, code samples and platform demos in JavaScript"
+msgstr ""
+
+#: C/index.page:7(name)
+msgid "GNOME Documentation Team"
+msgstr "Equipo de documentaciÃn de GNOME"
+
+#: C/index.page:9(years)
+msgid "2010, 2011"
+msgstr "2010, 2011"
+
+#: C/index.page:27(title)
+msgid "GNOME Developer Platform Demos"
+msgstr "DemostraciÃns da plataforma de desenvolvemento de GNOME"
+
+#: C/index.page:30(title)
+msgid "How to set up your development environment"
+msgstr ""
+
+#: C/index.page:34(title)
+msgid "Tutorials, code samples, platform demos and more"
+msgstr ""
+
+#: C/index.page:38(title)
+msgid "Get Involved"
+msgstr "Involucrarse"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/image-viewer.vala.page:48(None) C/image-viewer.py.page:41(None)
+#: C/image-viewer.js.page:42(None) C/image-viewer.cpp.page:31(None)
+#: C/image-viewer.c.page:33(None)
+msgid "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+msgstr ""
+"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+
+#: C/image-viewer.vala.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (Vala)"
+msgstr "Visor de imaxes"
+
+#: C/image-viewer.vala.page:10(desc) C/image-viewer.c.page:10(desc)
+msgid "A little bit more than a simple \"Hello world\" Gtk application."
+msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+
+#: C/image-viewer.vala.page:22(name)
+msgid "Philip Chimento"
+msgstr "Philip Chimento"
+
+#: C/image-viewer.vala.page:23(email)
+msgid "philip chimento gmail com"
+msgstr "philip chimento gmail com"
+
+#: C/image-viewer.vala.page:31(title) C/image-viewer.py.page:24(title)
+#: C/image-viewer.js.page:24(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "1 Image Viewer"
+msgstr "Visor de imaxes"
+
+#: C/image-viewer.vala.page:33(p)
+#, fuzzy
+#| msgid ""
+#| "In this tutorial, we're going to write a very simple GTK application that "
+#| "loads and displays an image file. You will learn how to:"
+msgid ""
+"In this tutorial you will create an application which opens and displays an "
+"image file. You will learn:"
+msgstr ""
+"Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
+"mostra un ficheiro de imaxe. Vostede aprenderaÌ a:"
+
+#: C/image-viewer.vala.page:35(p)
+msgid ""
+"How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
+"IDE</link>."
+msgstr ""
+
+#: C/image-viewer.vala.page:36(p)
+msgid ""
+"How to write a <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gtk\">Gtk application</link> in Vala"
+msgstr ""
+
+#: C/image-viewer.vala.page:37(p)
+msgid ""
+"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
+"stable/\">GObject</link> programming"
+msgstr ""
+
+#: C/image-viewer.vala.page:42(p) C/guitar-tuner.vala.page:37(p)
+#, fuzzy
+#| msgid "Basic knowledge of the Vala programming language"
+msgid ""
+"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
+"\">Vala</link> programming language."
+msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Vala"
+
+#: C/image-viewer.vala.page:43(p) C/guitar-tuner.vala.page:38(p)
+#, fuzzy
+#| msgid "An installed copy of the <em>gjs</em> interpreter"
+msgid "An installed copy of <app>Anjuta</app>."
+msgstr "Unha copia instalada do inteÌrprete <em>gjs</em>"
+
+#: C/image-viewer.vala.page:44(p)
+msgid ""
+"You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> "
+"API Reference useful, although it is not necessary to follow the tutorial."
+msgstr ""
+
+#: C/image-viewer.vala.page:57(p) C/guitar-tuner.vala.page:49(p)
+#, fuzzy
+#| msgid ""
+#| "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
+#| "gui></guiseq> to open the project wizard."
+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."
+msgstr ""
+"Inicie Anjuta e prema <guiseq><gui>Ficheiro</gui><gui>Novo</"
+"gui><gui>Proxecto</gui></guiseq> para abrir o asistente de proxectos."
+
+#: C/image-viewer.vala.page:60(p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>guitar-tuner</file> as project name and directory."
+msgid ""
+"From the <gui>Vala</gui> tab choose <gui>Gtk+ (Simple)</gui>, click "
+"<gui>Continue</gui>, and fill out your details on the next page. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#: C/image-viewer.vala.page:64(p)
+#, fuzzy
+#| 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 using the interface "
+#| "builder."
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is unchecked as "
+"we will create the UI manually in this tutorial."
+msgstr ""
+"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
+"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
+"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> usando o "
+"construtor de interface."
+
+#: C/image-viewer.vala.page:65(p)
+msgid ""
+"You will learn how to use the interface builder in the <link xref=\"guitar-"
+"tuner.vala\">Guitar-Tuner</link> tutorial."
+msgstr ""
+
+#: C/image-viewer.vala.page:69(p)
+#, fuzzy
+#| msgid ""
+#| "Click <gui>Apply</gui> and the project will be created for you. Open "
+#| "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+#| "tabs. It contains very basic example code."
+msgid ""
+"Click <gui>Continue</gui> then <gui>Apply</gui> and the project will be "
+"created for you. Open <file>src/image_viewer.vala</file> from the "
+"<gui>Project</gui> or <gui>File</gui> tabs. You will see this code:"
+msgstr ""
+"Prema <gui>Aplicar</gui> e o proxecto seraÌ creado. Abra <file>src/main.js</"
+"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ConteÌn "
+"coÌdigo de exemplo moi baÌsico."
+
+#: C/image-viewer.vala.page:108(p)
+msgid ""
+"The code loads an (empty) window from the user interface description file "
+"and shows it. More details are given below; skip this list if you understand "
+"the basics:"
+msgstr ""
+
+#: C/image-viewer.vala.page:113(p)
+msgid ""
+"The two <code>using</code> lines at the top import namespaces so we don't "
+"have to name them explicitly."
+msgstr ""
+
+#: C/image-viewer.vala.page:116(p)
+#, fuzzy
+#| 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."
+msgid ""
+"The constructor of the <code>Main</code> class creates a new (empty) window "
+"and connects a <link href=\"https://live.gnome.org/Vala/SignalsAndCallbacks";
+"\">signal</link> to exit the application when that window is closed."
+msgstr ""
+"A funciÃn <code>create_window</code> crea unha xanela (baleira) nova e "
+"conecta un sinal para saÃr do aplicativo pÃchase esa xanela."
+
+#: C/image-viewer.vala.page:117(p) C/image-viewer.c.page:69(p)
+#: C/guitar-tuner.c.page:74(p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>destroy</code> function is "
+"called (and quits the app) when you close the window."
+msgstr ""
+
+#: C/image-viewer.vala.page:121(p)
+msgid ""
+"The <code>static main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the <code>Main</"
+"code> class, set up and then run the application. The <link href=\"http://";
+"valadoc.org/gtk+-3.0/Gtk.main.html\"><code>Gtk.main</code></link> function "
+"starts the GTK <link href=\"http://en.wikipedia.org/wiki/Event_loop\";>main "
+"loop</link>, which runs the user interface and starts listening for events "
+"(like clicks and key presses)."
+msgstr ""
+
+#: C/image-viewer.vala.page:133(title) C/image-viewer.cpp.page:81(title)
+#: C/image-viewer.c.page:84(title)
+msgid "Creating the user interface"
+msgstr "Crear a interface de usuario"
+
+#: C/image-viewer.vala.page:134(p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
+"html\"><code>Gtk.Container</code></link>s that can contain other widgets and "
+"even other containers. Here we will use the simplest available container, a "
+"<link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.html\";><code>Gtk."
+"Box</code></link>."
+msgstr ""
+
+#: C/image-viewer.vala.page:138(p)
+msgid "Add the following lines to the top of the <code>Main</code> class:"
+msgstr ""
+
+#: C/image-viewer.vala.page:144(p)
+msgid "Now replace the current constructor with the one below:"
+msgstr ""
+
+#: C/image-viewer.vala.page:170(p)
+msgid ""
+"The first two lines are the parts of the GUI that we will need to access "
+"from more than one method. We declare them up here so that they are "
+"accessible throughout the class instead of only in the method where they are "
+"created."
+msgstr ""
+
+#: C/image-viewer.vala.page:174(p)
+msgid ""
+"The first lines of the constructor create the empty window. The next lines "
+"create the widgets we want to use: a button for opening up an image, the "
+"image view widget itself and the box we will use as a container."
+msgstr ""
+
+#: C/image-viewer.vala.page:178(p)
+msgid ""
+"The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
+"pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
+"box and define their behaviour. The image will expand into any available "
+"space whereas 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 ""
+
+#: C/image-viewer.vala.page:185(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>."
+msgstr ""
+
+#: C/image-viewer.vala.page:186(p)
+msgid ""
+"When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
+"link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
+"Button.clicked.html\"><code>clicked</code></link> signal, which we can "
+"connect to some action (defined in a <link href=\"https://live.gnome.org/";
+"Vala/SignalsAndCallbacks\">callback</link> method)."
+msgstr ""
+
+#: C/image-viewer.vala.page:189(p)
+msgid ""
+"This is done using the <code>connect</code> method of the button's "
+"<code>clicked</code> signal, which in this case tells GTK to call the (yet "
+"undefined) <code>on_image_open</code> callback method when the button is "
+"clicked. We will define the <em>callback</em> in the next section."
+msgstr ""
+
+#: C/image-viewer.vala.page:193(p)
+msgid ""
+"In the callback, we need to access the <code>window</code> and <code>image</"
+"code> widgets, which is why we defined them as private members at the top of "
+"our class."
+msgstr ""
+
+#: C/image-viewer.vala.page:197(p)
+msgid ""
+"The last <code>connect</code> call makes sure that the application exits "
+"when the window is closed. The code generated by Anjuta called an "
+"<code>on_destroy</code> callback method which called <link href=\"http://www.";
+"valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></link>, "
+"but just connecting our signal to <code>main_quit</code> directly is easier. "
+"You can delete the <code>on_destroy</code> method."
+msgstr ""
+
+#: C/image-viewer.vala.page:204(title) C/image-viewer.cpp.page:136(title)
+#: C/image-viewer.c.page:149(title)
+msgid "Showing the image"
+msgstr "Mostrar a imaxe"
+
+#: C/image-viewer.vala.page:205(p)
+msgid ""
+"We will now define the signal handler for the <code>clicked</code> signal "
+"for the button we mentioned before. Add this code after the constructor:"
+msgstr ""
+
+#: C/image-viewer.vala.page:231(p)
+msgid "This is a bit complicated, so let's break it down:"
+msgstr ""
+
+#: C/image-viewer.vala.page:232(p)
+msgid ""
+"A signal handler is a type of callback method that is called when a signal "
+"is emitted. Here the terms are used interchangeably."
+msgstr ""
+
+#: C/image-viewer.vala.page:235(p)
+msgid ""
+"The first argument of the callback method is always the widget that sent the "
+"signal. Sometimes other arguments related to the signal come after that, but "
+"<em>clicked</em> doesn't have any."
+msgstr ""
+
+#: C/image-viewer.vala.page:237(p)
+msgid ""
+"In this case the <code>button</code> sent the <code>clicked</code> signal, "
+"which is connected to the <code>on_open_image</code> callback method:"
+msgstr ""
+
+#: C/image-viewer.vala.page:242(p)
+msgid ""
+"The <code>on_open_image</code> method takes the button that emitted the "
+"signal as an argument:"
+msgstr ""
+
+#: C/image-viewer.vala.page:248(p)
+msgid ""
+"The next interesting line is where the dialog for choosing the file is "
+"created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.";
+"html\"><code>FileChooserDialog</code></link>'s constructor takes the title "
+"of the dialog, the parent window of the dialog and several options like the "
+"number of buttons and their corresponding values."
+msgstr ""
+
+#: C/image-viewer.vala.page:250(p)
+msgid ""
+"Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-3.0/";
+"Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead of "
+"manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
+"is that the button labels will already be translated into the user's "
+"language."
+msgstr ""
+
+#: C/image-viewer.vala.page:254(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by <em>GtkImage</em>. GtkImage is a widget which "
+"displays an image. A filter object is created first; we then add all kinds "
+"of files supported by <link href=\"http://www.valadoc.org/gdk-pixbuf-2.0/Gdk.";
+"Pixbuf.html\"><code>Gdk.Pixbuf</code></link> (which includes most image "
+"formats like PNG and JPEG) to the filter. Finally, we set this filter to be "
+"the <gui>Open</gui> dialog's filter."
+msgstr ""
+
+#: C/image-viewer.vala.page:259(p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
+"\"><code>dialog.run</code></link> displays the <gui>Open</gui> dialog. The "
+"dialog will wait for the user to choose an image; when they do, <code>dialog."
+"run</code> will return the <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
+"ResponseType.html\">ResponseType</link> value <code>ResponseType.ACCEPT</"
+"code> (it would return <code>ResponseType.CANCEL</code> if the user clicked "
+"<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
+msgstr ""
+
+#: C/image-viewer.vala.page:264(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next lines get the "
+"filename of the image selected by the user, and tell the <code>GtkImage</"
+"code> widget to load and display the selected image."
+msgstr ""
+
+#: C/image-viewer.vala.page:267(p) C/image-viewer.py.page:213(p)
+#: C/image-viewer.js.page:299(p)
+msgid ""
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more."
+msgstr ""
+
+#: C/image-viewer.vala.page:268(p)
+msgid "Destroying automatically hides the dialog."
+msgstr ""
+
+#: C/image-viewer.vala.page:275(p) C/image-viewer.cpp.page:205(p)
+#: C/image-viewer.c.page:217(p) C/guitar-tuner.vala.page:248(p)
+#: C/guitar-tuner.c.page:252(p)
+msgid ""
+"All of the code should now be ready to go. Click <guiseq><gui>Build</"
+"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
+"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start the application."
+msgstr ""
+
+#: C/image-viewer.vala.page:277(p)
+#, fuzzy
+#| msgid ""
+#| "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
+#| "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+#| "and enjoy!"
+msgid ""
+"If you haven't already done so, choose the <file>src/image-viewer</file> "
+"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
+"enjoy!"
+msgstr ""
+"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/image-viewer</"
+"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
+"desfrute!"
+
+#: C/image-viewer.vala.page:283(p)
+#, fuzzy
+#| msgid ""
+#| "If you run into problems with the tutorial, compare your code with this "
+#| "<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
+msgstr ""
+"Se ten problemas con este titorial, compare o seu coÌdigo con este <link href="
+"\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
+
+#: C/image-viewer.vala.page:287(title) C/image-viewer.py.page:230(title)
+#: C/image-viewer.js.page:316(title) C/image-viewer.cpp.page:215(title)
+#: C/image-viewer.c.page:227(title) C/guitar-tuner.vala.page:264(title)
+#: C/guitar-tuner.py.page:234(title) C/guitar-tuner.cpp.page:268(title)
+#: C/guitar-tuner.c.page:262(title)
+msgid "Next steps"
+msgstr "Seguintes pasos"
+
+#: C/image-viewer.vala.page:288(p) C/image-viewer.py.page:231(p)
+#: C/image-viewer.js.page:317(p) C/image-viewer.cpp.page:216(p)
+#: C/image-viewer.c.page:228(p) C/guitar-tuner.vala.page:265(p)
+#: C/guitar-tuner.py.page:235(p) C/guitar-tuner.cpp.page:269(p)
+#: C/guitar-tuner.c.page:263(p)
+msgid "Here are some ideas for how you can extend this simple demonstration:"
+msgstr ""
+"Aquà hai algunhas ideas sobre como pode estender esta sinxela demostraciÃn:"
+
+#: C/image-viewer.vala.page:290(p)
+msgid ""
+"Set it up so that when the window opens it is of a specific size to start "
+"off with. For example, 200 X 200 pixels."
+msgstr ""
+
+#: C/image-viewer.vala.page:292(p) C/image-viewer.py.page:234(p)
+#: C/image-viewer.js.page:320(p) C/image-viewer.cpp.page:219(p)
+#: C/image-viewer.c.page:231(p)
+msgid ""
+"Have the user select a directory rather than a file, and provide controls to "
+"cycle through all of the images in a directory."
+msgstr ""
+
+#: C/image-viewer.vala.page:295(p) C/image-viewer.py.page:237(p)
+#: C/image-viewer.js.page:323(p) C/image-viewer.cpp.page:222(p)
+#: C/image-viewer.c.page:234(p)
+msgid ""
+"Apply random filters and effects to the image when it is loaded and allow "
+"the user to save the modified image."
+msgstr ""
+"Aplicar filtros aleatorios e efectos à imaxe cando se carga e permitir ao "
+"usuario gardar a imaxe modificada."
+
+#: C/image-viewer.vala.page:296(p) C/image-viewer.py.page:238(p)
+#: C/image-viewer.js.page:324(p) C/image-viewer.cpp.page:223(p)
+#: C/image-viewer.c.page:235(p)
+msgid ""
+"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
+"image manipulation capabilities."
+msgstr ""
+"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> fornece capacidades "
+"moi potentes de manipulaciÃn de imaxes."
+
+#: C/image-viewer.vala.page:299(p) C/image-viewer.py.page:241(p)
+#: C/image-viewer.js.page:327(p) C/image-viewer.cpp.page:226(p)
+#: C/image-viewer.c.page:238(p)
+msgid ""
+"Allow the user to load images from network shares, scanners, and other more "
+"complicated sources."
+msgstr ""
+"Permitir ao usuario cargar imaxes desde recursos de rede compartidos, "
+"escÃneres e outras fontes mÃis complicadas."
+
+#: C/image-viewer.vala.page:300(p) C/image-viewer.py.page:242(p)
+#: C/image-viewer.js.page:328(p) C/image-viewer.cpp.page:227(p)
+#: C/image-viewer.c.page:239(p)
+msgid ""
+"You can use <link href=\"http://library.gnome.org/devel/gio/unstable/\";>GIO</"
+"link> to handle network file tranfers and the like, and <link href=\"http://";
+"library.gnome.org/devel/gnome-scan/unstable/\">GNOME Scan</link> to handle "
+"scanning."
+msgstr ""
+
+#: C/image-viewer.py.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (Python)"
+msgstr "Visor de imaxes"
+
+#: C/image-viewer.py.page:10(desc)
+msgid ""
+"A little bit more than a simple \"Hello world\" application - write an image "
+"viewer in GTK."
+msgstr ""
+"Algo mÃis que un aplicativo sinxelo ÂHola mundo - escribir un visor de "
+"imaxes en GTK."
+
+#: C/image-viewer.py.page:14(name) C/image-viewer.js.page:14(name)
+msgid "Jonh Wendell"
+msgstr "Jonh Wendell"
+
+#: C/image-viewer.py.page:15(email) C/image-viewer.js.page:15(email)
+msgid "jwendell gnome org"
+msgstr "jwendell gnome org"
+
+#: C/image-viewer.py.page:27(p) C/image-viewer.js.page:27(p)
+msgid ""
+"In this tutorial, we're going to write a very simple GTK application that "
+"loads and displays an image file. You will learn how to:"
+msgstr ""
+"Neste titorial, imos escribir un aplicativo GTK moi sinxelo que carga e "
+"mostra un ficheiro de imaxe. Vostede aprenderaÌ a:"
+
+#: C/image-viewer.py.page:29(p)
+msgid "Write a basic GTK user interface in Python"
+msgstr "Escribir unha interface de usuario bÃsica en Python"
+
+#: C/image-viewer.py.page:30(p) C/image-viewer.js.page:30(p)
+msgid "Deal with events by connecting signals to signal handlers"
+msgstr "Xestionar eventos conectando sinais a xestores de sinais"
+
+#: C/image-viewer.py.page:31(p) C/image-viewer.js.page:31(p)
+msgid "Lay out GTK user interfaces using containers"
+msgstr "DisponÌer interfaces de usuario GTK usando contedores"
+
+#: C/image-viewer.py.page:32(p) C/image-viewer.js.page:32(p)
+msgid "Load and display image files"
+msgstr "Cargar e mostrar ficheiros de imaxe"
+
+#: C/image-viewer.py.page:37(p)
+msgid "Basic knowledge of the python programming language"
+msgstr ""
+
+#: C/image-viewer.py.page:51(p)
+#, fuzzy
+#| 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>image-viewer</file> as project name and directory."
+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>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>image-viewer</file> como nome do proxecto e cartafol."
+
+#: C/image-viewer.py.page:54(p)
+msgid ""
+"Be sure to disable <gui>Use GtkBuilder for user interface</gui> as we will "
+"build the user interface manually in this example. For an example of using "
+"the interface designer, check the <link xref=\"guitar-tuner.py\">Guitar-"
+"Tuner demo</link>."
+msgstr ""
+
+#: C/image-viewer.py.page:59(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/image_viewer.py</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. It contains very basic example code."
+msgstr ""
+"Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/image_viewer."
+"py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
+"ContÃn un exemplo de cÃdigo moi bÃsico:"
+
+#: C/image-viewer.py.page:65(title) C/image-viewer.js.page:126(title)
+msgid "A first Gtk application"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/image-viewer.py.page:66(p)
+msgid "Let's see what a very basic Gtk application looks like in Python:"
+msgstr "Vexamos como à o mÃis bÃsico dun aplicativo Gtk en Python:"
+
+#: C/image-viewer.py.page:90(p) C/image-viewer.js.page:137(p)
+msgid "Let's take a look at what's happening:"
+msgstr "Botemos unha ollada ao que està pasando:"
+
+#: C/image-viewer.py.page:93(p) C/image-viewer.js.page:140(p)
+msgid ""
+"The first line imports the Gtk namespace (that is, it includes the Gtk "
+"library). The libraries are provided by GObject Introspection (gi), which "
+"provides language bindings for many GNOME libraries."
+msgstr ""
+
+#: C/image-viewer.py.page:96(p)
+msgid ""
+"In the <code>__init__</code> method of the <code>GUI</code> class creates an "
+"(empty) <code>Gtk.Window</code>, sets its title and then connects a signal "
+"to quit the application once the window is closed. That's pretty simple "
+"overall, more on signals later."
+msgstr ""
+
+#: C/image-viewer.py.page:101(p)
+msgid ""
+"Next, <code>destroy</code> is defined which just quits the application. It "
+"is called by the <code>destroy</code> signal connected above."
+msgstr ""
+"A continuaciÃn, <code>destroy</code> està definido sà para saÃr do "
+"aplicativo. Ã chamado pola sinal <code>destroy</code> conectada enriba."
+
+#: C/image-viewer.py.page:105(p)
+msgid "The rest of the file does initialisation for Gtk and displays the GUI."
+msgstr "O resto do ficheiro inicializa Gtk e mostra o GUI."
+
+#: C/image-viewer.py.page:109(p)
+msgid ""
+"This code is ready to run, so try it using <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq>. It should show you an empty window."
+msgstr ""
+
+#: C/image-viewer.py.page:114(title) C/image-viewer.js.page:181(title)
+msgid "Signals"
+msgstr "Sinais"
+
+#: C/image-viewer.py.page:115(p) C/image-viewer.js.page:182(p)
+msgid ""
+"Signals are one of the key concepts in Gtk programming. Whenever something "
+"happens to an object, it emits a signal; for example, when a button is "
+"clicked it gives off the <code>clicked</code> signal. If you want your "
+"program to do something when that event occurs, you must connect a function "
+"(a \"signal handler\") to that signal. Here's an example:"
+msgstr ""
+
+#: C/image-viewer.py.page:122(p) C/image-viewer.js.page:189(p)
+msgid ""
+"The last two lines create a <code>Gtk.Button</code> called <code>b</code> "
+"and connect its <code>clicked</code> signal to the <code>button_clicked</"
+"code> function, which is defined above. Every time the button is clicked, "
+"the code in the <code>button_clicked</code> function will be executed. It "
+"just prints a message here."
+msgstr ""
+
+#: C/image-viewer.py.page:126(title) C/image-viewer.js.page:212(title)
+msgid "Containers: Laying-out the user interface"
+msgstr "Contedores: deseÃar a interface de usuario"
+
+#: C/image-viewer.py.page:127(p) C/image-viewer.js.page:213(p)
+msgid ""
+"Widgets (controls, such as buttons and labels) can be arranged in the window "
+"by making use of <em>containers</em>. You can organize the layout by mixing "
+"different types of containers, like boxes and grids."
+msgstr ""
+
+#: C/image-viewer.py.page:128(p) C/image-viewer.js.page:214(p)
+msgid ""
+"A <code>Gtk.Window</code> is itself a type of container, but you can only "
+"put one widget directly into it. We would like to have two widgets, an image "
+"and a button, so we must put a \"higher-capacity\" container inside the "
+"window to hold the other widgets. A number of <link href=\"http://library.";
+"gnome.org/devel/gtk/stable/GtkContainer.html\">container types</link> are "
+"available, but we will use a <code>Gtk.Box</code> here. A <code>Gtk.Box</"
+"code> can hold several widgets, organized horizontally or vertically. You "
+"can do more complicated layouts by putting several boxes inside another box "
+"and so on."
+msgstr ""
+
+#: C/image-viewer.py.page:130(p) C/image-viewer.js.page:216(p)
+msgid ""
+"There is a graphical user interface designer called <app>Glade</app> "
+"integrated in <app>Anjuta</app> which makes UI design really easy. For this "
+"simple example, however, we will code everything manually."
+msgstr ""
+
+#: C/image-viewer.py.page:132(p)
+msgid ""
+"Let's add the box and widgets to the window. Insert the following code into "
+"the <code>__init__</code> method, immediately after the <code>window."
+"connect_after</code> line:"
+msgstr ""
+
+#: C/image-viewer.py.page:140(p)
+msgid ""
+"The first line creates a <code>Gtk.Box</code> called <code>box</code> and "
+"the following lines set two of its properties: the <code>orientation</code> "
+"is set to vertical (so the widgets are arranged in a column), and the "
+"<code>spacing</code> between the widgets is set to 5 pixels. The next line "
+"then adds the newly-created <code>Gtk.Box</code> to the window."
+msgstr ""
+
+#: C/image-viewer.py.page:141(p) C/image-viewer.js.page:223(p)
+msgid ""
+"So far the window only contains an empty <code>Gtk.Box</code>, and if you "
+"run the program now you will see no changes at all (the <code>Gtk.Box</code> "
+"is a transparent container, so you can't see that it's there)."
+msgstr ""
+
+#: C/image-viewer.py.page:145(title) C/image-viewer.js.page:227(title)
+msgid "Packing: Adding widgets to the container"
+msgstr "Empaquetado: Engadir widgets ao contedor"
+
+#: C/image-viewer.py.page:146(p)
+msgid ""
+"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
+"directly below the <code>window.add (box)</code> line:"
+msgstr ""
+
+#: C/image-viewer.py.page:150(p)
+msgid ""
+"The first line creates a new <code>Gtk.Image</code> called <code>image</"
+"code>, which will be used to display an image file. As we need that later on "
+"in the signal handler, we will define it as a class-wide variable. You need "
+"to add <code>image = 0</code> to the beginning of the <code>GUI</code> "
+"class. Then, the image widget is added (<em>packed</em>) into the <code>box</"
+"code> container using GtkBox's <link href=\"http://library.gnome.org/devel/";
+"gtk/stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> "
+"method."
+msgstr ""
+
+#: C/image-viewer.py.page:152(p)
+msgid ""
+"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
+"the GtkBox (<code>child</code>); whether the <code>Gtk.Box</code> should "
+"grow larger when the new widget is added (<code>expand</code>); whether the "
+"new widget should take up all of the extra space created if the <code>Gtk."
+"Box</code> gets bigger (<code>fill</code>); and how much space there should "
+"be, in pixels, between the widget and its neighbors inside the <code>Gtk."
+"Box</code> (<code>padding</code>)."
+msgstr ""
+
+#: C/image-viewer.py.page:153(p) C/image-viewer.js.page:234(p)
+msgid ""
+"Gtk containers (and widgets) dynamically expand to fill the available space, "
+"if you let them. You don't position widgets by giving them a precise x,y-"
+"coordinate location in the window; rather, they are positioned relative to "
+"one another. This makes handling window resizing much easier, and widgets "
+"should automatically take a sensible size in most situations."
+msgstr ""
+
+#: C/image-viewer.py.page:154(p) C/image-viewer.js.page:235(p)
+msgid ""
+"Also note how the widgets are organized in a hierarchy. Once packed in the "
+"<code>Gtk.Box</code>, the <code>Gtk.Image</code> is considered a <em>child</"
+"em> of the <code>Gtk.Box</code>. This allows you to treat all of the "
+"children of a widget as a group; for example, you could hide the <code>Gtk."
+"Box</code>, which would also hide all of its children at the same time."
+msgstr ""
+
+#: C/image-viewer.py.page:155(p) C/image-viewer.js.page:236(p)
+msgid "Now insert these two lines, below the two you just added:"
+msgstr "Agora escriba estas dÃas liÃas, embaixo das dÃas que acaba de engadir:"
+
+#: C/image-viewer.py.page:160(p)
+msgid ""
+"These lines are similar to the first two, but this time they create a "
+"<code>Gtk.Button</code> and add it to <code>box</code>. Notice that we are "
+"setting the <code>expand</code> argument (the second one) to <code>False</"
+"code> here, whereas it was set to <code>True</code> for the <code>Gtk.Image</"
+"code>. This will cause the image to take up all available space and the "
+"button to take only the space it needs. When you maximize the window, the "
+"button size will remain the same, but the image size will increase, taking "
+"up all of the rest of the window."
+msgstr ""
+
+#: C/image-viewer.py.page:164(title) C/image-viewer.js.page:247(title)
+msgid ""
+"Loading the image: Connecting to the button's <code>clicked</code> signal"
+msgstr ""
+
+#: C/image-viewer.py.page:165(p)
+msgid ""
+"When the user clicks on the <gui>Open Image...</gui> button, a dialog should "
+"appear so that the user can choose a picture. Once chosen, the picture "
+"should be loaded and shown in the image widget."
+msgstr ""
+
+#: C/image-viewer.py.page:166(p)
+msgid ""
+"The first step is to connect the <code>clicked</code> signal of the button "
+"to a signal handler function, which we call <code>on_open_clicked</code>. "
+"Put this code immediately after the <code>button = Gtk.Button()</code> line "
+"where the button was created:"
+msgstr ""
+
+#: C/image-viewer.py.page:170(p)
+msgid ""
+"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
+"code> method that we will define below."
+msgstr ""
+
+#: C/image-viewer.py.page:175(title) C/image-viewer.js.page:257(title)
+msgid "Loading the image: Writing the signal's callback"
+msgstr ""
+
+#: C/image-viewer.py.page:176(p)
+msgid ""
+"Now we can create the <code>on_open_clicked</code> method. Insert the "
+"following into the <code>GUI</code> class code block, after the "
+"<code>__init__</code> method:"
+msgstr ""
+
+#: C/image-viewer.py.page:192(p) C/image-viewer.js.page:278(p)
+#: C/image-viewer.cpp.page:172(p) C/image-viewer.c.page:186(p)
+msgid ""
+"This is a bit more complicated than anything we've attempted so far, so "
+"let's break it down:"
+msgstr ""
+
+#: C/image-viewer.py.page:195(p)
+msgid ""
+"The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
+"dialog, which the user can use to choose files. We set three properties: the "
+"title of the dialog; the action (type) of the dialog (it's an \"open\" "
+"dialog, but we could have used <code>SAVE</code> if the intention was to "
+"save a file; and <code>transient_for</code>, which sets the parent window of "
+"the dialog."
+msgstr ""
+
+#: C/image-viewer.py.page:198(p) C/image-viewer.js.page:284(p)
+msgid ""
+"The next two lines add <gui>Cancel</gui> and <gui>Open</gui> buttons to the "
+"dialog. The second argument of the <code>add_button</code> method is the "
+"(integer) value that is returned when the button is pressed: 0 for "
+"<gui>Cancel</gui> and 1 for <gui>Open</gui>."
+msgstr ""
+
+#: C/image-viewer.py.page:199(p) C/image-viewer.js.page:285(p)
+#: C/image-viewer.cpp.page:180(p) C/image-viewer.c.page:198(p)
+msgid ""
+"Notice that we are using <em>stock</em> button names from Gtk, instead of "
+"manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
+"is that the button labels will already be translated into the user's "
+"language."
+msgstr ""
+
+#: C/image-viewer.py.page:202(p) C/image-viewer.js.page:288(p)
+msgid ""
+"<code>set_default_response</code> determines the button that will be "
+"activated if the user double-clicks a file or presses <key>Enter</key>. In "
+"our case, we are using the <gui>Open</gui> button as default (which has the "
+"value 1)."
+msgstr ""
+
+#: C/image-viewer.py.page:205(p) C/image-viewer.js.page:291(p)
+msgid ""
+"The next three lines restrict the <gui>Open</gui> dialog to only display "
+"files which can be opened by <code>Gtk.Image</code>. A filter object is "
+"created first; we then add all kinds of files supported by <code>Gdk.Pixbuf</"
+"code> (which includes most image formats like PNG and JPEG) to the filter. "
+"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+
+#: C/image-viewer.py.page:208(p)
+msgid ""
+"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
+"wait for the user to choose an image; when they do, <code>dialog.run</code> "
+"will return the value <output>1</output> (it would return <output>0</output> "
+"if the user clicked <gui>Cancel</gui>). The <code>if</code> statement tests "
+"for this."
+msgstr ""
+
+#: C/image-viewer.py.page:210(p) C/image-viewer.js.page:296(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line sets the "
+"<code>file</code> property of the <code>Gtk.Image</code> to the filename of "
+"the image selected by the user. The <code>Gtk.Image</code> will then load "
+"and display the chosen image."
+msgstr ""
+
+#: C/image-viewer.py.page:221(p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"That should be it; a fully-functioning image viewer (and a whistlestop tour "
+"of Python and Gtk) in not much time at all!"
+msgstr ""
+
+#: C/image-viewer.py.page:226(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.py\">reference code</link>."
+msgstr ""
+
+#: C/image-viewer.js.page:7(title)
+#, fuzzy
+#| msgid "Classes in JavaScript"
+msgid "Image Viewer (JavaScript)"
+msgstr "Clases en JavaScript"
+
+#: C/image-viewer.js.page:10(desc)
+msgid ""
+"A little bit more than a simple \"Hello world\" application - write an image "
+"viewer in GTK. Includes an introduction to the JavaScript language."
+msgstr ""
+"Un aplicativo maÌis completo que un simple ÂOla Mundo - escriba un visor de "
+"imaxes en GTK. Isto incluÌe unha introducioÌn ao linguaxe JavaScript."
+
+#: C/image-viewer.js.page:29(p)
+msgid "Write a basic GTK user interface in JavaScript"
+msgstr "Escribir unha interface de usuario GTK baÌsica en JavaScript"
+
+#: C/image-viewer.js.page:37(p)
+msgid "An installed copy of the <em>gjs</em> interpreter"
+msgstr "Unha copia instalada do inteÌrprete <em>gjs</em>"
+
+#: C/image-viewer.js.page:38(p)
+msgid "Basic knowledge of any object-orientated programming language"
 msgstr "ConÌecemento baÌsico dunha linguaxe de programacioÌn orientada a obxectos"
 
-#: C/image-viewer.js.page:51(p)
+#: C/image-viewer.js.page:52(p)
+msgid ""
+"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>JavaScript xeneÌrico</gui> desde a lapela <gui>JS</gui>, "
+"prema <gui>Adiante</gui> e complete os seus detalles nas seguintes paÌxinas. "
+"Use <file>image-viewer</file> como nome do proxecto e cartafol."
+
+#: C/image-viewer.js.page:55(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. It contains very basic example code."
+msgstr ""
+"Prema <gui>Aplicar</gui> e o proxecto seraÌ creado. Abra <file>src/main.js</"
+"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ConteÌn "
+"coÌdigo de exemplo moi baÌsico."
+
+#: C/image-viewer.js.page:62(title)
+msgid "JavaScript basics: Hello World"
+msgstr "Primeiros pasos en JavaScript: Ola mundo"
+
+#: C/image-viewer.js.page:63(p)
+msgid ""
+"Before we start writing the image viewer, let's find out more about the way "
+"JavaScript is used in GNOME. Of course, your very first contact with any "
+"programming language should be the Hello World program which can already be "
+"found in <file>main.js</file>:"
+msgstr ""
+"Antes de comezar a escribir o visor de imaxes faremos unha introducioÌn aÌ "
+"forma na que JavaScript se usa en GNOME. Por suposto, o primeiro contacto "
+"con calquera linguaxe de programacioÌn deberiÌa ser un programa Ola Mundo que "
+"pode atopar <file>main.js</file>:"
+
+#: C/image-viewer.js.page:64(code)
+#, no-wrap
+msgid "print (\"Hello world!\");"
+msgstr "print (\"Ola mundo!\");"
+
+#: C/image-viewer.js.page:65(p)
+msgid ""
+"This should look quite natural if you're familiar with almost any other "
+"programming language. The function <code>print</code> is called with the "
+"argument <code>\"Hello world!\"</code>, which will be printed on the screen. "
+"Note that each line of code ends with a semicolon."
+msgstr ""
+"Isto deberiÌa ser natural se estaÌ familiarizado con calquera outra linguaxe "
+"de programacioÌn. A funcioÌn <code>printi</code> chaÌmase co argumento "
+"<code>ÂOla MundoÂ</code>, que se imprimiraÌ en pantalla. TenÌa en conta que "
+"cada linÌa de coÌdigo remata con un punto e coma."
+
+#: C/image-viewer.js.page:69(title)
+msgid "Classes in JavaScript"
+msgstr "Clases en JavaScript"
+
+#: C/image-viewer.js.page:70(p)
+msgid "This is the standard way to define a class in JavaScript:"
+msgstr "Esta eÌ a forma estaÌndar de definir unha clase en JavaScript:"
+
+#: C/image-viewer.js.page:93(p)
+msgid ""
+"This defines a class called <code>MyClass</code>. Let's go through each part "
+"of the class definition:"
+msgstr ""
+"Isto define unha clase chamada <code>MyClass</code>. Vexa cada unha das "
+"partes da definiciÃn da clase:"
+
+#: C/image-viewer.js.page:96(p)
+msgid ""
+"<code>function MyClass</code> is the constructor of the class â its name "
+"must match the class's name. You can access any member of the class by using "
+"the <code>this</code> object; here, the constructor calls the class's "
+"<code>_init</code> method."
+msgstr ""
+
+#: C/image-viewer.js.page:99(p)
+msgid ""
+"The <code>MyClass.prototype</code> block is where you define the "
+"<em>structure</em> of the class. Each class is made up of methods "
+"(functions) and fields (variables); there are three methods and two fields "
+"in this example."
+msgstr ""
+
+#: C/image-viewer.js.page:102(p)
+msgid ""
+"The first method defined here is called <code>_init</code>, and we specify "
+"that it is a function with no arguments:"
+msgstr ""
+
+#: C/image-viewer.js.page:103(code)
+#, no-wrap
+msgid "_init: function ()"
+msgstr "_init: function ()"
+
+#: C/image-viewer.js.page:104(p)
+msgid ""
+"We write the function inside some curly braces. Two fields are defined here, "
+"<code>propertyA</code> and <code>propertyB</code>. The first is set to a "
+"string and the second is set to an integer (10). The function doesn't return "
+"any value."
+msgstr ""
+
+#: C/image-viewer.js.page:107(p)
+msgid ""
+"The next method is called <code>aMethod</code> and has two arguments, which "
+"it prints out when you call it. The final method is <code>dumpProperties</"
+"code>, and prints the fields <code>propertyA</code> and <code>propertyB</"
+"code>."
+msgstr ""
+
+#: C/image-viewer.js.page:110(p)
+msgid ""
+"Note how the class definition (prototype) is arranged; each function "
+"definition is separated by a comma."
+msgstr ""
+"TeÃa en conta como se ordena a definiciÃn da clase (prototipo); cada "
+"definiciÃn de funciÃn sepÃrase con unha coma."
+
+#: C/image-viewer.js.page:114(p)
+msgid "Now that MyClass has been defined, we can play with it:"
+msgstr ""
+
+#: C/image-viewer.js.page:120(p)
+msgid ""
+"This code creates a new instance of the class called <code>o</code>, runs "
+"<code>aMethod</code>, changes <code>propertyA</code> to a different string, "
+"and then calls <code>dumpProperties</code> (which outputs the fields)."
+msgstr ""
+
+#: C/image-viewer.js.page:121(p)
+msgid ""
+"Save the code in the <file>main.js</file> and then run it by using "
+"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> from the menu or using the "
+"toolbar."
+msgstr ""
+
+#: C/image-viewer.js.page:127(p)
+msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+msgstr ""
+
+#: C/image-viewer.js.page:143(p)
+msgid ""
+"<code>Gtk.init</code> initializes the Gtk library; this statement is "
+"mandatory for all Gtk programs."
+msgstr ""
+
+#: C/image-viewer.js.page:146(p)
+msgid ""
+"The next line creates the main window by creating a new <code>Gtk.Window</"
+"code> object. You can pass several properties to the window's constructor by "
+"using the syntax <code>{property: value, property: value, ...}</code>. In "
+"this case we are setting the title of the window."
+msgstr ""
+
+#: C/image-viewer.js.page:147(p)
+msgid ""
+"The next line explicitly shows the window. In Gtk, every widget is hidden by "
+"default."
+msgstr ""
+
+#: C/image-viewer.js.page:148(p)
+msgid ""
+"Finally, <code>Gtk.main</code> runs the main loop â in other words, it "
+"executes the program. The main loop listens for events (signals) from the "
+"user interface and then calls a signal handler which will do something "
+"useful. We'll learn more about signals shortly."
+msgstr ""
+
+#: C/image-viewer.js.page:151(p)
+msgid ""
+"Save the code in <file>main.js</file> and run it. You will notice that the "
+"application does not quit when you close the window. This is because we "
+"haven't set up a signal handler to deal with the window's <code>destroy</"
+"code> (close) signal yet. We'll do this shortly, but for now you can just "
+"hit <keyseq><key>Ctrl</key><key>C</key></keyseq> in the terminal window to "
+"quit the program."
+msgstr ""
+
+#: C/image-viewer.js.page:156(title)
+msgid "Adding classes"
+msgstr "Engadir clases"
+
+#: C/image-viewer.js.page:157(p)
+msgid ""
+"The proper way of doing Gtk programming is by using classes. Let's rewrite "
+"the simple code you just wrote using classes:"
+msgstr ""
+
+#. FIXME: Throws an error, "JS ERROR: !!!   Unhandled type int32 releasing GArgument" on Ubuntu 10.10
+#: C/image-viewer.js.page:176(p)
+msgid ""
+"Notice that the program is the same; we just moved the window creation code "
+"to our own <code>ImageViewer</code> class. The class's constructor calls the "
+"<code>_init</code> method, which creates and shows the window. We then "
+"create an instance of the class before running the main loop (<code>Gtk."
+"main</code>)."
+msgstr ""
+
+#: C/image-viewer.js.page:177(p)
+msgid ""
+"This code is modular and can be split into multiple files easily. This makes "
+"it cleaner and easier to read."
+msgstr ""
+
+#: C/image-viewer.js.page:190(p)
+msgid "The syntax for connecting any signal to a function is:"
+msgstr "A sintaxe para conectar calquera sinal a unha funciÃn Ã:"
+
+#: C/image-viewer.js.page:193(p)
+msgid ""
+"You can find signal definitions for any object in the <link href=\"http://";
+"library.gnome.org/devel/gtk/stable/ch01.html\">GTK class reference</link>."
+msgstr ""
+"Pode atopar as definiciÃns de sinais para calquera proxecto na <link href="
+"\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>clase GTK de "
+"referencia</link>."
+
+#: C/image-viewer.js.page:196(p)
+msgid ""
+"You can simplify the code by making use of an inline function definition:"
+msgstr ""
+"Vostede pode simplificar o cÃdigo facendo uso da definiciÃn en liÃa de "
+"funciÃns:"
+
+#: C/image-viewer.js.page:204(title)
+msgid "Closing the window"
+msgstr "Pechar a xanela"
+
+#: C/image-viewer.js.page:205(p)
+msgid ""
+"When you close a Gtk window it's not really closed, it's hidden. This allows "
+"you to keep the window around (which is useful if you want to ask the user "
+"if they really want to close the window, for example)."
+msgstr ""
+"Ao pechar unha xanela Gtk realmente non se pecha, agÃchase. Isto permÃtelle "
+"manter unha xanela (Ãtil se quere preguntarlle ao usuario se realmente "
+"desexa pechar a xanela, por exemplo)."
+
+#: C/image-viewer.js.page:206(p)
+msgid ""
+"In our case, we really do just want to close the window. The simplest way of "
+"doing this is by connecting the <code>hide</code> signal of the GtkWindow "
+"object to a function that closes the application. Go back to the <file>image-"
+"viewer.js</file> file and add the following code to the <code>_init</code> "
+"method, on the line above <code>this.window.show</code>:"
+msgstr ""
+"No noso caso, queremos pechar a xanela. A forma mÃis doada de facer isto à "
+"conectar o sinal <code>hide</code> do obxecto GtkWindow a unha funciÃn que "
+"peche o aplicativo. Vaia de novo ao ficheiro <file>image-viewer.js</file> e "
+"engada o seguinte cÃdigo ao mÃtodo <code>_init</code>, na liÃa superior a "
+"<code>this.window.show</code>."
+
+#: C/image-viewer.js.page:207(code)
+#, no-wrap
+msgid "this.window.connect (\"hide\", Gtk.main_quit);"
+msgstr "this.window.connect (\"hide\", Gtk.main_quit);"
+
+#: C/image-viewer.js.page:208(p)
+msgid ""
+"This connects the <code>hide</code> signal of the window to Gtk's "
+"<code>main_quit</code> function, which ends the execution of the Gtk main "
+"loop. Once the main loop finishes, the function <code>Gtk.main</code> "
+"returns. Our program would continue to run any code written after the "
+"<code>Gtk.main ();</code> line, but since we don't have any code after that "
+"point, the program just ends."
+msgstr ""
+
+#: C/image-viewer.js.page:218(p)
+msgid ""
+"Let's add the box and widgets to the window. Insert the following code into "
+"the <code>_init</code> method, immediately above the <code>this.window.show</"
+"code> line:"
+msgstr ""
+
+#: C/image-viewer.js.page:222(p)
+msgid ""
+"The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
+"and sets two of its properties: the <code>orientation</code> is set to "
+"vertical (so widgets are arranged in a column), and the <code>spacing</code> "
+"between the widgets is set to 0 pixels. The next line then adds the newly-"
+"created <code>Gtk.Box</code> to the window."
+msgstr ""
+
+#: C/image-viewer.js.page:228(p)
+msgid ""
+"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
+"directly below the <code>this.window.add (main_box)</code> line:"
+msgstr ""
+
+#: C/image-viewer.js.page:232(p)
+msgid ""
+"The first line creates a new <code>Gtk.Image</code> called <code>image</"
+"code>, which will be used to display an image file. Then, the image widget "
+"is added (<em>packed</em>) into the <code>main_box</code> container using "
+"<code>Gtk.Box</code>'s <link href=\"http://library.gnome.org/devel/gtk/";
+"stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> "
+"method."
+msgstr ""
+
+#: C/image-viewer.js.page:233(p)
+msgid ""
+"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
+"the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
+"code> should grow larger when the new widget is added (<code>expand</code>); "
+"whether the new widget should take up all of the extra space created if the "
+"<code>Gtk.Box</code> gets bigger (<code>fill</code>); and how much space "
+"there should be, in pixels, between the widget and its neighbors inside the "
+"<code>Gtk.Box</code> (<code>padding</code>)."
+msgstr ""
+
+#: C/image-viewer.js.page:240(p)
+msgid ""
+"These lines are similar to the first two, but this time they create a "
+"<code>Gtk.Button</code> and add it to <code>main_box</code>. Notice that we "
+"are setting the <code>expand</code> argument (the second one) to "
+"<code>false</code> here, whereas it was set to <code>true</code> for the "
+"<code>Gtk.Image</code>. This will cause the image to take up all available "
+"space and the button to take only the space it needs. When you maximize the "
+"window, the button size will remain the same, but the image size will "
+"increase, taking up all of the rest of the window."
+msgstr ""
+
+#: C/image-viewer.js.page:241(p)
+msgid ""
+"Finally, we must change the <code>this.window.show ();</code> line to read:"
+msgstr ""
+
+#: C/image-viewer.js.page:242(code)
+#, no-wrap
+msgid "this.window.show_all ();"
+msgstr "this.window.show_all ();"
+
+#: C/image-viewer.js.page:243(p)
+msgid ""
+"This will show the child of the Gtk window, and all of its children, and its "
+"children's children, and so on. (Remember that Gtk widgets are all hidden by "
+"default.)"
+msgstr ""
+
+#: C/image-viewer.js.page:248(p)
+msgid ""
+"When the user clicks on the <gui>Open</gui> button, a dialog should appear "
+"so that the user can choose a picture. Once chosen, the picture should be "
+"loaded and shown in the image widget."
+msgstr ""
+
+#: C/image-viewer.js.page:249(p)
+msgid ""
+"The first step is to connect the <code>clicked</code> signal of the button "
+"to a signal handler function, which we call <code>_openClicked</code>. Put "
+"this code immediately after the <code>var open_button = new Gtk.Button</"
+"code> line where the button was created:"
+msgstr ""
+
+#: C/image-viewer.js.page:252(p)
+msgid ""
+"We are using the <em>Lang</em> JavaScript helper here. It allows us to "
+"connect a <em>class method</em> to the signal, rather than a plain function "
+"(without a class) which we had used before for the window's <code>hide</"
+"code> signal. Don't worry about this for now, it's just a technical detail. "
+"For it to work, you also need to put the following line at the top of the "
+"file:"
+msgstr ""
+
+#: C/image-viewer.js.page:253(code)
+#, no-wrap
+msgid "const Lang = imports.lang;"
+msgstr "const Lang = imports.lang;"
+
+#: C/image-viewer.js.page:258(p)
+msgid ""
+"Now we can create the <code>_openClicked()</code> method. Insert the "
+"following into the <code>ImageViewer.prototype</code> code block, after the "
+"<code>_init</code> method (and not forgetting the comma):"
+msgstr ""
+
+#: C/image-viewer.js.page:281(p)
+msgid ""
+"The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
+"dialog, which the user can use to choose files. We set four properties: the "
+"title of the dialog; the action (type) of the dialog (it's an \"open\" "
+"dialog, but we could have used <code>SAVE</code> if the intention was to "
+"save a file; <code>transient_for</code>, which sets the parent window of the "
+"dialog; and <code>modal</code> which, if set to <code>true</code>, prevents "
+"the user from clicking on another area of the application until the dialog "
+"is closed."
+msgstr ""
+
+#: C/image-viewer.js.page:294(p)
+msgid ""
+"<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
+"will wait for the user to choose an image; when they do, <code>chooser.run</"
+"code> will return the value <output>1</output> (it would return <output>0</"
+"output> if the user clicked <gui>Cancel</gui>). The <code>if</code> "
+"statement tests for this."
+msgstr ""
+
+#: C/image-viewer.js.page:307(p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"That should be it; a fully-functioning image viewer (and a whistlestop tour "
+"of JavaScript and Gtk) in not much time at all!"
+msgstr ""
+
+#: C/image-viewer.js.page:312(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+msgstr ""
+"Se ten problemas con este titorial, compare o seu coÌdigo con este <link href="
+"\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
+
+#: C/image-viewer.cpp.page:8(desc)
+msgid "A little bit more than a simple \"Hello world\" GTKmm application."
+msgstr "Un pouco maÌis que un simple aplicativo Gtkmm ÂOla mundoÂ."
+
+#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:23(title)
+msgid "Image Viewer"
+msgstr "Visor de imaxes"
+
+#: C/image-viewer.cpp.page:26(p)
+msgid "Some basic concepts of C++/GObject programming"
+msgstr "AlguÌns conceptos baÌsicos de programacioÌn de C++/GObject"
+
+#: C/image-viewer.cpp.page:27(p)
+msgid "How to write a Gtk application in C++"
+msgstr "CÃmo escribir un aplicativo GTK en C++"
+
+#: C/image-viewer.cpp.page:41(p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>image-viewer</file> como nome do proxecto e cartafol."
+
+#: C/image-viewer.cpp.page:44(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn how "
+"to use the interface builder."
+msgstr ""
+"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
+"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
+"titorial <link xref=\"guitar-tuner.cpp\">Guitar-Tuner</link> se quere "
+"aprender como usar o construtor de interface."
+
+#: C/image-viewer.cpp.page:49(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.cc</"
+"file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa "
+"ver alguÌn coÌdigo que comeza coas linÌas:"
+
+#: C/image-viewer.cpp.page:61(p) C/guitar-tuner.cpp.page:64(p)
+msgid ""
+"This is a very basic C++ code setting up GTKmm. More details are given "
+"below; skip this list if you understand the basics:"
+msgstr ""
+
+#: C/image-viewer.cpp.page:64(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
+"and <code>iostream</code> (C++-STL) libraries. Functions from these "
+"libraries are used in the rest of the code."
+msgstr ""
+
+#: C/image-viewer.cpp.page:67(p)
+msgid ""
+"The <code>main</code> function creates a new (empty) window and sets the "
+"window title."
+msgstr ""
+"A funciÃn <code>main</code> crea unha xanela nova (e baleira) e estabelece o "
+"tÃtulo da xanela."
+
+#: C/image-viewer.cpp.page:70(p)
+msgid ""
+"The <code>kit::run()</code> call starts the GTKmm main loop, which runs the "
+"user interface and starts listening for events (like clicks and key "
+"presses). As we give the window as an argument to that function, the "
+"application will automatically exit when that window is closed."
+msgstr ""
+
+#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:80(p)
+#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:85(p)
+msgid ""
+"Press <gui>Execute</gui> on the next window that appears to configure a "
+"debug build. You only need to do this once, for the first build."
+msgstr ""
+"Prema <gui>Executar</gui> na seguinte xanela que aparece para configurar a "
+"compilaciÃn de depuraciÃn. SÃ precisa facer isto unha vez para a primeira "
+"compilaciÃn."
+
+#: C/image-viewer.cpp.page:82(p)
+msgid ""
+"Now we will bring life into the empty window. GTKmm organizes the user "
+"interface with <code>Gtk::Container</code>s that can contain other widgets "
+"and even other containers. Here we will use the simplest available "
+"container, a <code>Gtk::Box</code>:"
+msgstr ""
+
+#: C/image-viewer.cpp.page:115(p)
+msgid ""
+"The first lines create the widgets we want to use: a button for opening up "
+"an image, the image view widget itself and the box we will use as a "
+"container."
+msgstr ""
+
+#: C/image-viewer.cpp.page:118(p)
+msgid ""
+"The calls to <code>pack_start</code> add the two widgets to the box and "
+"define their behaviour. The image will expand into any available space while "
+"the button will just be as big as needed. You will notice that we don't set "
+"explicit sizes on the widgets. In GTKmm 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 ""
+
+#: C/image-viewer.cpp.page:124(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTKmm "
+"uses the concept of <em>signals</em>. When the button is clicked, it fires "
+"the <em>clicked</em> signal, which we can connect to some action. This is "
+"done using the <code>signal_clicked().connect</code> method which tells "
+"GTKmm to call the <code>on_open_image</code> function when the button is "
+"clicked. We will define the <em>callback</em> in the next section."
+msgstr ""
+
+#: C/image-viewer.cpp.page:128(p)
+msgid ""
+"The last step is to show all widgets in the window using "
+"<code>show_all_children()</code>. This is equivalent to using the <code>show"
+"()</code> method on all our child widgets."
+msgstr ""
+
+#: C/image-viewer.cpp.page:137(p)
+msgid ""
+"We will now define the signal handler for the <em>clicked</em> signal or the "
+"button we mentioned before. Add this code before the <code>main</code> "
+"method."
+msgstr ""
+
+#: C/image-viewer.cpp.page:175(p)
+msgid ""
+"The dialog for choosing the file is created using the <code>Gtk::"
+"FileChooserDialog</code> constructor. This takes the title and type of the "
+"dialog. In our case, it is an <em>Open</em> dialog."
+msgstr ""
+
+#: C/image-viewer.cpp.page:179(p)
+msgid ""
+"The next two lines add an <em>Open</em> and a <em>Close</em> button to the "
+"dialog."
+msgstr ""
+
+#: C/image-viewer.cpp.page:181(p)
+msgid ""
+"The second argument to the <code>add_button()</code> method is a value to "
+"identify the clicked button. We use predefined values provided by GTKmm "
+"here, too."
+msgstr ""
+
+#: C/image-viewer.cpp.page:186(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by <code>Gtk::Image</code>. A filter object is created "
+"first; we then add all kinds of files supported by <code>Gdk::Pixbuf</code> "
+"(which includes most image formats like PNG and JPEG) to the filter. "
+"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+
+#: C/image-viewer.cpp.page:187(p)
+msgid ""
+"<code>Glib::RefPtr</code> is a smart pointer used here, that makes sure that "
+"the filter is destroyed when there is no reference to it anymore."
+msgstr ""
+
+#: C/image-viewer.cpp.page:191(p)
+msgid ""
+"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
+"wait for the user to choose an image; when they do, <code>dialog.run</code> "
+"will return the value <code>Gtk::RESPONSE_ACCEPT</code> (it would return "
+"<code>Gtk::RESPONSE_CANCEL</code> if the user clicked <gui>Cancel</gui>). "
+"The <code>switch</code> statement tests for this."
+msgstr ""
+
+#: C/image-viewer.cpp.page:194(p)
+msgid ""
+"We hide the <gui>Open</gui> dialog because we don't need it any more. The "
+"dialog would be hidden later anyway, as it is only a local variable and is "
+"destroyed (and therefore hidden) when the scope ends."
+msgstr ""
+
+#: C/image-viewer.cpp.page:197(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line loads the "
+"file into the <code>Gtk::Image</code> so that it is displayed."
+msgstr ""
+
+#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:218(p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/image-viewer</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/image-viewer</"
+"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
+"desfrute!"
+
+#: C/image-viewer.cpp.page:211(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
+msgstr ""
+"Se ten problemas con este titorial, compare o seu cÃdigo con este <link href="
+"\"image-viewer/image-viewer.cc\">cÃdigo de referencia</link>."
+
+#: C/image-viewer.c.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (C)"
+msgstr "Visor de imaxes"
+
+#: C/image-viewer.c.page:28(p)
+msgid "Some basic concepts of C/GObject programming"
+msgstr "AlgÃns conceptos bÃsicos de programaciÃn de C/GObject"
+
+#: C/image-viewer.c.page:29(p)
+msgid "How to write a Gtk application in C"
+msgstr "Como escribir un aplicativo GTK en C"
+
+#: C/image-viewer.c.page:43(p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>image-viewer</file> as project name and directory."
+msgid ""
+"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes pÃxinas. Use "
+"<file>image-viewer</file> como nome do proxecto e cartafol."
+
+#: C/image-viewer.c.page:46(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to "
+"use the interface builder."
+msgstr ""
+"AsegÃrese que <gui>Usar GtkBuilder para a interface de usuario</gui> està "
+"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
+"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> se quere aprender "
+"como usar o construtor de interface."
+
+#: C/image-viewer.c.page:61(p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"and shows it. More details are given below; skip this list if you understand "
+"the basics:"
+msgstr ""
+
+#: C/image-viewer.c.page:65(p) C/guitar-tuner.c.page:70(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
+"<code>gi18n</code> (internationalization) libraries. Functions from these "
+"libraries are used in the rest of the code."
+msgstr ""
+
+#: C/image-viewer.c.page:68(p)
+msgid ""
+"The <code>create_window</code> function creates a new (empty) window and "
+"connects a signal to exit the application when that window is closed."
+msgstr ""
+"A funciÃn <code>create_window</code> crea unha xanela (baleira) nova e "
+"conecta un sinal para saÃr do aplicativo pÃchase esa xanela."
+
+#: C/image-viewer.c.page:72(p) C/guitar-tuner.c.page:77(p)
+msgid ""
+"The <code>main</code> function is run by default when you start a C "
+"application. It calls a few functions which set up and then run the "
+"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 ""
+
+#: C/image-viewer.c.page:75(p) C/guitar-tuner.c.page:80(p)
+msgid ""
+"The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
+"code>, which is a framework for translating applications. These functions "
+"specify how translation tools should handle your app when you run them."
+msgstr ""
+
+#: C/image-viewer.c.page:85(p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <code>GtkContainer</code>s that can contain other widgets and "
+"even other containers. Here we will use the simplest available container, a "
+"<code>GtkBox</code>:"
+msgstr ""
+
+#: C/image-viewer.c.page:123(p)
+msgid ""
+"The first lines create the widgets we want to use: a button for opening up "
+"an image, the image view widget itself and the box we will use as a "
+"container. 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 ""
+
+#: C/image-viewer.c.page:128(p)
+msgid ""
+"The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
+"and define their behaviour. The image will expand into any available space "
+"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 ""
+
+#: C/image-viewer.c.page:134(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>. When the button is clicked, it fires the "
+"<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 ""
+
+#: C/image-viewer.c.page:139(p)
+msgid ""
+"The last <code>g_signal_connect()</code> makes sure that the application "
+"exits when the window is closed."
+msgstr ""
+
+#: C/image-viewer.c.page:142(p)
+msgid ""
+"As a last step, make sure to replace the <code>gtk_widget_show</code> call "
+"in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
+"show the window and all the widgets it contains."
+msgstr ""
+
+#: C/image-viewer.c.page:150(p)
+msgid ""
+"We will now define the signal handler for the <em>clicked</em> signal or the "
+"button we mentioned before. Add this code before the <code>create_window()</"
+"code> method."
+msgstr ""
+
+#: C/image-viewer.c.page:188(p)
+msgid ""
+"The first argument of the signal is always the widget that sent the signal. "
+"Sometimes other arguments related to the signal come after that, but "
+"<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 this case it is our <code>GtkImage</code> object."
+msgstr ""
+
+#: C/image-viewer.c.page:194(p)
+msgid ""
+"The next interesting line is where the dialog for choosing the file is "
+"created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
+"the title of the dialog, the parent window of the dialog and several options "
+"like the number of buttons and their corresponding values."
+msgstr ""
+
+#: C/image-viewer.c.page:201(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by GtkImage. A filter object is created first; we then "
+"add all kinds of files supported by <code>GdkPixbuf</code> (which includes "
+"most image formats like PNG and JPEG) to the filter. Finally, we set this "
+"filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+
+#: C/image-viewer.c.page:204(p)
+msgid ""
+"<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
+"will wait for the user to choose an image; when they do, "
+"<code>gtk_dialog_run</code> will return the value <code>GTK_RESPONSE_ACCEPT</"
+"code> (it would return <code>GTK_RESPONSE_CANCEL</code> if the user clicked "
+"<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
+msgstr ""
+
+#: C/image-viewer.c.page:206(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line sets the "
+"<code>file</code> property of the GtkImage to the filename of the image "
+"selected by the user. The GtkImage will then load and display the chosen "
+"image."
+msgstr ""
+
+#: C/image-viewer.c.page:209(p)
+msgid ""
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more. Destroying automatically hides the dialog."
+msgstr ""
+
+#: C/image-viewer.c.page:223(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.c\">reference code</link>."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/image.vala.page:21(None) C/image.py.page:21(None)
+#: C/image.js.page:20(None) C/image.c.page:21(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+msgid "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
+msgstr ""
+"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+
+#: C/image.vala.page:7(title)
+msgid "Image (Vala)"
+msgstr ""
+
+#: C/image.vala.page:17(desc) C/image.py.page:17(desc)
+#: C/image.js.page:16(desc) C/image.c.page:17(desc)
+msgid "A widget displaying an image"
+msgstr ""
+
+#: C/image.vala.page:20(title) C/image.py.page:20(title)
+#: C/image.js.page:19(title) C/image.c.page:20(title)
+msgid "Image"
+msgstr ""
+
+#: C/image.vala.page:22(p) C/image.py.page:22(p) C/image.js.page:21(p)
+#: C/image.c.page:22(p)
+msgid "This GtkApplication displays an image file from the current directory."
+msgstr ""
+
+#: C/image.vala.page:23(p) C/image.js.page:22(p) C/image.c.page:23(p)
+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!"
+msgstr ""
+
+#: C/image.vala.page:32(link) C/GtkApplicationWindow.py.page:53(link)
+#: C/GtkApplicationWindow.c.page:30(link) C/grid.py.page:56(link)
+#: C/checkbutton.py.page:47(link) C/aboutdialog.py.page:46(link)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "GtkApplicationWindow"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/image.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Image (Python)"
+msgstr "Python"
+
+#: C/image.py.page:24(p)
+msgid ""
+"If the image file is not loaded successfully, the image will contain a "
+"\"broken image\" icon. The <file>filename.png</file> needs to be in the "
+"current directory for this code to work."
+msgstr ""
+
+#: C/image.py.page:35(p)
+msgid ""
+"Another way to obtain what we have in the example is to create the image as "
+"an instance of another class and add it to the instance of <code>MyWindow</"
+"code> in the <code>do_activate(self)</code> method:"
+msgstr ""
+
+#: C/image.py.page:36(code)
+#, no-wrap
+msgid ""
+"\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()"
+msgstr ""
+
+#: C/image.py.page:63(title)
+msgid "Useful methods for an Image widget"
+msgstr ""
+
+#: C/image.py.page:66(p)
+msgid ""
+"To set a stock icon as image, you can use <code>set_from_stock(stock_id, "
+"size)</code> where <code>stock_id</code> is a stock icon such as <code>Gtk."
+"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>."
+msgstr ""
+
+#: C/image.py.page:67(p)
+msgid ""
+"You can also use <code>set_from_icon_name(icon_name, size)</code>, where "
+"<code>icon_name</code> is a stock icon name such as <code>\"gtk-about\"</"
+"code> (more can be found as above) and <code>size</code> is as above."
+msgstr ""
+
+#: C/image.py.page:68(p)
+msgid ""
+"To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, "
+"where <code>pixbuf</code> is a <link href=\"http://developer.gnome.org/gdk-";
+"pixbuf/unstable//index.html\">GdkPixbuf</link>."
+msgstr ""
+
+#: C/image.py.page:69(code)
+#, no-wrap
+msgid ""
+"\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)"
+msgstr ""
+
+#: C/image.py.page:90(p)
+msgid ""
+"If <code>preserve_aspect_ratio=True</code> we can use "
+"<code>new_from_file_at_size(filename, width, height)</code>. If <code>width</"
+"code> or <code>height</code> is <code>-1</code>, it is not constrained."
+msgstr ""
+
+#: C/image.py.page:91(p)
+msgid ""
+"For loading from an input stream, see <code>new_from_stream()</code> and "
+"<code>new_from_stream_at_scale()</code> in the documentation"
+msgstr ""
+
+#: C/image.js.page:6(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Image (JavaScript)"
+msgstr "JavaScript"
+
+#: C/image.c.page:7(title)
+msgid "Image (C)"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/helloWorld.js.page:27(None)
+#, fuzzy
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgid "@@image: 'media/helloWorld.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+
+#: C/helloWorld.js.page:8(title)
+msgid "Hello World (JavaScript)"
+msgstr ""
+
+#: C/helloWorld.js.page:23(desc)
+#, fuzzy
+#| msgid "A little bit more than a simple \"Hello world\" Gtk application."
+msgid "A basic \"hello, world\" application"
+msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+
+#: C/helloWorld.js.page:26(title)
+msgid "Hello World"
+msgstr ""
+
+#: C/helloWorld.js.page:29(p)
+msgid "This tutorial will demonstrate how to:"
+msgstr ""
+
+#: C/helloWorld.js.page:31(p)
+#, fuzzy
+#| msgid ""
+#| "A little bit more than a simple \"Hello world\" application - write an "
+#| "image viewer in GTK."
+msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
+msgstr ""
+"Algo mÃis que un aplicativo sinxelo ÂHola mundo - escribir un visor de "
+"imaxes en GTK."
+
+#: C/helloWorld.js.page:32(p)
+msgid "make the <file>.desktop</file> file"
+msgstr ""
+
+#: C/helloWorld.js.page:33(p)
+msgid "how to set up the build system"
+msgstr ""
+
+#: C/helloWorld.js.page:41(title)
+msgid "Create the HelloWorld program"
+msgstr ""
+
+#: C/helloWorld.js.page:46(p)
+msgid "This needs to be the first line of your script:"
+msgstr ""
+
+#: C/helloWorld.js.page:48(p)
+msgid ""
+"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</"
+"link>. Gjs is a JavaScript binding for GNOME."
+msgstr ""
+
+#: C/helloWorld.js.page:55(p)
+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."
+msgstr ""
+
+#: C/helloWorld.js.page:91(p)
+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 ""
+
+#: C/helloWorld.js.page:92(p)
+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."
+msgstr ""
+
+#: C/helloWorld.js.page:93(p)
+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 ""
+
+#: C/helloWorld.js.page:94(p)
+msgid ""
+"Now we have a window which has a title and a working \"close\" button. Let's "
+"add the actual \"Hello World\" text."
+msgstr ""
+
+#: C/helloWorld.js.page:97(title)
+#, fuzzy
+#| msgid "Closing the window"
+msgid "Label for the window"
+msgstr "Pechar a xanela"
+
+#: C/helloWorld.js.page:103(p)
+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:"
+msgstr ""
+
+#: C/helloWorld.js.page:109(p)
+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."
+msgstr ""
+
+#: C/helloWorld.js.page:113(title)
+msgid "helloWorld.js"
+msgstr ""
+
+#: C/helloWorld.js.page:114(p)
+msgid "The complete file:"
+msgstr ""
+
+#: C/helloWorld.js.page:118(title)
+#, fuzzy
+#| msgid "Run the application"
+msgid "Running the application from terminal"
+msgstr "Executar o aplicativo"
+
+#: C/helloWorld.js.page:119(p)
+msgid ""
+"To run this application, first save it as helloWorld.js. Then open Terminal, "
+"go to the folder where your application is stored and run:"
+msgstr ""
+
+#: C/helloWorld.js.page:120(input)
+#, fuzzy
+#| msgid "helloWorld.desktop"
+msgid "gjs helloWorld.js"
+msgstr "holaMundo.desktop"
+
+#: C/helloWorld.js.page:126(title)
+msgid "The <file>.desktop.in</file> file"
+msgstr ""
+
+#: C/helloWorld.js.page:127(p)
+msgid ""
+"Running applications from the Terminal is useful at the beginning of the "
+"application making process. To have fully working <link href=\"http://";
+"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.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 ""
+
+#: C/helloWorld.js.page:130(p)
+msgid ""
+"Before continuing, resave <file>helloWorld.js</file> as <file>helloWorld</"
+"file>. Then run this in the command line:"
+msgstr ""
+
+#: C/helloWorld.js.page:131(input)
+msgid "chmod +x helloWorld"
+msgstr ""
+
+#: C/helloWorld.js.page:134(p)
+msgid ""
+"The example shows you the minimum requirements for a <code>.desktop.in</"
+"code> file."
+msgstr ""
+
+#: C/helloWorld.js.page:137(p)
+msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
+msgstr ""
+
+#: C/helloWorld.js.page:139(p)
+#, fuzzy
+#| msgid "Run the application"
+msgid "The application name."
+msgstr "Executar o aplicativo"
+
+#: C/helloWorld.js.page:140(title)
+msgid "Comment"
+msgstr ""
+
+#: C/helloWorld.js.page:140(p)
+#, fuzzy
+#| msgid "Designing the application"
+msgid "A short description of the application."
+msgstr "DeseÃar o aplicativo"
+
+#: C/helloWorld.js.page:141(title)
+msgid "Exec"
+msgstr ""
+
+#: C/helloWorld.js.page:141(p)
+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>helloWorld</"
+"file> file and the file takes care of the rest."
+msgstr ""
+
+#: C/helloWorld.js.page:142(title)
+msgid "Terminal"
+msgstr ""
+
+#: C/helloWorld.js.page:142(p)
+msgid ""
+"Specifies whether the command in the Exec key runs in a terminal window."
+msgstr ""
+
+#: C/helloWorld.js.page:145(p)
+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 ""
+
+#: C/helloWorld.js.page:146(p)
+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=\"http://library.gnome.org/";
+"admin/system-admin-guide/stable/themes-11.html.en\"> Installing Icons for "
+"Themes </link>, <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 ""
+
+#: C/helloWorld.js.page:149(title)
+msgid "The build system"
+msgstr ""
+
+#: C/helloWorld.js.page:150(p)
+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 ""
+
+#: C/helloWorld.js.page:151(p)
+msgid "For this you need to have the following files:"
+msgstr ""
+
+#: C/helloWorld.js.page:157(p)
+msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
+msgstr ""
+
+#: C/helloWorld.js.page:158(input)
+#, fuzzy
+#| msgid "autogen.sh"
+msgid "chmod +x autogen.sh"
+msgstr "autogen.sh"
+
+#: C/helloWorld.js.page:172(title)
+msgid "README"
+msgstr ""
+
+#: C/helloWorld.js.page:173(p)
+msgid "Information users should read first. This file can be blank."
+msgstr ""
+
+#: C/helloWorld.js.page:175(p)
+msgid ""
+"When you have the <file>helloWorld</file>, <file>helloWorld.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 ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/hellognome.js.page:64(None)
+msgid ""
+"@@image: 'media/hellognomewebapp.png'; md5=948efb6148ede3bc6b47b4b0bbe4a74f"
+msgstr ""
+
+#: C/hellognome.js.page:16(desc)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "Your first GNOME application!"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/hellognome.js.page:19(title)
+msgid "1. Hello, GNOME!"
+msgstr ""
+
+#: C/hellognome.js.page:21(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:22(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:28(title)
+msgid "Let's start with a web page"
+msgstr ""
+
+#: C/hellognome.js.page:30(p)
+msgid ""
+"Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
+msgstr ""
+
+#: C/hellognome.js.page:62(p)
+msgid ""
+"Let's save this as <file>hellognome.html</file>, and see what it looks like "
+"when we run it!"
+msgstr ""
+
+#: C/hellognome.js.page:66(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:67(p)
+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!"
+msgstr ""
+
+#: C/hellognome.js.page:71(title)
+#, fuzzy
+#| msgid "Designing the application"
+msgid "Creating a GNOME window to frame our web app"
+msgstr "DeseÃar o aplicativo"
+
+#: C/hellognome.js.page:73(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:77(p)
+msgid "After that, we need to tell GNOME which libraries we want to import."
+msgstr ""
+
+#: C/hellognome.js.page:84(p)
+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:"
+msgstr ""
+
+#: C/hellognome.js.page:86(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:87(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:88(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:91(p)
+#, fuzzy
+#| msgid "How to write a Gtk application in C"
+msgid "Now we create the application itself:"
+msgstr "Como escribir un aplicativo GTK en C"
+
+#: C/hellognome.js.page:96(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:118(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:119(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:120(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:121(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:125(title)
+msgid "Designing our window's UI"
+msgstr ""
+
+#: C/hellognome.js.page:126(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:141(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:150(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:151(p)
+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.)"
+msgstr ""
+
+#: C/hellognome.js.page:162(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:168(p)
+msgid ""
+"Finally, we create a new instance of our HelloGNOME class, and tell GNOME to "
+"run it."
+msgstr ""
+
+#: C/hellognome.js.page:172(title)
+#, fuzzy
+#| msgid "Run the application"
+msgid "Running your GNOME application"
+msgstr "Executar o aplicativo"
+
+#: C/hellognome.js.page:174(p)
+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:"
+msgstr ""
+
+#: C/hellognome.js.page:175(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs hellognome.js "
+msgstr ""
+
+#: C/hellognome.js.page:176(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:179(p)
+msgid "You can use the terminal command"
+msgstr ""
+
+#: C/hellognome.js.page:180(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
+msgstr ""
+
+#: C/hellognome.js.page:181(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:186(title) C/03_getting_the_signal.js.page:339(title)
+#: C/02_welcome_to_the_grid.js.page:256(title)
+msgid "What's next?"
+msgstr ""
+
+#: C/hellognome.js.page:188(p)
+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."
+msgstr ""
+
+#: C/hellognome.js.page:189(p)
+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! "
+"Take a look at the <link xref=\"scrolledwindow.js\">ScrolledWindow</link> "
+"code sample if you'd like to see how to make a WebView widget that can "
+"scroll to show parts of a larger web page, and 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 ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:42(None) C/guitar-tuner.py.page:39(None)
+#: C/guitar-tuner.js.page:36(None) C/guitar-tuner.cpp.page:37(None)
+#: C/guitar-tuner.c.page:39(None)
+msgid "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:95(None) C/guitar-tuner.py.page:90(None)
+#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:94(None)
+msgid ""
+"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+msgstr ""
+"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:129(None) C/guitar-tuner.py.page:133(None)
+#: C/guitar-tuner.js.page:42(None) C/guitar-tuner.cpp.page:117(None)
+#: C/guitar-tuner.c.page:139(None)
+msgid ""
+"@@image: 'media/guitar-tuner-pipeline.png'; "
+"md5=5adc952909d92af5dae6954781b4ad5f"
+msgstr ""
+"@@image: 'media/guitar-tuner-pipeline.png'; "
+"md5=5adc952909d92af5dae6954781b4ad5f"
+
+#: C/guitar-tuner.vala.page:9(desc)
+#, fuzzy
+#| msgid ""
+#| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
+#| "GNOME. Shows off how to use the interface designer."
+msgid ""
+"Use <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 ""
+"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
+"GNOME. Mostra como usar o deseÃador de interfaces."
+
+#: C/guitar-tuner.vala.page:26(title) C/guitar-tuner.py.page:23(title)
+#: C/guitar-tuner.js.page:19(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "2 Guitar Tuner"
+msgstr "Afinador de guitarra"
+
+#: C/guitar-tuner.vala.page:29(p)
+#, fuzzy
+#| 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:"
+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:"
+msgstr ""
+"Neste titorial faremos un programa que reproduce tonos que pode usar para "
+"afinar unha guitarra. Aprenderà como:"
+
+#: C/guitar-tuner.vala.page:31(p)
+msgid ""
+"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
+"link>."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:32(p)
+#, fuzzy
+#| msgid "Create a simple GUI with Anjuta's UI designer"
+msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
+msgstr "Crear unha GUI sinxela co deseÃador de UI de Anjuta"
+
+#: C/guitar-tuner.vala.page:33(p)
+msgid ""
+"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
+"gstreamer\">GStreamer</link> library to play sounds."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:45(title)
+#, fuzzy
+#| msgid "Create a project in Anjuta"
+msgid "Create a project in <app>Anjuta</app>"
+msgstr "Cree un proxecto de Anjuta"
+
+#: C/guitar-tuner.vala.page:52(p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>guitar-tuner</file> as project name and directory."
+msgid ""
+"Click on the <gui>Vala</gui> tab and select <gui>Gtk+ (Simple)</gui>. Click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#: C/guitar-tuner.vala.page:55(p)
+#, fuzzy
+#| msgid ""
+#| "Make sure that <gui>Configure external packages</gui> is selected. On the "
+#| "next page, select <em>gstreamer-0.10</em> from the list to include the "
+#| "GStreamer library in your project."
+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>"
+msgstr ""
+"AsegÃrese que <gui>Configurar paquetes externos</gui> està seleccionada. Na "
+"seguinte pÃxina, seleccione <em>gstreamermm-0.10</em> da lista para incluÃr "
+"a biblioteca GStreamer no seu proxecto."
+
+#: C/guitar-tuner.vala.page:59(p)
+#, fuzzy
+#| 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:"
+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:"
+msgstr ""
+"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.c</file> "
+"desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa ver "
+"alguÌn coÌdigo que comeza coas linÌas:"
+
+#: C/guitar-tuner.vala.page:69(p)
+msgid ""
+"The code loads an (empty) window from the user interface description file "
+"and displays it. More details are given below; you may choose to skip this "
+"list if you understand the basics:"
+msgstr ""
+
+#: C/guitar-tuner.vala.page:76(p)
+msgid ""
+"The constructor of the <code>Main</code> class creates a new window by "
+"opening a GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few "
+"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 ""
+
+#: C/guitar-tuner.vala.page:78(p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>on_destroy</code> function is "
+"called (and quits the app) when you close the window."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:82(p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"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 ""
+
+#: C/guitar-tuner.vala.page:86(p)
+msgid ""
+"This code is ready to be used, so you can compile it by clicking "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>). 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 ""
+
+#: C/guitar-tuner.vala.page:90(title) C/guitar-tuner.py.page:85(title)
+#: C/guitar-tuner.cpp.page:83(title) C/guitar-tuner.c.page:89(title)
+msgid "Create the user interface"
+msgstr "Crear a interface de usuario"
+
+#: C/guitar-tuner.vala.page:91(p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder file "
+"<file>src/guitar_tuner.ui</file> defined at the top of the class. To edit "
+"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 ""
+
+#: C/guitar-tuner.vala.page:93(p)
+msgid ""
+"The layout of every UI in GTK+ is organized using boxes and tables. Let's "
+"use a vertical GtkButtonBox here to assign six GtkButtons, one for each of "
+"the six guitar strings."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:99(p)
+msgid ""
+"In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
+"select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. Then "
+"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 ""
+
+#: C/guitar-tuner.vala.page:100(p)
+msgid ""
+"You can also change the <gui>Number of elements</gui> and the "
+"<gui>Orientation</gui> in the <gui>General</gui> tab on the right."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:104(p)
+msgid ""
+"Now, from the <gui>Control and Display</gui> section of the <gui>Palette</"
+"gui> choose a <gui>Button</gui> (GtkButton) by clicking on it. Place it into "
+"the first section of the GtkButtonBox by clicking in the first section."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:107(p)
+msgid ""
+"While the button is still selected, scroll down in the <gui>General</gui> "
+"tab on the right to the <gui>Label</gui> property, and change it to <gui>E</"
+"gui>. This will be the low E guitar string."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:108(p)
+msgid ""
+"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
+"the right."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:113(p)
+msgid ""
+"Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on the "
+"right, and look for the <code>clicked</code> signal of the button. You can "
+"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 ""
+
+#: C/guitar-tuner.vala.page:116(p) C/guitar-tuner.py.page:107(p)
+#: C/guitar-tuner.c.page:111(p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
+msgstr ""
+"Repita os pasos anteriores para o resto dos botÃns, engadindo as 5 cordas "
+"restantes cos nomes <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e <em>e</"
+"em>."
+
+#: C/guitar-tuner.vala.page:119(p) C/guitar-tuner.py.page:110(p)
+#: C/guitar-tuner.c.page:114(p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and keep it open."
+msgstr ""
+"Garde o deseÃo da IU (premendo <guiseq><gui>Ficheiro</gui><gui>Gardar</gui></"
+"guiseq>) e dÃixeo aberto."
+
+#: C/guitar-tuner.vala.page:125(title) C/guitar-tuner.py.page:129(title)
+#: C/guitar-tuner.js.page:24(link) C/guitar-tuner.js.page:38(title)
+#: C/guitar-tuner.cpp.page:112(title) C/guitar-tuner.c.page:135(title)
+msgid "GStreamer pipelines"
+msgstr "TuberÃas de GStreamer"
+
+#: C/guitar-tuner.vala.page:126(p)
+#, fuzzy
+#| 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."
+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."
+msgstr ""
+"GStreamer à un marco de traballo multimedia de GNOME â vostede pode usalo "
+"para reproducir, gravar e procesar vÃdeo, son, fluxos de cÃmara web e "
+"semellantes. AquÃ, usarÃmolo para producir tonos dunha Ãnica frecuencia."
+
+#: C/guitar-tuner.vala.page:127(p)
+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."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:128(p) C/guitar-tuner.py.page:132(p)
+#: C/guitar-tuner.js.page:41(p) C/guitar-tuner.cpp.page:116(p)
+#: C/guitar-tuner.c.page:138(p)
+msgid ""
+"Between source and sink, you can apply various filters and converters to "
+"handle effects, format conversions and so on. Each element of the pipeline "
+"has properties which can be used to change its behaviour."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:130(p) C/guitar-tuner.py.page:134(p)
+#: C/guitar-tuner.js.page:43(p) C/guitar-tuner.cpp.page:118(p)
+#: C/guitar-tuner.c.page:140(p)
+msgid "An example GStreamer pipeline."
+msgstr "Un exemplo de tuberÃa de GStreamer."
+
+#: C/guitar-tuner.vala.page:135(title) C/guitar-tuner.py.page:139(title)
+#: C/guitar-tuner.c.page:145(title)
+msgid "Set up the pipeline"
+msgstr "Configurar a tuberÃa"
+
+#: C/guitar-tuner.vala.page:136(p)
+msgid ""
+"In this example we will use a tone generator source called "
+"<code>audiotestsrc</code> and send the output to the default system sound "
+"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 ""
+
+#: C/guitar-tuner.vala.page:138(p)
+msgid ""
+"We need to add a line to initialize GStreamer; put the following code on the "
+"line above the <code>Gtk.init</code> call in the <code>main</code> function:"
+msgstr ""
+
+#: C/guitar-tuner.vala.page:140(p)
+msgid ""
+"Then, copy the following function into <file>guitar_tuner.vala</file> inside "
+"our <code>Main</code> class:"
+msgstr ""
+
+#: C/guitar-tuner.vala.page:175(p)
+msgid ""
+"The first three lines create source and sink GStreamer elements (<link href="
+"\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
+"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 ""
+
+#: C/guitar-tuner.vala.page:178(p)
+#, fuzzy
+#| 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."
+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."
+msgstr ""
+"A chamada a <code>g_object_set</code> estabelecer a propiedade <code>freq</"
+"code> do elemento orixe a <code>frequency</code>, a cal se pasa como un "
+"argumento à funciÃn <code>play_sound</code>. Isto sà à a frecuencia da nota "
+"en Hertz, algunhas das frecuencias mÃis Ãtiles definiranse mÃis tarde."
+
+#: C/guitar-tuner.vala.page:181(p)
+msgid ""
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
+"\"><code>pipeline.add</code></link> puts the source and sink into the "
+"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 ""
+
+#: C/guitar-tuner.vala.page:184(p)
+msgid ""
+"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
+"\"><code>sink.link</code></link> is used to connect the elements together, "
+"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 ""
+
+#: C/guitar-tuner.vala.page:187(p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.org/";
+"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 ""
+
+#: C/guitar-tuner.vala.page:197(title) C/guitar-tuner.c.page:120(title)
+msgid "Creating the signal handler"
+msgstr "Crear o manexador de sinais"
+
+#: C/guitar-tuner.vala.page:198(p)
+msgid ""
+"In the UI designer, you made it so that all of the buttons will call the "
+"same function, <gui>on_button_clicked</gui>, when they are clicked. Actually "
+"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 ""
+
+#: C/guitar-tuner.vala.page:199(p)
+msgid ""
+"To do this, in the user interface file (guitar_tuner.ui) select one of the "
+"buttons by clicking on it, then open <file>guitar_tuner.vala</file> (by "
+"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 ""
+
+#: C/guitar-tuner.vala.page:206(p)
+msgid ""
+"You can also just type the code at the beginning of the class instead of "
+"using the drag and drop."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:207(p)
+msgid ""
+"This signal handler has only one argument: the <link href=\"http://valadoc.";
+"org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> that called "
+"the function (in our case, always a <link href=\"http://valadoc.org/gtk+-3.0/";
+"Gtk.Button.html\"><code>Gtk.Button</code></link>)."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:213(title)
+msgid "Define the signal handler"
+msgstr "Definir o manexador de sinais"
+
+#: C/guitar-tuner.vala.page:214(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. For this, "
+"we flesh out the signal handler which we defined above, "
+"<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 ""
+
+#: C/guitar-tuner.vala.page:242(p)
+msgid ""
+"The <code>Gtk.Button</code> that was clicked is passed as an argument "
+"(<code>sender</code>) to <code>on_button_clicked</code>. We can get the "
+"label of that button by using <code>get_child</code>, and then get the text "
+"from that label using <code>get_label</code>."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:243(p)
+msgid ""
+"The switch statement compares the label text to the notes that we can play, "
+"and <code>play_sound</code> is called with the frequency appropriate for "
+"that note. This plays the tone; we have a working guitar tuner!"
+msgstr ""
+
+#: C/guitar-tuner.vala.page:249(p) C/guitar-tuner.cpp.page:251(p)
+#: C/guitar-tuner.c.page:253(p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+
+#: C/guitar-tuner.vala.page:254(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
+msgstr ""
+
+#: C/guitar-tuner.vala.page:259(p)
+#, fuzzy
+#| 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>."
+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</"
+"link>"
+msgstr ""
+"Para atopar mÃis informaciÃn sobre a linguaxe de programaciÃn Vala pode "
+"visitar <link href=\"http://live.gnome.org/Vala/Tutorial\";>o titorial de "
+"Vala</link>."
+
+#: C/guitar-tuner.vala.page:268(p) C/guitar-tuner.py.page:238(p)
+#: C/guitar-tuner.cpp.page:272(p) C/guitar-tuner.c.page:266(p)
+msgid "Have the program automatically cycle through the notes."
+msgstr "Facer que o programa reproduza de forma cÃclica as notas."
+
+#: C/guitar-tuner.vala.page:271(p) C/guitar-tuner.py.page:241(p)
+#: C/guitar-tuner.cpp.page:275(p) C/guitar-tuner.c.page:269(p)
+msgid "Make the program play recordings of real guitar strings being plucked."
+msgstr ""
+"Facer que o programa reproduza gravaciÃns de cordas de guitarras que se "
+"estÃn afinando."
+
+#: C/guitar-tuner.vala.page:272(p) C/guitar-tuner.py.page:242(p)
+#: C/guitar-tuner.cpp.page:276(p) C/guitar-tuner.c.page:270(p)
+msgid ""
+"To do this, you would need to set up a more complicated GStreamer pipeline "
+"which allows you to load and play back music files. You'll have to choose "
+"<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 ""
+
+#: C/guitar-tuner.vala.page:273(p) C/guitar-tuner.py.page:243(p)
+#: C/guitar-tuner.cpp.page:277(p) C/guitar-tuner.c.page:271(p)
+msgid ""
+"You might need to connect the elements in more complicated ways too. This "
+"could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
+"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 ""
+
+#: C/guitar-tuner.vala.page:276(p) C/guitar-tuner.py.page:246(p)
+#: C/guitar-tuner.cpp.page:280(p) C/guitar-tuner.c.page:274(p)
+msgid "Automatically analyze notes that the user plays."
+msgstr "Analizar automaticamente as notas que toca o mÃsico."
+
+#: C/guitar-tuner.vala.page:277(p) C/guitar-tuner.py.page:247(p)
+#: C/guitar-tuner.cpp.page:281(p) C/guitar-tuner.c.page:275(p)
+msgid ""
+"You could connect a microphone and record sounds from it using an <link href="
+"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
+"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 ""
+
+#: C/guitar-tuner.py.page:7(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (Python)"
+msgstr "Afinador de guitarra"
+
+#: C/guitar-tuner.py.page:10(desc) C/guitar-tuner.c.page:10(desc)
+msgid ""
+"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
+"Shows off how to use the interface designer."
+msgstr ""
+"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
+"GNOME. Mostra como usar o deseÃador de interfaces."
+
+#: C/guitar-tuner.py.page:26(p) C/guitar-tuner.cpp.page:24(p)
+#: C/guitar-tuner.c.page:26(p)
+msgid ""
+"In this tutorial, we're going to make a program which plays tones that you "
+"can use to tune a guitar. You will learn how to:"
+msgstr ""
+"Neste titorial faremos un programa que reproduce tonos que pode usar para "
+"afinar unha guitarra. Aprenderà como:"
+
+#: C/guitar-tuner.py.page:28(p) C/guitar-tuner.cpp.page:26(p)
+#: C/guitar-tuner.c.page:28(p)
+msgid "Set up a basic project in Anjuta"
+msgstr "Configurar un proxecto bÃsico en Anjuta"
+
+#: C/guitar-tuner.py.page:29(p) C/guitar-tuner.cpp.page:27(p)
+#: C/guitar-tuner.c.page:29(p)
+msgid "Create a simple GUI with Anjuta's UI designer"
+msgstr "Crear unha GUI sinxela co deseÃador de UI de Anjuta"
+
+#: C/guitar-tuner.py.page:30(p) C/guitar-tuner.cpp.page:28(p)
+#: C/guitar-tuner.c.page:30(p)
+msgid "Use GStreamer to play sounds"
+msgstr "Usar GStreamer para reproducir sons."
+
+#: C/guitar-tuner.py.page:35(p)
+msgid "Basic knowledge of the Python programming language"
+msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Python"
+
+#: C/guitar-tuner.py.page:49(p)
+#, fuzzy
+#| 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."
+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."
+msgstr ""
+"Seleccione <gui>GTKmm (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#: C/guitar-tuner.py.page:52(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/guitar_tuner."
+"py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
+"DeberÃa ver algo de cÃdigo que comece coas liÃas:"
+
+#: C/guitar-tuner.py.page:61(title)
+msgid "Run the code for the first time"
+msgstr "Executar o cÃdigo por primeira vez"
+
+#: C/guitar-tuner.py.page:62(p)
+msgid ""
+"Most of the code in the file is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+
+#: C/guitar-tuner.py.page:66(p)
+msgid ""
+"The <code>import</code> lines at the top include the tell Python to load the "
+"user interface and system libraries needed."
+msgstr ""
+
+#: C/guitar-tuner.py.page:70(p)
+msgid ""
+"A class is declared that will be the main class for our application. In the "
+"<code>__init__</code> method the main window is loaded from the GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
+msgstr ""
+
+#: C/guitar-tuner.py.page:73(p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>destroy</code> method is "
+"called (and quits the app) when you close the window."
+msgstr ""
+
+#: C/guitar-tuner.py.page:76(p)
+msgid ""
+"The <code>main</code> function is run by default when you start a Python "
+"application. It just creates an instance of the main class and starts the "
+"main loop to bring up the window."
+msgstr ""
+
+#: C/guitar-tuner.py.page:81(p)
+msgid ""
+"This code is ready to be used, so you can run it by clicking "
+"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+msgstr ""
+"Este cÃdigo està listo para o seu uso, polo que pode executalo premendo "
+"<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq>."
+
+#: C/guitar-tuner.py.page:86(p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder "
+"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
+"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 ""
+
+#: C/guitar-tuner.py.page:88(p) C/guitar-tuner.cpp.page:86(p)
+#: C/guitar-tuner.c.page:92(p)
+msgid ""
+"The layout of every UI in GTK+ is organized using boxes and tables. Let's "
+"use a vertical <gui>GtkButtonBox</gui> here to assign six <gui>GtkButtons</"
+"gui>, one for each of the six guitar strings."
+msgstr ""
+
+#: C/guitar-tuner.py.page:94(p) C/guitar-tuner.cpp.page:92(p)
+#: C/guitar-tuner.c.page:98(p)
+msgid ""
+"Select a <gui>GtkButtonBox</gui> from the <gui>Container</gui> section of "
+"the <gui>Palette</gui> on the right and put it into the window. In the "
+"<gui>Properties</gui> pane, set the number of elements to 6 (for the six "
+"strings) and the orientation to vertical."
+msgstr ""
+
+#: C/guitar-tuner.py.page:98(p) C/guitar-tuner.cpp.page:96(p)
+#: C/guitar-tuner.c.page:102(p)
+msgid ""
+"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
+"first part of the box."
+msgstr ""
+
+#: C/guitar-tuner.py.page:101(p) C/guitar-tuner.c.page:105(p)
+msgid ""
+"While the button is still selected, change the <gui>Label</gui> property in "
+"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string."
+msgstr ""
+
+#: C/guitar-tuner.py.page:104(p) C/guitar-tuner.c.page:108(p)
+msgid ""
+"Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
+"look for the <code>clicked</code> signal of the button. You can use this to "
+"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 ""
+
+#: C/guitar-tuner.py.page:116(title)
+msgid "Write the signal handler"
+msgstr "Escribir o manexador de sinais"
+
+#: C/guitar-tuner.py.page:117(p) C/guitar-tuner.c.page:121(p)
+msgid ""
+"In the UI designer, you made it so that all of the buttons will call the "
+"same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
+"to add that function in the source file."
+msgstr ""
+
+#: C/guitar-tuner.py.page:118(p)
+msgid ""
+"To do this, open <file>guitar_tuner.py</file> while the user interface file "
+"is still open. Switch to the <gui>Signals</gui> tab, which you already used "
+"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 ""
+
+#: C/guitar-tuner.py.page:124(p)
+msgid ""
+"This signal handler has two arguments: the usual Python class pointer, and "
+"the <code>Gtk.Button</code> that called the function."
+msgstr ""
+
+#: C/guitar-tuner.py.page:125(p) C/guitar-tuner.c.page:131(p)
+msgid ""
+"For now, we'll leave the signal handler empty while we work on writing the "
+"code to produce sounds."
+msgstr ""
+
+#: C/guitar-tuner.py.page:130(p) C/guitar-tuner.js.page:39(p)
+#: C/guitar-tuner.c.page:136(p)
+msgid ""
+"GStreamer is GNOME's multimedia framework â you can use it for playing, "
+"recording, and processing video, audio, webcam streams and the like. Here, "
+"we'll be using it to produce single-frequency tones."
+msgstr ""
+"GStreamer à un marco de traballo multimedia de GNOME â vostede pode usalo "
+"para reproducir, gravar e procesar vÃdeo, son, fluxos de cÃmara web e "
+"semellantes. AquÃ, usarÃmolo para producir tonos dunha Ãnica frecuencia."
+
+#: C/guitar-tuner.py.page:131(p) C/guitar-tuner.js.page:40(p)
+#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:137(p)
+msgid ""
+"Conceptually, GStreamer works as follows: You create a <em>pipeline</em> "
+"containing several processing elements going from the <em>source</em> to the "
+"<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 ""
+
+#: C/guitar-tuner.py.page:140(p) C/guitar-tuner.cpp.page:129(p)
+#: C/guitar-tuner.c.page:146(p)
+msgid ""
+"In this simple example we will use a tone generator source called "
+"<code>audiotestsrc</code> and send the output to the default system sound "
+"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 ""
+
+#: C/guitar-tuner.py.page:142(p)
+msgid ""
+"Change the import line in <file>guitar_tuner.py</file>, just at the "
+"beginning to :"
+msgstr ""
+
+#: C/guitar-tuner.py.page:144(p)
+msgid ""
+"The <code>Gst</code> includes the GStreamer library. You also need to "
+"initialise GStreamer properly which is done in the <code>main()</code> "
+"method with this call added above the <code>app = GUI()</code> line:"
+msgstr ""
+
+#: C/guitar-tuner.py.page:148(p)
+#, fuzzy
+#| msgid ""
+#| "Then, copy the following function into <file>main.c</file> above the "
+#| "empty <code>on_button_clicked</code> function:"
+msgid ""
+"Then, copy the following function into the class in <file>guitar_tuner.py</"
+"file> somewhere:"
+msgstr ""
+"Despois, copie a seguinte funciÃn en <file>main.c</file> enriba da funciÃn "
+"<code>on_button_clicked</code> baleira:"
+
+#: C/guitar-tuner.py.page:164(p)
+msgid ""
+"The first three lines create source and sink GStreamer elements and a "
+"pipeline element (which will be used as a container for the other two "
+"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 ""
+
+#: C/guitar-tuner.py.page:167(p)
+msgid ""
+"The call to <code>source.set_property</code> sets the <code>freq</code> "
+"property of the source element to <code>frequency</code>, which was passed "
+"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 ""
+
+#: C/guitar-tuner.py.page:170(p)
+msgid ""
+"The next two lines call <code>pipeline.add</code>, putting the source and "
+"sink into the pipeline. The pipeline can contain multiple other GStreamer "
+"elements. In general, you can add as many elements as you like to the "
+"pipeline by calling its <code>add</code> method repeatedly."
+msgstr ""
+
+#: C/guitar-tuner.py.page:173(p)
+msgid ""
+"Next <code>pipeline.set_state</code> is used to start playback, by setting "
+"the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
+msgstr ""
+"A seguinte <code>pipeline.set_state</code> Ãsase para iniciar a reproduciÃn, "
+"estabelecendo o estado da tuberÃa a reproduciÃn (<code>Gst.State.PLAYING</"
+"code>)."
+
+#: C/guitar-tuner.py.page:180(title) C/guitar-tuner.c.page:195(title)
+msgid "Stopping playback"
+msgstr "Deter a reproduciÃn"
+
+#: C/guitar-tuner.py.page:181(p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
+"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 ""
+
+#: C/guitar-tuner.py.page:182(p)
+msgid ""
+"Now, we'll write the <code>pipeline_stop</code> function which is called by "
+"<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
+"the <code>play_sound</code> function:"
+msgstr ""
+"Agora, escriÌbese o coÌdigo da funcioÌn <code>pipeline_stop</code>, chamada por "
+"<code>GObject.timeout_add</code>. Inserte o coÌdigo seguinte <em>enriba</em> "
+"da funcioÌn <code>play_sound</code>:"
+
+#: C/guitar-tuner.py.page:188(p)
+msgid ""
+"You need to define the <code>LENGTH</code> constant inside the class, so add "
+"this code at the beginning of the main class:"
+msgstr ""
+
+#: C/guitar-tuner.py.page:193(p)
+msgid ""
+"The call to <code>pipeline.set_state</code> pauses the playback of the "
+"pipeline."
+msgstr ""
+
+#: C/guitar-tuner.py.page:197(title) C/guitar-tuner.c.page:213(title)
+msgid "Define the tones"
+msgstr "Definir os tonos"
+
+#: C/guitar-tuner.py.page:198(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. First of "
+"all, we need to know the frequencies for the six guitar strings, which are "
+"defined (at the beginning of the main class) inside a dictionary so we can "
+"easily map them to the names of the strings:"
+msgstr ""
+
+#: C/guitar-tuner.py.page:211(p) C/guitar-tuner.c.page:223(p)
+msgid ""
+"Now to flesh out the signal handler that we defined earlier, "
+"<code>on_button_clicked</code>. We could have connected every button to a "
+"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 ""
+
+#: C/guitar-tuner.py.page:219(p)
+msgid ""
+"The button that was clicked is passed as an argument (<code>button</code>) "
+"to <code>on_button_clicked</code>. We can get the label of that button by "
+"using <code>button.get_child</code>, and then get the text from that label "
+"using <code>label.get_label</code>."
+msgstr ""
+
+#: C/guitar-tuner.py.page:220(p)
+msgid ""
+"The label text is then used as a key for the dictionary and "
+"<code>play_sound</code> is called with the frequency appropriate for that "
+"note. This plays the tone; we have a working guitar tuner!"
+msgstr ""
+
+#: C/guitar-tuner.py.page:225(p)
+msgid ""
+"All of the code should now be ready to go. Click <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
+msgstr ""
+"Todo o cÃdigo deberÃa estar listo. Prema <guiseq><gui>Executar</"
+"gui><gui>Executar</gui></guiseq> para iniciar o aplicativo. GÃceo!"
+
+#: C/guitar-tuner.py.page:230(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
+msgstr ""
+"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
+"<link href=\"guitar-tuner/guitar-tuner.py\">coÌdigo de referencia</link>."
+
+#: C/guitar-tuner.js.page:6(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (JavaScript)"
+msgstr "Afinador de guitarra"
+
+#: C/guitar-tuner.js.page:16(desc)
+#, fuzzy
+#| msgid ""
+#| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
+#| "GNOME. Shows off how to use the interface designer."
+msgid ""
+"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
+msgstr ""
+"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
+"GNOME. Mostra como usar o deseÃador de interfaces."
+
+#: C/guitar-tuner.js.page:22(p)
+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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:77(title)
+msgid "Buttons for the tunes"
+msgstr ""
+
+#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:102(title)
+msgid "Making the sounds with GStreamer"
+msgstr ""
+
+#: C/guitar-tuner.js.page:30(link) C/guitar-tuner.js.page:126(title)
+msgid "Connecting buttons to playSound"
+msgstr ""
+
+#: C/guitar-tuner.js.page:31(link) C/guitar-tuner.js.page:149(title)
+msgid "The whole program"
+msgstr ""
+
+#: C/guitar-tuner.js.page:32(link) C/guitar-tuner.js.page:229(title)
+#, fuzzy
+#| msgid "Run the application"
+msgid "Running the application form Terminal"
+msgstr "Executar o aplicativo"
+
+#: C/guitar-tuner.js.page:50(p)
+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"
+msgstr ""
+
+#: C/guitar-tuner.js.page:60(p)
+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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:74(p)
+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()"
+msgstr ""
+
+#: C/guitar-tuner.js.page:98(p)
+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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:99(p)
+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 "
+"to code that something first."
+msgstr ""
+
+#: C/guitar-tuner.js.page:122(p)
+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 pause after a "
+"500ms."
+msgstr ""
+
+#: C/guitar-tuner.js.page:123(p)
+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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:146(p)
+msgid ""
+"The method of connecting button clicks to playSound with the correct tune is "
+"by using the connect method of the button widget. So we choose a button to "
+"be connected and type E.connect(\"clicked\", function(){playSound"
+"(frequencies.E);}); The connect tells that when pushing E, something should "
+"happen. The \"clicked\" tells the type of something happening to E and then "
+"in the function(){}; we the playSound happen with the correct tune that "
+"should be associated to the button."
+msgstr ""
+
+#: C/guitar-tuner.js.page:150(p)
+msgid ""
+"So this is what all the parts combined looks like. When running this code, "
+"you should be able to tune your guitar(if you have correctly calibrated "
+"speakers)."
+msgstr ""
+
+#: C/guitar-tuner.js.page:230(p)
+msgid ""
+"To run this application open Terminal, go to the folder where your "
+"application is stored and then run"
+msgstr ""
+
+#: C/guitar-tuner.js.page:230(input)
+msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
+msgstr ""
+
+#: C/guitar-tuner.js.page:235(p)
+#, fuzzy
+#| msgid ""
+#| "If you run into problems with the tutorial, compare your code with this "
+#| "<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.js\">reference code</link>."
+msgstr ""
+"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
+"<link href=\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
+
+#: C/guitar-tuner.cpp.page:8(desc)
+#, fuzzy
+#| msgid ""
+#| "Use Gtkmm and GStreamermm to build a simple guitar tuner application for "
+#| "GNOME. Shows off how to use the interface designer."
+msgid ""
+"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
+"GNOME. Shows off how to use the interface designer."
+msgstr ""
+"Usar GTKmm y GStreamer para construiÌr un sinxelo afinador de guitarra para "
+"GNOME. Mostra como usar o desenÌador de interfaces."
+
+#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:23(title)
+msgid "Guitar Tuner"
+msgstr "Afinador de guitarra"
+
+#: C/guitar-tuner.cpp.page:33(p)
+msgid "Basic knowledge of the C++ programming language"
+msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn C++"
+
+#: C/guitar-tuner.cpp.page:47(p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTKmm (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#: C/guitar-tuner.cpp.page:50(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is selected. On the "
+"next page, select <em>gstreamermm-0.10</em> from the list to include the "
+"GStreamermm library in your project."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:54(p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Prema <gui>Rematar</gui> para crear o proxecto. Abra <file>src/main.cc</"
+"file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa "
+"ver alguÌn coÌdigo que comeza coas linÌas:"
+
+#: C/guitar-tuner.cpp.page:68(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
+"and <code>iostream</code> (STL). Functions from these libraries are used in "
+"the rest of the code."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:71(p)
+msgid ""
+"The <code>main</code> function creates a new window by opening a GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:74(p)
+msgid ""
+"Afterwards it calls a few functions which set up and then run the "
+"application. The <code>kit.run</code> function starts the GTKmm main loop, "
+"which runs the user interface and starts listening for events (like clicks "
+"and key presses)."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:90(p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder "
+"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:99(p)
+msgid ""
+"While the button is still selected, change the <gui>Label</gui> property in "
+"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:103(p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
+"and the names <em>button_A</em>, etc."
+msgstr ""
+"Repita os pasos anteriores para o resto de botÃns, engadindo as 5 cordas "
+"restantes coas etiquetas <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e "
+"<em>e</em> e os nomes <em>botÃn_A</em>, etc."
+
+#: C/guitar-tuner.cpp.page:106(p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and close the file."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:113(p)
+msgid ""
+"GStreamer is GNOME's multimedia framework â you can use it for playing, "
+"recording, and processing video, audio, webcam streams and the like. Here, "
+"we'll be using it to produce single-frequency tones. GStreamermm is the C++ "
+"binding to GStreamer which we will use here."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:123(title)
+msgid "Using GStreamermm"
+msgstr "Usar GStreamermm"
+
+#: C/guitar-tuner.cpp.page:124(p)
+msgid ""
+"To use GStreamermm, it has to be initialised. We do that by adding the "
+"following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
+"line in <file>main.cc</file>:"
+msgstr ""
+"Para usar GStreamermm, dÃbese inicializar. Isto faise engadindo a seguinte "
+"liÃa de cÃdigo xunto à liÃa <code>Gtk::Main kit(argc, argv);</code> en "
+"<file>main.cc</file>:"
+
+#: C/guitar-tuner.cpp.page:126(code)
+#, no-wrap
+msgid "\tGst::init (argc, argv);"
+msgstr "\tGst::init (argc, argv);"
+
+#: C/guitar-tuner.cpp.page:127(p)
+msgid ""
+"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
+"included in <file>main.cc</file> properly."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:131(p)
+msgid ""
+"To simplify the handling of the pipeline we will define a helper class "
+"<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
+"example simple, whereas you might usually want to use a separate file:"
+msgstr ""
+"Para simplificar a xestiÃn da tuberÃa definiremos unha clase axudante "
+"<code>Sound</code>. FarÃmolo no ficheiro <file>main.cc</file> para manter "
+"este exemplo o mÃis simple posÃbel, aÃnda que normalmente deberÃa facerse "
+"nun ficheiro separado:"
+
+#: C/guitar-tuner.cpp.page:178(p)
+msgid "The code has the following purpose:"
+msgstr "O cÃdigo ten o seguinte propÃsito:"
+
+#: C/guitar-tuner.cpp.page:181(p)
+msgid ""
+"In the constructor, source and sink GStreamer elements (<code>Gst::Element</"
+"code>) are created, and a pipeline element (which will be used as a "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:184(p)
+msgid ""
+"<code>start_playing</code> sets the source element to play a particular "
+"frequency and then starts the pipeline so the sound actually starts playing. "
+"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 ""
+"<code>start_playing</code> estabelece o elemento orixe para reproducir unha "
+"frecuencia particular e logo iniciar unha tuberÃa ao son que comece a "
+"reproducirse. Xa que non queremos un son estridente por anos estabeleceremos "
+"un temporizador de 200 ms para deter a reproduciÃn chamando a "
+"<code>stop_playing</code>."
+
+#: C/guitar-tuner.cpp.page:189(p)
+msgid ""
+"In <code>stop_playing</code> which is called when the timeout has elapsed, "
+"the pipeline is stopped and as such there isn't any sound output anymore. As "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:197(title)
+msgid "Connecting the signals"
+msgstr "Conectar os sinais"
+
+#: C/guitar-tuner.cpp.page:198(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. That means "
+"that we have to connect to the signal that is fired when the user clicks the "
+"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 ""
+"Queremos reproducir o son correcto cando o usuario prema un botÃn. Isto "
+"significa que temos que conectar o sinal que se dispara cando o usuario "
+"preme o botÃn. TamÃn queremos fornecer informaciÃn da funciÃn que se chamou "
+"a reproduciÃn do tono. GTKmm fai isto moi doado a que podemos ligar de forma "
+"sinxela a informaciÃn coa biblioteca <em>sigc</em>."
+
+#: C/guitar-tuner.cpp.page:203(p)
+msgid ""
+"The function that is called when the user clicks a button can be pretty "
+"simple, as all the interesting stuff is done in the helper class now:"
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:212(p)
+msgid ""
+"It only calls the helper class we defined before to play the correct "
+"frequencies. With some more clever code we would also have been able to "
+"directly connect to the class without using the function but we will leave "
+"that to use as an exercise."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:216(p)
+msgid ""
+"The code to set up the signals should be added to the <code>main()</code> "
+"function just after the <code>builder-&gt;get_widget(\"main_window\", "
+"main_win);</code> line:"
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:228(p)
+msgid ""
+"At first we create an instance of our helper class that we want to use now "
+"and declare a variable for the button we want to connect to."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:232(p)
+msgid ""
+"Next, we receive the button object from the user interface that was created "
+"out of the user interface file. Remember that <em>button_E</em> is the name "
+"we gave to the first button."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:236(p)
+msgid ""
+"Finally we connect the <em>clicked</em> signal. This isn't fully "
+"straightforward because this is done in a fully type-safe way and we "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:243(p)
+msgid ""
+"Now that we have set up the <em>E</em> button we also need to connect the "
+"other buttons according to their frequencies: 440 for A, 587.33 for D, "
+"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 ""
+
+#: C/guitar-tuner.cpp.page:250(p)
+msgid ""
+"All of the code should now be ready to go. Click <guiseq><gui>Build</"
+"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
+"<guiseq><gui>Run</gui><gui>Run</gui></guiseq> to start the application."
+msgstr ""
+
+#: C/guitar-tuner.cpp.page:256(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
+msgstr ""
+"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
+"<link href=\"guitar-tuner/guitar-tuner.cc\">coÌdigo de referencia</link>."
+
+#: C/guitar-tuner.cpp.page:260(title)
+msgid "Further Reading"
+msgstr "Lectura complementaria"
+
+#: C/guitar-tuner.cpp.page:261(p)
+msgid ""
+"Many of the things shown above are explained in detail in the <link href="
+"\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</link> "
+"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 ""
+
+#: C/guitar-tuner.c.page:7(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (C)"
+msgstr "Afinador de guitarra"
+
+#: C/guitar-tuner.c.page:35(p)
+msgid "Basic knowledge of the C programming language"
+msgstr "ConÌecemento baÌsico da linguaxe de programacioÌn C"
+
+#: C/guitar-tuner.c.page:49(p)
+#, fuzzy
+#| msgid ""
+#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#| "<file>guitar-tuner</file> as project name and directory."
+msgid ""
+"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
+"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+"<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#: C/guitar-tuner.c.page:52(p)
+#, fuzzy
+#| msgid ""
+#| "Make sure that <gui>Configure external packages</gui> is selected. On the "
+#| "next page, select <em>gstreamer-0.10</em> from the list to include the "
+#| "GStreamer library in your project."
+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."
+msgstr ""
+"AsegÃrese que <gui>Configurar paquetes externos</gui> està seleccionada. Na "
+"seguinte pÃxina, seleccione <em>gstreamermm-0.10</em> da lista para incluÃr "
+"a biblioteca GStreamer no seu proxecto."
+
+#: C/guitar-tuner.c.page:66(p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+
+#: C/guitar-tuner.c.page:73(p)
+msgid ""
+"The <code>create_window</code> function creates a new window by opening a "
+"GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
+"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 ""
+
+#: C/guitar-tuner.c.page:122(p)
+msgid ""
+"To do this, open <file>main.c</file> while the user interface file is still "
+"open. Switch to the <gui>Signals</gui> tab, which you already used to set "
+"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 ""
+
+#: C/guitar-tuner.c.page:130(p)
+msgid ""
+"This signal handler has two arguments: a pointer to the <code>GtkWidget</"
+"code> that called the function (in our case, always a <code>GtkButton</"
+"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 ""
+
+#: C/guitar-tuner.c.page:148(p)
+msgid ""
+"Insert the following line into <file>main.c</file>, just below the <code><!"
+"[CDATA[#include <gtk/gtk.h>]]></code> line:"
+msgstr ""
+"Inserte a seguinte lia en <file>main.c</file>, xusto a continuaciÃn da liÃa "
+"<code><![CDATA[#include <gtk/gtk.h>]]></code>:"
+
+#: C/guitar-tuner.c.page:150(p)
+msgid ""
+"This includes the GStreamer library. You also need to add a line to "
+"initialize GStreamer; put the following code on the line above the "
+"<code>gtk_init</code> call in the <code>main</code> function:"
+msgstr ""
+"Isto inclÃe a biblioteca GSTreamer. TamÃn precisa unha liÃa para inicializar "
+"GStreamer; poÃa a seguinte liÃa de cÃdigo antes da chamada <code>gtk_init</"
+"code> na funciÃn <code>main</code>:"
+
+#: C/guitar-tuner.c.page:152(p)
+msgid ""
+"Then, copy the following function into <file>main.c</file> above the empty "
+"<code>on_button_clicked</code> function:"
+msgstr ""
+"Despois, copie a seguinte funciÃn en <file>main.c</file> enriba da funciÃn "
+"<code>on_button_clicked</code> baleira:"
+
+#: C/guitar-tuner.c.page:179(p)
+msgid ""
+"The first five lines create source and sink GStreamer elements "
+"(<code>GstElement</code>), and a pipeline element (which will be used as a "
+"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 ""
+
+#: C/guitar-tuner.c.page:182(p)
+msgid ""
+"The call to <code>g_object_set</code> sets the <code>freq</code> property of "
+"the source element to <code>frequency</code>, which is passed as an argument "
+"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 ""
+"A chamada a <code>g_object_set</code> estabelecer a propiedade <code>freq</"
+"code> do elemento orixe a <code>frequency</code>, a cal se pasa como un "
+"argumento à funciÃn <code>play_sound</code>. Isto sà à a frecuencia da nota "
+"en Hertz, algunhas das frecuencias mÃis Ãtiles definiranse mÃis tarde."
+
+#: C/guitar-tuner.c.page:185(p)
+msgid ""
+"<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
+"The pipeline is a <code>GstBin</code>, which is just an element that can "
+"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 ""
+
+#: C/guitar-tuner.c.page:188(p)
+msgid ""
+"Next, <code>gst_element_link</code> is used to connect the elements "
+"together, so the output of <code>source</code> (a tone) goes into the input "
+"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 ""
+
+#: C/guitar-tuner.c.page:196(p)
 msgid ""
-"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-"<file>image-viewer</file> as project name and directory."
+"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 ""
-"Seleccione <gui>JavaScript xeneÌrico</gui> desde a lapela <gui>JS</gui>, "
-"prema <gui>Adiante</gui> e complete os seus detalles nas seguintes paÌxinas. "
-"Use <file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.js.page:54(p)
+#: C/guitar-tuner.c.page:197(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. It contains very basic example code."
+"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 ""
-"Prema <gui>Aplicar</gui> e o proxecto seraÌ creado. Abra <file>src/main.js</"
-"file> desde a lapela <gui>Proxecto</gui> ou <gui>Ficheiros</gui>. ConteÌn "
-"coÌdigo de exemplo moi baÌsico."
+"Agora, escrÃbese o cÃdigo da funciÃn <code>pipeline_stop</code>, chamada por "
+"<code>g_timeout_add</code>. Inserte o cÃdigo seguinte <em>enriba</em> da "
+"funciÃn <code>play_sound</code>:"
 
-#: C/image-viewer.js.page:61(title)
-msgid "JavaScript basics: Hello World"
-msgstr "Primeiros pasos en JavaScript: Ola mundo"
+#: C/guitar-tuner.c.page:209(p)
+msgid ""
+"The call to <code>gst_element_set_state</code> pauses the playback of the "
+"pipeline and <code>g_object_unref</code> unreferences the pipeline, "
+"destroying it and freeing its memory."
+msgstr ""
+"A chamada <code>gst_element_set_state</code> pausa a reproduciÃn da tuberÃa "
+"e <code>g_object_unref</code> desreferencia a tuberÃa, destrÃea e libera a "
+"sÃa memoria."
 
-#: C/image-viewer.js.page:62(p)
+#: C/guitar-tuner.c.page:214(p)
 msgid ""
-"Before we start writing the image viewer, let's find out more about the way "
-"JavaScript is used in GNOME. Of course, your very first contact with any "
-"programming language should be the Hello World program which can already be "
-"found in <file>main.js</file>:"
+"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 ""
-"Antes de comezar a escribir o visor de imaxes faremos unha introducioÌn aÌ "
-"forma na que JavaScript se usa en GNOME. Por suposto, o primeiro contacto "
-"con calquera linguaxe de programacioÌn deberiÌa ser un programa Ola Mundo que "
-"pode atopar <file>main.js</file>:"
+"QuÃrese reproducir o son correcto cando un usuario preme un botÃn. En "
+"primeiro lugar, precÃsase coÃecer as frecuencias das seis cordas da "
+"guitarra, que estÃn definidas (ao principio de <file>main.c</file>) da "
+"seguinte maneira:"
 
-#: C/image-viewer.js.page:63(code)
-#, no-wrap
-msgid "print (\"Hello world!\");"
-msgstr "print (\"Ola mundo!\");"
+#: C/guitar-tuner.c.page:246(p)
+msgid ""
+"A pointer to the <code>GtkButton</code> that was clicked is passed as an "
+"argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
+"the label of that button by using <code>gtk_bin_get_child</code>, and then "
+"get the text from that label using <code>gtk_label_get_label</code>."
+msgstr ""
 
-#: C/image-viewer.js.page:64(p)
+#: C/guitar-tuner.c.page:247(p)
 msgid ""
-"This should look quite natural if you're familiar with almost any other "
-"programming language. The function <code>print</code> is called with the "
-"argument <code>\"Hello world!\"</code>, which will be printed on the screen. "
-"Note that each line of code ends with a semicolon."
+"The label text is then compared to the notes that we have using "
+"<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
+"frequency appropriate for that note. This plays the tone; we have a working "
+"guitar tuner!"
 msgstr ""
-"Isto deberiÌa ser natural se estaÌ familiarizado con calquera outra linguaxe "
-"de programacioÌn. A funcioÌn <code>printi</code> chaÌmase co argumento "
-"<code>ÂOla MundoÂ</code>, que se imprimiraÌ en pantalla. TenÌa en conta que "
-"cada linÌa de coÌdigo remata con un punto e coma."
 
-#: C/image-viewer.js.page:68(title)
-msgid "Classes in JavaScript"
-msgstr "Clases en JavaScript"
+#: C/guitar-tuner.c.page:258(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+msgstr ""
+"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
+"<link href=\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
 
-#: C/image-viewer.js.page:69(p)
-msgid "This is the standard way to define a class in JavaScript:"
-msgstr "Esta eÌ a forma estaÌndar de definir unha clase en JavaScript:"
+#: C/GtkApplicationWindow.vala.page:7(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "ApplicationWindow (Vala)"
+msgstr "Un primeiro aplicativo en GTK"
 
-#: C/image-viewer.js.page:92(p)
-msgid ""
-"This defines a class called <code>MyClass</code>. Let's go through each part "
-"of the class definition:"
+#: C/GtkApplicationWindow.vala.page:17(desc)
+#: C/GtkApplicationWindow.py.page:22(desc)
+#: C/GtkApplicationWindow.js.page:17(desc)
+msgid "GtkWindow subclass with GtkApplication support"
 msgstr ""
-"Isto define unha clase chamada <code>MyClass</code>. Vexa cada unha das "
-"partes da definiciÃn da clase:"
 
-#: C/image-viewer.js.page:95(p)
-msgid ""
-"<code>function MyClass</code> is the constructor of the class â its name "
-"must match the class's name. You can access any member of the class by using "
-"the <code>this</code> object; here, the constructor calls the class's "
-"<code>_init</code> method."
+#: C/GtkApplicationWindow.vala.page:20(title)
+#: C/GtkApplicationWindow.py.page:25(title)
+#: C/GtkApplicationWindow.js.page:20(title)
+#: C/GtkApplicationWindow.c.page:20(title)
+msgid "ApplicationWindow"
 msgstr ""
 
-#: C/image-viewer.js.page:98(p)
-msgid ""
-"The <code>MyClass.prototype</code> block is where you define the "
-"<em>structure</em> of the class. Each class is made up of methods "
-"(functions) and fields (variables); there are three methods and two fields "
-"in this example."
+#: C/GtkApplicationWindow.vala.page:22(p) C/GtkApplicationWindow.py.page:27(p)
+msgid "The simplest GtkApplication Window which can support Menus."
 msgstr ""
 
-#: C/image-viewer.js.page:101(p)
-msgid ""
-"The first method defined here is called <code>_init</code>, and we specify "
-"that it is a function with no arguments:"
+#: C/GtkApplicationWindow.py.page:7(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "ApplicationWindow (Python)"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/GtkApplicationWindow.py.page:38(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "Useful methods for a Gtk.ApplicationWindow widget"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/GtkApplicationWindow.js.page:7(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "ApplicationWindow (JavaScript)"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/GtkApplicationWindow.js.page:22(p)
+msgid "A simple GtkApplicationWindow which can support Menus."
 msgstr ""
 
-#: C/image-viewer.js.page:102(code)
-#, no-wrap
-msgid "_init: function ()"
-msgstr "_init: function ()"
+#: C/GtkApplicationWindow.c.page:7(title)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "ApplicationWindow (C)"
+msgstr "Un primeiro aplicativo en GTK"
 
-#: C/image-viewer.js.page:103(p)
-msgid ""
-"We write the function inside some curly braces. Two fields are defined here, "
-"<code>propertyA</code> and <code>propertyB</code>. The first is set to a "
-"string and the second is set to an integer (10). The function doesn't return "
-"any value."
+#: C/GtkApplicationWindow.c.page:17(desc)
+msgid "A toplevel window which can contain other widgets, and support GMenu"
 msgstr ""
 
-#: C/image-viewer.js.page:106(p)
-msgid ""
-"The next method is called <code>aMethod</code> and has two arguments, which "
-"it prints out when you call it. The final method is <code>dumpProperties</"
-"code>, and prints the fields <code>propertyA</code> and <code>propertyB</"
-"code>."
+#: C/GtkApplicationWindow.c.page:22(p)
+msgid "A minimal GtkApplication with a GtkApplicationWindow"
 msgstr ""
 
-#: C/image-viewer.js.page:109(p)
-msgid ""
-"Note how the class definition (prototype) is arranged; each function "
-"definition is separated by a comma."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/grid.vala.page:23(None) C/grid.js.page:25(None) C/grid.c.page:22(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+
+#: C/grid.vala.page:7(title)
+msgid "Grid (Vala)"
 msgstr ""
-"TeÃa en conta como se ordena a definiciÃn da clase (prototipo); cada "
-"definiciÃn de funciÃn sepÃrase con unha coma."
 
-#: C/image-viewer.js.page:113(p)
-msgid "Now that MyClass has been defined, we can play with it:"
+#: C/grid.vala.page:19(desc) C/grid.py.page:24(desc) C/grid.js.page:21(desc)
+#: C/grid.c.page:17(desc)
+msgid "Pack widgets in rows and columns"
 msgstr ""
 
-#: C/image-viewer.js.page:119(p)
-msgid ""
-"This code creates a new instance of the class called <code>o</code>, runs "
-"<code>aMethod</code>, changes <code>propertyA</code> to a different string, "
-"and then calls <code>dumpProperties</code> (which outputs the fields)."
+#: C/grid.vala.page:22(title)
+msgid "Grid widget"
 msgstr ""
 
-#: C/image-viewer.js.page:120(p)
-msgid ""
-"Save the code in the <file>main.js</file> and then run it by using "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> from the menu or using the "
-"toolbar."
+#: C/grid.vala.page:24(p) C/grid.c.page:23(p)
+msgid "A button widget connected to a progress bar."
 msgstr ""
 
-#: C/image-viewer.js.page:126(p)
-msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/grid.py.page:29(None)
+#, fuzzy
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgid "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
+msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+
+#: C/grid.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Grid (Python)"
+msgstr "Python"
+
+#: C/grid.py.page:30(p)
+msgid "Some labels in a grid."
 msgstr ""
 
-#: C/image-viewer.js.page:142(p)
-msgid ""
-"<code>Gtk.init</code> initializes the Gtk library; this statement is "
-"mandatory for all Gtk programs."
+#: C/grid.py.page:40(title)
+msgid "Useful methods for a Grid widget"
 msgstr ""
 
-#: C/image-viewer.js.page:145(p)
+#: C/grid.py.page:43(p)
 msgid ""
-"The next line creates the main window by creating a new <code>Gtk.Window</"
-"code> object. You can pass several properties to the window's constructor by "
-"using the syntax <code>{property: value, property: value, ...}</code>. In "
-"this case we are setting the title of the window."
+"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 ""
 
-#: C/image-viewer.js.page:146(p)
+#: C/grid.py.page:44(p)
 msgid ""
-"The next line explicitly shows the window. In Gtk, every widget is hidden by "
-"default."
+"<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> of <code>Gtk.PositionType.RIGHT</code>, a column is "
+"inserted."
 msgstr ""
 
-#: C/image-viewer.js.page:147(p)
+#: C/grid.py.page:45(p)
 msgid ""
-"Finally, <code>Gtk.main</code> runs the main loop â in other words, it "
-"executes the program. The main loop listens for events (signals) from the "
-"user interface and then calls a signal handler which will do something "
-"useful. We'll learn more about signals shortly."
+"<code>set_row_homogeneous(True)</code> and <code>set_column_homogeneous(True)"
+"</code> ensure that (respectively) every row or every column has the same "
+"width or height."
 msgstr ""
 
-#: C/image-viewer.js.page:150(p)
+#: C/grid.py.page:46(p)
 msgid ""
-"Save the code in <file>main.js</file> and run it. You will notice that the "
-"application does not quit when you close the window. This is because we "
-"haven't set up a signal handler to deal with the window's <code>destroy</"
-"code> (close) signal yet. We'll do this shortly, but for now you can just "
-"hit <keyseq><key>Ctrl</key><key>C</key></keyseq> in the terminal window to "
-"quit the program."
+"<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 ""
 
-#: C/image-viewer.js.page:155(title)
-msgid "Adding classes"
-msgstr "Engadir clases"
+#: C/grid.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Grid (JavaScript)"
+msgstr "JavaScript"
 
-#: C/image-viewer.js.page:156(p)
+#: C/grid.js.page:26(p)
 msgid ""
-"The proper way of doing Gtk programming is by using classes. Let's rewrite "
-"the simple code you just wrote using classes:"
+"A button widget connected to a progress bar, inside of a grid which handles "
+"the layout."
 msgstr ""
 
-#. FIXME: Throws an error, "JS ERROR: !!!   Unhandled type int32 releasing GArgument" on Ubuntu 10.10
-#: C/image-viewer.js.page:175(p)
-msgid ""
-"Notice that the program is the same; we just moved the window creation code "
-"to our own <code>ImageViewer</code> class. The class's constructor calls the "
-"<code>_init</code> method, which creates and shows the window. We then "
-"create an instance of the class before running the main loop (<code>Gtk."
-"main</code>)."
+#: C/grid.c.page:7(title)
+msgid "Grid (C)"
 msgstr ""
 
-#: C/image-viewer.js.page:176(p)
-msgid ""
-"This code is modular and can be split into multiple files easily. This makes "
-"it cleaner and easier to read."
+#: C/grid.c.page:34(link) C/buttonbox.py.page:49(link)
+#: C/button.py.page:52(link) C/button.c.page:35(link)
+#, fuzzy
+#| msgid "Button"
+msgid "GtkButton"
+msgstr "BotÃn"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/gmenu.vala.page:27(None)
+#, fuzzy
+#| msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+msgid "@@image: 'media/gmenu.vala.png'; md5=7a9f381fc3ed5bf8d1c50d2acb095400"
+msgstr "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+
+#: C/gmenu.vala.page:7(title)
+msgid "GMenu (Vala)"
 msgstr ""
 
-#: C/image-viewer.js.page:189(p)
-msgid "The syntax for connecting any signal to a function is:"
-msgstr "A sintaxe para conectar calquera sinal a unha funciÃn Ã:"
+#: C/gmenu.vala.page:13(name) C/aboutdialog.vala.page:14(name)
+msgid "Ryan Lortie"
+msgstr ""
 
-#: C/image-viewer.js.page:192(p)
-msgid ""
-"You can find signal definitions for any object in the <link href=\"http://";
-"library.gnome.org/devel/gtk/stable/ch01.html\">GTK class reference</link>."
+#: C/gmenu.vala.page:14(email) C/aboutdialog.vala.page:15(email)
+msgid "desrt desrt ca"
+msgstr ""
+
+#: C/gmenu.vala.page:23(desc) C/gmenu.js.page:17(desc) C/gmenu.c.page:17(desc)
+msgid "A simple implementation of GMenuModel"
 msgstr ""
-"Pode atopar as definiciÃns de sinais para calquera proxecto na <link href="
-"\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>clase GTK de "
-"referencia</link>."
 
-#: C/image-viewer.js.page:195(p)
+#: C/gmenu.vala.page:29(em)
+msgid "You need to be running Gtk+-3.4 or later for this to work"
+msgstr ""
+
+#: C/gmenu.vala.page:32(p)
 msgid ""
-"You can simplify the code by making use of an inline function definition:"
+"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."
+msgstr ""
+
+#: C/gmenu.vala.page:34(p) C/gmenu.py.page:28(p) C/gmenu.js.page:22(p)
+#: C/gmenu.c.page:22(p)
+msgid "A GtkApplication with a simple GMenu and SimpleActions"
+msgstr ""
+
+#: C/gmenu.vala.page:43(link)
+msgid "Menu"
+msgstr ""
+
+#: C/gmenu.vala.page:44(link)
+msgid "append"
+msgstr ""
+
+#: C/gmenu.vala.page:45(link)
+msgid "SimpleAction"
+msgstr "SimpleAction"
+
+#: C/gmenu.vala.page:46(link)
+msgid "add_action"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/gmenu.py.page:27(None)
+#, fuzzy
+#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+msgid "@@image: 'media/gmenu.py.png'; md5=52c68b34d5d566f37e9f803dedb6353a"
+msgstr "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+
+#: C/gmenu.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "GMenu (Python)"
+msgstr "Python"
+
+#: C/gmenu.py.page:23(desc)
+msgid "A simple implementation of GMenu"
+msgstr ""
+
+#: C/gmenu.py.page:29(em) C/gmenu.c.page:23(em) C/aboutdialog.vala.page:31(em)
+#: C/aboutdialog.c.page:26(em)
+msgid "You need to be running Gtk3.4 or later for this to work"
 msgstr ""
-"Vostede pode simplificar o cÃdigo facendo uso da definiciÃn en liÃa de "
-"funciÃns:"
 
-#: C/image-viewer.js.page:203(title)
-msgid "Closing the window"
-msgstr "Pechar a xanela"
+#: C/gmenu.py.page:40(title)
+msgid "Useful methods for a GSimpleAction and a GMenu"
+msgstr ""
 
-#: C/image-viewer.js.page:204(p)
-msgid ""
-"When you close a Gtk window it's not really closed, it's hidden. This allows "
-"you to keep the window around (which is useful if you want to ask the user "
-"if they really want to close the window, for example)."
+#: C/gmenu.py.page:42(p)
+msgid "Useful methods for a GSimpleAction:"
 msgstr ""
-"Ao pechar unha xanela Gtk realmente non se pecha, agÃchase. Isto permÃtelle "
-"manter unha xanela (Ãtil se quere preguntarlle ao usuario se realmente "
-"desexa pechar a xanela, por exemplo)."
 
-#: C/image-viewer.js.page:205(p)
+#: C/gmenu.py.page:44(p)
 msgid ""
-"In our case, we really do just want to close the window. The simplest way of "
-"doing this is by connecting the <code>hide</code> signal of the GtkWindow "
-"object to a function that closes the application. Go back to the <file>image-"
-"viewer.js</file> file and add the following code to the <code>_init</code> "
-"method, on the line above <code>this.window.show</code>:"
+"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 ""
-"No noso caso, queremos pechar a xanela. A forma mÃis doada de facer isto à "
-"conectar o sinal <code>hide</code> do obxecto GtkWindow a unha funciÃn que "
-"peche o aplicativo. Vaia de novo ao ficheiro <file>image-viewer.js</file> e "
-"engada o seguinte cÃdigo ao mÃtodo <code>_init</code>, na liÃa superior a "
-"<code>this.window.show</code>."
 
-#: C/image-viewer.js.page:206(code)
+#: C/gmenu.py.page:45(code)
 #, no-wrap
-msgid "this.window.connect (\"hide\", Gtk.main_quit);"
-msgstr "this.window.connect (\"hide\", Gtk.main_quit);"
-
-#: C/image-viewer.js.page:207(p)
 msgid ""
-"This connects the <code>hide</code> signal of the window to Gtk's "
-"<code>main_quit</code> function, which ends the execution of the Gtk main "
-"loop. Once the main loop finishes, the function <code>Gtk.main</code> "
-"returns. Our program would continue to run any code written after the "
-"<code>Gtk.main ();</code> line, but since we don't have any code after that "
-"point, the program just ends."
+"\n"
+"action = Gio.SimpleAction.new(\"name\", parameter_type)"
 msgstr ""
 
-#: C/image-viewer.js.page:217(p)
+#: C/gmenu.py.page:47(p)
 msgid ""
-"Let's add the box and widgets to the window. Insert the following code into "
-"the <code>_init</code> method, immediately above the <code>this.window.show</"
-"code> line:"
+"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 ""
 
-#: C/image-viewer.js.page:221(p)
+#: C/gmenu.py.page:48(code)
+#, no-wrap
 msgid ""
-"The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
-"and sets two of its properties: the <code>orientation</code> is set to "
-"vertical (so widgets are arranged in a column), and the <code>spacing</code> "
-"between the widgets is set to 0 pixels. The next line then adds the newly-"
-"created <code>Gtk.Box</code> to the window."
+"\n"
+"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
 msgstr ""
 
-#: C/image-viewer.js.page:227(p)
+#: C/gmenu.py.page:50(p)
 msgid ""
-"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
-"directly below the <code>this.window.add (main_box)</code> line:"
+"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";
+"\">here</link>."
 msgstr ""
 
-#: C/image-viewer.js.page:231(p)
+#: C/gmenu.py.page:51(p)
 msgid ""
-"The first line creates a new <code>Gtk.Image</code> called <code>image</"
-"code>, which will be used to display an image file. Then, the image widget "
-"is added (<em>packed</em>) into the <code>main_box</code> container using "
-"<code>Gtk.Box</code>'s <link href=\"http://library.gnome.org/devel/gtk/";
-"stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> "
-"method."
+"<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 ""
 
-#: C/image-viewer.js.page:232(p)
+#: C/gmenu.py.page:52(p)
 msgid ""
-"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
-"the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
-"code> should grow larger when the new widget is added (<code>expand</code>); "
-"whether the new widget should take up all of the extra space created if the "
-"<code>Gtk.Box</code> gets bigger (<code>fill</code>); and how much space "
-"there should be, in pixels, between the widget and its neighbors inside the "
-"<code>Gtk.Box</code> (<code>padding</code>)."
+"<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 ""
 
-#: C/image-viewer.js.page:239(p)
-msgid ""
-"These lines are similar to the first two, but this time they create a "
-"<code>Gtk.Button</code> and add it to <code>main_box</code>. Notice that we "
-"are setting the <code>expand</code> argument (the second one) to "
-"<code>false</code> here, whereas it was set to <code>true</code> for the "
-"<code>Gtk.Image</code>. This will cause the image to take up all available "
-"space and the button to take only the space it needs. When you maximize the "
-"window, the button size will remain the same, but the image size will "
-"increase, taking up all of the rest of the window."
+#: C/gmenu.py.page:55(p)
+msgid "Useful methods for a GMenu:"
 msgstr ""
 
-#: C/image-viewer.js.page:240(p)
+#: C/gmenu.py.page:57(p)
 msgid ""
-"Finally, we must change the <code>this.window.show ();</code> line to read:"
+"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 ""
 
-#: C/image-viewer.js.page:241(code)
-#, no-wrap
-msgid "this.window.show_all ();"
-msgstr "this.window.show_all ();"
+#: C/gmenu.py.page:58(p)
+msgid ""
+"To append or prepend an item in the menu use respectively <code>append"
+"(label, detailed_action)</code> and <code>prepend(label, detailed_action)</"
+"code>."
+msgstr ""
 
-#: C/image-viewer.js.page:242(p)
+#: C/gmenu.py.page:59(p)
 msgid ""
-"This will show the child of the Gtk window, and all of its children, and its "
-"children's children, and so on. (Remember that Gtk widgets are all hidden by "
-"default.)"
+"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 ""
 
-#: C/image-viewer.js.page:247(p)
+#: C/gmenu.py.page:60(code)
+#, no-wrap
 msgid ""
-"When the user clicks on the <gui>Open</gui> button, a dialog should appear "
-"so that the user can choose a picture. Once chosen, the picture should be "
-"loaded and shown in the image widget."
+"\n"
+"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
+"menu.append_item(about)"
 msgstr ""
 
-#: C/image-viewer.js.page:248(p)
+#: C/gmenu.py.page:64(p)
 msgid ""
-"The first step is to connect the <code>clicked</code> signal of the button "
-"to a signal handler function, which we call <code>_openClicked</code>. Put "
-"this code immediately after the <code>var open_button = new Gtk.Button</"
-"code> line where the button was created:"
+"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 ""
 
-#: C/image-viewer.js.page:251(p)
+#: C/gmenu.py.page:65(p)
 msgid ""
-"We are using the <em>Lang</em> JavaScript helper here. It allows us to "
-"connect a <em>class method</em> to the signal, rather than a plain function "
-"(without a class) which we had used before for the window's <code>hide</"
-"code> signal. Don't worry about this for now, it's just a technical detail. "
-"For it to work, you also need to put the following line at the top of the "
-"file:"
+"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 ""
 
-#: C/image-viewer.js.page:252(code)
-#, no-wrap
-msgid "const Lang = imports.lang;"
-msgstr "const Lang = imports.lang;"
+#: C/gmenu.py.page:66(p)
+msgid "To remove an item from the menu, use <code>remove(postion)</code>."
+msgstr ""
 
-#: C/image-viewer.js.page:257(p)
-msgid ""
-"Now we can create the <code>_openClicked()</code> method. Insert the "
-"following into the <code>ImageViewer.prototype</code> code block, after the "
-"<code>_init</code> method (and not forgetting the comma):"
+#: C/gmenu.py.page:67(p)
+msgid "To set a label for the menu, use <code>set_label(label)</code>."
 msgstr ""
 
-#: C/image-viewer.js.page:280(p)
-msgid ""
-"The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
-"dialog, which the user can use to choose files. We set four properties: the "
-"title of the dialog; the action (type) of the dialog (it's an \"open\" "
-"dialog, but we could have used <code>SAVE</code> if the intention was to "
-"save a file; <code>transient_for</code>, which sets the parent window of the "
-"dialog; and <code>modal</code> which, if set to <code>true</code>, prevents "
-"the user from clicking on another area of the application until the dialog "
-"is closed."
+#: C/gmenu.py.page:78(link)
+msgid "GVariantType"
 msgstr ""
 
-#: C/image-viewer.js.page:293(p)
-msgid ""
-"<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
-"will wait for the user to choose an image; when they do, <code>chooser.run</"
-"code> will return the value <output>1</output> (it would return <output>0</"
-"output> if the user clicked <gui>Cancel</gui>). The <code>if</code> "
-"statement tests for this."
+#: C/gmenu.py.page:79(link)
+msgid "GVariant"
 msgstr ""
 
-#: C/image-viewer.js.page:306(p)
-msgid ""
-"All of the code you need should now be in place, so try running the code. "
-"That should be it; a fully-functioning image viewer (and a whistlestop tour "
-"of JavaScript and Gtk) in not much time at all!"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/gmenu.js.page:21(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/gmenu.js.png'; md5=16b8bee122197771ec8498dac42f196b"
 msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 
-#: C/image-viewer.js.page:311(p)
-msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+#: C/gmenu.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "GMenu (JavaScript)"
+msgstr "JavaScript"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/gmenu.c.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+msgid "@@image: 'media/gmenu.c.png'; md5=f305fc3cae8d16d72b734ee53b559e33"
+msgstr "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+
+#: C/gmenu.c.page:7(title)
+msgid "GMenu (C)"
 msgstr ""
-"Se ten problemas con este titorial, compare o seu coÌdigo con este <link href="
-"\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
 
-#: C/image-viewer.cpp.page:8(desc)
-msgid "A little bit more than a simple \"Hello world\" GTKmm application."
-msgstr "Un pouco maÌis que un simple aplicativo Gtkmm ÂOla mundoÂ."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/getting-ready.page:39(None)
+msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
 
-#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:21(title)
-msgid "Image Viewer"
-msgstr "Visor de imaxes"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/getting-ready.page:44(None)
+msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+msgstr "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
 
-#: C/image-viewer.cpp.page:26(p)
-msgid "Some basic concepts of C++/GObject programming"
-msgstr "AlguÌns conceptos baÌsicos de programacioÌn de C++/GObject"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/getting-ready.page:49(None)
+msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+msgstr "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
 
-#: C/image-viewer.cpp.page:27(p)
-msgid "How to write a Gtk application in C++"
-msgstr "CÃmo escribir un aplicativo GTK en C++"
+#: C/getting-ready.page:6(title)
+msgid "Install GNOME development tools"
+msgstr "Instalar as ferramentas de desenvolvemento de GNOME"
 
-#: C/image-viewer.cpp.page:41(p)
+#: C/getting-ready.page:16(title)
+msgid "Getting ready for GNOME development"
+msgstr "PrepÃrese para desenvolver en GNOME"
+
+#: C/getting-ready.page:19(title)
+msgid "Install the required tools"
+msgstr "Instalar as ferramentas necesarias"
+
+#: C/getting-ready.page:20(p)
 msgid ""
-"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-"<file>image-viewer</file> as project name and directory."
+"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 ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>image-viewer</file> como nome do proxecto e cartafol."
+"Antes de comezar a escribir cÃdigo debe instalar as ferramentas requiridas "
+"para o desenvolvemento de GNOME no seu computador. Isto non deberÃa levar "
+"mÃis de 10 minutos."
 
-#: C/image-viewer.cpp.page:44(p)
+#: C/getting-ready.page:25(title)
+msgid "Automatic installation"
+msgstr "InstalaciÃn automÃtica"
+
+#: C/getting-ready.page:26(p)
+#, fuzzy
+#| msgid ""
+#| "On an up-to-date distribution you should be able to simply install the "
+#| "required packages by clicking on <link href=\"gnome-devtools.catalog"
+#| "\">Install now</link>."
 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.cpp\">Guitar-Tuner</link> tutorial if you want to learn how "
-"to use the interface builder."
+"On an up-to-date distribution you should be able to simply install the "
+"required packages by clicking on <link href=\"media/gnome-devtools.catalog"
+"\">Install now</link>."
 msgstr ""
-"AseguÌrese que <gui>Usar GtkBuilder para a interface de usuario</gui> estaÌ "
-"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
-"titorial <link xref=\"guitar-tuner.cpp\">Guitar-Tuner</link> se quere "
-"aprender como usar o construtor de interface."
+"Nunha distribuciÃn anovada deberÃa poder instalar de forma sinxela os "
+"paquetes requiridos premendo en <link href=\"gnome-devtools.catalog"
+"\">Instalar agora</link>."
 
-#: C/image-viewer.cpp.page:49(p)
+#: C/getting-ready.page:31(title)
+msgid "Manual installation"
+msgstr "InstalaciÃn manual"
+
+#: C/getting-ready.page:32(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. You should see some code which starts with the lines:"
+"If you prefer manual installation you can find the instructions for the "
+"various distributions in the <link href=\"http://live.gnome.org/";
+"DeveloperTools/Installation\">GNOME wiki</link>. Click on the image to go "
+"directly to the installation page for your distribution:"
 msgstr ""
-"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.cc</"
-"file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa "
-"ver alguÌn coÌdigo que comeza coas linÌas:"
+"Se prefire a instalaciÃn manual pode atopar as instruciÃns para varias "
+"distribuciÃns no <link href=\"http://live.gnome.org/DeveloperTools/";
+"Installation\">wiki de GNOME</link>. Prema sobre a imaxe para ir diretamente "
+"Ã pÃxina de instalaciÃn da sÃa distribuciÃn:"
+
+#: C/getting-ready.page:39(media)
+msgid "Ubuntu"
+msgstr "Ubuntu"
+
+#: C/getting-ready.page:44(media)
+msgid "Fedora"
+msgstr "Fedora"
+
+#: C/getting-ready.page:49(media)
+msgid "OpenSuSE"
+msgstr "OpenSuSE"
+
+#: C/getting-ready.page:52(link)
+msgid "Others"
+msgstr "Otras"
+
+#: C/getting-ready.page:59(title)
+msgid "Required versions"
+msgstr "Versiones necesarias"
+
+#: C/getting-ready.page:60(p)
+msgid ""
+"The guides assume that you have at least the following versions of the tools "
+"installed:"
+msgstr ""
+"As guÃas asumen que ten instaladas, cando menos, as seguintes versiÃns das "
+"ferramentas."
+
+#: C/getting-ready.page:63(p)
+msgid "Anjuta - 3.0"
+msgstr "Anjuta - 3.0"
+
+#: C/getting-ready.page:64(p)
+msgid "Devhelp - 3.0"
+msgstr "Devhelp - 3.0"
+
+#: C/getting-ready.page:65(p)
+msgid "Glade - 3.10"
+msgstr "Glade - 3.10"
 
-#: C/image-viewer.cpp.page:61(p) C/guitar-tuner.cpp.page:64(p)
+#: C/getting-ready.page:67(p)
 msgid ""
-"This is a very basic C++ code setting up GTKmm. More details are given "
-"below; skip this list if you understand the basics:"
+"Of course, any newer version will also work. Now, we wish you a lot of fun "
+"with the <link xref=\"index\">Demos</link>."
 msgstr ""
+"Por suposto, calquera versiÃn mÃis moderna tamÃn funcionarÃ. Agora desexamos "
+"que goce coas <link xref=\"index\">demostraciÃns</link>."
 
-#: C/image-viewer.cpp.page:64(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/fontchooserwidget.py.page:23(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 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> (C++-STL) libraries. Functions from these "
-"libraries are used in the rest of the code."
+"@@image: 'media/fontchooserwidget.png'; md5=9161245e307b432ae1313e9a9941edae"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+
+#: C/fontchooserwidget.py.page:7(title)
+msgid "FontChooserWidget (Python)"
 msgstr ""
 
-#: C/image-viewer.cpp.page:67(p)
-msgid ""
-"The <code>main</code> function creates a new (empty) window and sets the "
-"window title."
+#: C/fontchooserwidget.py.page:18(desc)
+msgid "A widget to choose a font"
 msgstr ""
-"A funciÃn <code>main</code> crea unha xanela nova (e baleira) e estabelece o "
-"tÃtulo da xanela."
 
-#: C/image-viewer.cpp.page:70(p)
-msgid ""
-"The <code>kit::run()</code> call starts the GTKmm main loop, which runs the "
-"user interface and starts listening for events (like clicks and key "
-"presses). As we give the window as an argument to that function, the "
-"application will automatically exit when that window is closed."
+#: C/fontchooserwidget.py.page:21(title)
+msgid "FontChooserWidget"
 msgstr ""
 
-#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:78(p)
-#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:83(p)
-msgid ""
-"Press <gui>Execute</gui> on the next window that appears to configure a "
-"debug build. You only need to do this once, for the first build."
+#: C/fontchooserwidget.py.page:24(p)
+msgid "A FontChooserWidget with a callback function."
 msgstr ""
-"Prema <gui>Executar</gui> na seguinte xanela que aparece para configurar a "
-"compilaciÃn de depuraciÃn. SÃ precisa facer isto unha vez para a primeira "
-"compilaciÃn."
 
-#: C/image-viewer.cpp.page:82(p)
-msgid ""
-"Now we will bring life into the empty window. GTKmm organizes the user "
-"interface with <code>Gtk::Container</code>s that can contain other widgets "
-"and even other containers. Here we will use the simplest available "
-"container, a <code>Gtk::Box</code>:"
+#: C/fontchooserwidget.py.page:33(title)
+msgid "Useful methods for a FontChooserWidget"
 msgstr ""
 
-#: C/image-viewer.cpp.page:115(p)
+#: C/fontchooserwidget.py.page:36(p)
 msgid ""
-"The first lines create the widgets we want to use: a button for opening up "
-"an image, the image view widget itself and the box we will use as a "
-"container."
+"To set the font which is initially selected, use <code>set_font(font)</code> "
+"(where <code>font</code> is the font name) or <code>set_font_desc(font)</"
+"code> (where <code>font</code> is the PangoFontDescription)."
 msgstr ""
 
-#: C/image-viewer.cpp.page:118(p)
+#: C/fontchooserwidget.py.page:37(p)
 msgid ""
-"The calls to <code>pack_start</code> add the two widgets to the box and "
-"define their behaviour. The image will expand into any available space while "
-"the button will just be as big as needed. You will notice that we don't set "
-"explicit sizes on the widgets. In GTKmm 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."
+"To get the selected font use <code>get_font()</code> or <code>get_font_desc()"
+"</code>."
 msgstr ""
 
-#: C/image-viewer.cpp.page:124(p)
+#: C/fontchooserwidget.py.page:38(p)
 msgid ""
-"We need to define what happens when the user clicks on the button. GTKmm "
-"uses the concept of <em>signals</em>. When the button is clicked, it fires "
-"the <em>clicked</em> signal, which we can connect to some action. This is "
-"done using the <code>signal_clicked().connect</code> method which tells "
-"GTKmm to call the <code>on_open_image</code> function when the button is "
-"clicked. We will define the <em>callback</em> in the next section."
+"To change the text which is shown in the preview area, use "
+"<code>set_preview_text()</code>."
 msgstr ""
 
-#: C/image-viewer.cpp.page:128(p)
-msgid ""
-"The last step is to show all widgets in the window using "
-"<code>show_all_children()</code>. This is equivalent to using the <code>show"
-"()</code> method on all our child widgets."
+#: C/fontchooserwidget.py.page:45(link)
+msgid "GtkFontChooserWidget"
 msgstr ""
 
-#: C/image-viewer.cpp.page:137(p)
-msgid ""
-"We will now define the signal handler for the <em>clicked</em> signal or the "
-"button we mentioned before. Add this code before the <code>main</code> "
-"method."
+#: C/filechooserdialog.vala.page:7(title)
+msgid "FileChooserDialog (Vala)"
 msgstr ""
 
-#: C/image-viewer.cpp.page:175(p)
-msgid ""
-"The dialog for choosing the file is created using the <code>Gtk::"
-"FileChooserDialog</code> constructor. This takes the title and type of the "
-"dialog. In our case, it is an <em>Open</em> dialog."
+#: C/filechooserdialog.vala.page:20(desc)
+msgid "A dialog suitable for \"Open\" and \"Save\" commands."
 msgstr ""
 
-#: C/image-viewer.cpp.page:179(p)
-msgid ""
-"The next two lines add an <em>Open</em> and a <em>Close</em> button to the "
-"dialog."
+#: C/filechooserdialog.vala.page:23(title)
+#: C/filechooserdialog.vala.page:40(link)
+#: C/filechooserdialog.py.page:23(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "FileChooserDialog"
+msgstr "MessageDialog"
+
+#: C/filechooserdialog.vala.page:25(title)
+msgid "Overview of the example"
 msgstr ""
 
-#: C/image-viewer.cpp.page:181(p)
+#: C/filechooserdialog.vala.page:26(p)
 msgid ""
-"The second argument to the <code>add_button()</code> method is a value to "
-"identify the clicked button. We use predefined values provided by GTKmm "
-"here, too."
+"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 ""
 
-#: C/image-viewer.cpp.page:186(p)
-msgid ""
-"The next two lines restrict the <gui>Open</gui> dialog to only display files "
-"which can be opened by <code>Gtk::Image</code>. A filter object is created "
-"first; we then add all kinds of files supported by <code>Gdk::Pixbuf</code> "
-"(which includes most image formats like PNG and JPEG) to the filter. "
-"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+#: C/filechooserdialog.vala.page:28(title)
+msgid "XML UI file which creates the app-menu"
 msgstr ""
 
-#: C/image-viewer.cpp.page:187(p)
-msgid ""
-"<code>Glib::RefPtr</code> is a smart pointer used here, that makes sure that "
-"the filter is destroyed when there is no reference to it anymore."
+#: C/filechooserdialog.vala.page:31(title)
+#, fuzzy
+#| msgid "Sample Vala code"
+msgid "Vala Code"
+msgstr "Exemplo de cÃdigo en Vala"
+
+#: C/filechooserdialog.vala.page:39(link)
+msgid "FileChooser"
 msgstr ""
 
-#: C/image-viewer.cpp.page:191(p)
-msgid ""
-"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
-"wait for the user to choose an image; when they do, <code>dialog.run</code> "
-"will return the value <code>Gtk::RESPONSE_ACCEPT</code> (it would return "
-"<code>Gtk::RESPONSE_CANCEL</code> if the user clicked <gui>Cancel</gui>). "
-"The <code>switch</code> statement tests for this."
+#: C/filechooserdialog.vala.page:42(link)
+msgid "GLib.ActionEntry"
 msgstr ""
 
-#: C/image-viewer.cpp.page:194(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/filechooserdialog.py.page:24(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 msgid ""
-"We hide the <gui>Open</gui> dialog because we don't need it any more. The "
-"dialog would be hidden later anyway, as it is only a local variable and is "
-"destroyed (and therefore hidden) when the scope ends."
+"@@image: 'media/filechooserdialog_save.png'; "
+"md5=3a7a3b71b9d3a36066857843b68ff27f"
 msgstr ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 
-#: C/image-viewer.cpp.page:197(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/filechooserdialog.py.page:26(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next line loads the "
-"file into the <code>Gtk::Image</code> so that it is displayed."
+"@@image: 'media/filechooserdialog_menu.png'; "
+"md5=8a75f04127a70eba0ed68a9eb1d3bbca"
 msgstr ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 
-#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:216(p)
-msgid ""
-"If you haven't already done so, choose the <file>Debug/src/image-viewer</"
-"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-"and enjoy!"
+#: C/filechooserdialog.py.page:7(title)
+msgid "FileChooserDialog (Python)"
 msgstr ""
-"Se non o fixo aiÌnda, seleccione o aplicativo <file>Debug/src/image-viewer</"
-"file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
-"desfrute!"
 
-#: C/image-viewer.cpp.page:211(p)
+#: C/filechooserdialog.py.page:20(desc)
+msgid "A dialog suitable for \"Open\" and \"Save\" commands"
+msgstr ""
+
+#: C/filechooserdialog.py.page:25(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
+"This FileChooserDialog saves a text document, which can be opened or written "
+"from scratch in a TextView (see below)."
 msgstr ""
-"Se ten problemas con este titorial, compare o seu cÃdigo con este <link href="
-"\"image-viewer/image-viewer.cc\">cÃdigo de referencia</link>."
 
-#: C/image-viewer.c.page:26(p)
-msgid "Some basic concepts of C/GObject programming"
-msgstr "AlgÃns conceptos bÃsicos de programaciÃn de C/GObject"
+#: C/filechooserdialog.py.page:27(p)
+msgid "It is also possible to call a FileChooserDialog to open a new document."
+msgstr ""
 
-#: C/image-viewer.c.page:27(p)
-msgid "How to write a Gtk application in C"
-msgstr "Como escribir un aplicativo GTK en C"
+#: C/filechooserdialog.py.page:32(title)
+msgid "Steps to recreate the example"
+msgstr ""
 
-#: C/image-viewer.c.page:41(p)
-#, fuzzy
-#| msgid ""
-#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#| "<file>image-viewer</file> as project name and directory."
+#: C/filechooserdialog.py.page:34(p)
 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."
+"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 ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes pÃxinas. Use "
-"<file>image-viewer</file> como nome do proxecto e cartafol."
 
-#: C/image-viewer.c.page:44(p)
+#: C/filechooserdialog.py.page:35(p)
 msgid ""
-"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
-"we will create the UI manually in this tutorial. Check the <link xref="
-"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to "
-"use the interface 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 ""
-"AsegÃrese que <gui>Usar GtkBuilder para a interface de usuario</gui> està "
-"desactivado xa que crearemos a UI manualmente neste titorial. Comprobe o "
-"titorial <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> se quere aprender "
-"como usar o construtor de interface."
 
-#: C/image-viewer.c.page:59(p)
+#: C/filechooserdialog.py.page:36(p)
 msgid ""
-"C is a rather verbose language, so don't be surprised that the file contains "
-"quite a lot of code. Most of it is template code. It loads an (empty) window "
-"and shows it. More details are given below; skip this list if you understand "
-"the basics:"
+"In this program, create also the actions corresponding to the items in the "
+"app-menu, connect them to callback functions, and import the menu in the "
+"<code>do_startup()</code> method with a Gtk.Builder."
 msgstr ""
 
-#: C/image-viewer.c.page:63(p) C/guitar-tuner.c.page:68(p)
+#: C/filechooserdialog.py.page:37(p)
 msgid ""
-"The three <code>#include</code> lines at the top include the <code>config</"
-"code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
-"<code>gi18n</code> (internationalization) libraries. Functions from these "
-"libraries are used in the rest of the code."
+"\"New\" and \"Quit\" actions and callback functions are quite "
+"straightforward, see <link xref=\"#code\"/>."
 msgstr ""
 
-#: C/image-viewer.c.page:66(p)
+#: C/filechooserdialog.py.page:38(p)
 msgid ""
-"The <code>create_window</code> function creates a new (empty) window and "
-"connects a signal to exit the application when that window is closed."
+"\"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 ""
-"A funciÃn <code>create_window</code> crea unha xanela (baleira) nova e "
-"conecta un sinal para saÃr do aplicativo pÃchase esa xanela."
 
-#: C/image-viewer.c.page:70(p) C/guitar-tuner.c.page:75(p)
+#: C/filechooserdialog.py.page:39(p)
 msgid ""
-"The <code>main</code> function is run by default when you start a C "
-"application. It calls a few functions which set up and then run the "
-"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)."
+"\"Save as\" works basically as \"Open\", but the callback function of the "
+"\"Save\" button depends on a more complex method <code>save_to_file()</code>."
 msgstr ""
 
-#: C/image-viewer.c.page:73(p) C/guitar-tuner.c.page:78(p)
+#: C/filechooserdialog.py.page:40(p)
 msgid ""
-"The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
-"code>, which is a framework for translating applications. These functions "
-"specify how translation tools should handle your app when you run them."
+"\"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 ""
 
-#: C/image-viewer.c.page:83(p)
+#: C/filechooserdialog.py.page:41(p)
 msgid ""
-"Now we will bring life into the empty window. GTK organizes the user "
-"interface with <code>GtkContainer</code>s that can contain other widgets and "
-"even other containers. Here we will use the simplest available container, a "
-"<code>GtkBox</code>:"
+"Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
+"lines 146 - 175."
 msgstr ""
 
-#: C/image-viewer.c.page:121(p)
-msgid ""
-"The first lines create the widgets we want to use: a button for opening up "
-"an image, the image view widget itself and the box we will use as a "
-"container. 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."
+#: C/filechooserdialog.py.page:46(title)
+msgid "XML file which creates the app-menu"
 msgstr ""
 
-#: C/image-viewer.c.page:126(p)
-msgid ""
-"The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
-"and define their behaviour. The image will expand into any available space "
-"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."
+#: C/filechooserdialog.py.page:56(title)
+msgid "Useful methods for a FileChooserDialog"
 msgstr ""
 
-#: C/image-viewer.c.page:132(p)
+#: C/filechooserdialog.py.page:57(p)
 msgid ""
-"We need to define what happens when the user clicks on the button. GTK uses "
-"the concept of <em>signals</em>. When the button is clicked, it fires the "
-"<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."
+"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 ""
 
-#: C/image-viewer.c.page:137(p)
-msgid ""
-"The last <code>g_signal_connect()</code> makes sure that the application "
-"exits when the window is closed."
+#: C/filechooserdialog.py.page:58(p)
+msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
 msgstr ""
 
-#: C/image-viewer.c.page:140(p)
+#: C/filechooserdialog.py.page:60(p)
 msgid ""
-"As a last step, make sure to replace the <code>gtk_widget_show</code> call "
-"in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
-"show the window and all the widgets it contains."
+"<code>set_show_hidden(True)</code> is used to display hidden files and "
+"folders."
 msgstr ""
 
-#: C/image-viewer.c.page:148(p)
+#: C/filechooserdialog.py.page:61(p)
 msgid ""
-"We will now define the signal handler for the <em>clicked</em> signal or the "
-"button we mentioned before. Add this code before the <code>create_window()</"
-"code> method."
+"<code>set_select_multiple(True)</code> sets that multiple files can be "
+"selected. This is only relevant if the mode is <code>Gtk.FileChooserAction."
+"OPEN</code> or <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
 msgstr ""
 
-#: C/image-viewer.c.page:186(p)
+#: C/filechooserdialog.py.page:62(p)
 msgid ""
-"The first argument of the signal is always the widget that sent the signal. "
-"Sometimes other arguments related to the signal come after that, but "
-"<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 this case it is our <code>GtkImage</code> object."
+"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 ""
 
-#: C/image-viewer.c.page:192(p)
+#: C/filechooserdialog.py.page:63(p)
 msgid ""
-"The next interesting line is where the dialog for choosing the file is "
-"created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
-"the title of the dialog, the parent window of the dialog and several options "
-"like the number of buttons and their corresponding values."
+"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 ""
 
-#: C/image-viewer.c.page:199(p)
-msgid ""
-"The next two lines restrict the <gui>Open</gui> dialog to only display files "
-"which can be opened by GtkImage. A filter object is created first; we then "
-"add all kinds of files supported by <code>GdkPixbuf</code> (which includes "
-"most image formats like PNG and JPEG) to the filter. Finally, we set this "
-"filter to be the <gui>Open</gui> dialog's filter."
+#: C/filechooserdialog.py.page:71(link)
+#, fuzzy
+#| msgid "Gtk.MessageDialog"
+msgid "GtkFileChooserDialog"
+msgstr "Gtk.MessageDialog"
+
+#: C/filechooserdialog.py.page:72(link)
+msgid "GtkFileChooser"
 msgstr ""
 
-#: C/image-viewer.c.page:202(p)
-msgid ""
-"<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
-"will wait for the user to choose an image; when they do, "
-"<code>gtk_dialog_run</code> will return the value <code>GTK_RESPONSE_ACCEPT</"
-"code> (it would return <code>GTK_RESPONSE_CANCEL</code> if the user clicked "
-"<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
+#: C/filechooserdialog.py.page:77(link)
+msgid "GFile"
 msgstr ""
 
-#: C/image-viewer.c.page:204(p)
-msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next line sets the "
-"<code>file</code> property of the GtkImage to the filename of the image "
-"selected by the user. The GtkImage will then load and display the chosen "
-"image."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/entry.vala.page:21(None) C/entry.py.page:26(None)
+#: C/entry.js.page:21(None) C/entry.c.page:22(None)
+#, fuzzy
+#| msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+msgid "@@image: 'media/entry.png'; md5=8a828cffdcbaa4bad83342e109f28cc8"
+msgstr "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
+
+#: C/entry.vala.page:7(title)
+msgid "Entry (Vala)"
 msgstr ""
 
-#: C/image-viewer.c.page:207(p)
-msgid ""
-"In the final line of this method, we destroy the <gui>Open</gui> dialog "
-"because we don't need it any more. Destroying automatically hides the dialog."
+#: C/entry.vala.page:17(desc) C/entry.py.page:22(desc) C/entry.c.page:17(desc)
+msgid "A single line text entry field"
+msgstr ""
+
+#: C/entry.vala.page:20(title) C/entry.py.page:25(title)
+#: C/entry.js.page:20(title) C/entry.c.page:20(title)
+msgid "Entry"
 msgstr ""
 
-#: C/image-viewer.c.page:221(p)
-msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.c\">reference code</link>."
+#: C/entry.vala.page:22(p) C/entry.c.page:23(p)
+msgid "This application greets you in the terminal."
 msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/helloWorld.js.page:31(None)
-msgid "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+#: C/entry.vala.page:29(link) C/entry.js.page:31(link)
+msgid "Gtk.Entry"
 msgstr ""
 
-#: C/helloWorld.js.page:14(desc)
+#: C/entry.py.page:7(title)
 #, fuzzy
-#| msgid "A little bit more than a simple \"Hello world\" Gtk application."
-msgid "A basic \"hello, world\" application"
-msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+#| msgid "Python"
+msgid "Entry (Python)"
+msgstr "Python"
 
-#: C/helloWorld.js.page:16(title)
-msgid "Hello World"
+#: C/entry.py.page:27(p)
+msgid "This application greets you in the terminal with the name you provide."
+msgstr ""
+
+#: C/entry.py.page:37(title)
+msgid "Useful methods for an Entry widget"
 msgstr ""
 
-#: C/helloWorld.js.page:19(p)
+#: C/entry.py.page:38(p)
 msgid ""
-"In this tutorial we'll construct a small application, Hello World, using "
-"JavaScript and GTK+. To write 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 go through the following parts:"
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. Some of the signals that a Gtk."
+"Entry widget can emit are: <code>\"activate\"</code> (emitted when the user "
+"activates the Entry key); <code>\"backspace\"</code> (emitted when the user "
+"activates the Backspace or Shift-Backspace keys); <code>\"copy-clipboard\"</"
+"code> (Ctrl-c and Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v and "
+"Shift-Insert); <code>\"delete-from-cursor\"</code> (Delete, for deleting a "
+"character; Ctrl-Delete, for deleting a word); <code>\"icon-press\"</code> "
+"(emitted when the user clicks an activable icon); <code>\"icon-release\"</"
+"code> (emitted on the button release from a mouse click over an activable "
+"icon); <code>\"insert-at-cursor\"</code> (emitted when the user initiates "
+"the insertion of a fixed string at the cursor); <code>\"move-cursor\"</code> "
+"(emitted when the user initiates a cursor movement); <code>\"populate-popup"
+"\"</code> (emitted before showing the context menu of the entry; it can be "
+"used to add items to it)."
 msgstr ""
 
-#: C/helloWorld.js.page:24(link) C/helloWorld.js.page:63(title)
-#, fuzzy
-#| msgid "Closing the window"
-msgid "Label for the window"
-msgstr "Pechar a xanela"
+#: C/entry.py.page:40(p)
+msgid ""
+"<code>get_buffer()</code> and <code>set_buffer(buffer)</code>, where "
+"<code>buffer</code> is a Gtk.EntryBuffer object, can be used to get and set "
+"the buffer for the entry."
+msgstr ""
 
-#: C/helloWorld.js.page:25(link) C/helloWorld.js.page:79(title)
-msgid "helloWorld.js"
+#: C/entry.py.page:41(p)
+msgid ""
+"<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
+"to get and set the content for the entry."
 msgstr ""
 
-#: C/helloWorld.js.page:26(link) C/guitar-tuner.js.page:30(link)
-#: C/guitar-tuner.js.page:227(title)
-#, fuzzy
-#| msgid "Run the application"
-msgid "Running the application form Terminal"
-msgstr "Executar o aplicativo"
+#: C/entry.py.page:42(p)
+msgid "<code>get_text_length()</code> is self-explanatory."
+msgstr ""
 
-#: C/helloWorld.js.page:30(p)
-msgid "After taking this tutorial, you should see this on your screen:"
+#: C/entry.py.page:43(p)
+msgid ""
+"<code>get_text_area()</code> gets the area where the entry's text is drawn."
 msgstr ""
 
-#: C/helloWorld.js.page:36(p)
+#: C/entry.py.page:44(p)
 msgid ""
-"This needs to be the first line of your script, because it tells GNOME that "
-"we'll be using Gjs -- the JavaScript bindings for GNOME -- in order to run "
-"it."
+"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 ""
 
-#: C/helloWorld.js.page:43(p)
+#: C/entry.py.page:45(p)
 msgid ""
-"In order for our script to work with GNOME, we need to import GNOME "
-"libraries via GObject Introspection. In this case, we're importing GTK+, the "
-"most basic library that contains the graphical widgets used to make GNOME "
-"apps."
+"<code>set_max_length(int)</code>, where <code>int</code> is an integer, "
+"truncates every entry longer than <code>int</code> to have the desired "
+"maximum length."
 msgstr ""
 
-#: C/helloWorld.js.page:59(p)
+#: C/entry.py.page:46(p)
 msgid ""
-"After importing Gtk, we need to initialize it. After that, we can start "
-"building our first window. We do this by creating a variable called mywindow "
-"and assigning it a new Gtk.Window of type TOPLEVEL."
+"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 ""
 
-#: C/helloWorld.js.page:59(p)
+#: C/entry.py.page:47(p)
+msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
+msgstr ""
+
+#: C/entry.py.page:48(p)
 msgid ""
-"After setting up our first window we'll give the window a property called "
-"title. 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."
+"<code>set_placeholder_text(\"some text\")</code> sets the text to be "
+"displayed in the entry when it is empty and unfocused."
 msgstr ""
 
-#: C/helloWorld.js.page:59(p)
+#: C/entry.py.page:49(p)
 msgid ""
-"The next thing we need to do for our application is connect the close button "
-"that's automatically generated along with the window to the close "
-"functionality. That happens with the method connect(). When the close button "
-"is pressed it gives out the signal \"destroy\", so in this part we're "
-"connecting the \"destroy\" signal to function(){Gtk.main_quit()}, which does "
-"the actual closing."
+"<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
+"code> are self-explanatory."
 msgstr ""
 
-#: C/helloWorld.js.page:59(p)
+#: C/entry.py.page:50(p)
 msgid ""
-"Now we have a window that has a title and a working \"close\" button. Let's "
-"add the actual \"Hello, world\" text."
+"If we have <code>set_editable(False)</code> the user cannot edit the text in "
+"the widget."
 msgstr ""
 
-#: C/helloWorld.js.page:75(p)
+#: C/entry.py.page:51(p)
 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 tell GNOME to show the label and the window containing it to the "
-"user, and call Gtk.main() to get the app itself started."
+"<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 ""
 
-#: C/helloWorld.js.page:76(p)
+#: C/entry.py.page:52(p)
 msgid ""
-"For the future, keep in mind that Gtk.Window can only hold one widget at a "
-"time. To construct more elaborate programs you need to create a holder "
-"widget (Gtk.Box, Gtk.Grid, Gtk.Application, and so on) of some kind inside "
-"the window, and then add all the other widgets to it."
+"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 ""
+
+#: C/entry.py.page:53(p)
+msgid ""
+"An Entry widget can also show icons. These icons can be activatable by "
+"clicking, can be set up as drag source and can have tooltips. To add an "
+"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 ""
 
-#: C/helloWorld.js.page:80(p)
-msgid "Here's what the completed program looks like."
+#: C/entry.py.page:61(link) C/entry.c.page:33(link)
+#: C/buttonbox.py.page:50(link)
+msgid "GtkEntry"
 msgstr ""
 
-#: C/helloWorld.js.page:108(title)
+#: C/entry.js.page:7(title)
 #, fuzzy
-#| msgid "Run the application"
-msgid "Running the application from Terminal"
-msgstr "Executar o aplicativo"
+#| msgid "JavaScript"
+msgid "Entry (JavaScript)"
+msgstr "JavaScript"
 
-#: C/helloWorld.js.page:109(p)
-msgid ""
-"To run this application, first save it as helloWorld.js. Then open Terminal, "
-"go to the folder where your application is stored and run"
+#: C/entry.js.page:17(desc)
+msgid "A single-line text entry field"
 msgstr ""
 
-#: C/helloWorld.js.page:109(input)
-msgid "chmod +x helloWorld.js"
+#: C/entry.js.page:22(p)
+msgid "This application greets you by name through a pop-up window."
 msgstr ""
 
-#: C/helloWorld.js.page:110(p)
-msgid "This makes your script executable. After that, run"
+#: C/entry.c.page:7(title)
+msgid "Entry (C)"
 msgstr ""
 
-#: C/helloWorld.js.page:110(input)
-msgid "GJS_PATH=`pwd` gjs helloWorld.js"
+#: C/documentation.page:19(title)
+msgid "Help develop"
 msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:41(None) C/guitar-tuner.py.page:37(None)
-#: C/guitar-tuner.js.page:34(None) C/guitar-tuner.cpp.page:37(None)
-#: C/guitar-tuner.c.page:37(None)
-#| msgid ""
-#| "@@image: 'media/guitar-tuner-pipeline.png'; "
-#| "md5=5adc952909d92af5dae6954781b4ad5f"
-msgid "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+#: C/documentation.page:20(p)
+msgid ""
+"The <app>GNOME Developer Tutorials</app> are developed and maintained by a "
+"volunteer community. You are welcome to participate."
 msgstr ""
-"@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:94(None) C/guitar-tuner.py.page:88(None)
-#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:92(None)
+#: C/documentation.page:23(p)
 msgid ""
-"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+"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 ""
-"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:128(None) C/guitar-tuner.py.page:131(None)
-#: C/guitar-tuner.js.page:40(None) C/guitar-tuner.cpp.page:117(None)
-#: C/guitar-tuner.c.page:137(None)
-msgid ""
-"@@image: 'media/guitar-tuner-pipeline.png'; "
-"md5=5adc952909d92af5dae6954781b4ad5f"
-msgstr ""
-"@@image: 'media/guitar-tuner-pipeline.png'; "
-"md5=5adc952909d92af5dae6954781b4ad5f"
-
-#: C/guitar-tuner.vala.page:8(desc)
+#: C/dialog.vala.page:21(None) C/dialog.py.page:22(None)
+#: C/dialog.js.page:21(None) C/dialog.c.page:24(None)
 #, fuzzy
 #| msgid ""
-#| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
-#| "GNOME. Shows off how to use the interface designer."
-msgid ""
-"Use <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."
+#| "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
+msgid "@@image: 'media/dialog.png'; md5=c90a33386a600e892fe623d4072c8c38"
+msgstr "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
+
+#: C/dialog.vala.page:7(title)
+msgid "Dialog (Vala)"
 msgstr ""
-"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
-"GNOME. Mostra como usar o deseÃador de interfaces."
 
-#: C/guitar-tuner.vala.page:25(title) C/guitar-tuner.py.page:21(title)
-#: C/guitar-tuner.js.page:17(title)
-#, fuzzy
-#| msgid "Guitar Tuner"
-msgid "2 Guitar Tuner"
-msgstr "Afinador de guitarra"
+#: C/dialog.vala.page:17(desc) C/dialog.py.page:18(desc)
+#: C/dialog.js.page:17(desc) C/dialog.c.page:19(desc)
+msgid "A popup window"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:28(p)
-#, fuzzy
-#| 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:"
-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:"
+#: C/dialog.vala.page:20(title) C/dialog.py.page:21(title)
+#: C/dialog.js.page:20(title) C/dialog.c.page:22(title)
+msgid "Dialog"
 msgstr ""
-"Neste titorial faremos un programa que reproduce tonos que pode usar para "
-"afinar unha guitarra. Aprenderà como:"
 
-#: C/guitar-tuner.vala.page:30(p)
-msgid ""
-"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
-"link>."
+#: C/dialog.vala.page:22(p)
+msgid "A dialog with the response signal hooked up to a callback function."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:31(p)
-#, fuzzy
-#| msgid "Create a simple GUI with Anjuta's UI designer"
-msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
-msgstr "Crear unha GUI sinxela co deseÃador de UI de Anjuta"
+#: C/dialog.vala.page:31(link) C/dialog.js.page:31(link)
+msgid "Gtk.Dialog"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:32(p)
-msgid ""
-"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
-"gstreamer\">GStreamer</link> library to play sounds."
+#: C/dialog.vala.page:32(link)
+msgid "Gtk.Dialog.with_buttons"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:44(title)
-#, fuzzy
-#| msgid "Create a project in Anjuta"
-msgid "Create a project in <app>Anjuta</app>"
-msgstr "Cree un proxecto de Anjuta"
+#: C/dialog.vala.page:34(link)
+msgid "get_content_area"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:51(p)
-#, fuzzy
-#| msgid ""
-#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#| "<file>guitar-tuner</file> as project name and directory."
-msgid ""
-"Click on the <gui>Vala</gui> tab and select <gui>Gtk+ (Simple)</gui>. Click "
-"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-"<file>guitar-tuner</file> as project name and directory."
+#: C/dialog.py.page:7(title)
+msgid "Dialog (Python)"
 msgstr ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.vala.page:54(p)
-#, fuzzy
-#| msgid ""
-#| "Make sure that <gui>Configure external packages</gui> is selected. On the "
-#| "next page, select <em>gstreamer-0.10</em> from the list to include the "
-#| "GStreamer library in your project."
-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>"
+#: C/dialog.py.page:23(p)
+msgid "A dialog with the response signal connected to a callback function."
 msgstr ""
-"AsegÃrese que <gui>Configurar paquetes externos</gui> està seleccionada. Na "
-"seguinte pÃxina, seleccione <em>gstreamermm-0.10</em> da lista para incluÃr "
-"a biblioteca GStreamer no seu proxecto."
 
-#: C/guitar-tuner.vala.page:58(p)
-#, fuzzy
-#| 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:"
-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:"
+#: C/dialog.py.page:35(title)
+msgid "Useful methods for a Dialog widget"
 msgstr ""
-"Prema <gui>Aplicar</gui> para crear o proxecto. Abra <file>src/main.c</file> "
-"desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa ver "
-"alguÌn coÌdigo que comeza coas linÌas:"
 
-#: C/guitar-tuner.vala.page:68(p)
+#: C/dialog.py.page:38(p)
 msgid ""
-"The code loads an (empty) window from the user interface description file "
-"and displays it. More details are given below; you may choose to skip this "
-"list if you understand the basics:"
+"Instead of <code>set_modal(True)</code> we could have <code>set_modal(False)"
+"</code> followed by <code>set_destroy_with_parent(True)</code> that would "
+"destroy the dialog window if the main window is closed."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:75(p)
+#: C/dialog.py.page:39(p)
 msgid ""
-"The constructor of the <code>Main</code> class creates a new window by "
-"opening a GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few "
-"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."
+"<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 ""
 
-#: C/guitar-tuner.vala.page:77(p)
+#: C/dialog.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Dialog (JavaScript)"
+msgstr "JavaScript"
+
+#: C/dialog.js.page:22(p)
 msgid ""
-"Connecting signals is how you define what happens when you push a button, or "
-"when some other event happens. Here, the <code>on_destroy</code> function is "
-"called (and quits the app) when you close the window."
+"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 ""
 
-#: C/guitar-tuner.vala.page:81(p)
-msgid ""
-"The static <code>main</code> function is run by default when you start a "
-"Vala application. It calls a few functions which create the Main class, set "
-"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)."
+#: C/dialog.c.page:7(title)
+msgid "Dialog (C)"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:85(p)
-msgid ""
-"This code is ready to be used, so you can compile it by clicking "
-"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
-"<keyseq><key>Shift</key><key>F7</key></keyseq>). 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."
+#: C/dialog.c.page:25(p)
+msgid "A dialog window that pops up when a button is pressed."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:89(title) C/guitar-tuner.py.page:83(title)
-#: C/guitar-tuner.cpp.page:83(title) C/guitar-tuner.c.page:87(title)
-msgid "Create the user interface"
-msgstr "Crear a interface de usuario"
+#: C/cpp.page:6(title)
+msgid "C++"
+msgstr "C+"
 
-#: C/guitar-tuner.vala.page:90(p)
-msgid ""
-"A description of the user interface (UI) is contained in the GtkBuilder file "
-"<file>src/guitar_tuner.ui</file> defined at the top of the class. To edit "
-"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."
+#: C/cpp.page:15(title)
+msgid "Platform demos in C++"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:92(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/combobox_multicolumn.py.page:22(None) C/combobox.js.page:25(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
 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."
+"@@image: 'media/combobox_multicolumn.png'; "
+"md5=43f16648fb11ebc7d2f70825ed0f63b3"
+msgstr "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
+
+#: C/combobox_multicolumn.py.page:7(title) C/combobox.py.page:7(title)
+msgid "ComboBox (Python)"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:98(p)
-msgid ""
-"In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
-"select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. Then "
-"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>."
+#: C/combobox_multicolumn.py.page:18(desc) C/combobox.vala.page:17(desc)
+#: C/combobox.py.page:17(desc)
+msgid "A widget used to choose from a list of items"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:99(p)
-msgid ""
-"You can also change the <gui>Number of elements</gui> and the "
-"<gui>Orientation</gui> in the <gui>General</gui> tab on the right."
+#: C/combobox_multicolumn.py.page:21(title) C/combobox.vala.page:20(title)
+#: C/combobox.py.page:20(title) C/combobox.js.page:24(title)
+msgid "ComboBox"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:103(p)
-msgid ""
-"Now, from the <gui>Control and Display</gui> section of the <gui>Palette</"
-"gui> choose a <gui>Button</gui> (GtkButton) by clicking on it. Place it into "
-"the first section of the GtkButtonBox by clicking in the first section."
+#: C/combobox_multicolumn.py.page:23(p) C/combobox.py.page:22(p)
+msgid "This ComboBox prints to the terminal your selection when you change it."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:106(p)
-msgid ""
-"While the button is still selected, scroll down in the <gui>General</gui> "
-"tab on the right to the <gui>Label</gui> property, and change it to <gui>E</"
-"gui>. This will be the low E guitar string."
+#: C/combobox_multicolumn.py.page:34(title) C/combobox.py.page:32(title)
+msgid "Useful methods for a ComboBox widget"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:107(p)
+#: C/combobox_multicolumn.py.page:35(p) C/combobox.py.page:33(p)
 msgid ""
-"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
-"the right."
+"The ComboBox widget is designed around a <em>Model/View/Controller</em> "
+"design. For more information, and for a list of useful methods for ComboBox "
+"and TreeModel, see <link xref=\"model-view-controller.py\">here</link>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:112(p)
-msgid ""
-"Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on the "
-"right, and look for the <code>clicked</code> signal of the button. You can "
-"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>."
+#: C/combobox_multicolumn.py.page:46(link)
+msgid "GtkCellRendererPixbuf"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:115(p) C/guitar-tuner.py.page:105(p)
-#: C/guitar-tuner.c.page:109(p)
-msgid ""
-"Repeat the above steps for the other buttons, adding the next 5 strings with "
-"the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/combobox.vala.page:21(None) C/combobox.py.page:21(None)
+#: C/comboboxtext.js.page:23(None)
+#, fuzzy
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+msgid "@@image: 'media/combobox.png'; md5=ab9e91bc1a58fe866cb00dd52159251d"
+msgstr "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+
+#: C/combobox.vala.page:7(title)
+msgid "ComboBox (Vala)"
 msgstr ""
-"Repita os pasos anteriores para o resto dos botÃns, engadindo as 5 cordas "
-"restantes cos nomes <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e <em>e</"
-"em>."
 
-#: C/guitar-tuner.vala.page:118(p) C/guitar-tuner.py.page:108(p)
-#: C/guitar-tuner.c.page:112(p)
-msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and keep it open."
+#: C/combobox.vala.page:22(p)
+msgid "This ComboBox prints to the terminal when you change your selection."
+msgstr ""
+
+#: C/combobox.vala.page:30(link) C/combobox.js.page:241(link)
+msgid "Gtk.ComboBox"
+msgstr ""
+
+#: C/combobox.vala.page:32(link)
+msgid "set_attributes"
 msgstr ""
-"Garde o deseÃo da IU (premendo <guiseq><gui>Ficheiro</gui><gui>Gardar</gui></"
-"guiseq>) e dÃixeo aberto."
 
-#: C/guitar-tuner.vala.page:124(title) C/guitar-tuner.py.page:127(title)
-#: C/guitar-tuner.js.page:22(link) C/guitar-tuner.js.page:36(title)
-#: C/guitar-tuner.cpp.page:112(title) C/guitar-tuner.c.page:133(title)
-msgid "GStreamer pipelines"
-msgstr "TuberÃas de GStreamer"
+#: C/combobox.py.page:43(link)
+msgid "GtkCellLayout"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:125(p)
+#: C/combobox.js.page:7(title)
 #, fuzzy
-#| 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."
-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."
+#| msgid "JavaScript"
+msgid "ComboBox (JavaScript)"
+msgstr "JavaScript"
+
+#: C/combobox.js.page:21(desc)
+msgid "A customizable drop-down menu"
 msgstr ""
-"GStreamer à un marco de traballo multimedia de GNOME â vostede pode usalo "
-"para reproducir, gravar e procesar vÃdeo, son, fluxos de cÃmara web e "
-"semellantes. AquÃ, usarÃmolo para producir tonos dunha Ãnica frecuencia."
 
-#: C/guitar-tuner.vala.page:126(p)
+#: C/combobox.js.page:26(p)
 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."
+"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 ""
 
-#: C/guitar-tuner.vala.page:127(p) C/guitar-tuner.py.page:130(p)
-#: C/guitar-tuner.js.page:39(p) C/guitar-tuner.cpp.page:116(p)
-#: C/guitar-tuner.c.page:136(p)
+#: C/combobox.js.page:27(p)
 msgid ""
-"Between source and sink, you can apply various filters and converters to "
-"handle effects, format conversions and so on. Each element of the pipeline "
-"has properties which can be used to change its behaviour."
+"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 ""
 
-#: C/guitar-tuner.vala.page:129(p) C/guitar-tuner.py.page:132(p)
-#: C/guitar-tuner.js.page:41(p) C/guitar-tuner.cpp.page:118(p)
-#: C/guitar-tuner.c.page:138(p)
-msgid "An example GStreamer pipeline."
-msgstr "Un exemplo de tuberÃa de GStreamer."
-
-#: C/guitar-tuner.vala.page:134(title) C/guitar-tuner.py.page:137(title)
-#: C/guitar-tuner.c.page:143(title)
-msgid "Set up the pipeline"
-msgstr "Configurar a tuberÃa"
-
-#: C/guitar-tuner.vala.page:135(p)
+#: C/combobox.js.page:28(p)
 msgid ""
-"In this example we will use a tone generator source called "
-"<code>audiotestsrc</code> and send the output to the default system sound "
-"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>."
+"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 ""
 
-#: C/guitar-tuner.vala.page:137(p)
+#: C/combobox.js.page:69(p)
 msgid ""
-"We need to add a line to initialize GStreamer; put the following code on the "
-"line above the <code>Gtk.init</code> call in the <code>main</code> function:"
+"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 ""
 
-#: C/guitar-tuner.vala.page:139(p)
+#: C/combobox.js.page:94(p)
 msgid ""
-"Then, copy the following function into <file>guitar_tuner.vala</file> inside "
-"our <code>Main</code> class:"
+"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=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-";
+"STOCK-ABOUT:CAPS\">stock Gtk icons.</link>"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:174(p)
+#: C/combobox.js.page:95(p)
 msgid ""
-"The first three lines create source and sink GStreamer elements (<link href="
-"\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
-"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)."
+"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 ""
 
-#: C/guitar-tuner.vala.page:177(p)
-#, fuzzy
-#| 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."
+#: C/combobox.js.page:119(p)
 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."
+"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 ""
-"A chamada a <code>g_object_set</code> estabelecer a propiedade <code>freq</"
-"code> do elemento orixe a <code>frequency</code>, a cal se pasa como un "
-"argumento à funciÃn <code>play_sound</code>. Isto sà à a frecuencia da nota "
-"en Hertz, algunhas das frecuencias mÃis Ãtiles definiranse mÃis tarde."
 
-#: C/guitar-tuner.vala.page:180(p)
+#: C/combobox.js.page:120(p)
 msgid ""
-"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
-"\"><code>pipeline.add</code></link> puts the source and sink into the "
-"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>."
+"\"Select\" isn't really an option so much as an invitation to click on our "
+"ComboBox, so it doesn't need an icon."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:183(p)
-msgid ""
-"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
-"\"><code>sink.link</code></link> is used to connect the elements together, "
-"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>)."
+#: C/combobox.js.page:124(title)
+msgid "Creating the ComboBox"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:186(p)
+#: C/combobox.js.page:130(p)
 msgid ""
-"We don't want to play an annoying tone forever, so the last thing "
-"<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.org/";
-"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."
+"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 ""
 
-#: C/guitar-tuner.vala.page:196(title) C/guitar-tuner.c.page:118(title)
-msgid "Creating the signal handler"
-msgstr "Crear o manexador de sinais"
-
-#: C/guitar-tuner.vala.page:197(p)
+#: C/combobox.js.page:144(p)
 msgid ""
-"In the UI designer, you made it so that all of the buttons will call the "
-"same function, <gui>on_button_clicked</gui>, when they are clicked. Actually "
-"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."
+"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 ""
 
-#: C/guitar-tuner.vala.page:198(p)
+#: C/combobox.js.page:145(p)
 msgid ""
-"To do this, in the user interface file (guitar_tuner.ui) select one of the "
-"buttons by clicking on it, then open <file>guitar_tuner.vala</file> (by "
-"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:"
+"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 ""
 
-#: C/guitar-tuner.vala.page:205(p)
+#: C/combobox.js.page:146(p)
 msgid ""
-"You can also just type the code at the beginning of the class instead of "
-"using the drag and drop."
+"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 ""
 
-#: C/guitar-tuner.vala.page:206(p)
+#: C/combobox.js.page:155(p)
 msgid ""
-"This signal handler has only one argument: the <link href=\"http://valadoc.";
-"org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> that called "
-"the function (in our case, always a <link href=\"http://valadoc.org/gtk+-3.0/";
-"Gtk.Button.html\"><code>Gtk.Button</code></link>)."
+"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 ""
 
-#: C/guitar-tuner.vala.page:212(title)
-msgid "Define the signal handler"
-msgstr "Definir o manexador de sinais"
+#: C/combobox.js.page:165(p)
+msgid ""
+"Finally, we add the ComboBox to the window, and tell the window to show "
+"itself and everything inside it."
+msgstr ""
 
-#: C/guitar-tuner.vala.page:213(p)
+#: C/combobox.js.page:179(p)
 msgid ""
-"We want to play the correct sound when the user clicks a button. For this, "
-"we flesh out the signal handler which we defined above, "
-"<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'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 ""
 
-#: C/guitar-tuner.vala.page:241(p)
+#: C/combobox.js.page:203(p)
 msgid ""
-"The <code>Gtk.Button</code> that was clicked is passed as an argument "
-"(<code>sender</code>) to <code>on_button_clicked</code>. We can get the "
-"label of that button by using <code>get_child</code>, and then get the text "
-"from that label using <code>get_label</code>."
+"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 ""
 
-#: C/guitar-tuner.vala.page:242(p)
+#: C/combobox.js.page:204(p) C/comboboxtext.js.page:147(p)
 msgid ""
-"The switch statement compares the label text to the notes that we can play, "
-"and <code>play_sound</code> is called with the frequency appropriate for "
-"that note. This plays the tone; we have a working guitar tuner!"
+"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 ""
 
-#: C/guitar-tuner.vala.page:248(p) C/guitar-tuner.cpp.page:251(p)
-#: C/guitar-tuner.c.page:251(p)
+#: C/combobox.js.page:205(p) C/comboboxtext.js.page:148(p)
 msgid ""
-"If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
-"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-"and enjoy!"
+"After we create the MessageDialog, we connect its response signal to the "
+"_onDialogResponse function, then tell it to show itself."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:253(p)
+#: C/combobox.js.page:216(p) C/comboboxtext.js.page:159(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
+"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 ""
 
-#: C/guitar-tuner.vala.page:258(p)
-#, fuzzy
-#| 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>."
+#: C/combobox.js.page:223(p)
 msgid ""
-"To find out more about the Vala programming language you might want to check "
-"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
-"link> and the <link href=\"http://valadoc.org/\";>Vala API Documentation</"
-"link>"
+"Finally, we create a new instance of the finished ComboBoxExample class, and "
+"set the application running."
 msgstr ""
-"Para atopar mÃis informaciÃn sobre a linguaxe de programaciÃn Vala pode "
-"visitar <link href=\"http://live.gnome.org/Vala/Tutorial\";>o titorial de "
-"Vala</link>."
 
-#: C/guitar-tuner.vala.page:267(p) C/guitar-tuner.py.page:236(p)
-#: C/guitar-tuner.cpp.page:272(p) C/guitar-tuner.c.page:264(p)
-msgid "Have the program automatically cycle through the notes."
-msgstr "Facer que o programa reproduza de forma cÃclica as notas."
+#: C/combobox.js.page:239(link)
+msgid "Gtk.CellRendererPixbuf"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:270(p) C/guitar-tuner.py.page:239(p)
-#: C/guitar-tuner.cpp.page:275(p) C/guitar-tuner.c.page:267(p)
-msgid "Make the program play recordings of real guitar strings being plucked."
+#: C/comboboxtext.js.page:7(title)
+msgid "ComboBoxText (JavaScript)"
 msgstr ""
-"Facer que o programa reproduza gravaciÃns de cordas de guitarras que se "
-"estÃn afinando."
 
-#: C/guitar-tuner.vala.page:271(p) C/guitar-tuner.py.page:240(p)
-#: C/guitar-tuner.cpp.page:276(p) C/guitar-tuner.c.page:268(p)
+#: C/comboboxtext.js.page:19(desc)
+msgid "A text-only drop-down menu"
+msgstr ""
+
+#: C/comboboxtext.js.page:22(title)
+msgid "ComboBoxText"
+msgstr ""
+
+#: C/comboboxtext.js.page:24(p)
 msgid ""
-"To do this, you would need to set up a more complicated GStreamer pipeline "
-"which allows you to load and play back music files. You'll have to choose "
-"<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."
+"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 ""
 
-#: C/guitar-tuner.vala.page:272(p) C/guitar-tuner.py.page:241(p)
-#: C/guitar-tuner.cpp.page:277(p) C/guitar-tuner.c.page:269(p)
+#: C/comboboxtext.js.page:25(p)
 msgid ""
-"You might need to connect the elements in more complicated ways too. This "
-"could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
-"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."
+"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 ""
 
-#: C/guitar-tuner.vala.page:275(p) C/guitar-tuner.py.page:244(p)
-#: C/guitar-tuner.cpp.page:280(p) C/guitar-tuner.c.page:272(p)
-msgid "Automatically analyze notes that the user plays."
-msgstr "Analizar automaticamente as notas que toca o mÃsico."
+#: C/comboboxtext.js.page:82(title)
+msgid "Creating the ComboBoxText"
+msgstr ""
 
-#: C/guitar-tuner.vala.page:276(p) C/guitar-tuner.py.page:245(p)
-#: C/guitar-tuner.cpp.page:281(p) C/guitar-tuner.c.page:273(p)
+#: C/comboboxtext.js.page:96(p)
 msgid ""
-"You could connect a microphone and record sounds from it using an <link href="
-"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
-"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?"
+"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 ""
 
-#: C/guitar-tuner.py.page:8(desc) C/guitar-tuner.c.page:8(desc)
+#: C/comboboxtext.js.page:97(p)
 msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
-"Shows off how to use the interface designer."
+"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 ""
-"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
-"GNOME. Mostra como usar o deseÃador de interfaces."
 
-#: C/guitar-tuner.py.page:24(p) C/guitar-tuner.cpp.page:24(p)
-#: C/guitar-tuner.c.page:24(p)
+#: C/comboboxtext.js.page:98(p)
 msgid ""
-"In this tutorial, we're going to make a program which plays tones that you "
-"can use to tune a guitar. You will learn how to:"
+"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 ""
-"Neste titorial faremos un programa que reproduce tonos que pode usar para "
-"afinar unha guitarra. Aprenderà como:"
-
-#: C/guitar-tuner.py.page:26(p) C/guitar-tuner.cpp.page:26(p)
-#: C/guitar-tuner.c.page:26(p)
-msgid "Set up a basic project in Anjuta"
-msgstr "Configurar un proxecto bÃsico en Anjuta"
-
-#: C/guitar-tuner.py.page:27(p) C/guitar-tuner.cpp.page:27(p)
-#: C/guitar-tuner.c.page:27(p)
-msgid "Create a simple GUI with Anjuta's UI designer"
-msgstr "Crear unha GUI sinxela co deseÃador de UI de Anjuta"
 
-#: C/guitar-tuner.py.page:28(p) C/guitar-tuner.cpp.page:28(p)
-#: C/guitar-tuner.c.page:28(p)
-msgid "Use GStreamer to play sounds"
-msgstr "Usar GStreamer para reproducir sons."
+#: C/comboboxtext.js.page:108(p)
+msgid ""
+"Finally, we add the ComboBoxText to the window, and tell the window to show "
+"itself and the widget inside it."
+msgstr ""
 
-#: C/guitar-tuner.py.page:33(p)
-msgid "Basic knowledge of the Python programming language"
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Python"
+#: C/comboboxtext.js.page:122(p)
+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."
+msgstr ""
 
-#: C/guitar-tuner.py.page:47(p)
-#, fuzzy
-#| 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."
+#: C/comboboxtext.js.page:146(p)
 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."
+"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 ""
-"Seleccione <gui>GTKmm (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.py.page:50(p)
+#: C/comboboxtext.js.page:166(p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
-"gui> tabs. You should see some code which starts with the lines:"
+"Finally, we create a new instance of the finished ComboBoxTextExample class, "
+"and set the application running."
 msgstr ""
-"Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/guitar_tuner."
-"py</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
-"DeberÃa ver algo de cÃdigo que comece coas liÃas:"
 
-#: C/guitar-tuner.py.page:59(title)
-msgid "Run the code for the first time"
-msgstr "Executar o cÃdigo por primeira vez"
+#: C/comboboxtext.js.page:182(link)
+msgid "Gtk.ComboBoxText"
+msgstr ""
 
-#: C/guitar-tuner.py.page:60(p)
-msgid ""
-"Most of the code in the file is template code. It loads an (empty) window "
-"from the user interface description file and shows it. More details are "
-"given below; skip this list if you understand the basics:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/colorbutton.vala.page:23(None) C/colorbutton.py.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/colorbutton.png'; md5=904539d26fe367bf99f9a0961cfc9a03"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/colorbutton.vala.page:7(title)
+msgid "ColorButton (Vala)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:64(p)
-msgid ""
-"The <code>import</code> lines at the top include the tell Python to load the "
-"user interface and system libraries needed."
+#: C/colorbutton.vala.page:19(desc) C/colorbutton.py.page:17(desc)
+msgid "A button to launch a color selection dialog"
 msgstr ""
 
-#: C/guitar-tuner.py.page:68(p)
-msgid ""
-"A class is declared that will be the main class for our application. In the "
-"<code>__init__</code> method the main window is loaded from the GtkBuilder "
-"file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
+#: C/colorbutton.vala.page:22(title) C/colorbutton.py.page:20(title)
+#, fuzzy
+#| msgid "Button"
+msgid "ColorButton"
+msgstr "BotÃn"
+
+#: C/colorbutton.vala.page:24(p)
+msgid "RGB values of the selected color are shown in the label."
 msgstr ""
 
-#: C/guitar-tuner.py.page:71(p)
-msgid ""
-"Connecting signals is how you define what happens when you push a button, or "
-"when some other event happens. Here, the <code>destroy</code> method is "
-"called (and quits the app) when you close the window."
+#: C/colorbutton.vala.page:31(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.ColorButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/colorbutton.vala.page:32(link)
+msgid "Gdk.RGBA"
 msgstr ""
 
-#: C/guitar-tuner.py.page:74(p)
-msgid ""
-"The <code>main</code> function is run by default when you start a Python "
-"application. It just creates an instance of the main class and starts the "
-"main loop to bring up the window."
+#: C/colorbutton.py.page:7(title)
+msgid "ColorButton (Python)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:79(p)
+#: C/colorbutton.py.page:22(p)
 msgid ""
-"This code is ready to be used, so you can run it by clicking "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+"This ColorButton launches a color selection dialog and prints in the "
+"terminal the RGB values of the color selected."
 msgstr ""
-"Este cÃdigo està listo para o seu uso, polo que pode executalo premendo "
-"<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq>."
 
-#: C/guitar-tuner.py.page:84(p)
-msgid ""
-"A description of the user interface (UI) is contained in the GtkBuilder "
-"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
-"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."
+#: C/colorbutton.py.page:32(title)
+msgid "Useful methods for a ColorButton widget"
 msgstr ""
 
-#: C/guitar-tuner.py.page:86(p) C/guitar-tuner.cpp.page:86(p)
-#: C/guitar-tuner.c.page:90(p)
+#: C/colorbutton.py.page:33(p)
 msgid ""
-"The layout of every UI in GTK+ is organized using boxes and tables. Let's "
-"use a vertical <gui>GtkButtonBox</gui> here to assign six <gui>GtkButtons</"
-"gui>, one for each of the six guitar strings."
+"<code>set_color(color)</code>, where the <code>color</code> is defined as in "
+"the example, sets the color of the ColorButton, which by default is black. "
+"<code>get_color()</code> returns the color."
 msgstr ""
 
-#: C/guitar-tuner.py.page:92(p) C/guitar-tuner.cpp.page:92(p)
-#: C/guitar-tuner.c.page:96(p)
-msgid ""
-"Select a <gui>GtkButtonBox</gui> from the <gui>Container</gui> section of "
-"the <gui>Palette</gui> on the right and put it into the window. In the "
-"<gui>Properties</gui> pane, set the number of elements to 6 (for the six "
-"strings) and the orientation to vertical."
+#: C/colorbutton.py.page:40(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "GtkColorButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/colorbutton.py.page:41(link)
+msgid "GtkColorChooser"
 msgstr ""
 
-#: C/guitar-tuner.py.page:96(p) C/guitar-tuner.cpp.page:96(p)
-#: C/guitar-tuner.c.page:100(p)
-msgid ""
-"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
-"first part of the box."
+#: C/colorbutton.py.page:42(link)
+msgid "RGBA Colors"
 msgstr ""
 
-#: C/guitar-tuner.py.page:99(p) C/guitar-tuner.c.page:103(p)
-msgid ""
-"While the button is still selected, change the <gui>Label</gui> property in "
-"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/checkbutton.vala.page:21(None) C/checkbutton.py.page:22(None)
+#: C/checkbutton.js.page:21(None) C/checkbutton.c.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/checkbutton.png'; md5=7921a6812c87dd2b3781f4fad241e858"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+
+#: C/checkbutton.vala.page:7(title)
+msgid "CheckButton (Vala)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:102(p) C/guitar-tuner.c.page:106(p)
-msgid ""
-"Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
-"look for the <code>clicked</code> signal of the button. You can use this to "
-"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>."
+#: C/checkbutton.vala.page:17(desc)
+msgid "Create widgets with a disrete toggle button"
 msgstr ""
 
-#: C/guitar-tuner.py.page:114(title)
-msgid "Write the signal handler"
-msgstr "Escribir o manexador de sinais"
+#: C/checkbutton.vala.page:20(title) C/checkbutton.py.page:21(title)
+#: C/checkbutton.js.page:20(title) C/checkbutton.c.page:20(title)
+#, fuzzy
+#| msgid "Button"
+msgid "CheckButton"
+msgstr "BotÃn"
 
-#: C/guitar-tuner.py.page:115(p) C/guitar-tuner.c.page:119(p)
-msgid ""
-"In the UI designer, you made it so that all of the buttons will call the "
-"same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
-"to add that function in the source file."
+#: C/checkbutton.vala.page:22(p) C/checkbutton.py.page:23(p)
+#: C/checkbutton.c.page:22(p)
+msgid "This CheckButton toggles the title."
 msgstr ""
 
-#: C/guitar-tuner.py.page:116(p)
-msgid ""
-"To do this, open <file>guitar_tuner.py</file> while the user interface file "
-"is still open. Switch to the <gui>Signals</gui> tab, which you already used "
-"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:"
+#: C/checkbutton.vala.page:29(link) C/checkbutton.js.page:139(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "Gtk.CheckButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/checkbutton.py.page:7(title)
+msgid "CheckButton (Python)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:122(p)
-msgid ""
-"This signal handler has two arguments: the usual Python class pointer, and "
-"the <code>Gtk.Button</code> that called the function."
+#: C/checkbutton.py.page:18(desc)
+msgid "A toggle button in a window"
 msgstr ""
 
-#: C/guitar-tuner.py.page:123(p) C/guitar-tuner.c.page:129(p)
+#: C/checkbutton.py.page:32(p)
 msgid ""
-"For now, we'll leave the signal handler empty while we work on writing the "
-"code to produce sounds."
+"We could also create the CheckButton with <code>button = Gtk.CheckButton."
+"new_with_label(\"Show Title\")</code>."
 msgstr ""
 
-#: C/guitar-tuner.py.page:128(p) C/guitar-tuner.js.page:37(p)
-#: C/guitar-tuner.c.page:134(p)
-msgid ""
-"GStreamer is GNOME's multimedia framework â you can use it for playing, "
-"recording, and processing video, audio, webcam streams and the like. Here, "
-"we'll be using it to produce single-frequency tones."
+#: C/checkbutton.py.page:37(title)
+msgid "Useful methods for a CheckButton widget"
 msgstr ""
-"GStreamer à un marco de traballo multimedia de GNOME â vostede pode usalo "
-"para reproducir, gravar e procesar vÃdeo, son, fluxos de cÃmara web e "
-"semellantes. AquÃ, usarÃmolo para producir tonos dunha Ãnica frecuencia."
 
-#: C/guitar-tuner.py.page:129(p) C/guitar-tuner.js.page:38(p)
-#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:135(p)
+#: C/checkbutton.py.page:49(link) C/checkbutton.c.page:29(link)
+#, fuzzy
+#| msgid "Gtk.ButtonsType"
+msgid "GtkCheckButton"
+msgstr "Gtk.ButtonsType"
+
+#: C/checkbutton.js.page:7(title)
+#, fuzzy
+#| msgid "Classes in JavaScript"
+msgid "CheckButton (JavaScript)"
+msgstr "Clases en JavaScript"
+
+#: C/checkbutton.js.page:17(desc)
+#, fuzzy
+#| msgid "A button which can be connected to other widgets"
+msgid "A box which can be checked or unchecked"
+msgstr "Un botÃn que pode conectarse a outros widgets"
+
+#: C/checkbutton.js.page:22(p)
 msgid ""
-"Conceptually, GStreamer works as follows: You create a <em>pipeline</em> "
-"containing several processing elements going from the <em>source</em> to the "
-"<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."
+"This application has a CheckButton. Whether the box is checked dictates "
+"whether the window's title bar shows anything."
 msgstr ""
 
-#: C/guitar-tuner.py.page:138(p) C/guitar-tuner.cpp.page:129(p)
-#: C/guitar-tuner.c.page:144(p)
+#: C/checkbutton.js.page:23(p)
 msgid ""
-"In this simple example we will use a tone generator source called "
-"<code>audiotestsrc</code> and send the output to the default system sound "
-"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>."
+"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 ""
 
-#: C/guitar-tuner.py.page:140(p)
+#: C/checkbutton.js.page:66(p)
 msgid ""
-"Change the import line in <file>guitar_tuner.py</file>, just at the "
-"beginning 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 ""
 
-#: C/guitar-tuner.py.page:142(p)
+#: C/checkbutton.js.page:80(p)
 msgid ""
-"The <code>Gst</code> includes the GStreamer library. You also need to "
-"initialise GStreamer properly which is done in the <code>main()</code> "
-"method with this call added above the <code>app = GUI()</code> line:"
+"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 ""
 
-#: C/guitar-tuner.py.page:146(p)
+#: C/checkbutton.js.page:84(title)
 #, fuzzy
-#| msgid ""
-#| "Then, copy the following function into <file>main.c</file> above the "
-#| "empty <code>on_button_clicked</code> function:"
+#| msgid "Reacting to the clicks"
+msgid "Creating the checkbutton"
+msgstr "Reaccionar aos clics"
+
+#: C/checkbutton.js.page:96(p)
 msgid ""
-"Then, copy the following function into the class in <file>guitar_tuner.py</"
-"file> somewhere:"
+"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 ""
-"Despois, copie a seguinte funciÃn en <file>main.c</file> enriba da funciÃn "
-"<code>on_button_clicked</code> baleira:"
 
-#: C/guitar-tuner.py.page:162(p)
+#: C/checkbutton.js.page:102(p)
 msgid ""
-"The first three lines create source and sink GStreamer elements and a "
-"pipeline element (which will be used as a container for the other two "
-"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)."
+"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 ""
 
-#: C/guitar-tuner.py.page:165(p)
-msgid ""
-"The call to <code>source.set_property</code> sets the <code>freq</code> "
-"property of the source element to <code>frequency</code>, which was passed "
-"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."
+#: C/checkbutton.js.page:106(title)
+msgid "Function which handles the checkbutton's toggling"
 msgstr ""
 
-#: C/guitar-tuner.py.page:168(p)
+#: C/checkbutton.js.page:120(p)
 msgid ""
-"The next two lines call <code>pipeline.add</code>, putting the source and "
-"sink into the pipeline. The pipeline can contain multiple other GStreamer "
-"elements. In general, you can add as many elements as you like to the "
-"pipeline by calling its <code>add</code> method repeatedly."
+"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 ""
 
-#: C/guitar-tuner.py.page:171(p)
+#: C/checkbutton.js.page:126(p)
 msgid ""
-"Next <code>pipeline.set_state</code> is used to start playback, by setting "
-"the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
+"Finally, we create a new instance of the finished CheckButtonExample class, "
+"and set the application running."
 msgstr ""
-"A seguinte <code>pipeline.set_state</code> Ãsase para iniciar a reproduciÃn, "
-"estabelecendo o estado da tuberÃa a reproduciÃn (<code>Gst.State.PLAYING</code>)."
 
-#: C/guitar-tuner.py.page:178(title) C/guitar-tuner.c.page:193(title)
-msgid "Stopping playback"
-msgstr "Deter a reproduciÃn"
+#: C/checkbutton.c.page:7(title)
+msgid "CheckButton (C)"
+msgstr ""
 
-#: C/guitar-tuner.py.page:179(p)
-msgid ""
-"We don't want to play an annoying tone forever, so the last thing "
-"<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
-"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>."
+#: C/checkbutton.c.page:13(email)
+#, fuzzy
+#| msgid "tiffany antopolski gmail com"
+msgid "tiffany antpoolski gmail com"
+msgstr "tiffany antopolski gmail com"
+
+#: C/checkbutton.c.page:17(desc)
+msgid "Create widgets with a discrete ToggleButton"
 msgstr ""
 
-#: C/guitar-tuner.py.page:180(p)
-msgid ""
-"Now, we'll write the <code>pipeline_stop</code> function which is called by "
-"<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
-"the <code>play_sound</code> function:"
+#: C/c.page:6(title)
+msgid "C"
+msgstr "C"
+
+#: C/c.page:15(title)
+msgid "Tutorials, code samples, and plaform demos in C"
 msgstr ""
-"Agora, escriÌbese o coÌdigo da funcioÌn <code>pipeline_stop</code>, chamada por "
-"<code>GObject.timeout_add</code>. Inserte o coÌdigo seguinte <em>enriba</em> "
-"da funcioÌn <code>play_sound</code>:"
 
-#: C/guitar-tuner.py.page:186(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/buttonbox.py.page:23(None)
 msgid ""
-"You need to define the <code>LENGTH</code> constant inside the class, so add "
-"this code at the beginning of the main class:"
+"@@image: 'media/buttonbox_calculator.png'; "
+"md5=ce0de08b7ac66f517290e33e6d33d508"
 msgstr ""
 
-#: C/guitar-tuner.py.page:191(p)
-msgid ""
-"The call to <code>pipeline.set_state</code> pauses the playback of the "
-"pipeline."
+#: C/buttonbox.py.page:7(title)
+msgid "ButtonBox (Python)"
 msgstr ""
 
-#: C/guitar-tuner.py.page:195(title) C/guitar-tuner.c.page:211(title)
-msgid "Define the tones"
-msgstr "Definir os tonos"
+#: C/buttonbox.py.page:18(desc)
+msgid "A container for arranging buttons"
+msgstr ""
 
-#: C/guitar-tuner.py.page:196(p)
-msgid ""
-"We want to play the correct sound when the user clicks a button. First of "
-"all, we need to know the frequencies for the six guitar strings, which are "
-"defined (at the beginning of the main class) inside a dictionary so we can "
-"easily map them to the names of the strings:"
+#: C/buttonbox.py.page:21(title)
+#, fuzzy
+#| msgid "Button"
+msgid "ButtonBox"
+msgstr "BotÃn"
+
+#: C/buttonbox.py.page:24(p)
+msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
 msgstr ""
 
-#: C/guitar-tuner.py.page:209(p) C/guitar-tuner.c.page:221(p)
-msgid ""
-"Now to flesh out the signal handler that we defined earlier, "
-"<code>on_button_clicked</code>. We could have connected every button to a "
-"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:"
+#: C/buttonbox.py.page:34(title)
+msgid "Uselful methods for a ButtonBox widget"
 msgstr ""
 
-#: C/guitar-tuner.py.page:217(p)
+#: C/buttonbox.py.page:36(p)
 msgid ""
-"The button that was clicked is passed as an argument (<code>button</code>) "
-"to <code>on_button_clicked</code>. We can get the label of that button by "
-"using <code>button.get_child</code>, and then get the text from that label "
-"using <code>label.get_label</code>."
+"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 ""
 
-#: C/guitar-tuner.py.page:218(p)
+#: C/buttonbox.py.page:37(p)
 msgid ""
-"The label text is then used as a key for the dictionary and "
-"<code>play_sound</code> is called with the frequency appropriate for that "
-"note. This plays the tone; we have a working guitar tuner!"
+"<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 ""
 
-#: C/guitar-tuner.py.page:223(p)
+#: C/buttonbox.py.page:38(p)
 msgid ""
-"All of the code should now be ready to go. Click <guiseq><gui>Run</"
-"gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
+"<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets "
+"whether the child is exempted from homogeous sizing. Default value is "
+"<code>False</code>."
 msgstr ""
-"Todo o cÃdigo deberÃa estar listo. Prema <guiseq><gui>Executar</"
-"gui><gui>Executar</gui></guiseq> para iniciar o aplicativo. GÃceo!"
 
-#: C/guitar-tuner.py.page:228(p)
+#: C/buttonbox.py.page:39(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
+"<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
+"buttons of the box."
 msgstr ""
-"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
-"<link href=\"guitar-tuner/guitar-tuner.py\">coÌdigo de referencia</link>."
 
-#: C/guitar-tuner.js.page:14(desc)
+#: C/buttonbox.py.page:47(link)
 #, fuzzy
-#| msgid ""
-#| "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
-#| "GNOME. Shows off how to use the interface designer."
-msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
-msgstr ""
-"Usar GTK+ y GStreamer para construÃr un sinxelo afinador de guitarra para "
-"GNOME. Mostra como usar o deseÃador de interfaces."
+#| msgid "Gtk.ButtonsType"
+msgid "GtkButtonBox"
+msgstr "Gtk.ButtonsType"
 
-#: C/guitar-tuner.js.page:20(p)
-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."
+#: C/buttonbox.py.page:48(link)
+msgid "GtkBox"
 msgstr ""
 
-#: C/guitar-tuner.js.page:26(link) C/guitar-tuner.js.page:75(title)
-msgid "Buttons for the tunes"
-msgstr ""
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/button.vala.page:23(None) C/button.py.page:23(None)
+#: C/button.js.page:21(None) C/button.c.page:24(None)
+#, fuzzy
+#| msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgid "@@image: 'media/button.png'; md5=8d69efbb3a0d3e043af6139b6492171c"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
 
-#: C/guitar-tuner.js.page:27(link) C/guitar-tuner.js.page:100(title)
-msgid "Making the sounds with GStreamer"
-msgstr ""
+#: C/button.vala.page:7(title)
+#, fuzzy
+#| msgid "Button"
+msgid "Button (Vala)"
+msgstr "BotÃn"
 
-#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:124(title)
-msgid "Connecting buttons to playSound"
+#: C/button.vala.page:18(desc) C/button.py.page:18(desc)
+#: C/button.c.page:19(desc)
+msgid "A button widget which emits a signal when clicked"
 msgstr ""
 
-#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:147(title)
-msgid "The whole program"
-msgstr ""
+#: C/button.vala.page:21(title)
+msgid "Button widget"
+msgstr "Widget de botÃn"
 
-#: C/guitar-tuner.js.page:48(p)
-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"
+#: C/button.vala.page:24(p) C/button.py.page:24(p)
+msgid "A button widget connected to a simple callback function."
 msgstr ""
 
-#: C/guitar-tuner.js.page:58(p)
+#: C/button.vala.page:28(p)
 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 this sample we used the following: <link href=\"http://www.valadoc.org/gtk";
+"+-3.0/Gtk.Button.html\">Gtk.Button</link>"
 msgstr ""
 
-#: C/guitar-tuner.js.page:72(p)
-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()"
+#: C/button.py.page:7(title)
+msgid "Button (Python)"
 msgstr ""
 
-#: C/guitar-tuner.js.page:96(p)
-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."
+#: C/button.py.page:21(title) C/button.js.page:20(title)
+#: C/button.c.page:22(title)
+msgid "Button"
+msgstr "BotÃn"
+
+#: C/button.py.page:33(title)
+msgid "Useful methods for a Button widget"
 msgstr ""
 
-#: C/guitar-tuner.js.page:97(p)
+#: C/button.py.page:35(p)
 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 "
-"to code that something first."
+"<code>button = Gtk.Button(label=\"Click me\")</code> could also be used "
+"create a button and set the text directly. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
 msgstr ""
 
-#: C/guitar-tuner.js.page:120(p)
+#: C/button.py.page:37(p)
 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 pause after a "
-"500ms."
+"<code>set_relief(Gtk.ReliefStyle.NONE)</code> sets to none the relief style "
+"of the edges of the Gtk.Button - as opposed to <code>Gtk.ReliefStyle.NORMAL</"
+"code>."
 msgstr ""
 
-#: C/guitar-tuner.js.page:121(p)
+#: C/button.py.page:38(p)
 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."
+"If the label of the button is a <link href=\"http://developer.gnome.org/gtk3/";
+"unstable/gtk3-Stock-Items.html\">stock icon</link>, <code>set_use_stock(True)"
+"</code> sets the label as the name of the corresponding stock icon."
 msgstr ""
 
-#: C/guitar-tuner.js.page:144(p)
+#: C/button.py.page:39(p)
 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 yelp-check validate "
-"*pagechoose a button to be connected and type E.connect(\"clicked\", function"
-"(){playSound(frequencies.E);}); The connect tells that when pushing E, "
-"something should happen. The \"clicked\" tells the type of something "
-"happening to E and then in the function(){}; we the playSound happen with "
-"the correct tune that should be associated to the button."
+"To set an image (e.g. a stock image) for the button <code>button</code>:"
 msgstr ""
 
-#: C/guitar-tuner.js.page:148(p)
+#: C/button.py.page:40(code)
+#, no-wrap
 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)."
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
+"button.set_image(image)"
 msgstr ""
 
-#: C/guitar-tuner.js.page:228(p)
+#: C/button.py.page:44(p)
 msgid ""
-"To run this application open Terminal, go to the folder where your "
-"application is stored and then run"
+"You should not set a label for the button after this, otherwise it will show "
+"the label and not the image."
 msgstr ""
 
-#: C/guitar-tuner.js.page:228(input)
-msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
+#: C/button.py.page:45(p)
+msgid ""
+"If we use <code>set_focus_on_click(False)</code> the button will not grab "
+"focus when it is clicked by the mouse. This could be useful in places like "
+"toolbars, so that the keyboard focus is not removed from the main area of "
+"the application."
 msgstr ""
 
-#: C/guitar-tuner.js.page:233(p)
+#: C/button.js.page:7(title)
 #, fuzzy
-#| msgid ""
-#| "If you run into problems with the tutorial, compare your code with this "
-#| "<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
-msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.js\">reference code</link>."
+#| msgid "JavaScript"
+msgid "Button (JavaScript)"
+msgstr "JavaScript"
+
+#: C/button.js.page:17(desc)
+msgid "A button which can be connected to other widgets"
+msgstr "Un botÃn que pode conectarse a outros widgets"
+
+#: C/button.js.page:22(p)
+msgid "A button widget that changes its label when you click it."
 msgstr ""
-"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
-"<link href=\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
 
-#: C/guitar-tuner.cpp.page:8(desc)
+#: C/button.c.page:7(title)
 #, fuzzy
-#| msgid ""
-#| "Use Gtkmm and GStreamermm to build a simple guitar tuner application for "
-#| "GNOME. Shows off how to use the interface designer."
+#| msgid "Button"
+msgid "Button (C)"
+msgstr "BotÃn"
+
+#: C/button.c.page:25(p)
 msgid ""
-"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
-"GNOME. Shows off how to use the interface designer."
+"A button widget connected to a callback function that reverses its label "
+"when clicked."
 msgstr ""
-"Usar GTKmm y GStreamer para construiÌr un sinxelo afinador de guitarra para "
-"GNOME. Mostra como usar o desenÌador de interfaces."
 
-#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:21(title)
-msgid "Guitar Tuner"
-msgstr "Afinador de guitarra"
+#: C/button.c.page:36(link)
+msgid "Unicode Manipulation"
+msgstr ""
 
-#: C/guitar-tuner.cpp.page:33(p)
-msgid "Basic knowledge of the C++ programming language"
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn C++"
+#: C/bug-filing.page:10(email)
+msgid "tiffany antopolski com"
+msgstr ""
 
-#: C/guitar-tuner.cpp.page:47(p)
-msgid ""
-"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-"<file>guitar-tuner</file> as project name and directory."
+#: C/bug-filing.page:18(title)
+msgid "Help make <app>GNOME Developer Tutorials</app> better"
 msgstr ""
-"Seleccione <gui>GTKmm (Simple)</gui> desde a lapela <gui>C++</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.cpp.page:50(p)
-msgid ""
-"Make sure that <gui>Configure external packages</gui> is selected. On the "
-"next page, select <em>gstreamermm-0.10</em> from the list to include the "
-"GStreamermm library in your project."
+#: C/bug-filing.page:21(title)
+msgid "Report a bug or suggest an improvement"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:54(p)
+#: C/bug-filing.page:22(p)
 msgid ""
-"Click <gui>Finished</gui> and the project will be created for you. Open "
-"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. You should see some code which starts with the lines:"
+"<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 ""
-"Prema <gui>Rematar</gui> para crear o proxecto. Abra <file>src/main.cc</"
-"file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. DeberiÌa "
-"ver alguÌn coÌdigo que comeza coas linÌas:"
 
-#: C/guitar-tuner.cpp.page:68(p)
+#: C/bug-filing.page:25(p)
 msgid ""
-"The three <code>#include</code> lines at the top include the <code>config</"
-"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
-"and <code>iostream</code> (STL). Functions from these libraries are used in "
-"the rest of the code."
+"This is a bug tracking system where users and developers can file details "
+"about bugs, crashes and request enhancements."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:71(p)
+#: C/bug-filing.page:28(p)
 msgid ""
-"The <code>main</code> function creates a new window by opening a GtkBuilder "
-"file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
-"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."
+"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 ""
 
-#: C/guitar-tuner.cpp.page:74(p)
+#: C/bug-filing.page:31(p)
 msgid ""
-"Afterwards it calls a few functions which set up and then run the "
-"application. The <code>kit.run</code> function starts the GTKmm main loop, "
-"which runs the user interface and starts listening for events (like clicks "
-"and key presses)."
+"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 ""
 
-#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:88(p)
+#: C/bug-filing.page:35(p)
 msgid ""
-"A description of the user interface (UI) is contained in the GtkBuilder "
-"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
-"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."
+"To file your bug, choose the component <gui>platform-demos</gui> in the "
+"<gui>Component</gui> menu."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:99(p)
+#: C/bug-filing.page:38(p)
 msgid ""
-"While the button is still selected, change the <gui>Label</gui> property in "
-"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
-"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."
+"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 ""
 
-#: C/guitar-tuner.cpp.page:103(p)
+#: C/bug-filing.page:42(p)
 msgid ""
-"Repeat the above steps for the other buttons, adding the next 5 strings with "
-"the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
-"and the names <em>button_A</em>, etc."
+"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 ""
-"Repita os pasos anteriores para o resto de botÃns, engadindo as 5 cordas "
-"restantes coas etiquetas <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e "
-"<em>e</em> e os nomes <em>botÃn_A</em>, etc."
 
-#: C/guitar-tuner.cpp.page:106(p)
+#: C/beginner.vala.page:8(title)
+#, fuzzy
+#| msgid "0 Beginner's Tutorials"
+msgid "Beginner Tutorials (Vala)"
+msgstr "0. Tutoriais para principiantes"
+
+#: C/beginner.vala.page:12(desc) C/beginner.c.page:12(desc)
 msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and close the file."
+"A beginner's guide to GUI programming using GTK+, including code samples and "
+"practice exercises."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:113(p)
+#: C/beginner.vala.page:19(title) C/beginner.c.page:20(title)
+msgid "0 Beginner's Tutorials"
+msgstr "0. Tutoriais para principiantes"
+
+#: C/beginner.vala.page:21(p) C/beginner.c.page:22(p)
 msgid ""
-"GStreamer is GNOME's multimedia framework â you can use it for playing, "
-"recording, and processing video, audio, webcam streams and the like. Here, "
-"we'll be using it to produce single-frequency tones. GStreamermm is the C++ "
-"binding to GStreamer which we will use here."
+"Although these tutorials are designed for beginners, we can't cover all the "
+"basics. Before attempting to follow these tutorials, you are expected to be "
+"familiar with the following concepts:"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:123(title)
-msgid "Using GStreamermm"
-msgstr "Usar GStreamermm"
+#: C/beginner.vala.page:23(p) C/beginner.c.page:24(p)
+msgid "Object oriented programming"
+msgstr "ProgramaciÃn orientada a obxectos"
 
-#: C/guitar-tuner.cpp.page:124(p)
-msgid ""
-"To use GStreamermm, it has to be initialised. We do that by adding the "
-"following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
-"line in <file>main.cc</file>:"
+#: C/beginner.vala.page:24(p)
+#, fuzzy
+#| msgid "Basic knowledge of the Vala programming language"
+msgid "The Vala programming language:"
+msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Vala"
+
+#: C/beginner.vala.page:26(link)
+msgid "The Vala Tutorial"
+msgstr "O titorial de Vala"
+
+#: C/beginner.vala.page:27(link)
+msgid "Sample Vala code"
+msgstr "Exemplo de cÃdigo en Vala"
+
+#: C/beginner.vala.page:36(title) C/beginner.js.page:36(title)
+#: C/beginner.c.page:33(title)
+msgid "Tutorials"
+msgstr "Titoriais"
+
+#: C/beginner.vala.page:40(title) C/beginner.py.page:27(title)
+#: C/beginner.js.page:40(title) C/beginner.c.page:37(title)
+msgid "Code samples"
+msgstr "Exemplos de cÃdigo"
+
+#: C/beginner.vala.page:45(p)
+msgid "Copy and paste the code into <var>filename</var>.vala"
 msgstr ""
-"Para usar GStreamermm, dÃbese inicializar. Isto faise engadindo a seguinte "
-"liÃa de cÃdigo xunto à liÃa <code>Gtk::Main kit(argc, argv);</code> en "
-"<file>main.cc</file>:"
 
-#: C/guitar-tuner.cpp.page:126(code)
+#: C/beginner.vala.page:47(screen)
 #, no-wrap
-msgid "\tGst::init (argc, argv);"
-msgstr "\tGst::init (argc, argv);"
+msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
+msgstr "valac --pkg gtk+-3.0 <var>nome_ficheiro</var>.vala"
 
-#: C/guitar-tuner.cpp.page:127(p)
-msgid ""
-"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
-"included in <file>main.cc</file> properly."
-msgstr ""
+#: C/beginner.vala.page:48(screen) C/beginner.c.page:46(screen)
+#: C/beginner.c.page:60(screen)
+#, no-wrap
+msgid "./<var>filename</var>"
+msgstr "./<var>nome_ficheiro</var>"
 
-#: C/guitar-tuner.cpp.page:131(p)
-msgid ""
-"To simplify the handling of the pipeline we will define a helper class "
-"<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
-"example simple, whereas you might usually want to use a separate file:"
+#: C/beginner.vala.page:52(title) C/beginner.py.page:29(title)
+#: C/beginner.js.page:49(title) C/beginner.c.page:63(title)
+msgid "Windows"
+msgstr "Xanelas"
+
+#: C/beginner.vala.page:55(title) C/beginner.py.page:32(title)
+#: C/beginner.js.page:51(title) C/beginner.c.page:66(title)
+msgid "Display widgets"
+msgstr "Widgets de visualizaciÃn"
+
+#: C/beginner.vala.page:57(title) C/beginner.py.page:34(title)
+#: C/beginner.js.page:53(title) C/beginner.c.page:68(title)
+msgid "Buttons and toggles"
+msgstr "BotÃns e casillas"
+
+#: C/beginner.vala.page:59(title) C/beginner.py.page:36(title)
+#: C/beginner.js.page:55(title) C/beginner.c.page:70(title)
+msgid "Numeric and text data entry"
+msgstr "Entrada de datos numÃrica e de texto"
+
+#: C/beginner.vala.page:61(title) C/beginner.py.page:38(title)
+#: C/beginner.js.page:57(title) C/beginner.c.page:72(title)
+msgid "Multiline text editor"
 msgstr ""
-"Para simplificar a xestiÃn da tuberÃa definiremos unha clase axudante "
-"<code>Sound</code>. FarÃmolo no ficheiro <file>main.cc</file> para manter "
-"este exemplo o mÃis simple posÃbel, aÃnda que normalmente deberÃa facerse "
-"nun ficheiro separado:"
 
-#: C/guitar-tuner.cpp.page:178(p)
-msgid "The code has the following purpose:"
-msgstr "O cÃdigo ten o seguinte propÃsito:"
+#: C/beginner.vala.page:63(title) C/beginner.py.page:40(title)
+#: C/beginner.js.page:59(title) C/beginner.c.page:74(title)
+msgid "Menu, combo box and toolbar widgets"
+msgstr "Widgets de menÃ, caixa combinada e barra de ferramentas"
 
-#: C/guitar-tuner.cpp.page:181(p)
+#: C/beginner.vala.page:65(title) C/beginner.py.page:42(title)
+#: C/beginner.js.page:61(title) C/beginner.c.page:76(title)
+msgid "TreeView widget"
+msgstr "Widget TreeView"
+
+#: C/beginner.vala.page:67(title) C/beginner.py.page:44(title)
+#: C/beginner.js.page:63(title) C/beginner.c.page:78(title)
+msgid "Selectors"
+msgstr "Selectores"
+
+#: C/beginner.vala.page:68(title) C/beginner.py.page:45(title)
+#: C/beginner.js.page:64(title) C/beginner.c.page:79(title)
+msgid "File selectors"
+msgstr "Selectores de ficheiros"
+
+#: C/beginner.vala.page:70(title) C/beginner.py.page:47(title)
+#: C/beginner.js.page:66(title) C/beginner.c.page:81(title)
+msgid "Font selectors"
+msgstr "Selectores de tipos de letra"
+
+#: C/beginner.vala.page:72(title) C/beginner.py.page:49(title)
+#: C/beginner.js.page:68(title) C/beginner.c.page:83(title)
+msgid "Color Selectors"
+msgstr "Selectores de color"
+
+#: C/beginner.vala.page:75(title) C/beginner.py.page:52(title)
+#: C/beginner.js.page:71(title) C/beginner.c.page:86(title)
+msgid "Layout containers"
+msgstr "Contedores da distribuciÃn"
+
+#: C/beginner.vala.page:79(title) C/beginner.py.page:56(title)
+#: C/beginner.js.page:75(title) C/beginner.c.page:90(title)
+msgid "Scrolling"
+msgstr "Desprazamento"
+
+#: C/beginner.vala.page:81(title) C/beginner.py.page:58(title)
+#: C/beginner.js.page:77(title) C/beginner.c.page:92(title)
+msgid "Miscellaneous"
+msgstr "Varios"
+
+#: C/beginner.py.page:8(title)
+msgid "Gtk Widget Sample Code and Tutorials (Python)"
+msgstr ""
+
+#: C/beginner.py.page:12(desc)
 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."
+"A guide to GUI programming using GTK+, including code samples and practice "
+"exercises."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:184(p)
+#: C/beginner.py.page:19(title)
+msgid "Gtk Widget Sample Code and Tutorials"
+msgstr ""
+
+#: C/beginner.py.page:21(p)
 msgid ""
-"<code>start_playing</code> sets the source element to play a particular "
-"frequency and then starts the pipeline so the sound actually starts playing. "
-"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>."
+"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 ""
-"<code>start_playing</code> estabelece o elemento orixe para reproducir unha "
-"frecuencia particular e logo iniciar unha tuberÃa ao son que comece a "
-"reproducirse. Xa que non queremos un son estridente por anos estabeleceremos "
-"un temporizador de 200 ms para deter a reproduciÃn chamando a "
-"<code>stop_playing</code>."
 
-#: C/guitar-tuner.cpp.page:189(p)
+#: C/beginner.js.page:15(desc)
 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."
+"A beginner's guide to writing GNOME applications in JavaScript, including "
+"code samples and practice exercises."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:197(title)
-msgid "Connecting the signals"
-msgstr "Conectar os sinais"
+#: C/beginner.js.page:18(title)
+#, fuzzy
+#| msgid "0 Beginner's Tutorials"
+msgid "0 Beginner's tutorials and samples"
+msgstr "0. Tutoriais para principiantes"
 
-#: C/guitar-tuner.cpp.page:198(p)
+#: C/beginner.js.page:20(p)
 msgid ""
-"We want to play the correct sound when the user clicks a button. That means "
-"that we have to connect to the signal that is fired when the user clicks the "
-"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."
+"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 ""
-"Queremos reproducir o son correcto cando o usuario prema un botÃn. Isto "
-"significa que temos que conectar o sinal que se dispara cando o usuario "
-"preme o botÃn. TamÃn queremos fornecer informaciÃn da funciÃn que se chamou "
-"a reproduciÃn do tono. GTKmm fai isto moi doado a que podemos ligar de forma "
-"sinxela a informaciÃn coa biblioteca <em>sigc</em>."
 
-#: C/guitar-tuner.cpp.page:203(p)
+#: C/beginner.js.page:21(p)
 msgid ""
-"The function that is called when the user clicks a button can be pretty "
-"simple, as all the interesting stuff is done in the helper class now:"
+"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 ""
 
-#: C/guitar-tuner.cpp.page:212(p)
+#: C/beginner.js.page:25(title)
+#, fuzzy
+#| msgid "Getting Ready"
+msgid "Getting Started"
+msgstr "Como comezar"
+
+#: C/beginner.js.page:26(p)
 msgid ""
-"It only calls the helper class we defined before to play the correct "
-"frequencies. With some more clever code we would also have been able to "
-"directly connect to the class without using the function but we will leave "
-"that to use as an exercise."
+"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 ""
 
-#: C/guitar-tuner.cpp.page:216(p)
+#: C/beginner.js.page:28(p)
 msgid ""
-"The code to set up the signals should be added to the <code>main()</code> "
-"function just after the <code>builder-&gt;get_widget(\"main_window\", "
-"main_win);</code> line:"
+"<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 ""
 
-#: C/guitar-tuner.cpp.page:228(p)
+#: C/beginner.js.page:29(p)
 msgid ""
-"At first we create an instance of our helper class that we want to use now "
-"and declare a variable for the button we want to connect to."
+"<link href=\"http://www.gnome.org/getting-gnome/\";>Download GNOME</link> as "
+"part of a distribution, like Fedora, openSUSE, or Ubuntu. Each distribution "
+"has its own instructions for how to get GNOME."
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:232(p)
+#: C/beginner.js.page:30(p)
 msgid ""
-"Next, we receive the button object from the user interface that was created "
-"out of the user interface file. Remember that <em>button_E</em> is the name "
-"we gave to the first button."
+"<link xref=\"set-up-gedit.js\">Set up gedit</link> for writing applications. "
+"GNOME's text editor, gedit, is sometimes just called \"text editor.\""
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:236(p)
+#: C/beginner.js.page:41(p)
 msgid ""
-"Finally we connect the <em>clicked</em> signal. This isn't fully "
-"straightforward because this is done in a fully type-safe way and we "
-"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."
+"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 ""
 
-#: C/guitar-tuner.cpp.page:243(p)
-msgid ""
-"Now that we have set up the <em>E</em> button we also need to connect the "
-"other buttons according to their frequencies: 440 for A, 587.33 for D, "
-"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."
+#: C/beginner.js.page:44(p)
+msgid "Copy and paste the code into <var>filename</var>.js"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:250(p)
-msgid ""
-"All of the code should now be ready to go. Click <guiseq><gui>Build</"
-"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
-"<guiseq><gui>Run</gui><gui>Run</gui></guiseq> to start the application."
+#: C/beginner.js.page:45(p)
+#, fuzzy
+#| msgid "In the terminal type:"
+msgid "In the terminal, type:"
+msgstr "Escriba no terminal:"
+
+#: C/beginner.js.page:46(screen)
+#, no-wrap
+msgid "gjs <var>filename</var>.js"
+msgstr "gjs <var>nomeficheiro</var>.js"
+
+#: C/beginner.c.page:8(title)
+#, fuzzy
+#| msgid "0 Beginner's Tutorials"
+msgid "Beginner's Tutorials (C)"
+msgstr "0. Tutoriais para principiantes"
+
+#: C/beginner.c.page:25(p)
+msgid "The C programming language"
+msgstr "O linguaxe de programacioÌn C"
+
+#: C/beginner.c.page:42(p)
+msgid "Copy and paste the code into <var>filename</var>.c"
 msgstr ""
 
-#: C/guitar-tuner.cpp.page:256(p)
+#: C/beginner.c.page:44(screen)
+#, no-wrap
+msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
+msgstr ""
+
+#: C/beginner.c.page:50(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
+"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 ""
-"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
-"<link href=\"guitar-tuner/guitar-tuner.cc\">coÌdigo de referencia</link>."
 
-#: C/guitar-tuner.cpp.page:260(title)
-msgid "Further Reading"
-msgstr "Lectura complementaria"
+#: C/beginner.c.page:54(p)
+msgid "You can also use the Vala compiler to compile these samples:"
+msgstr ""
 
-#: C/guitar-tuner.cpp.page:261(p)
-msgid ""
-"Many of the things shown above are explained in detail in the <link href="
-"\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</link> "
-"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>."
+#: C/beginner.c.page:57(screen)
+#, fuzzy, no-wrap
+#| msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
+msgid "valac --pkg gtk+-3.0 <var>filename</var>.c"
+msgstr "valac --pkg gtk+-3.0 <var>nome_ficheiro</var>.vala"
+
+#: C/beginner.c.page:59(p)
+msgid "To run:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:33(p)
-msgid "Basic knowledge of the C programming language"
-msgstr "ConÌecemento baÌsico da linguaxe de programacioÌn C"
+#: C/audio-player.vala.page:9(desc)
+msgid "Coming soon..."
+msgstr "Proximamente..."
 
-#: C/guitar-tuner.c.page:47(p)
+#: C/audio-player.vala.page:18(title)
+msgid "3 Audio Player"
+msgstr "3. Reprodutor de son"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/aboutdialog.vala.page:29(None) C/aboutdialog.py.page:22(None)
+#: C/aboutdialog.js.page:20(None) C/aboutdialog.c.page:24(None)
 #, fuzzy
 #| msgid ""
-#| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#| "<file>guitar-tuner</file> as project name and directory."
+#| "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
 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."
+"@@image: 'media/aboutdialog_GMenu.png'; md5=a36117a559fa98e25e2f6b3db593639f"
+msgstr "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
+
+#: C/aboutdialog.vala.page:7(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (Vala)"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.vala.page:25(desc) C/aboutdialog.js.page:16(desc)
+#: C/aboutdialog.c.page:19(desc)
+msgid "Display information about an application"
+msgstr "Mostrar informaciÃn sobre un aplicativo"
+
+#: C/aboutdialog.vala.page:28(title) C/aboutdialog.py.page:21(title)
+#: C/aboutdialog.js.page:19(title) C/aboutdialog.c.page:22(title)
+msgid "AboutDialog"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.vala.page:30(p) C/aboutdialog.c.page:25(p)
+msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
 msgstr ""
-"Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
-"<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
-"<file>guitar-tunner</file> como nome do proxecto e cartafol."
 
-#: C/guitar-tuner.c.page:50(p)
+#: C/aboutdialog.vala.page:40(link)
+msgid "set_default_size"
+msgstr "set_default_size"
+
+#: C/aboutdialog.py.page:7(title)
 #, fuzzy
-#| msgid ""
-#| "Make sure that <gui>Configure external packages</gui> is selected. On the "
-#| "next page, select <em>gstreamer-0.10</em> from the list to include the "
-#| "GStreamer library in your project."
+#| msgid "AboutDialog"
+msgid "AboutDialog (Python)"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.py.page:18(desc)
+#, fuzzy
+#| msgid "Display information about an application"
+msgid "A window that displays information about an application"
+msgstr "Mostrar informaciÃn sobre un aplicativo"
+
+#: C/aboutdialog.py.page:23(p)
 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."
+"An AboutDialog example using Gtk.ApplicationWindow and Menu (the \"about\" "
+"is displayed if \"About\" in the menu is selected)."
 msgstr ""
-"AsegÃrese que <gui>Configurar paquetes externos</gui> està seleccionada. Na "
-"seguinte pÃxina, seleccione <em>gstreamermm-0.10</em> da lista para incluÃr "
-"a biblioteca GStreamer no seu proxecto."
 
-#: C/guitar-tuner.c.page:64(p)
-msgid ""
-"C is a rather verbose language, so don't be surprised that the file contains "
-"quite a lot of code. Most of it is template code. It loads an (empty) window "
-"from the user interface description file and shows it. More details are "
-"given below; skip this list if you understand the basics:"
+#: C/aboutdialog.py.page:35(title)
+msgid "Useful methods for an AboutDialog widget"
 msgstr ""
 
-#: C/guitar-tuner.c.page:71(p)
+#: C/aboutdialog.py.page:45(link) C/aboutdialog.c.page:36(link)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "GtkAboutDialog"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.js.page:6(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (JavaScript)"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.js.page:21(p)
 msgid ""
-"The <code>create_window</code> function creates a new window by opening a "
-"GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
-"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."
+"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 ""
 
-#: C/guitar-tuner.c.page:120(p)
+#: C/aboutdialog.js.page:30(link)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "Gtk.AboutDialog"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.c.page:7(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (C)"
+msgstr "AboutDialog"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:36(None)
+#: C/03_getting_the_signal.js.page:352(None)
+#, fuzzy
+#| msgid "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
+msgid ""
+"@@image: 'media/03_jssignal_01.png'; md5=8d6ecab185f4af4534cc255d62b58b8e"
+msgstr "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:156(None)
+#: C/03_getting_the_signal.js.page:358(None)
+#, fuzzy
+#| msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
 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:"
+"@@image: 'media/03_jssignal_02.png'; md5=ba941390fbafc4a0f653c8f70bca92c0"
+msgstr "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:160(None)
+msgid "@@image: 'media/03_jssignal_02b.png'; md5=THIS FILE DOESN'T EXIST"
 msgstr ""
 
-#: C/guitar-tuner.c.page:128(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:232(None)
+#: C/03_getting_the_signal.js.page:364(None)
+#, fuzzy
+#| msgid "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
 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.)"
-msgstr ""
+"@@image: 'media/03_jssignal_03.png'; md5=49ecf251b0bf57543c8d79a77b6f306d"
+msgstr "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
 
-#: C/guitar-tuner.c.page:146(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:303(None)
+#: C/03_getting_the_signal.js.page:370(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 msgid ""
-"Insert the following line into <file>main.c</file>, just below the <code><!"
-"[CDATA[#include <gtk/gtk.h>]]></code> line:"
+"@@image: 'media/03_jssignal_04.png'; md5=dfc5221ca15ca9fba7d3c76a73804e2d"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+
+#: C/03_getting_the_signal.js.page:20(desc)
+msgid "Create Buttons and other widgets that do things when you click on them."
 msgstr ""
-"Inserte a seguinte lia en <file>main.c</file>, xusto a continuaciÃn da liÃa "
-"<code><![CDATA[#include <gtk/gtk.h>]]></code>:"
 
-#: C/guitar-tuner.c.page:148(p)
+#: C/03_getting_the_signal.js.page:23(title)
+#, fuzzy
+#| msgid "Connecting the signals"
+msgid "3. Getting the Signal"
+msgstr "Conectar os sinais"
+
+#: C/03_getting_the_signal.js.page:25(p)
 msgid ""
-"This includes the GStreamer library. You also need to add a line to "
-"initialize GStreamer; put the following code on the line above the "
-"<code>gtk_init</code> call in the <code>main</code> function:"
+"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 ""
-"Isto inclÃe a biblioteca GSTreamer. TamÃn precisa unha liÃa para inicializar "
-"GStreamer; poÃa a seguinte liÃa de cÃdigo antes da chamada <code>gtk_init</"
-"code> na funciÃn <code>main</code>:"
 
-#: C/guitar-tuner.c.page:150(p)
+#: C/03_getting_the_signal.js.page:31(title)
+#, fuzzy
+#| msgid "A little bit more than a simple \"Hello world\" Gtk application."
+msgid "A basic application"
+msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+
+#: C/03_getting_the_signal.js.page:32(p)
 msgid ""
-"Then, copy the following function into <file>main.c</file> above the empty "
-"<code>on_button_clicked</code> function:"
+"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 ""
-"Despois, copie a seguinte funciÃn en <file>main.c</file> enriba da funciÃn "
-"<code>on_button_clicked</code> baleira:"
 
-#: C/guitar-tuner.c.page:177(p)
+#: C/03_getting_the_signal.js.page:33(p)
 msgid ""
-"The first five lines create source and sink GStreamer elements "
-"(<code>GstElement</code>), and a pipeline element (which will be used as a "
-"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)."
+"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 ""
+
+#: C/03_getting_the_signal.js.page:34(p)
+msgid "Here is an extremely basic example:"
 msgstr ""
 
-#: C/guitar-tuner.c.page:180(p)
+#: C/03_getting_the_signal.js.page:38(p)
 msgid ""
-"The call to <code>g_object_set</code> sets the <code>freq</code> property of "
-"the source element to <code>frequency</code>, which is passed as an argument "
-"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."
+"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 ""
-"A chamada a <code>g_object_set</code> estabelecer a propiedade <code>freq</"
-"code> do elemento orixe a <code>frequency</code>, a cal se pasa como un "
-"argumento à funciÃn <code>play_sound</code>. Isto sà à a frecuencia da nota "
-"en Hertz, algunhas das frecuencias mÃis Ãtiles definiranse mÃis tarde."
 
-#: C/guitar-tuner.c.page:183(p)
+#: C/03_getting_the_signal.js.page:39(p)
 msgid ""
-"<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
-"The pipeline is a <code>GstBin</code>, which is just an element that can "
-"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>."
+"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 ""
 
-#: C/guitar-tuner.c.page:186(p)
+#: C/03_getting_the_signal.js.page:40(p)
 msgid ""
-"Next, <code>gst_element_link</code> is used to connect the elements "
-"together, so the output of <code>source</code> (a tone) goes into the input "
-"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>)."
+"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 ""
 
-#: C/guitar-tuner.c.page:194(p)
+#: C/03_getting_the_signal.js.page:72(p)
 msgid ""
-"We don't want to play an annoying tone forever, so the last thing "
-"<code>play_sound</code> does is to call <code>g_timeout_add</code>. This "
-"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>."
+"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 ""
 
-#: C/guitar-tuner.c.page:195(p)
-msgid ""
-"Now, we'll write the <code>pipeline_stop</code> function which is called by "
-"<code>g_timeout_add</code>. Insert the following code <em>above</em> the "
-"<code>play_sound</code> function:"
+#: C/03_getting_the_signal.js.page:76(title)
+msgid "Click the button"
 msgstr ""
-"Agora, escrÃbese o cÃdigo da funciÃn <code>pipeline_stop</code>, chamada por "
-"<code>g_timeout_add</code>. Inserte o cÃdigo seguinte <em>enriba</em> da "
-"funciÃn <code>play_sound</code>:"
 
-#: C/guitar-tuner.c.page:207(p)
+#: C/03_getting_the_signal.js.page:78(p)
 msgid ""
-"The call to <code>gst_element_set_state</code> pauses the playback of the "
-"pipeline and <code>g_object_unref</code> unreferences the pipeline, "
-"destroying it and freeing its memory."
+"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 ""
-"A chamada <code>gst_element_set_state</code> pausa a reproduciÃn da tuberÃa "
-"e <code>g_object_unref</code> desreferencia a tuberÃa, destrÃea e libera a "
-"sÃa memoria."
 
-#: C/guitar-tuner.c.page:212(p)
-msgid ""
-"We want to play the correct sound when the user clicks a button. First of "
-"all, we need to know the frequencies for the six guitar strings, which are "
-"defined (at the top of <file>main.c</file>) as follows:"
+#: C/03_getting_the_signal.js.page:84(p)
+msgid "First, we create the window itself:"
 msgstr ""
-"QuÃrese reproducir o son correcto cando un usuario preme un botÃn. En "
-"primeiro lugar, precÃsase coÃecer as frecuencias das seis cordas da "
-"guitarra, que estÃn definidas (ao principio de <file>main.c</file>) da "
-"seguinte maneira:"
 
-#: C/guitar-tuner.c.page:244(p)
+#: C/03_getting_the_signal.js.page:94(p)
 msgid ""
-"A pointer to the <code>GtkButton</code> that was clicked is passed as an "
-"argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
-"the label of that button by using <code>gtk_bin_get_child</code>, and then "
-"get the text from that label using <code>gtk_label_get_label</code>."
+"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 ""
 
-#: C/guitar-tuner.c.page:245(p)
+#: C/03_getting_the_signal.js.page:95(p)
 msgid ""
-"The label text is then compared to the notes that we have using "
-"<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
-"frequency appropriate for that note. This plays the tone; we have a working "
-"guitar tuner!"
+"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 ""
 
-#: C/guitar-tuner.c.page:256(p)
+#: C/03_getting_the_signal.js.page:102(p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+"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 ""
-"Se ten problemas ao executar este titorial compare o seu coÌdigo con este "
-"<link href=\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/GtkApplication.vala.page:26(None)
+#: C/03_getting_the_signal.js.page:110(p)
 msgid ""
-"@@image: 'media/GtkApplication.png'; md5=7936026e86fb4f084c256ce28879c908"
+"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 ""
 
-#: C/GtkApplication.vala.page:9(name) C/aboutdialog.vala.page:9(name)
-msgid "Ryan Lortie"
+#: C/03_getting_the_signal.js.page:130(p)
+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 "
+"the new number of cookies. We do this using the Label's set_label method."
 msgstr ""
 
-#: C/GtkApplication.vala.page:10(email) C/aboutdialog.vala.page:10(email)
-msgid "desrt desrt ca"
+#: C/03_getting_the_signal.js.page:131(p)
+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."
 msgstr ""
 
-#: C/GtkApplication.vala.page:19(desc)
-#, fuzzy
-#| msgid "A first Gtk application"
-msgid "A Gtk.ApplicationWindow"
-msgstr "Un primeiro aplicativo en GTK"
+#: C/03_getting_the_signal.js.page:144(p)
+msgid ""
+"Finally, we run the application, using the same kind of code as in our last "
+"tutorial."
+msgstr ""
 
-#: C/GtkApplication.vala.page:22(title)
-msgid "ApplicationWindow"
+#: C/03_getting_the_signal.js.page:153(title)
+msgid "Flip the switch"
 msgstr ""
 
-#: C/GtkApplication.vala.page:30(em)
-msgid "You need to be running Gtk+-3.4 or later for this to work"
+#: C/03_getting_the_signal.js.page:154(p)
+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."
 msgstr ""
 
-#: C/GtkApplication.vala.page:32(p)
+#: C/03_getting_the_signal.js.page:158(p)
 msgid ""
-"This program will not compile until <link href=\"https://bugzilla.gnome.org/";
-"show_bug.cgi?id=674090\">Bug #674090</link> is fixed."
+"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 ""
 
-#: C/GtkApplication.vala.page:38(p)
-msgid "A demonstration of the menu integration."
+#: C/03_getting_the_signal.js.page:162(p)
+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."
 msgstr ""
 
-#: C/GtkApplication.vala.page:105(link) C/aboutdialog.vala.page:76(link)
-#| msgid "A first Gtk application"
-msgid "Gtk.Application"
-msgstr "Gtk.Application"
+#: C/03_getting_the_signal.js.page:163(p)
+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."
+msgstr ""
 
-#: C/GtkApplication.vala.page:106(link) C/aboutdialog.vala.page:77(link)
-msgid "Gtk.ApplicationWindow"
+#: C/03_getting_the_signal.js.page:164(p)
+msgid "Here's how we create the Switch:"
 msgstr ""
 
-#: C/GtkApplication.vala.page:107(link)
-msgid "Menu"
+#: C/03_getting_the_signal.js.page:170(p)
+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:"
 msgstr ""
 
-#: C/GtkApplication.vala.page:108(link)
-msgid "append"
+#: C/03_getting_the_signal.js.page:176(p)
+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."
 msgstr ""
 
-#: C/GtkApplication.vala.page:109(link)
-#| msgid "Selecting"
-msgid "SimpleAction"
-msgstr "SimpleAction"
+#: C/03_getting_the_signal.js.page:181(p)
+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:"
+msgstr ""
 
-#: C/GtkApplication.vala.page:110(link)
-msgid "add_action"
+#: C/03_getting_the_signal.js.page:200(p)
+msgid "And now we arrange everything in the larger Grid like so."
 msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/grid.js.page:19(None)
-#| msgid ""
-#| "@@image: 'media/guitar-tuner-pipeline.png'; "
-#| "md5=5adc952909d92af5dae6954781b4ad5f"
-msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
-msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+#: C/03_getting_the_signal.js.page:208(p)
+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."
+msgstr ""
 
-#: C/grid.js.page:14(desc)
-msgid "Pack widgets in rows and columns"
+#: C/03_getting_the_signal.js.page:209(p)
+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."
 msgstr ""
 
-#: C/grid.js.page:17(title)
-msgid "Grid widget"
+#: C/03_getting_the_signal.js.page:228(title)
+msgid "Tuning the radio"
 msgstr ""
 
-#: C/grid.js.page:20(p)
-msgid "A button widget connected to a progress bar."
+#: C/03_getting_the_signal.js.page:230(p)
+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."
 msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:40(None)
-msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
-msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+#: C/03_getting_the_signal.js.page:234(p)
+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 "
+"window."
+msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:45(None)
-msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-msgstr "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+#: C/03_getting_the_signal.js.page:246(p)
+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."
+msgstr ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:50(None)
-msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
-msgstr "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+#: C/03_getting_the_signal.js.page:256(p)
+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."
+msgstr ""
 
-#: C/getting-ready.page:8(desc)
-msgid "Install GNOME development tools"
-msgstr "Instalar as ferramentas de desenvolvemento de GNOME"
+#: C/03_getting_the_signal.js.page:265(p)
+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."
+msgstr ""
 
-#: C/getting-ready.page:17(title)
-msgid "Getting ready for GNOME development"
-msgstr "PrepÃrese para desenvolver en GNOME"
+#: C/03_getting_the_signal.js.page:266(p)
+msgid "We could also set its active property to true when we create it."
+msgstr ""
 
-#: C/getting-ready.page:20(title)
-msgid "Install the required tools"
-msgstr "Instalar as ferramentas necesarias"
+#: C/03_getting_the_signal.js.page:272(p)
+msgid "Now we arrange everything in our main Grid like usual ..."
+msgstr ""
 
-#: C/getting-ready.page:21(p)
+#: C/03_getting_the_signal.js.page:280(p)
 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."
+"And then we change our _getACookie function to test to see if the cookie "
+"button is the one that's selected."
 msgstr ""
-"Antes de comezar a escribir cÃdigo debe instalar as ferramentas requiridas "
-"para o desenvolvemento de GNOME no seu computador. Isto non deberÃa levar "
-"mÃis de 10 minutos."
 
-#: C/getting-ready.page:26(title)
-msgid "Automatic installation"
-msgstr "InstalaciÃn automÃtica"
+#: C/03_getting_the_signal.js.page:299(title)
+msgid "Can you spell \"cookie\"?"
+msgstr ""
 
-#: C/getting-ready.page:27(p)
-#, fuzzy
-#| msgid ""
-#| "On an up-to-date distribution you should be able to simply install the "
-#| "required packages by clicking on <link href=\"gnome-devtools.catalog"
-#| "\">Install now</link>."
+#: C/03_getting_the_signal.js.page:301(p)
 msgid ""
-"On an up-to-date distribution you should be able to simply install the "
-"required packages by clicking on <link href=\"media/gnome-devtools.catalog"
-"\">Install now</link>."
+"The last input widget we're going to cover is the Entry widget, which is "
+"used for single-line text entry."
 msgstr ""
-"Nunha distribuciÃn anovada deberÃa poder instalar de forma sinxela os "
-"paquetes requiridos premendo en <link href=\"gnome-devtools.catalog"
-"\">Instalar agora</link>."
-
-#: C/getting-ready.page:32(title)
-msgid "Manual installation"
-msgstr "InstalaciÃn manual"
 
-#: C/getting-ready.page:33(p)
+#: C/03_getting_the_signal.js.page:302(p)
 msgid ""
-"If you prefer manual installation you can find the instructions for the "
-"various distributions in the <link href=\"http://live.gnome.org/";
-"DeveloperTools/Installation\">GNOME wiki</link>. Click on the image to go "
-"directly to the installation page for your distribution:"
+"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 ""
-"Se prefire a instalaciÃn manual pode atopar as instruciÃns para varias "
-"distribuciÃns no <link href=\"http://live.gnome.org/DeveloperTools/";
-"Installation\">wiki de GNOME</link>. Prema sobre a imaxe para ir diretamente "
-"Ã pÃxina de instalaciÃn da sÃa distribuciÃn:"
 
-#: C/getting-ready.page:40(media)
-msgid "Ubuntu"
-msgstr "Ubuntu"
+#: C/03_getting_the_signal.js.page:305(p)
+msgid "After we change the window's name, we create the Entry widget."
+msgstr ""
 
-#: C/getting-ready.page:45(media)
-msgid "Fedora"
-msgstr "Fedora"
+#: C/03_getting_the_signal.js.page:311(p)
+msgid "Next, we arrange everything in the Grid ..."
+msgstr ""
 
-#: C/getting-ready.page:50(media)
-msgid "OpenSuSE"
-msgstr "OpenSuSE"
+#: C/03_getting_the_signal.js.page:319(p)
+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."
+msgstr ""
 
-#: C/getting-ready.page:53(link)
-msgid "Others"
-msgstr "Otras"
+#: C/03_getting_the_signal.js.page:320(p)
+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."
+msgstr ""
 
-#: C/getting-ready.page:60(title)
-msgid "Required versions"
-msgstr "Versiones necesarias"
+#: C/03_getting_the_signal.js.page:340(p)
+msgid ""
+"<link xref=\"04_popup_dialog_boxes.js\">Click here</link> to go on to the "
+"next tutorial. Or keep reading, if you'd like to see the complete code for "
+"each version of our cookie maker application."
+msgstr ""
 
-#: C/getting-ready.page:61(p)
+#: C/03_getting_the_signal.js.page:341(p)
 msgid ""
-"The guides assume that you have at least the following versions of the tools "
-"installed:"
+"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 ""
-"As guÃas asumen que ten instaladas, cando menos, as seguintes versiÃns das "
-"ferramentas."
 
-#: C/getting-ready.page:64(p)
-msgid "Anjuta - 3.0"
-msgstr "Anjuta - 3.0"
+#: C/03_getting_the_signal.js.page:346(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Complete code samples"
+msgstr "Exemplos de cÃdigo"
 
-#: C/getting-ready.page:65(p)
-msgid "Devhelp - 3.0"
-msgstr "Devhelp - 3.0"
+#: C/03_getting_the_signal.js.page:351(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Button"
+msgstr "Exemplos de cÃdigo"
 
-#: C/getting-ready.page:66(p)
-msgid "Glade - 3.10"
-msgstr "Glade - 3.10"
+#: C/03_getting_the_signal.js.page:357(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Switch"
+msgstr "Exemplos de cÃdigo"
 
-#: C/getting-ready.page:68(p)
-msgid ""
-"Of course, any newer version will also work. Now, we wish you a lot of fun "
-"with the <link xref=\"index\">Demos</link>."
+#: C/03_getting_the_signal.js.page:363(title)
+msgid "Code sample with RadioButton"
 msgstr ""
-"Por suposto, calquera versiÃn mÃis moderna tamÃn funcionarÃ. Agora desexamos "
-"que goce coas <link xref=\"index\">demostraciÃns</link>."
+
+#: C/03_getting_the_signal.js.page:369(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Entry"
+msgstr "Exemplos de cÃdigo"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/entry.js.page:19(None)
-#| msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
-msgid "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
-msgstr "@@image: 'media/entry.png'; md5=331ecfe7088f492f099d253d19984d73"
-
-#: C/entry.js.page:14(desc)
-msgid "How to make an entry widget and connect its contents to a label"
-msgstr ""
+#: C/02_welcome_to_the_grid.js.page:94(None)
+#, fuzzy
+#| msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgid "@@image: 'media/02_jsgrid_01.png'; md5=3fdc22d361cf801f71557fdc76ae5b49"
+msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
 
-#: C/entry.js.page:17(title)
-msgid "Entry widget"
-msgstr ""
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:149(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+msgid "@@image: 'media/02_jsgrid_02.png'; md5=07db86b0043ba5c3c24a90d7322bd81e"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 
-#: C/entry.js.page:20(p)
-msgid ""
-"This an entry widget. An entry widget is a container that you can type in to."
-msgstr ""
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:166(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+msgid "@@image: 'media/02_jsgrid_03.png'; md5=817351e73c687d47253c56ed06b6629f"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 
-#: C/entry.js.page:57(p)
-msgid ""
-"In this sample we use the following widgets: <link href=\"http://www.roojs.";
-"com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>, <link href="
-"\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html\";>Gtk.Grid</"
-"link>, <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.";
-"html\">Gtk.Entry</link>, <link href=\"http://www.roojs.com/seed/gir-1.2-";
-"gtk-3.0/gjs/Gtk.Label.html\">Gtk.Label</link>, <link href=\"http://www.roojs.";
-"com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\">Gtk.Button</link>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:196(None)
+msgid "@@image: 'media/02_jsgrid_04.png'; md5=eeaead27cee2851877fc3cfe66177f07"
 msgstr ""
 
-#: C/documentation.page:19(title)
-msgid "Help develop"
-msgstr ""
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:205(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+msgid "@@image: 'media/02_jsgrid_05.png'; md5=a3ad12f432d5977fc1f66302ad5b7498"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 
-#: C/documentation.page:20(p)
-msgid ""
-"The <app>GNOME Developer Tutorials</app> are developed and maintained by a "
-"volunteer community. You are welcome to participate."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:216(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+msgid "@@image: 'media/02_jsgrid_06.png'; md5=450e48dbf6b8f5ce1c208e4812e1714b"
 msgstr ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
 
-#: C/documentation.page:23(p)
-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>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:226(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+msgid "@@image: 'media/02_jsgrid_07.png'; md5=0b304d70728903fbb2601d55bf00fdb9"
 msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/dialog.vala.page:18(None)
-#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-msgid "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
-msgstr "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
+#: C/02_welcome_to_the_grid.js.page:248(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
+msgid "@@image: 'media/02_jsgrid_08.png'; md5=78890beb47bd11360154b8ca4d50d1ff"
+msgstr "@@image: 'media/grid.png'; md5=9925ee72d701caca59190a24fa9dae8d"
 
-#: C/dialog.vala.page:14(desc)
-msgid "A popup window"
+#: C/02_welcome_to_the_grid.js.page:19(desc)
+msgid "Learn how to lay out UI components, like Images and Labels."
 msgstr ""
 
-#: C/dialog.vala.page:17(title)
-msgid "Dialog"
+#: C/02_welcome_to_the_grid.js.page:22(title)
+msgid "2. Welcome to the Grid"
 msgstr ""
 
-#: C/dialog.vala.page:19(p)
-msgid "A dialog with the response signal hooked up to a callback function."
+#: C/02_welcome_to_the_grid.js.page:24(p)
+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."
 msgstr ""
 
-#: C/dialog.vala.page:51(link)
-msgid "Gtk.Dialog"
+#: C/02_welcome_to_the_grid.js.page:25(p)
+msgid ""
+"Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
+"series</link> already? You'll want to do so before continuing."
 msgstr ""
 
-#: C/dialog.vala.page:52(link)
-msgid "Gtk.Dialog.with_buttons"
+#: C/02_welcome_to_the_grid.js.page:31(title)
+msgid "Going native"
 msgstr ""
 
-#: C/dialog.vala.page:53(link)
-msgid "Gtk.Label"
+#: C/02_welcome_to_the_grid.js.page:33(p)
+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."
 msgstr ""
 
-#: C/dialog.vala.page:54(link)
-msgid "get_content_area"
+#: C/02_welcome_to_the_grid.js.page:34(p)
+msgid ""
+"This time, we're going to use only native GNOME widgets. A widget is just a "
+"thing, like a checkbox or picture, and GNOME has a wide variety of them to "
+"choose from. We call them \"native\" widgets to distinguish them from things "
+"like the button and header in the web app we wrote. Because instead of using "
+"web code, these are going to be 100 percent GNOME, using Gtk+."
 msgstr ""
 
-#: C/desktop.js.page:14(desc)
-#, fuzzy
-#| msgid "A little bit more than a simple \"Hello world\" Gtk application."
-msgid "A desktop file for the hello world application"
-msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+#: C/02_welcome_to_the_grid.js.page:35(p)
+msgid ""
+"Gtk+ stands for \"GIMP Toolkit.\" It's like a toolbox of widgets that you "
+"can reach into, while building your applications. It was originally written "
+"for <link href=\"http://www.gimp.org/\";>the GIMP,</link> which is a free "
+"software image editor."
+msgstr ""
 
-#: C/desktop.js.page:17(title)
-msgid "helloWorld.desktop"
-msgstr "holaMundo.desktop"
+#: C/02_welcome_to_the_grid.js.page:39(title)
+#, fuzzy
+#| msgid "Setting up our image actors"
+msgid "Setting up our application"
+msgstr "Configurar os nosos actores de imaxe"
 
-#: C/desktop.js.page:18(p)
+#: C/02_welcome_to_the_grid.js.page:41(p)
 msgid ""
-"Running applications from the Terminal is useful at the beginning of the "
-"application making process. To have a fully working <link href=\"http://";
-"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
-"\">application integration</link> in GNOME 3 requires a desktop launcher. "
-"For this you need to create a <file>.desktop</file> file. The .desktop file "
-"describes the application name, the used icon and various integration bits. "
-"A deeper insight to <file>.desktop</file> file can be found <link href="
-"\"http://developer.gnome.org/desktop-entry-spec/\";>here</link>."
+"Before we dig out any widgets from the Gtk+ toolbox, we first need to write "
+"the basic boilerplate code that our application requires."
 msgstr ""
 
-#: C/desktop.js.page:19(p)
+#: C/02_welcome_to_the_grid.js.page:48(p)
 msgid ""
-"The example shows you the minimum requirements for a <code>.desktop</code> "
-"file."
+"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 ""
 
-#: C/desktop.js.page:32(p)
-msgid "Now let's go through some parts of the <code>.desktop</code> file."
+#: C/02_welcome_to_the_grid.js.page:49(p)
+msgid "Speaking of which:"
 msgstr ""
 
-#: C/desktop.js.page:34(p)
-#, fuzzy
-#| msgid "Lines 19â23: Start the application."
-msgid "Line 4: Name of the application"
-msgstr "LiÃas 19-23: Iniciar o aplicativo."
-
-#: C/desktop.js.page:35(p)
-msgid "Line 5: Specifies a short description of the item"
+#: C/02_welcome_to_the_grid.js.page:73(p)
+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."
 msgstr ""
 
-#: C/desktop.js.page:36(p)
+#: C/02_welcome_to_the_grid.js.page:74(p)
 msgid ""
-"Line 6: Specifies a command to execute when you choose the item from the "
-"menu. In this example exec just tells where to find the <code>helloworld.js</"
-"code> file and the file takes care of the rest."
+"This part, again, is pretty much copy-and-paste, but you always want to give "
+"your application a unique name."
 msgstr ""
 
-#: C/desktop.js.page:37(p)
+#: C/02_welcome_to_the_grid.js.page:87(p)
 msgid ""
-"Line 8: Specifies whether the command in the Exec key runs in a terminal "
-"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 ""
 
-#: C/desktop.js.page:39(p)
+#: C/02_welcome_to_the_grid.js.page:91(title)
+#, fuzzy
+#| msgid "Reacting to the clicks"
+msgid "Reaching into the Gtk+ toolbox"
+msgstr "Reaccionar aos clics"
+
+#: C/02_welcome_to_the_grid.js.page:92(p)
 msgid ""
-"If you want your <code>.desktop</code> file to exist as a part of the "
-"system, copy your <code>.desktop</code> file to this directory: ~/.local/"
-"share/applications"
+"What widgets should we use? Well, let's say we want to write an application "
+"that looks like this:"
 msgstr ""
 
-#: C/desktop.js.page:40(p)
+#: C/02_welcome_to_the_grid.js.page:96(p)
 msgid ""
-"To put your application to the right 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 spec</link>."
+"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 ""
 
-#: C/desktop.js.page:41(p)
+#: C/02_welcome_to_the_grid.js.page:102(p)
 msgid ""
-"In this example I used an existing icon. For a custom icon you need to have "
-"a .svg file of your icon, store it to /usr/share/icons/hicolor/scalable/"
-"apps. Write the name of your icon file to the .desktop file, on line 7. More "
-"information on icons in: <link href=\"http://library.gnome.org/admin/system-";
-"admin-guide/stable/themes-11.html.en\"> Installing Icons for Themes </link>, "
-"<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>."
+"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 ""
 
-#: C/desktop.js.page:42(p)
+#: C/02_welcome_to_the_grid.js.page:108(p)
 msgid ""
-"After you have finished writing the .desktop file you must change it's "
-"permissions to allow executing file as program. To do that, go to the folder "
-"containing the .desktop file. Right click the .desktop file, choose "
-"properties and tab permissions and place a check on the box after Execute:"
+"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 ""
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/button.vala.page:19(None) C/button.js.page:18(None)
-#| msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
-msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
-msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+#: C/02_welcome_to_the_grid.js.page:109(p)
+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."
+msgstr ""
 
-#: C/button.vala.page:14(desc)
-msgid "A button widget which can be connected to other widgets."
+#: C/02_welcome_to_the_grid.js.page:110(p)
+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."
 msgstr ""
 
-#: C/button.vala.page:17(title)
-msgid "Button widget"
-msgstr "Widget de botÃn"
+#: C/02_welcome_to_the_grid.js.page:111(p)
+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."
+msgstr ""
 
-#: C/button.vala.page:20(p)
-msgid "A button widget connected to stdout.printf (), and a modal window."
+#: C/02_welcome_to_the_grid.js.page:117(p)
+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."
 msgstr ""
 
-#: C/button.vala.page:60(p)
+#: C/02_welcome_to_the_grid.js.page:124(p)
 msgid ""
-"In this sample we used the following: <link xref=\"window.vala\">Gtk.Window</"
-"link>, <link href=\"http://www.valadoc.org/#!api=gtk+-2.0/Gtk.Button\";>Gtk."
-"Button</link>"
+"This code looks awfully complicated, but it's not. Here's what those numbers "
+"mean:"
 msgstr ""
 
-#: C/button.js.page:14(desc)
-msgid "A button which can be connected to other widgets"
-msgstr "Un botÃn que pode conectarse a outros widgets"
+#: C/02_welcome_to_the_grid.js.page:126(p)
+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."
+msgstr ""
 
-#: C/button.js.page:17(title)
-msgid "Button"
-msgstr "BotÃn"
+#: C/02_welcome_to_the_grid.js.page:127(p)
+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."
+msgstr ""
 
-#: C/button.js.page:19(p)
-msgid "A button widget that changes its label when you click it."
+#: C/02_welcome_to_the_grid.js.page:128(p)
+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."
 msgstr ""
 
-#: C/button.js.page:21(code)
-#, no-wrap
+#: C/02_welcome_to_the_grid.js.page:145(p)
 msgid ""
-"<![CDATA[\n"
-"]]>#!/usr/bin/gjs\n"
-"\n"
-"// Initialize GTK\n"
-"var Gtk = imports.gi.Gtk;\n"
-"Gtk.init(null, 0);\n"
-"\n"
-"// Create and set up the window\n"
-"var buttonWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
-"buttonWindow.title = \"GNOME Button\";\n"
-"buttonWindow.set_default_size (250,50);\n"
-"buttonWindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
-"\n"
-"// Create the button and add it to the window\n"
-"var theButton = new Gtk.Button ({label: \"Click me\"});\n"
-"buttonWindow.add (theButton);\n"
-"\n"
-"/* Say what to do when the button is clicked\n"
-"   You can connect it to more useful things if you like.\n"
-"   Note that it uses the same syntax as line 11, above.\n"
-"   Instead of saying what to do when we get a \"destroy\"\n"
-"   signal from the window, we're saying what to do when\n"
-"   we get a \"clicked\" signal from the button. */\n"
-"var clicks = 0;\n"
-"theButton.connect (\"clicked\", function () {\n"
-"\tclicks++;\n"
-"\tthis.theButton.set_label(\"Number of clicks: \" + clicks + \"!\");\n"
-"});\n"
-"\n"
-"// Show the window and the widget inside it, and start the application\n"
-"buttonWindow.show_all();\n"
-"Gtk.main();"
+"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 ""
 
-#: C/button.js.page:53(p)
+#: C/02_welcome_to_the_grid.js.page:146(p)
 msgid ""
-"In this sample we used the following widgets: <link href=\"http://www.roojs.";
-"com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html\">Gtk.Button</link>, <link href="
-"\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\";>Gtk."
-"Window</link>"
+"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 ""
 
-#: C/bug-filing.page:10(email)
-msgid "tiffany antopolski com"
+#: C/02_welcome_to_the_grid.js.page:147(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
 msgstr ""
 
-#: C/bug-filing.page:18(title)
-msgid "Help make <app>GNOME Developer Tutorials</app> better"
+#: C/02_welcome_to_the_grid.js.page:151(p)
+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?"
 msgstr ""
 
-#: C/bug-filing.page:21(title)
-msgid "Report a bug or suggest an improvement"
+#: C/02_welcome_to_the_grid.js.page:155(title)
+msgid "Tweaking the Grid"
 msgstr ""
 
-#: C/bug-filing.page:22(p)
+#: C/02_welcome_to_the_grid.js.page:157(p)
 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/\"/>."
+"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 ""
 
-#: C/bug-filing.page:25(p)
+#: C/02_welcome_to_the_grid.js.page:165(p)
 msgid ""
-"This is a bug tracking system where users and developers can file details "
-"about bugs, crashes and request enhancements."
+"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 ""
 
-#: C/bug-filing.page:28(p)
+#: C/02_welcome_to_the_grid.js.page:168(p)
 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."
+"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 ""
 
-#: C/bug-filing.page:31(p)
+#: C/02_welcome_to_the_grid.js.page:175(p)
 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."
+"That makes it so that there are always 20 pixels of space in between each "
+"horizontal row."
 msgstr ""
 
-#: C/bug-filing.page:35(p)
+#: C/02_welcome_to_the_grid.js.page:176(p)
 msgid ""
-"To file your bug, choose the component <gui>platform-demos</gui> in the "
-"<gui>Component</gui> menu."
+"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 ""
 
-#: C/bug-filing.page:38(p)
+#: C/02_welcome_to_the_grid.js.page:180(title)
+msgid "Adding more widgets"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:182(p)
 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>."
+"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 ""
 
-#: C/bug-filing.page:42(p)
+#: C/02_welcome_to_the_grid.js.page:194(p)
 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!"
+"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 ""
 
-#: C/beginner.vala.page:10(desc) C/beginner.py.page:10(desc)
-#: C/beginner.c.page:10(desc)
+#: C/02_welcome_to_the_grid.js.page:195(p)
 msgid ""
-"A beginner's guide to GUI programming using GTK+, including code samples and "
-"practice exercises."
+"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 ""
 
-#: C/beginner.vala.page:17(title) C/beginner.py.page:17(title)
-#: C/beginner.c.page:18(title)
-msgid "0 Beginner's Tutorials"
-msgstr "0. Tutoriais para principiantes"
+#: C/02_welcome_to_the_grid.js.page:198(p)
+msgid "There are two things you should take note of, here."
+msgstr ""
 
-#: C/beginner.vala.page:19(p) C/beginner.py.page:19(p)
+#: C/02_welcome_to_the_grid.js.page:200(p)
 msgid ""
-"If you have never programmed before, or are not familiar with the concepts "
-"of object oriented programming, you may need to learn a few basics first. "
-"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
-"the Hard Way</link> may be a better place for you to start. Once you master "
-"the basics, be sure to come back and check out these tutorials."
+"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 ""
 
-#: C/beginner.vala.page:21(p) C/beginner.py.page:21(p) C/beginner.c.page:20(p)
+#: C/02_welcome_to_the_grid.js.page:201(p)
 msgid ""
-"Although these tutorials are designed for beginners, we can't cover all the "
-"basics. Before attempting to follow these tutorials, you are expected to be "
-"familiar with the following concepts:"
+"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 ""
 
-#: C/beginner.vala.page:23(p) C/beginner.py.page:23(p) C/beginner.c.page:22(p)
-msgid "Object oriented programming"
-msgstr "ProgramaciÃn orientada a obxectos"
-
-#: C/beginner.vala.page:24(p)
-#, fuzzy
-#| msgid "Basic knowledge of the Vala programming language"
-msgid "The Vala programming language:"
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Vala"
-
-#: C/beginner.vala.page:26(link)
-msgid "The Vala Tutorial"
-msgstr "O titorial de Vala"
-
-#: C/beginner.vala.page:27(link)
-msgid "Sample Vala code"
-msgstr "Exemplo de cÃdigo en Vala"
-
-#: C/beginner.vala.page:32(p) C/beginner.py.page:27(p) C/beginner.c.page:26(p)
+#: C/02_welcome_to_the_grid.js.page:204(p)
 msgid ""
-"By following these tutorials you will learn the basics of GUI programming "
-"using Gtk+."
+"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 ""
 
-#: C/beginner.vala.page:36(title) C/beginner.py.page:31(title)
-#: C/beginner.js.page:21(title) C/beginner.c.page:30(title)
-msgid "Tutorials"
-msgstr "Titoriais"
-
-#: C/beginner.vala.page:40(title) C/beginner.py.page:35(title)
-#: C/beginner.js.page:25(title) C/beginner.c.page:34(title)
-msgid "Code samples"
-msgstr "Exemplos de cÃdigo"
-
-#: C/beginner.vala.page:41(p) C/beginner.js.page:26(p)
-msgid "To run the code samples:"
-msgstr "Para executar os exemplos de cÃdigo:"
-
-#: C/beginner.vala.page:45(p)
-msgid "Copy and paste the code into <var>filename</var>.vala"
+#: C/02_welcome_to_the_grid.js.page:207(p)
+msgid "Second, we can set the Grid's column_homogenous property to true."
 msgstr ""
 
-#: C/beginner.vala.page:46(p) C/beginner.js.page:31(p)
-msgid "In the terminal type:"
-msgstr "Escriba no terminal:"
-
-#: C/beginner.vala.page:47(screen)
-#, no-wrap
-msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
-msgstr "valac --pkg gtk+-3.0 <var>nome_ficheiro</var>.vala"
-
-#: C/beginner.vala.page:48(screen)
-#, no-wrap
-msgid "./<var>filename</var>"
-msgstr "./<var>nome_ficheiro</var>"
-
-#: C/beginner.vala.page:52(title) C/beginner.py.page:36(title)
-#: C/beginner.js.page:35(title) C/beginner.c.page:35(title)
-msgid "Windows"
-msgstr "Xanelas"
-
-#: C/beginner.vala.page:55(title) C/beginner.py.page:39(title)
-#: C/beginner.js.page:37(title) C/beginner.c.page:38(title)
-msgid "Display widgets"
-msgstr "Widgets de visualizaciÃn"
-
-#: C/beginner.vala.page:57(title) C/beginner.py.page:41(title)
-#: C/beginner.js.page:39(title) C/beginner.c.page:40(title)
-msgid "Buttons and toggles"
-msgstr "BotÃns e casillas"
-
-#: C/beginner.vala.page:59(title) C/beginner.py.page:43(title)
-#: C/beginner.js.page:41(title) C/beginner.c.page:42(title)
-msgid "Numeric and text data entry"
-msgstr "Entrada de datos numÃrica e de texto"
-
-#: C/beginner.vala.page:61(title) C/beginner.py.page:45(title)
-#: C/beginner.js.page:43(title) C/beginner.c.page:44(title)
-msgid "Menu, combo box and toolbar widgets"
-msgstr "Widgets de menÃ, caixa combinada e barra de ferramentas"
-
-#: C/beginner.vala.page:63(title) C/beginner.py.page:47(title)
-#: C/beginner.js.page:45(title) C/beginner.c.page:46(title)
-msgid "TreeView widget"
-msgstr "Widget TreeView"
-
-#: C/beginner.vala.page:65(title) C/beginner.py.page:49(title)
-#: C/beginner.js.page:47(title) C/beginner.c.page:48(title)
-#| msgid "Selecting"
-msgid "Selectors"
-msgstr "Selectores"
-
-#: C/beginner.vala.page:66(title) C/beginner.py.page:50(title)
-#: C/beginner.js.page:48(title) C/beginner.c.page:49(title)
-msgid "File selectors"
-msgstr "Selectores de ficheiros"
-
-#: C/beginner.vala.page:68(title) C/beginner.py.page:52(title)
-#: C/beginner.js.page:50(title) C/beginner.c.page:51(title)
-msgid "Font selectors"
-msgstr "Selectores de tipos de letra"
-
-#: C/beginner.vala.page:70(title) C/beginner.py.page:54(title)
-#: C/beginner.js.page:52(title) C/beginner.c.page:53(title)
-msgid "Color Selectors"
-msgstr "Selectores de color"
-
-#: C/beginner.vala.page:73(title) C/beginner.py.page:57(title)
-#: C/beginner.js.page:55(title) C/beginner.c.page:56(title)
-msgid "Layout containers"
-msgstr "Contedores da distribuciÃn"
-
-#: C/beginner.vala.page:75(title) C/beginner.py.page:59(title)
-#: C/beginner.js.page:57(title) C/beginner.c.page:58(title)
-msgid "Ornaments"
-msgstr "Adornos"
-
-#: C/beginner.vala.page:77(title) C/beginner.py.page:61(title)
-#: C/beginner.js.page:59(title) C/beginner.c.page:60(title)
-msgid "Scrolling"
-msgstr "Desprazamento"
-
-#: C/beginner.vala.page:79(title) C/beginner.py.page:63(title)
-#: C/beginner.js.page:61(title) C/beginner.c.page:62(title)
-msgid "Miscellaneous"
-msgstr "Varios"
+#: C/02_welcome_to_the_grid.js.page:215(p)
+#, fuzzy
+#| msgid "Weatherapp.js file looks like this:"
+msgid "That makes it look something like this:"
+msgstr "O ficheiro Weatherapp.js à algo como:"
 
-#: C/beginner.vala.page:84(title) C/beginner.py.page:68(title)
-#: C/beginner.js.page:66(title) C/beginner.c.page:67(title)
-msgid "Exercises"
-msgstr "Exercicios"
+#: C/02_welcome_to_the_grid.js.page:218(p)
+msgid ""
+"And third, we can set the Grid's column_spacing property, the same way we "
+"set its row_spacing."
+msgstr ""
 
-#: C/beginner.py.page:24(p)
+#: C/02_welcome_to_the_grid.js.page:225(p)
 #, fuzzy
-#| msgid "Basic knowledge of the Python programming language"
-msgid "The Python programming language."
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Python"
+#| msgid "Weatherapp.js file looks like this:"
+msgid "That makes it look like this:"
+msgstr "O ficheiro Weatherapp.js à algo como:"
 
-#: C/beginner.js.page:14(desc)
-msgid "A complete beginner's guide to GTK+ programming"
-msgstr ""
+#: C/02_welcome_to_the_grid.js.page:230(title)
+#, fuzzy
+#| msgid "Loading the images"
+msgid "Using stock images"
+msgstr "Cargar as imaxes"
 
-#: C/beginner.js.page:17(title)
-msgid "0 Beginner's Tutorials and samples"
+#: C/02_welcome_to_the_grid.js.page:232(p)
+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:"
 msgstr ""
 
-#: C/beginner.js.page:18(p)
+#: C/02_welcome_to_the_grid.js.page:240(p)
 msgid ""
-"In these tutorials and samples we use JavaScript and GTK+. These tutorials "
-"and samples expect you to be familiar with the syntax of JavaScript, if not, "
-"read <link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent "
-"JavaScript</link> or your preferred guide to JavaScript."
+"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 ""
 
-#: C/beginner.js.page:30(p)
-msgid "Copy and paste the code into <var>filename</var>.js"
+#: C/02_welcome_to_the_grid.js.page:247(p)
+msgid "That gives us this, when we run it:"
 msgstr ""
 
-#: C/beginner.js.page:32(screen)
-#, no-wrap
-msgid "gjs <var>filename</var>.js"
-msgstr "gjs <var>nomeficheiro</var>.js"
-
-#: C/beginner.c.page:23(p)
-#| msgid "Basic knowledge of the C programming language"
-msgid "The C programming language"
-msgstr "O linguaxe de programacioÌn C"
-
-#: C/audio-player.vala.page:8(desc)
-msgid "Coming soon..."
-msgstr "Proximamente..."
-
-#: C/audio-player.vala.page:17(title)
-msgid "3 Audio Player"
-msgstr "3. Reprodutor de son"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/aboutdialog.vala.page:24(None)
-#| msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-msgid "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
-msgstr "@@image: 'media/aboutdialog.png'; md5=a36117a559fa98e25e2f6b3db593639f"
-
-#: C/aboutdialog.vala.page:20(desc)
-#| msgid "Designing the application"
-msgid "Display information about an application"
-msgstr "Mostrar informaciÃn sobre un aplicativo"
+#: C/02_welcome_to_the_grid.js.page:250(p)
+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=\"http://developer.";
+"gnome.org/gtk/2.24/gtk-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 ""
 
-#: C/aboutdialog.vala.page:23(title)
-msgid "AboutDialog"
-msgstr "AboutDialog"
+#: C/02_welcome_to_the_grid.js.page:251(p)
+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."
+msgstr ""
 
-#: C/aboutdialog.vala.page:25(p)
-msgid "An AboutDialog example using Gtk.Application"
+#: C/02_welcome_to_the_grid.js.page:257(p)
+msgid ""
+"Before we go on to the next tutorial, let's try something a little different:"
 msgstr ""
 
-#: C/aboutdialog.vala.page:26(em)
-msgid "You need to be running Gtk3.4 or later for this to work"
+#: C/02_welcome_to_the_grid.js.page:269(p)
+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=\"getting_the_signal.js\">our next tutorial.</"
+"link>"
 msgstr ""
 
-#: C/aboutdialog.vala.page:78(link)
-msgid "set_default_size"
-msgstr "set_default_size"
+#: C/02_welcome_to_the_grid.js.page:270(p)
+msgid ""
+"If you like, feel free to spend some time experimenting with Grids, Labels, "
+"and Images, including stock images."
+msgstr ""
 
-#: C/aboutdialog.vala.page:79(link)
-msgid "Gtk.Button.with_label"
-msgstr "Gtk.Button.with_label"
+#: C/02_welcome_to_the_grid.js.page:271(p)
+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</"
+"link> code sample if you'd like to see how this is done."
+msgstr ""
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
 #: C/index.page:0(None)
 msgid "translator-credits"
 msgstr "Fran Dieguez <frandieguez gnome org>, 2011."
 
+#, fuzzy
+#~| msgid ""
+#~| "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+#~| "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#~| "<file>image-viewer</file> as project name and directory."
 #~ msgid ""
-#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+#~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
+#~ "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#~ "<file>image-viewer</file> as project name and directory."
 #~ msgstr ""
-#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+#~ "Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>C</gui>, prema "
+#~ "<gui>Adiante</gui> e complete os detalles nas seguintes pÃxinas. Use "
+#~ "<file>image-viewer</file> como nome do proxecto e cartafol."
+
+#, fuzzy
+#~| msgid "A little bit more than a simple \"Hello world\" Gtk application."
+#~ msgid "A desktop file for the hello world application"
+#~ msgstr "Un pouco mÃis que un simple aplicativo Gtk ÂOla mundoÂ."
+
+#, fuzzy
+#~| msgid "Lines 19â23: Start the application."
+#~ msgid "Line 4: Name of the application"
+#~ msgstr "LiÃas 19-23: Iniciar o aplicativo."
+
+#, fuzzy
+#~| msgid "Basic knowledge of the Python programming language"
+#~ msgid "The Python programming language."
+#~ msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Python"
+
+#~ msgid "Gtk.Button.with_label"
+#~ msgstr "Gtk.Button.with_label"
 
 #~ msgid ""
 #~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "



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