[gnome-devel-docs] Updated Galician translations for platform-demos



commit 7ff162da74354590e49c2efea56bc235e13c83c4
Author: Fran DiÃguez <fran dieguez mabishu com>
Date:   Thu Apr 19 22:28:48 2012 +0200

    Updated Galician translations for platform-demos
    
    Signed-off-by: Fran DiÃguez <fran dieguez mabishu com>

 platform-demos/gl/gl.po | 4214 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 3275 insertions(+), 939 deletions(-)
---
diff --git a/platform-demos/gl/gl.po b/platform-demos/gl/gl.po
index b140041..72499bb 100644
--- a/platform-demos/gl/gl.po
+++ b/platform-demos/gl/gl.po
@@ -3,13 +3,13 @@
 # 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.
+# Fran Dieguez <frandieguez gnome org>, 2011, 2012.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2011-09-08 14:15+0000\n"
-"PO-Revision-Date: 2011-09-20 22:58+0200\n"
+"POT-Creation-Date: 2012-04-19 16:01+0000\n"
+"PO-Revision-Date: 2012-04-19 22:28+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
 "Language-Team: Galician <gnome-l10n-gl gnome org>\n"
 "MIME-Version: 1.0\n"
@@ -17,83 +17,641 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: 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/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/index.page:8(email) C/record-collection.js.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)
-msgid "gnome-doc-list gnome org"
-msgstr "gnome-doc-list gnome org"
+#: 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)
+msgid "Tiffany Antopolski"
+msgstr "Tiffany Antopolski"
 
-#: C/index.page:9(years)
-msgid "2010, 2011"
-msgstr "2010, 2011"
+#: 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)
+msgid "tiffany antopolski gmail com"
+msgstr "tiffany antopolski gmail com"
 
-#: C/index.page:12(name) C/message-board.c.page:13(name)
-msgid "Shaun McCance"
-msgstr "Shaun McCance"
+#: 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"
+msgid "2012"
+msgstr "2012"
 
-#: C/index.page:13(email) C/message-board.c.page:14(email)
-msgid "shaunm gnome org"
-msgstr "shaunm gnome org"
+#: C/window.vala.page:14(desc)
+msgid "A toplevel window which can contain other widgets."
+msgstr ""
 
-#: C/index.page:14(years) C/message-board.c.page:15(years)
-msgid "2010"
-msgstr "2010"
+#: C/window.vala.page:17(title) C/window.js.page:17(title)
+msgid "Window"
+msgstr "Xanela"
 
-#: C/index.page:17(name) C/record-collection.js.page:16(name)
-#: C/photo-wall.c.page:15(name) C/magic-mirror.vala.page:16(name)
-#: C/image-viewer.js.page:17(name) C/image-viewer.py.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/window.vala.page:19(p)
+msgid "A toplevel window with destroy signal hooked up."
+msgstr ""
 
-#: C/index.page:18(email) C/record-collection.js.page:17(email)
-#: C/photo-wall.c.page:16(email) C/magic-mirror.vala.page:17(email)
-#: C/image-viewer.js.page:18(email) C/image-viewer.py.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/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)
+msgid "In this sample we used the following:"
+msgstr ""
+
+#: C/window.vala.page:56(p)
+msgid ""
+"The widget <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window";
+"\">Gtk.Window</link>"
+msgstr ""
+
+#: C/window.vala.page:58(p)
+msgid ""
+"The enum <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
+"WindowPosition\">Gtk.WindowPosition</link>"
+msgstr ""
+
+#: C/window.vala.page:60(p)
+msgid ""
+"The method <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window.";
+"set_default_size\">set_default_size</link>"
+msgstr ""
+
+#: C/window.vala.page:62(link)
+msgid "border_width"
+msgstr "border_width"
+
+#: C/window.vala.page:64(link)
+msgid "window_position"
+msgstr "window_position"
+
+#: C/window.js.page:9(name) C/button.js.page:9(name)
+msgid "Taryn Fox"
+msgstr "Taryn Fox"
+
+#: C/window.js.page:10(email) C/button.js.page:10(email)
+msgid "jewelfox fursona net"
+msgstr "jewelfox fursona net"
+
+#: C/window.js.page:14(desc)
+msgid "A basic window which can contain other widgets"
+msgstr ""
+
+#: C/window.js.page:19(p)
+msgid "A plain window, without other widgets added to it."
+msgstr ""
+
+#: C/window.js.page:21(code)
+#, no-wrap
+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();"
+msgstr ""
+
+#: C/window.js.page:47(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>"
+msgstr ""
+
+#: 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)
+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)
+msgid "ihmis suski gmail com"
+msgstr "ihmis suski gmail com"
+
+#: C/weatherGeonames.js.page:17(title)
+msgid "Local library geoNames"
+msgstr ""
+
+#: C/weatherGeonames.js.page:19(p)
+msgid ""
+"In this part of the guide well 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:"
+msgstr ""
+
+#: C/weatherGeonames.js.page:22(link) C/weatherGeonames.js.page:30(title)
+msgid "Local library for getting the weather"
+msgstr ""
+
+#: C/weatherGeonames.js.page:23(link)
+msgid "Creating function geoNames"
+msgstr ""
+
+#: C/weatherGeonames.js.page:24(link)
+msgid "Methods for geoNames"
+msgstr ""
+
+#: C/weatherGeonames.js.page:25(link) C/weatherGeonames.js.page:100(title)
+msgid "geonames.js"
+msgstr "geonames.js"
+
+#: C/weatherGeonames.js.page:31(p)
+msgid "For this we need a new file that will be our local library."
+msgstr ""
+
+#: C/weatherGeonames.js.page:37(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)
+msgid "Creating function GeoNames"
+msgstr ""
+
+#: C/weatherGeonames.js.page:51(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 "
+"first and later expand them. This will be done inside the GeoNames.prototype "
+"curly braces{}"
+msgstr ""
+
+#: C/weatherGeonames.js.page:55(title)
+msgid "Methods for GeoNames"
+msgstr ""
+
+#: C/weatherGeonames.js.page:95(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 "
+"the information from the request to form we can use it. In getIcon we simply "
+"compare the results we got from getWeather to the switch we have in order to "
+"get the icon matching current weather. Now that we have our local library "
+"ready, it's time to make use of it."
+msgstr ""
+
+#: C/weatherGeonames.js.page:101(p)
+msgid ""
+"Here is the entire code for our local library. The main program file calls "
+"this asynchronously."
+msgstr ""
+
+#: C/weatherAutotools.js.page:17(title) C/weatherApp.js.page:28(link)
+msgid "Autotools and Icons"
+msgstr ""
+
+#: C/weatherAutotools.js.page:19(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 "
+"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:"
+msgstr ""
+
+#: C/weatherAutotools.js.page:22(link)
+msgid "Autotools"
+msgstr "Autotools"
+
+#: C/weatherAutotools.js.page:23(link) C/weatherAutotools.js.page:143(title)
+msgid "Custom icons for your application"
+msgstr ""
+
+#: C/weatherAutotools.js.page:30(title)
+msgid "Autotools and necessary files"
+msgstr ""
+
+#: C/weatherAutotools.js.page:31(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 "
+"new file: myapp.sh.in file. Hacking the autotools file is a complicated "
+"field. More information can be found in many different sources, <link href="
+"\"http://en.wikipedia.org/wiki/GNU_build_system\";>the wikipedia article</"
+"link> provides a good overwiev on the subject."
+msgstr ""
+
+#: C/weatherAutotools.js.page:34(p) C/weatherAutotools.js.page:40(p)
+msgid "weatherapp.desktop"
+msgstr "weatherapp.desktop"
+
+#: C/weatherAutotools.js.page:35(p) C/weatherAutotools.js.page:55(p)
+msgid "weatherapp.sh.in"
+msgstr "weatherapp.sh.in"
+
+#: C/weatherAutotools.js.page:36(p) C/weatherAutotools.js.page:62(p)
+msgid "Makefile.am"
+msgstr "Makefile.am"
+
+#: C/weatherAutotools.js.page:37(p) C/weatherAutotools.js.page:129(p)
+msgid "configure.ac"
+msgstr "configure.ac"
+
+#: C/weatherAutotools.js.page:38(p)
+msgid "autogen.sh"
+msgstr "autogen.sh"
+
+#: C/weatherAutotools.js.page:53(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)
+msgid ""
+"This file is a template to the file Makefile will do to be run from .desktop."
+msgstr ""
+
+#: C/weatherAutotools.js.page:123(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 ""
+
+#: C/weatherAutotools.js.page:124(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)
+msgid "EXTRA_DIST are the files that are to be distributed"
+msgstr ""
+
+#: C/weatherAutotools.js.page:126(p)
+msgid "do_subst block is bits and pieces that need to be where they are"
+msgstr ""
+
+#: C/weatherAutotools.js.page:127(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)
+msgid "autohen.sh"
+msgstr "autohen.sh"
+
+#: C/weatherAutotools.js.page:144(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."
+"g. the icons in the desktop file that are shown by the shell) then you need /"
+"usr/share/hicolor, otherwise (e.g. the weather icons of your app) /usr/share/"
+"$application/bla/bla"
+msgstr ""
+
+#: C/weatherAutotools.js.page:145(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. "
+"In the Makefile.am file you add these two lines to the end of your "
+"application #the application icon"
+msgstr ""
+
+#: C/weatherAutotools.js.page:146(p)
+msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
+msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
+
+#: C/weatherAutotools.js.page:147(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)
+msgid "The main program file"
+msgstr "O ficheiro do programa principal"
+
+#: C/weatherAppMain.js.page:19(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 "
+"need an editor to write code in, Terminal and GNOME 3 or higher installed "
+"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
+#| 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)
+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
+#| msgid "Designing the application"
+msgid "Creating the main window for the application"
+msgstr "DeseÃar o aplicativo"
+
+#: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:62(title)
+msgid "Adding a grid and all the necessary widgets to it"
+msgstr ""
+
+#: C/weatherAppMain.js.page:25(link) C/weatherAppMain.js.page:93(title)
+msgid "Requesting the weather information asynchronously"
+msgstr ""
+
+#: C/weatherAppMain.js.page:26(link)
+msgid "Connecting signals to button and entry.\"&gt;"
+msgstr ""
+
+#: C/weatherAppMain.js.page:27(link)
+msgid "weatherapp.js"
+msgstr "weatherapp.js"
+
+#: C/weatherAppMain.js.page:34(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/weatherAppMain.js.page:43(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 "
+"beginning so we have it in our use everywhere. We also import our own local "
+"JavaScript library geonames to our use here."
+msgstr ""
+
+#: C/weatherAppMain.js.page:89(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 "
+"the grid. As seen from the placing of the different widgets, they don't need "
+"to be related only to one widget. At this point some of the labels don't "
+"have any content. The content for those widgets is applied later. If you run "
+"the application at this stage, you have the UI ready, but the widgets are "
+"not connected to anything. For this we need to first build the weather "
+"searching local library, and then get the information we need "
+"asynchronously. When we have our local library ready we can connect it to "
+"the necessary widgets."
+msgstr ""
+
+#: C/weatherAppMain.js.page:119(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 "
+"get the user input for the search. So here for the first time we use our own "
+"library and assign it to variable GeoNames. While assigning WeatherService "
+"we give it the station. The firs thing we do with GeoNames is to request "
+"weather. Everything after GeoNames.getWeather(function(error, weather) "
+"happens only if we either get an error message or weather information. If "
+"either doesn't come, the rest of the program works as normal, so main_Quit "
+"works."
+msgstr ""
+
+#: C/weatherAppMain.js.page:123(title)
+msgid "Connecting signals to button and entry."
+msgstr ""
+
+#: C/weatherAppMain.js.page:136(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, "
+"getting the weather. So it doesn't matter weather you press enter of click "
+"the search button."
+msgstr ""
+
+#: C/weatherAppMain.js.page:140(title)
+msgid "Weatherapp.js"
+msgstr "Weatherapp.js"
+
+#: C/weatherAppMain.js.page:141(p)
+msgid "Weatherapp.js file looks like this:"
+msgstr "O ficheiro Weatherapp.js à algo como:"
+
+#: C/weatherAppMain.js.page:227(p)
+msgid "Running until you have all the autotools files ready. :"
+msgstr ""
+
+#: 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)
+msgid "$"
+msgstr "$"
+
+#: C/weatherAppMain.js.page:229(input)
+msgid "GJS_PATH=`pwd` gjs weatherapp.js"
+msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
+
+#: C/weatherAppMain.js.page:230(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, "
+"in this case geonames.js."
+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"
+msgid "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+msgstr ""
+"@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+
+#: C/weatherApp.js.page:14(desc)
+msgid ""
+"How to plan an application that uses asynchronous calls. Asynchronous calls "
+"will be presented through a weather application."
+msgstr ""
+
+#: C/weatherApp.js.page:19(title)
+#| msgid "Run the application"
+msgid "4 Weather Application"
+msgstr "4. Executar o aplicativo"
+
+#: C/weatherApp.js.page:21(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 "
+"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:"
+msgstr ""
+
+#: C/weatherApp.js.page:24(link) C/weatherApp.js.page:36(title)
+#, fuzzy
+#| msgid "Creating the user interface"
+msgid "Planning the graphical user interface"
+msgstr "Crear a interface de usuario"
+
+#: C/weatherApp.js.page:25(link) C/weatherApp.js.page:40(title)
+msgid "Asynchronous calls"
+msgstr "Chamadas asÃncronas"
+
+#: C/weatherApp.js.page:27(link)
+msgid "Local library GeoNames"
+msgstr ""
 
-#: C/index.page:19(years)
+#: C/weatherApp.js.page:32(p) C/guitar-tuner.js.page:33(p)
+msgid "After reading this tutorial, you should see this in your screen:"
+msgstr ""
+
+#: C/weatherApp.js.page:37(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 "
+"most important thing is to remember that the main window will only accept "
+"one widget. You must plan your structure accordingly (this example is using "
+"Gtk.Grid). A useful method is to draw out the main window and place every "
+"widget needed inside that box. By looking at an image of your future "
+"application it is easier to tell what are the relations between widgets. For "
+"example Gtk.Grid places your widgets in relation to other widgets, so after "
+"the first widget is in place, placing widgets can be done in relation to any "
+"widget on the grid."
+msgstr ""
+
+#: C/weatherApp.js.page:41(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 "
+"completes before proceeding. This is however bad for graphical user "
+"interfaces, as then the whole application will be frozen while the program "
+"waits for the operation. Going asynchronous (async) helps here. With async "
+"calls, your UI won't be blocked with any requests. Async calls make your "
+"application more flexible and better equipped to handle situations when "
+"calls take more time than expected or for some reason get jammed. Async "
+"calls can be used for example file system I/O and for slower calculations in "
+"the background."
+msgstr ""
+
+#: C/weatherApp.js.page:44(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 "
+"from geonames.org for the lack of internet connection and this would be a "
+"synchronous application we would never get to the point where our main_quit"
+"() is processed correctly and the application would have to killed from "
+"Terminal."
+msgstr ""
+
+#: C/weatherApp.js.page:47(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)
 msgid "2011"
 msgstr "2011"
 
-#: C/index.page:24(title)
-msgid "GNOME Developer Platform Demos"
-msgstr "DemostraciÃns da plataforma de desenvolvemento de GNOME"
+#: C/translate.page:15(name)
+msgid "Michael Hill"
+msgstr "Michael Hill"
 
-#: C/index.page:27(title)
-msgid "Getting Ready"
-msgstr "Como comezar"
+#: C/translate.page:16(email)
+msgid "mdhillca gmail com"
+msgstr "mdhillca gmail com"
 
-#: C/index.page:31(title)
-msgid "C"
-msgstr "C"
+#: C/translate.page:19(p) C/documentation.page:15(p) C/bug-filing.page:14(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Compartir Igual 3.0"
 
-#: C/index.page:35(title)
-msgid "C++"
-msgstr "C+"
+#: C/translate.page:23(title)
+msgid "Help translate"
+msgstr "Axude na traduciÃn"
 
-#: C/index.page:39(title)
-msgid "JavaScript"
-msgstr "JavaScript"
+#: C/translate.page:24(p)
+msgid ""
+"The <app>Tutorial Demos</app> are being translated by a world-wide volunteer "
+"community. You are welcome to participate."
+msgstr ""
 
-#: C/index.page:43(title)
-msgid "Python"
-msgstr "Python"
+#: C/translate.page:27(p)
+msgid ""
+"There are <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>many "
+"languages</link> for which translations are still needed."
+msgstr ""
 
-#: C/index.page:47(title)
-msgid "Vala"
-msgstr "Vala"
+#: C/translate.page:30(p)
+msgid ""
+"To start translating you will need to <link href=\"http://l10n.gnome.org";
+"\">create an account</link> and join the <link href=\"http://l10n.gnome.org/";
+"teams/\">translation team</link> for your language. This will give you the "
+"ability to upload new translations."
+msgstr ""
+
+#: C/translate.page:34(p)
+msgid ""
+"You can chat with GNOME translators using <link href=\"https://cbe003.chat.";
+"mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fi18n\">irc</link>. People on the "
+"channel are located worldwide, so you may not get an immediate response as a "
+"result of timezone differences."
+msgstr ""
+
+#: C/translate.page:37(p)
+msgid ""
+"Alternatively, you can contact the Internationalization Team using their "
+"<link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n\";>mailing "
+"list</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.
@@ -109,15 +667,47 @@ 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.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/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/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/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/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/record-collection.js.page:21(title)
-msgid "Record Collection"
+#, fuzzy
+#| msgid "Record Collection"
+msgid "3 Record Collection"
 msgstr "ColecciÃn de mÃsica"
 
 #: C/record-collection.js.page:24(p) C/message-board.c.page:23(p)
@@ -181,19 +771,19 @@ msgstr ""
 
 #: 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.js.page:44(title) C/image-viewer.py.page:43(title)
-#: C/image-viewer.cpp.page:34(title) C/image-viewer.c.page:34(title)
-#: C/guitar-tuner.vala.page:40(title) C/guitar-tuner.py.page:40(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/record-collection.js.page:46(p) C/photo-wall.c.page:45(p)
-#: C/magic-mirror.vala.page:43(p) C/image-viewer.js.page:45(p)
-#: C/image-viewer.py.page:44(p) C/image-viewer.cpp.page:35(p)
-#: C/image-viewer.c.page:35(p) C/guitar-tuner.vala.page:41(p)
-#: C/guitar-tuner.py.page:41(p) C/guitar-tuner.cpp.page:41(p)
-#: C/guitar-tuner.c.page:41(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)
 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. "
@@ -204,11 +794,10 @@ msgstr ""
 "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.js.page:48(p)
-#: C/image-viewer.py.page:47(p) C/image-viewer.cpp.page:38(p)
-#: C/image-viewer.c.page:38(p) C/guitar-tuner.vala.page:44(p)
-#: C/guitar-tuner.py.page:44(p) C/guitar-tuner.cpp.page:44(p)
-#: C/guitar-tuner.c.page:44(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)
 msgid ""
 "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
 "gui></guiseq> to open the project wizard."
@@ -665,8 +1254,8 @@ msgstr ""
 "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.js.page:305(title)
-#: C/image-viewer.py.page:219(title) C/guitar-tuner.py.page:221(title)
+#: 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"
 
@@ -679,10 +1268,11 @@ msgstr ""
 "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.js.page:310(title)
-#: C/image-viewer.py.page:224(title) C/image-viewer.cpp.page:212(title)
-#: C/image-viewer.c.page:220(title) C/guitar-tuner.vala.page:243(title)
-#: C/guitar-tuner.py.page:226(title) C/guitar-tuner.cpp.page:255(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"
@@ -781,9 +1371,14 @@ msgstr ""
 "ficheiro."
 
 #: 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."
 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 "
+"<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 "
@@ -1266,9 +1861,10 @@ msgid ""
 "<code>ClutterActor</code> will be set to respond to events or not."
 msgstr ""
 
-#: C/photo-wall.c.page:369(title) C/image-viewer.cpp.page:206(title)
-#: C/image-viewer.c.page:214(title) C/guitar-tuner.vala.page:237(title)
-#: C/guitar-tuner.cpp.page:249(title) C/guitar-tuner.c.page:249(title)
+#: 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"
 
@@ -1325,15 +1921,102 @@ 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)
-msgid ""
-"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+#: C/toolbar.js.page:19(None)
+msgid "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+msgstr "@@image: 'media/toolbar.png'; md5=fca40afb940764d58f69b3a2add9a927"
+
+#: C/toolbar.js.page:14(desc)
+msgid "A toolbar widget which is connected to a Dialog widget"
 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/toolbar.js.page:17(title)
+msgid "Toolbar widget"
+msgstr "Widget da barra de ferramentas"
+
+#: C/toolbar.js.page:20(p)
+msgid ""
+"Toolbar is a widget that may contain either text or stock icons. In this "
+"sample we use stock icons."
+msgstr ""
+
+#: C/toolbar.js.page:49(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>."
+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"
+msgid ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+msgstr ""
+"@@image: 'media/messagedialog.png'; md5=7cca8bbffdce01233e13624bbfb7e294"
+
+#: C/messagedialog.vala.page:14(desc)
+msgid "A message window"
+msgstr "Unha xanela de mensaxe"
+
+#: C/messagedialog.vala.page:17(title)
+#| msgid "Message Board"
+msgid "MessageDialog"
+msgstr "MessageDialog"
+
+#: C/messagedialog.vala.page:19(p)
+msgid "A modal message dialog which can cause the world to explode."
+msgstr ""
+
+#: C/messagedialog.vala.page:57(link)
+msgid "Gtk.ResponseType"
+msgstr "Gtk.ResponseType"
+
+#: C/messagedialog.vala.page:58(link)
+msgid "Gtk.MessageDialog"
+msgstr "Gtk.MessageDialog"
+
+#: C/messagedialog.vala.page:59(link)
+msgid "Gtk.DialogFlags"
+msgstr "Gtk.DialogFlags"
+
+#: C/messagedialog.vala.page:60(link)
+msgid "Gtk.MessageType"
+msgstr "Gtk.MessageType"
+
+#: C/messagedialog.vala.page:61(link)
+msgid "Gtk.ButtonsType"
+msgstr "Gtk.ButtonsType"
+
+#. 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)
+msgid ""
+"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+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/message-board.c.page:13(name) C/index.page:12(name)
+msgid "Shaun McCance"
+msgstr "Shaun McCance"
+
+#: C/message-board.c.page:14(email) C/index.page:13(email)
+msgid "shaunm gnome org"
+msgstr "shaunm gnome org"
+
+#: C/message-board.c.page:15(years) C/index.page:14(years)
+msgid "2010"
+msgstr "2010"
 
 #: C/message-board.c.page:20(title)
 msgid "Message Board"
@@ -1395,17 +2078,26 @@ msgstr ""
 "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>."
 msgid ""
 "Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
-"<gui>Forward</gui>."
+"<gui>Continue</gui>."
 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>."
 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>."
+"<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</"
@@ -1420,10 +2112,16 @@ msgstr ""
 "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>."
 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>. 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 "
@@ -1873,7 +2571,9 @@ msgid "dgsiegel gnome org"
 msgstr "dgsiegel gnome org"
 
 #: C/magic-mirror.vala.page:21(title)
-msgid "Magic Mirror"
+#, fuzzy
+#| msgid "Magic Mirror"
+msgid "4 Magic Mirror"
 msgstr "Espello mÃxico"
 
 #: C/magic-mirror.vala.page:24(em)
@@ -1902,17 +2602,16 @@ msgstr ""
 msgid "Grab photos off your webcam"
 msgstr "Obter as fotos da Åua cÃmara web"
 
-#: C/magic-mirror.vala.page:31(p) C/image-viewer.js.page:33(p)
-#: C/image-viewer.py.page:33(p) C/guitar-tuner.vala.page:30(p)
-#: C/guitar-tuner.py.page:30(p) C/guitar-tuner.cpp.page:30(p)
-#: C/guitar-tuner.c.page:30(p)
+#: 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:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:33(p) C/image-viewer.js.page:35(p)
-#: C/image-viewer.py.page:35(p) C/guitar-tuner.vala.page:32(p)
-#: C/guitar-tuner.py.page:32(p) C/guitar-tuner.cpp.page:32(p)
-#: C/guitar-tuner.c.page:32(p)
+#: 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>"
 msgstr ""
 
@@ -1952,9 +2651,10 @@ msgid ""
 "gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:70(title) C/image-viewer.cpp.page:60(title)
-#: C/image-viewer.c.page:58(title) C/guitar-tuner.vala.page:63(title)
-#: C/guitar-tuner.cpp.page:63(title) C/guitar-tuner.c.page:63(title)
+#: 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"
 
@@ -1964,7 +2664,7 @@ msgid ""
 "skip this list if you understand the basics:"
 msgstr ""
 
-#: C/magic-mirror.vala.page:74(p) C/guitar-tuner.vala.page:68(p)
+#: C/magic-mirror.vala.page:74(p) C/guitar-tuner.vala.page:72(p)
 msgid ""
 "The two <code>using</code> lines import namespaces so we don't have to name "
 "them explicitly."
@@ -1986,8 +2686,8 @@ msgid ""
 "events (like clicks and key presses)."
 msgstr ""
 
-#: C/magic-mirror.vala.page:85(p) C/image-viewer.cpp.page:76(p)
-#: C/image-viewer.c.page:77(p) C/guitar-tuner.vala.page:79(p)
+#: 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)
 msgid ""
 "This code is ready to be used, so you can compile it by clicking "
@@ -1995,7 +2695,7 @@ msgid ""
 "<keyseq><key>Shift</key><key>F7</key></keyseq>)."
 msgstr ""
 
-#: C/magic-mirror.vala.page:86(p) C/guitar-tuner.vala.page:80(p)
+#: C/magic-mirror.vala.page:86(p) C/image-viewer.vala.page:126(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 "
@@ -2067,11 +2767,11 @@ msgstr ""
 "mÃis ampla</link> que incrusta a xanela nunha xanela GTK regular que implica "
 "algunhas tÃcnicas avanzadas, e engade botÃns para iniciar/deter a imaxe."
 
-#: C/magic-mirror.vala.page:149(title) C/guitar-tuner.vala.page:248(title)
+#: C/magic-mirror.vala.page:149(title) C/guitar-tuner.vala.page:257(title)
 msgid "Further reading"
 msgstr "Lectura complementaria"
 
-#: C/magic-mirror.vala.page:150(p) C/guitar-tuner.vala.page:249(p)
+#: C/magic-mirror.vala.page:150(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</"
@@ -2098,459 +2798,760 @@ msgstr ""
 "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"
+
+#: C/index.page:9(years)
+msgid "2010, 2011"
+msgstr "2010, 2011"
+
+#: C/index.page:28(title)
+msgid "GNOME Developer Platform Demos"
+msgstr "DemostraciÃns da plataforma de desenvolvemento de GNOME"
+
+#: C/index.page:31(title)
+msgid "Getting Ready"
+msgstr "Como comezar"
+
+#: C/index.page:35(title)
+msgid "C"
+msgstr "C"
+
+#: C/index.page:39(title)
+msgid "C++"
+msgstr "C+"
+
+#: C/index.page:43(title)
+msgid "JavaScript"
+msgstr "JavaScript"
+
+#: C/index.page:47(title)
+msgid "Python"
+msgstr "Python"
+
+#: C/index.page:51(title)
+msgid "Vala"
+msgstr "Vala"
+
+#: C/index.page:55(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.js.page:41(None) C/image-viewer.py.page:40(None)
-#: C/image-viewer.cpp.page:31(None) C/image-viewer.c.page:31(None)
+#: 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"
 msgstr ""
 "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 
-#: C/image-viewer.js.page:9(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.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/image-viewer.js.page:13(name) C/image-viewer.py.page:13(name)
-msgid "Jonh Wendell"
-msgstr "Jonh Wendell"
+#: C/image-viewer.vala.page:20(name)
+msgid "Philip Chimento"
+msgstr "Philip Chimento"
 
-#: C/image-viewer.js.page:14(email) C/image-viewer.py.page:14(email)
-msgid "jwendell gnome org"
-msgstr "jwendell gnome org"
+#: C/image-viewer.vala.page:21(email)
+msgid "philip chimento gmail com"
+msgstr "philip chimento gmail com"
 
-#: C/image-viewer.js.page:23(title) C/image-viewer.py.page:23(title)
-#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:21(title)
-msgid "Image Viewer"
+#: 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/image-viewer.js.page:26(p) C/image-viewer.py.page:26(p)
+#: C/image-viewer.vala.page:31(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, we're going to write a very simple GTK application that "
-"loads and displays an image file. You will learn how to:"
+"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.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/image-viewer.vala.page:33(p)
+msgid ""
+"How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
+"IDE</link>."
+msgstr ""
 
-#: C/image-viewer.js.page:29(p) C/image-viewer.py.page:29(p)
-msgid "Deal with events by connecting signals to signal handlers"
-msgstr "Xestionar eventos conectando sinais a xestores de sinais"
+#: C/image-viewer.vala.page:34(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.js.page:30(p) C/image-viewer.py.page:30(p)
-msgid "Lay out GTK user interfaces using containers"
-msgstr "DisponÌer interfaces de usuario GTK usando contedores"
+#: C/image-viewer.vala.page:35(p)
+msgid ""
+"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
+"stable/\">GObject</link> programming"
+msgstr ""
 
-#: C/image-viewer.js.page:31(p) C/image-viewer.py.page:31(p)
-msgid "Load and display image files"
-msgstr "Cargar e mostrar ficheiros de imaxe"
+#: C/image-viewer.vala.page:40(p) C/guitar-tuner.vala.page:36(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.js.page:36(p)
-msgid "An installed copy of the <em>gjs</em> interpreter"
+#: C/image-viewer.vala.page:41(p) C/guitar-tuner.vala.page:37(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.js.page:37(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.vala.page:42(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.js.page:51(p)
+#: 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."
 msgid ""
-"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"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:58(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>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 ""
-"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."
+"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.js.page:54(p)
+#: 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."
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled 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:63(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: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."
 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."
+"<file>src/main.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.js.page:61(title)
-msgid "JavaScript basics: Hello World"
-msgstr "Primeiros pasos en JavaScript: Ola mundo"
+#: C/image-viewer.vala.page:106(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.js.page:62(p)
+#: C/image-viewer.vala.page:111(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>:"
+"The two <code>using</code> lines at the top import namespaces so we don't "
+"have to name them explicitly."
 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:63(code)
-#, no-wrap
-msgid "print (\"Hello world!\");"
-msgstr "print (\"Ola mundo!\");"
+#: C/image-viewer.vala.page:114(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.js.page:64(p)
+#: C/image-viewer.vala.page:115(p) C/image-viewer.c.page:67(p)
+#: C/guitar-tuner.c.page:72(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."
+"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 ""
-"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/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)."
+msgstr ""
 
-#: 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/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/image-viewer.js.page:92(p)
+#: C/image-viewer.vala.page:132(p)
 msgid ""
-"This defines a class called <code>MyClass</code>. Let's go through each part "
-"of the class definition:"
+"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 ""
-"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/image-viewer.vala.page:136(p)
+msgid "Add the following lines to the top of the <code>Main</code> class:"
 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/image-viewer.vala.page:142(p)
+msgid "Now replace the current constructor with the one below:"
 msgstr ""
 
-#: C/image-viewer.js.page:101(p)
+#: C/image-viewer.vala.page:168(p)
 msgid ""
-"The first method defined here is called <code>_init</code>, and we specify "
-"that it is a function with no arguments:"
+"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.js.page:102(code)
-#, no-wrap
-msgid "_init: function ()"
-msgstr "_init: function ()"
+#: 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."
+msgstr ""
 
-#: C/image-viewer.js.page:103(p)
+#: C/image-viewer.vala.page:176(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."
+"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.js.page:106(p)
+#: C/image-viewer.vala.page:183(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>."
+"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.js.page:109(p)
+#: C/image-viewer.vala.page:184(p)
 msgid ""
-"Note how the class definition (prototype) is arranged; each function "
-"definition is separated by a comma."
+"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 ""
-"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/image-viewer.vala.page:187(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.js.page:119(p)
+#: C/image-viewer.vala.page:191(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)."
+"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.js.page:120(p)
+#: C/image-viewer.vala.page:195(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."
+"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.js.page:125(title) C/image-viewer.py.page:64(title)
-msgid "A first Gtk application"
-msgstr "Un primeiro aplicativo en GTK"
+#: 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/image-viewer.js.page:126(p)
-msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+#: C/image-viewer.vala.page:203(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.js.page:136(p) C/image-viewer.py.page:89(p)
-msgid "Let's take a look at what's happening:"
-msgstr "Botemos unha ollada ao que està pasando:"
+#: C/image-viewer.vala.page:229(p)
+msgid "This is a bit complicated, so let's break it down:"
+msgstr ""
 
-#: C/image-viewer.js.page:139(p) C/image-viewer.py.page:92(p)
+#: C/image-viewer.vala.page:230(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."
+"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.js.page:142(p)
+#: C/image-viewer.vala.page:233(p)
 msgid ""
-"<code>Gtk.init</code> initializes the Gtk library; this statement is "
-"mandatory for all Gtk programs."
+"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.js.page:145(p)
+#: C/image-viewer.vala.page:235(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."
+"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.js.page:146(p)
+#: C/image-viewer.vala.page:240(p)
 msgid ""
-"The next line explicitly shows the window. In Gtk, every widget is hidden by "
-"default."
+"The <code>on_open_image</code> method takes the button that emitted the "
+"signal as an argument:"
 msgstr ""
 
-#: C/image-viewer.js.page:147(p)
+#: C/image-viewer.vala.page:246(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."
+"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.js.page:150(p)
+#: C/image-viewer.vala.page:248(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."
+"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.js.page:155(title)
-msgid "Adding classes"
-msgstr "Engadir clases"
-
-#: C/image-viewer.js.page:156(p)
+#: C/image-viewer.vala.page:252(p)
 msgid ""
-"The proper way of doing Gtk programming is by using classes. Let's rewrite "
-"the simple code you just wrote using classes:"
+"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:257(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 ""
 
-#. FIXME: Throws an error, "JS ERROR: !!!   Unhandled type int32 releasing GArgument" on Ubuntu 10.10
-#: C/image-viewer.js.page:175(p)
+#: C/image-viewer.vala.page:262(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>)."
+"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.js.page:176(p)
+#: C/image-viewer.vala.page:265(p) C/image-viewer.py.page:212(p)
+#: C/image-viewer.js.page:298(p)
 msgid ""
-"This code is modular and can be split into multiple files easily. This makes "
-"it cleaner and easier to read."
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more."
 msgstr ""
 
-#: C/image-viewer.js.page:180(title) C/image-viewer.py.page:113(title)
-msgid "Signals"
-msgstr "Sinais"
-
-#: C/image-viewer.js.page:181(p) C/image-viewer.py.page:114(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:"
+#: C/image-viewer.vala.page:266(p)
+msgid "Destroying automatically hides the dialog."
 msgstr ""
 
-#: C/image-viewer.js.page:188(p) C/image-viewer.py.page:121(p)
+#: 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)
 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."
+"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.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/image-viewer.js.page:192(p)
+#: 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!"
 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>."
+"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 ""
-"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>."
+"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.js.page:195(p)
+#: C/image-viewer.vala.page:281(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 ""
-"You can simplify the code by making use of an inline function definition:"
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
 msgstr ""
-"Vostede pode simplificar o cÃdigo facendo uso da definiciÃn en liÃa de "
-"funciÃns:"
+"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.js.page:203(title)
-msgid "Closing the window"
-msgstr "Pechar a xanela"
+#: 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/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/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:"
 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)."
+"Aquà hai algunhas ideas sobre como pode estender esta sinxela demostraciÃn:"
 
-#: C/image-viewer.js.page:205(p)
+#: C/image-viewer.vala.page:288(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>:"
+"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 ""
-"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)
-#, 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)
+#: 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 ""
-"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."
+"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.js.page:211(title) C/image-viewer.py.page:125(title)
-msgid "Containers: Laying-out the user interface"
-msgstr "Contedores: deseÃar a interface de usuario"
-
-#: C/image-viewer.js.page:212(p) C/image-viewer.py.page:126(p)
+#: 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)
 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."
+"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.js.page:213(p) C/image-viewer.py.page:127(p)
+#: 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)
 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."
+"<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.js.page:215(p) C/image-viewer.py.page:129(p)
+#: 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)
 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."
+"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.js.page:217(p)
+#: 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)
 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:"
+"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.js.page:221(p)
+#: C/image-viewer.py.page:9(desc)
 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."
+"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.js.page:222(p) C/image-viewer.py.page:140(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:13(name) C/image-viewer.js.page:13(name)
+msgid "Jonh Wendell"
+msgstr "Jonh Wendell"
 
-#: C/image-viewer.js.page:226(title) C/image-viewer.py.page:144(title)
-msgid "Packing: Adding widgets to the container"
-msgstr "Empaquetado: Engadir widgets ao contedor"
+#: 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.js.page:227(p)
+#: C/image-viewer.py.page:26(p) C/image-viewer.js.page:26(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:"
+"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.js.page:231(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."
+#: 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"
+
+#: 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"
+
+#: 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/image-viewer.py.page:36(p)
+msgid "Basic knowledge of the python programming language"
 msgstr ""
 
-#: C/image-viewer.js.page:232(p)
+#: 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."
 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>)."
+"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: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>."
+msgstr ""
+
+#: C/image-viewer.py.page:58(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:64(title) C/image-viewer.js.page:125(title)
+msgid "A first Gtk application"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: 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/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/image-viewer.py.page:92(p) C/image-viewer.js.page:139(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:95(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:100(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: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."
+
+#: 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."
+msgstr ""
+
+#: C/image-viewer.py.page:113(title) C/image-viewer.js.page:180(title)
+msgid "Signals"
+msgstr "Sinais"
+
+#: C/image-viewer.py.page:114(p) C/image-viewer.js.page:181(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: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."
+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/image-viewer.py.page:126(p) C/image-viewer.js.page:212(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:127(p) C/image-viewer.js.page:213(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:129(p) C/image-viewer.js.page:215(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:131(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: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."
+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)."
+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/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:"
+msgstr ""
+
+#: C/image-viewer.py.page:149(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:151(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.js.page:233(p) C/image-viewer.py.page:152(p)
+#: C/image-viewer.py.page:152(p) C/image-viewer.js.page:233(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-"
@@ -2559,7 +3560,7 @@ msgid ""
 "should automatically take a sensible size in most situations."
 msgstr ""
 
-#: C/image-viewer.js.page:234(p) C/image-viewer.py.page:153(p)
+#: C/image-viewer.py.page:153(p) C/image-viewer.js.page:234(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</"
@@ -2568,105 +3569,77 @@ msgid ""
 "Box</code>, which would also hide all of its children at the same time."
 msgstr ""
 
-#: C/image-viewer.js.page:235(p) C/image-viewer.py.page:154(p)
+#: 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.js.page:239(p)
+#: C/image-viewer.py.page:159(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:240(p)
-msgid ""
-"Finally, we must change the <code>this.window.show ();</code> line to read:"
-msgstr ""
-
-#: C/image-viewer.js.page:241(code)
-#, no-wrap
-msgid "this.window.show_all ();"
-msgstr "this.window.show_all ();"
-
-#: C/image-viewer.js.page:242(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.)"
+"<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.js.page:246(title) C/image-viewer.py.page:163(title)
+#: C/image-viewer.py.page:163(title) C/image-viewer.js.page:246(title)
 msgid ""
 "Loading the image: Connecting to the button's <code>clicked</code> signal"
 msgstr ""
 
-#: C/image-viewer.js.page:247(p)
+#: C/image-viewer.py.page:164(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."
+"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.js.page:248(p)
+#: C/image-viewer.py.page:165(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:"
+"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.js.page:251(p)
+#: C/image-viewer.py.page:169(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:"
+"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
+"code> method that we will define below."
 msgstr ""
 
-#: C/image-viewer.js.page:252(code)
-#, no-wrap
-msgid "const Lang = imports.lang;"
-msgstr "const Lang = imports.lang;"
-
-#: C/image-viewer.js.page:256(title) C/image-viewer.py.page:174(title)
+#: C/image-viewer.py.page:174(title) C/image-viewer.js.page:256(title)
 msgid "Loading the image: Writing the signal's callback"
 msgstr ""
 
-#: C/image-viewer.js.page:257(p)
+#: C/image-viewer.py.page:175(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):"
+"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.js.page:277(p) C/image-viewer.py.page:191(p)
+#: 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)
 msgid ""
 "This is a bit more complicated than anything we've attempted so far, so "
 "let's break it down:"
 msgstr ""
 
-#: C/image-viewer.js.page:280(p)
+#: C/image-viewer.py.page:194(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 "
+"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; <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."
+"save a file; and <code>transient_for</code>, which sets the parent window of "
+"the dialog."
 msgstr ""
 
-#: C/image-viewer.js.page:283(p) C/image-viewer.py.page:197(p)
+#: C/image-viewer.py.page:197(p) C/image-viewer.js.page:283(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 "
@@ -2674,8 +3647,8 @@ msgid ""
 "<gui>Cancel</gui> and 1 for <gui>Open</gui>."
 msgstr ""
 
-#: C/image-viewer.js.page:284(p) C/image-viewer.py.page:198(p)
-#: C/image-viewer.cpp.page:182(p) C/image-viewer.c.page:196(p)
+#: 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)
 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 "
@@ -2683,7 +3656,7 @@ msgid ""
 "language."
 msgstr ""
 
-#: C/image-viewer.js.page:287(p) C/image-viewer.py.page:201(p)
+#: C/image-viewer.py.page:201(p) C/image-viewer.js.page:287(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 "
@@ -2691,7 +3664,7 @@ msgid ""
 "value 1)."
 msgstr ""
 
-#: C/image-viewer.js.page:290(p) C/image-viewer.py.page:204(p)
+#: C/image-viewer.py.page:204(p) C/image-viewer.js.page:290(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 "
@@ -2700,16 +3673,16 @@ msgid ""
 "Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.js.page:293(p)
+#: C/image-viewer.py.page:207(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."
+"<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.js.page:295(p) C/image-viewer.py.page:209(p)
+#: C/image-viewer.py.page:209(p) C/image-viewer.js.page:295(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 "
@@ -2717,277 +3690,461 @@ msgid ""
 "and display the chosen image."
 msgstr ""
 
-#: C/image-viewer.js.page:298(p) C/image-viewer.py.page:212(p)
-msgid ""
-"In the final line of this method, we destroy the <gui>Open</gui> dialog "
-"because we don't need it any more."
-msgstr ""
-
-#: C/image-viewer.js.page:306(p)
+#: C/image-viewer.py.page:220(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!"
+"of Python and Gtk) in not much time at all!"
 msgstr ""
 
-#: C/image-viewer.js.page:311(p)
+#: C/image-viewer.py.page:225(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>."
+"<link href=\"image-viewer/image-viewer.py\">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.js.page:315(title) C/image-viewer.py.page:229(title)
-#: C/image-viewer.cpp.page:217(title) C/image-viewer.c.page:225(title)
-#: C/guitar-tuner.vala.page:254(title) C/guitar-tuner.py.page:231(title)
-#: C/guitar-tuner.cpp.page:268(title) C/guitar-tuner.c.page:260(title)
-msgid "Next steps"
-msgstr "Seguintes pasos"
+#: C/image-viewer.js.page:9(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:316(p) C/image-viewer.py.page:230(p)
-#: C/image-viewer.cpp.page:218(p) C/image-viewer.c.page:226(p)
-#: C/guitar-tuner.vala.page:255(p) C/guitar-tuner.py.page:232(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/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/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/image-viewer.js.page:37(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)
+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 ""
-"Aquà hai algunhas ideas sobre como pode estender esta sinxela demostraciÃn:"
+"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:319(p) C/image-viewer.py.page:233(p)
-#: C/image-viewer.cpp.page:221(p) C/image-viewer.c.page:229(p)
+#: C/image-viewer.js.page:54(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."
+"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:322(p) C/image-viewer.py.page:236(p)
-#: C/image-viewer.cpp.page:224(p) C/image-viewer.c.page:232(p)
+#: C/image-viewer.js.page:61(title)
+msgid "JavaScript basics: Hello World"
+msgstr "Primeiros pasos en JavaScript: Ola mundo"
+
+#: C/image-viewer.js.page:62(p)
 msgid ""
-"Apply random filters and effects to the image when it is loaded and allow "
-"the user to save the modified image."
+"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 ""
-"Aplicar filtros aleatorios e efectos à imaxe cando se carga e permitir ao "
-"usuario gardar a imaxe modificada."
+"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:323(p) C/image-viewer.py.page:237(p)
-#: C/image-viewer.cpp.page:225(p) C/image-viewer.c.page:233(p)
+#: C/image-viewer.js.page:63(code)
+#, no-wrap
+msgid "print (\"Hello world!\");"
+msgstr "print (\"Ola mundo!\");"
+
+#: C/image-viewer.js.page:64(p)
 msgid ""
-"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
-"image manipulation capabilities."
+"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 ""
-"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> fornece capacidades "
-"moi potentes de manipulaciÃn de imaxes."
+"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/image-viewer.js.page:326(p) C/image-viewer.py.page:240(p)
-#: C/image-viewer.cpp.page:228(p) C/image-viewer.c.page:236(p)
+#: 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/image-viewer.js.page:92(p)
 msgid ""
-"Allow the user to load images from network shares, scanners, and other more "
-"complicated sources."
+"This defines a class called <code>MyClass</code>. Let's go through each part "
+"of the class definition:"
 msgstr ""
-"Permitir ao usuario cargar imaxes desde recursos de rede compartidos, "
-"escÃneres e outras fontes mÃis complicadas."
+"Isto define unha clase chamada <code>MyClass</code>. Vexa cada unha das "
+"partes da definiciÃn da clase:"
 
-#: C/image-viewer.js.page:327(p) C/image-viewer.py.page:241(p)
-#: C/image-viewer.cpp.page:229(p) C/image-viewer.c.page:237(p)
+#: C/image-viewer.js.page:95(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."
+"<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.py.page:9(desc)
+#: C/image-viewer.js.page:98(p)
 msgid ""
-"A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK."
+"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 ""
-"Algo mÃis que un aplicativo sinxelo ÂHola mundo - escribir un visor de "
-"imaxes en GTK."
 
-#: 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.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:"
+msgstr ""
 
-#: C/image-viewer.py.page:36(p)
-msgid "Basic knowledge of the python programming language"
+#: C/image-viewer.js.page:102(code)
+#, no-wrap
+msgid "_init: function ()"
+msgstr "_init: function ()"
+
+#: 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."
 msgstr ""
 
-#: C/image-viewer.py.page:50(p)
+#: C/image-viewer.js.page:106(p)
 msgid ""
-"Choose <gui>PyGTK (automake)</gui> from the <gui>Python</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."
+"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.py.page:53(p)
+#: C/image-viewer.js.page:109(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>."
+"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.py.page:58(p)
+#: C/image-viewer.js.page:113(p)
+msgid "Now that MyClass has been defined, we can play with it:"
+msgstr ""
+
+#: C/image-viewer.js.page:119(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."
+"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 ""
-"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(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.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."
+msgstr ""
 
-#: C/image-viewer.py.page:95(p)
+#: C/image-viewer.js.page:126(p)
+msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+msgstr ""
+
+#: C/image-viewer.js.page:142(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."
+"<code>Gtk.init</code> initializes the Gtk library; this statement is "
+"mandatory for all Gtk programs."
 msgstr ""
 
-#: C/image-viewer.py.page:100(p)
+#: C/image-viewer.js.page:145(p)
 msgid ""
-"Next, <code>destroy</code> is defined which just quits the application. It "
-"is called by the <code>destroy</code> signal connected above."
+"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 ""
-"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."
+#: C/image-viewer.js.page:146(p)
+msgid ""
+"The next line explicitly shows the window. In Gtk, every widget is hidden by "
+"default."
+msgstr ""
 
-#: C/image-viewer.py.page:108(p)
+#: C/image-viewer.js.page:147(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."
+"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.py.page:131(p)
+#: C/image-viewer.js.page:150(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:155(title)
+msgid "Adding classes"
+msgstr "Engadir clases"
+
+#: C/image-viewer.js.page:156(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: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>)."
+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."
+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/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>."
+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)
+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:203(title)
+msgid "Closing the window"
+msgstr "Pechar a xanela"
+
+#: 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)."
+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)
+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:206(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."
+msgstr ""
+
+#: C/image-viewer.js.page:217(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:"
+"the <code>_init</code> method, immediately above the <code>this.window.show</"
+"code> line:"
 msgstr ""
 
-#: C/image-viewer.py.page:139(p)
+#: C/image-viewer.js.page:221(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."
+"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.py.page:145(p)
+#: C/image-viewer.js.page:227(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:"
+"directly below the <code>this.window.add (main_box)</code> line:"
 msgstr ""
 
-#: C/image-viewer.py.page:149(p)
+#: C/image-viewer.js.page:231(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> "
+"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.py.page:151(p)
+#: C/image-viewer.js.page:232(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>)."
+"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.py.page:159(p)
+#: 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>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."
+"<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:240(p)
+msgid ""
+"Finally, we must change the <code>this.window.show ();</code> line to read:"
+msgstr ""
+
+#: C/image-viewer.js.page:241(code)
+#, no-wrap
+msgid "this.window.show_all ();"
+msgstr "this.window.show_all ();"
+
+#: C/image-viewer.js.page:242(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.py.page:164(p)
+#: C/image-viewer.js.page:247(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."
+"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.py.page:165(p)
+#: C/image-viewer.js.page:248(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:"
+"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.py.page:169(p)
+#: C/image-viewer.js.page:251(p)
 msgid ""
-"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
-"code> method that we will define below."
+"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.py.page:175(p)
+#: C/image-viewer.js.page:252(code)
+#, no-wrap
+msgid "const Lang = imports.lang;"
+msgstr "const Lang = imports.lang;"
+
+#: C/image-viewer.js.page:257(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:"
+"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.py.page:194(p)
+#: C/image-viewer.js.page:280(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 "
+"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; and <code>transient_for</code>, which sets the parent window of "
-"the dialog."
+"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.py.page:207(p)
+#: C/image-viewer.js.page:293(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."
+"<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.py.page:220(p)
+#: 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 Python and Gtk) in not much time at all!"
+"of JavaScript and Gtk) in not much time at all!"
 msgstr ""
 
-#: C/image-viewer.py.page:225(p)
+#: 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.py\">reference code</link>."
+"<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:21(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"
@@ -3028,7 +4185,7 @@ msgstr ""
 "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/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:"
@@ -3068,10 +4225,6 @@ msgstr ""
 "compilaciÃn de depuraciÃn. SÃ precisa facer isto unha vez para a primeira "
 "compilaciÃn."
 
-#: 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/image-viewer.cpp.page:82(p)
 msgid ""
 "Now we will bring life into the empty window. GTKmm organizes the user "
@@ -3080,14 +4233,14 @@ msgid ""
 "container, a <code>Gtk::Box</code>:"
 msgstr ""
 
-#: C/image-viewer.cpp.page:119(p)
+#: 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:122(p)
+#: 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 "
@@ -3097,64 +4250,51 @@ msgid ""
 "sizes. Next, the box is added to the window."
 msgstr ""
 
-#: C/image-viewer.cpp.page:128(p)
+#: 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 and to pass the image as an additional argument to that function. We "
-"will define the <em>callback</em> in the next section."
+"clicked. We will define the <em>callback</em> in the next section."
 msgstr ""
 
-#: C/image-viewer.cpp.page:133(p)
+#: C/image-viewer.cpp.page:128(p)
 msgid ""
-"The last step is to show all widgets in the window using <code>show_all()</"
-"code>. This is equivalent to using the <code>show()</code> method on all our "
-"widgets."
+"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:141(title) C/image-viewer.c.page:147(title)
-msgid "Showing the image"
-msgstr "Mostrar a imaxe"
-
-#: C/image-viewer.cpp.page:142(p)
+#: 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:174(p)
-msgid ""
-"The argument to the signal is the image object that we passed while "
-"connecting the signal. Sometimes there are other arguments related to the "
-"signal, but <em>clicked</em> doesn't have any."
-msgstr ""
-
-#: C/image-viewer.cpp.page:176(p)
+#: C/image-viewer.cpp.page:175(p)
 msgid ""
-"The next interesting line is where the dialog for choosing the file is "
-"created using <code>Gtk::FileChooserDialog</code>. The function takes the "
-"title of the dialog and the type of dialog this should be. In our case, it "
-"is an <em>Open</em> dialog."
+"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:181(p)
+#: 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:183(p)
+#: 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:188(p)
+#: 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 "
@@ -3163,13 +4303,13 @@ msgid ""
 "Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
 msgstr ""
 
-#: C/image-viewer.cpp.page:189(p)
+#: 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:193(p)
+#: 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> "
@@ -3178,28 +4318,20 @@ msgid ""
 "The <code>switch</code> statement tests for this."
 msgstr ""
 
-#: C/image-viewer.cpp.page:195(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:199(p)
+#: C/image-viewer.cpp.page:194(p)
 msgid ""
-"In the final line of this method, we hide the <gui>Open</gui> dialog because "
-"we don't need it any more. The dialog would be hidden anyway, as it is only "
-"a local variable and is destroyed (and as such hidden) when the scope ends."
+"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:207(p) C/image-viewer.c.page:215(p)
-#: C/guitar-tuner.c.page:250(p)
+#: C/image-viewer.cpp.page:197(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."
+"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:208(p) C/image-viewer.c.page:216(p)
+#: 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> "
@@ -3209,7 +4341,7 @@ msgstr ""
 "file> no diaÌlogo que aparece. Finalmente, prema <gui>Executar</gui> e "
 "desfrute!"
 
-#: C/image-viewer.cpp.page:213(p)
+#: 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>."
@@ -3217,10 +4349,6 @@ 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: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/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"
@@ -3230,9 +4358,14 @@ msgid "How to write a Gtk application in C"
 msgstr "Como escribir un aplicativo GTK en C"
 
 #: 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."
 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 "
+"<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 "
@@ -3275,14 +4408,6 @@ 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:67(p) C/guitar-tuner.vala.page:72(p)
-#: C/guitar-tuner.c.page:72(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.c.page:70(p) C/guitar-tuner.c.page:75(p)
 msgid ""
 "The <code>main</code> function is run by default when you start a C "
@@ -3414,15 +4539,155 @@ 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:37(None) C/guitar-tuner.py.page:37(None)
-#: C/guitar-tuner.cpp.page:37(None) C/guitar-tuner.c.page:37(None)
-msgid "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+#: C/helloWorld.js.page:31(None)
+msgid "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+msgstr ""
+
+#: C/helloWorld.js.page:14(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:16(title)
+msgid "Hello World"
+msgstr ""
+
+#: C/helloWorld.js.page:19(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:"
+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/helloWorld.js.page:25(link) C/helloWorld.js.page:79(title)
+msgid "helloWorld.js"
+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/helloWorld.js.page:30(p)
+msgid "After taking this tutorial, you should see this on your screen:"
+msgstr ""
+
+#: C/helloWorld.js.page:36(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."
+msgstr ""
+
+#: C/helloWorld.js.page:43(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."
+msgstr ""
+
+#: C/helloWorld.js.page:59(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."
+msgstr ""
+
+#: C/helloWorld.js.page:59(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."
+msgstr ""
+
+#: C/helloWorld.js.page:59(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."
+msgstr ""
+
+#: C/helloWorld.js.page:59(p)
+msgid ""
+"Now we have a window that has a title and a working \"close\" button. Let's "
+"add the actual \"Hello, world\" text."
+msgstr ""
+
+#: C/helloWorld.js.page:75(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."
+msgstr ""
+
+#: C/helloWorld.js.page:76(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."
+msgstr ""
+
+#: C/helloWorld.js.page:80(p)
+msgid "Here's what the completed program looks like."
+msgstr ""
+
+#: C/helloWorld.js.page:108(title)
+#, fuzzy
+#| msgid "Run the application"
+msgid "Running the application from Terminal"
+msgstr "Executar o aplicativo"
+
+#: 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"
+msgstr ""
+
+#: C/helloWorld.js.page:109(input)
+msgid "chmod +x helloWorld.js"
+msgstr ""
+
+#: C/helloWorld.js.page:110(p)
+msgid "This makes your script executable. After that, run"
+msgstr ""
+
+#: C/helloWorld.js.page:110(input)
+msgid "GJS_PATH=`pwd` gjs helloWorld.js"
+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"
 msgstr ""
-"@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+"@@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:89(None) C/guitar-tuner.py.page:88(None)
+#: 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)
 msgid ""
 "@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
@@ -3431,8 +4696,9 @@ 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:134(None) C/guitar-tuner.py.page:131(None)
-#: C/guitar-tuner.cpp.page:117(None) C/guitar-tuner.c.page:137(None)
+#: 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"
@@ -3440,95 +4706,135 @@ msgstr ""
 "@@image: 'media/guitar-tuner-pipeline.png'; "
 "md5=5adc952909d92af5dae6954781b4ad5f"
 
-#: C/guitar-tuner.vala.page:8(desc) C/guitar-tuner.py.page:8(desc)
-#: C/guitar-tuner.c.page:8(desc)
+#: C/guitar-tuner.vala.page:8(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. "
-"Shows off how to use the interface designer."
+"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:21(title) C/guitar-tuner.py.page:21(title)
-#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:21(title)
-msgid "Guitar Tuner"
+#: 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/guitar-tuner.vala.page:24(p) C/guitar-tuner.py.page:24(p)
-#: C/guitar-tuner.cpp.page:24(p) C/guitar-tuner.c.page:24(p)
+#: 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, we're going to make a program which plays tones that you "
+"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:26(p) 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.vala.page:30(p)
+msgid ""
+"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
+"link>."
+msgstr ""
 
-#: C/guitar-tuner.vala.page:27(p) 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"
+#: 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/guitar-tuner.vala.page:28(p) 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/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."
+msgstr ""
 
-#: C/guitar-tuner.vala.page:33(p)
-msgid "Basic knowledge of the Vala programming language"
-msgstr "CoÃecemento bÃsico da linguaxe de programaciÃn Vala"
+#: 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/guitar-tuner.vala.page:47(p)
+#: 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 ""
-"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 "
+"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>Vala</gui>, prema "
+"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:50(p) C/guitar-tuner.c.page:50(p)
+#: 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 selected. On the "
-"next page, select <em>gstreamer-0.10</em> from the list to include the "
-"GStreamer library in your project."
+"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</"
+"gui>. On the next page, select <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:54(p)
+#: 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>Finished</gui> and the project will be created for you. Open "
-"<file>src/guitar_tuner.vala</file> from the <gui>Project</gui> or <gui>File</"
-"gui> tabs. You should see some code which starts with the lines:"
+"Click <gui>Apply</gui> and the project will be created for you. From the "
+"<gui>Project</gui> or <gui>Files</gui> tab, open <file>src/guitar_tuner."
+"vala</file> by double-clicking on it. You should see some code which starts "
+"with the lines:"
 msgstr ""
-"Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/guitar_tuner."
-"vala</file> desde as lapelas <gui>Proxecto</gui> ou <gui>Ficheiro</gui>. "
-"DeberiÌa ver algo de coÌdigo que comece coas linÌas:"
+"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:64(p)
+#: C/guitar-tuner.vala.page:68(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:"
+"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:71(p)
+#: C/guitar-tuner.vala.page:75(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. 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."
+"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:75(p)
+#: C/guitar-tuner.vala.page:77(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: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 "
@@ -3537,63 +4843,85 @@ msgid ""
 "events (like clicks and key presses)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:84(title) C/guitar-tuner.py.page:83(title)
+#: 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."
+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/guitar-tuner.vala.page:85(p) C/guitar-tuner.py.page:84(p)
-#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:88(p)
+#: C/guitar-tuner.vala.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."
+"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:87(p) C/guitar-tuner.py.page:86(p)
-#: C/guitar-tuner.cpp.page:86(p) C/guitar-tuner.c.page:90(p)
+#: C/guitar-tuner.vala.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."
+"use a vertical GtkButtonBox here to assign six GtkButtons, one for each of "
+"the six guitar strings."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:93(p) C/guitar-tuner.py.page:92(p)
-#: C/guitar-tuner.cpp.page:92(p) C/guitar-tuner.c.page:96(p)
+#: C/guitar-tuner.vala.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."
+"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: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."
+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."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:97(p) C/guitar-tuner.py.page:96(p)
-#: C/guitar-tuner.cpp.page:96(p) C/guitar-tuner.c.page:100(p)
+#: C/guitar-tuner.vala.page:106(p)
 msgid ""
-"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
-"first part of the box."
+"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:100(p) C/guitar-tuner.py.page:99(p)
-#: C/guitar-tuner.c.page:103(p)
+#: C/guitar-tuner.vala.page:107(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."
+"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
+"the right."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:103(p)
+#: C/guitar-tuner.vala.page:112(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 "
+"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 <key>Return</key>."
+"press the <key>Enter</key>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:106(p) C/guitar-tuner.py.page:105(p)
+#: 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 "
@@ -3603,7 +4931,7 @@ msgstr ""
 "restantes cos nomes <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e <em>e</"
 "em>."
 
-#: C/guitar-tuner.vala.page:109(p) C/guitar-tuner.py.page:108(p)
+#: 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></"
@@ -3612,113 +4940,86 @@ 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:115(title) C/guitar-tuner.c.page:118(title)
-msgid "Creating the signal handler"
-msgstr "Crear o manexador de sinais"
-
-#: C/guitar-tuner.vala.page:116(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:117(p)
-msgid ""
-"To do this, open <file>guitar_tuner.vala</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 the "
-"beginning of the class. The following code will be added to your source file:"
-msgstr ""
-
-#: C/guitar-tuner.vala.page:124(p)
-msgid ""
-"This signal handler has only one argument: the <code>Gtk.Widget</code> that "
-"called the function (in our case, always a <code>Gtk.Button</code>). The "
-"additonal <code>[CCode (instance_pos=-1)]</code> tells the compiler that "
-"this is a signal handler that needs special treating while linking in order "
-"to be found at runtime."
-msgstr ""
-
-#: C/guitar-tuner.vala.page:126(p) C/guitar-tuner.py.page:123(p)
-#: C/guitar-tuner.c.page:129(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.vala.page:130(title) C/guitar-tuner.py.page:127(title)
+#: 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/guitar-tuner.vala.page:131(p) C/guitar-tuner.py.page:128(p)
-#: C/guitar-tuner.c.page:134(p)
+#: C/guitar-tuner.vala.page:125(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 ""
-"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."
+"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:132(p) C/guitar-tuner.py.page:129(p)
-#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:135(p)
+#: C/guitar-tuner.vala.page:126(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."
+"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:133(p) C/guitar-tuner.py.page:130(p)
-#: C/guitar-tuner.cpp.page:116(p) C/guitar-tuner.c.page:136(p)
+#: 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)
 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:135(p) C/guitar-tuner.py.page:132(p)
-#: C/guitar-tuner.cpp.page:118(p) C/guitar-tuner.c.page:138(p)
+#: 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:140(title) C/guitar-tuner.py.page:137(title)
+#: 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:141(p) C/guitar-tuner.py.page:138(p)
-#: C/guitar-tuner.cpp.page:129(p) C/guitar-tuner.c.page:144(p)
+#: C/guitar-tuner.vala.page:135(p)
 msgid ""
-"In this simple example we will use a tone generator source called "
+"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:143(p)
+#: C/guitar-tuner.vala.page:137(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:145(p)
+#: C/guitar-tuner.vala.page:139(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:180(p)
+#: C/guitar-tuner.vala.page:174(p)
 msgid ""
-"The first five lines create source and sink GStreamer elements (<code>Gst."
-"Element</code>), and a pipeline element (which will be used as a container "
+"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 "
@@ -3726,57 +5027,113 @@ msgid ""
 "(default sound card output)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:183(p)
-msgid ""
-"The call to <code>source.set</code> sets the <code>freq</code> property of "
-"the source element to <code>frequency</code>, which is passed as an argument "
+#: 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."
+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:186(p)
+#: C/guitar-tuner.vala.page:180(p)
 msgid ""
-"<code>pipeline.add</code> puts the source and sink into the pipeline. The "
-"pipeline is a <code>Gst.Bin</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 calls to <code>pipeline."
-"add</code>."
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
+"\"><code>pipeline.add</code></link> puts the source and sink into the "
+"pipeline. The pipeline is a <link href=\"http://valadoc.org/gstreamer-0.10/";
+"Gst.Bin.html\"><code>Gst.Bin</code></link>, which is just an element that "
+"can contain multiple other GStreamer elements. In general, you can add as "
+"many elements as you like to the pipeline by adding more calls to "
+"<code>pipeline.add</code>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:189(p)
+#: C/guitar-tuner.vala.page:183(p)
 msgid ""
-"Next, <code>sink.link</code> 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). <code>pipeline.set_state</code> is then used to "
-"start playback, by setting the state of the pipeline to playing (<code>Gst."
-"State.PLAYING</code>)."
+"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
+"\"><code>sink.link</code></link> is used to connect the elements together, "
+"so the output of source (a tone) goes into the input of sink (which is then "
+"output to the sound card). <link href=\"http://www.valadoc.org/";
+"gstreamer-0.10/Gst.Element.set_state.html\"><code>pipeline.set_state</code></"
+"link> is then used to start playback, by setting the <link href=\"http://www.";
+"valadoc.org/gstreamer-0.10/Gst.State.html\">state of the pipeline</link> to "
+"playing (<code>Gst.State.PLAYING</code>)."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:192(p)
+#: C/guitar-tuner.vala.page:186(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 <code>TimeoutSource</code>. This "
+"<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:203(title)
+#: 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)
+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:198(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:205(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:206(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:212(title)
 msgid "Define the signal handler"
 msgstr "Definir o manexador de sinais"
 
-#: C/guitar-tuner.vala.page:204(p)
+#: C/guitar-tuner.vala.page:213(p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. For this, "
-"we flesh out the signal handler that we defined earlier, "
+"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:232(p)
+#: C/guitar-tuner.vala.page:241(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 "
@@ -3784,21 +5141,14 @@ msgid ""
 "from that label using <code>get_label</code>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:233(p)
+#: C/guitar-tuner.vala.page:242(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:238(p) 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.vala.page:239(p) C/guitar-tuner.cpp.page:251(p)
+#: C/guitar-tuner.vala.page:248(p) C/guitar-tuner.cpp.page:251(p)
 #: C/guitar-tuner.c.page:251(p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
@@ -3806,25 +5156,41 @@ msgid ""
 "and enjoy!"
 msgstr ""
 
-#: C/guitar-tuner.vala.page:244(p)
+#: C/guitar-tuner.vala.page:253(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:258(p) C/guitar-tuner.py.page:235(p)
+#: 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>."
+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: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/guitar-tuner.vala.page:261(p) C/guitar-tuner.py.page:238(p)
+#: 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."
 msgstr ""
 "Facer que o programa reproduza gravaciÃns de cordas de guitarras que se "
 "estÃn afinando."
 
-#: C/guitar-tuner.vala.page:262(p) C/guitar-tuner.py.page:239(p)
+#: 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)
 msgid ""
 "To do this, you would need to set up a more complicated GStreamer pipeline "
@@ -3835,7 +5201,7 @@ msgid ""
 "example."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:263(p) C/guitar-tuner.py.page:240(p)
+#: 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)
 msgid ""
 "You might need to connect the elements in more complicated ways too. This "
@@ -3847,12 +5213,12 @@ msgid ""
 "command useful."
 msgstr ""
 
-#: C/guitar-tuner.vala.page:266(p) C/guitar-tuner.py.page:243(p)
+#: 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/guitar-tuner.vala.page:267(p) C/guitar-tuner.py.page:244(p)
+#: 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)
 msgid ""
 "You could connect a microphone and record sounds from it using an <link href="
@@ -3864,16 +5230,56 @@ msgid ""
 "figure out what notes are being played?"
 msgstr ""
 
+#: C/guitar-tuner.py.page:8(desc) C/guitar-tuner.c.page:8(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:24(p) C/guitar-tuner.cpp.page:24(p)
+#: C/guitar-tuner.c.page:24(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: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/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/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."
 msgid ""
 "Choose <gui>PyGTK (automake)</gui> from the <gui>Python</gui> tab, click "
-"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<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:50(p)
 msgid ""
@@ -3931,6 +5337,45 @@ 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."
+msgstr ""
+
+#: C/guitar-tuner.py.page:86(p) C/guitar-tuner.cpp.page:86(p)
+#: C/guitar-tuner.c.page:90(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: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."
+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."
+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."
+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 "
@@ -3956,7 +5401,7 @@ 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 main class. The "
+"gui> signal and drag it into to the source file inside the class. The "
 "following code will be added to your source file:"
 msgstr ""
 
@@ -3966,6 +5411,42 @@ msgid ""
 "the <code>Gtk.Button</code> that called the function."
 msgstr ""
 
+#: C/guitar-tuner.py.page:123(p) C/guitar-tuner.c.page:129(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: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."
+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)
+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:138(p) C/guitar-tuner.cpp.page:129(p)
+#: C/guitar-tuner.c.page:144(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:140(p)
 msgid ""
 "Change the import line in <file>guitar_tuner.py</file>, just at the "
@@ -3980,12 +5461,18 @@ msgid ""
 msgstr ""
 
 #: C/guitar-tuner.py.page:146(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 main class in <file>guitar_tuner."
-"py</file> somewhere:"
+"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:161(p)
+#: C/guitar-tuner.py.page:162(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 "
@@ -3995,7 +5482,7 @@ msgid ""
 "sound card output)."
 msgstr ""
 
-#: C/guitar-tuner.py.page:164(p)
+#: 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 "
@@ -4004,7 +5491,7 @@ msgid ""
 "later on."
 msgstr ""
 
-#: C/guitar-tuner.py.page:167(p)
+#: C/guitar-tuner.py.page:168(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 "
@@ -4012,7 +5499,7 @@ msgid ""
 "pipeline by calling its <code>add</code> method repeatedly."
 msgstr ""
 
-#: C/guitar-tuner.py.page:170(p)
+#: C/guitar-tuner.py.page:171(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>)."
@@ -4020,11 +5507,11 @@ 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)."
 
-#: C/guitar-tuner.py.page:177(title) C/guitar-tuner.c.page:193(title)
+#: C/guitar-tuner.py.page:178(title) C/guitar-tuner.c.page:193(title)
 msgid "Stopping playback"
 msgstr "Deter a reproduciÃn"
 
-#: C/guitar-tuner.py.page:178(p)
+#: 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>. "
@@ -4034,7 +5521,7 @@ msgid ""
 "code>."
 msgstr ""
 
-#: C/guitar-tuner.py.page:179(p)
+#: 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> "
@@ -4044,23 +5531,23 @@ msgstr ""
 "<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:185(p)
+#: C/guitar-tuner.py.page:186(p)
 msgid ""
 "You need to define the <code>LENGTH</code> constant inside the class, so add "
 "this code at the beginning of the main class:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:190(p)
+#: C/guitar-tuner.py.page:191(p)
 msgid ""
 "The call to <code>pipeline.set_state</code> pauses the playback of the "
 "pipeline."
 msgstr ""
 
-#: C/guitar-tuner.py.page:194(title) C/guitar-tuner.c.page:211(title)
+#: C/guitar-tuner.py.page:195(title) C/guitar-tuner.c.page:211(title)
 msgid "Define the tones"
 msgstr "Definir os tonos"
 
-#: C/guitar-tuner.py.page:195(p)
+#: 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 "
@@ -4068,7 +5555,7 @@ msgid ""
 "easily map them to the names of the strings:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:208(p) C/guitar-tuner.c.page:221(p)
+#: 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 "
@@ -4077,7 +5564,7 @@ msgid ""
 "clicked:"
 msgstr ""
 
-#: C/guitar-tuner.py.page:216(p)
+#: C/guitar-tuner.py.page:217(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 "
@@ -4085,14 +5572,14 @@ msgid ""
 "using <code>label.get_label</code>."
 msgstr ""
 
-#: C/guitar-tuner.py.page:217(p)
+#: C/guitar-tuner.py.page:218(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:222(p)
+#: C/guitar-tuner.py.page:223(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!"
@@ -4100,7 +5587,7 @@ msgstr ""
 "Todo o cÃdigo deberÃa estar listo. Prema <guiseq><gui>Executar</"
 "gui><gui>Executar</gui></guiseq> para iniciar o aplicativo. GÃceo!"
 
-#: C/guitar-tuner.py.page:227(p)
+#: C/guitar-tuner.py.page:228(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>."
@@ -4108,14 +5595,163 @@ 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)
+#, 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: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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:26(link) C/guitar-tuner.js.page:75(title)
+msgid "Buttons for the tunes"
+msgstr ""
+
+#: C/guitar-tuner.js.page:27(link) C/guitar-tuner.js.page:100(title)
+msgid "Making the sounds with GStreamer"
+msgstr ""
+
+#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:124(title)
+msgid "Connecting buttons to playSound"
+msgstr ""
+
+#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:147(title)
+msgid "The whole program"
+msgstr ""
+
+#: 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"
+msgstr ""
+
+#: C/guitar-tuner.js.page:58(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: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()"
+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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:97(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:120(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:121(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:144(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."
+msgstr ""
+
+#: C/guitar-tuner.js.page:148(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:228(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:228(input)
+msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
+msgstr ""
+
+#: C/guitar-tuner.js.page:233(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 "
+"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:21(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++"
@@ -4147,12 +5783,6 @@ msgstr ""
 "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: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/guitar-tuner.cpp.page:68(p)
 msgid ""
 "The three <code>#include</code> lines at the top include the <code>config</"
@@ -4178,6 +5808,15 @@ msgid ""
 "and key presses)."
 msgstr ""
 
+#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:88(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 "
@@ -4356,6 +5995,13 @@ msgid ""
 "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 "
@@ -4382,15 +6028,35 @@ msgid "Basic knowledge of the C programming language"
 msgstr "ConÌecemento baÌsico da linguaxe de programacioÌn C"
 
 #: C/guitar-tuner.c.page:47(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>Forward</gui>, and fill out your details on the next few pages. Use "
+"<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:50(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:64(p)
 msgid ""
 "C is a rather verbose language, so don't be surprised that the file contains "
@@ -4562,6 +6228,92 @@ 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/GtkApplication.vala.page:26(None)
+msgid ""
+"@@image: 'media/GtkApplication.png'; md5=7936026e86fb4f084c256ce28879c908"
+msgstr ""
+
+#: C/GtkApplication.vala.page:9(name) C/aboutdialog.vala.page:9(name)
+msgid "Ryan Lortie"
+msgstr ""
+
+#: C/GtkApplication.vala.page:10(email) C/aboutdialog.vala.page:10(email)
+msgid "desrt desrt ca"
+msgstr ""
+
+#: C/GtkApplication.vala.page:19(desc)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "A Gtk.ApplicationWindow"
+msgstr "Un primeiro aplicativo en GTK"
+
+#: C/GtkApplication.vala.page:22(title)
+msgid "ApplicationWindow"
+msgstr ""
+
+#: C/GtkApplication.vala.page:30(em)
+msgid "You need to be running Gtk+-3.4 or later for this to work"
+msgstr ""
+
+#: C/GtkApplication.vala.page:32(p)
+msgid ""
+"This program will not compile until <link href=\"https://bugzilla.gnome.org/";
+"show_bug.cgi?id=674090\">Bug #674090</link> is fixed."
+msgstr ""
+
+#: C/GtkApplication.vala.page:38(p)
+msgid "A demonstration of the menu integration."
+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/GtkApplication.vala.page:106(link) C/aboutdialog.vala.page:77(link)
+msgid "Gtk.ApplicationWindow"
+msgstr ""
+
+#: C/GtkApplication.vala.page:107(link)
+msgid "Menu"
+msgstr ""
+
+#: C/GtkApplication.vala.page:108(link)
+msgid "append"
+msgstr ""
+
+#: C/GtkApplication.vala.page:109(link)
+#| msgid "Selecting"
+msgid "SimpleAction"
+msgstr "SimpleAction"
+
+#: C/GtkApplication.vala.page:110(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/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/grid.js.page:14(desc)
+msgid "Pack widgets in rows and columns"
+msgstr ""
+
+#: C/grid.js.page:17(title)
+msgid "Grid widget"
+msgstr ""
+
+#: C/grid.js.page:20(p)
+msgid "A button widget connected to a progress bar."
+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"
@@ -4683,7 +6435,591 @@ msgstr ""
 "Por suposto, calquera versiÃn mÃis moderna tamÃn funcionarÃ. Agora desexamos "
 "que goce coas <link xref=\"index\">demostraciÃns</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/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/entry.js.page:17(title)
+msgid "Entry widget"
+msgstr ""
+
+#: C/entry.js.page:20(p)
+msgid ""
+"This an entry widget. An entry widget is a container that you can type in to."
+msgstr ""
+
+#: 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>."
+msgstr ""
+
+#: C/documentation.page:19(title)
+msgid "Help develop"
+msgstr ""
+
+#: 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 ""
+
+#: 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>."
+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/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/dialog.vala.page:14(desc)
+msgid "A popup window"
+msgstr ""
+
+#: C/dialog.vala.page:17(title)
+msgid "Dialog"
+msgstr ""
+
+#: C/dialog.vala.page:19(p)
+msgid "A dialog with the response signal hooked up to a callback function."
+msgstr ""
+
+#: C/dialog.vala.page:51(link)
+msgid "Gtk.Dialog"
+msgstr ""
+
+#: C/dialog.vala.page:52(link)
+msgid "Gtk.Dialog.with_buttons"
+msgstr ""
+
+#: C/dialog.vala.page:53(link)
+msgid "Gtk.Label"
+msgstr ""
+
+#: C/dialog.vala.page:54(link)
+msgid "get_content_area"
+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/desktop.js.page:17(title)
+msgid "helloWorld.desktop"
+msgstr "holaMundo.desktop"
+
+#: C/desktop.js.page:18(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>."
+msgstr ""
+
+#: C/desktop.js.page:19(p)
+msgid ""
+"The example shows you the minimum requirements for a <code>.desktop</code> "
+"file."
+msgstr ""
+
+#: C/desktop.js.page:32(p)
+msgid "Now let's go through some parts of the <code>.desktop</code> file."
+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"
+msgstr ""
+
+#: C/desktop.js.page:36(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."
+msgstr ""
+
+#: C/desktop.js.page:37(p)
+msgid ""
+"Line 8: Specifies whether the command in the Exec key runs in a terminal "
+"window."
+msgstr ""
+
+#: C/desktop.js.page:39(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"
+msgstr ""
+
+#: C/desktop.js.page:40(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>."
+msgstr ""
+
+#: C/desktop.js.page:41(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>."
+msgstr ""
+
+#: C/desktop.js.page:42(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:"
+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/button.vala.page:14(desc)
+msgid "A button widget which can be connected to other widgets."
+msgstr ""
+
+#: C/button.vala.page:17(title)
+msgid "Button widget"
+msgstr "Widget de botÃn"
+
+#: C/button.vala.page:20(p)
+msgid "A button widget connected to stdout.printf (), and a modal window."
+msgstr ""
+
+#: C/button.vala.page:60(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>"
+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/button.js.page:17(title)
+msgid "Button"
+msgstr "BotÃn"
+
+#: C/button.js.page:19(p)
+msgid "A button widget that changes its label when you click it."
+msgstr ""
+
+#: C/button.js.page:21(code)
+#, no-wrap
+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();"
+msgstr ""
+
+#: C/button.js.page:53(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>"
+msgstr ""
+
+#: C/bug-filing.page:10(email)
+msgid "tiffany antopolski com"
+msgstr ""
+
+#: C/bug-filing.page:18(title)
+msgid "Help make <app>GNOME Developer Tutorials</app> better"
+msgstr ""
+
+#: C/bug-filing.page:21(title)
+msgid "Report a bug or suggest an improvement"
+msgstr ""
+
+#: C/bug-filing.page:22(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/\"/>."
+msgstr ""
+
+#: C/bug-filing.page:25(p)
+msgid ""
+"This is a bug tracking system where users and developers can file details "
+"about bugs, crashes and request enhancements."
+msgstr ""
+
+#: C/bug-filing.page:28(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."
+msgstr ""
+
+#: C/bug-filing.page:31(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."
+msgstr ""
+
+#: C/bug-filing.page:35(p)
+msgid ""
+"To file your bug, choose the component <gui>platform-demos</gui> in the "
+"<gui>Component</gui> menu."
+msgstr ""
+
+#: C/bug-filing.page:38(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>."
+msgstr ""
+
+#: C/bug-filing.page:42(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!"
+msgstr ""
+
+#: C/beginner.vala.page:10(desc) C/beginner.py.page:10(desc)
+#: C/beginner.c.page:10(desc)
+msgid ""
+"A beginner's guide to GUI programming using GTK+, including code samples and "
+"practice exercises."
+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/beginner.vala.page:19(p) C/beginner.py.page:19(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."
+msgstr ""
+
+#: C/beginner.vala.page:21(p) C/beginner.py.page:21(p) C/beginner.c.page:20(p)
+msgid ""
+"Although these tutorials are designed for beginners, we can't cover all the "
+"basics. Before attempting to follow these tutorials, you are expected to be "
+"familiar with the following concepts:"
+msgstr ""
+
+#: C/beginner.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)
+msgid ""
+"By following these tutorials you will learn the basics of GUI programming "
+"using Gtk+."
+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"
+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/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/beginner.py.page:24(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"
+
+#: C/beginner.js.page:14(desc)
+msgid "A complete beginner's guide to GTK+ programming"
+msgstr ""
+
+#: C/beginner.js.page:17(title)
+msgid "0 Beginner's Tutorials and samples"
+msgstr ""
+
+#: C/beginner.js.page:18(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."
+msgstr ""
+
+#: C/beginner.js.page:30(p)
+msgid "Copy and paste the code into <var>filename</var>.js"
+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/aboutdialog.vala.page:23(title)
+msgid "AboutDialog"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.vala.page:25(p)
+msgid "An AboutDialog example using Gtk.Application"
+msgstr ""
+
+#: C/aboutdialog.vala.page:26(em)
+msgid "You need to be running Gtk3.4 or later for this to work"
+msgstr ""
+
+#: C/aboutdialog.vala.page:78(link)
+msgid "set_default_size"
+msgstr "set_default_size"
+
+#: C/aboutdialog.vala.page:79(link)
+msgid "Gtk.Button.with_label"
+msgstr "Gtk.Button.with_label"
+
 #. 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."
+
+#~ msgid ""
+#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+#~ msgstr ""
+#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+
+#~ msgid ""
+#~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
+#~ "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+#~ "<file>guitar-tuner</file> as project name and directory."
+#~ msgstr ""
+#~ "Seleccione <gui>GTK+ (Simple)</gui> desde a lapela <gui>Vala</gui>, prema "
+#~ "<gui>Adiante</gui> e complete os detalles nas seguintes paÌxinas. Use "
+#~ "<file>guitar-tunner</file> como nome do proxecto e cartafol."
+
+#~ msgid ""
+#~ "Click <gui>Finished</gui> and the project will be created for you. Open "
+#~ "<file>src/guitar_tuner.vala</file> from the <gui>Project</gui> or "
+#~ "<gui>File</gui> tabs. You should see some code which starts with the "
+#~ "lines:"
+#~ msgstr ""
+#~ "Prema <gui>Aplicar</gui> e crearase o proxecto. Abra <file>src/"
+#~ "guitar_tuner.vala</file> desde as lapelas <gui>Proxecto</gui> ou "
+#~ "<gui>Ficheiro</gui>. DeberiÌa ver algo de coÌdigo que comece coas linÌas:"



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