[gnome-devel-docs] Updated Spanish translation



commit 923a67a1402cbc0a55ea980cd58ad072728f258d
Author: Daniel Mustieles <daniel mustieles gmail com>
Date:   Fri Apr 13 17:33:09 2012 +0200

    Updated Spanish translation

 platform-demos/es/es.po |13423 ++++++++++++++++++++++++++---------------------
 1 files changed, 7369 insertions(+), 6054 deletions(-)
---
diff --git a/platform-demos/es/es.po b/platform-demos/es/es.po
index 8646754..b2f4fe4 100644
--- a/platform-demos/es/es.po
+++ b/platform-demos/es/es.po
@@ -8,8 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs.platform-demos.master\n"
-"POT-Creation-Date: 2012-04-10 22:23+0000\n"
-"PO-Revision-Date: 2012-04-12 16:53+0200\n"
+"POT-Creation-Date: 2012-04-13 01:41+0000\n"
+"PO-Revision-Date: 2012-04-13 17:32+0200\n"
 "Last-Translator: Daniel Mustieles <daniel mustieles gmail com>\n"
 "Language-Team: EspaÃol <gnome-es-list gnome org>\n"
 "MIME-Version: 1.0\n"
@@ -20,6777 +20,8176 @@ 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)
-#| msgid "@@image: 'media/button.png'; md5=358f87347bc8c9571c591b06fafd6fe0"
-msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
-msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
-
+#: C/window.vala.page:18(None)
+#| msgid "@@image: 'media/guitarJs.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+msgstr "@@image: 'media/window.png'; md5=38981fea31f2b9871cf369e0541fdbc6"
+
+#: C/window.vala.page:9(name) C/translate.page:10(name)
+#: C/messagedialog.vala.page:9(name) C/index.page:22(name)
+#: C/image-viewer.vala.page:24(name) C/guitar-tuner.vala.page:20(name)
+#: C/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/index.page:22(name)
+#: C/beginner.vala.page:12(name) C/beginner.py.page:12(name)
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
+#: C/window.vala.page:10(email) C/translate.page:11(email)
+#: C/messagedialog.vala.page:10(email) C/index.page:23(email)
+#: C/image-viewer.vala.page:25(email) C/guitar-tuner.vala.page:21(email)
+#: C/documentation.page:11(email) C/dialog.vala.page:10(email)
 #: C/button.vala.page:10(email) C/beginner.vala.page:13(email)
-#: C/index.page:23(email)
+#: C/beginner.py.page:13(email)
 msgid "tiffany antopolski gmail com"
 msgstr "tiffany antopolski gmail com"
 
+#: C/window.vala.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/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)
 msgid "2012"
 msgstr "2012"
 
-#: C/button.vala.page:14(desc)
-#| msgid "A button widget which is connected to a progress bar"
-msgid "A button widget which can be connected to other widgets."
-msgstr "Un widget de botÃn que puede estar conectado a otros widgets."
+#: C/window.vala.page:14(desc)
+#| msgid "A button widget which can be connected to other widgets."
+msgid "A toplevel window which can contain other widgets."
+msgstr "Una ventana de nivel superior que puede contener otros widgets."
 
-#: C/button.vala.page:17(title) C/button.js.page:17(title)
-msgid "Button widget"
-msgstr "Widget de botÃn"
+#: C/window.vala.page:17(title)
+#| msgid "Windows"
+msgid "Window"
+msgstr "Ventana"
 
-#: C/button.vala.page:20(p)
-#| msgid "A button widget connected to a progress bar."
-msgid "A button widget connected to stdout.printf (), and a modal window."
-msgstr "Un widget de botÃn conectado a stdout.printf () y a una ventana modal."
+#: C/window.vala.page:19(p)
+msgid "A toplevel window with destroy signal hooked up."
+msgstr ""
 
-#: C/button.vala.page:62(p)
+#: C/window.vala.page:52(p) C/messagedialog.vala.page:53(p)
+#: C/dialog.vala.page:47(p)
 msgid "In this sample we used the following:"
 msgstr "En este ejemplo se usa lo siguiente:"
 
-#: C/button.vala.page:66(link)
-msgid "thing1"
-msgstr "thing1"
+#: C/window.vala.page:56(p)
+#| msgid ""
+#| "You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</"
+#| "link>"
+msgid ""
+"The widget <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window";
+"\">Gtk.Window</link>"
+msgstr ""
+"El widget <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window";
+"\">Gtk.Window</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/button.js.page:19(None)
-#| msgid "@@image: 'media/button.png'; md5=358f87347bc8c9571c591b06fafd6fe0"
+#: C/window.vala.page:58(p)
 msgid ""
-"@@image: 'media/button_with_progress_bar.png'; "
-"md5=358f87347bc8c9571c591b06fafd6fe0"
+"The enum <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
+"WindowPosition\">Gtk.WindowPosition</link>"
 msgstr ""
-"@@image: 'media/button_with_progress_bar.png'; "
-"md5=358f87347bc8c9571c591b06fafd6fe0"
+"El enumerado <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
+"WindowPosition\">Gtk.WindowPosition</link>"
 
-#: C/button.js.page:9(name)
+#: 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 ""
+"El mÃtodo<link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window.";
+"set_default_size\">set_default_size</link>"
+
+#: 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/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/entry.js.page:9(name)
+#: C/desktop.js.page:9(name) C/button.js.page:9(name)
+#: C/beginner.js.page:9(name)
 msgid "Susanna Huhtanen"
 msgstr "Susanna Huhtanen"
 
-#: C/button.js.page:10(email)
+#: 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/entry.js.page:10(email)
+#: C/desktop.js.page:10(email) C/button.js.page:10(email)
+#: C/beginner.js.page:10(email)
 msgid "ihmis suski gmail com"
 msgstr "ihmis suski gmail com"
 
-#: C/button.js.page:14(desc)
-msgid "A button widget which is connected to a progress bar"
-msgstr "Un widget de botÃn que està conectado a la barra de progreso"
-
-#: C/button.js.page:20(p)
-msgid "A button widget connected to a progress bar."
-msgstr "Un widget de botÃn conectado a una barra de progreso."
+#: C/weatherGeonames.js.page:17(title)
+msgid "Local library geoNames"
+msgstr "Biblioteca local geoNames"
 
-#: C/bug-filing.page:10(email)
-msgid "tiffany antopolski com"
-msgstr "tiffany antopolski com"
+#: 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 ""
+"En esta parte de la guÃa se construirà la biblioteca local geoNames usando "
+"llamadas asÃncronas. En este ejemplo, la informaciÃn del clima se obtiene de "
+"geonames.org y la aplicaciÃn usa los <link href=\"http://en.wikipedia.org/";
+"wiki/List_of_airports_by_ICAO_code:_E\">cÃdigos ICAO</link> para responder a "
+"las peticiones. Para escribir y ejecutar todos los ejemplos de cÃdigo "
+"necesita un editor de texto en el que escribir el cÃdigo, una terminal y "
+"GNOME 3 o superior instalado en su equipo. En esta guÃa se verÃn las "
+"siguientes partes:"
+
+#: C/weatherGeonames.js.page:22(link) C/weatherGeonames.js.page:30(title)
+msgid "Local library for getting the weather"
+msgstr "Biblioteca local para obtener el clima"
+
+#: C/weatherGeonames.js.page:23(link)
+msgid "Creating function geoNames"
+msgstr "Crear la funciÃn geoNames"
+
+#: C/weatherGeonames.js.page:24(link)
+msgid "Methods for geoNames"
+msgstr "MÃtodos para geoNames"
+
+#: 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 ""
+"Para esto se necesita un archivo nueva que serà nuestra biblioteca local."
 
-#: C/bug-filing.page:11(years) C/index.page:19(years)
-msgid "2011"
-msgstr "2011"
+#: 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 ""
+"En las primeras lÃneas se importan y se inicializan las bibliotecas que "
+"necesitamos usar en esta biblioteca local. Soup maneja todas las peticiones "
+"que se hagan con http."
 
-#: C/bug-filing.page:14(p)
-msgid "Creative Commons Share Alike 3.0"
-msgstr "Creative Commons Compartir Igual 3.0"
+#: C/weatherGeonames.js.page:41(title)
+msgid "Creating function GeoNames"
+msgstr "Crear la funciÃn geoNames"
 
-#: C/bug-filing.page:18(title)
-msgid "Help make <app>GNOME Developer Tutorials</app> better"
-msgstr "Ayudar a mejorar los <app>Tutoriales del desarrollador de GNOME</app>"
+#: 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 ""
+"Aquà se crea la funciÃn GenoNames, que manejarà la obtenciÃn del clima. "
+"JavaScript permite crear funciones sencillas al principio para ampliarlas "
+"mÃs tarde. Esto se harà dentro de las llaves de GeoNames.prototype."
 
-#: C/bug-filing.page:21(title)
-msgid "Report a bug or suggest an improvement"
-msgstr "Informar de un error o proponer una mejora"
+#: C/weatherGeonames.js.page:55(title)
+msgid "Methods for GeoNames"
+msgstr "MÃtodos para geoNames"
 
-#: C/bug-filing.page:22(p)
+#: C/weatherGeonames.js.page:95(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/\"/>."
+"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 ""
-"Los <app>Tutoriales del desarrollador de GNOME</app> los mantiene la "
-"comunidad de manera voluntaria. Si quiere participar, es bienvenido. Si "
-"encuentra un error, puede rellenar un <em>informe de error</em>. Para "
-"informar de un error, vaya a <link href=\"https://bugzilla.gnome.org/\"/>."
-
-#: C/bug-filing.page:25(p)
+"El primer mÃtodo de GeoNames es getWeather, y el segundo es getIcon. En "
+"getWeather se realiza una solicitud http con soup, se gestionan los errores "
+"y se analiza la informaciÃn de la solicitud para saber que se puede usar. En "
+"getIcon simplemente se comparan los resultados obtenidos en getWeather con "
+"el selector para obtener el icono que representa el clima actual. Ahora que "
+"la biblioteca local està lista, es el momento de usarla."
+
+#: C/weatherGeonames.js.page:101(p)
 msgid ""
-"This is a bug tracking system where users and developers can file details "
-"about bugs, crashes and request enhancements."
+"Here is the entire code for our local library. The main program file calls "
+"this asynchronously."
 msgstr ""
-"Este es el sistema de seguimiento de errores en el que los usuarios y los "
-"desarrolladores pueden archivar detalles sobre los errores, fallos y "
-"solicitudes de mejoras."
+"Aquà està el cÃdigo completo de la biblioteca. El archivo de programa "
+"principal la llama de manera asÃncrona."
 
-#: C/bug-filing.page:28(p)
+#: C/weatherAutotools.js.page:17(title) C/weatherApp.js.page:28(link)
+#| msgid "Autotools and necessary files"
+msgid "Autotools and Icons"
+msgstr "Autotools e iconos"
+
+#: C/weatherAutotools.js.page:19(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."
+"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 ""
-"Para participar necesita una cuenta, que le permitirà obtener acceso, "
-"informar de errores y hacer comentarios. TambiÃn debe registrarte para poder "
-"recibir actualizaciones por correo-e sobre el estado de su informe de error. "
-"Si todavÃa no tiene una cuenta, simplemente pulse en el enlace <gui>New "
-"Account</gui> para crear una."
-
-#: C/bug-filing.page:31(p)
+"En esta parte de la guÃa se construirÃn las Âautotools y los iconos "
+"necesarios para la aplicaciÃn del clima para que sea una parte integral de "
+"su escritorio. Para escribir y ejecutar todos los ejemplos de cÃdigo "
+"necesita un editor de texto en el que escribir el cÃdigo, una terminal y "
+"GNOME 3 o superior instalado en su equipo. En esta guÃa se verÃn las "
+"siguientes partes:"
+
+#: 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 "Iconos personalizados para su aplicaciÃn"
+
+#: C/weatherAutotools.js.page:30(title)
+msgid "Autotools and necessary files"
+msgstr "Autotools y archivos necesarios"
+
+#: C/weatherAutotools.js.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."
+"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 ""
-"Una vez que tenga su cuenta, inicie sesioÌn y pulse en <guiseq><gui>Informar "
-"de un error</gui><gui>Todas</gui><gui>gnome-devel-docs</gui></guiseq>. Antes "
-"de informar de un error, lea las <link href=\"https://bugzilla.gnome.org/";
-"page.cgi?id=bug-writing.html\">guiÌas para informar de un error</link> y "
-"<link href=\"https://bugzilla.gnome.org/browse.cgi?product=evince\";>busque</"
-"link> el error para ver si ya existe."
-
-#: C/bug-filing.page:35(p)
+"Tener mÃs de un archivo en la carpeta complica un poco el uso de autotools. "
+"Necesita los archivos .desktop, autogen.sh, Makefile.am, configure.ac y un "
+"archivo nuevo: myapp.sh.in. Hackear el archivo de autotools es complicado. "
+"Puede encontrar mÃs informaciÃn en diferentes fuentes; <link href=\"http://";
+"en.wikipedia.org/wiki/GNU_build_system\">este artÃculo de la wikipedia</"
+"link> proporciona una visiÃn general de este tema."
+
+#: 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 ""
-"To file your bug, choose the component <gui>platform-demos</gui> in the "
-"<gui>Component</gui> menu."
+"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 ""
-"Para informar de un error, elija el componente <gui>platform-demos</gui> en "
-"el menà <gui>Component</gui>."
 
-#: C/bug-filing.page:38(p)
+#: C/weatherAutotools.js.page:60(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>."
+"This file is a template to the file Makefile will do to be run from .desktop."
 msgstr ""
-"Si quiere solicitar una caracterÃstica nueva, elija <gui>enhancement</gui> "
-"en el menà <gui>Severity</gui>. Rellene las secciones ÂSummary y "
-"ÂDescription y pulse <gui>Commit</gui>."
 
-#: C/bug-filing.page:42(p)
+#: C/weatherAutotools.js.page:123(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!"
+"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 ""
-"Se le asignaraÌ un nuÌmero de ID a su informe y su estado se actualizaraÌ a "
-"medida que se trate. Gracias por ayudar a mejorar los <app>Tutoriales del "
-"desarrollador de GNOME</app>."
 
-#: C/beginner.vala.page:10(desc)
+#: C/weatherAutotools.js.page:124(p)
 msgid ""
-"A beginner's guide to GUI programming using GTK+, including code samples and "
-"practice exercises."
+"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 ""
-"Una guÃa de programaciÃn de interfaces usuario en GTK+ para principiantes, "
-"incluyendo ejemplos de cÃdigo y ejercicios prÃcticos."
 
-#: C/beginner.vala.page:17(title)
-msgid "0 Beginner's Tutorials"
-msgstr "0. Tutoriales para principiantes"
+#: C/weatherAutotools.js.page:125(p)
+msgid "EXTRA_DIST are the files that are to be distributed"
+msgstr "EXTRA_DIST son los archivos que se deben distribuir"
+
+#: C/weatherAutotools.js.page:126(p)
+msgid "do_subst block is bits and pieces that need to be where they are"
+msgstr ""
 
-#: C/beginner.vala.page:19(p)
+#: C/weatherAutotools.js.page:127(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."
+"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 ""
-"Si nunca antes ha programad, o no està familiarizado con los conceptos de la "
-"programaciÃn orientada a objetos, puede necesitar aprender primero unos "
-"conceptos bÃsicos. El libro <link href=\"http://learnpythonthehardway.org/";
-"book/\">Learn Python the Hard Way</link> puede ser un buen comienzo. Una vez "
-"que domine los conceptos bÃsicos, vuelva y revise estos tutoriales."
 
-#: C/beginner.vala.page:21(p)
+#: C/weatherAutotools.js.page:136(p)
+msgid "autohen.sh"
+msgstr "autohen.sh"
+
+#: C/weatherAutotools.js.page:144(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:"
+"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 ""
-"Aunque estos tutoriales estÃn diseÃados para principiantes, no se pueden "
-"cubrir todos los conceptos bÃsicos. Antes de intentar seguir estos "
-"tutoriales, debe estar familiarizado con los siguientes conceptos:"
 
-#: C/beginner.vala.page:23(p)
-msgid "Object oriented programming"
-msgstr "ProgramaciÃn orientada a objetos"
+#: 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/beginner.vala.page:24(p)
-msgid "The Vala programming language:"
-msgstr "El lenguaje de programaciÃn Vala:"
+#: C/weatherAutotools.js.page:146(p)
+msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
+msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
 
-#: C/beginner.vala.page:26(link)
-msgid "The Vala Tutorial"
-msgstr "El tutorial de Vala"
+#: C/weatherAutotools.js.page:147(p)
+msgid "appicon_DATA=weather-icon.svg"
+msgstr "appicon_DATA=weather-icon.svg"
 
-#: C/beginner.vala.page:27(link)
-msgid "Sample Vala code"
-msgstr "Ejemplo de cÃdigo en Vala"
+#: C/weatherAppMain.js.page:17(title) C/weatherApp.js.page:26(link)
+msgid "The main program file"
+msgstr "El archivo del programa principal"
 
-#: C/beginner.vala.page:32(p)
+#: C/weatherAppMain.js.page:19(p)
 msgid ""
-"By following these tutorials you will learn the basics of GUI programming "
-"using Gtk+."
+"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 ""
+"En esta parte de la guÃa se construirà el archivo del programa principal de "
+"la aplicaciÃn del clima. Para escribir y ejecutar todos los ejemplos de "
+"cÃdigo necesita un editor de texto en el que escribir el cÃdigo, una "
+"terminal y GNOME 3 o superior instalado en su equipo. En esta guÃa se verÃn "
+"las siguientes partes:"
+
+#: 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)
+msgid "Script for running the application"
+msgstr "Script para ejecutar la aplicaciÃn"
+
+#: 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 que 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)
+msgid "Creating the main window for the application"
+msgstr "Crear la ventana principal de la aplicaciÃn"
+
+#: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:62(title)
+msgid "Adding a grid and all the necessary widgets to it"
+msgstr "AÃadir una rejilla y todos los widgets necesarios en ella"
+
+#: C/weatherAppMain.js.page:25(link) C/weatherAppMain.js.page:93(title)
+msgid "Requesting the weather information asynchronously"
 msgstr ""
-"Siguiendo estos tutoriales, aprenderà los conceptos bÃsico de la "
-"programaciÃn de interfaces de usuario usando GTK+."
 
-#: C/beginner.vala.page:36(title)
-msgid "Tutorials"
-msgstr "Tutoriales"
+#: C/weatherAppMain.js.page:26(link)
+#, fuzzy
+#| msgid "Connecting buttons to playSound"
+msgid "Connecting signals to button and entry.\"&gt;"
+msgstr "Conectar los botones a playSound"
 
-#: C/beginner.vala.page:40(title)
-msgid "Code samples"
-msgstr "Ejemplos de cÃdigo"
+#: C/weatherAppMain.js.page:27(link)
+msgid "weatherapp.js"
+msgstr "weatherapp.js"
 
-#: C/beginner.vala.page:41(p)
-msgid "To run the code samples:"
-msgstr "Para ejecutar los ejemplos de cÃdigo:"
+#: 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 ""
+"Esta lÃnea indica cÃmo ejecutar el script. Debe ser la primera lÃnea del "
+"cÃdigo y debe ser ejecutable. Para obtener permisos de ejecuciÃn vaya a la "
+"terminal y ejecute lo siguiente en la carpeta adecuada: chmod +x "
+"nombrescript. TambiÃn puede usar el gestor de archivo. Simplemente vaya a la "
+"carpeta donde està el cÃdigo, pulse con el botÃn derecho sobre el archivo de "
+"cÃdigo y elija ÂPropiedadesÂ, pulse en la pestaÃa ÂPermisos y marque la "
+"casilla para permitir ejecutar el archivo como un programa."
+
+#: 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 ""
+"Para que el programa funcione se debe importar una biblioteca de "
+"introspecciÃn de GObject. Para que funcione la IU se necesita GTK+, que se "
+"importa al inicio, por lo que està en uso en todos los sitios. TambiÃn se "
+"importa la biblioteca local en JavaScript geonames para usarla aquÃ."
 
-#: C/beginner.vala.page:45(p)
-msgid "Copy and paste the code into <var>filename</var>.vala"
-msgstr "Copie y pegue el cÃdigo en <var>nombre_archivo</var>.vala"
+#: 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/beginner.vala.page:46(p)
-msgid "In the terminal type:"
-msgstr "Escriba en la terminal:"
+#: 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/beginner.vala.page:47(screen)
-#, no-wrap
-msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
-msgstr "valac --pkg gtk+-3.0 <var>nombre_archivo</var>.vala"
+#: C/weatherAppMain.js.page:123(title)
+#, fuzzy
+#| msgid "Connecting buttons to playSound"
+msgid "Connecting signals to button and entry."
+msgstr "Conectar los botones a playSound"
 
-#: C/beginner.vala.page:48(screen)
-#, no-wrap
-msgid "./<var>filename</var>"
-msgstr "./<var>nombre_archivo</var>"
+#: 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/beginner.vala.page:52(title)
-msgid "Windows"
-msgstr "Ventanas"
+#: C/weatherAppMain.js.page:140(title)
+msgid "Weatherapp.js"
+msgstr "Weatherapp.js"
 
-#: C/beginner.vala.page:55(title)
-msgid "Display widgets"
-msgstr "Widgets de visualizaciÃn"
+#: C/weatherAppMain.js.page:141(p)
+msgid "Weatherapp.js file looks like this:"
+msgstr "El archivo Weatherapp.js se parece a esto:"
 
-#: C/beginner.vala.page:57(title)
-msgid "Buttons and toggles"
-msgstr "Botones y casillas"
+#: C/weatherAppMain.js.page:227(p)
+msgid "Running until you have all the autotools files ready. :"
+msgstr ""
 
-#: C/beginner.vala.page:59(title)
-msgid "Numeric and text data entry"
-msgstr "Entrada de daos numÃrica y de texto"
+#: 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/beginner.vala.page:61(title)
-msgid "Menu, combo box and toolbar widgets"
-msgstr "Widgets de menÃ, caja combinada y barra de herramientas"
+#: C/weatherAppMain.js.page:229(input)
+msgid "GJS_PATH=`pwd` gjs weatherapp.js"
+msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
 
-#: C/beginner.vala.page:63(title)
-msgid "TreeView widget"
-msgstr "Widget TreeView"
+#: 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 ""
 
-#: C/beginner.vala.page:65(title)
-msgid "Selectors"
-msgstr "Selectores"
+#. 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/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+msgstr ""
+"@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
 
-#: C/beginner.vala.page:66(title)
-msgid "File selectors"
-msgstr "Selectores de archivos"
+#: 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/beginner.vala.page:68(title)
-msgid "Font selectors"
-msgstr "Selectores de tipografÃas"
+#: C/weatherApp.js.page:19(title)
+msgid "4 Weather Application"
+msgstr "4 AplicaciÃn del clima"
 
-#: C/beginner.vala.page:70(title)
-msgid "Color Selectors"
-msgstr "Selectores de color"
+#: 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 ""
+"En esta parte de la guÃa se construirà una aplicaciÃn del clima usando "
+"llamadas asÃncronas. En este ejemplo, la informaciÃn del clima se obtiene de "
+"geonames.org y la aplicaciÃn usa los <link href=\"http://en.wikipedia.org/";
+"wiki/List_of_airports_by_ICAO_code:_E\">cÃdigos ICAO</link> para responder a "
+"las peticiones. Para escribir y ejecutar todos los ejemplos de cÃdigo "
+"necesita un editor de texto en el que escribir el cÃdigo, una terminal y "
+"GNOME 3 o superior instalado en su equipo. En esta guÃa se verÃn las "
+"siguientes partes:"
+
+#: C/weatherApp.js.page:24(link) C/weatherApp.js.page:36(title)
+msgid "Planning the graphical user interface"
+msgstr "Planificar la interfaz grÃfica de usuario"
+
+#: C/weatherApp.js.page:25(link) C/weatherApp.js.page:40(title)
+msgid "Asynchronous calls"
+msgstr "Llamadas asÃncronas"
+
+#: C/weatherApp.js.page:27(link)
+msgid "Local library GeoNames"
+msgstr "Biblioteca local GeoNames"
+
+#: 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 "DespuÃs de leer este tutorial, deberÃa ver esto en su pantalla:"
+
+#: 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/beginner.vala.page:73(title)
-msgid "Layout containers"
-msgstr "Contenedores de la distribuciÃn"
+#: 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/beginner.vala.page:75(title)
-msgid "Ornaments"
-msgstr "Adornos"
+#: 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/beginner.vala.page:77(title)
-msgid "Scrolling"
-msgstr "Desplazamiento"
+#: C/weatherApp.js.page:47(title)
+msgid "The different parts of the program"
+msgstr "Las diferentes partes del programa"
 
-#: C/beginner.vala.page:79(title)
-msgid "Miscellaneous"
-msgstr "Varios"
+#: 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/beginner.vala.page:84(title)
-msgid "Exercises"
-msgstr "Ejercicios"
+#: C/translate.page:15(name)
+msgid "Michael Hill"
+msgstr "Michael Hill"
 
-#: C/audio-player.vala.page:8(desc)
-msgid "Coming soon..."
-msgstr "PrÃximamente..."
+#: C/translate.page:16(email)
+msgid "mdhillca gmail com"
+msgstr "mdhillca gmail com"
 
-#: C/audio-player.vala.page:12(name)
-msgid "GNOME Documentation Project"
-msgstr "Proyecto de documentaciÃn de GNOME"
+#: 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/audio-player.vala.page:13(email) C/index.page:8(email)
-msgid "gnome-doc-list gnome org"
-msgstr "gnome-doc-list gnome org"
+#: C/translate.page:23(title)
+msgid "Help translate"
+msgstr "Ayudar a traducir"
 
-#: C/audio-player.vala.page:17(title)
-msgid "3 Audio Player"
-msgstr "3. Reproductor de sonido"
+#: 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 ""
+"Los <app>Tutoriales de demostraciÃn</app> los traduce una comunidad de "
+"voluntarios de todo el mundo. Si quiere participar, es bienvenido."
 
-#: C/index.page:7(name)
-msgid "GNOME Documentation Team"
-msgstr "Equipo de documentaciÃn de GNOME"
+#: 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 ""
+"Hay <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>muchos "
+"idiomas</link> para los que se siguen necesitando traducciones."
+
+#: 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."
+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 ""
+"Para empezar a traducir necesitarà <link href=\"http:l10n.gnome.org\">crear "
+"una cuenta</link> y unirse al <link href=\"http://l10n.gnome.org/teams/";
+"\">equipo de traducciÃn</link> de su idioma. Esto le darà la posibilidad de "
+"subir traducciones nuevas."
 
-#: C/index.page:9(years)
-msgid "2010, 2011"
-msgstr "2010, 2011"
+#: 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 ""
+"Puede chatear con los traductores de GNOME usando <link href=\"https://";
+"cbe003.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fi18n\">irc</link>. "
+"La gente de los canales se encuentra en cualquier parte del mundo, por lo "
+"que puede que no obtenga una respuesa inmediata debido a las diferencias "
+"horarias."
 
-#: C/index.page:12(name)
-msgid "Shaun McCance"
-msgstr "Shaun McCance"
+#: 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 ""
+"Alternativamente, puede contactar con el equipo de internacionalizaciÃn "
+"usando su <link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n";
+"\">lista de correo</link>."
 
-#: C/index.page:13(email)
-msgid "shaunm gnome org"
-msgstr "shaunm gnome org"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/record-collection.js.page:62(None)
+msgid ""
+"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+msgstr ""
+"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
 
-#: C/index.page:14(years)
-msgid "2010"
-msgstr "2010"
+#: C/record-collection.js.page:8(desc)
+msgid "Create a small database application for ordering your music collection"
+msgstr ""
+"Cree una pequeÃa aplicaciÃn con una base de datos para ordenar su colecciÃn "
+"de mÃsica"
+
+#: C/record-collection.js.page:12(name) C/image-viewer.vala.page:12(name)
+#: C/image-viewer.cpp.page:12(name) C/image-viewer.c.page:12(name)
+#: C/guitar-tuner.vala.page:12(name) C/guitar-tuner.py.page:12(name)
+#: C/guitar-tuner.cpp.page:12(name) C/guitar-tuner.c.page:12(name)
+#: C/getting-ready.page:12(name) C/audio-player.vala.page:12(name)
+msgid "GNOME Documentation Project"
+msgstr "Proyecto de documentaciÃn de GNOME"
 
-#: C/index.page:17(name)
+#: 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/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/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/index.page:28(title)
-msgid "GNOME Developer Platform Demos"
-msgstr "Demostraciones de la plataforma de desarrollo de GNOME"
+#: C/record-collection.js.page:21(title)
+msgid "3 Record Collection"
+msgstr "3. ColecciÃn de mÃsica"
 
-#: C/index.page:31(title)
-msgid "Getting Ready"
-msgstr "CoÌmo empezar"
+#: C/record-collection.js.page:24(p) C/message-board.c.page:23(p)
+#: C/image-viewer.cpp.page:24(p) C/image-viewer.c.page:24(p)
+msgid "In this tutorial, you will learn:"
+msgstr "En este tutorial aprenderÃ:"
 
-#: C/index.page:35(title)
-msgid "C"
-msgstr "C"
+#: C/record-collection.js.page:26(p)
+msgid "How to connect to a database using libgda"
+msgstr "CÃmo conectar con una base de datos usando libgda"
 
-#: C/index.page:39(title)
-msgid "C++"
-msgstr "C++"
+#: C/record-collection.js.page:27(p)
+msgid "How to insert and browse records in a database table"
+msgstr "CÃmo insertar y examinar registros en una tabla de una base de datos"
 
-#: C/index.page:43(title)
-msgid "JavaScript"
-msgstr "JavaScript"
+#: C/record-collection.js.page:32(title) C/photo-wall.c.page:34(title)
+msgid "Introduction"
+msgstr "IntroducciÃn"
 
-#: C/index.page:47(title)
-msgid "Python"
-msgstr "Python"
+#: C/record-collection.js.page:33(p)
+msgid ""
+"This demo uses the Javascript language. We are going to demonstrate how to "
+"connect and use a database from a GTK program, by using the GDA (GNOME Data "
+"Access) library. Thus you also need this library installed."
+msgstr ""
+"Esta demostraciÃn usa el lenguaje Javascript. Se va a demostrar cÃmo "
+"conectar y usar una base de datos desde un programa GTK, usando la "
+"bilbioteca GDA (ÂGNOME Data AccessÂ, Acceso a datos de GNOME). Por lo tanto, "
+"es necesario tener instalada tambiÃn esta biblioteca."
 
-#: C/index.page:51(title)
-msgid "Vala"
-msgstr "Vala"
+#: C/record-collection.js.page:36(p)
+msgid ""
+"GNOME Data Access (GDA) is library whose purpose is to provide universal "
+"access to different kinds and types of data sources. This goes from "
+"traditional relational database systems, to any imaginable kind of data "
+"source such as a mail server, a LDAP directory, etc. For more information, "
+"and for a full API and documentation, visit the <link href=\"http://library.";
+"gnome.org/devel/libgda/stable/\">GDA website</link>."
+msgstr ""
+"Acceso a Datos de GNOME (GDA) es una biblioteca cuyo propÃsito es "
+"proporcionar acceso universal a diferentes tipos de fuentes de datos. Esto "
+"abarca desde los tradicionales sistemas de bases da datos relacionales hasta "
+"cualquier fuente de datos imaginable como un servidor de correo-e, un "
+"directorio LDAP, etc. Para obtener mÃs informaciÃn y una documentaciÃn "
+"completa de la API, visite la  <link href=\"http://library.gnome.org/devel/";
+"libgda/stable/\">pÃgina web de GDA</link>."
+
+#: C/record-collection.js.page:39(p)
+msgid ""
+"Although a big part of the code is related to user interface (GUI), we are "
+"going to focus our tutorial on the database parts (we might mention other "
+"parts we think are relevant though). To know more about Javascript programs "
+"in GNOME, see the <link xref=\"image-viewer.js\">Image Viewer program</link> "
+"tutorial."
+msgstr ""
+"Aunque una gran parte del cÃdigo se refiere a la interfaz de usuario (IU), "
+"el tutorial se enfocarà a las partes de las bases de datos (aunque se puede "
+"hacer menciÃn a otras partes que se consideren relevantes). Para aprender "
+"mÃs sobre los programas en Javascript en GNOME, consulte el tutorial del "
+"programa<link xref=\"image-viewer.js\">Visor de ImÃgenes</link>"
+
+#: C/record-collection.js.page:45(title) C/photo-wall.c.page:44(title)
+#: C/message-board.c.page:40(title) C/magic-mirror.vala.page:42(title)
+#: C/image-viewer.vala.page:49(title) C/image-viewer.py.page:43(title)
+#: C/image-viewer.js.page:44(title) C/image-viewer.cpp.page:34(title)
+#: C/image-viewer.c.page:34(title) C/guitar-tuner.py.page:40(title)
+#: C/guitar-tuner.cpp.page:40(title) C/guitar-tuner.c.page:40(title)
+msgid "Create a project in Anjuta"
+msgstr "Crear un proyecto en 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.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. "
+"It's also useful for keeping everything together."
+msgstr ""
+"Antes de empezar a programar, deberà configurar un proyecto nuevo en Anjuta. "
+"Esto crearà todos los archivos que necesite para construir y ejecutar el "
+"cÃdigo mÃs adelante. TambiÃn es Ãtil para mantener todo ordenado."
+
+#: C/record-collection.js.page:49(p) C/photo-wall.c.page:48(p)
+#: C/magic-mirror.vala.page:46(p) C/image-viewer.py.page:47(p)
+#: C/image-viewer.js.page:48(p) C/image-viewer.cpp.page:38(p)
+#: C/image-viewer.c.page:38(p) C/guitar-tuner.py.page:44(p)
+#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:44(p)
+msgid ""
+"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
+"gui></guiseq> to open the project wizard."
+msgstr ""
+"Inicie Anjuta y pulse <guiseq><gui>Archivo</gui><gui>Nuevo</"
+"gui><gui>Proyecto</gui></guiseq> para abrir el asistente de proyectos."
 
-#: C/index.page:55(title)
-msgid "Get Involved"
-msgstr "Involucrarse"
+#: C/record-collection.js.page:52(p)
+msgid ""
+"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
+"<file>record-collection</file> as project name and directory."
+msgstr ""
+"Elija <gui>JavaScript genÃrico</gui> de la pestaÃa <gui>JS</gui>, pulse "
+"<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
+"<file>coleccion-de-albumes</file> como nombre de proyecto y de carpeta."
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/index.page:0(None)
-msgid "translator-credits"
+#: C/record-collection.js.page:55(p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. It contains very basic example code."
 msgstr ""
-"Daniel Mustieles <daniel mustieles gmail com>, 2011-2012\n"
-"Jorge GonzÃlez <jorgegonz svn gnome org>, 2011"
+"Pulse <gui>Finalizar</gui> y se crearà el proyecto. Abra <file>src/main.js</"
+"file> desde la pestaÃa <gui>Proyecto</gui> o <gui>Archivo</gui>. Contiene un "
+"ejemplo de cÃdigo muy bÃsico."
 
-#~ msgid "A widget that emits a signal when clicked"
-#~ msgstr "Un widget que emite una seÃal cuando se pulsa sobre Ãl"
+#: C/record-collection.js.page:61(title)
+msgid "Program Structure"
+msgstr "Estructura del programa"
 
-#~| msgid "Sample Vala code"
-#~ msgid "Sample code"
-#~ msgstr "CÃdigo de ejemplo"
+#: C/record-collection.js.page:63(p)
+msgid ""
+"This demo is a simple GTK application (with a single window) capable of "
+"inserting records into a database table as well as browsing all records of "
+"the table. The table has two fields: <code>id</code>, an integer, and "
+"<code>name</code>, a varchar. The first section (on the top) of the "
+"application allows you to insert a record into the table. The last section "
+"(bottom) allows you to see all the records of that table. Its content is "
+"refreshed every time a new record is inserted and on the application startup."
+msgstr ""
+"Esta demostraciÃn es una aplicaciÃn GTK sencilla (con una Ãnica ventana) "
+"capaz de insertar registros en la tabla de una base de datos, asà como de "
+"examinar todos los registros de la tabla. La tabla tiene dos campos: "
+"<code>id</code>, un entero, y <code>name</code>, un ÂvarcharÂ. La primera "
+"secciÃn (en la parte superior) de la aplicaciÃn le permite insertar un "
+"registro en la tabla. La Ãltima secciÃn (en la parte inferior) le permite "
+"ver todos los registros de la tabla. El contenido se actualiza cada vez que "
+"se insertar un registro y al inicio de la aplicaciÃn."
+
+#: C/record-collection.js.page:68(title)
+msgid "Starting the fun"
+msgstr "Empezar la diversiÃn"
+
+#: C/record-collection.js.page:69(p)
+msgid "Let's start by examining the skeleton of the program:"
+msgstr "Empezar examinando el esqueleto del programa:"
+
+#: C/record-collection.js.page:95(p)
+msgid ""
+"Lines 1â4: Initial imports. Pay special attention to line 3, which tells "
+"Javascript to import the GDA library, our focus in this tutorial."
+msgstr ""
+"LÃneas 1â4: importaciones iniciales. Preste especial atenciÃn a la lÃnea 3, "
+"que indica a Javascript que importe la biblioteca GDA, nuestro objetivo en "
+"este tutorial."
 
-#~ msgid "Local library geoNames"
-#~ msgstr "Biblioteca local geoNames"
+#: C/record-collection.js.page:96(p)
+msgid ""
+"Lines 6â17: Define our <code>Demo</code> class. Pay special attention to "
+"lines 13â15, where we call 3 methods which will do the whole job. They will "
+"be detailed below."
+msgstr ""
+"LÃneas 6â17: definir la clase <code>Demo</code>. Preste especial atenciÃn a "
+"las lÃneas 13â15, donde se llama a 3 mÃtodos que harÃn todo el trabajo. Se "
+"detallarÃn mÃs adelante."
 
-#~| msgid ""
-#~| "In this tutorial we'll construct a small application, Hello World, using "
-#~| "JavaScript and GTK+. To do and run all the code examples yourself, you "
-#~| "need an editor to write code in, Terminal and GNOME 3 or higher "
-#~| "installed into your computer. In this tutorial we'll go through the "
-#~| "following parts:"
-#~ 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 ""
-#~ "En esta parte de la guÃa se construirà la biblioteca local geoNames "
-#~ "usando llamadas asÃncronas. En este ejemplo, la informaciÃn del clima se "
-#~ "obtiene de geonames.org y la aplicaciÃn usa los <link href=\"http://en.";
-#~ "wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E\">cÃdigos ICAO</link> "
-#~ "para responder a las peticiones. Para escribir y ejecutar todos los "
-#~ "ejemplos de cÃdigo necesita un editor de texto en el que escribir el "
-#~ "cÃdigo, una terminal y GNOME 3 o superior instalado en su equipo. En esta "
-#~ "guÃa se verÃn las siguientes partes:"
+#: C/record-collection.js.page:97(p)
+msgid "Lines 19â23: Start the application."
+msgstr "LÃneas 19â23: iniciar la aplicaciÃn."
 
-#~ msgid "Local library for getting the weather"
-#~ msgstr "Biblioteca local para obtener el clima"
+#: C/record-collection.js.page:102(title)
+msgid "Designing the application"
+msgstr "DiseÃar la aplicaciÃn"
 
-#~ msgid "Creating function geoNames"
-#~ msgstr "Crear la funciÃn geoNames"
+#: C/record-collection.js.page:103(p)
+msgid ""
+"Let's take a look at the <code>setupWindow</code> method. It is responsible "
+"for creating the User Interface (UI). As UI is not our focus, we will "
+"explain only the relevant parts."
+msgstr ""
+"Eche un vistazo al mÃtodo <code>setupWindow</code>. Es el responsable de "
+"crear la interfaz de usuario (IU). Ya que la IU no es el objetivo, sÃlo se "
+"explicarÃn las partes relevantes."
 
-#~ msgid "Methods for geoNames"
-#~ msgstr "MÃtodos para geoNames"
+#: C/record-collection.js.page:154(p)
+msgid ""
+"Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
+"will type something to get inserted in the database."
+msgstr ""
+"LÃneas 22 y 27: crear las dos entradas (para los dos campos) en las que el "
+"usuario escribirà algo para insertarlo en la base de datos."
 
-#~ msgid "geonames.js"
-#~ msgstr "geonames.js"
+#: C/record-collection.js.page:155(p)
+msgid ""
+"Lines 31â34: Create the Insert button. We connect its <code>clicked</code> "
+"signal to the <code>_insertClicked</code> private method of the class. This "
+"method is detailed below."
+msgstr ""
+"LÃneas 31â34: crear el botÃn ÂInsertarÂ. Se conecta su seÃal <code>clicked</"
+"code> con el mÃtodo privado <code>_insertClicked</code> de la clase. Este "
+"mÃtodo se detalla a continuaciÃn."
 
-#~ msgid "For this we need a new file that will be our local library."
-#~ msgstr ""
-#~ "Para esto se necesita un archivo nueva que serà nuestra biblioteca local."
+#: C/record-collection.js.page:156(p)
+msgid ""
+"Line 39: Create the widget (<code>TextView</code>) where we will show the "
+"contents of the table."
+msgstr ""
+"LÃnea 39: crear el widget (<code>TextView</code>) donde se mostrarÃn los "
+"contenidos de la tabla."
 
-#~ 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 ""
-#~ "En las primeras lÃneas se importan y se inicializan las bibliotecas que "
-#~ "necesitamos usar en esta biblioteca local. Soup maneja todas las "
-#~ "peticiones que se hagan con http."
+#: C/record-collection.js.page:157(p)
+msgid ""
+"Line 44: Create the label where we will show the number of records in the "
+"table. Initially it's empty, it will be updated later."
+msgstr ""
+"LÃnea 44: crear la etiqueta donde se mostrarà el nÃmero de registros de la "
+"tabla. Inicialmente està vacÃa, se actualizarà mÃs tarde."
 
-#~ msgid "Creating function GeoNames"
-#~ msgstr "Crear la funciÃn geoNames"
+#: C/record-collection.js.page:162(title)
+msgid "Connecting to and initializing the database"
+msgstr "Conectar e inicializar la base de datos"
 
-#~ 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 ""
-#~ "Aquà se crea la funciÃn GenoNames, que manejarà la obtenciÃn del clima. "
-#~ "JavaScript permite crear funciones sencillas al principio para ampliarlas "
-#~ "mÃs tarde. Esto se harà dentro de las llaves de GeoNames.prototype."
+#: C/record-collection.js.page:163(p)
+msgid ""
+"The code which makes the connection to the database is in the "
+"<code>setupDatabase</code> method below:"
+msgstr ""
+"El cÃdigo que hace la conexiÃn con la base de datos està en mÃtodo "
+"<code>setupDatabase</code> siguiente:"
 
-#~ msgid "Methods for GeoNames"
-#~ msgstr "MÃtodos para geoNames"
+#: C/record-collection.js.page:180(p)
+msgid ""
+"Lines 2â3: Create the GDA's <code>Connection</code> object. We must supply "
+"to its constructor some properties:"
+msgstr ""
+"LÃneas 2â3: crear el objeto de GDA <code>Connection</code>. Se deben "
+"proporcionar a su constructor algunas propiedades:"
 
-#~ 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 ""
-#~ "El primer mÃtodo de GeoNames es getWeather, y el segundo es getIcon. En "
-#~ "getWeather se realiza una solicitud http con soup, se gestionan los "
-#~ "errores y se analiza la informaciÃn de la solicitud para saber que se "
-#~ "puede usar. En getIcon simplemente se comparan los resultados obtenidos "
-#~ "en getWeather con el selector para obtener el icono que representa el "
-#~ "clima actual. Ahora que la biblioteca local està lista, es el momento de "
-#~ "usarla."
+#: C/record-collection.js.page:183(p)
+msgid ""
+"<code>provider</code>: One of GDA's supported providers. GDA supports "
+"SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
+"use a SQLite database, as it comes installed by default in most "
+"distributions and it is simple to use (it just uses a file as a database)."
+msgstr ""
+"<code>provider</code>: uno de los proveedores de GDA soportados. GDA soporta "
+"SQLite, MySQL, PostgreSQL, Oracle y muchos otros. Para la demostraciÃn se "
+"usarà una base de datos SQLite, ya que viene instalada de manera "
+"predeterminada en la mayorÃa de las distribuciones y es fÃcil de usar (sÃlo "
+"usa un archivo como base de datos)."
 
-#~ msgid ""
-#~ "Here is the entire code for our local library. The main program file "
-#~ "calls this asynchronously."
-#~ msgstr ""
-#~ "Aquà està el cÃdigo completo de la biblioteca. El archivo de programa "
-#~ "principal la llama de manera asÃncrona."
+#: C/record-collection.js.page:186(p)
+msgid ""
+"<code>cnc_string</code>: The connection string. It may change from provider "
+"to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
+"DB_NAME=<var>FILENAME</var></code>. In this demo we are accessing a database "
+"called gnome_demo in the user home dir (note the call to GLib's "
+"<code>get_home_dir</code> function)."
+msgstr ""
+"<code>cnc_string</code>: la cadena de conexiÃn. Puede cambiar de un "
+"proveedor a otro. La sintaxis de SQLite es: <code>DB_DIR=<var>PATH</var>;"
+"DB_NAME=<var>FILENAME</var></code>. En esta demostraciÃn se accederà a una "
+"base de datos llamada Âgnome_demo en la carpeta del usaurio (tenga en cuenta "
+"la llamada a la funciÃn <code>get_home_dir</code> de GLib)."
 
-#~| msgid ""
-#~| "In this tutorial we'll construct a small application, Hello World, using "
-#~| "JavaScript and GTK+. To do and run all the code examples yourself, you "
-#~| "need an editor to write code in, Terminal and GNOME 3 or higher "
-#~| "installed into your computer. In this tutorial we'll go through the "
-#~| "following parts:"
-#~ 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 ""
-#~ "En esta parte de la guÃa se construirÃn las Âautotools y los iconos "
-#~ "necesarios para la aplicaciÃn del clima para que sea una parte integral "
-#~ "de su escritorio. Para escribir y ejecutar todos los ejemplos de cÃdigo "
-#~ "necesita un editor de texto en el que escribir el cÃdigo, una terminal y "
-#~ "GNOME 3 o superior instalado en su equipo. En esta guÃa se verÃn las "
-#~ "siguientes partes:"
+#: C/record-collection.js.page:190(p)
+msgid ""
+"If the provider is not supported by GDA, or if the connection string is "
+"missing some element, line 2 will raise an exception. So, in real life we "
+"should handle it with JavaScript's statement <code>try</code>...<code>catch</"
+"code>."
+msgstr ""
+"Si GDA no soporta el proveedor, o si falta algÃn elemento en la cadena de "
+"conexiÃn, la lÃnea 2 elevarà una excepciÃn. Por esto, en la vida real hay "
+"que manejarlo con la sentencia <code>try</code>...<code>catch</code> de "
+"JavaScript."
 
-#~ msgid "Autotools"
-#~ msgstr "Autotools"
+#: C/record-collection.js.page:194(p)
+msgid ""
+"Line 4: Open the connection. In the SQLite provider, if the database does "
+"not exist, it will be created in this step."
+msgstr ""
+"LÃnea 4: abrir la conexiÃn. En el proveedor de SQLite, si la base de datos "
+"no existe, se crearà en este paso."
 
-#~ msgid "Custom icons for your application"
-#~ msgstr "Iconos personalizados para su aplicaciÃn"
+#: C/record-collection.js.page:196(p)
+msgid ""
+"Lines 6â10: Try to do a simple select to check if the table exists (line 7). "
+"If it does not exist (because the database was just created), this command "
+"will raise an exception, which is handled by the <code>try</code>..."
+"<code>catch</code> block. If it is the case, we run the create table "
+"statement (line 9)."
+msgstr ""
+"LÃneas 6â10: intentar hacer una selecciÃn simple para comprobar si la tabla "
+"existe. Si no existe (porque la base de datos se acaba de crear), este "
+"comando elevarà una excepciÃn, que se maneja en el bloque <code>try</code>..."
+"<code>catch</code> block. Si este es el caso, se ejecuta la sentencia para "
+"crear tabla (lÃnea 9)."
 
-#~ msgid "Autotools and necessary files"
-#~ msgstr "Autotools y archivos necesarios"
+#: C/record-collection.js.page:197(p)
+msgid ""
+"In order to run the SQL commands above we are using global GDA functions, "
+"<code>execute_select_command</code> and <code>execute_non_select_command</"
+"code>. They are simple to use, and just require two arguments: The "
+"<code>Connection</code> object and the SQL command to be parsed."
+msgstr ""
+"Para ejecutar los comandos SQL anteriores se usan las funcionas globales de "
+"GDA <code>execute_select_command</code> y <code>execute_non_select_command</"
+"code>. Son fÃciles de usar, y sÃlo requieren dos argumentos: el objeto "
+"<code>Connection</code> y el comando SQL que analizar."
 
-#~ 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 ""
-#~ "Tener mÃs de un archivo en la carpeta complica un poco el uso de "
-#~ "autotools. Necesita los archivos .desktop, autogen.sh, Makefile.am, "
-#~ "configure.ac y un archivo nuevo: myapp.sh.in. Hackear el archivo de "
-#~ "autotools es complicado. Puede encontrar mÃs informaciÃn en diferentes "
-#~ "fuentes; <link href=\"http://en.wikipedia.org/wiki/GNU_build_system";
-#~ "\">este artÃculo de la wikipedia</link> proporciona una visiÃn general de "
-#~ "este tema."
+#: C/record-collection.js.page:201(p)
+msgid "At this point we have the database set up, and are ready to use it."
+msgstr ""
+"En este punto, ya està configurada la base de datos y lista para usarse."
 
-#~ msgid "weatherapp.desktop"
-#~ msgstr "weatherapp.desktop"
+#: C/record-collection.js.page:205(title)
+#, fuzzy
+#| msgid "Selectors"
+msgid "Selecting"
+msgstr "Selectores"
 
-#~ msgid "weatherapp.sh.in"
-#~ msgstr "weatherapp.sh.in"
+#: C/record-collection.js.page:206(p)
+msgid ""
+"After connecting to the database, our demo's constructor calls the "
+"<code>selectData</code> method. It is responsible for getting all the "
+"records in the table and showing them on the <code>TextView</code> widget. "
+"Let's take a look at it:"
+msgstr ""
+"DespuÃs de conectar a la base de datos, el constructor de la demostraciÃn "
+"llama al mÃtodo <code>selectData</code>. Es el responsable de obtener todos "
+"los registros de la tabla y de mostrarlos en el widget <code>TextView</"
+"code>. Ãchele un vistazo:"
 
-#~ msgid "Makefile.am"
-#~ msgstr "Makefile.am"
+#: C/record-collection.js.page:227(p)
+msgid ""
+"Line 2: The <code>SELECT</code> command. We are using the global GDA's "
+"function <code>execute_select_command</code> for that. It returns a "
+"<code>DataModel</code> object, which is later used to retrieve the rows."
+msgstr ""
+"LÃnea 2: el comando <code>SELECT</code>. Se usan funciones la funciÃn global "
+"de GDA <code>execute_select_command</code>. Devuelve un objeto "
+"<code>DataModel</code>, que se usa mÃs tarde para obtener las filas."
 
-#~ msgid "configure.ac"
-#~ msgstr "configure.ac"
+#: C/record-collection.js.page:228(p)
+msgid ""
+"Line 3: Create an <code>Iter</code> object, which is used to iterate over "
+"the <code>DataModel</code>'s records."
+msgstr ""
+"LÃnea 3: crear un objeto <code>Iter</code>, que se usa para iterar sobre los "
+"registros de <code>DataModel</code>."
 
-#~ msgid "autogen.sh"
-#~ msgstr "autogen.sh"
+#: C/record-collection.js.page:229(p)
+msgid ""
+"Line 7: Loop through all the records, fetching them with the help of the "
+"<code>Iter</code> object. At this point, the <code>iter</code> variable "
+"contains the actual, retrieved data. Its <code>move_next</code> method "
+"returns <code>false</code> when it reaches the last record."
+msgstr ""
+"LÃnea 7: recorrer todos los registros, recuperÃndolos con la ayuda del "
+"objeto <code>Iter</code>. En este punto, la variable <code>iter</code> "
+"contiene los datos obtenidos actualmente. Su mÃtodo <code>move_next</code> "
+"devuelve <code>false</code> cuando se alcanza el Ãltimo registro."
 
-#~ msgid "EXTRA_DIST are the files that are to be distributed"
-#~ msgstr "EXTRA_DIST son los archivos que se deben distribuir"
+#: C/record-collection.js.page:231(p)
+msgid "Lines 8â9: We do two things in each line:"
+msgstr "LiÌneas 8â9: se hacen dos cosas en cada liÌnea:"
 
-#~ msgid "autohen.sh"
-#~ msgstr "autohen.sh"
+#: C/record-collection.js.page:233(p)
+msgid ""
+"Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
+"only one argument: the column number to retrieve, starting at 0. As our "
+"<code>SELECT</code> command returns only two columns, we are retrieving "
+"columns 0 and 1."
+msgstr ""
+"Use el mÃtodo <code>get_value_at</code> de <code>Iter</code>, que sÃlo "
+"necesita un argumento: el nÃmero de columna que recuperar, empezando por 0. "
+"Ya que el comando <code>SELECT</code> sÃlo devuelve dos columnas, se estÃn "
+"recuperando las columnas 0 y 1."
 
-#~ msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
-#~ msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
+#: C/record-collection.js.page:234(p)
+msgid ""
+"The method <code>get_value_at</code> returns the field in GLib's "
+"<code>GValue</code> format. A simple way to convert this format to a string "
+"is by using GDA's global function <code>value_stringify</code>. That's what "
+"we are doing here, and we store the results in the variables <code>id_field</"
+"code> and <code>name_field</code>."
+msgstr ""
+"El mÃtodo <code>get_value_at</code> devuelve el campo en el formato "
+"<code>GValue</code> de GLib. Una manera sencilla de convertir este valor en "
+"una cadena es usar la funciÃn global de GDA <code>value_stringify</code>. Es "
+"lo que se està haciendo aquÃ, y el resultado se almacena en las variables "
+"<code>id_field</code> y <code>name_field</code>."
 
-#~ msgid "appicon_DATA=weather-icon.svg"
-#~ msgstr "appicon_DATA=weather-icon.svg"
+#: C/record-collection.js.page:237(p)
+msgid ""
+"Line 11: Concatenate the two fields to make one text line, separated by "
+"<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
+msgstr ""
+"LÃnea 11: concatenar los dos registros para formar una lÃnea de texto, "
+"separados por <code>\"=&gt;\"</code>, y almacenarla en la variable "
+"<code>text</code>."
 
-#~ msgid "The main program file"
-#~ msgstr "El archivo del programa principal"
+#: C/record-collection.js.page:238(p)
+msgid ""
+"Line 14: After the loop is finished, we have all the records formatted in "
+"the <code>text</code> variable. In this line we just set the contents of the "
+"<code>TextView</code> with that variable."
+msgstr ""
+"LÃnea 14: cuando termine el bucle, se tendrÃn todos los registros "
+"formateados en la variable <code>text</code>. En esta lÃnea, simplemente se "
+"establece el contenido del <code>TextView</code> con esta variable."
 
-#~| msgid ""
-#~| "In this tutorial we'll construct a small application, Hello World, using "
-#~| "JavaScript and GTK+. To do and run all the code examples yourself, you "
-#~| "need an editor to write code in, Terminal and GNOME 3 or higher "
-#~| "installed into your computer. In this tutorial we'll go through the "
-#~| "following parts:"
-#~ 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 ""
-#~ "En esta parte de la guÃa se construirà el archivo del programa principal "
-#~ "de la aplicaciÃn del clima. Para escribir y ejecutar todos los ejemplos "
-#~ "de cÃdigo necesita un editor de texto en el que escribir el cÃdigo, una "
-#~ "terminal y GNOME 3 o superior instalado en su equipo. En esta guÃa se "
-#~ "verÃn las siguientes partes:"
+#: C/record-collection.js.page:239(p)
+msgid ""
+"Line 15: Display the number of records in the table, making use of the "
+"<code>DataModel</code>'s <code>get_n_rows</code> method."
+msgstr ""
+"LÃnea 15: mostrar el nÃmero de registros en la tabla, usando el mÃtodo "
+"<code>get_n_rows</code> de <code>DataModel</code> <code>get_n_rows</code>."
 
-#~ msgid "Script for running the application"
-#~ msgstr "Script para ejecutar la aplicaciÃn"
+#: C/record-collection.js.page:244(title)
+msgid "Inserting"
+msgstr "Insertar"
 
-#~ msgid "Libraries to import"
-#~ msgstr "Bibliotecas que importar"
+#: C/record-collection.js.page:245(p)
+msgid ""
+"OK, we know how to connect to a database and how to select rows from a "
+"table. Now it's time to do an <code>INSERT</code> on the table. Do you "
+"remember above, in the method <code>setupWindow</code> we connected the "
+"<gui>Insert</gui> button's <code>clicked</code> signal to the method "
+"<code>_insertClicked</code>? Let's see the implementation of this method."
+msgstr ""
+"Bien, ahora ya sabe cÃmo conectarse a la base de datos y cÃmo seleccionar "
+"filas de una tabla. Ahora es el momento de hacer un <code>INSERT</code> en "
+"la tabla. ÂRecuerda cuando antes, en el mÃtodo <code>setupWindow</code>, se "
+"conectà la seÃal <code>clicked</code> del botÃn <gui>Insertar</gui> al "
+"mÃtodo <code>_insertClicked</code>?. Vea la implementaciÃn de este mÃtodo."
 
-#~ msgid "Creating the main window for the application"
-#~ msgstr "Crear la ventana principal de la aplicaciÃn"
+#: C/record-collection.js.page:266(p)
+msgid ""
+"We have learned how to use GDA's convenience functions "
+"<code>execute_select_command</code> and <code>execute_non_select_command</"
+"code> to quickly execute SQL commands on the database. GDA allows one to "
+"build a SQL statement indirectly, by using its <code>SqlBuilder</code> "
+"object. What are the benefits of this? GDA will generate the SQL statement "
+"dynamically, and it will be valid for the connection provider used (it will "
+"use the same SQL dialect the provider uses). Let's study the code:"
+msgstr ""
+"Se ha aprendido a usar las funciones de conveniencia de GDA "
+"<code>execute_select_command</code> y <code>execute_non_select_command</"
+"code> para ejecutar comandos SQL rÃpidamente en la base de datos. GDA le "
+"permite construir una sentencia SQL de manera indirecta, usando su objeto "
+"<code>SqlBuilder</code>. ÂCuÃles son los beneficios de esto? GDA generarà la "
+"sentencia SQL dinÃmicamente, y serà vÃlida para el proveedor de la conexiÃn "
+"usado (usarà el mismo dialecto de SQL que usa el proveedor). Estudie el "
+"cÃdigo:"
+
+#: C/record-collection.js.page:270(p)
+msgid ""
+"Lines 2â3: Check if the user filled all the fields. The code for the private "
+"method <code>_validateFields</code> is really simple and you can read it in "
+"the full demo source code."
+msgstr ""
+"LÃneas 2â3: comprobar si el usuario ha rellenado todos los campos. El cÃdigo "
+"del mÃtodo privado <code>_validateFields</code> es realmente simple y puede "
+"leerlo en el cÃdigo fuente completo de la demostraciÃn."
 
-#~ msgid "Adding a grid and all the necessary widgets to it"
-#~ msgstr "AÃadir una rejilla y todos los widgets necesarios en ella"
+#: C/record-collection.js.page:271(p)
+msgid ""
+"Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
+"as we want to show how to use the <code>SqlBuilder</code> object to build a "
+"SQL statement portable across databases."
+msgstr ""
+"LÃnea 5: la manera mÃs rÃpida de hacer el <code>INSERT</code>. Se ha "
+"comentado que se quiere mostrar cÃmo usar el objeto <code>SqlBuilder</code> "
+"para construir una sentencia SQL portable entre bases de datos."
 
-#~ msgid "weatherapp.js"
-#~ msgstr "weatherapp.js"
+#: C/record-collection.js.page:272(p)
+msgid ""
+"Line 7: Create the <code>SqlBuilder</code> object. We must pass the type of "
+"statement we are going to build. It can be <code>SELECT</code>, "
+"<code>UPDATE</code>, <code>INSERT</code> or <code>DELETE</code>."
+msgstr ""
+"LÃnea 7: crear el objeto <code>SqlBuilder</code>. Se debe pasar el tipo de "
+"sentencia que se va a construir. Puede ser <code>SELECT</code>, "
+"<code>UPDATE</code>, <code>INSERT</code> o <code>DELETE</code>."
 
-#~ 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 ""
-#~ "Esta lÃnea indica cÃmo ejecutar el script. Debe ser la primera lÃnea del "
-#~ "cÃdigo y debe ser ejecutable. Para obtener permisos de ejecuciÃn vaya a "
-#~ "la terminal y ejecute lo siguiente en la carpeta adecuada: chmod +x "
-#~ "nombrescript. TambiÃn puede usar el gestor de archivo. Simplemente vaya a "
-#~ "la carpeta donde està el cÃdigo, pulse con el botÃn derecho sobre el "
-#~ "archivo de cÃdigo y elija ÂPropiedadesÂ, pulse en la pestaÃa ÂPermisos y "
-#~ "marque la casilla para permitir ejecutar el archivo como un programa."
+#: C/record-collection.js.page:273(p)
+msgid ""
+"Line 8: Set the name of the table on which the built statement will operate "
+"(it will generate <code>INSERT INTO demo</code>)"
+msgstr ""
+"LÃnea 8: establecer el nombre de la base de datos en la que operarà la "
+"sentencia construida (generarà <code>INSERT INTO demo</code>)"
 
-#~| 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."
-#~ 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 ""
-#~ "Para que el programa funcione se debe importar una biblioteca de "
-#~ "introspecciÃn de GObject. Para que funcione la IU se necesita GTK+, que "
-#~ "se importa al inicio, por lo que està en uso en todos los sitios. TambiÃn "
-#~ "se importa la biblioteca local en JavaScript geonames para usarla aquÃ."
+#: C/record-collection.js.page:274(p)
+msgid ""
+"Lines 9â10: Set the fields and its values that will be part of the "
+"statement. The first argument is the field name (as in the table). The "
+"second one is the value for that field."
+msgstr ""
+"LÃneas 9â10: establecer los campos que formarÃn parte de la sentencia y sus "
+"valores. El primer argumento es el nombre del campo (como aparece en la "
+"tabla). El segundo es el valor de este campo."
 
-#, fuzzy
-#~| msgid "Connecting buttons to playSound"
-#~ msgid "Connecting signals to button and entry."
-#~ msgstr "Conectar los botones a playSound"
+#: C/record-collection.js.page:275(p)
+msgid ""
+"Line 11: Get the dynamically generated <code>Statement</code> object, which "
+"represents a SQL statement."
+msgstr ""
+"LÃnea 11: obtener el objeto <code>Statement</code> generado dinÃmicamente, "
+"que representa una sentencia SQL."
 
-#~ msgid "Weatherapp.js"
-#~ msgstr "Weatherapp.js"
+#: C/record-collection.js.page:276(p)
+msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
+msgstr "LÃnea 12: finalmente, ejecutar la sentencia SQL (<code>INSERT</code>)."
 
-#~ msgid "Weatherapp.js file looks like this:"
-#~ msgstr "El archivo Weatherapp.js se parece a esto:"
+#: C/record-collection.js.page:277(p)
+msgid ""
+"Line 14: Clear the id and name fields on the screen. The code for the "
+"private method <code>_clearFields</code> is really simple and you can read "
+"it in the full demo source code."
+msgstr ""
+"LÃnea 14: limpiar los campos Âid y Âname en la pantalla. El cÃdigo del "
+"mÃtodo privado <code>_clearFields</code> es muy sencillo, y puede leerlo en "
+"el cÃdigo fuente de la demostraciÃn completa."
 
-#~ msgid "$"
-#~ msgstr "$"
+#: C/record-collection.js.page:278(p)
+msgid ""
+"Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
+msgstr ""
+"LÃnea 15: actualizar la vista en la pantalla haciendo otro <code>SELECT</"
+"code>."
 
-#~ msgid "GJS_PATH=`pwd` gjs weatherapp.js"
-#~ msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
+#: C/record-collection.js.page:280(p)
+msgid ""
+"You can also make use of parameters while building the statement. By using "
+"the <code>SqlBuilder</code> objects and parameters you are less subject to "
+"attacks like SQL injection. Check the <link href=\"http://library.gnome.org/";
+"devel/libgda/stable/\">GDA documentation</link> for more information about "
+"parameters."
+msgstr ""
+"TambiÃn puede usar parÃmetros mientras construye la sentencia. Usando "
+"objetos y parÃmetros <code>SqlBuilder</code> serà menos susceptible a "
+"ataques de inyecciÃn de SQL. Para obtener informaciÃn adicional sobre los "
+"parÃmetros, consulte la <link href=\"http://library.gnome.org/devel/libgda/";
+"stable/\">documentaciÃn de GDA</link>."
+
+#: C/record-collection.js.page:284(title) C/image-viewer.py.page:219(title)
+#: C/image-viewer.js.page:305(title) C/guitar-tuner.py.page:222(title)
+msgid "Run the application"
+msgstr "Ejecutar la aplicaciÃn"
+
+#: C/record-collection.js.page:285(p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"You now have a database for your record collection!"
+msgstr ""
+"Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
+"ejecutar el cÃdigo. Ahora tiene una base de datos para su colecciÃn de "
+"registros."
+
+#: C/record-collection.js.page:289(title) C/photo-wall.c.page:377(title)
+#: C/magic-mirror.vala.page:142(title) C/image-viewer.vala.page:280(title)
+#: C/image-viewer.py.page:224(title) C/image-viewer.js.page:310(title)
+#: C/image-viewer.cpp.page:210(title) C/image-viewer.c.page:220(title)
+#: C/guitar-tuner.vala.page:252(title) C/guitar-tuner.py.page:227(title)
+#: C/guitar-tuner.js.page:232(title) C/guitar-tuner.cpp.page:255(title)
+#: C/guitar-tuner.c.page:255(title)
+msgid "Reference Implementation"
+msgstr "ImplementaciÃn de referencia"
+
+#: C/record-collection.js.page:290(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"record-collection/record-collection.js\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su cÃdigo con este <link href="
+"\"record-collection/record-collection.js\">cÃdigo de referencia</link>."
 
-#~ msgid ""
-#~ "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
-#~ msgstr ""
-#~ "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/photo-wall.c.page:76(None)
+msgid "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
+msgstr "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
 
-#~| msgid "Run the application"
-#~ msgid "4 Weather Application"
-#~ msgstr "4 AplicaciÃn del clima"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/photo-wall.c.page:79(None)
+msgid ""
+"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
+msgstr ""
+"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
 
-#~| msgid ""
-#~| "In this tutorial we'll construct a small application, Hello World, using "
-#~| "JavaScript and GTK+. To do and run all the code examples yourself, you "
-#~| "need an editor to write code in, Terminal and GNOME 3 or higher "
-#~| "installed into your computer. In this tutorial we'll go through the "
-#~| "following parts:"
-#~ 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 ""
-#~ "En esta parte de la guÃa se construirà una aplicaciÃn del clima usando "
-#~ "llamadas asÃncronas. En este ejemplo, la informaciÃn del clima se obtiene "
-#~ "de geonames.org y la aplicaciÃn usa los <link href=\"http://en.wikipedia.";
-#~ "org/wiki/List_of_airports_by_ICAO_code:_E\">cÃdigos ICAO</link> para "
-#~ "responder a las peticiones. Para escribir y ejecutar todos los ejemplos "
-#~ "de cÃdigo necesita un editor de texto en el que escribir el cÃdigo, una "
-#~ "terminal y GNOME 3 o superior instalado en su equipo. En esta guÃa se "
-#~ "verÃn las siguientes partes:"
+#: C/photo-wall.c.page:7(desc)
+msgid "A Clutter image viewer"
+msgstr "Un visor de imÃgenes Clutter"
 
-#~ msgid "Planning the graphical user interface"
-#~ msgstr "Planificar la interfaz grÃfica de usuario"
+#: C/photo-wall.c.page:11(name)
+msgid "Chris KÃhl"
+msgstr "Chris KÃhl"
 
-#~ msgid "Asynchronous calls"
-#~ msgstr "Llamadas asÃncronas"
+#: C/photo-wall.c.page:12(email)
+msgid "chrisk openismus com"
+msgstr "chrisk openismus com"
 
-#~ msgid "Local library GeoNames"
-#~ msgstr "Biblioteca local GeoNames"
+#: C/photo-wall.c.page:20(title)
+msgid "Photo Wall"
+msgstr "Mural de fotos"
 
-#~ msgid "After reading this tutorial, you should see this in your screen:"
-#~ msgstr "DespuÃs de leer este tutorial, deberÃa ver esto en su pantalla:"
+#: C/photo-wall.c.page:23(p)
+msgid ""
+"For this example we will build a simple image viewer using Clutter. You will "
+"learn:"
+msgstr ""
+"Para este ejemplo se construirà un sencillo visor de imÃgenes usando "
+"Clutter. AprenderÃ:"
 
-#~ msgid "The different parts of the program"
-#~ msgstr "Las diferentes partes del programa"
+#: C/photo-wall.c.page:25(p)
+msgid "How to size and position <code>ClutterActor</code>s"
+msgstr "CÃmo dimensionar y posicionar varios <code>ClutterActor</code>"
 
-#~ msgid "Michael Hill"
-#~ msgstr "Michael Hill"
+#: C/photo-wall.c.page:26(p)
+msgid "How to place an image in a <code>ClutterActor</code>"
+msgstr "CÃmo situar una imagen en un <code>ClutterActor</code>"
 
-#~ msgid "mdhillca gmail com"
-#~ msgstr "mdhillca gmail com"
+#: C/photo-wall.c.page:27(p)
+msgid "How to do simple transitions using Clutter's animation framework"
+msgstr ""
+"CÃmo hacer transiciones sencillas usando el entorno de trabajo de "
+"animaciones de Clutter"
 
-#~ msgid "Help translate"
-#~ msgstr "Ayudar a traducir"
+#: C/photo-wall.c.page:28(p)
+msgid "How to make <code>ClutterActor</code>s respond to mouse events"
+msgstr ""
+"CÃmo hacer que un <code>ClutterActor</code> responda a los eventos del ratÃn"
 
-#~ msgid ""
-#~ "The <app>Tutorial Demos</app> are being translated by a world-wide "
-#~ "volunteer community. You are welcome to participate."
-#~ msgstr ""
-#~ "Los <app>Tutoriales de demostraciÃn</app> los traduce una comunidad de "
-#~ "voluntarios de todo el mundo. Si quiere participar, es bienvenido."
+#: C/photo-wall.c.page:29(p)
+msgid "How to get file names from a directory"
+msgstr "CÃmo obtener nombres de archivos de una carpeta"
 
-#~ msgid ""
-#~ "There are <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/";
-#~ "\">many languages</link> for which translations are still needed."
-#~ msgstr ""
-#~ "Hay <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>muchos "
-#~ "idiomas</link> para los que se siguen necesitando traducciones."
+#: C/photo-wall.c.page:35(p)
+msgid ""
+"Clutter is a library for creating dynamic user interfaces using OpenGL for "
+"hardware acceleration. This example demonstates a small, but central, part "
+"of the Clutter library to create a simple but attractive image viewing "
+"program."
+msgstr ""
+"Clutter es una biblioteca para crear interfaces de usuarios dinÃmicas usando "
+"OpenGL para la aceleraciÃn grÃfica. Este ejemplo demuestra una pequeÃa, pero "
+"importante parte de la biblioteca Clutter para crear un sencillo pero "
+"atractivo programa para ver imÃgenes."
 
-#~ 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 ""
-#~ "Para empezar a traducir necesitarà <link href=\"http:l10n.gnome.org"
-#~ "\">crear una cuenta</link> y unirse al <link href=\"http://l10n.gnome.org/";
-#~ "teams/\">equipo de traducciÃn</link> de su idioma. Esto le darà la "
-#~ "posibilidad de subir traducciones nuevas."
+#: C/photo-wall.c.page:38(p)
+msgid ""
+"To help us reach our goal we will be utilising a few other common pieces of "
+"GLib as well. Most importantly, we'll use one <code>GSList</code>, a singly-"
+"linked list, to hold our <code>ClutterActor</code>s and another one for file "
+"path names. We will also use <code>GDir</code>, a utility for working with "
+"directories, to access our image directory and gather file paths."
+msgstr ""
+"Para ayudarle a conseguir su objetivo, tambiÃn se utilizarÃn algunos "
+"fragmentos comunes de GLib. MÃs importante es que se usarà una <code>GSList</"
+"code>, una lista simple enlazada para tener el <code>ClutterActor</code> y "
+"otro para los nombres de las rutas de los archivos. TambiÃn se usarà "
+"<code>GDir</code>, una utilidad para trabajar con carpetas, acceder a "
+"nuestra carpeta de imÃgenes y obtener rutas de archivos."
+
+#: C/photo-wall.c.page:51(p)
+msgid ""
+"Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>photo-wall</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
+"<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. Use "
+"<file>mural-de-fotos</file> como nombre del proyecto y de la carpeta."
 
-#~ 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 ""
-#~ "Puede chatear con los traductores de GNOME usando <link href=\"https://";
-#~ "cbe003.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fi18n\">irc</"
-#~ "link>. La gente de los canales se encuentra en cualquier parte del mundo, "
-#~ "por lo que puede que no obtenga una respuesa inmediata debido a las "
-#~ "diferencias horarias."
+#: C/photo-wall.c.page:54(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial using the interface builder."
+msgstr ""
+"AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
+"està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
+"Revise el tutorial del <link xref=\"guitar-tuner.c\">afinador de guitarra</"
+"link> usando el constructor de interfaces."
 
-#~ msgid ""
-#~ "Alternatively, you can contact the Internationalization Team using their "
-#~ "<link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n\";>mailing "
-#~ "list</link>."
-#~ msgstr ""
-#~ "Alternativamente, puede contactar con el equipo de internacionalizaciÃn "
-#~ "usando su <link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n";
-#~ "\">lista de correo</link>."
+#: C/photo-wall.c.page:59(p)
+msgid ""
+"Enable <gui>Configure external packages</gui>. On the next page, select "
+"<em>clutter-1.0</em> from the list to include the Clutter library in your "
+"project."
+msgstr ""
+"Active <gui>Configurar paquetes externos</gui>. En la pÃgina siguiente, "
+"seleccione <em>clutter-1.0</em> de la lista para incluir la biblioteca "
+"Clutter en su proyecto."
 
-#~ msgid ""
-#~ "@@image: 'media/record-collection.png'; "
-#~ "md5=2d645997687ed5aacd36aafafc16e072"
-#~ msgstr ""
-#~ "@@image: 'media/record-collection.png'; "
-#~ "md5=2d645997687ed5aacd36aafafc16e072"
+#: C/photo-wall.c.page:63(p) C/image-viewer.c.page:49(p)
+#: C/guitar-tuner.c.page:54(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> tabs. "
+"You should see some code which starts with the lines:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/main.c</"
+"file> desde las pestaÃas <gui>Proyecto</gui> o <gui>Archivo</gui>. DeberÃa "
+"ver algo de cÃdigo que comience con las lÃneas:"
 
-#~ msgid ""
-#~ "Create a small database application for ordering your music collection"
-#~ msgstr ""
-#~ "Cree una pequeÃa aplicaciÃn con una base de datos para ordenar su "
-#~ "colecciÃn de mÃsica"
+#: C/photo-wall.c.page:72(title)
+msgid "A look at Photo Wall"
+msgstr "Un vistazo al mural de fotos"
 
-#~ msgid "3 Record Collection"
-#~ msgstr "3. ColecciÃn de mÃsica"
+#: C/photo-wall.c.page:73(p)
+msgid "Our image viewer presents the user with a wall of images."
+msgstr "El visor de imÃgenes muestra al usuario un mural de imÃgenes."
 
-#~ msgid "In this tutorial, you will learn:"
-#~ msgstr "En este tutorial aprenderÃ:"
+#: C/photo-wall.c.page:77(p)
+msgid ""
+"When an image is clicked, it is animated to fill the viewing area. When the "
+"image having focus is clicked it is returned to its original position using "
+"an animation with the same duration of 500 milliseconds."
+msgstr ""
+"Cuando se pulsa una imagen, esta se anima para que rellene el Ãrea de "
+"visualizaciÃn. Cuando se pulsa la imagen que tiene el foco, vuelve a su "
+"tamaÃo original usando una animaciÃn que dura 500 milisegundos."
 
-#~ msgid "How to connect to a database using libgda"
-#~ msgstr "CÃmo conectar con una base de datos usando libgda"
+#: C/photo-wall.c.page:83(title)
+msgid "Initial setup"
+msgstr "ConfiguraciÃn inicial"
 
-#~ msgid "How to insert and browse records in a database table"
-#~ msgstr ""
-#~ "CÃmo insertar y examinar registros en una tabla de una base de datos"
+#: C/photo-wall.c.page:84(p)
+msgid ""
+"The following code segment contains many of the defines and variables we "
+"will be using in the following sections. Use this as a reference for later "
+"sections. Copy this code to the beginning of <file>src/main.c</file>:"
+msgstr ""
+"El siguiente fragmento de cÃdigo contiene muchas definiciones y variables "
+"que se usarÃn en las siguientes secciones. Ãselo como referencia para las "
+"prÃximas secciones. Copie este cÃdigo al principio de <file>src/main.c</"
+"file>:"
 
-#~ msgid "Introduction"
-#~ msgstr "IntroducciÃn"
+#: C/photo-wall.c.page:121(title)
+msgid "Jumping into the code"
+msgstr "Saltar dentro del cÃdigo"
 
-#~ msgid ""
-#~ "This demo uses the Javascript language. We are going to demonstrate how "
-#~ "to connect and use a database from a GTK program, by using the GDA (GNOME "
-#~ "Data Access) library. Thus you also need this library installed."
-#~ msgstr ""
-#~ "Esta demostraciÃn usa el lenguaje Javascript. Se va a demostrar cÃmo "
-#~ "conectar y usar una base de datos desde un programa GTK, usando la "
-#~ "bilbioteca GDA (ÂGNOME Data AccessÂ, Acceso a datos de GNOME). Por lo "
-#~ "tanto, es necesario tener instalada tambiÃn esta biblioteca."
+#: C/photo-wall.c.page:122(p)
+msgid ""
+"We will start by taking a look at the <code>main()</code> function as a "
+"whole. Then we'll discuss the other code sections in detail. Change the "
+"<file>src/main.c</file> to contain this <code>main()</code> function. You "
+"can delete the <code>create_window()</code> function as we don't need it in "
+"this example."
+msgstr ""
+"Se empezarà echando un vistazo a la funciÃn <code>main()</code> completa. "
+"Luego se verà el resto de secciones del cÃdigo en detalle. Cambie el archivo "
+"<file>src/main.c</file> para que contenga la funciÃn <code>main()</code>. "
+"Puede eliminar la funciÃn <code>create_window()</code>, ya que no se usa en "
+"este ejemplo."
 
-#~ msgid ""
-#~ "GNOME Data Access (GDA) is library whose purpose is to provide universal "
-#~ "access to different kinds and types of data sources. This goes from "
-#~ "traditional relational database systems, to any imaginable kind of data "
-#~ "source such as a mail server, a LDAP directory, etc. For more "
-#~ "information, and for a full API and documentation, visit the <link href="
-#~ "\"http://library.gnome.org/devel/libgda/stable/\";>GDA website</link>."
-#~ msgstr ""
-#~ "Acceso a Datos de GNOME (GDA) es una biblioteca cuyo propÃsito es "
-#~ "proporcionar acceso universal a diferentes tipos de fuentes de datos. "
-#~ "Esto abarca desde los tradicionales sistemas de bases da datos "
-#~ "relacionales hasta cualquier fuente de datos imaginable como un servidor "
-#~ "de correo-e, un directorio LDAP, etc. Para obtener mÃs informaciÃn y una "
-#~ "documentaciÃn completa de la API, visite la  <link href=\"http://library.";
-#~ "gnome.org/devel/libgda/stable/\">pÃgina web de GDA</link>."
+#: C/photo-wall.c.page:163(p)
+msgid ""
+"Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
+"and transparency (alpha) values. The values range from 0-255. For "
+"transparency a value of 255 is opaque."
+msgstr ""
+"LÃnea 4: <code>ClutterColor</code> se define configurando los valores de "
+"rojo, verde, azul y de transparencia (alfa). Los valores van de 0 a 255. "
+"Para la transparencia, el valor 255 es opaco."
 
-#~ msgid ""
-#~ "Although a big part of the code is related to user interface (GUI), we "
-#~ "are going to focus our tutorial on the database parts (we might mention "
-#~ "other parts we think are relevant though). To know more about Javascript "
-#~ "programs in GNOME, see the <link xref=\"image-viewer.js\">Image Viewer "
-#~ "program</link> tutorial."
-#~ msgstr ""
-#~ "Aunque una gran parte del cÃdigo se refiere a la interfaz de usuario "
-#~ "(IU), el tutorial se enfocarà a las partes de las bases de datos (aunque "
-#~ "se puede hacer menciÃn a otras partes que se consideren relevantes). Para "
-#~ "aprender mÃs sobre los programas en Javascript en GNOME, consulte el "
-#~ "tutorial del programa<link xref=\"image-viewer.js\">Visor de ImÃgenes</"
-#~ "link>"
+#: C/photo-wall.c.page:164(p)
+msgid ""
+"Line 7: You must initialize Clutter. If you forget to do this, you will get "
+"very strange errors. Be warned."
+msgstr ""
+"LÃnea 7: debe inicializar Clutter. Si olvida hacerlo, obtendrà mensajes muy "
+"extraÃos. Queda advertido."
 
-#~ msgid "Create a project in Anjuta"
-#~ msgstr "Crear un proyecto en Anjuta"
+#: C/photo-wall.c.page:165(p)
+msgid ""
+"Lines 9â11: Here we get the default <code>ClutterStage</code> that was "
+"provided by <code>clutter_init</code>. We then set the size using the "
+"defines from the previous section and the address of the <code>ClutterColor</"
+"code> we just defined."
+msgstr ""
+"LÃneas 9â11: aquà es donde se obtiene el <code>ClutterStage</code> "
+"predeterminado que <code>clutter_init</code> proporcionÃ. Entonces se "
+"establece el tamaÃo usando el definido en la secciÃn anterior y las "
+"direcciones del <code>ClutterColor</code> que ya estÃn definidas."
 
-#~ msgid ""
-#~ "Before you start coding, you'll need to set up a new project in Anjuta. "
-#~ "This will create all of the files you need to build and run the code "
-#~ "later on. It's also useful for keeping everything together."
-#~ msgstr ""
-#~ "Antes de empezar a programar, deberà configurar un proyecto nuevo en "
-#~ "Anjuta. Esto crearà todos los archivos que necesite para construir y "
-#~ "ejecutar el cÃdigo mÃs adelante. TambiÃn es Ãtil para mantener todo "
-#~ "ordenado."
+#: C/photo-wall.c.page:166(p)
+msgid ""
+"A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
+"which other <code>ClutterActor</code>s are placed."
+msgstr ""
+"Un <code>ClutterStage</code> es el nivel superior de un <code>ClutterActor</"
+"code> en el que se ubican otros <code>ClutterActor</code>."
 
-#~ msgid ""
-#~ "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
-#~ "gui></guiseq> to open the project wizard."
-#~ msgstr ""
-#~ "Inicie Anjuta y pulse <guiseq><gui>Archivo</gui><gui>Nuevo</"
-#~ "gui><gui>Proyecto</gui></guiseq> para abrir el asistente de proyectos."
+#: C/photo-wall.c.page:168(p)
+msgid ""
+"Line 12: Here we call our function for getting the image file paths. We'll "
+"look at this in a bit."
+msgstr ""
+"LÃnea 12: aquà se llama a la funciÃn para obtener las rutas de las imÃgenes. "
+"Esto se verà en breve."
 
-#~ msgid ""
-#~ "Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
-#~ "<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
-#~ "<file>record-collection</file> as project name and directory."
-#~ msgstr ""
-#~ "Elija <gui>JavaScript genÃrico</gui> de la pestaÃa <gui>JS</gui>, pulse "
-#~ "<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
-#~ "<file>coleccion-de-albumes</file> como nombre de proyecto y de carpeta."
+#: C/photo-wall.c.page:169(p)
+msgid ""
+"Lines 14â26: This is where we set up the <code>ClutterActor</code>s, load "
+"the images and place them into their spot in the image wall. We will look at "
+"this in detail in the next section."
+msgstr ""
+"LÃneas 14â26: aquà es donde se configuran los <code>ClutterActor</code>, se "
+"cargan las imÃgenes y se colocan en su sitio en el mural de imÃgenes. Esto "
+"se verà con mÃs detalle en la siguiente secciÃn."
 
-#~ msgid ""
-#~ "Click <gui>Finished</gui> and the project will be created for you. Open "
-#~ "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. It contains very basic example code."
-#~ msgstr ""
-#~ "Pulse <gui>Finalizar</gui> y se crearà el proyecto. Abra <file>src/main."
-#~ "js</file> desde la pestaÃa <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "Contiene un ejemplo de cÃdigo muy bÃsico."
+#: C/photo-wall.c.page:170(p)
+msgid ""
+"Line 29: Show the stage and <em>all its children</em>, meaning our images."
+msgstr ""
+"LÃnea 29: mostrar el escenario y <em>todos sus hijos</em>, es decir, las "
+"imÃgenes."
 
-#~ msgid "Program Structure"
-#~ msgstr "Estructura del programa"
+#: C/photo-wall.c.page:171(p)
+msgid "Line 32: Start the Clutter main loop."
+msgstr "LÃnea 32: iniciar el bucle principal de Clutter."
 
-#~ msgid ""
-#~ "This demo is a simple GTK application (with a single window) capable of "
-#~ "inserting records into a database table as well as browsing all records "
-#~ "of the table. The table has two fields: <code>id</code>, an integer, and "
-#~ "<code>name</code>, a varchar. The first section (on the top) of the "
-#~ "application allows you to insert a record into the table. The last "
-#~ "section (bottom) allows you to see all the records of that table. Its "
-#~ "content is refreshed every time a new record is inserted and on the "
-#~ "application startup."
-#~ msgstr ""
-#~ "Esta demostraciÃn es una aplicaciÃn GTK sencilla (con una Ãnica ventana) "
-#~ "capaz de insertar registros en la tabla de una base de datos, asà como de "
-#~ "examinar todos los registros de la tabla. La tabla tiene dos campos: "
-#~ "<code>id</code>, un entero, y <code>name</code>, un ÂvarcharÂ. La primera "
-#~ "secciÃn (en la parte superior) de la aplicaciÃn le permite insertar un "
-#~ "registro en la tabla. La Ãltima secciÃn (en la parte inferior) le permite "
-#~ "ver todos los registros de la tabla. El contenido se actualiza cada vez "
-#~ "que se insertar un registro y al inicio de la aplicaciÃn."
+#: C/photo-wall.c.page:176(title)
+msgid "Setting up our image actors"
+msgstr "Configurar los actores de imagen"
 
-#~ msgid "Starting the fun"
-#~ msgstr "Empezar la diversiÃn"
-
-#~ msgid "Let's start by examining the skeleton of the program:"
-#~ msgstr "Empezar examinando el esqueleto del programa:"
+#: C/photo-wall.c.page:177(p)
+msgid ""
+"In Clutter, an actor is the most basic visual element. Basically, everything "
+"you see is an actor."
+msgstr ""
+"En Clutter, un actor es el elemento visual mÃs simple. BÃsicamente, todo lo "
+"que ve es un actor."
 
-#~ msgid ""
-#~ "Lines 1â4: Initial imports. Pay special attention to line 3, which tells "
-#~ "Javascript to import the GDA library, our focus in this tutorial."
-#~ msgstr ""
-#~ "LÃneas 1â4: importaciones iniciales. Preste especial atenciÃn a la lÃnea "
-#~ "3, que indica a Javascript que importe la biblioteca GDA, nuestro "
-#~ "objetivo en este tutorial."
+#: C/photo-wall.c.page:178(p)
+msgid ""
+"In this section, we are going to take a closer look at the loop used for "
+"setting up the <code>ClutterActor</code>s that will display our images."
+msgstr ""
+"En esta secciÃn, se va a mirar mÃs detenidamente el bucle usado para "
+"configurar los <code>ClutterActor</code> que mostrarÃn las imÃgenes."
 
-#~ msgid ""
-#~ "Lines 6â17: Define our <code>Demo</code> class. Pay special attention to "
-#~ "lines 13â15, where we call 3 methods which will do the whole job. They "
-#~ "will be detailed below."
-#~ msgstr ""
-#~ "LÃneas 6â17: definir la clase <code>Demo</code>. Preste especial atenciÃn "
-#~ "a las lÃneas 13â15, donde se llama a 3 mÃtodos que harÃn todo el trabajo. "
-#~ "Se detallarÃn mÃs adelante."
+#: C/photo-wall.c.page:196(p)
+msgid ""
+"Line 5: Here we want to get the path at the <var>n</var>th location in the "
+"<code>GSList</code> that is holding our image path names. The <var>n</var>th "
+"position is calculated based on <code>row</code> and <code>col</code>. The "
+"return value is a pointer to a <code>GSList</code> which is just a node in "
+"the list. We will use this to get the actual path in the next line. The "
+"first parameter is a pointer to the head of the list."
+msgstr ""
+"LÃnea 5: aquà se quiere obtener la ruta a la ubicaciÃn <var>n</var>-Ãsima en "
+"la <code>GSList</code> que contiene los nombres de las rutas de las "
+"imÃgenes. La <var>n</var>-Ãsima posiciÃn se calcula basÃndose en <code>row</"
+"code> y <code>col</code>. El valor de retorno es un puntero a <code>GSList</"
+"code> que es simplemente un nodo en la lista. Esto se usarà para obtener la "
+"ruta actual en la siguiente lÃnea. El primer parÃmetro es un puntero a la "
+"cabecera de la lista."
+
+#: C/photo-wall.c.page:198(p)
+msgid ""
+"Line 6: This is where we actually create the <code>ClutterActor</code> and "
+"place the image into the actor. The first argument is the path which we "
+"access through our <code>GSList</code> node. The second argument is for "
+"error reporting but we are ignoring that to keep things short."
+msgstr ""
+"LÃnea 6: aquà es donde actualmente se crea el <code>ClutterActor</code> y se "
+"ubica la imagen en el actor. El primer argumento es la ruta con la que se "
+"acceder al nodo de la <code>GSList</code>. El segundo argumento es para "
+"informar de un error, pero se ignora para simplificar."
 
-#~ msgid "Lines 19â23: Start the application."
-#~ msgstr "LÃneas 19â23: iniciar la aplicaciÃn."
+#: C/photo-wall.c.page:200(p)
+msgid "Line 7: We'll look at this function in a later section."
+msgstr "LÃnea 7: està funciÃn se verà en una secciÃn posterior."
 
-#~ msgid "Designing the application"
-#~ msgstr "DiseÃar la aplicaciÃn"
+#: C/photo-wall.c.page:202(p)
+msgid ""
+"Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
+"container. It also assumes ownership of the <code>ClutterActor</code> which "
+"is something you'll want to look into as you get deeper into GNOME "
+"development. See the <link href=\"http://library.gnome.org/devel/gobject/";
+"stable/gobject-memory.html\"><code>GObject</code> documentation</link> for "
+"the gory details."
+msgstr ""
+"LÃnea 8: esto aÃade el <code>ClutterActor</code> al escenario, que es un "
+"contenedor. Asume el propietario del <code>ClutterActor</code>, que es algo "
+"que querrà cuando profundice en el desarrollo de GNOME. Para obtener mÃs "
+"detalles, consulte la <link href=\"http://library.gnome.org/devel/gobject/";
+"stable/gobject-memory.html\">documentaciÃn de <code>GObject</code></link>."
 
-#~ msgid ""
-#~ "Let's take a look at the <code>setupWindow</code> method. It is "
-#~ "responsible for creating the User Interface (UI). As UI is not our focus, "
-#~ "we will explain only the relevant parts."
-#~ msgstr ""
-#~ "Eche un vistazo al mÃtodo <code>setupWindow</code>. Es el responsable de "
-#~ "crear la interfaz de usuario (IU). Ya que la IU no es el objetivo, sÃlo "
-#~ "se explicarÃn las partes relevantes."
+#: C/photo-wall.c.page:204(p)
+msgid ""
+"Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
+"that we can later iterate over the <code>ClutterActor</code>s."
+msgstr ""
+"LÃnea 9: esto aÃade el <code>ClutterActor</code> a una <code>GSList</code> "
+"por lo que luego se podrà iterar sobre los <code>ClutterActor</code>."
 
-#~ msgid ""
-#~ "Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
-#~ "will type something to get inserted in the database."
-#~ msgstr ""
-#~ "LÃneas 22 y 27: crear las dos entradas (para los dos campos) en las que "
-#~ "el usuario escribirà algo para insertarlo en la base de datos."
+#: C/photo-wall.c.page:205(p)
+msgid ""
+"Interesting to note is that we want to prepend the <code>ClutterActor</"
+"code>s rather than append so that we avoid traversing the list upon each "
+"insertion. You will often see <code>g_slist_prepend</code> followed by "
+"<code>g_slist_reverse</code> because it faster than inserting many objects "
+"at the end of the list."
+msgstr ""
+"Es interesante tener en cuenta que se prefiere anteponer los "
+"<code>ClutterActor</code> en lugar de adjuntarlos, lo que evita atravesar la "
+"lista en cada inserciÃn. A menudo vera <code>g_slist_prepend</code> seguido "
+"de <code>g_slist_reverse</code>, ya que es mÃs rÃpido que insertar varios "
+"objetos al final de la lista."
 
-#~ msgid ""
-#~ "Lines 31â34: Create the Insert button. We connect its <code>clicked</"
-#~ "code> signal to the <code>_insertClicked</code> private method of the "
-#~ "class. This method is detailed below."
-#~ msgstr ""
-#~ "LÃneas 31â34: crear el botÃn ÂInsertarÂ. Se conecta su seÃal "
-#~ "<code>clicked</code> con el mÃtodo privado <code>_insertClicked</code> de "
-#~ "la clase. Este mÃtodo se detalla a continuaciÃn."
+#: C/photo-wall.c.page:211(title)
+msgid "Loading the images"
+msgstr "Cargar las imÃgenes"
 
-#~ msgid ""
-#~ "Line 39: Create the widget (<code>TextView</code>) where we will show the "
-#~ "contents of the table."
-#~ msgstr ""
-#~ "LÃnea 39: crear el widget (<code>TextView</code>) donde se mostrarÃn los "
-#~ "contenidos de la tabla."
+#: C/photo-wall.c.page:212(p)
+msgid ""
+"Let's take a short break from Clutter to see how we can get the file names "
+"from our image directory."
+msgstr ""
+"TÃmese un pequeÃo descanso de Clutter para ver cÃmo se pueden obtener los "
+"nombres de archivos desde la carpeta de imÃgenes."
 
-#~ msgid ""
-#~ "Line 44: Create the label where we will show the number of records in the "
-#~ "table. Initially it's empty, it will be updated later."
-#~ msgstr ""
-#~ "LÃnea 44: crear la etiqueta donde se mostrarà el nÃmero de registros de "
-#~ "la tabla. Inicialmente està vacÃa, se actualizarà mÃs tarde."
+#: C/photo-wall.c.page:239(p)
+msgid ""
+"Lines 5 and 12: This opens our directory or, if an error occured, returns "
+"after printing an error message."
+msgstr ""
+"LÃneas 5 y 12: esto abre la carpeta o, si ocurre un error, termina despuÃs "
+"de mostrar un mensaje de error."
 
-#~ msgid "Connecting to and initializing the database"
-#~ msgstr "Conectar e inicializar la base de datos"
+#: C/photo-wall.c.page:240(p)
+msgid ""
+"Lines 14â23: The first line gets another file name from the <code>GDir</"
+"code> we opened earlier. If there was an image file (which we check by "
+"looking at its extension, \".png\" or \".jpg\") in the directory we proceed "
+"to prepend the image directory path to the filename and prepend that to the "
+"list we set up earlier. Lastly we attempt to get the next path name and "
+"reenter the loop if another file was found."
+msgstr ""
+"LÃneas 14â23: la primera lÃnea obtiene otro nombre de archivo del "
+"<code>GDir</code> abierto anteriormente. Si hay un archivo de imagen (se "
+"comprueba mirando si la extensiÃn es Â.png o Â.jpgÂ) en la carpeta, se "
+"procede a anteponer la ruta de la carpeta de la imagen al nombre del archivo "
+"y se antepone en la lista creada anteriormente. Por Ãltimo, se intenta "
+"obtener la siguiente ruta y se vuelve a entrar en el bucle si se encuentra "
+"otro archivo."
+
+#: C/photo-wall.c.page:245(title)
+msgid "Set up the actors"
+msgstr "Configurar los actores"
+
+#: C/photo-wall.c.page:246(p)
+msgid ""
+"We now take a look at the sizing and positioning of <code>ClutterActor</"
+"code>s and also readying the <code>ClutterActor</code> for user interaction."
+msgstr ""
+"Eche un vistazo al tamaÃo y al posicionamiento de los <code>ClutterActor</"
+"code> y a cÃmo se deja listo el <code>ClutterActor</code> para la "
+"interacciÃn del usuario."
 
-#~ msgid ""
-#~ "The code which makes the connection to the database is in the "
-#~ "<code>setupDatabase</code> method below:"
-#~ msgstr ""
-#~ "El cÃdigo que hace la conexiÃn con la base de datos està en mÃtodo "
-#~ "<code>setupDatabase</code> siguiente:"
+#: C/photo-wall.c.page:265(p)
+msgid ""
+"Line 7: Setting an actor reactive means that it reacts to events, such as "
+"<code>button-press-event</code> in our case. For Photo Wall, all "
+"<code>ClutterActor</code>s in the wall should initially be reactive."
+msgstr ""
+"LÃnea 7: configurar un actor como Âreactivo significa que reacciona a los "
+"eventos tales como <code>button-press-event</code> en nuestro caso. Para el "
+"mural de fotos, todos los <code>ClutterActor</code> del mural deben ser "
+"inicialmente reactivos."
 
-#~ msgid ""
-#~ "Lines 2â3: Create the GDA's <code>Connection</code> object. We must "
-#~ "supply to its constructor some properties:"
-#~ msgstr ""
-#~ "LÃneas 2â3: crear el objeto de GDA <code>Connection</code>. Se deben "
-#~ "proporcionar a su constructor algunas propiedades:"
+#: C/photo-wall.c.page:268(p)
+msgid ""
+"Line 9â12: Now we connect the <code>button-press-event</code> to the "
+"<code>actor_clicked_cb</code> callback which we will look at next."
+msgstr ""
+"LÃneas 9â12: ahora se conecta el evento <code>button-press-event</code> al "
+"retorno de la llamada <code>actor_clicked_cb</code> que veremos mÃs adelante."
 
-#~ msgid ""
-#~ "<code>provider</code>: One of GDA's supported providers. GDA supports "
-#~ "SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we "
-#~ "will use a SQLite database, as it comes installed by default in most "
-#~ "distributions and it is simple to use (it just uses a file as a database)."
-#~ msgstr ""
-#~ "<code>provider</code>: uno de los proveedores de GDA soportados. GDA "
-#~ "soporta SQLite, MySQL, PostgreSQL, Oracle y muchos otros. Para la "
-#~ "demostraciÃn se usarà una base de datos SQLite, ya que viene instalada de "
-#~ "manera predeterminada en la mayorÃa de las distribuciones y es fÃcil de "
-#~ "usar (sÃlo usa un archivo como base de datos)."
+#: C/photo-wall.c.page:271(p)
+msgid "At this point we've got a wall of images that are ready to be viewed."
+msgstr "En este punto tiene un mural de fotos que està listo para verse."
 
-#~ msgid ""
-#~ "<code>cnc_string</code>: The connection string. It may change from "
-#~ "provider to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</"
-#~ "var>;DB_NAME=<var>FILENAME</var></code>. In this demo we are accessing a "
-#~ "database called gnome_demo in the user home dir (note the call to GLib's "
-#~ "<code>get_home_dir</code> function)."
-#~ msgstr ""
-#~ "<code>cnc_string</code>: la cadena de conexiÃn. Puede cambiar de un "
-#~ "proveedor a otro. La sintaxis de SQLite es: <code>DB_DIR=<var>PATH</var>;"
-#~ "DB_NAME=<var>FILENAME</var></code>. En esta demostraciÃn se accederà a "
-#~ "una base de datos llamada Âgnome_demo en la carpeta del usaurio (tenga en "
-#~ "cuenta la llamada a la funciÃn <code>get_home_dir</code> de GLib)."
+#: C/photo-wall.c.page:275(title)
+msgid "Reacting to the clicks"
+msgstr "Reaccionar a las pulsaciones"
 
-#~ msgid ""
-#~ "If the provider is not supported by GDA, or if the connection string is "
-#~ "missing some element, line 2 will raise an exception. So, in real life we "
-#~ "should handle it with JavaScript's statement <code>try</code>..."
-#~ "<code>catch</code>."
-#~ msgstr ""
-#~ "Si GDA no soporta el proveedor, o si falta algÃn elemento en la cadena de "
-#~ "conexiÃn, la lÃnea 2 elevarà una excepciÃn. Por esto, en la vida real hay "
-#~ "que manejarlo con la sentencia <code>try</code>...<code>catch</code> de "
-#~ "JavaScript."
+#: C/photo-wall.c.page:320(p)
+msgid ""
+"Lines 1â4: We have to make sure our callback function matches the signature "
+"required for the <code>button_clicked_event</code> signal. For our example, "
+"we will only use the first argument, the <code>ClutterActor</code> that is "
+"actually clicked."
+msgstr ""
+"LÃneas 1â4: hay que asegurarse de que la funciÃn de retorno de llamada "
+"coincide con la firma requerida para la seÃal <code>button_clicked_event</"
+"code>. En este ejemplo, sÃlo se usarà el primer argumento, el "
+"<code>ClutterActor</code> pulsado actualmente."
 
-#~ msgid ""
-#~ "Line 4: Open the connection. In the SQLite provider, if the database does "
-#~ "not exist, it will be created in this step."
-#~ msgstr ""
-#~ "LÃnea 4: abrir la conexiÃn. En el proveedor de SQLite, si la base de "
-#~ "datos no existe, se crearà en este paso."
+#: C/photo-wall.c.page:322(p)
+msgid ""
+"A few words on the arguments we are not using in this example. The "
+"<code>ClutterEvent</code> is different depending on what event is being "
+"handled. For example, a key event produces a <code>ClutterKeyEvent</code> "
+"from which you can get the key being pressed among other information. For "
+"mouse click events you get a <code>ClutterButtonEvent</code> from which you "
+"can get the <code>x</code> and <code>y</code> values. See the Clutter "
+"documentation for other <code>ClutterEvent</code> types."
+msgstr ""
+"Unas pocas palabras sobre los argumentos que no se estÃn usando en este "
+"ejemplo. El <code>ClutterEvent</code> es diferente dependiendo de quà evento "
+"se està manejando. Por ejemplo, un evento de clave produce un "
+"<code>ClutterKeyEvent</code> desde el que puede obtener la clave pulsada, "
+"entre otra informaciÃn. Para eventos de pulsaciones del ratÃn, obtiene un "
+"<code>ClutterButtonEvent</code> con el que pueden obtener los valores "
+"<code>x</code> e <code>y</code>. Consulte la documentaciÃn de Clutter para "
+"obtener informaciÃn sobre otros tipos de <code>ClutterEvent</code>."
+
+#: C/photo-wall.c.page:323(p)
+msgid ""
+"The <code>user_data</code> is what one uses to pass data into the the "
+"function. A pointer to any data type can be passed in. If you need multiple "
+"data to be passed into the callback, you can place the data into a struct "
+"and pass its address in."
+msgstr ""
+"El <code>user_data</code> es lo que se usa para pasar datos a una funciÃn. "
+"Se puede pasar un puntero a cualquier tipo de estructura de datos. Si "
+"necesita pasar varios datos al retorno de la llamada, puede colocar los "
+"datos en una estructura y pasar un puntero a su direcciÃn."
 
-#~ msgid ""
-#~ "Lines 6â10: Try to do a simple select to check if the table exists (line "
-#~ "7). If it does not exist (because the database was just created), this "
-#~ "command will raise an exception, which is handled by the <code>try</"
-#~ "code>...<code>catch</code> block. If it is the case, we run the create "
-#~ "table statement (line 9)."
-#~ msgstr ""
-#~ "LÃneas 6â10: intentar hacer una selecciÃn simple para comprobar si la "
-#~ "tabla existe. Si no existe (porque la base de datos se acaba de crear), "
-#~ "este comando elevarà una excepciÃn, que se maneja en el bloque <code>try</"
-#~ "code>...<code>catch</code> block. Si este es el caso, se ejecuta la "
-#~ "sentencia para crear tabla (lÃnea 9)."
+#: C/photo-wall.c.page:327(p)
+msgid ""
+"Line 7: We set up a static flag to track which state we are in: wall mode or "
+"focus mode. We start out in wall mode so no image has focus. Thus, we set "
+"the flag to <code>FALSE</code> initially."
+msgstr ""
+"LÃnea 7: se establece un indicador estÃtico para seguir el estado en el que "
+"se estÃ: modo mural o modo de foco. Se inicia en modo mural, por lo que "
+"ninguna imagen tiene el foco. Por ello, el indicador se establece "
+"inicialmente a <code>FALSE</code>."
 
-#~ msgid ""
-#~ "In order to run the SQL commands above we are using global GDA functions, "
-#~ "<code>execute_select_command</code> and <code>execute_non_select_command</"
-#~ "code>. They are simple to use, and just require two arguments: The "
-#~ "<code>Connection</code> object and the SQL command to be parsed."
-#~ msgstr ""
-#~ "Para ejecutar los comandos SQL anteriores se usan las funcionas globales "
-#~ "de GDA <code>execute_select_command</code> y "
-#~ "<code>execute_non_select_command</code>. Son fÃciles de usar, y sÃlo "
-#~ "requieren dos argumentos: el objeto <code>Connection</code> y el comando "
-#~ "SQL que analizar."
+#: C/photo-wall.c.page:328(p)
+msgid ""
+"Line 9: This line of code runs a custom function, "
+"<code>foreach_set_focus_state</code>, for each element in our "
+"<code>actor_list</code>, passing it the address to the <code>is_focused</"
+"code> flag. We'll see the definition of the <code>foreach_set_focus_state</"
+"code> function in the next section."
+msgstr ""
+"LÃnea 9: esta lÃnea de cÃdigo ejecuta una funciÃn personalizada, "
+"<code>foreach_set_focus_state</code>, para cada elemento de la "
+"<code>actor_list</code>, pasando la direcciÃn al indicador <code>is_focused</"
+"code>. La definiciÃn de la funciÃn <code>foreach_set_focus_state</code> se "
+"verà en la siguiente secciÃn."
 
-#~ msgid "At this point we have the database set up, and are ready to use it."
-#~ msgstr ""
-#~ "En este punto, ya està configurada la base de datos y lista para usarse."
+#: C/photo-wall.c.page:329(p)
+msgid ""
+"Lines 13â19: Reaching this code means that one image currently has focus and "
+"we want to return to wall mode. The <code>clutter_actor_animate</code> "
+"function is used to animate a <code>ClutterActor</code>'s property or "
+"properties from the current state(s) to the specified state(s). The "
+"arguments are as follows:"
+msgstr ""
+"LÃneas 13â19: llegar a este cÃdigo significa que actualmente sÃlo una imagen "
+"tiene el foco, y se quiere volver al modo mural. La funciÃn "
+"<code>clutter_actor_animate</code> se usa para animar una o varias "
+"propiedades de un <code>ClutterActor</code> desde su estado actual al estado "
+"especificado. Los argumentos son como sigue:"
 
-#~ msgid ""
-#~ "After connecting to the database, our demo's constructor calls the "
-#~ "<code>selectData</code> method. It is responsible for getting all the "
-#~ "records in the table and showing them on the <code>TextView</code> "
-#~ "widget. Let's take a look at it:"
-#~ msgstr ""
-#~ "DespuÃs de conectar a la base de datos, el constructor de la demostraciÃn "
-#~ "llama al mÃtodo <code>selectData</code>. Es el responsable de obtener "
-#~ "todos los registros de la tabla y de mostrarlos en el widget "
-#~ "<code>TextView</code>. Ãchele un vistazo:"
+#: C/photo-wall.c.page:331(p)
+msgid "The address of the <code>ClutterActor</code> to animate"
+msgstr "La direcciÃn del <code>ClutterActor</code> que animar"
 
-#~ msgid ""
-#~ "Line 2: The <code>SELECT</code> command. We are using the global GDA's "
-#~ "function <code>execute_select_command</code> for that. It returns a "
-#~ "<code>DataModel</code> object, which is later used to retrieve the rows."
-#~ msgstr ""
-#~ "LÃnea 2: el comando <code>SELECT</code>. Se usan funciones la funciÃn "
-#~ "global de GDA <code>execute_select_command</code>. Devuelve un objeto "
-#~ "<code>DataModel</code>, que se usa mÃs tarde para obtener las filas."
+#: C/photo-wall.c.page:332(p)
+msgid ""
+"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
+"we have a constant speed for animation."
+msgstr ""
+"El modo de animaciÃn que usar. Aquà se ha usado <code>CLUTTER_LINEAR</code> "
+"por lo que se tiene una velocidad constante en la animaciÃn."
 
-#~ msgid ""
-#~ "Line 3: Create an <code>Iter</code> object, which is used to iterate over "
-#~ "the <code>DataModel</code>'s records."
-#~ msgstr ""
-#~ "LÃnea 3: crear un objeto <code>Iter</code>, que se usa para iterar sobre "
-#~ "los registros de <code>DataModel</code>."
+#: C/photo-wall.c.page:333(p)
+msgid ""
+"The duration of the animation in milliseconds. I've chosen 500 ms for this "
+"example."
+msgstr ""
+"La duraciÃn de la animaciÃn, en milisegundos. Se ha escogido 500 ms para "
+"este ejemplo."
 
-#~ msgid ""
-#~ "Line 7: Loop through all the records, fetching them with the help of the "
-#~ "<code>Iter</code> object. At this point, the <code>iter</code> variable "
-#~ "contains the actual, retrieved data. Its <code>move_next</code> method "
-#~ "returns <code>false</code> when it reaches the last record."
-#~ msgstr ""
-#~ "LÃnea 7: recorrer todos los registros, recuperÃndolos con la ayuda del "
-#~ "objeto <code>Iter</code>. En este punto, la variable <code>iter</code> "
-#~ "contiene los datos obtenidos actualmente. Su mÃtodo <code>move_next</"
-#~ "code> devuelve <code>false</code> cuando se alcanza el Ãltimo registro."
+#: C/photo-wall.c.page:334(p)
+msgid ""
+"The remaining arguments are property/value pairs. Here we want to set the "
+"<code>x</code> value to the starting <code>x</code> value this "
+"<code>ClutterActor</code> was at before being brought into focus."
+msgstr ""
+"El resto de argumentos son parejas propiedad/valor. Aquà se quiere "
+"establecer el valor <code>x</code> al valor <code>x</code> inicial en el que "
+"estaba el <code>ClutterActor</code> antes de darle el foco."
 
-#~ msgid "Lines 8â9: We do two things in each line:"
-#~ msgstr "LiÌneas 8â9: se hacen dos cosas en cada liÌnea:"
+#: C/photo-wall.c.page:335(p)
+msgid ""
+"The last argument must always be <code>NULL</code> to indicate that there "
+"are no more properties to be set."
+msgstr ""
+"El Ãltimo argumento debe ser siempre <code>NULL</code> para indicar que no "
+"hay mÃs propiedades que configurar."
 
-#~ msgid ""
-#~ "Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
-#~ "only one argument: the column number to retrieve, starting at 0. As our "
-#~ "<code>SELECT</code> command returns only two columns, we are retrieving "
-#~ "columns 0 and 1."
-#~ msgstr ""
-#~ "Use el mÃtodo <code>get_value_at</code> de <code>Iter</code>, que sÃlo "
-#~ "necesita un argumento: el nÃmero de columna que recuperar, empezando por "
-#~ "0. Ya que el comando <code>SELECT</code> sÃlo devuelve dos columnas, se "
-#~ "estÃn recuperando las columnas 0 y 1."
+#: C/photo-wall.c.page:337(p)
+msgid ""
+"The <code>depth</code> property needs a little more explaining. We need to "
+"raise the focused image so that it doesn't slide behind other "
+"<code>ClutterActor</code>s. In this section we are returning it to the same "
+"depth as the others on the wall."
+msgstr ""
+"La propiedad <code>depth</code> necesita un poco mÃs de explicaciÃn. Se debe "
+"elevar la imagen que tiene el foco para que no se deslice por debajo de "
+"otros <code>ClutterActor</code>. En esta secciÃn se està devolviendo a la "
+"misma profundidad que las otras en el mural."
 
-#~ msgid ""
-#~ "The method <code>get_value_at</code> returns the field in GLib's "
-#~ "<code>GValue</code> format. A simple way to convert this format to a "
-#~ "string is by using GDA's global function <code>value_stringify</code>. "
-#~ "That's what we are doing here, and we store the results in the variables "
-#~ "<code>id_field</code> and <code>name_field</code>."
-#~ msgstr ""
-#~ "El mÃtodo <code>get_value_at</code> devuelve el campo en el formato "
-#~ "<code>GValue</code> de GLib. Una manera sencilla de convertir este valor "
-#~ "en una cadena es usar la funciÃn global de GDA <code>value_stringify</"
-#~ "code>. Es lo que se està haciendo aquÃ, y el resultado se almacena en las "
-#~ "variables <code>id_field</code> y <code>name_field</code>."
+#: C/photo-wall.c.page:338(p)
+msgid ""
+"Depth also determines which <code>ClutterActor</code>s receive events. A "
+"<code>ClutterActor</code> with a higher depth value receives the click "
+"events and can choose whether the event gets sent to <code>ClutterActor</"
+"code>s under it. We'll see how that works in a few steps."
+msgstr ""
+"La profundidad tambiÃn determina quà <code>ClutterActor</code> recibe "
+"eventos. Un <code>ClutterActor</code> con una profundidad alta recibe los "
+"eventos de las pulsaciones y puede elegir si el evento se envÃa a un "
+"<code>ClutterActor</code> que està debajo de Ãl. Se verà cÃmo funciona esto "
+"en pocos pasos."
 
-#~ msgid ""
-#~ "Line 11: Concatenate the two fields to make one text line, separated by "
-#~ "<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
-#~ msgstr ""
-#~ "LÃnea 11: concatenar los dos registros para formar una lÃnea de texto, "
-#~ "separados por <code>\"=&gt;\"</code>, y almacenarla en la variable "
-#~ "<code>text</code>."
+#: C/photo-wall.c.page:340(p)
+msgid ""
+"Line 24: Reaching this line of code means we are currently in the wall state "
+"and are about to give a <code>ClutterActor</code> focus. Here we save the "
+"starting position so that we can return to it later."
+msgstr ""
+"LÃnea 24: llegar a esta lÃnea de cÃdigo significa que actualmente se està en "
+"el modo mural y se va a dar el foco a un <code>ClutterActor</code>. Aquà se "
+"guarda la posiciÃn inicial, por lo que se puede volver a ella mÃs adelante."
 
-#~ msgid ""
-#~ "Line 14: After the loop is finished, we have all the records formatted in "
-#~ "the <code>text</code> variable. In this line we just set the contents of "
-#~ "the <code>TextView</code> with that variable."
-#~ msgstr ""
-#~ "LÃnea 14: cuando termine el bucle, se tendrÃn todos los registros "
-#~ "formateados en la variable <code>text</code>. En esta lÃnea, simplemente "
-#~ "se establece el contenido del <code>TextView</code> con esta variable."
+#: C/photo-wall.c.page:341(p)
+msgid ""
+"Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
+"property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
+"events. In this focused state the only <code>ClutterActor</code> that we "
+"want to receive events will be the <code>ClutterActor</code> being viewed. "
+"Clicking on the <code>ClutterActor</code> will return it to its starting "
+"position."
+msgstr ""
+"LÃnea 25: establecer la propiedad <code>reactive</code> del "
+"<code>ClutterActor</code> a <code>TRUE</code> hace que este "
+"<code>ClutterActor</code> reaccione a los eventos. En el estado Âcon focoÂ, "
+"el Ãnico <code>ClutterActor</code> que se quiere que reciba eventos es el "
+"<code>ClutterActor</code> que se està viendo. Al pulsar sobre el "
+"<code>ClutterActor</code> volverà a su posiciÃn inicial."
+
+#: C/photo-wall.c.page:342(p)
+msgid ""
+"Lines 27â33: This is similar to the above block of code. Notice that we are "
+"setting the the depth to raise it above the other images."
+msgstr ""
+"LÃneas 27â33: esto es similar al bloque de cÃdigo anterior. Tenga en cuenta "
+"que se està estableciendo la profundidad para elevarlo por encima del resto "
+"de imÃgenes."
 
-#~ msgid ""
-#~ "Line 15: Display the number of records in the table, making use of the "
-#~ "<code>DataModel</code>'s <code>get_n_rows</code> method."
-#~ msgstr ""
-#~ "LÃnea 15: mostrar el nÃmero de registros en la tabla, usando el mÃtodo "
-#~ "<code>get_n_rows</code> de <code>DataModel</code> <code>get_n_rows</code>."
+#: C/photo-wall.c.page:343(p)
+msgid ""
+"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
+"state."
+msgstr ""
+"LÃnea 37: aquà se cambia la opciÃn <code>is_focused</code> al estado actual."
 
-#~ msgid "Inserting"
-#~ msgstr "Insertar"
+#: C/photo-wall.c.page:344(p)
+msgid ""
+"As mentioned previously, the <code>ClutterActor</code>s with higher "
+"<code>depth</code> values receive events but can allow <code>ClutterActor</"
+"code>s below them to also receive events. Returning <code>TRUE</code> will "
+"stop events from being passed down, while <code>FALSE</code> will pass "
+"events down."
+msgstr ""
+"Como se ha mencionado anteriormente, los <code>ClutterActor</code> con "
+"valores de <code>depth</code> mÃs altos recibirÃn eventos, pero pueden "
+"permitir que los <code>ClutterActor</code> que estÃn por denajo de ellos "
+"tambiÃn reciban eventos. Al devolver <code>TRUE</code> se dejarÃn de enviar "
+"eventos havia abajo, mientras que <code>FALSE</code> harà que los eventos "
+"pasen hacia abajo."
+
+#: C/photo-wall.c.page:346(p)
+msgid ""
+"Remember, however, that to receive events the <code>ClutterActor</code>s "
+"must be set <code>reactive</code>."
+msgstr ""
+"Recuerde, sin embargo, que para que los <code>ClutterActor</code> reciban "
+"eventos deben establecerse como <code>reactive</code>."
 
-#~ msgid ""
-#~ "OK, we know how to connect to a database and how to select rows from a "
-#~ "table. Now it's time to do an <code>INSERT</code> on the table. Do you "
-#~ "remember above, in the method <code>setupWindow</code> we connected the "
-#~ "<gui>Insert</gui> button's <code>clicked</code> signal to the method "
-#~ "<code>_insertClicked</code>? Let's see the implementation of this method."
-#~ msgstr ""
-#~ "Bien, ahora ya sabe cÃmo conectarse a la base de datos y cÃmo seleccionar "
-#~ "filas de una tabla. Ahora es el momento de hacer un <code>INSERT</code> "
-#~ "en la tabla. ÂRecuerda cuando antes, en el mÃtodo <code>setupWindow</"
-#~ "code>, se conectà la seÃal <code>clicked</code> del botÃn <gui>Insertar</"
-#~ "gui> al mÃtodo <code>_insertClicked</code>?. Vea la implementaciÃn de "
-#~ "este mÃtodo."
+#: C/photo-wall.c.page:350(p)
+msgid ""
+"The following is the convenience function passed to <code>g_slist_foreach</"
+"code>."
+msgstr ""
+"Lo siguiente es la funciÃn de conveniencia pasada a <code>g_slist_foreach</"
+"code>."
 
-#~ msgid ""
-#~ "We have learned how to use GDA's convenience functions "
-#~ "<code>execute_select_command</code> and <code>execute_non_select_command</"
-#~ "code> to quickly execute SQL commands on the database. GDA allows one to "
-#~ "build a SQL statement indirectly, by using its <code>SqlBuilder</code> "
-#~ "object. What are the benefits of this? GDA will generate the SQL "
-#~ "statement dynamically, and it will be valid for the connection provider "
-#~ "used (it will use the same SQL dialect the provider uses). Let's study "
-#~ "the code:"
-#~ msgstr ""
-#~ "Se ha aprendido a usar las funciones de conveniencia de GDA "
-#~ "<code>execute_select_command</code> y <code>execute_non_select_command</"
-#~ "code> para ejecutar comandos SQL rÃpidamente en la base de datos. GDA le "
-#~ "permite construir una sentencia SQL de manera indirecta, usando su objeto "
-#~ "<code>SqlBuilder</code>. ÂCuÃles son los beneficios de esto? GDA generarà "
-#~ "la sentencia SQL dinÃmicamente, y serà vÃlida para el proveedor de la "
-#~ "conexiÃn usado (usarà el mismo dialecto de SQL que usa el proveedor). "
-#~ "Estudie el cÃdigo:"
+#: C/photo-wall.c.page:363(p)
+msgid ""
+"Lines 2â5: The signature of this function requires two <code>gpointer</"
+"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
+"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
+"that we've passed in the previous section. We want to cast these and store "
+"them for easy use."
+msgstr ""
+"LÃneas 2â5: la firma de esta funciÃn requiere dos <code>gpointer</code>. El "
+"primero es un puntero al <code>ClutterActor</code> contenido en la "
+"<code>GSList</code> y el otro es el indicador <code>is_focused</code> que se "
+"ha pasado en la secciÃn anterior. Se quiere convertir su tipo (ÂcastÂ) y "
+"almacenarlos para que sea fÃcil usarlos."
 
-#~ msgid ""
-#~ "Lines 2â3: Check if the user filled all the fields. The code for the "
-#~ "private method <code>_validateFields</code> is really simple and you can "
-#~ "read it in the full demo source code."
-#~ msgstr ""
-#~ "LÃneas 2â3: comprobar si el usuario ha rellenado todos los campos. El "
-#~ "cÃdigo del mÃtodo privado <code>_validateFields</code> es realmente "
-#~ "simple y puede leerlo en el cÃdigo fuente completo de la demostraciÃn."
+#: C/photo-wall.c.page:364(p)
+msgid ""
+"Line 7: Depending on which boolean value is passed in, the "
+"<code>ClutterActor</code> will be set to respond to events or not."
+msgstr ""
+"LÃnea 7: dependiendo de quà valor booleano se pasa, el <code>ClutterActor</"
+"code> se establecerà para que responda o no a eventos."
 
-#~ msgid ""
-#~ "Line 5: The faster way of doing the <code>INSERT</code>. It's commented "
-#~ "out as we want to show how to use the <code>SqlBuilder</code> object to "
-#~ "build a SQL statement portable across databases."
-#~ msgstr ""
-#~ "LÃnea 5: la manera mÃs rÃpida de hacer el <code>INSERT</code>. Se ha "
-#~ "comentado que se quiere mostrar cÃmo usar el objeto <code>SqlBuilder</"
-#~ "code> para construir una sentencia SQL portable entre bases de datos."
+#: 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 "Construir y ejecutar la aplicaciÃn"
 
-#~ msgid ""
-#~ "Line 7: Create the <code>SqlBuilder</code> object. We must pass the type "
-#~ "of statement we are going to build. It can be <code>SELECT</code>, "
-#~ "<code>UPDATE</code>, <code>INSERT</code> or <code>DELETE</code>."
-#~ msgstr ""
-#~ "LÃnea 7: crear el objeto <code>SqlBuilder</code>. Se debe pasar el tipo "
-#~ "de sentencia que se va a construir. Puede ser <code>SELECT</code>, "
-#~ "<code>UPDATE</code>, <code>INSERT</code> o <code>DELETE</code>."
+#: C/photo-wall.c.page:370(p)
+msgid ""
+"All of the code should now be ready to go. All you need now is some pictures "
+"to load. By default, the pictures are loaded from a <file>berlin_images</"
+"file> directory. If you want, you can change the <code>#define "
+"IMAGE_DIR_PATH</code> line near the top to refer to your photo directory, or "
+"create a <file>berlin_images</file> directory by clicking "
+"<guiseq><gui>Project</gui><gui>New Directory...</gui></guiseq> and creating "
+"a <file>berlin_images</file> directory as a subdirectory of the <file>photo-"
+"wall</file> directory. Make sure to put at least twelve images in the "
+"directory!"
+msgstr ""
+"Todo el cÃdigo deberÃa estar listo para ejecutarse. Todo lo que necesita son "
+"algunas imÃgenes para cargar. De manera predeterminada, las imÃgenes se "
+"cargan desde la carpeta <file>berlin_images</file>. Si quiere, puede cambiar "
+"la lÃnea <code>#define IMAGE_DIR_PATH</code> del principio para que haga "
+"referencia a su carpeta de fotos, o crear una carpeta <file>berlin_images</"
+"file> pulsando en <guiseq><gui>Proyecto</gui><gui>Carpeta nueva...</gui></"
+"guiseq> y creando una carpeta <file>berlin_images</file> como subcarpeta de "
+"la carpeta <file>mural-fotos</file>. AsegÃrese de poner al menos doce "
+"imÃgenes en la carpeta."
+
+#: C/photo-wall.c.page:372(p)
+msgid ""
+"When you have done that, click <guiseq><gui>Build</gui><gui>Build Project</"
+"gui></guiseq> to build everything again, then <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> to start the application."
+msgstr ""
+"Cuando lo haya hecho, pulse <guiseq><gui>Construir</gui><gui>Construir "
+"proyecto</gui></guiseq> para construir todo otra vez, y entonces pulse "
+"<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> para iniciar la "
+"aplicaciÃn."
 
-#~ msgid ""
-#~ "Line 8: Set the name of the table on which the built statement will "
-#~ "operate (it will generate <code>INSERT INTO demo</code>)"
-#~ msgstr ""
-#~ "LÃnea 8: establecer el nombre de la base de datos en la que operarà la "
-#~ "sentencia construida (generarà <code>INSERT INTO demo</code>)"
+#: C/photo-wall.c.page:373(p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/photo-wall</file> "
+"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
+"enjoy!"
+msgstr ""
+"Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/photo-wall</"
+"file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</gui> y "
+"disfrute."
 
-#~ msgid ""
-#~ "Lines 9â10: Set the fields and its values that will be part of the "
-#~ "statement. The first argument is the field name (as in the table). The "
-#~ "second one is the value for that field."
-#~ msgstr ""
-#~ "LÃneas 9â10: establecer los campos que formarÃn parte de la sentencia y "
-#~ "sus valores. El primer argumento es el nombre del campo (como aparece en "
-#~ "la tabla). El segundo es el valor de este campo."
+#: C/photo-wall.c.page:378(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"photo-wall/photo-wall.c\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su cÃdigo con este <link href="
+"\"photo-wall/photo-wall.c\">cÃdigo de referencia</link>."
 
-#~ msgid ""
-#~ "Line 11: Get the dynamically generated <code>Statement</code> object, "
-#~ "which represents a SQL statement."
-#~ msgstr ""
-#~ "LÃnea 11: obtener el objeto <code>Statement</code> generado "
-#~ "dinÃmicamente, que representa una sentencia SQL."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/toolbar.js.page:19(None)
+msgid "@@image: 'media/toolbar.png'; md5=65d00f92e142de153e3a3e95a89603ae"
+msgstr "@@image: 'media/toolbar.png'; md5=65d00f92e142de153e3a3e95a89603ae"
 
-#~ msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
-#~ msgstr ""
-#~ "LÃnea 12: finalmente, ejecutar la sentencia SQL (<code>INSERT</code>)."
+#: C/toolbar.js.page:14(desc)
+msgid "A toolbar widget which is connected to a Dialog widget"
+msgstr "Un widget de barra de herramientas conectado a un widget de diÃlogo"
 
-#~ msgid ""
-#~ "Line 14: Clear the id and name fields on the screen. The code for the "
-#~ "private method <code>_clearFields</code> is really simple and you can "
-#~ "read it in the full demo source code."
-#~ msgstr ""
-#~ "LÃnea 14: limpiar los campos Âid y Âname en la pantalla. El cÃdigo del "
-#~ "mÃtodo privado <code>_clearFields</code> es muy sencillo, y puede leerlo "
-#~ "en el cÃdigo fuente de la demostraciÃn completa."
+#: C/toolbar.js.page:17(title)
+#| msgid "Display widgets"
+msgid "Toolbar widget"
+msgstr "Widget de barra de herramientas"
 
-#~ msgid ""
-#~ "Line 15: Refresh the view on the screen by doing another <code>SELECT</"
-#~ "code>."
-#~ msgstr ""
-#~ "LÃnea 15: actualizar la vista en la pantalla haciendo otro <code>SELECT</"
-#~ "code>."
+#: 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 ""
+"La barra de herramientas es un widget que puede contener texto e iconos del "
+"almacÃn. En este ejemplo se usan iconos del almacÃn."
 
-#~ msgid ""
-#~ "You can also make use of parameters while building the statement. By "
-#~ "using the <code>SqlBuilder</code> objects and parameters you are less "
-#~ "subject to attacks like SQL injection. Check the <link href=\"http://";
-#~ "library.gnome.org/devel/libgda/stable/\">GDA documentation</link> for "
-#~ "more information about parameters."
-#~ msgstr ""
-#~ "TambiÃn puede usar parÃmetros mientras construye la sentencia. Usando "
-#~ "objetos y parÃmetros <code>SqlBuilder</code> serà menos susceptible a "
-#~ "ataques de inyecciÃn de SQL. Para obtener informaciÃn adicional sobre los "
-#~ "parÃmetros, consulte la <link href=\"http://library.gnome.org/devel/";
-#~ "libgda/stable/\">documentaciÃn de GDA</link>."
+#: 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 ""
+"En este ejemplo se usan los siguientes 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>."
 
-#~ msgid "Run the application"
-#~ msgstr "Ejecutar la aplicaciÃn"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/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"
 
-#~ msgid ""
-#~ "All of the code you need should now be in place, so try running the code. "
-#~ "You now have a database for your record collection!"
-#~ msgstr ""
-#~ "Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
-#~ "ejecutar el cÃdigo. Ahora tiene una base de datos para su colecciÃn de "
-#~ "registros."
+#: C/messagedialog.vala.page:14(desc)
+msgid "A message window"
+msgstr ""
 
-#~ msgid "Reference Implementation"
-#~ msgstr "ImplementaciÃn de referencia"
+#: C/messagedialog.vala.page:17(title)
+#, fuzzy
+#| msgid "Message Board"
+msgid "MessageDialog"
+msgstr "Cuadro de mensajes"
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"record-collection/record-collection.js\">reference code</"
-#~ "link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su cÃdigo con este <link "
-#~ "href=\"record-collection/record-collection.js\">cÃdigo de referencia</"
-#~ "link>."
+#: C/messagedialog.vala.page:19(p)
+msgid "A modal message dialog which can cause the world to explode."
+msgstr ""
 
-#~ msgid ""
-#~ "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
-#~ msgstr ""
-#~ "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
+#: C/messagedialog.vala.page:57(link)
+msgid "Gtk.ResponseType"
+msgstr "Gtk.ResponseType"
 
-#~ msgid ""
-#~ "@@image: 'media/photo-wall-focused.png'; "
-#~ "md5=9f1ceecf3a28c1e468597b093a10cbae"
-#~ msgstr ""
-#~ "@@image: 'media/photo-wall-focused.png'; "
-#~ "md5=9f1ceecf3a28c1e468597b093a10cbae"
+#: C/messagedialog.vala.page:58(link)
+msgid "Gtk.MessageDialog"
+msgstr "Gtk.MessageDialog"
 
-#~ msgid "A Clutter image viewer"
-#~ msgstr "Un visor de imÃgenes Clutter"
+#: C/messagedialog.vala.page:59(link)
+msgid "Gtk.DialogFlags"
+msgstr "Gtk.DialogFlags"
 
-#~ msgid "Chris KÃhl"
-#~ msgstr "Chris KÃhl"
+#: C/messagedialog.vala.page:60(link)
+msgid "Gtk.MessageType"
+msgstr "Gtk.MessageType"
 
-#~ msgid "chrisk openismus com"
-#~ msgstr "chrisk openismus com"
+#: C/messagedialog.vala.page:61(link)
+msgid "Gtk.ButtonsType"
+msgstr "Gtk.ButtonsType"
 
-#~ msgid "Photo Wall"
-#~ msgstr "Mural de fotos"
+#. 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"
 
-#~ msgid ""
-#~ "For this example we will build a simple image viewer using Clutter. You "
-#~ "will learn:"
-#~ msgstr ""
-#~ "Para este ejemplo se construirà un sencillo visor de imÃgenes usando "
-#~ "Clutter. AprenderÃ:"
+#: C/message-board.c.page:9(desc)
+msgid "A simple program using WebKitGTK+ and the DOM."
+msgstr "Un programa sencillo usando WebKitGTK+ y el DOM."
 
-#~ msgid "How to size and position <code>ClutterActor</code>s"
-#~ msgstr "CÃmo dimensionar y posicionar varios <code>ClutterActor</code>"
+#: C/message-board.c.page:13(name) C/index.page:12(name)
+msgid "Shaun McCance"
+msgstr "Shaun McCance"
 
-#~ msgid "How to place an image in a <code>ClutterActor</code>"
-#~ msgstr "CÃmo situar una imagen en un <code>ClutterActor</code>"
+#: C/message-board.c.page:14(email) C/index.page:13(email)
+msgid "shaunm gnome org"
+msgstr "shaunm gnome org"
 
-#~ msgid "How to do simple transitions using Clutter's animation framework"
-#~ msgstr ""
-#~ "CÃmo hacer transiciones sencillas usando el entorno de trabajo de "
-#~ "animaciones de Clutter"
+#: C/message-board.c.page:15(years) C/index.page:14(years)
+msgid "2010"
+msgstr "2010"
 
-#~ msgid "How to make <code>ClutterActor</code>s respond to mouse events"
-#~ msgstr ""
-#~ "CÃmo hacer que un <code>ClutterActor</code> responda a los eventos del "
-#~ "ratÃn"
+#: C/message-board.c.page:20(title)
+msgid "Message Board"
+msgstr "Cuadro de mensajes"
 
-#~ msgid "How to get file names from a directory"
-#~ msgstr "CÃmo obtener nombres de archivos de una carpeta"
+#: C/message-board.c.page:25(p)
+msgid "How to display a web page with WebKit."
+msgstr "CÃmo mostrar una pÃgina web con WebKit"
 
-#~ msgid ""
-#~ "Clutter is a library for creating dynamic user interfaces using OpenGL "
-#~ "for hardware acceleration. This example demonstates a small, but central, "
-#~ "part of the Clutter library to create a simple but attractive image "
-#~ "viewing program."
-#~ msgstr ""
-#~ "Clutter es una biblioteca para crear interfaces de usuarios dinÃmicas "
-#~ "usando OpenGL para la aceleraciÃn grÃfica. Este ejemplo demuestra una "
-#~ "pequeÃa, pero importante parte de la biblioteca Clutter para crear un "
-#~ "sencillo pero atractivo programa para ver imÃgenes."
+#: C/message-board.c.page:26(p)
+msgid ""
+"How to manipulate the contents of a web page using WebKit's DOM functions."
+msgstr ""
+"Como manipular el contenido de una pÃgina web usando las funciones del DOM "
+"del WebKit."
 
-#~ msgid ""
-#~ "To help us reach our goal we will be utilising a few other common pieces "
-#~ "of GLib as well. Most importantly, we'll use one <code>GSList</code>, a "
-#~ "singly-linked list, to hold our <code>ClutterActor</code>s and another "
-#~ "one for file path names. We will also use <code>GDir</code>, a utility "
-#~ "for working with directories, to access our image directory and gather "
-#~ "file paths."
-#~ msgstr ""
-#~ "Para ayudarle a conseguir su objetivo, tambiÃn se utilizarÃn algunos "
-#~ "fragmentos comunes de GLib. MÃs importante es que se usarà una "
-#~ "<code>GSList</code>, una lista simple enlazada para tener el "
-#~ "<code>ClutterActor</code> y otro para los nombres de las rutas de los "
-#~ "archivos. TambiÃn se usarà <code>GDir</code>, una utilidad para trabajar "
-#~ "con carpetas, acceder a nuestra carpeta de imÃgenes y obtener rutas de "
-#~ "archivos."
+#: C/message-board.c.page:29(p)
+msgid ""
+"This tutorial assumes you are familiar with the C programming language and "
+"have a basic understanding of GTK+, including how to create and place "
+"widgets and how to connect callback functions to signals. See <link xref="
+"\"image-viewer.c\"/> to learn the basics of GTK+."
+msgstr ""
+"En este tutorial se asume que està familiarizado con el lenguaje de "
+"programaciÃn C y que tiene un conocimiento bÃsico de GTK+, incluyendo cÃmo "
+"crear y colocar widgets y cÃmo conectar funciones de retorno de retorno de "
+"la llamadas a seÃales. Consulte la <link xref=\"image-viewer.c\"/> para "
+"aprender las nociones bÃsicas de GTK+."
 
-#~ msgid ""
-#~ "Choose <gui>Gtk+ (simple)</gui> from the <gui>C</gui> tab, click "
-#~ "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>photo-wall</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
-#~ "<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. "
-#~ "Use <file>mural-de-fotos</file> como nombre del proyecto y de la carpeta."
+#: C/message-board.c.page:42(p)
+msgid ""
+"The GNOME platform includes WebKitGTK+, built on top of the powerful WebKit "
+"HTML framework. WebKit is used throughout GNOME, not just to view web pages "
+"on the Internet, but also to create rich user interfaces that can be easily "
+"styled with CSS."
+msgstr ""
+"La plataforma GNOME incluye WebKitGTK+, construido sobre el potente marco de "
+"trabajo WebKit. WebKitGTK se usa en todo GNOME, no sÃlo para ver pÃginas web "
+"en Internet, sino tambiÃn para crear interfaces de usuario enriquecidas a "
+"las que se pueden aÃadir estilos fÃcilmente con CSS."
 
-#~ msgid ""
-#~ "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled "
-#~ "as we will create the UI manually in this tutorial. Check the <link xref="
-#~ "\"guitar-tuner.c\">Guitar-Tuner</link> tutorial using the interface "
-#~ "builder."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
-#~ "està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
-#~ "Revise el tutorial del <link xref=\"guitar-tuner.c\">afinador de "
-#~ "guitarra</link> usando el constructor de interfaces."
+#: C/message-board.c.page:47(p)
+msgid ""
+"In this tutorial, you will create a simple message board using WebKit. The "
+"message board will allow you to enter some text and have it added to a list "
+"of messages in HTML. Before you begin, you need to set up a project in "
+"Anjuta."
+msgstr ""
+"En este tutorial, se crearà un cuadro de mensajes sencillo usando WebKit. El "
+"cuadro de mensajes le permitirà introducir algÃn texto y aÃadirlo a una "
+"lista de mensajes en HTML. Antes de empezar, deberà configurar un proyecto "
+"en Anjuta."
 
-#~ msgid ""
-#~ "Enable <gui>Configure external packages</gui>. On the next page, select "
-#~ "<em>clutter-1.0</em> from the list to include the Clutter library in your "
-#~ "project."
-#~ msgstr ""
-#~ "Active <gui>Configurar paquetes externos</gui>. En la pÃgina siguiente, "
-#~ "seleccione <em>clutter-1.0</em> de la lista para incluir la biblioteca "
-#~ "Clutter en su proyecto."
+#: C/message-board.c.page:53(p)
+msgid ""
+"In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
+"guiseq> to open the new project assistant."
+msgstr ""
+"En Anjuta, pulse <guiseq><gui>Archivo</gui><gui>Nuevo</gui><gui>Proyecto</"
+"gui></guiseq> para abrir el asistente para proyecto nuevo."
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. You should see some code which starts with the lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/main.c</"
-#~ "file> desde las pestaÃas <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "DeberÃa ver algo de cÃdigo que comience con las lÃneas:"
+#: C/message-board.c.page:55(p)
+msgid ""
+"Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
+"<gui>Continue</gui>."
+msgstr ""
+"Seleccione <gui>GTK+ (simple)</gui> en la pestaÃa <gui>C</gui> y pulse "
+"<gui>Continuar</gui>."
 
-#~ msgid "A look at Photo Wall"
-#~ msgstr "Un vistazo al mural de fotos"
+#: C/message-board.c.page:57(p)
+msgid ""
+"Fill out your details on the <gui>Basic information</gui> page. Use "
+"<input>message-board</input> for the project name. Click <gui>Continue</gui>."
+msgstr ""
+"Rellene sus detalles en la pÃgina <gui>InformaciÃn bÃsica</gui>. Use "
+"<input>cuadro-mensajes</input> para el nombre del proyecto. Pulse "
+"<gui>Continuar</gui>."
 
-#~ msgid "Our image viewer presents the user with a wall of images."
-#~ msgstr "El visor de imÃgenes muestra al usuario un mural de imÃgenes."
+#: C/message-board.c.page:60(p)
+msgid ""
+"Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
+"tutorial builds the user-interface manually."
+msgstr ""
+"Desactive la opciÃn <gui>Usar GtkBuilder para la interfaz del usuario</gui>, "
+"ya que, en este tutorial, la interfaz de usuario se construye manualmente."
 
-#~ msgid ""
-#~ "When an image is clicked, it is animated to fill the viewing area. When "
-#~ "the image having focus is clicked it is returned to its original position "
-#~ "using an animation with the same duration of 500 milliseconds."
-#~ msgstr ""
-#~ "Cuando se pulsa una imagen, esta se anima para que rellene el Ãrea de "
-#~ "visualizaciÃn. Cuando se pulsa la imagen que tiene el foco, vuelve a su "
-#~ "tamaÃo original usando una animaciÃn que dura 500 milisegundos."
+#: C/message-board.c.page:63(p)
+msgid ""
+"You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
+"<gui>Project options</gui> page, select <gui>Configure external packages</"
+"gui>. Click <gui>Continue</gui>. On the <gui>Configure external packages</"
+"gui> page, check <gui>webkitgtk-3.0</gui>."
+msgstr ""
+"Deberà indicar a Anjuta que va a usar WebKitGTK+ en este proyecto. En la "
+"pÃgina <gui>Opciones del proyecto</gui>, seleccione <gui>Configurar paquetes "
+"externos</gui>. Pulse <gui>Continuar</gui>. En la pÃgina <gui>Configurar "
+"paquetes externos</gui> seleccione <gui>webkitgtk-3.0</gui>."
 
-#~ msgid "Initial setup"
-#~ msgstr "ConfiguraciÃn inicial"
+#: C/message-board.c.page:69(p)
+msgid ""
+"After you finish the new project assistant, open the file <file>src/main.c</"
+"file> from either the <gui>Project</gui> or the <gui>File</gui> tab. Anjuta "
+"will have filled this in with some basic GTK+ code from its templates. Since "
+"you are creating a WebKit project, you first need to include the WebKit "
+"headers. After the line that includes <code>gtk/gtk.h</code>, add the "
+"following line:"
+msgstr ""
+"Cuando termine el asistente de creaciÃn de un nuevo proyecto, abra el "
+"archivo <file>src/main.c</file> desde la pestaÃa <gui>Proyecto</gui> o desde "
+"<gui>Archivo</gui>. Anjuta lo habrà rellenado con algo de cÃdigo GTK+ bÃsico "
+"de sus plantillas. Ya que està creando un proyecto WebKit, primero debe "
+"incluir las cabeceras de WebKit. DespuÃs de la lÃnea que incluye <code>gtk/"
+"gtk.h</code>, aÃada la siguiente lÃnea:"
+
+#: C/message-board.c.page:76(code)
+#, no-wrap
+msgid "#include &lt;webkit/webkit.h&gt;"
+msgstr "#include &lt;webkit/webkit.h&gt;"
 
-#~ msgid ""
-#~ "The following code segment contains many of the defines and variables we "
-#~ "will be using in the following sections. Use this as a reference for "
-#~ "later sections. Copy this code to the beginning of <file>src/main.c</"
-#~ "file>:"
-#~ msgstr ""
-#~ "El siguiente fragmento de cÃdigo contiene muchas definiciones y variables "
-#~ "que se usarÃn en las siguientes secciones. Ãselo como referencia para las "
-#~ "prÃximas secciones. Copie este cÃdigo al principio de <file>src/main.c</"
-#~ "file>:"
+#: C/message-board.c.page:78(p)
+msgid ""
+"Verify that everything works by building what you have so far. Click "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>. The first time you build, "
+"you will be asked for some configure options. Just accept the defaults and "
+"click <gui>Execute</gui>."
+msgstr ""
+"Verifique que todo funciona construyendo lo que tiene hasta ahora. Pulse "
+"<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> o "
+"simplemente pulse <keyseq><key>MayÃs</key><key>F7</key></keyseq>. La primera "
+"vez que construya, se le pedirÃn algunas opciones de configuraciÃn. "
+"Simplemente acepte los valores predeterminados y pulse <gui>Ejecutar</gui>."
 
-#~ msgid "Jumping into the code"
-#~ msgstr "Saltar dentro del cÃdigo"
+#: C/message-board.c.page:84(p)
+msgid ""
+"You should now be able to run the program. Click <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> or just press <key>F3</key>. You should see "
+"an empty window appear."
+msgstr ""
+"Ahora deberÃa poder ejecutar el programa. Pulse <guiseq><gui>Ejecutar</"
+"gui><gui>Ejecutar</gui></guiseq> o simplemente pulse <key>F3</key>. DeberÃa "
+"ver aparecer una ventana vacÃa."
 
-#~ msgid ""
-#~ "We will start by taking a look at the <code>main()</code> function as a "
-#~ "whole. Then we'll discuss the other code sections in detail. Change the "
-#~ "<file>src/main.c</file> to contain this <code>main()</code> function. You "
-#~ "can delete the <code>create_window()</code> function as we don't need it "
-#~ "in this example."
-#~ msgstr ""
-#~ "Se empezarà echando un vistazo a la funciÃn <code>main()</code> completa. "
-#~ "Luego se verà el resto de secciones del cÃdigo en detalle. Cambie el "
-#~ "archivo <file>src/main.c</file> para que contenga la funciÃn <code>main()"
-#~ "</code>. Puede eliminar la funciÃn <code>create_window()</code>, ya que "
-#~ "no se usa en este ejemplo."
+#: C/message-board.c.page:90(title)
+msgid "Lay out your window and web view"
+msgstr "La disposiciÃn de la ventana y la vista web"
 
-#~ msgid ""
-#~ "Line 4: <code>ClutterColor</code> is defined by setting the red, green, "
-#~ "blue and transparency (alpha) values. The values range from 0-255. For "
-#~ "transparency a value of 255 is opaque."
-#~ msgstr ""
-#~ "LÃnea 4: <code>ClutterColor</code> se define configurando los valores de "
-#~ "rojo, verde, azul y de transparencia (alfa). Los valores van de 0 a 255. "
-#~ "Para la transparencia, el valor 255 es opaco."
+#: C/message-board.c.page:92(p)
+msgid ""
+"Now that you can show a window, it's time to start working with WebKit. For "
+"this tutorial, you'll create a text entry and a web view and pack them both "
+"into a window. Find the function <code>create_window</code> and replace it "
+"with the following:"
+msgstr ""
+"Ahora que puede mostrar una ventana, es el momento de empezar a trabajar con "
+"WebKit. Para este tutorial, se crearà una entrada de texto y una vista web y "
+"ambas se empaquetarÃn en una ventana. Busque la funciÃn <code>create_window</"
+"code> y reemplÃcela con lo siguiente"
 
-#~ msgid ""
-#~ "Line 7: You must initialize Clutter. If you forget to do this, you will "
-#~ "get very strange errors. Be warned."
-#~ msgstr ""
-#~ "LÃnea 7: debe inicializar Clutter. Si olvida hacerlo, obtendrà mensajes "
-#~ "muy extraÃos. Queda advertido."
+#: C/message-board.c.page:132(p)
+msgid ""
+"You first create a <code>GtkWindow</code> object and set its title and "
+"default size. You also connect the <code>gtk_main_quit</code> function to "
+"the <code>delete-event</code> signal. The <code>delete-event</code> signal "
+"is emitted when the window is closed. The <code>gtk_main_quit</code> "
+"function is part of GTK, and it quits the application."
+msgstr ""
+"Primero cree un objeto <code>GtkWindow</code> y establezca su tÃtulo y su "
+"tamaÃo predeterminado. TambiÃn puede conectar la funciÃn "
+"<code>gtk_main_quit</code> a la seÃal <code>delete-event</code>. La seÃal "
+"<code>delete-event</code> se emite cuando se cierra la ventana. La funciÃn "
+"<code>gtk_main_quit</code> es parte de GTK+, y sale de la aplicaciÃn."
 
-#~ msgid ""
-#~ "Lines 9â11: Here we get the default <code>ClutterStage</code> that was "
-#~ "provided by <code>clutter_init</code>. We then set the size using the "
-#~ "defines from the previous section and the address of the "
-#~ "<code>ClutterColor</code> we just defined."
-#~ msgstr ""
-#~ "LÃneas 9â11: aquà es donde se obtiene el <code>ClutterStage</code> "
-#~ "predeterminado que <code>clutter_init</code> proporcionÃ. Entonces se "
-#~ "establece el tamaÃo usando el definido en la secciÃn anterior y las "
-#~ "direcciones del <code>ClutterColor</code> que ya estÃn definidas."
+#: C/message-board.c.page:138(p)
+msgid ""
+"You then create a vertical box and add it to the window. A window can only "
+"hold a single child widget, so you need to use a box to add multiple "
+"widgets. The second argument to <code>gtk_box_new</code> sets the amount of "
+"padding (in pixels) between each child, and the next line puts a six-pixel "
+"border around the entire thing."
+msgstr ""
+"Ahora cree una caja vertical y aÃÃdala a la ventana. Una ventana sÃlo puede "
+"contener un widget hijo, por lo que necesitarà una caja para aÃadir varios "
+"widgets. El segundo argumento de <code>gtk_box_new</code> configura la "
+"cantidad de espacio (en pÃxeles) entre cada hijo, y la siguiente lÃnea aÃade "
+"un borde de seis pÃxeles alrededor de la cosa completa."
 
-#~ msgid ""
-#~ "A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> "
-#~ "onto which other <code>ClutterActor</code>s are placed."
-#~ msgstr ""
-#~ "Un <code>ClutterStage</code> es el nivel superior de un "
-#~ "<code>ClutterActor</code> en el que se ubican otros <code>ClutterActor</"
-#~ "code>."
+#: C/message-board.c.page:144(p)
+msgid ""
+"You next create a <code>GtkEntry</code> object and pack it into the box. The "
+"third and fourth arguments to <code>gtk_box_pack_start</code> specify that "
+"the entry shouldn't take up any extra space the box has available. The "
+"fourth argument is the amount of padding you want around the entry. In this "
+"case, you set the padding to zero, because you're allowing the box to handle "
+"all the padding."
+msgstr ""
+"DespuÃs, cree un objeto <code>GtkEntry</code> y empaquÃtelo en una caja. Los "
+"argumentos tercero y cuarto de <code>gtk_box_pack_start</code> especifican "
+"que la entrada no deberÃa coger ningÃn espacio adicional que tenga la caja. "
+"El cuarto es la cantidad de relleno que quiere alrededor de la entrada. En "
+"este caso, se establece el relleno a cero, ya que se està permitiendo que la "
+"caja maneje todo el relleno."
+
+#: C/message-board.c.page:151(p)
+msgid ""
+"Before you add a web view, you have to create a scrolled window to put it "
+"inside of. The scrolled window will place scrollbars on the right and bottom "
+"when necessary, and prevent your web view from filling your entire screen. "
+"This time, you pass <code>TRUE</code> and <code>TRUE</code> to "
+"<code>gtk_box_pack_start</code> to allow the scrolled window (and thus, the "
+"web view) to use any extra space available in the box."
+msgstr ""
+"Antes de aÃadir la vista web debe crear una ventana desplazada para ponerla "
+"dentro. La ventana desplazada contendrà barras de desplazamiento a la "
+"derecha y abajo cuando sea necesario, y evitarà que la vista web abarque la "
+"pantalla entera. En este momento, se pasa <code>TRUE</code> y <code>TRUE</"
+"code> a <code>gtk_box_pack_start</code> para permitir que la ventana "
+"desplazada (y por lo tanto, la vista web) usen el espacio adicional "
+"disponible en la caja."
+
+#: C/message-board.c.page:158(p)
+msgid ""
+"Finally, you create a <code>WebKitWebView</code> and add it to the scrolled "
+"window. Then load a very basic HTML page into the web view by calling "
+"<code>webkit_web_view_load_string</code> with the following arguments:"
+msgstr ""
+"Finalmente, cree una <code>WebKitWebView</code> y aÃÃdala a la ventana "
+"desplazada. Entonces cargue una pÃgina HTML muy simple en la vista web "
+"llamando a <code>webkit_web_view_load_string</code> con los siguientes "
+"argumentos:"
 
-#~ msgid ""
-#~ "Line 12: Here we call our function for getting the image file paths. "
-#~ "We'll look at this in a bit."
-#~ msgstr ""
-#~ "LÃnea 12: aquà se llama a la funciÃn para obtener las rutas de las "
-#~ "imÃgenes. Esto se verà en breve."
+#: C/message-board.c.page:164(code)
+#, no-wrap
+msgid "WEBKIT_WEB_VIEW (view)"
+msgstr "WEBKIT_WEB_VIEW (view)"
 
-#~ msgid ""
-#~ "Lines 14â26: This is where we set up the <code>ClutterActor</code>s, load "
-#~ "the images and place them into their spot in the image wall. We will look "
-#~ "at this in detail in the next section."
-#~ msgstr ""
-#~ "LÃneas 14â26: aquà es donde se configuran los <code>ClutterActor</code>, "
-#~ "se cargan las imÃgenes y se colocan en su sitio en el mural de imÃgenes. "
-#~ "Esto se verà con mÃs detalle en la siguiente secciÃn."
+#: C/message-board.c.page:165(p)
+msgid ""
+"The view itself. Because <code>view</code> is typed as a <code>GtkWidget*</"
+"code>, you have to use <code>WEBKIT_WEB_VIEW</code> to safely cast the "
+"object."
+msgstr ""
+"La vista en sÃ. Ya que <code>view</code> es de tipo <code>GtkWidget*</code>, "
+"debe usar <code>WEBKIT_WEB_VIEW</code> para convertir el tipo del objeto con "
+"seguridad."
 
-#~ msgid ""
-#~ "Line 29: Show the stage and <em>all its children</em>, meaning our images."
-#~ msgstr ""
-#~ "LÃnea 29: mostrar el escenario y <em>todos sus hijos</em>, es decir, las "
-#~ "imÃgenes."
+#: C/message-board.c.page:170(code)
+#, no-wrap
+msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
+msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
 
-#~ msgid "Line 32: Start the Clutter main loop."
-#~ msgstr "LÃnea 32: iniciar el bucle principal de Clutter."
+#: C/message-board.c.page:171(p)
+msgid "The simplest HTML file you could possibly write."
+msgstr "El archivo HTML mÃs simple que pueda escribir."
 
-#~ msgid "Setting up our image actors"
-#~ msgstr "Configurar los actores de imagen"
+#: C/message-board.c.page:174(code)
+#, no-wrap
+msgid "\"text/html\""
+msgstr "\"text/html\""
 
-#~ msgid ""
-#~ "In Clutter, an actor is the most basic visual element. Basically, "
-#~ "everything you see is an actor."
-#~ msgstr ""
-#~ "En Clutter, un actor es el elemento visual mÃs simple. BÃsicamente, todo "
-#~ "lo que ve es un actor."
+#: C/message-board.c.page:175(p)
+msgid ""
+"The MIME type of the content you provided. In this case, you're using plain "
+"HTML."
+msgstr ""
+"El tipo MIME del contenido que ha proporcionado. En este caso, està usando "
+"HTML plano."
 
-#~ msgid ""
-#~ "In this section, we are going to take a closer look at the loop used for "
-#~ "setting up the <code>ClutterActor</code>s that will display our images."
-#~ msgstr ""
-#~ "En esta secciÃn, se va a mirar mÃs detenidamente el bucle usado para "
-#~ "configurar los <code>ClutterActor</code> que mostrarÃn las imÃgenes."
+#: C/message-board.c.page:179(code)
+#, no-wrap
+msgid "\"UTF-8\""
+msgstr "\"UTF-8\""
 
-#~ msgid ""
-#~ "Line 5: Here we want to get the path at the <var>n</var>th location in "
-#~ "the <code>GSList</code> that is holding our image path names. The <var>n</"
-#~ "var>th position is calculated based on <code>row</code> and <code>col</"
-#~ "code>. The return value is a pointer to a <code>GSList</code> which is "
-#~ "just a node in the list. We will use this to get the actual path in the "
-#~ "next line. The first parameter is a pointer to the head of the list."
-#~ msgstr ""
-#~ "LÃnea 5: aquà se quiere obtener la ruta a la ubicaciÃn <var>n</var>-Ãsima "
-#~ "en la <code>GSList</code> que contiene los nombres de las rutas de las "
-#~ "imÃgenes. La <var>n</var>-Ãsima posiciÃn se calcula basÃndose en "
-#~ "<code>row</code> y <code>col</code>. El valor de retorno es un puntero a "
-#~ "<code>GSList</code> que es simplemente un nodo en la lista. Esto se usarà "
-#~ "para obtener la ruta actual en la siguiente lÃnea. El primer parÃmetro es "
-#~ "un puntero a la cabecera de la lista."
+#: C/message-board.c.page:180(p)
+msgid ""
+"The character encoding of the content you provided. Although you only used "
+"ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used as the "
+"default encoding throughout the GNOME platform."
+msgstr ""
+"La codificaciÃn de caracteres del contenido que ha proporcionado. Aunque "
+"sÃlo use caracteres ASCII, es una buena idea especificar UTF-8, ya que es la "
+"codificaciÃn que se usa de manera predeterminada en toda la plataforma GNOME."
 
-#~ msgid ""
-#~ "Line 6: This is where we actually create the <code>ClutterActor</code> "
-#~ "and place the image into the actor. The first argument is the path which "
-#~ "we access through our <code>GSList</code> node. The second argument is "
-#~ "for error reporting but we are ignoring that to keep things short."
-#~ msgstr ""
-#~ "LÃnea 6: aquà es donde actualmente se crea el <code>ClutterActor</code> y "
-#~ "se ubica la imagen en el actor. El primer argumento es la ruta con la que "
-#~ "se acceder al nodo de la <code>GSList</code>. El segundo argumento es "
-#~ "para informar de un error, pero se ignora para simplificar."
+#: C/message-board.c.page:185(code)
+#, no-wrap
+msgid "NULL"
+msgstr "NULL"
 
-#~ msgid "Line 7: We'll look at this function in a later section."
-#~ msgstr "LÃnea 7: està funciÃn se verà en una secciÃn posterior."
+#: C/message-board.c.page:186(p)
+msgid ""
+"The base URI. You don't need it in this simple example, but you might want "
+"to provide a <sys>file:</sys> URI if you add images or other features where "
+"you want to use relative URI references."
+msgstr ""
+"El URI base. En este ejemplo no se necesita, pero puede querer proporcionar "
+"un URI <sys>file:</sys> si aÃade imÃgenes u otras caracterÃsticas cuando "
+"quiera usar referencias a URI relativos."
 
-#~ msgid ""
-#~ "Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
-#~ "container. It also assumes ownership of the <code>ClutterActor</code> "
-#~ "which is something you'll want to look into as you get deeper into GNOME "
-#~ "development. See the <link href=\"http://library.gnome.org/devel/gobject/";
-#~ "stable/gobject-memory.html\"><code>GObject</code> documentation</link> "
-#~ "for the gory details."
-#~ msgstr ""
-#~ "LÃnea 8: esto aÃade el <code>ClutterActor</code> al escenario, que es un "
-#~ "contenedor. Asume el propietario del <code>ClutterActor</code>, que es "
-#~ "algo que querrà cuando profundice en el desarrollo de GNOME. Para obtener "
-#~ "mÃs detalles, consulte la <link href=\"http://library.gnome.org/devel/";
-#~ "gobject/stable/gobject-memory.html\">documentaciÃn de <code>GObject</"
-#~ "code></link>."
+#: C/message-board.c.page:193(p)
+msgid ""
+"Every time you add a widget, you have to call <code>gtk_widget_show</code> "
+"on it for it to be visible. If you call <code>gtk_widget_show_all</code> on "
+"a container widget like a <code>GtkBox</code>, GTK+ will automatically show "
+"all the widgets inside the container, to any depth. Sometimes you don't want "
+"to call <code>gtk_widget_show_all</code>, such as when you want to "
+"dynamically hide and show some widgets in response to events."
+msgstr ""
+"Cada vez que aÃade un widget, debe llamar a la funciÃn "
+"<code>gtk_widget_show</code> sobre Ãl para hacerlo visible. Si llama a "
+"<code>gtk_widget_show</code> en un contenedor de widgets como <code>GtkBox</"
+"code>, GTK+ mostrarà automÃticamente todos los widgets del contenedor, en "
+"cualquier nivel. Algunas veces no se quiere llamar a la funciÃn "
+"<code>gtk_widget_show_all</code>, como cuando se quieren ocultar o mostrar "
+"dinÃmicamente algunos objetos en respuesta a determinados eventos."
+
+#: C/message-board.c.page:201(p)
+msgid ""
+"Finally, you have to call <code>gtk_widget_show_all</code> on the box. "
+"Otherwise, none of the widgets you created will be visible. (The window is "
+"shown in the <code>main</code> function with <code>gtk_widget_show</code>.)"
+msgstr ""
+"Finalmente, debe llamar a la funciÃn <code>gtk_widget_show_all</code> sobre "
+"la caja. De otro modo, ninguno de los widgets que haya creado serà visible. "
+"(La ventana se muestra en la funciÃn <code>main</code> con "
+"<code>gtk_widget_show</code>.)"
 
-#~ msgid ""
-#~ "Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> "
-#~ "so that we can later iterate over the <code>ClutterActor</code>s."
-#~ msgstr ""
-#~ "LÃnea 9: esto aÃade el <code>ClutterActor</code> a una <code>GSList</"
-#~ "code> por lo que luego se podrà iterar sobre los <code>ClutterActor</"
-#~ "code>."
+#: C/message-board.c.page:205(p)
+msgid ""
+"Build and run the message board again. You should see a window with a text "
+"entry and a web view. It doesn't do anything yet because the text entry and "
+"the web view don't know anything about each other."
+msgstr ""
+"Construya y ejecute el cuadro de mensajes de nuevo. DeberÃa ver una ventana "
+"con una entrada de texto y una vista web. TodavÃa no hace nada porque la "
+"entrada de texto y la vista web no saben nada la una acerca de la otra."
 
-#~ msgid ""
-#~ "Interesting to note is that we want to prepend the <code>ClutterActor</"
-#~ "code>s rather than append so that we avoid traversing the list upon each "
-#~ "insertion. You will often see <code>g_slist_prepend</code> followed by "
-#~ "<code>g_slist_reverse</code> because it faster than inserting many "
-#~ "objects at the end of the list."
-#~ msgstr ""
-#~ "Es interesante tener en cuenta que se prefiere anteponer los "
-#~ "<code>ClutterActor</code> en lugar de adjuntarlos, lo que evita atravesar "
-#~ "la lista en cada inserciÃn. A menudo vera <code>g_slist_prepend</code> "
-#~ "seguido de <code>g_slist_reverse</code>, ya que es mÃs rÃpido que "
-#~ "insertar varios objetos al final de la lista."
+#: C/message-board.c.page:211(title)
+msgid "Hook up signals"
+msgstr "Conectar seÃales"
 
-#~ msgid "Loading the images"
-#~ msgstr "Cargar las imÃgenes"
+#: C/message-board.c.page:213(p)
+msgid ""
+"Now you want to make the message board actually <em>do</em> something when "
+"you enter text into the text entry. To do this, connect a callback function "
+"to the <code>activate</code> signal of <code>entry</code>. GTK+ emits the "
+"<code>activate</code> signal whenever the user presses <key>Enter</key> in "
+"the entry. Add the following into <code>create_window</code>, anywhere after "
+"both <code>entry</code> and <code>view</code> have been defined:"
+msgstr ""
+"Ahora se quiere hacer que el cuadro <em>haga</em> algo cuando se introduce "
+"texto en la entrada de texto. Para hacer esto, conecte una funciÃn de "
+"retorno de la llamada a la seÃal <code>activate</code> de <code>entry</"
+"code>. GTK+ emite la seÃal <code>activate</code> cuando el usuario pulsa "
+"<key>Intro</key> en la entrada. AÃada lo siguiente en <code>create_window</"
+"code>, en cualquier lugar despuÃs de que <code>entry</code> y <code>view</"
+"code> se hayan definido:"
+
+#: C/message-board.c.page:224(p)
+msgid ""
+"You then have to actually define <code>entry_activate_cb</code>. Define it "
+"as follows, anywhere above <code>create_window</code>:"
+msgstr ""
+"Entonces se debe definir <code>entry_activate_cb</code>. DefÃnalo como "
+"quiera, en cualquier lugar por encima de <code>create_window</code>:"
 
-#~ msgid ""
-#~ "Let's take a short break from Clutter to see how we can get the file "
-#~ "names from our image directory."
-#~ msgstr ""
-#~ "TÃmese un pequeÃo descanso de Clutter para ver cÃmo se pueden obtener los "
-#~ "nombres de archivos desde la carpeta de imÃgenes."
+#: C/message-board.c.page:247(p)
+msgid ""
+"The first thing you do is get a <code>WebKitDOMDocument</code> object that "
+"represents the HTML document displayed in <code>view</code>. The DOM classes "
+"and methods in WebKit allow you to inspect and manipulate the HTML document, "
+"and work very similarly to the DOM APIs you might already know from "
+"JavaScript."
+msgstr ""
+"Lo primero que hacer es obtener un objeto <code>WebKitDOMDocument</code> que "
+"representa el documento HTML mostrado en la <code>view</code>. Las clases "
+"DOM y los mÃtodos de WebKit le permiten inspeccionar y manipular el "
+"documento HTML, y trabajar de manera similar a las API DOM que ya deberÃa "
+"conocer de JavaScript."
 
-#~ msgid ""
-#~ "Lines 5 and 12: This opens our directory or, if an error occured, returns "
-#~ "after printing an error message."
-#~ msgstr ""
-#~ "LÃneas 5 y 12: esto abre la carpeta o, si ocurre un error, termina "
-#~ "despuÃs de mostrar un mensaje de error."
+#: C/message-board.c.page:253(p)
+msgid ""
+"Once you have the document, you want to get the <code>body</code> element so "
+"that you can add <code>div</code> elements to it. The "
+"<code>webkit_dom_document_query_selector</code> function lets you find an "
+"element in the document using CSS selectors. This keeps you from having to "
+"write tedious loops to traverse the document."
+msgstr ""
+"Una vez que tenga el documento, querrà obtener el elemento <code>body</code> "
+"para poder aÃadirle elementos <code>div</code>. La funciÃn "
+"<code>webkit_dom_document_query_selector</code> le permite encontrar un "
+"elemento en el documento usando selectores CSS. Esto le evita tener que "
+"escribir bucles tediosos para recorrer el documento."
+
+#: C/message-board.c.page:260(cite) C/message-board.c.page:272(cite)
+#: C/message-board.c.page:324(cite) C/message-board.c.page:381(cite)
+#: C/message-board.c.page:389(cite)
+msgid "shaunm"
+msgstr "shaunm"
+
+#: C/message-board.c.page:261(p)
+msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
+msgstr "NO TRADUCIR"
+
+#: C/message-board.c.page:264(p)
+msgid ""
+"Next, you create a new <code>div</code> element to hold the message. Every "
+"element you create has to be attached to a document, so the function to "
+"create an element takes the <code>WebKitDOMDocument</code> as its first "
+"arguments. You then set the text content of the element to the contents of "
+"the text entry. Because <code>gtk_entry_get_text</code> returns a "
+"<code>const gchar*</code>, you don't have to free the result."
+msgstr ""
+"Ahora, cree un elemento <code>div</code> que contenga el mensaje. Cada "
+"elemento que cree se debe adjuntar se debe adjuntar a un documento, por lo "
+"que la funciÃn para crear un elemento toma el <code>WebKitDOMDocument</code> "
+"como primer argumento. Debe entonces establecer el contenido del elemento "
+"con el contenido de la entrada de texto. Dado que <code>gtk_entry_get_text</"
+"code> devuelve un <code>const gchar*</code>, no tiene que liberar el "
+"resultado."
+
+#: C/message-board.c.page:273(p)
+msgid ""
+"Not passing the GError**, but we should give it a quick mention and link to "
+"somewhere that explains how GError-handling works."
+msgstr "NO TRADUCIR"
 
-#~ msgid ""
-#~ "Lines 14â23: The first line gets another file name from the <code>GDir</"
-#~ "code> we opened earlier. If there was an image file (which we check by "
-#~ "looking at its extension, \".png\" or \".jpg\") in the directory we "
-#~ "proceed to prepend the image directory path to the filename and prepend "
-#~ "that to the list we set up earlier. Lastly we attempt to get the next "
-#~ "path name and reenter the loop if another file was found."
-#~ msgstr ""
-#~ "LÃneas 14â23: la primera lÃnea obtiene otro nombre de archivo del "
-#~ "<code>GDir</code> abierto anteriormente. Si hay un archivo de imagen (se "
-#~ "comprueba mirando si la extensiÃn es Â.png o Â.jpgÂ) en la carpeta, se "
-#~ "procede a anteponer la ruta de la carpeta de la imagen al nombre del "
-#~ "archivo y se antepone en la lista creada anteriormente. Por Ãltimo, se "
-#~ "intenta obtener la siguiente ruta y se vuelve a entrar en el bucle si se "
-#~ "encuentra otro archivo."
+#: C/message-board.c.page:277(p)
+msgid ""
+"Finally, you append the new <code>div</code> element to the body and clear "
+"out the text entry so you can type something new. Build and run the program "
+"again and test it for yourself."
+msgstr ""
+"Finalmente, aÃada el nuevo elemento <code>div</code> al cuerpo y limpie la "
+"salida de texto para poder escribir algo nuevo. Construya y ejecute el "
+"programa otra vez y pruÃbelo por su cuenta."
 
-#~ msgid "Set up the actors"
-#~ msgstr "Configurar los actores"
+#: C/message-board.c.page:284(title)
+msgid "Make it look better with CSS"
+msgstr "Mejorar el aspecto con CSS"
 
-#~ msgid ""
-#~ "We now take a look at the sizing and positioning of <code>ClutterActor</"
-#~ "code>s and also readying the <code>ClutterActor</code> for user "
-#~ "interaction."
-#~ msgstr ""
-#~ "Eche un vistazo al tamaÃo y al posicionamiento de los <code>ClutterActor</"
-#~ "code> y a cÃmo se deja listo el <code>ClutterActor</code> para la "
-#~ "interacciÃn del usuario."
+#: C/message-board.c.page:286(p)
+msgid ""
+"At this point, your program is completely functional, but not very pretty. "
+"You can style the message display with CSS, just like you can with any other "
+"HTML page. There are many ways you could attach some CSS to the page: You "
+"could add it in the initial HTML document. You could inline it in the "
+"<code>style</code> attribute of the <code>div</code> elements. You could "
+"even programmatically construct it using the DOM APIs."
+msgstr ""
+"En este punto, su programa es completamente funcional, pero no es muy "
+"atractivo. Puede aÃadir estilos a la visualizaciÃn de los mensajes con CSS, "
+"igual que puede hacer con una pÃgina web. Hay muchas maneras de incluir un "
+"CSS en la pÃgina: puede aÃadirlo al documento HTML inicial, aÃadirlo en "
+"lÃnea usando el atributo <code>style</code> de los elementos <code>div</"
+"code> o puede incluso construirlo con programaciÃn usando las API DOM."
+
+#: C/message-board.c.page:293(p)
+msgid ""
+"In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
+"code> property of the <code>WebKitWebSetting</code> object attached to your "
+"web view. In a more complete application, you would want to save and load "
+"your HTML file. Keeping the style information outside the actual HTML means "
+"that you can change the styling completely within your application, without "
+"having to change users' files. You would normally just install a file along "
+"with your application, but just to keep everything in one file for this "
+"demo, we'll use a trick called a data URI. First, define the CSS as a static "
+"string near the top of your file."
+msgstr ""
+"En este tutorial se adjuntarà el CSS usando la propiedad <code>user-"
+"stylesheet-uri</code> del objeto <code>WebKitWebSetting</code> empotrado en "
+"la vista web. En una aplicaciÃn mÃs completa, se podrÃa querer guardar y "
+"cargar el archivo HTML. Mantener la informaciÃn de estilo fuera del HTML "
+"actual significa que se puede cambiar el estilo completo de la aplicaciÃn "
+"sin tener que cambiar los archivos del usuario. Normalmente se instala un "
+"archivo junto con la aplicaciÃn, pero simplemente para mantener todo en un "
+"archivo en esta demostraciÃn, se usarà un truco llamado URI de datos. En "
+"primer lugar, se define el CSS como una cadena estÃtica cerca del principio "
+"del archivo."
+
+#: C/message-board.c.page:315(p)
+msgid ""
+"All you have in this example are <code>div</code> elements inside a "
+"<code>body</code> element. If you created more complicated HTML, you could "
+"use whatever CSS is necessary. In fact, if you're comfortable with CSS, you "
+"should trying changing this to something you like better."
+msgstr ""
+"Todo lo que tiene en este ejemplo son elementos <code>div</code> dentro de "
+"un elemento <code>body</code>. Si ha creado HTML mÃs complejo, puede usar "
+"cualquier CSS que sea necesario. Si se siente cÃmodo usando CSS deberÃa "
+"intentar cambiar esto por algo que le guste mÃs."
 
-#~ msgid ""
-#~ "Line 7: Setting an actor reactive means that it reacts to events, such as "
-#~ "<code>button-press-event</code> in our case. For Photo Wall, all "
-#~ "<code>ClutterActor</code>s in the wall should initially be reactive."
-#~ msgstr ""
-#~ "LÃnea 7: configurar un actor como Âreactivo significa que reacciona a los "
-#~ "eventos tales como <code>button-press-event</code> en nuestro caso. Para "
-#~ "el mural de fotos, todos los <code>ClutterActor</code> del mural deben "
-#~ "ser inicialmente reactivos."
+#: C/message-board.c.page:320(p)
+msgid ""
+"To apply the CSS, you set the <code>user-stylesheet-uri</code> in the "
+"<code>create_window</code> function, anywhere after <code>view</code> has "
+"already been defined."
+msgstr ""
+"Para aplicar el CSS, configure la <code>user-stylesheet-uri</code> en la "
+"funciÃn <code>create_window</code>, en cualquier lugar despuÃs de que "
+"<code>view</code> se haya definido."
 
-#~ msgid ""
-#~ "Line 9â12: Now we connect the <code>button-press-event</code> to the "
-#~ "<code>actor_clicked_cb</code> callback which we will look at next."
-#~ msgstr ""
-#~ "LÃneas 9â12: ahora se conecta el evento <code>button-press-event</code> "
-#~ "al retorno de la llamada <code>actor_clicked_cb</code> que veremos mÃs "
-#~ "adelante."
+#: C/message-board.c.page:324(p)
+msgid "g_base64_encode has bad args"
+msgstr "g_base64_encode tiene argumentos no vÃlidos"
 
-#~ msgid ""
-#~ "At this point we've got a wall of images that are ready to be viewed."
-#~ msgstr "En este punto tiene un mural de fotos que està listo para verse."
+#: C/message-board.c.page:336(p)
+msgid ""
+"Also, make sure to add variable declarations for <code>tmp</code> and "
+"<code>css</code> to the top of <code>create_window</code>."
+msgstr ""
+"AsegÃrese de aÃadir declaraciones de variables para <code>tmp</code> y "
+"<code>css</code> a la parte superior de <code>create_window</code>."
 
-#~ msgid "Reacting to the clicks"
-#~ msgstr "Reaccionar a las pulsaciones"
+#: C/message-board.c.page:339(code)
+#, no-wrap
+msgid ""
+"\n"
+"gchar *tmp, *css;\n"
+msgstr ""
+"\n"
+"gchar *tmp, *css;\n"
 
-#~ msgid ""
-#~ "Lines 1â4: We have to make sure our callback function matches the "
-#~ "signature required for the <code>button_clicked_event</code> signal. For "
-#~ "our example, we will only use the first argument, the <code>ClutterActor</"
-#~ "code> that is actually clicked."
-#~ msgstr ""
-#~ "LÃneas 1â4: hay que asegurarse de que la funciÃn de retorno de llamada "
-#~ "coincide con la firma requerida para la seÃal <code>button_clicked_event</"
-#~ "code>. En este ejemplo, sÃlo se usarà el primer argumento, el "
-#~ "<code>ClutterActor</code> pulsado actualmente."
+#: C/message-board.c.page:343(p)
+msgid ""
+"A data URI starts with <sys>data:</sys> and some information about the "
+"content type and how the data is encoded. The actual data follows after a "
+"comma, in this case encoded in Base64. Unlike other URI schemes like "
+"<sys>http:</sys>, <sys>ftp:</sys>, and <sys>file:</sys>, the <sys>data:</"
+"sys> URI scheme doesn't specify where to find a file to load. Rather, it "
+"gives the entire contents of the file."
+msgstr ""
+"Un URI de datos empieza por <sys>data:</sys> y cierta informaciÃn sobre el "
+"tipo de contenido y cÃmo se codifican los datos. Los datos reales siguen "
+"despuÃs de una coma, en este caso, codificados en Base64. A diferencia de "
+"otros esquemas de URI como <sys>http:</sys>, <sys>ftp:</sys>, y <sys>file:</"
+"sys>, the <sys>data:</sys>, el esquema del URI no especifica dÃnde encontrar "
+"un archivo que cargar. En vez de eso, ofrece el contenido completo del "
+"archivo."
+
+#: C/message-board.c.page:350(p)
+msgid ""
+"The code above first encodes your CSS definitions in Base64, then combines "
+"that with a fixed string to create a data URI. The <code>g_strconcat</code> "
+"function can take any number of string arguments and concatenate them all "
+"together, so you have to pass <code>NULL</code> as the final argument so it "
+"knows when to stop. And don't forget to free those temporary strings after "
+"you set the stylesheet property."
+msgstr ""
+"El cÃdigo anterior primero codifica las definiciones CSS en Base64, y luego "
+"las combina con una cadena fija para crear una URI de datos. La funciÃn "
+"<code>g_strconcat</code> puede tomar cualquier nÃmero de argumentos de "
+"cadena y concatenarlos todos juntos, por lo que tiene que pasar <code>NULL</"
+"code> como argumento final para que sepa dÃnde parar. No olvide liberar esas "
+"cadenas temporales despuÃs de establecer la propiedad de la hoja de estilos."
+
+#: C/message-board.c.page:357(p)
+msgid ""
+"Build and run the program again. It should now work exactly the same as at "
+"the end of the last section, except the messages will be nicely styled with "
+"a border and a subtle background gradient."
+msgstr ""
+"Construya y ejecute el programa de nuevo. DeberÃa funcionar exactamente "
+"igual que al final de la Ãltima secciÃn, excepto que los mensajes tendrÃn "
+"estilos con un borde y un degradado de fondo sutil."
 
-#~ msgid ""
-#~ "A few words on the arguments we are not using in this example. The "
-#~ "<code>ClutterEvent</code> is different depending on what event is being "
-#~ "handled. For example, a key event produces a <code>ClutterKeyEvent</code> "
-#~ "from which you can get the key being pressed among other information. For "
-#~ "mouse click events you get a <code>ClutterButtonEvent</code> from which "
-#~ "you can get the <code>x</code> and <code>y</code> values. See the Clutter "
-#~ "documentation for other <code>ClutterEvent</code> types."
-#~ msgstr ""
-#~ "Unas pocas palabras sobre los argumentos que no se estÃn usando en este "
-#~ "ejemplo. El <code>ClutterEvent</code> es diferente dependiendo de quà "
-#~ "evento se està manejando. Por ejemplo, un evento de clave produce un "
-#~ "<code>ClutterKeyEvent</code> desde el que puede obtener la clave pulsada, "
-#~ "entre otra informaciÃn. Para eventos de pulsaciones del ratÃn, obtiene un "
-#~ "<code>ClutterButtonEvent</code> con el que pueden obtener los valores "
-#~ "<code>x</code> e <code>y</code>. Consulte la documentaciÃn de Clutter "
-#~ "para obtener informaciÃn sobre otros tipos de <code>ClutterEvent</code>."
+#: C/message-board.c.page:363(title)
+msgid "Learn more"
+msgstr "Aprender mÃs"
 
-#~ msgid ""
-#~ "The <code>user_data</code> is what one uses to pass data into the the "
-#~ "function. A pointer to any data type can be passed in. If you need "
-#~ "multiple data to be passed into the callback, you can place the data into "
-#~ "a struct and pass its address in."
-#~ msgstr ""
-#~ "El <code>user_data</code> es lo que se usa para pasar datos a una "
-#~ "funciÃn. Se puede pasar un puntero a cualquier tipo de estructura de "
-#~ "datos. Si necesita pasar varios datos al retorno de la llamada, puede "
-#~ "colocar los datos en una estructura y pasar un puntero a su direcciÃn."
+#: C/message-board.c.page:365(p)
+msgid ""
+"This tutorial showed you how to create a basic application using GTK+ and "
+"WebKit, including showing a document and manipulating its contents. To "
+"create a real application, you probably want to do a little bit more. Try "
+"adding features on your own. Here are a few ideas:"
+msgstr ""
+"Este tutorial le ha mostrado cÃmo crear una aplicaciÃn sencilla usando GTK+ "
+"y WebKit, incluyendo cÃmo mostrar un documento y manipular su contenido. "
+"Para crear una aplicaciÃn real, probablemente quiera hacer algo mÃs. Pruebe "
+"a aÃadir caracterÃsticas usted mismo. Aquà hay algunas ideas:"
 
-#~ msgid ""
-#~ "Line 7: We set up a static flag to track which state we are in: wall mode "
-#~ "or focus mode. We start out in wall mode so no image has focus. Thus, we "
-#~ "set the flag to <code>FALSE</code> initially."
-#~ msgstr ""
-#~ "LÃnea 7: se establece un indicador estÃtico para seguir el estado en el "
-#~ "que se estÃ: modo mural o modo de foco. Se inicia en modo mural, por lo "
-#~ "que ninguna imagen tiene el foco. Por ello, el indicador se establece "
-#~ "inicialmente a <code>FALSE</code>."
+#: C/message-board.c.page:371(p)
+msgid ""
+"If you're comfortable with CSS, try changing the style of the message "
+"display. CSS is easy to get started with, but increasingly more powerful. "
+"There is a wealth of CSS tutorials on the Internet, and just about "
+"everything you can do on the web, you can do in this application."
+msgstr ""
+"Si se siente cÃmo usando CSS, pruebe a cambiar el estilo de la visualizaciÃn "
+"del mensaje. Es fÃcil iniciarse en CSS, pero cada vez es mÃs potente. Hay "
+"una gran cantidad de tutoriales de CSS en Internet, y casi todo lo que se "
+"puede hacer en una pÃgina web, se puede hacer en esta aplicaciÃn."
 
-#~ msgid ""
-#~ "Line 9: This line of code runs a custom function, "
-#~ "<code>foreach_set_focus_state</code>, for each element in our "
-#~ "<code>actor_list</code>, passing it the address to the <code>is_focused</"
-#~ "code> flag. We'll see the definition of the "
-#~ "<code>foreach_set_focus_state</code> function in the next section."
-#~ msgstr ""
-#~ "LÃnea 9: esta lÃnea de cÃdigo ejecuta una funciÃn personalizada, "
-#~ "<code>foreach_set_focus_state</code>, para cada elemento de la "
-#~ "<code>actor_list</code>, pasando la direcciÃn al indicador "
-#~ "<code>is_focused</code>. La definiciÃn de la funciÃn "
-#~ "<code>foreach_set_focus_state</code> se verà en la siguiente secciÃn."
+#: C/message-board.c.page:377(p)
+msgid ""
+"Right now, you lose all your messages whenever you close the message board. "
+"Try saving the HTML contents after each post, and loading the saved file (if "
+"it exists) on startup."
+msgstr ""
+"Ahora mismo, todos los mensajes se pierden al cerras el cuadro de mensajes. "
+"Pruebe a guardar el contenido HTML despuÃs de cada envÃo, y a cargar el "
+"archivo guardado (si existe) al inicio."
 
-#~ msgid ""
-#~ "Lines 13â19: Reaching this code means that one image currently has focus "
-#~ "and we want to return to wall mode. The <code>clutter_actor_animate</"
-#~ "code> function is used to animate a <code>ClutterActor</code>'s property "
-#~ "or properties from the current state(s) to the specified state(s). The "
-#~ "arguments are as follows:"
-#~ msgstr ""
-#~ "LÃneas 13â19: llegar a este cÃdigo significa que actualmente sÃlo una "
-#~ "imagen tiene el foco, y se quiere volver al modo mural. La funciÃn "
-#~ "<code>clutter_actor_animate</code> se usa para animar una o varias "
-#~ "propiedades de un <code>ClutterActor</code> desde su estado actual al "
-#~ "estado especificado. Los argumentos son como sigue:"
+#: C/message-board.c.page:381(p)
+msgid "Link to method to get HTML from DOM and to GIO APIs."
+msgstr "Enlace al mÃtodo para obtener el HTML del DOM y de las API de GIO."
 
-#~ msgid "The address of the <code>ClutterActor</code> to animate"
-#~ msgstr "La direcciÃn del <code>ClutterActor</code> que animar"
+#: C/message-board.c.page:385(p)
+msgid ""
+"If you keep your messages around for a long time, you'll start wondering "
+"when you posted them. Add a timestamp to each message when it's posted. "
+"You'll probably want to create some additional child <code>div</code> "
+"elements with different classes that you can style in the CSS."
+msgstr ""
+"Si guarda sus mensajes durante mucho tiempo, empezarà a preguntarse dÃnde "
+"los escribiÃ. AÃada una marca de tiempo a cada mensaje cuando se envÃa. "
+"Probablemente quiera crear algÃn elemento <code>div</code> hijo adicional "
+"con diferentes clases que puede modelar en el CSS."
 
-#~ msgid ""
-#~ "The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so "
-#~ "that we have a constant speed for animation."
-#~ msgstr ""
-#~ "El modo de animaciÃn que usar. Aquà se ha usado <code>CLUTTER_LINEAR</"
-#~ "code> por lo que se tiene una velocidad constante en la animaciÃn."
+#: C/message-board.c.page:389(p)
+msgid "Link to strftime or something"
+msgstr "Enlace a strftime o algo"
 
-#~ msgid ""
-#~ "The duration of the animation in milliseconds. I've chosen 500 ms for "
-#~ "this example."
-#~ msgstr ""
-#~ "La duraciÃn de la animaciÃn, en milisegundos. Se ha escogido 500 ms para "
-#~ "este ejemplo."
+#: C/message-board.c.page:392(p)
+msgid ""
+"This program keeps messages around forever. Think about ways you could allow "
+"the user to delete messages. Perhaps you want messages to disappear "
+"automatically after they're too old, or after there are a certain number of "
+"messages before them. Or you could add a link in each message to delete it. "
+"You could even override the context menu when you right-click on a message. "
+"These features involve exploring WebKit's DOM API more."
+msgstr ""
+"Este programa guarda los mensajes para siempre. Piense alguna manera para "
+"que el usuario pueda borrar mensajes. Tal vez quiera que los mensajes "
+"desaparezca automÃticamente cuando son muy antiguos o despuÃs de que haya "
+"cierto nÃmero de mensajes por delante. O podrÃa aÃadir un enlace en cada "
+"mensaje para borrarlo. TambiÃn puede omitir el menà contextual cuando pulsa "
+"con el botÃn derecho sobe un mensaje. Esta caracterÃsticas implican explorar "
+"mÃs la API del DOM de WebKit."
 
-#~ msgid ""
-#~ "The remaining arguments are property/value pairs. Here we want to set the "
-#~ "<code>x</code> value to the starting <code>x</code> value this "
-#~ "<code>ClutterActor</code> was at before being brought into focus."
-#~ msgstr ""
-#~ "El resto de argumentos son parejas propiedad/valor. Aquà se quiere "
-#~ "establecer el valor <code>x</code> al valor <code>x</code> inicial en el "
-#~ "que estaba el <code>ClutterActor</code> antes de darle el foco."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/magic-mirror.vala.page:39(None)
+msgid "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+msgstr ""
+"@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
 
-#~ msgid ""
-#~ "The last argument must always be <code>NULL</code> to indicate that there "
-#~ "are no more properties to be set."
-#~ msgstr ""
-#~ "El Ãltimo argumento debe ser siempre <code>NULL</code> para indicar que "
-#~ "no hay mÃs propiedades que configurar."
+#: C/magic-mirror.vala.page:8(desc)
+msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+msgstr ""
+"Usar su cÃmara web como un espejo usando el entorno de trabajo GStreamer y "
+"GTK+"
 
-#~ msgid ""
-#~ "The <code>depth</code> property needs a little more explaining. We need "
-#~ "to raise the focused image so that it doesn't slide behind other "
-#~ "<code>ClutterActor</code>s. In this section we are returning it to the "
-#~ "same depth as the others on the wall."
-#~ msgstr ""
-#~ "La propiedad <code>depth</code> necesita un poco mÃs de explicaciÃn. Se "
-#~ "debe elevar la imagen que tiene el foco para que no se deslice por debajo "
-#~ "de otros <code>ClutterActor</code>. En esta secciÃn se està devolviendo a "
-#~ "la misma profundidad que las otras en el mural."
+#: C/magic-mirror.vala.page:12(name)
+msgid "Daniel G. Siegel"
+msgstr "Daniel G. Siegel"
 
-#~ msgid ""
-#~ "Depth also determines which <code>ClutterActor</code>s receive events. A "
-#~ "<code>ClutterActor</code> with a higher depth value receives the click "
-#~ "events and can choose whether the event gets sent to <code>ClutterActor</"
-#~ "code>s under it. We'll see how that works in a few steps."
-#~ msgstr ""
-#~ "La profundidad tambiÃn determina quà <code>ClutterActor</code> recibe "
-#~ "eventos. Un <code>ClutterActor</code> con una profundidad alta recibe los "
-#~ "eventos de las pulsaciones y puede elegir si el evento se envÃa a un "
-#~ "<code>ClutterActor</code> que està debajo de Ãl. Se verà cÃmo funciona "
-#~ "esto en pocos pasos."
+#: C/magic-mirror.vala.page:13(email)
+msgid "dgsiegel gnome org"
+msgstr "dgsiegel gnome org"
 
-#~ msgid ""
-#~ "Line 24: Reaching this line of code means we are currently in the wall "
-#~ "state and are about to give a <code>ClutterActor</code> focus. Here we "
-#~ "save the starting position so that we can return to it later."
-#~ msgstr ""
-#~ "LÃnea 24: llegar a esta lÃnea de cÃdigo significa que actualmente se està "
-#~ "en el modo mural y se va a dar el foco a un <code>ClutterActor</code>. "
-#~ "Aquà se guarda la posiciÃn inicial, por lo que se puede volver a ella mÃs "
-#~ "adelante."
+#: C/magic-mirror.vala.page:21(title)
+msgid "4 Magic Mirror"
+msgstr "4. Espejo mÃgico"
 
-#~ msgid ""
-#~ "Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
-#~ "property to <code>TRUE</code> makes this <code>ClutterActor</code> react "
-#~ "to events. In this focused state the only <code>ClutterActor</code> that "
-#~ "we want to receive events will be the <code>ClutterActor</code> being "
-#~ "viewed. Clicking on the <code>ClutterActor</code> will return it to its "
-#~ "starting position."
-#~ msgstr ""
-#~ "LÃnea 25: establecer la propiedad <code>reactive</code> del "
-#~ "<code>ClutterActor</code> a <code>TRUE</code> hace que este "
-#~ "<code>ClutterActor</code> reaccione a los eventos. En el estado Âcon "
-#~ "focoÂ, el Ãnico <code>ClutterActor</code> que se quiere que reciba "
-#~ "eventos es el <code>ClutterActor</code> que se està viendo. Al pulsar "
-#~ "sobre el <code>ClutterActor</code> volverà a su posiciÃn inicial."
+#: C/magic-mirror.vala.page:24(em)
+msgid ""
+"Your mirror just fell off the wall and broke into a thousand pieces â but "
+"you need a mirror to shave your beard off or add some makeup! You only have "
+"15 minutes left before catching the bus to work. So what can you do?"
+msgstr ""
+"Su espejo se ha caiÌdo al suelo y se ha roto en miles de pedazos; pero "
+"necesita un espejo para afeitarse o para maquillarse. SoÌlo tiene 15 minutos "
+"antes de coger el autobuÌs para ir al trabajo. ÂQueÌ puede hacer?"
 
-#~ msgid ""
-#~ "Lines 27â33: This is similar to the above block of code. Notice that we "
-#~ "are setting the the depth to raise it above the other images."
-#~ msgstr ""
-#~ "LÃneas 27â33: esto es similar al bloque de cÃdigo anterior. Tenga en "
-#~ "cuenta que se està estableciendo la profundidad para elevarlo por encima "
-#~ "del resto de imÃgenes."
+#: C/magic-mirror.vala.page:25(p)
+msgid ""
+"In this tutorial, we're going to make a program which lets you use your "
+"webcam as a mirror. You will learn how to:"
+msgstr ""
+"En este tutorial se va a hacer un programa que le permite usar su cÃmara web "
+"como un espejo. Aprenderà a:"
 
-#~ msgid ""
-#~ "Line 37: Here we toggle the <code>is_focused</code> flag to the current "
-#~ "state."
-#~ msgstr ""
-#~ "LÃnea 37: aquà se cambia la opciÃn <code>is_focused</code> al estado "
-#~ "actual."
+#: C/magic-mirror.vala.page:27(p)
+msgid "Create a GTK+ application"
+msgstr "Crear una aplicaciÃn GTK+"
 
-#~ msgid ""
-#~ "As mentioned previously, the <code>ClutterActor</code>s with higher "
-#~ "<code>depth</code> values receive events but can allow "
-#~ "<code>ClutterActor</code>s below them to also receive events. Returning "
-#~ "<code>TRUE</code> will stop events from being passed down, while "
-#~ "<code>FALSE</code> will pass events down."
-#~ msgstr ""
-#~ "Como se ha mencionado anteriormente, los <code>ClutterActor</code> con "
-#~ "valores de <code>depth</code> mÃs altos recibirÃn eventos, pero pueden "
-#~ "permitir que los <code>ClutterActor</code> que estÃn por denajo de ellos "
-#~ "tambiÃn reciban eventos. Al devolver <code>TRUE</code> se dejarÃn de "
-#~ "enviar eventos havia abajo, mientras que <code>FALSE</code> harà que los "
-#~ "eventos pasen hacia abajo."
+#: C/magic-mirror.vala.page:28(p)
+msgid "Access your webcam using GStreamer and embed the result into a window"
+msgstr ""
+"Acceder a su cÃmara web usando GStreamer y empotrar el resultado en una "
+"ventana"
+
+#: C/magic-mirror.vala.page:29(p)
+msgid "Grab photos off your webcam"
+msgstr "Obtener las fotos de su cÃmara web"
+
+#: 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 "Necesitarà lo siguiente para poder seguir este tutorial:"
+
+#: 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 "Una copia instalada del <link xref=\"getting-ready\">EID Anjuta</link>"
+
+#: C/magic-mirror.vala.page:34(p)
+msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
+msgstr "Copias instaladas de GTK, GStreamer y de un compilador de Vala"
+
+#: C/magic-mirror.vala.page:35(p)
+msgid "Basic knowledge of an object-oriented programming language"
+msgstr ""
+"Conocimientos bÃsico de un lenguaje de programaciÃn orientado a objetos"
 
-#~ msgid ""
-#~ "Remember, however, that to receive events the <code>ClutterActor</code>s "
-#~ "must be set <code>reactive</code>."
-#~ msgstr ""
-#~ "Recuerde, sin embargo, que para que los <code>ClutterActor</code> reciban "
-#~ "eventos deben establecerse como <code>reactive</code>."
+#: C/magic-mirror.vala.page:49(p)
+msgid ""
+"Choose <gui>Gtk+ (simple)</gui> from the <gui>Vala</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Elija <gui>GTK+ (simple)</gui> de la pestaÃa <gui>Vala</gui>, pulse "
+"<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
+"<file>afinador-guitarra</file> como nombre de proyecto y de carpeta."
 
-#~ msgid ""
-#~ "The following is the convenience function passed to "
-#~ "<code>g_slist_foreach</code>."
-#~ msgstr ""
-#~ "Lo siguiente es la funciÃn de conveniencia pasada a "
-#~ "<code>g_slist_foreach</code>."
+#: C/magic-mirror.vala.page:52(p)
+msgid ""
+"Disable <gui>Use GtkBuilder for user interface</gui> as we will create the "
+"UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
+"\">Guitar-Tuner</link> tutorial using the interface builder."
+msgstr ""
+"Desactive la opciÃn <gui>Usar GtkBuilder para la interfaz del usuario</gui>, "
+"ya que, en este tutorial, la interfaz de usuario se crearà manualmente. "
+"Revise el tutorial <link xref=\"guitar-tuner.vala\">afinador-guitarra</link> "
+"usando el constructor de interfaces."
 
-#~ msgid ""
-#~ "Lines 2â5: The signature of this function requires two <code>gpointer</"
-#~ "code>s. The first is a pointer to the <code>ClutterActor</code> that our "
-#~ "<code>GSList</code> holds and the other is the <code>is_focused</code> "
-#~ "flag that we've passed in the previous section. We want to cast these and "
-#~ "store them for easy use."
-#~ msgstr ""
-#~ "LÃneas 2â5: la firma de esta funciÃn requiere dos <code>gpointer</code>. "
-#~ "El primero es un puntero al <code>ClutterActor</code> contenido en la "
-#~ "<code>GSList</code> y el otro es el indicador <code>is_focused</code> que "
-#~ "se ha pasado en la secciÃn anterior. Se quiere convertir su tipo (ÂcastÂ) "
-#~ "y almacenarlos para que sea fÃcil usarlos."
+#: C/magic-mirror.vala.page:57(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is selected. On the "
+"next page, select <em>gstreamer-0.10</em> from the list to include the "
+"<app>GStreamer</app> library into your project."
+msgstr ""
+"AsegÃrese de que <gui>Configurar paquetes externos</gui> està seleccionada. "
+"En la siguiente pÃgina, seleccione <em>gstreamermm-0.10</em> de la lista "
+"para incluir la biblioteca <app>GStreamer</app> en su proyecto."
 
-#~ msgid ""
-#~ "Line 7: Depending on which boolean value is passed in, the "
-#~ "<code>ClutterActor</code> will be set to respond to events or not."
-#~ msgstr ""
-#~ "LÃnea 7: dependiendo de quà valor booleano se pasa, el "
-#~ "<code>ClutterActor</code> se establecerà para que responda o no a eventos."
+#: C/magic-mirror.vala.page:61(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/espejo-"
+"magico.vala</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
+"gui>. DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
+
+#: 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 "Construir el cÃdigo por primera vez"
+
+#: C/magic-mirror.vala.page:71(p)
+msgid ""
+"The code loads an (empty) window and shows it. More details are given below; "
+"skip this list if you understand the basics:"
+msgstr ""
+"El cÃdigo carga una ventana (vacÃa) y la muestra. A continuaciÃn hay mÃs "
+"detalles; omita esta lista si entiende los conceptos bÃsicos:"
 
-#~ msgid "Build and run the application"
-#~ msgstr "Construir y ejecutar la aplicaciÃn"
+#: 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."
+msgstr ""
+"Las dos lÃneas <code>using</code> importan espacios de nombres, por lo que "
+"no hay que nombrarlas explÃcitamente."
 
-#~ msgid ""
-#~ "All of the code should now be ready to go. All you need now is some "
-#~ "pictures to load. By default, the pictures are loaded from a "
-#~ "<file>berlin_images</file> directory. If you want, you can change the "
-#~ "<code>#define IMAGE_DIR_PATH</code> line near the top to refer to your "
-#~ "photo directory, or create a <file>berlin_images</file> directory by "
-#~ "clicking <guiseq><gui>Project</gui><gui>New Directory...</gui></guiseq> "
-#~ "and creating a <file>berlin_images</file> directory as a subdirectory of "
-#~ "the <file>photo-wall</file> directory. Make sure to put at least twelve "
-#~ "images in the directory!"
-#~ msgstr ""
-#~ "Todo el cÃdigo deberÃa estar listo para ejecutarse. Todo lo que necesita "
-#~ "son algunas imÃgenes para cargar. De manera predeterminada, las imÃgenes "
-#~ "se cargan desde la carpeta <file>berlin_images</file>. Si quiere, puede "
-#~ "cambiar la lÃnea <code>#define IMAGE_DIR_PATH</code> del principio para "
-#~ "que haga referencia a su carpeta de fotos, o crear una carpeta "
-#~ "<file>berlin_images</file> pulsando en <guiseq><gui>Proyecto</"
-#~ "gui><gui>Carpeta nueva...</gui></guiseq> y creando una carpeta "
-#~ "<file>berlin_images</file> como subcarpeta de la carpeta <file>mural-"
-#~ "fotos</file>. AsegÃrese de poner al menos doce imÃgenes en la carpeta."
+#: C/magic-mirror.vala.page:77(p)
+msgid ""
+"The constructor of the <code>Main</code> class creates a new window and sets "
+"its title. Afterwards the window is shown and a signal is connected which "
+"quits the application if the window is closed. More on signals later on."
+msgstr ""
+"El constructor de la clase <code>Main</code> crea una ventana nueva y "
+"establece su tÃtulo. DespuÃs se muestra la ventana y se conecta una seÃal "
+"que cierra la aplicaciÃn si se cierra la ventana. Se verÃn mÃs seÃales mÃs "
+"adelante."
 
-#~ msgid ""
-#~ "When you have done that, click <guiseq><gui>Build</gui><gui>Build "
-#~ "Project</gui></guiseq> to build everything again, then <guiseq><gui>Run</"
-#~ "gui><gui>Execute</gui></guiseq> to start the application."
-#~ msgstr ""
-#~ "Cuando lo haya hecho, pulse <guiseq><gui>Construir</gui><gui>Construir "
-#~ "proyecto</gui></guiseq> para construir todo otra vez, y entonces pulse "
-#~ "<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> para iniciar la "
-#~ "aplicaciÃn."
+#: C/magic-mirror.vala.page:81(p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"up and then run the application. The <code>Gtk.Main</code> function starts "
+"the GTK main loop, which runs the user interface and starts listening for "
+"events (like clicks and key presses)."
+msgstr ""
+"La funciÃn estÃtica <code>main</code> se ejecuta de manera predeterminada "
+"cuando inicia una aplicaciÃn en Vala. Llama a unas pocas funciones que crean "
+"la clase ÂMainÂ, la configuran y ejecutan la aplicaciÃn. La funciÃn <code>Gtk."
+"Main</code> inicia el bucle principal de GTK+, que ejecuta la interfaz de "
+"usuario y empieza a escuchar eventos (como pulsaciones del ratÃn y del "
+"teclado)."
+
+#: 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 "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>)."
+msgstr ""
+"Este cÃdigo està listo para usarse, por lo que puede compilarlo pulsando "
+"<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> (o "
+"pulsando <keyseq><key>MayÃs</key><key>F7</key></keyseq>)."
 
-#~ msgid ""
-#~ "If you haven't already done so, choose the <file>Debug/src/photo-wall</"
-#~ "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-#~ "and enjoy!"
-#~ msgstr ""
-#~ "Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/photo-"
-#~ "wall</file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</"
-#~ "gui> y disfrute."
+#: 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 "
+"this once, for the first build."
+msgstr ""
+"Cambie la <gui>ConfiguraciÃn</gui> a <gui>Predeterminada</gui> y pulse "
+"<gui>Ejecutar</gui> para configurar la carpeta de construcciÃn. SÃlo "
+"necesita hacer esto una vez, para la primera construcciÃn."
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"photo-wall/photo-wall.c\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su cÃdigo con este <link "
-#~ "href=\"photo-wall/photo-wall.c\">cÃdigo de referencia</link>."
+#: C/magic-mirror.vala.page:90(title)
+msgid "Access the webcam video stream with GStreamer"
+msgstr "Acceder al flujo de vÃdeo de la cÃmara web con GStreamer"
 
-#~ msgid "@@image: 'media/toolbar.png'; md5=65d00f92e142de153e3a3e95a89603ae"
-#~ msgstr "@@image: 'media/toolbar.png'; md5=65d00f92e142de153e3a3e95a89603ae"
+#: C/magic-mirror.vala.page:91(p)
+msgid ""
+"The GStreamer multimedia framework is able to handle video from webcams. "
+"Let's add GStreamer to our application and so we can access the video stream."
+msgstr ""
+"El entorno multimedia de trabajo GStreamer es capaz de manejar vÃdeo desde "
+"cÃmaras web. AÃada GStreamer a su aplicaciÃn y podrà acceder al flujo de "
+"vÃdeo."
 
-#~ msgid "A toolbar widget which is connected to a Dialog widget"
-#~ msgstr "Un widget de barra de herramientas conectado a un widget de diÃlogo"
+#: C/magic-mirror.vala.page:118(p)
+msgid ""
+"First we remove the window we created before because GStreamer will take "
+"care of showing the picture on screen."
+msgstr ""
+"Primero se quita la ventana creada anteriormente, ya que GStreamer se "
+"encargarà de mostrar la imagen en la pantalla."
 
-#~ msgid ""
-#~ "Toolbar is a widget that may contain either text or stock icons. In this "
-#~ "sample we use stock icons."
-#~ msgstr ""
-#~ "La barra de herramientas es un widget que puede contener texto e iconos "
-#~ "del almacÃn. En este ejemplo se usan iconos del almacÃn."
+#: C/magic-mirror.vala.page:122(p)
+msgid ""
+"Now we are creating a GStreamer element which accesses our webcam. We are "
+"using the Camerabin element, which is an all-in-one camera element and is "
+"capable of taking photos, videos, applying effects and much more. Perfect "
+"for our use case! With <code>this.camerabin.set_state (Gst.State.PLAYING)</"
+"code> we tell the GStreamer pipeline we just created to start playing. Easy, "
+"no?"
+msgstr ""
+"Ahora se va a crear un elemento de GStreamer que accede a la cÃmara web. Se "
+"va a usar el elemento ÂCamerabinÂ, que es un elemento de cÃmara todo en uno "
+"capaz de hacer fotos, vÃdeos, aplicar efectos y mucho mÃs. Perfecto para "
+"nuestro caso de uso. Con <code>this.camerabin.set_state (Gst.State.PLAYING)</"
+"code> se indica a la tuberÃa de GStreamer que se acaba de crear que empiece "
+"a reproducir. FÃcil, Âno?"
+
+#: C/magic-mirror.vala.page:129(p)
+msgid ""
+"Of course it is also possible to integrate the video more tighly into other "
+"windows but that is an advanced topic that includes some details of the X "
+"Window System we will omit here."
+msgstr ""
+"Por supuesto, tambiÃn es posible integrar el vÃdeo mÃs ajustadamente en "
+"otras ventanas, pero esto es un tema avanzado que incluye algunos detalles "
+"sobre el sistema ÂX-Window que aquà se omiten."
 
-#~ 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 ""
-#~ "En este ejemplo se usan los siguientes 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>."
+#: C/magic-mirror.vala.page:133(p)
+msgid ""
+"Compile and run it again. You will end up with two windows. In the next step "
+"we will integrate the video into the GTK+ window."
+msgstr ""
+"Compile y ejecute de nuevo. Acabarà teniendo dos ventanas. En el siguiente "
+"paso, se integrarà el vÃdeo en una ventana de GTK+."
 
-#~ msgid ""
-#~ "@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
-#~ msgstr ""
-#~ "@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+#: C/magic-mirror.vala.page:143(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
+"is also a more <link href=\"magic-mirror/magic-mirror-advanced.vala"
+"\">extensive implementation</link> that embeds the window into a regular Gtk."
+"Window which involves some advanced techniques, and adds buttons to start/"
+"stop the picture."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su cÃdigo con este <link href="
+"\"magic-mirror/magic-mirror.vala\">cÃdigo de referencia</link>. TambiÃn hay "
+"una <link href=\"magic-mirror/magic-mirror-advanced.vala\">implemnetaciÃn "
+"mÃs amplia</link> que empotra la ventana en una ventana GTK regular que "
+"implica algunas tÃcnicas avanzadas, y aÃade botones para iniciar/parar la "
+"imagen."
+
+#: 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)
+msgid ""
+"To find out more about the Vala programming language you might want to check "
+"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"link>."
+msgstr ""
+"Para obtener mÃs informaciÃn sobre el lenguaje de programaciÃn Vala, puede "
+"querer revisar el <link href=\"http://live.gnome.org/Vala/Tutorial";
+"\">tutorial de Vala</link>."
 
-#~ msgid "A simple program using WebKitGTK+ and the DOM."
-#~ msgstr "Un programa sencillo usando WebKitGTK+ y el DOM."
+#: C/magic-mirror.vala.page:155(title)
+msgid "Conclusion"
+msgstr "ConclusiÃn"
 
-#~ msgid "Message Board"
-#~ msgstr "Cuadro de mensajes"
+#: C/magic-mirror.vala.page:156(p)
+msgid ""
+"That's it, you have managed to create a full-featured webcam photo "
+"application in 15 minutes. Now you can shave your beard off or add some "
+"makeup to your beautiful face, right before having a beautiful day at your "
+"workplace, where you can impress your friends and colleagues with an awesome "
+"application you just made in 15 minutes."
+msgstr ""
+"Ya estaÌ, ha conseguido crear una aplicacioÌn de caÌmara web con todas las "
+"funciones de fotos en 15 minutos. Ahora puede afeitarse la barba o maquillar "
+"su bonita cara justo antes de tener un gran diÌa en su trabajo, donde puede "
+"impresionar a sus amigos y colegas con una impresionante aplicacioÌn que ha "
+"hecho en 15 minutos."
 
-#~ msgid "How to display a web page with WebKit."
-#~ msgstr "CÃmo mostrar una pÃgina web con WebKit"
+#: C/index.page:7(name)
+msgid "GNOME Documentation Team"
+msgstr "Equipo de documentaciÃn de GNOME"
 
-#~ msgid ""
-#~ "How to manipulate the contents of a web page using WebKit's DOM functions."
-#~ msgstr ""
-#~ "Como manipular el contenido de una pÃgina web usando las funciones del "
-#~ "DOM del WebKit."
+#: C/index.page:9(years)
+msgid "2010, 2011"
+msgstr "2010, 2011"
 
-#~ msgid ""
-#~ "This tutorial assumes you are familiar with the C programming language "
-#~ "and have a basic understanding of GTK+, including how to create and place "
-#~ "widgets and how to connect callback functions to signals. See <link xref="
-#~ "\"image-viewer.c\"/> to learn the basics of GTK+."
-#~ msgstr ""
-#~ "En este tutorial se asume que està familiarizado con el lenguaje de "
-#~ "programaciÃn C y que tiene un conocimiento bÃsico de GTK+, incluyendo "
-#~ "cÃmo crear y colocar widgets y cÃmo conectar funciones de retorno de "
-#~ "retorno de la llamadas a seÃales. Consulte la <link xref=\"image-viewer.c"
-#~ "\"/> para aprender las nociones bÃsicas de GTK+."
+#: C/index.page:28(title)
+msgid "GNOME Developer Platform Demos"
+msgstr "Demostraciones de la plataforma de desarrollo de GNOME"
 
-#~ msgid ""
-#~ "The GNOME platform includes WebKitGTK+, built on top of the powerful "
-#~ "WebKit HTML framework. WebKit is used throughout GNOME, not just to view "
-#~ "web pages on the Internet, but also to create rich user interfaces that "
-#~ "can be easily styled with CSS."
-#~ msgstr ""
-#~ "La plataforma GNOME incluye WebKitGTK+, construido sobre el potente marco "
-#~ "de trabajo WebKit. WebKitGTK se usa en todo GNOME, no sÃlo para ver "
-#~ "pÃginas web en Internet, sino tambiÃn para crear interfaces de usuario "
-#~ "enriquecidas a las que se pueden aÃadir estilos fÃcilmente con CSS."
+#: C/index.page:31(title)
+msgid "Getting Ready"
+msgstr "CoÌmo empezar"
 
-#~ msgid ""
-#~ "In this tutorial, you will create a simple message board using WebKit. "
-#~ "The message board will allow you to enter some text and have it added to "
-#~ "a list of messages in HTML. Before you begin, you need to set up a "
-#~ "project in Anjuta."
-#~ msgstr ""
-#~ "En este tutorial, se crearà un cuadro de mensajes sencillo usando WebKit. "
-#~ "El cuadro de mensajes le permitirà introducir algÃn texto y aÃadirlo a "
-#~ "una lista de mensajes en HTML. Antes de empezar, deberà configurar un "
-#~ "proyecto en Anjuta."
+#: C/index.page:35(title)
+msgid "C"
+msgstr "C"
 
-#~ msgid ""
-#~ "In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
-#~ "guiseq> to open the new project assistant."
-#~ msgstr ""
-#~ "En Anjuta, pulse <guiseq><gui>Archivo</gui><gui>Nuevo</gui><gui>Proyecto</"
-#~ "gui></guiseq> para abrir el asistente para proyecto nuevo."
+#: C/index.page:39(title)
+msgid "C++"
+msgstr "C++"
 
-#~ msgid ""
-#~ "Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
-#~ "<gui>Continue</gui>."
-#~ msgstr ""
-#~ "Seleccione <gui>GTK+ (simple)</gui> en la pestaÃa <gui>C</gui> y pulse "
-#~ "<gui>Continuar</gui>."
+#: C/index.page:43(title)
+msgid "JavaScript"
+msgstr "JavaScript"
 
-#~ msgid ""
-#~ "Fill out your details on the <gui>Basic information</gui> page. Use "
-#~ "<input>message-board</input> for the project name. Click <gui>Continue</"
-#~ "gui>."
-#~ msgstr ""
-#~ "Rellene sus detalles en la pÃgina <gui>InformaciÃn bÃsica</gui>. Use "
-#~ "<input>cuadro-mensajes</input> para el nombre del proyecto. Pulse "
-#~ "<gui>Continuar</gui>."
+#: C/index.page:47(title)
+msgid "Python"
+msgstr "Python"
 
-#~ msgid ""
-#~ "Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
-#~ "tutorial builds the user-interface manually."
-#~ msgstr ""
-#~ "Desactive la opciÃn <gui>Usar GtkBuilder para la interfaz del usuario</"
-#~ "gui>, ya que, en este tutorial, la interfaz de usuario se construye "
-#~ "manualmente."
+#: C/index.page:51(title)
+msgid "Vala"
+msgstr "Vala"
 
-#~ msgid ""
-#~ "You need to tell Anjuta you're using WebKitGTK+ on this project. On the "
-#~ "<gui>Project options</gui> page, select <gui>Configure external packages</"
-#~ "gui>. Click <gui>Continue</gui>. On the <gui>Configure external packages</"
-#~ "gui> page, check <gui>webkitgtk-3.0</gui>."
-#~ msgstr ""
-#~ "Deberà indicar a Anjuta que va a usar WebKitGTK+ en este proyecto. En la "
-#~ "pÃgina <gui>Opciones del proyecto</gui>, seleccione <gui>Configurar "
-#~ "paquetes externos</gui>. Pulse <gui>Continuar</gui>. En la pÃgina "
-#~ "<gui>Configurar paquetes externos</gui> seleccione <gui>webkitgtk-3.0</"
-#~ "gui>."
+#: C/index.page:55(title)
+msgid "Get Involved"
+msgstr "Involucrarse"
 
-#~ msgid ""
-#~ "After you finish the new project assistant, open the file <file>src/main."
-#~ "c</file> from either the <gui>Project</gui> or the <gui>File</gui> tab. "
-#~ "Anjuta will have filled this in with some basic GTK+ code from its "
-#~ "templates. Since you are creating a WebKit project, you first need to "
-#~ "include the WebKit headers. After the line that includes <code>gtk/gtk.h</"
-#~ "code>, add the following line:"
-#~ msgstr ""
-#~ "Cuando termine el asistente de creaciÃn de un nuevo proyecto, abra el "
-#~ "archivo <file>src/main.c</file> desde la pestaÃa <gui>Proyecto</gui> o "
-#~ "desde <gui>Archivo</gui>. Anjuta lo habrà rellenado con algo de cÃdigo GTK"
-#~ "+ bÃsico de sus plantillas. Ya que està creando un proyecto WebKit, "
-#~ "primero debe incluir las cabeceras de WebKit. DespuÃs de la lÃnea que "
-#~ "incluye <code>gtk/gtk.h</code>, aÃada la siguiente lÃnea:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/image-viewer.vala.page:46(None) C/image-viewer.py.page:40(None)
+#: C/image-viewer.js.page:41(None) C/image-viewer.cpp.page:31(None)
+#: C/image-viewer.c.page:31(None)
+msgid "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+msgstr ""
+"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 
-#~ msgid "#include &lt;webkit/webkit.h&gt;"
-#~ msgstr "#include &lt;webkit/webkit.h&gt;"
+#: 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 "Algo mÃs que una sencilla aplicaciÃn ÂHola mundo en GTK."
 
-#~ msgid ""
-#~ "Verify that everything works by building what you have so far. Click "
-#~ "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
-#~ "<keyseq><key>Shift</key><key>F7</key></keyseq>. The first time you build, "
-#~ "you will be asked for some configure options. Just accept the defaults "
-#~ "and click <gui>Execute</gui>."
-#~ msgstr ""
-#~ "Verifique que todo funciona construyendo lo que tiene hasta ahora. Pulse "
-#~ "<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> o "
-#~ "simplemente pulse <keyseq><key>MayÃs</key><key>F7</key></keyseq>. La "
-#~ "primera vez que construya, se le pedirÃn algunas opciones de "
-#~ "configuraciÃn. Simplemente acepte los valores predeterminados y pulse "
-#~ "<gui>Ejecutar</gui>."
+#: C/image-viewer.vala.page:20(name)
+msgid "Philip Chimento"
+msgstr "Philip Chimento"
 
-#~ msgid ""
-#~ "You should now be able to run the program. Click <guiseq><gui>Run</"
-#~ "gui><gui>Execute</gui></guiseq> or just press <key>F3</key>. You should "
-#~ "see an empty window appear."
-#~ msgstr ""
-#~ "Ahora deberÃa poder ejecutar el programa. Pulse <guiseq><gui>Ejecutar</"
-#~ "gui><gui>Ejecutar</gui></guiseq> o simplemente pulse <key>F3</key>. "
-#~ "DeberÃa ver aparecer una ventana vacÃa."
+#: C/image-viewer.vala.page:21(email)
+msgid "philip chimento gmail com"
+msgstr "philip chimento gmail com"
 
-#~ msgid "Lay out your window and web view"
-#~ msgstr "La disposiciÃn de la ventana y la vista web"
+#: C/image-viewer.vala.page:29(title) C/image-viewer.py.page:23(title)
+#: C/image-viewer.js.page:23(title)
+msgid "1 Image Viewer"
+msgstr "1. Visor de imÃgenes"
 
-#~ msgid ""
-#~ "Now that you can show a window, it's time to start working with WebKit. "
-#~ "For this tutorial, you'll create a text entry and a web view and pack "
-#~ "them both into a window. Find the function <code>create_window</code> and "
-#~ "replace it with the following:"
-#~ msgstr ""
-#~ "Ahora que puede mostrar una ventana, es el momento de empezar a trabajar "
-#~ "con WebKit. Para este tutorial, se crearà una entrada de texto y una "
-#~ "vista web y ambas se empaquetarÃn en una ventana. Busque la funciÃn "
-#~ "<code>create_window</code> y reemplÃcela con lo siguiente"
+#: C/image-viewer.vala.page:31(p)
+msgid ""
+"In this tutorial you will create an application which opens and displays an "
+"image file. You will learn:"
+msgstr ""
+"En este tutorial se va a crear un programa que abre un archivo de imagen y "
+"lo muestra. Aprenderà a:"
 
-#~ msgid ""
-#~ "You first create a <code>GtkWindow</code> object and set its title and "
-#~ "default size. You also connect the <code>gtk_main_quit</code> function to "
-#~ "the <code>delete-event</code> signal. The <code>delete-event</code> "
-#~ "signal is emitted when the window is closed. The <code>gtk_main_quit</"
-#~ "code> function is part of GTK, and it quits the application."
-#~ msgstr ""
-#~ "Primero cree un objeto <code>GtkWindow</code> y establezca su tÃtulo y su "
-#~ "tamaÃo predeterminado. TambiÃn puede conectar la funciÃn "
-#~ "<code>gtk_main_quit</code> a la seÃal <code>delete-event</code>. La seÃal "
-#~ "<code>delete-event</code> se emite cuando se cierra la ventana. La "
-#~ "funciÃn <code>gtk_main_quit</code> es parte de GTK+, y sale de la "
-#~ "aplicaciÃn."
+#: 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Ãmo configurar un proyecto bÃsico usando el <link xref=\"getting-ready"
+"\">EID Anjuta</link>."
 
-#~ msgid ""
-#~ "You then create a vertical box and add it to the window. A window can "
-#~ "only hold a single child widget, so you need to use a box to add multiple "
-#~ "widgets. The second argument to <code>gtk_box_new</code> sets the amount "
-#~ "of padding (in pixels) between each child, and the next line puts a six-"
-#~ "pixel border around the entire thing."
-#~ msgstr ""
-#~ "Ahora cree una caja vertical y aÃÃdala a la ventana. Una ventana sÃlo "
-#~ "puede contener un widget hijo, por lo que necesitarà una caja para aÃadir "
-#~ "varios widgets. El segundo argumento de <code>gtk_box_new</code> "
-#~ "configura la cantidad de espacio (en pÃxeles) entre cada hijo, y la "
-#~ "siguiente lÃnea aÃade un borde de seis pÃxeles alrededor de la cosa "
-#~ "completa."
+#: 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Ãmo escribir una <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gtk\">aplicaciÃn de GTK+</link> en Vala"
 
-#~ msgid ""
-#~ "You next create a <code>GtkEntry</code> object and pack it into the box. "
-#~ "The third and fourth arguments to <code>gtk_box_pack_start</code> specify "
-#~ "that the entry shouldn't take up any extra space the box has available. "
-#~ "The fourth argument is the amount of padding you want around the entry. "
-#~ "In this case, you set the padding to zero, because you're allowing the "
-#~ "box to handle all the padding."
-#~ msgstr ""
-#~ "DespuÃs, cree un objeto <code>GtkEntry</code> y empaquÃtelo en una caja. "
-#~ "Los argumentos tercero y cuarto de <code>gtk_box_pack_start</code> "
-#~ "especifican que la entrada no deberÃa coger ningÃn espacio adicional que "
-#~ "tenga la caja. El cuarto es la cantidad de relleno que quiere alrededor "
-#~ "de la entrada. En este caso, se establece el relleno a cero, ya que se "
-#~ "està permitiendo que la caja maneje todo el relleno."
+#: C/image-viewer.vala.page:35(p)
+msgid ""
+"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
+"stable/\">GObject</link> programming"
+msgstr ""
+"Algunos conceptos bÃsicos de programaciÃn en <link href=\"http://developer.";
+"gnome.org/gobject/stable/\">GObject</link>"
 
-#~ msgid ""
-#~ "Before you add a web view, you have to create a scrolled window to put it "
-#~ "inside of. The scrolled window will place scrollbars on the right and "
-#~ "bottom when necessary, and prevent your web view from filling your entire "
-#~ "screen. This time, you pass <code>TRUE</code> and <code>TRUE</code> to "
-#~ "<code>gtk_box_pack_start</code> to allow the scrolled window (and thus, "
-#~ "the web view) to use any extra space available in the box."
-#~ msgstr ""
-#~ "Antes de aÃadir la vista web debe crear una ventana desplazada para "
-#~ "ponerla dentro. La ventana desplazada contendrà barras de desplazamiento "
-#~ "a la derecha y abajo cuando sea necesario, y evitarà que la vista web "
-#~ "abarque la pantalla entera. En este momento, se pasa <code>TRUE</code> y "
-#~ "<code>TRUE</code> a <code>gtk_box_pack_start</code> para permitir que la "
-#~ "ventana desplazada (y por lo tanto, la vista web) usen el espacio "
-#~ "adicional disponible en la caja."
+#: C/image-viewer.vala.page:40(p) C/guitar-tuner.vala.page:36(p)
+msgid ""
+"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
+"\">Vala</link> programming language."
+msgstr ""
+"Conocimiento baÌsico del lenguaje de programacioÌn <link href=\"https://live.";
+"gnome.org/Vala/Tutorial\">Vala</link>."
 
-#~ msgid ""
-#~ "Finally, you create a <code>WebKitWebView</code> and add it to the "
-#~ "scrolled window. Then load a very basic HTML page into the web view by "
-#~ "calling <code>webkit_web_view_load_string</code> with the following "
-#~ "arguments:"
-#~ msgstr ""
-#~ "Finalmente, cree una <code>WebKitWebView</code> y aÃÃdala a la ventana "
-#~ "desplazada. Entonces cargue una pÃgina HTML muy simple en la vista web "
-#~ "llamando a <code>webkit_web_view_load_string</code> con los siguientes "
-#~ "argumentos:"
+#: C/image-viewer.vala.page:41(p) C/guitar-tuner.vala.page:37(p)
+msgid "An installed copy of <app>Anjuta</app>."
+msgstr "Una copia instalada de <app>Anjuta</app>."
 
-#~ msgid "WEBKIT_WEB_VIEW (view)"
-#~ msgstr "WEBKIT_WEB_VIEW (view)"
+#: 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 ""
+"Puede que la referencia de la API de <link href=\"http://valadoc.org/gtk+-";
+"3.0/\">gtk+-3.0</link> le resulte Ãtil, aunque no es necesaria para seguir "
+"el tutorial."
 
-#~ msgid ""
-#~ "The view itself. Because <code>view</code> is typed as a "
-#~ "<code>GtkWidget*</code>, you have to use <code>WEBKIT_WEB_VIEW</code> to "
-#~ "safely cast the object."
-#~ msgstr ""
-#~ "La vista en sÃ. Ya que <code>view</code> es de tipo <code>GtkWidget*</"
-#~ "code>, debe usar <code>WEBKIT_WEB_VIEW</code> para convertir el tipo del "
-#~ "objeto con seguridad."
+#: C/image-viewer.vala.page:55(p) C/guitar-tuner.vala.page:48(p)
+msgid ""
+"Start <app>Anjuta</app> and click <gui>Create a new project</gui> or "
+"<guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></guiseq> to open the "
+"project wizard."
+msgstr ""
+"Inicie <app>Anjuta</app> y pulse <gui>Crear un proyecto nuevo</gui> o "
+"<guiseq><gui>Archivo</gui><gui>Nuevo</gui><gui>Proyecto</gui></guiseq> para "
+"abrir el asistente de proyectos."
 
-#~ msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
-#~ msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
+#: C/image-viewer.vala.page:58(p)
+msgid ""
+"Choose <gui>Gtk+ (Simple)</gui> from the <gui>Vala</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>Vala</gui>, pulse "
+"<gui>Siguiente</gui>, y rellene los detalles en las siguientes pÃginas. Use "
+"<file>visor-imagenes</file> como nombre del proyecto y de la carpeta."
 
-#~ msgid "The simplest HTML file you could possibly write."
-#~ msgstr "El archivo HTML mÃs simple que pueda escribir."
+#: C/image-viewer.vala.page:62(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial."
+msgstr ""
+"AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
+"està desactivado, ya que, en este tutorial, la IU se crearà manualmente."
 
-#~ msgid "\"text/html\""
-#~ msgstr "\"text/html\""
+#: 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 ""
+"Aprenderà a usar el constructor de interfaces en el tutorial del <link xref="
+"\"guitar-tuner.vala\">afinador de guitarra</link>."
 
-#~ msgid ""
-#~ "The MIME type of the content you provided. In this case, you're using "
-#~ "plain HTML."
-#~ msgstr ""
-#~ "El tipo MIME del contenido que ha proporcionado. En este caso, està "
-#~ "usando HTML plano."
+#: C/image-viewer.vala.page:67(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.vala</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You will see this code:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/main.vala</"
+"file> desde las pestaÃas <gui>Proyecto</gui> o <gui>Archivo</gui>. Verà el "
+"siguiente cÃdigo:"
 
-#~ msgid "\"UTF-8\""
-#~ msgstr "\"UTF-8\""
+#: 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 ""
+"El cÃdigo carga una ventana (vacÃa) desde el archivo de descripciÃn de "
+"interfaz de usuario y la muestra. Se ofrecen mÃs detalles a continuaciÃn; "
+"omita esta lista si entiende los conceptos bÃsicos:"
 
-#~ msgid ""
-#~ "The character encoding of the content you provided. Although you only "
-#~ "used ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used "
-#~ "as the default encoding throughout the GNOME platform."
-#~ msgstr ""
-#~ "La codificaciÃn de caracteres del contenido que ha proporcionado. Aunque "
-#~ "sÃlo use caracteres ASCII, es una buena idea especificar UTF-8, ya que es "
-#~ "la codificaciÃn que se usa de manera predeterminada en toda la plataforma "
-#~ "GNOME."
+#: C/image-viewer.vala.page:111(p)
+msgid ""
+"The two <code>using</code> lines at the top import namespaces so we don't "
+"have to name them explicitly."
+msgstr ""
+"Las dos lÃneas <code>using</code> importan espacios de nombres, por lo que "
+"no hay que nombrarlas explÃcitamente."
 
-#~ msgid "NULL"
-#~ msgstr "NULL"
+#: C/image-viewer.vala.page:114(p)
+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 ""
+"El constructor de la clase <code>Main</code> crea una ventana (vacÃa) nueva "
+"y conecta una <link href=\"https://live.gnome.org/Vala/SignalsAndCallbacks";
+"\">seÃal</link> para salir de la aplicaciÃn cuando se cierra esa ventana."
 
-#~ msgid ""
-#~ "The base URI. You don't need it in this simple example, but you might "
-#~ "want to provide a <sys>file:</sys> URI if you add images or other "
-#~ "features where you want to use relative URI references."
-#~ msgstr ""
-#~ "El URI base. En este ejemplo no se necesita, pero puede querer "
-#~ "proporcionar un URI <sys>file:</sys> si aÃade imÃgenes u otras "
-#~ "caracterÃsticas cuando quiera usar referencias a URI relativos."
+#: C/image-viewer.vala.page:115(p) C/image-viewer.c.page:67(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 ""
+"Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
+"cuando ocurre algÃn otro evento. AquÃ, se llama a la funciÃn <code>destroy</"
+"code> (y se sale de la aplicaciÃn) cuando cierra la ventana."
 
-#~ msgid ""
-#~ "Every time you add a widget, you have to call <code>gtk_widget_show</"
-#~ "code> on it for it to be visible. If you call <code>gtk_widget_show_all</"
-#~ "code> on a container widget like a <code>GtkBox</code>, GTK+ will "
-#~ "automatically show all the widgets inside the container, to any depth. "
-#~ "Sometimes you don't want to call <code>gtk_widget_show_all</code>, such "
-#~ "as when you want to dynamically hide and show some widgets in response to "
-#~ "events."
-#~ msgstr ""
-#~ "Cada vez que aÃade un widget, debe llamar a la funciÃn "
-#~ "<code>gtk_widget_show</code> sobre Ãl para hacerlo visible. Si llama a "
-#~ "<code>gtk_widget_show</code> en un contenedor de widgets como "
-#~ "<code>GtkBox</code>, GTK+ mostrarà automÃticamente todos los widgets del "
-#~ "contenedor, en cualquier nivel. Algunas veces no se quiere llamar a la "
-#~ "funciÃn <code>gtk_widget_show_all</code>, como cuando se quieren ocultar "
-#~ "o mostrar dinÃmicamente algunos objetos en respuesta a determinados "
-#~ "eventos."
+#: 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 ""
+"La funciÃn <code>static main</code> se ejecuta de manera predeterminada "
+"cuando inicia una aplicaciÃn en Vala. Llama a algunas funciones que crean la "
+"clase <code>Main</code> y configuran y ejecutan la aplicaciÃn. La funciÃn "
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.main.html\";><code>Gtk.main</"
+"code></link> inicia el <link href=\"http://en.wikipedia.org/wiki/Event_loop";
+"\">bucle principal</link> de GTK+, que ejecuta la interfaz de usuario y "
+"empieza a escuchar eventos (como pulsaciones del ratÃn y del teclado)."
+
+#: 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 la interfaz de usuario"
+
+#: C/image-viewer.vala.page:132(p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
+"html\"><code>Gtk.Container</code></link>s that can contain other widgets and "
+"even other containers. Here we will use the simplest available container, a "
+"<link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.html\";><code>Gtk."
+"Box</code></link>."
+msgstr ""
+"Ahora se darà vida a la ventana vacÃa. GTK+ organiza la interfaz de usuario "
+"con varios <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.html";
+"\"><code>Gtk.Container</code></link> que pueden contener otros widgets e "
+"incluso otros contenedores. Aquà se usarà el contenedor mÃs sencillo "
+"disponible, una <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
+"html\"><code>Gtk.Box</code></link>."
+
+#: C/image-viewer.vala.page:136(p)
+msgid "Add the following lines to the top of the <code>Main</code> class:"
+msgstr ""
+"AÃada las siguientes lÃneas a la parte superior de la clase <code>Main</"
+"code>:"
 
-#~ msgid ""
-#~ "Finally, you have to call <code>gtk_widget_show_all</code> on the box. "
-#~ "Otherwise, none of the widgets you created will be visible. (The window "
-#~ "is shown in the <code>main</code> function with <code>gtk_widget_show</"
-#~ "code>.)"
-#~ msgstr ""
-#~ "Finalmente, debe llamar a la funciÃn <code>gtk_widget_show_all</code> "
-#~ "sobre la caja. De otro modo, ninguno de los widgets que haya creado serà "
-#~ "visible. (La ventana se muestra en la funciÃn <code>main</code> con "
-#~ "<code>gtk_widget_show</code>.)"
+#: C/image-viewer.vala.page:142(p)
+msgid "Now replace the current constructor with the one below:"
+msgstr "Ahora reemplace el constructor actual con el siguiente:"
 
-#~ msgid ""
-#~ "Build and run the message board again. You should see a window with a "
-#~ "text entry and a web view. It doesn't do anything yet because the text "
-#~ "entry and the web view don't know anything about each other."
-#~ msgstr ""
-#~ "Construya y ejecute el cuadro de mensajes de nuevo. DeberÃa ver una "
-#~ "ventana con una entrada de texto y una vista web. TodavÃa no hace nada "
-#~ "porque la entrada de texto y la vista web no saben nada la una acerca de "
-#~ "la otra."
+#: C/image-viewer.vala.page:168(p)
+msgid ""
+"The first two lines are the parts of the GUI that we will need to access "
+"from more than one method. We declare them up here so that they are "
+"accessible throughout the class instead of only in the method where they are "
+"created."
+msgstr ""
+"Las dos primeras lÃneas son partes de la IGU a las que se debe acceder desde "
+"mÃs de un mÃtodo. Se declaran aquÃ, por lo que son accesibles mediante la "
+"clase en vez de serlo solamente en el mÃtodo en el que se crearon."
 
-#~ msgid "Hook up signals"
-#~ msgstr "Conectar seÃales"
+#: 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 ""
+"Las primeras lÃneas del constructor crean la ventana vacÃa. Las siguientes "
+"lÃneas crean los widgets que se quieren usar: un botÃn para abrir una "
+"imagen, el widget de la vista de la imagen en sà y la caja que se usarà como "
+"contenedor."
 
-#~ msgid ""
-#~ "Now you want to make the message board actually <em>do</em> something "
-#~ "when you enter text into the text entry. To do this, connect a callback "
-#~ "function to the <code>activate</code> signal of <code>entry</code>. GTK+ "
-#~ "emits the <code>activate</code> signal whenever the user presses "
-#~ "<key>Enter</key> in the entry. Add the following into "
-#~ "<code>create_window</code>, anywhere after both <code>entry</code> and "
-#~ "<code>view</code> have been defined:"
-#~ msgstr ""
-#~ "Ahora se quiere hacer que el cuadro <em>haga</em> algo cuando se "
-#~ "introduce texto en la entrada de texto. Para hacer esto, conecte una "
-#~ "funciÃn de retorno de la llamada a la seÃal <code>activate</code> de "
-#~ "<code>entry</code>. GTK+ emite la seÃal <code>activate</code> cuando el "
-#~ "usuario pulsa <key>Intro</key> en la entrada. AÃada lo siguiente en "
-#~ "<code>create_window</code>, en cualquier lugar despuÃs de que "
-#~ "<code>entry</code> y <code>view</code> se hayan definido:"
+#: C/image-viewer.vala.page:176(p)
+msgid ""
+"The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
+"pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
+"box and define their behaviour. The image will expand into any available "
+"space whereas the button will just be as big as needed. You will notice that "
+"we don't set explicit sizes on the widgets. In GTK this is usually not "
+"needed as it makes it much easier to have a layout that looks good in "
+"different window sizes. Next, the box is added to the window."
+msgstr ""
+"Las llamadas a <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
+"pack_start.html\"><code>pack_start</code></link> aÃaden los dos widgets a la "
+"caja y definen su comportamiento. La imagen se expandirà en cualquier "
+"espacio disponible, mientras que el botÃn serà tan grande como se necesite. "
+"Se darà cuenta de que no se establecen tamaÃos explÃcitos de los widgets. "
+"Generalmente, en GTK+ no se necesita ya que hace que sea mucho mÃs sencillo "
+"tener una distribuciÃn que se ve bien con diferentes tamaÃos de la ventana. "
+"A continuaciÃn, se aÃade la caja a la ventana."
+
+#: C/image-viewer.vala.page:183(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>."
+msgstr ""
+"Se debe definir quà pasa cuando el usuario pulsa en el botÃn. GTK+ usa el "
+"concepto de <em>seÃales</em>."
 
-#~ msgid ""
-#~ "You then have to actually define <code>entry_activate_cb</code>. Define "
-#~ "it as follows, anywhere above <code>create_window</code>:"
-#~ msgstr ""
-#~ "Entonces se debe definir <code>entry_activate_cb</code>. DefÃnalo como "
-#~ "quiera, en cualquier lugar por encima de <code>create_window</code>:"
+#: C/image-viewer.vala.page:184(p)
+msgid ""
+"When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
+"link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
+"Button.clicked.html\"><code>clicked</code></link> signal, which we can "
+"connect to some action (defined in a <link href=\"https://live.gnome.org/";
+"Vala/SignalsAndCallbacks\">callback</link> method)."
+msgstr ""
+"Cuando se pulsa el <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html";
+"\">botÃn</link> se emite la seÃal <link href=\"http://valadoc.org/gtk+-3.0/";
+"Gtk.Button.clicked.html\"><code>clicked</code></link>, que se puede conectar "
+"a alguna acciÃn (definida en un mÃtodo de un <link href=\"https://live.gnome.";
+"org/Vala/SignalsAndCallbacks\">retorno de la llamada</link>)."
 
-#~ msgid ""
-#~ "The first thing you do is get a <code>WebKitDOMDocument</code> object "
-#~ "that represents the HTML document displayed in <code>view</code>. The DOM "
-#~ "classes and methods in WebKit allow you to inspect and manipulate the "
-#~ "HTML document, and work very similarly to the DOM APIs you might already "
-#~ "know from JavaScript."
-#~ msgstr ""
-#~ "Lo primero que hacer es obtener un objeto <code>WebKitDOMDocument</code> "
-#~ "que representa el documento HTML mostrado en la <code>view</code>. Las "
-#~ "clases DOM y los mÃtodos de WebKit le permiten inspeccionar y manipular "
-#~ "el documento HTML, y trabajar de manera similar a las API DOM que ya "
-#~ "deberÃa conocer de JavaScript."
+#: 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 ""
+"Esto se hace usando el mÃtodo <code>connect</code> de la seÃal "
+"<code>clicked</code> de los botones, que en este caso indica a GTK+ que "
+"llame al mÃtodo del retorno de la llamada <code>on_image_open</code> "
+"(todavÃa no definida) cuando se pulsa el botÃn. El <em>retorno de la "
+"llamada</em> se definirà en la siguiente secciÃn."
 
-#~ msgid ""
-#~ "Once you have the document, you want to get the <code>body</code> element "
-#~ "so that you can add <code>div</code> elements to it. The "
-#~ "<code>webkit_dom_document_query_selector</code> function lets you find an "
-#~ "element in the document using CSS selectors. This keeps you from having "
-#~ "to write tedious loops to traverse the document."
-#~ msgstr ""
-#~ "Una vez que tenga el documento, querrà obtener el elemento <code>body</"
-#~ "code> para poder aÃadirle elementos <code>div</code>. La funciÃn "
-#~ "<code>webkit_dom_document_query_selector</code> le permite encontrar un "
-#~ "elemento en el documento usando selectores CSS. Esto le evita tener que "
-#~ "escribir bucles tediosos para recorrer el documento."
+#: C/image-viewer.vala.page:191(p)
+msgid ""
+"In the callback, we need to access the <code>window</code> and <code>image</"
+"code> widgets, which is why we defined them as private members at the top of "
+"our class."
+msgstr ""
+"En el retorno de la llamada, se debe acceder a los widgets <code>window</"
+"code> y <code>image</code> que es por lo que se definen como miembros "
+"privados en la parte superior de la clase."
 
-#~ msgid "shaunm"
-#~ msgstr "shaunm"
+#: C/image-viewer.vala.page:195(p)
+msgid ""
+"The last <code>connect</code> call makes sure that the application exits "
+"when the window is closed. The code generated by Anjuta called an "
+"<code>on_destroy</code> callback method which called <link href=\"http://www.";
+"valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></link>, "
+"but just connecting our signal to <code>main_quit</code> directly is easier. "
+"You can delete the <code>on_destroy</code> method."
+msgstr ""
+"La Ãltima llamada a <code>connect</code> asegura que la aplicaciÃn termina "
+"cuando se cierra la ventana. El cÃdigo generado por Anjuta llamaba a un "
+"mÃtodo <code>on_destroy</code> que llamaba a <link href=\"http://www.valadoc.";
+"org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></link>, pero "
+"simplemente conectando la seÃal <code>main_quit</code> directamente es mÃs "
+"fÃcil. Puede eliminar el mÃtodo <code>on_destroy</code>."
+
+#: 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 la imagen"
+
+#: 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 ""
+"Ahora se definirà el manejador de la seÃal <em>clicked</em> para el botÃn "
+"mencionado anteriormente. AÃada este cÃdigo despuÃs del constructor."
 
-#~ msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
-#~ msgstr "NO TRADUCIR"
+#: C/image-viewer.vala.page:229(p)
+msgid "This is a bit complicated, so let's break it down:"
+msgstr "Esto es un poco mÃs complicado, asà que se puede desglosar:"
 
-#~ msgid ""
-#~ "Next, you create a new <code>div</code> element to hold the message. "
-#~ "Every element you create has to be attached to a document, so the "
-#~ "function to create an element takes the <code>WebKitDOMDocument</code> as "
-#~ "its first arguments. You then set the text content of the element to the "
-#~ "contents of the text entry. Because <code>gtk_entry_get_text</code> "
-#~ "returns a <code>const gchar*</code>, you don't have to free the result."
-#~ msgstr ""
-#~ "Ahora, cree un elemento <code>div</code> que contenga el mensaje. Cada "
-#~ "elemento que cree se debe adjuntar se debe adjuntar a un documento, por "
-#~ "lo que la funciÃn para crear un elemento toma el <code>WebKitDOMDocument</"
-#~ "code> como primer argumento. Debe entonces establecer el contenido del "
-#~ "elemento con el contenido de la entrada de texto. Dado que "
-#~ "<code>gtk_entry_get_text</code> devuelve un <code>const gchar*</code>, no "
-#~ "tiene que liberar el resultado."
+#: C/image-viewer.vala.page:230(p)
+msgid ""
+"A signal handler is a type of callback method that is called when a signal "
+"is emitted. Here the terms are used interchangeably."
+msgstr ""
+"Un manejador de seÃal es un tipo de mÃtodo de retorno de la llamada al que "
+"se llama cuando se emite la seÃal. Aquà se usan los tÃrminos intercambiados."
 
-#~ msgid ""
-#~ "Not passing the GError**, but we should give it a quick mention and link "
-#~ "to somewhere that explains how GError-handling works."
-#~ msgstr "NO TRADUCIR"
+#: C/image-viewer.vala.page:233(p)
+msgid ""
+"The first argument of the callback method is always the widget that sent the "
+"signal. Sometimes other arguments related to the signal come after that, but "
+"<em>clicked</em> doesn't have any."
+msgstr ""
+"El primer argumento del mÃtodo del retorno de la llamada es siempre el "
+"widget que envÃa la seÃal. A veces hay otros argumentos relativos a la seÃal "
+"que vienen despuÃs, pero <em>clicked</em> no tiene ninguno."
 
-#~ msgid ""
-#~ "Finally, you append the new <code>div</code> element to the body and "
-#~ "clear out the text entry so you can type something new. Build and run the "
-#~ "program again and test it for yourself."
-#~ msgstr ""
-#~ "Finalmente, aÃada el nuevo elemento <code>div</code> al cuerpo y limpie "
-#~ "la salida de texto para poder escribir algo nuevo. Construya y ejecute el "
-#~ "programa otra vez y pruÃbelo por su cuenta."
+#: C/image-viewer.vala.page:235(p)
+msgid ""
+"In this case the <code>button</code> sent the <code>clicked</code> signal, "
+"which is connected to the <code>on_open_image</code> callback method:"
+msgstr ""
+"En este caso, el <code>button</code> envÃa la seÃal <code>clicked</code>, "
+"que se conecta al mÃtodo del retorno de la llamada <code>on_open_image</"
+"code>:"
 
-#~ msgid "Make it look better with CSS"
-#~ msgstr "Mejorar el aspecto con CSS"
+#: C/image-viewer.vala.page:240(p)
+msgid ""
+"The <code>on_open_image</code> method takes the button that emitted the "
+"signal as an argument:"
+msgstr ""
+"El mÃtodo <code>on_open_image</code> toma como argumento el botÃn que ha "
+"emitido la seÃal:"
 
-#~ msgid ""
-#~ "At this point, your program is completely functional, but not very "
-#~ "pretty. You can style the message display with CSS, just like you can "
-#~ "with any other HTML page. There are many ways you could attach some CSS "
-#~ "to the page: You could add it in the initial HTML document. You could "
-#~ "inline it in the <code>style</code> attribute of the <code>div</code> "
-#~ "elements. You could even programmatically construct it using the DOM APIs."
-#~ msgstr ""
-#~ "En este punto, su programa es completamente funcional, pero no es muy "
-#~ "atractivo. Puede aÃadir estilos a la visualizaciÃn de los mensajes con "
-#~ "CSS, igual que puede hacer con una pÃgina web. Hay muchas maneras de "
-#~ "incluir un CSS en la pÃgina: puede aÃadirlo al documento HTML inicial, "
-#~ "aÃadirlo en lÃnea usando el atributo <code>style</code> de los elementos "
-#~ "<code>div</code> o puede incluso construirlo con programaciÃn usando las "
-#~ "API DOM."
+#: C/image-viewer.vala.page:246(p)
+msgid ""
+"The next interesting line is where the dialog for choosing the file is "
+"created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.";
+"html\"><code>FileChooserDialog</code></link>'s constructor takes the title "
+"of the dialog, the parent window of the dialog and several options like the "
+"number of buttons and their corresponding values."
+msgstr ""
+"La siguiente lÃnea interesante es en la que se crea el diÃlogo para elegir "
+"el archivo. El constructor de  <link href=\"http://www.valadoc.org/gtk+-3.0/";
+"Gtk.FileChooserDialog.html\"><code>FileChooserDialog</code></link> toma el "
+"tÃtulo del diÃlogo, la ventana padre del diÃlogo y varias opciones como el "
+"nÃmero de botones y sus valores correspondientes."
 
-#~ msgid ""
-#~ "In this tutorial, you'll attach the CSS using the <code>user-stylesheet-"
-#~ "uri</code> property of the <code>WebKitWebSetting</code> object attached "
-#~ "to your web view. In a more complete application, you would want to save "
-#~ "and load your HTML file. Keeping the style information outside the actual "
-#~ "HTML means that you can change the styling completely within your "
-#~ "application, without having to change users' files. You would normally "
-#~ "just install a file along with your application, but just to keep "
-#~ "everything in one file for this demo, we'll use a trick called a data "
-#~ "URI. First, define the CSS as a static string near the top of your file."
-#~ msgstr ""
-#~ "En este tutorial se adjuntarà el CSS usando la propiedad <code>user-"
-#~ "stylesheet-uri</code> del objeto <code>WebKitWebSetting</code> empotrado "
-#~ "en la vista web. En una aplicaciÃn mÃs completa, se podrÃa querer guardar "
-#~ "y cargar el archivo HTML. Mantener la informaciÃn de estilo fuera del "
-#~ "HTML actual significa que se puede cambiar el estilo completo de la "
-#~ "aplicaciÃn sin tener que cambiar los archivos del usuario. Normalmente se "
-#~ "instala un archivo junto con la aplicaciÃn, pero simplemente para "
-#~ "mantener todo en un archivo en esta demostraciÃn, se usarà un truco "
-#~ "llamado URI de datos. En primer lugar, se define el CSS como una cadena "
-#~ "estÃtica cerca del principio del archivo."
+#: C/image-viewer.vala.page:248(p)
+msgid ""
+"Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-3.0/";
+"Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead of "
+"manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
+"is that the button labels will already be translated into the user's "
+"language."
+msgstr ""
+"Tenga en cuenta que se està usando nombres de botones del <link href="
+"\"http://unstable.valadoc.org/gtk+-3.0/Gtk.Stock.html\";><em>almacÃn</em></"
+"link> de GTK+, en lugar de escribir manualmente ÂCancelar o ÂAbrirÂ. La "
+"ventaja de usar nombres del almacÃn es que las etiquetas de los botones ya "
+"estarÃn traducidas en el idioma del usuario."
 
-#~ msgid ""
-#~ "All you have in this example are <code>div</code> elements inside a "
-#~ "<code>body</code> element. If you created more complicated HTML, you "
-#~ "could use whatever CSS is necessary. In fact, if you're comfortable with "
-#~ "CSS, you should trying changing this to something you like better."
-#~ msgstr ""
-#~ "Todo lo que tiene en este ejemplo son elementos <code>div</code> dentro "
-#~ "de un elemento <code>body</code>. Si ha creado HTML mÃs complejo, puede "
-#~ "usar cualquier CSS que sea necesario. Si se siente cÃmodo usando CSS "
-#~ "deberÃa intentar cambiar esto por algo que le guste mÃs."
+#: C/image-viewer.vala.page:252(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by <em>GtkImage</em>. GtkImage is a widget which "
+"displays an image. A filter object is created first; we then add all kinds "
+"of files supported by <link href=\"http://www.valadoc.org/gdk-pixbuf-2.0/Gdk.";
+"Pixbuf.html\"><code>Gdk.Pixbuf</code></link> (which includes most image "
+"formats like PNG and JPEG) to the filter. Finally, we set this filter to be "
+"the <gui>Open</gui> dialog's filter."
+msgstr ""
+"Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
+"soÌlo muestre archivos que se puedan abrir con <code>GtkImage</code>. "
+"GtkImage es un widget que muestra una imagen. Primero se crea un objeto; "
+"luego se anÌaden los tipos de archivos soportados por el <link href=\"http://";
+"www.valadoc.org/gdk-pixbuf-2.0/Gdk.Pixbuf.html\"><code>Gdk.Pixbuf</code></"
+"link> (que incluye la mayoriÌa de los formatos de imagen como PNG y JPEG) al "
+"filtro. Por uÌltimo, se establece que este filtro sea el filtro del diaÌlogo "
+"<gui>Abrir</gui>."
+
+#: 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 ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
+"\"><code>dialog.run</code></link> muestra el diÃlogo <gui>Abrir</gui>. El "
+"diÃlogo esperarà a que el usuario seleccione una imagen; cuando lo haga, "
+"<code>dialog.run</code> devolverà el valor <code>ResponseType.ACCEPT</code> "
+"de <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ResponseType.html";
+"\">ResponseType</link> (devolverÃa <code>ResponseType.CANCEL</code> si el "
+"usuario pulsara <gui>Cancel</gui>). La sentencia <code>switch</code> "
+"comprueba esto."
+
+#: C/image-viewer.vala.page:262(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next lines get the "
+"filename of the image selected by the user, and tell the <code>GtkImage</"
+"code> widget to load and display the selected image."
+msgstr ""
+"Asumiendo que el usuario pulsà <gui>Abrir</gui>, las siguientes lÃneas "
+"obtienen el nombre de archivo de la imagen seleccionada por el usuario e "
+"indican al widget <code>GtkImage</code> que cargue y muestre la imagen "
+"elegida."
 
-#~ msgid ""
-#~ "To apply the CSS, you set the <code>user-stylesheet-uri</code> in the "
-#~ "<code>create_window</code> function, anywhere after <code>view</code> has "
-#~ "already been defined."
-#~ msgstr ""
-#~ "Para aplicar el CSS, configure la <code>user-stylesheet-uri</code> en la "
-#~ "funciÃn <code>create_window</code>, en cualquier lugar despuÃs de que "
-#~ "<code>view</code> se haya definido."
+#: C/image-viewer.vala.page:265(p) C/image-viewer.py.page:212(p)
+#: C/image-viewer.js.page:298(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 ""
+"En la Ãltima lÃnea de este mÃtodo se destruye el diÃlogo <gui>Abrir</gui> "
+"porque ya no se necesita."
 
-#~ msgid "g_base64_encode has bad args"
-#~ msgstr "g_base64_encode tiene argumentos no vÃlidos"
+#: C/image-viewer.vala.page:266(p)
+msgid "Destroying automatically hides the dialog."
+msgstr "Al destruir se oculta el diÃlogo automÃticamente."
 
-#~ msgid ""
-#~ "Also, make sure to add variable declarations for <code>tmp</code> and "
-#~ "<code>css</code> to the top of <code>create_window</code>."
-#~ msgstr ""
-#~ "AsegÃrese de aÃadir declaraciones de variables para <code>tmp</code> y "
-#~ "<code>css</code> a la parte superior de <code>create_window</code>."
+#: 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 ""
+"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 ""
+"Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
+"<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> para "
+"construir todo otra vez y pulse <guiseq><gui>Ejecutar</gui><gui>Ejecutar</"
+"gui></guiseq> para iniciar la aplicaciÃn."
 
-#~ msgid ""
-#~ "\n"
-#~ "gchar *tmp, *css;\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gchar *tmp, *css;\n"
+#: C/image-viewer.vala.page:275(p)
+msgid ""
+"If you haven't already done so, choose the <file>src/image-viewer</file> "
+"application in the dialog that appears. Finally, hit <gui>Run</gui> and "
+"enjoy!"
+msgstr ""
+"Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>src/visor-imagenes</"
+"file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</gui> y "
+"disfrute."
 
-#~ msgid ""
-#~ "A data URI starts with <sys>data:</sys> and some information about the "
-#~ "content type and how the data is encoded. The actual data follows after a "
-#~ "comma, in this case encoded in Base64. Unlike other URI schemes like "
-#~ "<sys>http:</sys>, <sys>ftp:</sys>, and <sys>file:</sys>, the <sys>data:</"
-#~ "sys> URI scheme doesn't specify where to find a file to load. Rather, it "
-#~ "gives the entire contents of the file."
-#~ msgstr ""
-#~ "Un URI de datos empieza por <sys>data:</sys> y cierta informaciÃn sobre "
-#~ "el tipo de contenido y cÃmo se codifican los datos. Los datos reales "
-#~ "siguen despuÃs de una coma, en este caso, codificados en Base64. A "
-#~ "diferencia de otros esquemas de URI como <sys>http:</sys>, <sys>ftp:</"
-#~ "sys>, y <sys>file:</sys>, the <sys>data:</sys>, el esquema del URI no "
-#~ "especifica dÃnde encontrar un archivo que cargar. En vez de eso, ofrece "
-#~ "el contenido completo del archivo."
+#: C/image-viewer.vala.page:281(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"image-viewer/image-viewer.vala\">coÌdigo de referencia</link>."
+
+#: C/image-viewer.vala.page:285(title) C/image-viewer.py.page:229(title)
+#: C/image-viewer.js.page:315(title) C/image-viewer.cpp.page:215(title)
+#: C/image-viewer.c.page:225(title) C/guitar-tuner.vala.page:263(title)
+#: C/guitar-tuner.py.page:232(title) C/guitar-tuner.cpp.page:268(title)
+#: C/guitar-tuner.c.page:260(title)
+msgid "Next steps"
+msgstr "Siguientes pasos"
+
+#: 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 ""
+"Aquà hay algunas ideas sobre cÃmo puede extender esta sencilla demostraciÃn:"
 
-#~ msgid ""
-#~ "The code above first encodes your CSS definitions in Base64, then "
-#~ "combines that with a fixed string to create a data URI. The "
-#~ "<code>g_strconcat</code> function can take any number of string arguments "
-#~ "and concatenate them all together, so you have to pass <code>NULL</code> "
-#~ "as the final argument so it knows when to stop. And don't forget to free "
-#~ "those temporary strings after you set the stylesheet property."
-#~ msgstr ""
-#~ "El cÃdigo anterior primero codifica las definiciones CSS en Base64, y "
-#~ "luego las combina con una cadena fija para crear una URI de datos. La "
-#~ "funciÃn <code>g_strconcat</code> puede tomar cualquier nÃmero de "
-#~ "argumentos de cadena y concatenarlos todos juntos, por lo que tiene que "
-#~ "pasar <code>NULL</code> como argumento final para que sepa dÃnde parar. "
-#~ "No olvide liberar esas cadenas temporales despuÃs de establecer la "
-#~ "propiedad de la hoja de estilos."
+#: C/image-viewer.vala.page:288(p)
+msgid ""
+"Set it up so that when the window opens it is of a specific size to start "
+"off with. For example, 200 X 200 pixels."
+msgstr ""
+"ConfigÃrela de tal manera que la ventana se abra con un tamaÃo determinado. "
+"Por ejemplo, 200x200 pÃxeles."
 
-#~ msgid ""
-#~ "Build and run the program again. It should now work exactly the same as "
-#~ "at the end of the last section, except the messages will be nicely styled "
-#~ "with a border and a subtle background gradient."
-#~ msgstr ""
-#~ "Construya y ejecute el programa de nuevo. DeberÃa funcionar exactamente "
-#~ "igual que al final de la Ãltima secciÃn, excepto que los mensajes tendrÃn "
-#~ "estilos con un borde y un degradado de fondo sutil."
+#: C/image-viewer.vala.page:290(p) C/image-viewer.py.page:233(p)
+#: C/image-viewer.js.page:319(p) C/image-viewer.cpp.page:219(p)
+#: C/image-viewer.c.page:229(p)
+msgid ""
+"Have the user select a directory rather than a file, and provide controls to "
+"cycle through all of the images in a directory."
+msgstr ""
+"Haga que el usuario selecciona una carpeta en vez de un archivo, y "
+"proporcione controles para moverse por todas las imÃgenes de una carpeta."
 
-#~ msgid "Learn more"
-#~ msgstr "Aprender mÃs"
+#: 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 ""
+"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 y efectos a la imagen cuando se carga y permitir "
+"al usuario guardar la imagen modificada."
 
-#~ msgid ""
-#~ "This tutorial showed you how to create a basic application using GTK+ and "
-#~ "WebKit, including showing a document and manipulating its contents. To "
-#~ "create a real application, you probably want to do a little bit more. Try "
-#~ "adding features on your own. Here are a few ideas:"
-#~ msgstr ""
-#~ "Este tutorial le ha mostrado cÃmo crear una aplicaciÃn sencilla usando GTK"
-#~ "+ y WebKit, incluyendo cÃmo mostrar un documento y manipular su "
-#~ "contenido. Para crear una aplicaciÃn real, probablemente quiera hacer "
-#~ "algo mÃs. Pruebe a aÃadir caracterÃsticas usted mismo. Aquà hay algunas "
-#~ "ideas:"
+#: 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 ""
+"<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> proporciona la "
+"capacidad de manipular imÃgenes de manera potente."
 
-#~ msgid ""
-#~ "If you're comfortable with CSS, try changing the style of the message "
-#~ "display. CSS is easy to get started with, but increasingly more powerful. "
-#~ "There is a wealth of CSS tutorials on the Internet, and just about "
-#~ "everything you can do on the web, you can do in this application."
-#~ msgstr ""
-#~ "Si se siente cÃmo usando CSS, pruebe a cambiar el estilo de la "
-#~ "visualizaciÃn del mensaje. Es fÃcil iniciarse en CSS, pero cada vez es "
-#~ "mÃs potente. Hay una gran cantidad de tutoriales de CSS en Internet, y "
-#~ "casi todo lo que se puede hacer en una pÃgina web, se puede hacer en esta "
-#~ "aplicaciÃn."
+#: 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 ""
+"Allow the user to load images from network shares, scanners, and other more "
+"complicated sources."
+msgstr ""
+"Permitir al usuario cargar imÃgenes desde recursos de red compartidos, "
+"escÃneres y otras fuentes mÃs complicadas."
 
-#~ msgid ""
-#~ "Right now, you lose all your messages whenever you close the message "
-#~ "board. Try saving the HTML contents after each post, and loading the "
-#~ "saved file (if it exists) on startup."
-#~ msgstr ""
-#~ "Ahora mismo, todos los mensajes se pierden al cerras el cuadro de "
-#~ "mensajes. Pruebe a guardar el contenido HTML despuÃs de cada envÃo, y a "
-#~ "cargar el archivo guardado (si existe) al inicio."
+#: 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 ""
+"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 ""
+"Puede usar <link href=\"http://library.gnome.org/devel/gio/unstable/\";>GIO</"
+"link> para gestionar transferencias de archivos de red y similares, y <link "
+"href=\"http://library.gnome.org/devel/gnome-scan/unstable/\";>GNOME Scan</"
+"link> para gestionar el escaneado."
 
-#~ msgid "Link to method to get HTML from DOM and to GIO APIs."
-#~ msgstr "Enlace al mÃtodo para obtener el HTML del DOM y de las API de GIO."
+#: C/image-viewer.py.page:9(desc)
+msgid ""
+"A little bit more than a simple \"Hello world\" application - write an image "
+"viewer in GTK."
+msgstr ""
+"Algo mÃs que una sencilla aplicaciÃn ÂHola mundoÂ; escribir un visor de "
+"imÃgenes en GTK."
 
-#~ msgid ""
-#~ "If you keep your messages around for a long time, you'll start wondering "
-#~ "when you posted them. Add a timestamp to each message when it's posted. "
-#~ "You'll probably want to create some additional child <code>div</code> "
-#~ "elements with different classes that you can style in the CSS."
-#~ msgstr ""
-#~ "Si guarda sus mensajes durante mucho tiempo, empezarà a preguntarse dÃnde "
-#~ "los escribiÃ. AÃada una marca de tiempo a cada mensaje cuando se envÃa. "
-#~ "Probablemente quiera crear algÃn elemento <code>div</code> hijo adicional "
-#~ "con diferentes clases que puede modelar en el CSS."
+#: C/image-viewer.py.page:13(name) C/image-viewer.js.page:13(name)
+msgid "Jonh Wendell"
+msgstr "Jonh Wendell"
 
-#~ msgid "Link to strftime or something"
-#~ msgstr "Enlace a strftime o algo"
+#: C/image-viewer.py.page:14(email) C/image-viewer.js.page:14(email)
+msgid "jwendell gnome org"
+msgstr "jwendell gnome org"
 
-#~ msgid ""
-#~ "This program keeps messages around forever. Think about ways you could "
-#~ "allow the user to delete messages. Perhaps you want messages to disappear "
-#~ "automatically after they're too old, or after there are a certain number "
-#~ "of messages before them. Or you could add a link in each message to "
-#~ "delete it. You could even override the context menu when you right-click "
-#~ "on a message. These features involve exploring WebKit's DOM API more."
-#~ msgstr ""
-#~ "Este programa guarda los mensajes para siempre. Piense alguna manera para "
-#~ "que el usuario pueda borrar mensajes. Tal vez quiera que los mensajes "
-#~ "desaparezca automÃticamente cuando son muy antiguos o despuÃs de que haya "
-#~ "cierto nÃmero de mensajes por delante. O podrÃa aÃadir un enlace en cada "
-#~ "mensaje para borrarlo. TambiÃn puede omitir el menà contextual cuando "
-#~ "pulsa con el botÃn derecho sobe un mensaje. Esta caracterÃsticas implican "
-#~ "explorar mÃs la API del DOM de WebKit."
+#: C/image-viewer.py.page:26(p) C/image-viewer.js.page:26(p)
+msgid ""
+"In this tutorial, we're going to write a very simple GTK application that "
+"loads and displays an image file. You will learn how to:"
+msgstr ""
+"En este tutorial se va a escribir una aplicaciÃn GTK+ muy sencilla que carga "
+"un archivo e imagen y lo muestra. Aprenderà a:"
 
-#~ msgid ""
-#~ "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
-#~ msgstr ""
-#~ "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+#: C/image-viewer.py.page:28(p)
+msgid "Write a basic GTK user interface in Python"
+msgstr "Escribir una interfaz de usuario bÃsica en Python"
 
-#~ msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
-#~ msgstr ""
-#~ "Usar su cÃmara web como un espejo usando el entorno de trabajo GStreamer "
-#~ "y GTK+"
+#: 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 "Trabajar con eventos conectando seÃales a manejadores de seÃales"
 
-#~ msgid "Daniel G. Siegel"
-#~ msgstr "Daniel G. Siegel"
+#: C/image-viewer.py.page:30(p) C/image-viewer.js.page:30(p)
+msgid "Lay out GTK user interfaces using containers"
+msgstr "La disposiciÃn de las interfaces de usuario usando contenedores"
 
-#~ msgid "dgsiegel gnome org"
-#~ msgstr "dgsiegel gnome org"
+#: C/image-viewer.py.page:31(p) C/image-viewer.js.page:31(p)
+msgid "Load and display image files"
+msgstr "Cargar y mostrar archivos de imagen"
 
-#~ msgid "4 Magic Mirror"
-#~ msgstr "4. Espejo mÃgico"
+#: C/image-viewer.py.page:36(p)
+msgid "Basic knowledge of the python programming language"
+msgstr "Conocimiento bÃsico del lenguaje de programaciÃn Python"
 
-#~ msgid ""
-#~ "Your mirror just fell off the wall and broke into a thousand pieces â but "
-#~ "you need a mirror to shave your beard off or add some makeup! You only "
-#~ "have 15 minutes left before catching the bus to work. So what can you do?"
-#~ msgstr ""
-#~ "Su espejo se ha caiÌdo al suelo y se ha roto en miles de pedazos; pero "
-#~ "necesita un espejo para afeitarse o para maquillarse. SoÌlo tiene 15 "
-#~ "minutos antes de coger el autobuÌs para ir al trabajo. ÂQueÌ puede hacer?"
+#: C/image-viewer.py.page:50(p)
+msgid ""
+"Choose <gui>PyGTK (automake)</gui> from the <gui>Python</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>PyGTK (automake)</gui> en la pestaÃa <gui>Python</gui>, "
+"pulse <gui>Continuar</gui>, y rellene los detalles en las siguientes "
+"pÃginas. Use <file>visor-imagenes</file> como nombre del proyecto y de la "
+"carpeta."
 
-#~ msgid ""
-#~ "In this tutorial, we're going to make a program which lets you use your "
-#~ "webcam as a mirror. You will learn how to:"
-#~ msgstr ""
-#~ "En este tutorial se va a hacer un programa que le permite usar su cÃmara "
-#~ "web como un espejo. Aprenderà a:"
+#: 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 ""
+"AsegÃrese de desactivar <gui>Usar GtkBuilder para la interfaz del usuario</"
+"gui>, ya que, en este ejemplo, la interfaz de usuario se construirà "
+"manualmente. Para obtener un ejemplo del uso de diseÃador de interfaces. "
+"revise la <link xref=\"guitar-tuner.py\">demostraciÃn de afinador de "
+"guitarra</link>."
 
-#~ msgid "Create a GTK+ application"
-#~ msgstr "Crear una aplicaciÃn GTK+"
+#: 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 ""
+"Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/visor-"
+"imagenes.py</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
+"gui>. Contiene un ejemplo de cÃdigo muy bÃsico:"
 
-#~ msgid ""
-#~ "Access your webcam using GStreamer and embed the result into a window"
-#~ msgstr ""
-#~ "Acceder a su cÃmara web usando GStreamer y empotrar el resultado en una "
-#~ "ventana"
+#: C/image-viewer.py.page:64(title) C/image-viewer.js.page:125(title)
+msgid "A first Gtk application"
+msgstr "Una primera aplicaciÃn en GTK"
 
-#~ msgid "Grab photos off your webcam"
-#~ msgstr "Obtener las fotos de su cÃmara web"
+#: C/image-viewer.py.page:65(p)
+msgid "Let's see what a very basic Gtk application looks like in Python:"
+msgstr "Vea como queda una aplicacioÌn GTK+ muy baÌsica en Python:"
 
-#~ msgid "You'll need the following to be able to follow this tutorial:"
-#~ msgstr "Necesitarà lo siguiente para poder seguir este tutorial:"
+#: 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 "Eche un vistazo a lo que està pasando:"
 
-#~ msgid ""
-#~ "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
-#~ msgstr ""
-#~ "Una copia instalada del <link xref=\"getting-ready\">EID Anjuta</link>"
+#: 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 ""
+"La primera lÃnea importa el espacio de nombres de GTK+ (es decir, incluye la "
+"biblioteca GTK+). Las bibliotecas las proporciona ÂGObject Introspection "
+"(gi)Â, que implementa asociaciones de lenguajes para la mayorÃa de las "
+"bilbiotecas de GNOME."
 
-#~ msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
-#~ msgstr "Copias instaladas de GTK, GStreamer y de un compilador de Vala"
+#: 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 ""
+"En el mÃtodo <code>__init__</code> de la clase <code>GUI</code> se crea un "
+"<code>Gtk.Window</code> (vacÃa), establece su tÃtulo y despuÃs conecta una "
+"seÃal para salir de la aplicaciÃn una vez que se cierra la ventana. Es "
+"bastante simple, mÃs acerca de seÃales en adelante."
 
-#~ msgid "Basic knowledge of an object-oriented programming language"
-#~ msgstr ""
-#~ "Conocimientos bÃsico de un lenguaje de programaciÃn orientado a objetos"
+#: 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 ""
+"DespuÃs se define <code>destroy</code> que simplemente sale de la "
+"aplicaciÃn. Se le llama a travÃs de la seÃal <code>destroy</code> conectada "
+"anteriormente."
 
-#~ 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 ""
-#~ "Elija <gui>GTK+ (simple)</gui> de la pestaÃa <gui>Vala</gui>, pulse "
-#~ "<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
-#~ "<file>afinador-guitarra</file> como nombre de proyecto y de carpeta."
+#: C/image-viewer.py.page:104(p)
+msgid "The rest of the file does initialisation for Gtk and displays the GUI."
+msgstr ""
+"El resto del archivo realiza la inicializaciÃn de GTK+ y muestra la IGU."
 
-#~ msgid ""
-#~ "Disable <gui>Use GtkBuilder for user interface</gui> as we will create "
-#~ "the UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
-#~ "\">Guitar-Tuner</link> tutorial using the interface builder."
-#~ msgstr ""
-#~ "Desactive la opciÃn <gui>Usar GtkBuilder para la interfaz del usuario</"
-#~ "gui>, ya que, en este tutorial, la interfaz de usuario se crearà "
-#~ "manualmente. Revise el tutorial <link xref=\"guitar-tuner.vala\">afinador-"
-#~ "guitarra</link> usando el constructor de interfaces."
+#: 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 ""
+"Este cÃdigo està listo para usarse, por lo que puede probarlo usando "
+"<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq>. DeberÃa mostrar una "
+"ventana vacÃa."
 
-#~ msgid ""
-#~ "Make sure that <gui>Configure external packages</gui> is selected. On the "
-#~ "next page, select <em>gstreamer-0.10</em> from the list to include the "
-#~ "<app>GStreamer</app> library into your project."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Configurar paquetes externos</gui> està "
-#~ "seleccionada. En la siguiente pÃgina, seleccione <em>gstreamermm-0.10</"
-#~ "em> de la lista para incluir la biblioteca <app>GStreamer</app> en su "
-#~ "proyecto."
+#: C/image-viewer.py.page:113(title) C/image-viewer.js.page:180(title)
+msgid "Signals"
+msgstr "SeÃales"
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or "
-#~ "<gui>File</gui> tabs. You should see some code which starts with the "
-#~ "lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/espejo-"
-#~ "magico.vala</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
-#~ "gui>. DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
+#: 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 ""
+"Las seÃales son un concepto clave en la programaciÃn en GTK. Cuando pasa "
+"algo en un objeto, emite una seÃal; por ejemplo, cuando se pulsa un botÃn, "
+"emite la seÃal <code>clicked</code>. Si quiere que su programa haga algo "
+"cuando ocurre ese evento, debe conectar una funciÃn (un Âmanejador de la "
+"seÃalÂ) a esa seÃal. Aquà hay un ejemplo:"
 
-#~ msgid "Build the code for the first time"
-#~ msgstr "Construir el cÃdigo por primera vez"
+#: 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 ""
+"Las dos Ãltimas lÃneas crean un <code>Gtk.Button</code> llamado <code>b</"
+"code> y conectan su seÃal <code>clicked</code> con la funciÃn "
+"<code>button_clicked</code> que se ha definido anteriormente. Cada vez que "
+"se pulsa un botÃn, se ejecuta el cÃdigo de la funciÃn <code>button_clicked</"
+"code>. Esto sÃlo imprime un mensaje aquÃ."
 
-#~ msgid ""
-#~ "The code loads an (empty) window and shows it. More details are given "
-#~ "below; skip this list if you understand the basics:"
-#~ msgstr ""
-#~ "El cÃdigo carga una ventana (vacÃa) y la muestra. A continuaciÃn hay mÃs "
-#~ "detalles; omita esta lista si entiende los conceptos bÃsicos:"
+#: C/image-viewer.py.page:125(title) C/image-viewer.js.page:211(title)
+msgid "Containers: Laying-out the user interface"
+msgstr "Contenedores: diseÃar la interfaz de usuario"
 
-#~ msgid ""
-#~ "The two <code>using</code> lines import namespaces so we don't have to "
-#~ "name them explicitly."
-#~ msgstr ""
-#~ "Las dos lÃneas <code>using</code> importan espacios de nombres, por lo "
-#~ "que no hay que nombrarlas explÃcitamente."
+#: 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 ""
+"Los widgets (controles, como botones y etiquetas) se pueden organizar en la "
+"ventana usando <em>contenedores</em>. Puede organizar el diseÃo mezclando "
+"diferentes tipos de contenedores, como cajas y rejillas."
 
-#~ msgid ""
-#~ "The constructor of the <code>Main</code> class creates a new window and "
-#~ "sets its title. Afterwards the window is shown and a signal is connected "
-#~ "which quits the application if the window is closed. More on signals "
-#~ "later on."
-#~ msgstr ""
-#~ "El constructor de la clase <code>Main</code> crea una ventana nueva y "
-#~ "establece su tÃtulo. DespuÃs se muestra la ventana y se conecta una seÃal "
-#~ "que cierra la aplicaciÃn si se cierra la ventana. Se verÃn mÃs seÃales "
-#~ "mÃs adelante."
+#: 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 ""
+"Una <code>Gtk.Window</code> es en sà misma un tipo de contenedor, pero sÃlo "
+"puede poner un widget directamente en ella. Se quieren poner dos widgets, "
+"una imagen y un botÃn, por lo que se necesita poner un contenedor Âde mayor "
+"capacidad dentro de la ventana para que contenga otros widgets. Hay varios "
+"<link href=\"http://library.gnome.org/devel/gtk/stable/GtkContainer.html";
+"\">tipos de contenedores</link> disponibles, pero aquà se usarà una "
+"<code>Gtk.Box</code>. Una <code>Gtk.Box</code> puede contener varios "
+"widgets, organizados horizontal o verticalmente. Se pueden hacer diseÃos mÃs "
+"complejos poniendo varias cajas dentro de otras, y asà sucesivamente."
+
+#: 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 ""
+"Hay un diseÃador de interfaces grÃficas llamado <app>Glade</app> integrado "
+"en <app>Anjuta</app> que hace que el diseÃo de IU sea realmente fÃcil. Sin "
+"embargo, para este ejemplo, se va a codificar todo manualmente."
 
-#~ msgid ""
-#~ "The static <code>main</code> function is run by default when you start a "
-#~ "Vala application. It calls a few functions which create the Main class, "
-#~ "set up and then run the application. The <code>Gtk.Main</code> function "
-#~ "starts the GTK main loop, which runs the user interface and starts "
-#~ "listening for events (like clicks and key presses)."
-#~ msgstr ""
-#~ "La funciÃn estÃtica <code>main</code> se ejecuta de manera predeterminada "
-#~ "cuando inicia una aplicaciÃn en Vala. Llama a unas pocas funciones que "
-#~ "crean la clase ÂMainÂ, la configuran y ejecutan la aplicaciÃn. La funciÃn "
-#~ "<code>Gtk.Main</code> inicia el bucle principal de GTK+, que ejecuta la "
-#~ "interfaz de usuario y empieza a escuchar eventos (como pulsaciones del "
-#~ "ratÃn y del teclado)."
+#: 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 ""
+"AÃada la caja y los widgets a la ventana. Inserte el siguiente cÃdigo en el "
+"mÃtodo <code>__init__</code>, justo debajo de la lÃnea <code>window."
+"connect_after</code>:"
 
-#~ msgid ""
-#~ "This code is ready to be used, so you can compile it by clicking "
-#~ "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
-#~ "<keyseq><key>Shift</key><key>F7</key></keyseq>)."
-#~ msgstr ""
-#~ "Este cÃdigo està listo para usarse, por lo que puede compilarlo pulsando "
-#~ "<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> (o "
-#~ "pulsando <keyseq><key>MayÃs</key><key>F7</key></keyseq>)."
+#: 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 ""
+"La primera lÃnea crea una <code>Gtk.Box</code> llamada <code>box</code> y "
+"las siguientes lÃneas establecen dos de sus propiedades: la orientaciÃn "
+"(<code>orientation</code>) se establece a Âvertical (por lo que los widgets "
+"se colocan en columna), y el espaciado (<code>spacing</code>) entre los "
+"widgets se establece a 5 pÃxeles. La siguiente lÃnea aÃade la <code>Gtk.Box</"
+"code> reciÃn creada a la ventana."
+
+#: 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 ""
+"De momento, la ventana sÃlo contiene una <code>Gtk.Box</code> vacÃa, y si "
+"ejecuta el programa ahora no verà ningÃn cambio (la <code>Gtk.Box</code> es "
+"un contenedor transparente, por lo que no puede que està ahÃ)."
 
-#~ msgid ""
-#~ "Change the <gui>Configuration</gui> to <gui>Default</gui> and then press "
-#~ "<gui>Execute</gui> to configure the build directory. You only need to do "
-#~ "this once, for the first build."
-#~ msgstr ""
-#~ "Cambie la <gui>ConfiguraciÃn</gui> a <gui>Predeterminada</gui> y pulse "
-#~ "<gui>Ejecutar</gui> para configurar la carpeta de construcciÃn. SÃlo "
-#~ "necesita hacer esto una vez, para la primera construcciÃn."
+#: C/image-viewer.py.page:144(title) C/image-viewer.js.page:226(title)
+msgid "Packing: Adding widgets to the container"
+msgstr "Empaquetado: aÃadir widgets al contenedor"
 
-#~ msgid "Access the webcam video stream with GStreamer"
-#~ msgstr "Acceder al flujo de vÃdeo de la cÃmara web con GStreamer"
+#: 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 ""
+"Para aÃadir algunos widgets a la <code>Gtk.Box</code>, inserte el siguiente "
+"cÃdigo justo debajo de la lÃnea <code>window.add (box)</code>:"
 
-#~ msgid ""
-#~ "The GStreamer multimedia framework is able to handle video from webcams. "
-#~ "Let's add GStreamer to our application and so we can access the video "
-#~ "stream."
-#~ msgstr ""
-#~ "El entorno multimedia de trabajo GStreamer es capaz de manejar vÃdeo "
-#~ "desde cÃmaras web. AÃada GStreamer a su aplicaciÃn y podrà acceder al "
-#~ "flujo de vÃdeo."
+#: 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 ""
+"La primera lÃnea crea una <code>Gtk.Image</code> llamada <code>image</code>, "
+"que se usarà para mostrar un archivo de imagen. Como se necesitarà mÃs tarde "
+"en el manejador de la seÃal, se definirà como variable a nivel de clase. "
+"Deberà aÃadir <code>image = 0</code> al principio de la clase <code>GUI</"
+"code>. Entonces se aÃade el widget de imagen (<em>packed</em>) en el "
+"contenedor <code>box</code> usando el mÃtodo <link href=\"http://library.";
+"gnome.org/devel/gtk/stable/GtkBox.html#gtk-box-pack-start"
+"\"><code>pack_start</code></link> de GtkBox."
+
+#: 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 ""
+"<code>pack_start</code> toma 4 argumentos: el widget que aÃadir a la GtkBox "
+"(<code>child</code>); si la <code>Gtk.Box</code> debe crecer cuando aÃada el "
+"widget nuevo (<code>expand</code>); si el widget nuevo debe tomar todo el "
+"espacio adicional creado si la <code>Gtk.Box</code> crece (<code>fill</"
+"code>); y cuÃnto espacio debe haber, en pÃxeles, entre el widget y sus "
+"vecinos dentro de la <code>Gtk.Box</code> (<code>padding</code>)."
+
+#: 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-"
+"coordinate location in the window; rather, they are positioned relative to "
+"one another. This makes handling window resizing much easier, and widgets "
+"should automatically take a sensible size in most situations."
+msgstr ""
+"Los contenedores (y los widgets) de GTK+ se expanden dinÃmicamente, si les "
+"deja, para rellenar el espacio disponible. No posicione widgets indicando "
+"unas coordenadas x-y precisas en la ventana; en lugar de eso, se posicionan "
+"relativos a otro. Esto hace que el manejo de la redimensiÃn de las ventanas "
+"sea mÃs fÃcil, y que los widgets tengan un tamaÃo sensible automÃtica en la "
+"mayorÃa de las situaciones."
+
+#: 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</"
+"em> of the <code>Gtk.Box</code>. This allows you to treat all of the "
+"children of a widget as a group; for example, you could hide the <code>Gtk."
+"Box</code>, which would also hide all of its children at the same time."
+msgstr ""
+"TambiÃn tenga en cuenta cÃmo se organizan los widgets de manera jerÃrquica. "
+"Una vez empaquetados en la <code>Gtk.Box</code>, la <code>Gtk.Image</code> "
+"se considera un <em>hijo</em> de la <code>Gtk.Box</code>. Esto le permite "
+"tratar a todos los hijos de un widget como un grupo; por ejemplo, puede "
+"ocultar la <code>Gtk.Box</code>, lo que harÃa que tambiÃn se ocultaran todos "
+"sus hijos a la vez."
+
+#: 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 ""
+"Ahora inserte estas dos lÃneas, justo debajo de las dos que acaba de aÃadir."
 
-#~ msgid ""
-#~ "First we remove the window we created before because GStreamer will take "
-#~ "care of showing the picture on screen."
-#~ msgstr ""
-#~ "Primero se quita la ventana creada anteriormente, ya que GStreamer se "
-#~ "encargarà de mostrar la imagen en la pantalla."
+#: 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>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 ""
+"Estas liÌneas son similares a las dos primeras, pero esta vez crean un "
+"<code>Gtk.Button</code> y lo anÌaden a la <code>box</code>. Tenga en cuenta "
+"que se estaÌ estableciendo el argumento <code>expand</code> (el segundo) a "
+"<code>False</code>, mientras que para la <code>Gtk.Image</code> se "
+"establecià a <code>True</code>. Esto haraÌ que la imagen tome todo el espacio "
+"disponible y que el botoÌn tome soÌlo el espacio que necesite. Cuando se "
+"maximiza la ventana, el tamanÌo del botoÌn seraÌ el mismo, pero el tamanÌo de la "
+"imagen aumentaraÌ junto con el resto de la ventana."
+
+#: 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 "Cargar la imagen: conectar con la seÃal <code>clicked</code> del botÃn"
 
-#~ msgid ""
-#~ "Now we are creating a GStreamer element which accesses our webcam. We are "
-#~ "using the Camerabin element, which is an all-in-one camera element and is "
-#~ "capable of taking photos, videos, applying effects and much more. Perfect "
-#~ "for our use case! With <code>this.camerabin.set_state (Gst.State.PLAYING)"
-#~ "</code> we tell the GStreamer pipeline we just created to start playing. "
-#~ "Easy, no?"
-#~ msgstr ""
-#~ "Ahora se va a crear un elemento de GStreamer que accede a la cÃmara web. "
-#~ "Se va a usar el elemento ÂCamerabinÂ, que es un elemento de cÃmara todo en "
-#~ "uno capaz de hacer fotos, vÃdeos, aplicar efectos y mucho mÃs. Perfecto "
-#~ "para nuestro caso de uso. Con <code>this.camerabin.set_state (Gst.State."
-#~ "PLAYING)</code> se indica a la tuberÃa de GStreamer que se acaba de crear "
-#~ "que empiece a reproducir. FÃcil, Âno?"
+#: C/image-viewer.py.page:164(p)
+msgid ""
+"When the user clicks on the <gui>Open Image...</gui> button, a dialog should "
+"appear so that the user can choose a picture. Once chosen, the picture "
+"should be loaded and shown in the image widget."
+msgstr ""
+"Cuando el usuario pulse sobre el botÃn <gui>Abrir imagen...</gui>, deberÃa "
+"aparece un diÃlogo en el que el usuario pueda elegir una imagen. una vez "
+"elegida, la imagen deberÃa cargarse y mostrarse en el widget de imagen."
 
-#~ msgid ""
-#~ "Of course it is also possible to integrate the video more tighly into "
-#~ "other windows but that is an advanced topic that includes some details of "
-#~ "the X Window System we will omit here."
-#~ msgstr ""
-#~ "Por supuesto, tambiÃn es posible integrar el vÃdeo mÃs ajustadamente en "
-#~ "otras ventanas, pero esto es un tema avanzado que incluye algunos "
-#~ "detalles sobre el sistema ÂX-Window que aquà se omiten."
+#: 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>on_open_clicked</code>. "
+"Put this code immediately after the <code>button = Gtk.Button()</code> line "
+"where the button was created:"
+msgstr ""
+"El primer paso es conectar la seÃal <code>clicked</code> del botÃn a una "
+"funciÃn manejadora de la seÃal, llamada <code>on_open_clicked</code>. Ponga "
+"este cÃdigo inmediatamente despuÃs de la lÃnea <code>button = Gtk.Button()</"
+"code> en la que se creà el botÃn:"
 
-#~ msgid ""
-#~ "Compile and run it again. You will end up with two windows. In the next "
-#~ "step we will integrate the video into the GTK+ window."
-#~ msgstr ""
-#~ "Compile y ejecute de nuevo. Acabarà teniendo dos ventanas. En el "
-#~ "siguiente paso, se integrarà el vÃdeo en una ventana de GTK+."
-
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. "
-#~ "There is also a more <link href=\"magic-mirror/magic-mirror-advanced.vala"
-#~ "\">extensive implementation</link> that embeds the window into a regular "
-#~ "Gtk.Window which involves some advanced techniques, and adds buttons to "
-#~ "start/stop the picture."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su cÃdigo con este <link "
-#~ "href=\"magic-mirror/magic-mirror.vala\">cÃdigo de referencia</link>. "
-#~ "TambiÃn hay una <link href=\"magic-mirror/magic-mirror-advanced.vala"
-#~ "\">implemnetaciÃn mÃs amplia</link> que empotra la ventana en una ventana "
-#~ "GTK regular que implica algunas tÃcnicas avanzadas, y aÃade botones para "
-#~ "iniciar/parar la imagen."
+#: C/image-viewer.py.page:169(p)
+msgid ""
+"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
+"code> method that we will define below."
+msgstr ""
+"Esto conectarà la seÃal <code>clicked</code> al mÃtodo "
+"<code>on_open_clicked</code> que se definirà mÃs adelante."
 
-#~ msgid "Further reading"
-#~ msgstr "Lectura complementaria"
+#: C/image-viewer.py.page:174(title) C/image-viewer.js.page:256(title)
+msgid "Loading the image: Writing the signal's callback"
+msgstr "Cargar la imagen: escribir la llamada de retorno de la seÃal"
 
-#~ msgid ""
-#~ "To find out more about the Vala programming language you might want to "
-#~ "check out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala "
-#~ "Tutorial</link>."
-#~ msgstr ""
-#~ "Para obtener mÃs informaciÃn sobre el lenguaje de programaciÃn Vala, "
-#~ "puede querer revisar el <link href=\"http://live.gnome.org/Vala/Tutorial";
-#~ "\">tutorial de Vala</link>."
+#: C/image-viewer.py.page:175(p)
+msgid ""
+"Now we can create the <code>on_open_clicked</code> method. Insert the "
+"following into the <code>GUI</code> class code block, after the "
+"<code>__init__</code> method:"
+msgstr ""
+"Ahora se puede crear el mÃtodo <code>on_open_clicked</code>. Inserte lo "
+"siguente dentro del bloque de clase <code>GUI</code>, despuÃs del mÃtodo "
+"<code>__init__</code>:"
 
-#~ msgid "Conclusion"
-#~ msgstr "ConclusiÃn"
+#: 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 ""
+"Esto es un poco mÃs complicado que todo lo que se ha intentado hasta ahora, "
+"asà que se puede desglosar:"
 
-#~ msgid ""
-#~ "That's it, you have managed to create a full-featured webcam photo "
-#~ "application in 15 minutes. Now you can shave your beard off or add some "
-#~ "makeup to your beautiful face, right before having a beautiful day at "
-#~ "your workplace, where you can impress your friends and colleagues with an "
-#~ "awesome application you just made in 15 minutes."
-#~ msgstr ""
-#~ "Ya estaÌ, ha conseguido crear una aplicacioÌn de caÌmara web con todas las "
-#~ "funciones de fotos en 15 minutos. Ahora puede afeitarse la barba o "
-#~ "maquillar su bonita cara justo antes de tener un gran diÌa en su trabajo, "
-#~ "donde puede impresionar a sus amigos y colegas con una impresionante "
-#~ "aplicacioÌn que ha hecho en 15 minutos."
+#: C/image-viewer.py.page:194(p)
+msgid ""
+"The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
+"dialog, which the user can use to choose files. We set three properties: the "
+"title of the dialog; the action (type) of the dialog (it's an \"open\" "
+"dialog, but we could have used <code>SAVE</code> if the intention was to "
+"save a file; and <code>transient_for</code>, which sets the parent window of "
+"the dialog."
+msgstr ""
+"La lÃnea que empieza por <code>dialog</code> crea un diÃlogo <gui>Abrir</"
+"gui>, que el usuario puede utilizar para abrir archivos. Se establecen tres "
+"propiedades: el tÃtulo del diÃlogo; la acciÃn (tipo) del diÃlogo (es un "
+"diÃlogo ÂopenÂ, pero se podrÃa haber usado <code>SAVE</code> si se quisiese "
+"guardar un archivo; y <code>transient_for</code>, que establecer la ventana "
+"padre del diÃlogo."
+
+#: 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 "
+"(integer) value that is returned when the button is pressed: 0 for "
+"<gui>Cancel</gui> and 1 for <gui>Open</gui>."
+msgstr ""
+"Las dos siguientes lÃneas aÃaden los botones <gui>Cancelar</gui> y "
+"<gui>Abrir</gui> al diÃlogo. el segundo argumento del mÃtodo "
+"<code>add_button</code> es el valor (entero) que se devuelve cuando se pulsa "
+"el botÃn: 0 para <gui>Cancelar</gui> y 1 para <gui>Abrir</gui>."
 
-#~ msgid ""
-#~ "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
-#~ msgstr ""
-#~ "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+#: 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 "
+"is that the button labels will already be translated into the user's "
+"language."
+msgstr ""
+"Note que se està usando nombres de botones del <em>almacÃn</em> de GTK, en "
+"lugar de escribir manualmente ÂCancelar o ÂAbrirÂ. La ventaja de usar nombres "
+"del almacÃn es que las etiquetas de los botones ya estarÃn traducidas en el "
+"idioma del usuario."
 
-#~ msgid "A little bit more than a simple \"Hello world\" Gtk application."
-#~ msgstr "Algo mÃs que una sencilla aplicaciÃn ÂHola mundo en GTK."
+#: 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 "
+"our case, we are using the <gui>Open</gui> button as default (which has the "
+"value 1)."
+msgstr ""
+"<code>set_default_response</code> determina quà botÃn se activarà si el "
+"usuario hace una doble pulsaciÃn o presiona <key>Intro</key>. En este caso, "
+"se usa el botÃn <gui>Abrir</gui> como predeterminado (que tiene el valor Â1Â)."
 
-#~ msgid "Philip Chimento"
-#~ msgstr "Philip Chimento"
+#: 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 "
+"created first; we then add all kinds of files supported by <code>Gdk.Pixbuf</"
+"code> (which includes most image formats like PNG and JPEG) to the filter. "
+"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+"Las tres lÃneas siguientes restringen el diÃlogo <gui>Abrir</gui> para que "
+"sÃlo muestre archivos que se puedan abrir con <code>Gtk.Image</code>. "
+"Primero se crea un objeto de filtro; luego se aÃaden los tipos de archivos "
+"soportados por el <code>Gdk.Pixbuf</code> (que incluye la mayorÃa de los "
+"formatos de imagen como PNG y JPEG) al filtro. Por Ãltimo, se establece que "
+"este filtro sea el filtro del diÃlogo <gui>Abrir</gui>."
+
+#: C/image-viewer.py.page:207(p)
+msgid ""
+"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
+"wait for the user to choose an image; when they do, <code>dialog.run</code> "
+"will return the value <output>1</output> (it would return <output>0</output> "
+"if the user clicked <gui>Cancel</gui>). The <code>if</code> statement tests "
+"for this."
+msgstr ""
+"<code>dialog.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
+"esperarà a que el usuario elija una imagen; cuando lo haga, <code>dialog."
+"run</code> devolverà el valor <output>1</output> (devolverÃa <output>0</"
+"output> si el usuario pulsara <gui>Cancelar</gui>). La sentencia <code>if</"
+"code> comprueba esto."
 
-#~ msgid "philip chimento gmail com"
-#~ msgstr "philip chimento gmail com"
+#: 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 "
+"the image selected by the user. The <code>Gtk.Image</code> will then load "
+"and display the chosen image."
+msgstr ""
+"Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea "
+"establece la propiedad <code>file</code> de la <code>Gtk.Image</code> al "
+"nombre del archivo de imagen seleccionada por el usuario. La <code>Gtk."
+"Image</code> cargarà y mostrarà la imagen elegida."
 
-#~ msgid "1 Image Viewer"
-#~ msgstr "1. Visor de imÃgenes"
+#: 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 Python and Gtk) in not much time at all!"
+msgstr ""
+"Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
+"ejecutar el cÃdigo. Esto deberÃa ser todo; un visor de imÃgenes "
+"completamente funcional (y un completo tour sobre Python y GTK+) en poco "
+"tiempo."
 
-#~ msgid ""
-#~ "In this tutorial you will create an application which opens and displays "
-#~ "an image file. You will learn:"
-#~ msgstr ""
-#~ "En este tutorial se va a crear un programa que abre un archivo de imagen "
-#~ "y lo muestra. Aprenderà a:"
+#: 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.py\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"image-viewer/image-viewer.py\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "How to set up a basic project using the <link xref=\"getting-ready"
-#~ "\">Anjuta IDE</link>."
-#~ msgstr ""
-#~ "CÃmo configurar un proyecto bÃsico usando el <link xref=\"getting-ready"
-#~ "\">EID Anjuta</link>."
+#: 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 ""
+"Algo mÃs que una sencilla aplicaciÃn ÂHola mundoÂ; escribir un visor de "
+"imÃgenes en GTK. Incluye una introducciÃn al lenguaje JavaScript."
 
-#~ msgid ""
-#~ "How to write a <link href=\"http://developer.gnome.org/platform-overview/";
-#~ "stable/gtk\">Gtk application</link> in Vala"
-#~ msgstr ""
-#~ "CÃmo escribir una <link href=\"http://developer.gnome.org/platform-";
-#~ "overview/stable/gtk\">aplicaciÃn de GTK+</link> en Vala"
+#: C/image-viewer.js.page:28(p)
+msgid "Write a basic GTK user interface in JavaScript"
+msgstr "Escribir una interfaz GTK+ de usuario bÃsica usando JavaScript"
 
-#~ msgid ""
-#~ "Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
-#~ "stable/\">GObject</link> programming"
-#~ msgstr ""
-#~ "Algunos conceptos bÃsicos de programaciÃn en <link href=\"http://";
-#~ "developer.gnome.org/gobject/stable/\">GObject</link>"
+#: C/image-viewer.js.page:36(p)
+msgid "An installed copy of the <em>gjs</em> interpreter"
+msgstr "Una copia instalada del intÃrprete <em>gjs</em>"
 
-#~ msgid ""
-#~ "Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
-#~ "\">Vala</link> programming language."
-#~ msgstr ""
-#~ "Conocimiento baÌsico del lenguaje de programacioÌn <link href=\"https://";
-#~ "live.gnome.org/Vala/Tutorial\">Vala</link>."
+#: C/image-viewer.js.page:37(p)
+msgid "Basic knowledge of any object-orientated programming language"
+msgstr ""
+"Conocimiento bÃsico de cualquier lenguaje de programaciÃn orientado a objetos"
 
-#~ msgid "An installed copy of <app>Anjuta</app>."
-#~ msgstr "Una copia instalada de <app>Anjuta</app>."
+#: 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 ""
+"Elija <gui>Javascript genÃrico</gui> de la pestaÃa <gui>JS</gui>, pulse "
+"<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
+"<file>visor-imÃgenes</file> como nombre de proyecto y de carpeta."
 
-#~ 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 ""
-#~ "Puede que la referencia de la API de <link href=\"http://valadoc.org/gtk+-";
-#~ "3.0/\">gtk+-3.0</link> le resulte Ãtil, aunque no es necesaria para "
-#~ "seguir el tutorial."
+#: C/image-viewer.js.page:54(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. It contains very basic example code."
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/main.js</"
+"file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. Contiene "
+"un ejemplo de cÃdigo muy bÃsico:"
 
-#~ msgid ""
-#~ "Start <app>Anjuta</app> and click <gui>Create a new project</gui> or "
-#~ "<guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></guiseq> to open "
-#~ "the project wizard."
-#~ msgstr ""
-#~ "Inicie <app>Anjuta</app> y pulse <gui>Crear un proyecto nuevo</gui> o "
-#~ "<guiseq><gui>Archivo</gui><gui>Nuevo</gui><gui>Proyecto</gui></guiseq> "
-#~ "para abrir el asistente de proyectos."
+#: C/image-viewer.js.page:61(title)
+msgid "JavaScript basics: Hello World"
+msgstr "JavaScript bÃsico: hola mundo"
 
-#~ 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>Gtk+ (simple)</gui> en la pestaÃa <gui>Vala</gui>, pulse "
-#~ "<gui>Siguiente</gui>, y rellene los detalles en las siguientes pÃginas. "
-#~ "Use <file>visor-imagenes</file> como nombre del proyecto y de la carpeta."
+#: C/image-viewer.js.page:62(p)
+msgid ""
+"Before we start writing the image viewer, let's find out more about the way "
+"JavaScript is used in GNOME. Of course, your very first contact with any "
+"programming language should be the Hello World program which can already be "
+"found in <file>main.js</file>:"
+msgstr ""
+"Antes de empezar a escribir el visor de imÃgenes, averigÃe algo mÃs sobre "
+"cÃmo se usa JavaScript en GNOME. Por supuesto que su primer contacto con un "
+"lenguaje de programaciÃn debe ser el programa ÂHola mundoÂ, que se puede "
+"encontrar en el archivo <file>main.js</file>:"
 
-#~ msgid ""
-#~ "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled "
-#~ "as we will create the UI manually in this tutorial."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
-#~ "està desactivado, ya que, en este tutorial, la IU se crearà manualmente."
+#: C/image-viewer.js.page:63(code)
+#, no-wrap
+msgid "print (\"Hello world!\");"
+msgstr "print (\"ÂHola mundo!\");"
 
-#~ msgid ""
-#~ "You will learn how to use the interface builder in the <link xref="
-#~ "\"guitar-tuner.vala\">Guitar-Tuner</link> tutorial."
-#~ msgstr ""
-#~ "Aprenderà a usar el constructor de interfaces en el tutorial del <link "
-#~ "xref=\"guitar-tuner.vala\">afinador de guitarra</link>."
+#: C/image-viewer.js.page:64(p)
+msgid ""
+"This should look quite natural if you're familiar with almost any other "
+"programming language. The function <code>print</code> is called with the "
+"argument <code>\"Hello world!\"</code>, which will be printed on the screen. "
+"Note that each line of code ends with a semicolon."
+msgstr ""
+"Esto deberÃa resultarle natural si està familiarizado con la mayorÃa del "
+"resto de lenguajes de programaciÃn. La funciÃn <code>print</code> se llama "
+"con el argumento <code>\"ÂHola mundo!\"</code>, que se mostrarà en la "
+"pantalla. Tenga en cuenta que cada lÃnea de cÃdigo termina en Â;Â."
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/main.vala</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. You will see this code:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/main."
-#~ "vala</file> desde las pestaÃas <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "Verà el siguiente cÃdigo:"
+#: C/image-viewer.js.page:68(title)
+msgid "Classes in JavaScript"
+msgstr "Clases en JavaScript"
 
-#~ 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 ""
-#~ "El cÃdigo carga una ventana (vacÃa) desde el archivo de descripciÃn de "
-#~ "interfaz de usuario y la muestra. Se ofrecen mÃs detalles a continuaciÃn; "
-#~ "omita esta lista si entiende los conceptos bÃsicos:"
+#: C/image-viewer.js.page:69(p)
+msgid "This is the standard way to define a class in JavaScript:"
+msgstr "Esta es la manera estÃndar de definir una clase en JavaScript:"
 
-#~ msgid ""
-#~ "The two <code>using</code> lines at the top import namespaces so we don't "
-#~ "have to name them explicitly."
-#~ msgstr ""
-#~ "Las dos lÃneas <code>using</code> importan espacios de nombres, por lo "
-#~ "que no hay que nombrarlas explÃcitamente."
+#: C/image-viewer.js.page:92(p)
+msgid ""
+"This defines a class called <code>MyClass</code>. Let's go through each part "
+"of the class definition:"
+msgstr ""
+"Esto define una clase llamada <code>MyClass</code>. Vea cada una de las "
+"partes de la definiciÃn de la clase:"
 
-#~ 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 ""
-#~ "El constructor de la clase <code>Main</code> crea una ventana (vacÃa) "
-#~ "nueva y conecta una <link href=\"https://live.gnome.org/Vala/";
-#~ "SignalsAndCallbacks\">seÃal</link> para salir de la aplicaciÃn cuando se "
-#~ "cierra esa ventana."
+#: 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."
+msgstr ""
+"<code>function MyClass</code> es el constructor de la clase; su nombre debe "
+"coincidir con el de la clase. Puede acceder a cualquier miembro de la clase "
+"usando el objeto <code>this</code>; aquÃ, el constructor llama al mÃtodo "
+"<code>_init</code> de la clase."
 
-#~ 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 ""
-#~ "Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
-#~ "cuando ocurre algÃn otro evento. AquÃ, se llama a la funciÃn "
-#~ "<code>destroy</code> (y se sale de la aplicaciÃn) cuando cierra la "
-#~ "ventana."
+#: 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."
+msgstr ""
+"El bloque <code>MyClass.prototype</code> es donde define la <em>estructura</"
+"em> de la clase. Cada clase se compone de mÃtodos (funciones) y campos "
+"(variables); en este ejemplo, hay tres mÃtodos y dos campos."
 
-#~ 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 ""
-#~ "La funciÃn <code>static main</code> se ejecuta de manera predeterminada "
-#~ "cuando inicia una aplicaciÃn en Vala. Llama a algunas funciones que crean "
-#~ "la clase <code>Main</code> y configuran y ejecutan la aplicaciÃn. La "
-#~ "funciÃn <link href=\"http://valadoc.org/gtk+-3.0/Gtk.main.html";
-#~ "\"><code>Gtk.main</code></link> inicia el <link href=\"http://en.";
-#~ "wikipedia.org/wiki/Event_loop\">bucle principal</link> de GTK+, que "
-#~ "ejecuta la interfaz de usuario y empieza a escuchar eventos (como "
-#~ "pulsaciones del ratÃn y del teclado)."
-
-#~ msgid "Creating the user interface"
-#~ msgstr "Crear la interfaz de usuario"
+#: 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 ""
+"El primer mÃtodo definido se llama <code>_init</code>, y se especifica que "
+"es una funciÃn sin argumentos:"
 
-#~ msgid ""
-#~ "Now we will bring life into the empty window. GTK organizes the user "
-#~ "interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
-#~ "html\"><code>Gtk.Container</code></link>s that can contain other widgets "
-#~ "and even other containers. Here we will use the simplest available "
-#~ "container, a <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-#~ "html\"><code>Gtk.Box</code></link>."
-#~ msgstr ""
-#~ "Ahora se darà vida a la ventana vacÃa. GTK+ organiza la interfaz de "
-#~ "usuario con varios <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.";
-#~ "Container.html\"><code>Gtk.Container</code></link> que pueden contener "
-#~ "otros widgets e incluso otros contenedores. Aquà se usarà el contenedor "
-#~ "mÃs sencillo disponible, una <link href=\"http://unstable.valadoc.org/gtk";
-#~ "+-2.0/Gtk.Box.html\"><code>Gtk.Box</code></link>."
+#: C/image-viewer.js.page:102(code)
+#, no-wrap
+msgid "_init: function ()"
+msgstr "_init: function ()"
 
-#~ msgid "Add the following lines to the top of the <code>Main</code> class:"
-#~ msgstr ""
-#~ "AÃada las siguientes lÃneas a la parte superior de la clase <code>Main</"
-#~ "code>:"
+#: 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 ""
+"Se escribe la funciÃn entre corchetes. Aquà se definen dos campos, "
+"<code>propertyA</code> y <code>propertyB</code>. La primera se establece "
+"como una cadena, y la segunda se establece como un entero (10). La funciÃn "
+"no retorna ningÃn valor."
 
-#~ msgid "Now replace the current constructor with the one below:"
-#~ msgstr "Ahora reemplace el constructor actual con el siguiente:"
+#: C/image-viewer.js.page:106(p)
+msgid ""
+"The next method is called <code>aMethod</code> and has two arguments, which "
+"it prints out when you call it. The final method is <code>dumpProperties</"
+"code>, and prints the fields <code>propertyA</code> and <code>propertyB</"
+"code>."
+msgstr ""
+"El siguiente mÃtodo se llama <code>aMethod</code> y tiene dos argumentos que "
+"imprime cuando se invoca. El Ãltimo mÃtodo es <code>dumpProperties</code>, "
+"que imprime los campos <code>propertyA</code> y <code>propertyB</code>."
 
-#~ msgid ""
-#~ "The first two lines are the parts of the GUI that we will need to access "
-#~ "from more than one method. We declare them up here so that they are "
-#~ "accessible throughout the class instead of only in the method where they "
-#~ "are created."
-#~ msgstr ""
-#~ "Las dos primeras lÃneas son partes de la IGU a las que se debe acceder "
-#~ "desde mÃs de un mÃtodo. Se declaran aquÃ, por lo que son accesibles "
-#~ "mediante la clase en vez de serlo solamente en el mÃtodo en el que se "
-#~ "crearon."
+#: C/image-viewer.js.page:109(p)
+msgid ""
+"Note how the class definition (prototype) is arranged; each function "
+"definition is separated by a comma."
+msgstr ""
+"Tenga en cuenta cÃmo se ordena la definiciÃn de la clase (prototipo); cada "
+"definiciÃn de funciÃn se separa con una coma."
 
-#~ 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 ""
-#~ "Las primeras lÃneas del constructor crean la ventana vacÃa. Las "
-#~ "siguientes lÃneas crean los widgets que se quieren usar: un botÃn para "
-#~ "abrir una imagen, el widget de la vista de la imagen en sà y la caja que "
-#~ "se usarà como contenedor."
+#: C/image-viewer.js.page:113(p)
+msgid "Now that MyClass has been defined, we can play with it:"
+msgstr "Ahora que ÂMyClass se ha definido, se puede jugar con ella:"
 
-#~ msgid ""
-#~ "The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-#~ "pack_start.html\"><code>pack_start</code></link> add the two widgets to "
-#~ "the box and define their behaviour. The image will expand into any "
-#~ "available space whereas the button will just be as big as needed. You "
-#~ "will notice that we don't set explicit sizes on the widgets. In GTK this "
-#~ "is usually not needed as it makes it much easier to have a layout that "
-#~ "looks good in different window sizes. Next, the box is added to the "
-#~ "window."
-#~ msgstr ""
-#~ "Las llamadas a <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-#~ "pack_start.html\"><code>pack_start</code></link> aÃaden los dos widgets a "
-#~ "la caja y definen su comportamiento. La imagen se expandirà en cualquier "
-#~ "espacio disponible, mientras que el botÃn serà tan grande como se "
-#~ "necesite. Se darà cuenta de que no se establecen tamaÃos explÃcitos de "
-#~ "los widgets. Generalmente, en GTK+ no se necesita ya que hace que sea "
-#~ "mucho mÃs sencillo tener una distribuciÃn que se ve bien con diferentes "
-#~ "tamaÃos de la ventana. A continuaciÃn, se aÃade la caja a la ventana."
+#: C/image-viewer.js.page:119(p)
+msgid ""
+"This code creates a new instance of the class called <code>o</code>, runs "
+"<code>aMethod</code>, changes <code>propertyA</code> to a different string, "
+"and then calls <code>dumpProperties</code> (which outputs the fields)."
+msgstr ""
+"Este cÃdigo crear una instancia nueva de la clase llamada <code>o</code>, "
+"ejecuta <code>aMethod</code>, cambia <code>propertyA</code> a una cadena "
+"diferente y entonces llama a <code>dumpProperties</code> (que muestra los "
+"campos)."
 
-#~ msgid ""
-#~ "We need to define what happens when the user clicks on the button. GTK "
-#~ "uses the concept of <em>signals</em>."
-#~ msgstr ""
-#~ "Se debe definir quà pasa cuando el usuario pulsa en el botÃn. GTK+ usa el "
-#~ "concepto de <em>seÃales</em>."
+#: 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 ""
+"Guarde el cÃdigo en el archivo <file>main.js</file> y ejecÃtelo usando "
+"<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> desde el menà o "
+"usando la barra de herramientas."
 
-#~ msgid ""
-#~ "When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html";
-#~ "\">button</link> is clicked, it fires the <link href=\"http://valadoc.org/";
-#~ "gtk+-3.0/Gtk.Button.clicked.html\"><code>clicked</code></link> signal, "
-#~ "which we can connect to some action (defined in a <link href=\"https://";
-#~ "live.gnome.org/Vala/SignalsAndCallbacks\">callback</link> method)."
-#~ msgstr ""
-#~ "Cuando se pulsa el <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.";
-#~ "html\">botÃn</link> se emite la seÃal <link href=\"http://valadoc.org/gtk";
-#~ "+-3.0/Gtk.Button.clicked.html\"><code>clicked</code></link>, que se puede "
-#~ "conectar a alguna acciÃn (definida en un mÃtodo de un <link href="
-#~ "\"https://live.gnome.org/Vala/SignalsAndCallbacks\";>retorno de la "
-#~ "llamada</link>)."
+#: C/image-viewer.js.page:126(p)
+msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+msgstr "Vea como queda una aplicaciÃn GTK+ muy bÃsica en JavaScript:"
 
-#~ 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 ""
-#~ "Esto se hace usando el mÃtodo <code>connect</code> de la seÃal "
-#~ "<code>clicked</code> de los botones, que en este caso indica a GTK+ que "
-#~ "llame al mÃtodo del retorno de la llamada <code>on_image_open</code> "
-#~ "(todavÃa no definida) cuando se pulsa el botÃn. El <em>retorno de la "
-#~ "llamada</em> se definirà en la siguiente secciÃn."
+#: C/image-viewer.js.page:142(p)
+msgid ""
+"<code>Gtk.init</code> initializes the Gtk library; this statement is "
+"mandatory for all Gtk programs."
+msgstr ""
+"<code>Gtk.init</code> inicializa la biblioteca GTK; esta sentencia es "
+"obligatoria para todos los programas GTK."
 
-#~ msgid ""
-#~ "In the callback, we need to access the <code>window</code> and "
-#~ "<code>image</code> widgets, which is why we defined them as private "
-#~ "members at the top of our class."
-#~ msgstr ""
-#~ "En el retorno de la llamada, se debe acceder a los widgets <code>window</"
-#~ "code> y <code>image</code> que es por lo que se definen como miembros "
-#~ "privados en la parte superior de la clase."
+#: C/image-viewer.js.page:145(p)
+msgid ""
+"The next line creates the main window by creating a new <code>Gtk.Window</"
+"code> object. You can pass several properties to the window's constructor by "
+"using the syntax <code>{property: value, property: value, ...}</code>. In "
+"this case we are setting the title of the window."
+msgstr ""
+"La siguiente lÃnea crea la ventana principal creando un objeto <code>Gtk."
+"Window</code>. Puede pasar varias propiedades al constructor de la ventana "
+"usando la sintaxis <code>{property: value, property: value, ...}</code>. En "
+"este caso, se està estableciendo el tÃtulo de la ventana."
 
-#~ msgid ""
-#~ "The last <code>connect</code> call makes sure that the application exits "
-#~ "when the window is closed. The code generated by Anjuta called an "
-#~ "<code>on_destroy</code> callback method which called <link href=\"http://";
-#~ "www.valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></"
-#~ "link>, but just connecting our signal to <code>main_quit</code> directly "
-#~ "is easier. You can delete the <code>on_destroy</code> method."
-#~ msgstr ""
-#~ "La Ãltima llamada a <code>connect</code> asegura que la aplicaciÃn "
-#~ "termina cuando se cierra la ventana. El cÃdigo generado por Anjuta "
-#~ "llamaba a un mÃtodo <code>on_destroy</code> que llamaba a <link href="
-#~ "\"http://www.valadoc.org/gtk+-2.0/Gtk.main_quit.html\";><code>Gtk."
-#~ "main_quit</code></link>, pero simplemente conectando la seÃal "
-#~ "<code>main_quit</code> directamente es mÃs fÃcil. Puede eliminar el "
-#~ "mÃtodo <code>on_destroy</code>."
+#: C/image-viewer.js.page:146(p)
+msgid ""
+"The next line explicitly shows the window. In Gtk, every widget is hidden by "
+"default."
+msgstr ""
+"La siguiente lÃnea muestra explÃcitamente la ventana. En GTK+, cada widget "
+"està oculto de manera predeterminada."
 
-#~ msgid "Showing the image"
-#~ msgstr "Mostrar la imagen"
+#: C/image-viewer.js.page:147(p)
+msgid ""
+"Finally, <code>Gtk.main</code> runs the main loop â in other words, it "
+"executes the program. The main loop listens for events (signals) from the "
+"user interface and then calls a signal handler which will do something "
+"useful. We'll learn more about signals shortly."
+msgstr ""
+"Finalmente, <code>Gtk.main</code> ejecuta el bucle principal; en otras "
+"palabras, ejecuta el programa. El bucle principal escucha los eventos "
+"(seÃales) de la interfaz del usuario y llama a un manejador de la seÃal que "
+"harà algo Ãtil. En breve aprenderà mÃs cosas sobre las seÃales."
 
-#~ 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 ""
-#~ "Ahora se definirà el manejador de la seÃal <em>clicked</em> para el botÃn "
-#~ "mencionado anteriormente. AÃada este cÃdigo despuÃs del constructor."
+#: 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 ""
+"Guarde el cÃdigo en <file>main.js</file> y ejecÃtelo. Notarà que la "
+"aplicaciÃn no termina cuando cierra la ventana. Esto es porque todavÃa no se "
+"ha configurado un manejador de seÃal para gestionar la seÃal <code>destroy</"
+"code> (cerrar) de la ventana. Esto se harà en breve, pero por el momento "
+"puede pulsar <keyseq><key>Ctrl</key><key>C</key></keyseq> en la ventana de "
+"la terminal para salir del programa."
+
+#: C/image-viewer.js.page:155(title)
+msgid "Adding classes"
+msgstr "AÃadir 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 ""
+"La manera correcta de programar en GTK+ es usando clases. Reescriba el "
+"cÃdigo que acaba de escribir usando clases:"
 
-#~ msgid "This is a bit complicated, so let's break it down:"
-#~ msgstr "Esto es un poco mÃs complicado, asà que se puede desglosar:"
+#. 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 ""
+"Tenga en cuenta que el programa es el mismo; simplemente se ha movido el "
+"cÃdigo de creaciÃn de la ventana a la clase <code>ImageViewer</code>. El "
+"constructor de la clase llama al mÃtodo <code>_init</code>, que crea y "
+"muestra la ventana. Se crea entonces una instancia de la clase antes de "
+"ejecutar el bucle principal (<code>Gtk.main</code>)."
 
-#~ msgid ""
-#~ "A signal handler is a type of callback method that is called when a "
-#~ "signal is emitted. Here the terms are used interchangeably."
-#~ msgstr ""
-#~ "Un manejador de seÃal es un tipo de mÃtodo de retorno de la llamada al "
-#~ "que se llama cuando se emite la seÃal. Aquà se usan los tÃrminos "
-#~ "intercambiados."
+#: 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 ""
+"El cÃdigo es modular y se puede dividir el varios archivos fÃcilmente. Esto "
+"hace que sea mÃs limpio y fÃcil de leer."
 
-#~ msgid ""
-#~ "The first argument of the callback method is always the widget that sent "
-#~ "the signal. Sometimes other arguments related to the signal come after "
-#~ "that, but <em>clicked</em> doesn't have any."
-#~ msgstr ""
-#~ "El primer argumento del mÃtodo del retorno de la llamada es siempre el "
-#~ "widget que envÃa la seÃal. A veces hay otros argumentos relativos a la "
-#~ "seÃal que vienen despuÃs, pero <em>clicked</em> no tiene ninguno."
+#: C/image-viewer.js.page:189(p)
+msgid "The syntax for connecting any signal to a function is:"
+msgstr "La sintaxis para conectar cualquier seÃal a una funciÃn es:"
 
-#~ msgid ""
-#~ "In this case the <code>button</code> sent the <code>clicked</code> "
-#~ "signal, which is connected to the <code>on_open_image</code> callback "
-#~ "method:"
-#~ msgstr ""
-#~ "En este caso, el <code>button</code> envÃa la seÃal <code>clicked</code>, "
-#~ "que se conecta al mÃtodo del retorno de la llamada <code>on_open_image</"
-#~ "code>:"
+#: 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 ""
+"Puede encontrar definiciones de seÃales para cualquier objeto en la <link "
+"href=\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>referencia de "
+"clases de GTK+</link>."
 
-#~ msgid ""
-#~ "The <code>on_open_image</code> method takes the button that emitted the "
-#~ "signal as an argument:"
-#~ msgstr ""
-#~ "El mÃtodo <code>on_open_image</code> toma como argumento el botÃn que ha "
-#~ "emitido la seÃal:"
+#: C/image-viewer.js.page:195(p)
+msgid ""
+"You can simplify the code by making use of an inline function definition:"
+msgstr "Puede simplificar el cÃdigo usando una definiciÃn de funciÃn en lÃnea:"
 
-#~ msgid ""
-#~ "The next interesting line is where the dialog for choosing the file is "
-#~ "created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
-#~ "FileChooserDialog.html\"><code>FileChooserDialog</code></link>'s "
-#~ "constructor takes the title of the dialog, the parent window of the "
-#~ "dialog and several options like the number of buttons and their "
-#~ "corresponding values."
-#~ msgstr ""
-#~ "La siguiente lÃnea interesante es en la que se crea el diÃlogo para "
-#~ "elegir el archivo. El constructor de  <link href=\"http://www.valadoc.org/";
-#~ "gtk+-3.0/Gtk.FileChooserDialog.html\"><code>FileChooserDialog</code></"
-#~ "link> toma el tÃtulo del diÃlogo, la ventana padre del diÃlogo y varias "
-#~ "opciones como el nÃmero de botones y sus valores correspondientes."
+#: C/image-viewer.js.page:203(title)
+msgid "Closing the window"
+msgstr "Cerrar la ventana"
 
-#~ msgid ""
-#~ "Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-";
-#~ "3.0/Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead "
-#~ "of manually typing \"Cancel\" or \"Open\". The advantage of using stock "
-#~ "names is that the button labels will already be translated into the "
-#~ "user's language."
-#~ msgstr ""
-#~ "Tenga en cuenta que se està usando nombres de botones del <link href="
-#~ "\"http://unstable.valadoc.org/gtk+-3.0/Gtk.Stock.html\";><em>almacÃn</em></"
-#~ "link> de GTK+, en lugar de escribir manualmente ÂCancelar o ÂAbrirÂ. La "
-#~ "ventaja de usar nombres del almacÃn es que las etiquetas de los botones "
-#~ "ya estarÃn traducidas en el idioma del usuario."
+#: 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 ""
+"Cuando cierra una ventana de GTK, realmente no se cierra, se oculta. Esto le "
+"permite mantener la ventana (lo que es Ãtil si quiere preguntar al usuario "
+"si realmente quiere cerrar la ventana, por ejemplo)."
 
-#~ msgid ""
-#~ "The next two lines restrict the <gui>Open</gui> dialog to only display "
-#~ "files which can be opened by <em>GtkImage</em>. GtkImage is a widget "
-#~ "which displays an image. A filter object is created first; we then add "
-#~ "all kinds of files supported by <link href=\"http://www.valadoc.org/gdk-";
-#~ "pixbuf-2.0/Gdk.Pixbuf.html\"><code>Gdk.Pixbuf</code></link> (which "
-#~ "includes most image formats like PNG and JPEG) to the filter. Finally, we "
-#~ "set this filter to be the <gui>Open</gui> dialog's filter."
-#~ msgstr ""
-#~ "Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
-#~ "soÌlo muestre archivos que se puedan abrir con <code>GtkImage</code>. "
-#~ "GtkImage es un widget que muestra una imagen. Primero se crea un objeto; "
-#~ "luego se anÌaden los tipos de archivos soportados por el <link href="
-#~ "\"http://www.valadoc.org/gdk-pixbuf-2.0/Gdk.Pixbuf.html\";><code>Gdk."
-#~ "Pixbuf</code></link> (que incluye la mayoriÌa de los formatos de imagen "
-#~ "como PNG y JPEG) al filtro. Por uÌltimo, se establece que este filtro sea "
-#~ "el filtro del diaÌlogo <gui>Abrir</gui>."
+#: 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 ""
+"En este caso, simplemente se quiere cerrar la ventana. La manera mÃs "
+"sencilla de hacerlo es conectar la seÃal <code>hide</code> del objeto "
+"GtkWindow a una funciÃn que cierra la aplicaciÃn. Vuelva al archivo "
+"<file>image-viewer.js</file> y aÃada el siguiente cÃdigo al mÃtodo "
+"<code>_init</code>, en la lÃnea anterior a <code>this.window.show</code>:"
 
-#~ 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 ""
-#~ "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
-#~ "\"><code>dialog.run</code></link> muestra el diÃlogo <gui>Abrir</gui>. El "
-#~ "diÃlogo esperarà a que el usuario seleccione una imagen; cuando lo haga, "
-#~ "<code>dialog.run</code> devolverà el valor <code>ResponseType.ACCEPT</"
-#~ "code> de <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ResponseType.";
-#~ "html\">ResponseType</link> (devolverÃa <code>ResponseType.CANCEL</code> "
-#~ "si el usuario pulsara <gui>Cancel</gui>). La sentencia <code>switch</"
-#~ "code> comprueba esto."
+#: 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);"
 
-#~ msgid ""
-#~ "Assuming that the user did click <gui>Open</gui>, the next lines get the "
-#~ "filename of the image selected by the user, and tell the <code>GtkImage</"
-#~ "code> widget to load and display the selected image."
-#~ msgstr ""
-#~ "Asumiendo que el usuario pulsà <gui>Abrir</gui>, las siguientes lÃneas "
-#~ "obtienen el nombre de archivo de la imagen seleccionada por el usuario e "
-#~ "indican al widget <code>GtkImage</code> que cargue y muestre la imagen "
-#~ "elegida."
+#: 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 ""
+"Esto conecta la seÃal <code>hide</code> de la ventana con la funciÃn "
+"<code>main_quit</code> de GTK, que termina la ejecuciÃn del bucle principal "
+"de GTK. Una vez que el bucle principal termina, la funciÃn <code>Gtk.main</"
+"code> retorna. El programa puede continuar ejecutando cualquier cÃdigo que "
+"haya despuÃs de la lÃnea <code>Gtk.main ();</code>, pero como no hay ningÃn "
+"cÃdigo despuÃs de ese punto, el programa simplemente termina."
+
+#: 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 above the <code>this.window.show</"
+"code> line:"
+msgstr ""
+"AÃada la caja y los widgets a la ventana. Inserte el siguiente cÃdigo en el "
+"mÃtodo <code>_init</code>, justo debajo de la lÃnea <code>this.window.show</"
+"code>:"
 
-#~ msgid ""
-#~ "In the final line of this method, we destroy the <gui>Open</gui> dialog "
-#~ "because we don't need it any more."
-#~ msgstr ""
-#~ "En la Ãltima lÃnea de este mÃtodo se destruye el diÃlogo <gui>Abrir</gui> "
-#~ "porque ya no se necesita."
+#: C/image-viewer.js.page:221(p)
+msgid ""
+"The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
+"and sets two of its properties: the <code>orientation</code> is set to "
+"vertical (so widgets are arranged in a column), and the <code>spacing</code> "
+"between the widgets is set to 0 pixels. The next line then adds the newly-"
+"created <code>Gtk.Box</code> to the window."
+msgstr ""
+"La primera lÃnea crea una <code>Gtk.Box</code> llamada <code>main_box</code> "
+"y establece dos de sus propiedades: la <code>orientation</code> se establece "
+"a Âvertical (por lo que los widgets se ordenan en columna), y el "
+"<code>spacing</code> entre los widgets, que se establece a 0 pÃxeles. La "
+"siguiente lÃnea aÃade la <code>Gtk.Box</code> reciÃn creada a la ventana."
 
-#~ msgid "Destroying automatically hides the dialog."
-#~ msgstr "Al destruir se oculta el diÃlogo automÃticamente."
+#: 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>this.window.add (main_box)</code> line:"
+msgstr ""
+"Para aÃadir algunos widgets a la <code>Gtk.Box</code>, inserte el siguiente "
+"cÃdigo justo debajo de la lÃnea <code>this.window.add (main_box)</code>:"
 
-#~ msgid ""
-#~ "All of the code should now be ready to go. Click <guiseq><gui>Build</"
-#~ "gui><gui>Build Project</gui></guiseq> to build everything again, and then "
-#~ "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start the "
-#~ "application."
-#~ msgstr ""
-#~ "Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
-#~ "<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> para "
-#~ "construir todo otra vez y pulse <guiseq><gui>Ejecutar</gui><gui>Ejecutar</"
-#~ "gui></guiseq> para iniciar la aplicaciÃn."
+#: 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."
+msgstr ""
+"La primera lÃnea crea una <code>Gtk.Image</code> nueva llamada <code>image</"
+"code>, que se usarà para mostrar un archivo de imagen. Entonces, se aÃade el "
+"widget de imagen (<em>packed</em>) al contenedor <code>main_box</code> "
+"usando el mÃtodo <link href=\"http://library.gnome.org/devel/gtk/stable/";
+"GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> de <code>Gtk."
+"Box</code>."
+
+#: C/image-viewer.js.page:232(p)
+msgid ""
+"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
+"the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
+"code> should grow larger when the new widget is added (<code>expand</code>); "
+"whether the new widget should take up all of the extra space created if the "
+"<code>Gtk.Box</code> gets bigger (<code>fill</code>); and how much space "
+"there should be, in pixels, between the widget and its neighbors inside the "
+"<code>Gtk.Box</code> (<code>padding</code>)."
+msgstr ""
+"<code>pack_start</code> toma 4 argumentos: el widget que aÃadir a la "
+"<code>Gtk.Box</code> (<code>child</code>); indica si la <code>Gtk.Box</code> "
+"debe crecer a lo largo cuando se aÃade el widget nuevo (<code>expand</"
+"code>); indica si el widget nuevo debe tomar todo el espacio adicional "
+"creado si la <code>Gtk.Box</code> se hace mÃs grande (<code>fill</code>); y "
+"cuÃnto espacio debe haber, en pÃxeles, entre el widget y los demÃs widgets "
+"dentro de la <code>Gtk.Box</code> (<code>padding</code>)."
+
+#: C/image-viewer.js.page:239(p)
+msgid ""
+"These lines are similar to the first two, but this time they create a "
+"<code>Gtk.Button</code> and add it to <code>main_box</code>. Notice that we "
+"are setting the <code>expand</code> argument (the second one) to "
+"<code>false</code> here, whereas it was set to <code>true</code> for the "
+"<code>Gtk.Image</code>. This will cause the image to take up all available "
+"space and the button to take only the space it needs. When you maximize the "
+"window, the button size will remain the same, but the image size will "
+"increase, taking up all of the rest of the window."
+msgstr ""
+"Estas lÃneas son similares a las dos primeras, pero esta vez crean un "
+"<code>Gtk.Button</code> y lo aÃaden a la <code>main_box</code>. Tenga en "
+"cuenta que aquà se està estableciendo el argumento <code>expand</code> (el "
+"segundo) a <code>false</code>, mientras que para la <code>Gtk.Image</code> "
+"se establecià a <code>true</code>. Esto harà que la imagen tome todo el "
+"espacio disponible y que el botÃn tome sÃlo el espacio que necesite. Cuando "
+"se maximiza la ventana, el tamaÃo del botÃn serà el mismo, pero el tamaÃo de "
+"la imagen aumentarà junto con el resto de la ventana."
+
+#: C/image-viewer.js.page:240(p)
+msgid ""
+"Finally, we must change the <code>this.window.show ();</code> line to read:"
+msgstr ""
+"Finalmente, se debe cambiar la lÃnea <code>this.window.show ();</code> para "
+"leer:"
 
-#~ msgid ""
-#~ "If you haven't already done so, choose the <file>src/image-viewer</file> "
-#~ "application in the dialog that appears. Finally, hit <gui>Run</gui> and "
-#~ "enjoy!"
-#~ msgstr ""
-#~ "Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>src/visor-imagenes</"
-#~ "file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</gui> y "
-#~ "disfrute."
+#: C/image-viewer.js.page:241(code)
+#, no-wrap
+msgid "this.window.show_all ();"
+msgstr "this.window.show_all ();"
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"image-viewer/image-viewer.vala\">coÌdigo de referencia</link>."
+#: 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 ""
+"Esto mostrarà el hijo de la ventana de GTK, y todos sus hijos, y los hijos "
+"de sus hijos, etcÃtera. (Recuerde que los widgets de GTK estÃn ocultos de "
+"manera predeterminada.)"
 
-#~ msgid "Next steps"
-#~ msgstr "Siguientes pasos"
+#: C/image-viewer.js.page:247(p)
+msgid ""
+"When the user clicks on the <gui>Open</gui> button, a dialog should appear "
+"so that the user can choose a picture. Once chosen, the picture should be "
+"loaded and shown in the image widget."
+msgstr ""
+"Cuando el usuario pulse en el botÃn <gui>Abrir</gui>, debe aparecer un "
+"diÃlogo en el que el usuario pueda elegir una imagen. una vez elegida, la "
+"imagen se debe cargar y mostrar en el widget de imagen."
 
-#~ msgid ""
-#~ "Here are some ideas for how you can extend this simple demonstration:"
-#~ msgstr ""
-#~ "Aquà hay algunas ideas sobre cÃmo puede extender esta sencilla "
-#~ "demostraciÃn:"
+#: 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>_openClicked</code>. Put "
+"this code immediately after the <code>var open_button = new Gtk.Button</"
+"code> line where the button was created:"
+msgstr ""
+"El primer paso es conectar la seÃal <code>clicked</code> del botÃn a una "
+"funciÃn manejadora de la seÃal, llamada <code>_openClicked</code>. Ponga "
+"este cÃdigo inmediatamente despuÃs de la lÃnea <code>var open_button = new "
+"Gtk.Button</code> en la que se creà el botÃn:"
 
-#~ msgid ""
-#~ "Set it up so that when the window opens it is of a specific size to start "
-#~ "off with. For example, 200 X 200 pixels."
-#~ msgstr ""
-#~ "ConfigÃrela de tal manera que la ventana se abra con un tamaÃo "
-#~ "determinado. Por ejemplo, 200x200 pÃxeles."
+#: C/image-viewer.js.page:251(p)
+msgid ""
+"We are using the <em>Lang</em> JavaScript helper here. It allows us to "
+"connect a <em>class method</em> to the signal, rather than a plain function "
+"(without a class) which we had used before for the window's <code>hide</"
+"code> signal. Don't worry about this for now, it's just a technical detail. "
+"For it to work, you also need to put the following line at the top of the "
+"file:"
+msgstr ""
+"Aquà se està usando el JavaScript auxiliar <em>Lang</em>. Permite conectar "
+"un <em>mÃtodo de clase</em> a la seÃal, en vez de una funciÃn normal (sin "
+"clase) que se haya usado anteriormente para seÃal <code>hide</code> de la "
+"ventana. No se preocupe por esto ahora, es sÃlo un detalle tÃcnico. Para que "
+"funcione, debe poner tambiÃn la siguiente lÃnea en la parte superior del "
+"archivo:"
+
+#: C/image-viewer.js.page:252(code)
+#, no-wrap
+msgid "const Lang = imports.lang;"
+msgstr "const Lang = imports.lang;"
 
-#~ msgid ""
-#~ "Have the user select a directory rather than a file, and provide controls "
-#~ "to cycle through all of the images in a directory."
-#~ msgstr ""
-#~ "Haga que el usuario selecciona una carpeta en vez de un archivo, y "
-#~ "proporcione controles para moverse por todas las imÃgenes de una carpeta."
+#: C/image-viewer.js.page:257(p)
+msgid ""
+"Now we can create the <code>_openClicked()</code> method. Insert the "
+"following into the <code>ImageViewer.prototype</code> code block, after the "
+"<code>_init</code> method (and not forgetting the comma):"
+msgstr ""
+"Ahora se puede crear el mÃtodo <code>_openClicked()</code>. Inserte el "
+"siguiente cÃdigo en el bloque de cÃdigo de <code>ImageViewer.prototype</"
+"code>, despuÃs del mÃtodo <code>_init</code> (y no olvide la coma):"
 
-#~ msgid ""
-#~ "Apply random filters and effects to the image when it is loaded and allow "
-#~ "the user to save the modified image."
-#~ msgstr ""
-#~ "Aplicar filtros aleatorios y efectos a la imagen cuando se carga y "
-#~ "permitir al usuario guardar la imagen modificada."
+#: C/image-viewer.js.page:280(p)
+msgid ""
+"The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
+"dialog, which the user can use to choose files. We set four properties: the "
+"title of the dialog; the action (type) of the dialog (it's an \"open\" "
+"dialog, but we could have used <code>SAVE</code> if the intention was to "
+"save a file; <code>transient_for</code>, which sets the parent window of the "
+"dialog; and <code>modal</code> which, if set to <code>true</code>, prevents "
+"the user from clicking on another area of the application until the dialog "
+"is closed."
+msgstr ""
+"La lÃnea que comienza por <code>var chooser</code> crear un diÃlogo "
+"<gui>Abrir</gui>, que el usuario puede utilizar para elegir archivos. Se "
+"establecen cuatro propiedades: el tÃtulo del diÃlogo, la acciÃn (tipo) del "
+"diÃlogo (es un diÃlogo ÂopenÂ, pero se podrÃa haber usado <code>SAVE</code> "
+"si la intenciÃn hubiese sido guardar un archivo; <code>transient_for</code>, "
+"que establece la ventana padre del diÃlogo; y <code>modal</code>, que si se "
+"establecer a <code>true</code> evita que el usuario pueda pulsar en otra "
+"Ãrea de la aplicaciÃn hasta que no se cierre el diÃlogo."
+
+#: C/image-viewer.js.page:293(p)
+msgid ""
+"<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
+"will wait for the user to choose an image; when they do, <code>chooser.run</"
+"code> will return the value <output>1</output> (it would return <output>0</"
+"output> if the user clicked <gui>Cancel</gui>). The <code>if</code> "
+"statement tests for this."
+msgstr ""
+"<code>chooser.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
+"esperarà a que el usuario elija una imagen; cuando lo haga, <code>chooser."
+"run</code> devolverà el valor <output>1</output> (devolverÃa <output>0</"
+"output> si el usuario pulsara <gui>Cancelar</gui>). La sentencia <code>if</"
+"code> comprueba esto."
 
-#~ msgid ""
-#~ "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
-#~ "image manipulation capabilities."
-#~ msgstr ""
-#~ "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> proporciona la "
-#~ "capacidad de manipular imÃgenes de manera potente."
+#: C/image-viewer.js.page:306(p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"That should be it; a fully-functioning image viewer (and a whistlestop tour "
+"of JavaScript and Gtk) in not much time at all!"
+msgstr ""
+"Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
+"ejecutar el cÃdigo. Esto deberÃa ser todo; un visor de imÃgenes "
+"completamente funcional (y un completo tour sobre JavaScript y GTK+) en poco "
+"tiempo."
 
-#~ msgid ""
-#~ "Allow the user to load images from network shares, scanners, and other "
-#~ "more complicated sources."
-#~ msgstr ""
-#~ "Permitir al usuario cargar imÃgenes desde recursos de red compartidos, "
-#~ "escÃneres y otras fuentes mÃs complicadas."
+#: C/image-viewer.js.page:311(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "You can use <link href=\"http://library.gnome.org/devel/gio/unstable/";
-#~ "\">GIO</link> to handle network file tranfers and the like, and <link "
-#~ "href=\"http://library.gnome.org/devel/gnome-scan/unstable/\";>GNOME Scan</"
-#~ "link> to handle scanning."
-#~ msgstr ""
-#~ "Puede usar <link href=\"http://library.gnome.org/devel/gio/unstable/";
-#~ "\">GIO</link> para gestionar transferencias de archivos de red y "
-#~ "similares, y <link href=\"http://library.gnome.org/devel/gnome-scan/";
-#~ "unstable/\">GNOME Scan</link> para gestionar el escaneado."
+#: C/image-viewer.cpp.page:8(desc)
+msgid "A little bit more than a simple \"Hello world\" GTKmm application."
+msgstr "Algo mÃs que una sencilla aplicaciÃn ÂHola mundo en GTKmm."
 
-#~ msgid ""
-#~ "A little bit more than a simple \"Hello world\" application - write an "
-#~ "image viewer in GTK."
-#~ msgstr ""
-#~ "Algo mÃs que una sencilla aplicaciÃn ÂHola mundoÂ; escribir un visor de "
-#~ "imÃgenes en GTK."
+#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:21(title)
+msgid "Image Viewer"
+msgstr "Visor de imÃgenes"
 
-#~ msgid "Jonh Wendell"
-#~ msgstr "Jonh Wendell"
+#: C/image-viewer.cpp.page:26(p)
+msgid "Some basic concepts of C++/GObject programming"
+msgstr "Algunos conceptos baÌsicos de programacioÌn en C++/GObject"
 
-#~ msgid "jwendell gnome org"
-#~ msgstr "jwendell gnome org"
+#: C/image-viewer.cpp.page:27(p)
+msgid "How to write a Gtk application in C++"
+msgstr "CÃmo escribir una aplicaciÃn GTK en C++"
 
-#~ msgid "Image Viewer"
-#~ msgstr "Visor de imÃgenes"
+#: C/image-viewer.cpp.page:41(p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Elija <gui>GTKmm (simple)</gui> de la pestaÃa <gui>C++</gui>, pulse "
+"<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
+"<file>visor-imagenes</file> como nombre de proyecto y de carpeta."
 
-#~ msgid ""
-#~ "In this tutorial, we're going to write a very simple GTK application that "
-#~ "loads and displays an image file. You will learn how to:"
-#~ msgstr ""
-#~ "En este tutorial se va a escribir una aplicaciÃn GTK+ muy sencilla que "
-#~ "carga un archivo e imagen y lo muestra. Aprenderà a:"
+#: C/image-viewer.cpp.page:44(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn how "
+"to use the interface builder."
+msgstr ""
+"AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
+"està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
+"Revise el tutorial del <link xref=\"guitar-tuner.cpp\">afinador de guitarra</"
+"link> si quiere aprender a usar el constructor de interfaces."
 
-#~ msgid "Write a basic GTK user interface in Python"
-#~ msgstr "Escribir una interfaz de usuario bÃsica en Python"
+#: C/image-viewer.cpp.page:49(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/main.cc</"
+"file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. DeberiÌa "
+"ver algo de coÌdigo que comience con las liÌneas:"
 
-#~ msgid "Deal with events by connecting signals to signal handlers"
-#~ msgstr "Trabajar con eventos conectando seÃales a manejadores de seÃales"
+#: C/image-viewer.cpp.page:61(p) C/guitar-tuner.cpp.page:64(p)
+msgid ""
+"This is a very basic C++ code setting up GTKmm. More details are given "
+"below; skip this list if you understand the basics:"
+msgstr ""
+"Esto es una configuraciÃn de cÃdigo C++ usando GTKmm. Se ofrecen mÃs "
+"detalles a continuaciÃn; omita esta lista si entiende los conceptos bÃsicos:"
 
-#~ msgid "Lay out GTK user interfaces using containers"
-#~ msgstr "La disposiciÃn de las interfaces de usuario usando contenedores"
+#: C/image-viewer.cpp.page:64(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
+"and <code>iostream</code> (C++-STL) libraries. Functions from these "
+"libraries are used in the rest of the code."
+msgstr ""
+"Las tres lÃneas <code>#include</code> en la parte superior incluyen las "
+"bibliotecas <code>config</code> (definiciones Ãtiles para construcciÃn con "
+"autoconf), <code>gtkmm</code> (interfaz de usuario) <code>iostream</code> (C+"
+"+-STL). Las funciones de estas bibliotecas se usan en el resto del cÃdigo."
 
-#~ msgid "Load and display image files"
-#~ msgstr "Cargar y mostrar archivos de imagen"
+#: C/image-viewer.cpp.page:67(p)
+msgid ""
+"The <code>main</code> function creates a new (empty) window and sets the "
+"window title."
+msgstr ""
+"La funciÃn <code>main</code> crea una ventana (vacÃa) nueva y establece el "
+"tÃtulo de la ventana."
 
-#~ msgid "Basic knowledge of the python programming language"
-#~ msgstr "Conocimiento bÃsico del lenguaje de programaciÃn Python"
+#: C/image-viewer.cpp.page:70(p)
+msgid ""
+"The <code>kit::run()</code> call starts the GTKmm main loop, which runs the "
+"user interface and starts listening for events (like clicks and key "
+"presses). As we give the window as an argument to that function, the "
+"application will automatically exit when that window is closed."
+msgstr ""
+"La llamada <code>kit::run()</code> inicia el bucle principal de GTKmm, que "
+"ejecuta la interfaz de usuario y empieza a escuchar eventos (como "
+"pulsaciones del ratÃn y del teclado). Como se ha pasado la ventana como "
+"argumento a esta funciÃn, la aplicaciÃn se cerrarà automÃticamente cuando se "
+"cierre la ventana."
+
+#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:78(p)
+#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:83(p)
+msgid ""
+"Press <gui>Execute</gui> on the next window that appears to configure a "
+"debug build. You only need to do this once, for the first build."
+msgstr ""
+"Pulse <gui>Ejecutar</gui> en la siguiente ventana que aparece para "
+"configurar una construcciÃn de depuraciÃn. Esto sÃlo necesita hacer una vez "
+"para la primera construcciÃn."
 
-#~ msgid ""
-#~ "Choose <gui>PyGTK (automake)</gui> from the <gui>Python</gui> tab, click "
-#~ "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>image-viewer</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>PyGTK (automake)</gui> en la pestaÃa <gui>Python</gui>, "
-#~ "pulse <gui>Continuar</gui>, y rellene los detalles en las siguientes "
-#~ "pÃginas. Use <file>visor-imagenes</file> como nombre del proyecto y de la "
-#~ "carpeta."
+#: C/image-viewer.cpp.page:82(p)
+msgid ""
+"Now we will bring life into the empty window. GTKmm organizes the user "
+"interface with <code>Gtk::Container</code>s that can contain other widgets "
+"and even other containers. Here we will use the simplest available "
+"container, a <code>Gtk::Box</code>:"
+msgstr ""
+"Ahora se darà vida a la ventana vacÃa. GTKmm organiza la interfaz de usuario "
+"con varios <code>Gtk::Container</code> que pueden contener otros widgets e "
+"incluso otros contenedores. Aquà se usarà el contenedor mÃs sencillo "
+"disponible, una <code>Gtk::Box</code>:"
 
-#~ 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 ""
-#~ "AsegÃrese de desactivar <gui>Usar GtkBuilder para la interfaz del "
-#~ "usuario</gui>, ya que, en este ejemplo, la interfaz de usuario se "
-#~ "construirà manualmente. Para obtener un ejemplo del uso de diseÃador de "
-#~ "interfaces. revise la <link xref=\"guitar-tuner.py\">demostraciÃn de "
-#~ "afinador de guitarra</link>."
+#: 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 ""
+"La primera lÃnea crea los widgets que se quieren usar: un botÃn para abrir "
+"una imagen, el widget del visor de imÃgenes en sà y la caja que se usarà "
+"como contenedor."
 
-#~ 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 ""
-#~ "Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/visor-"
-#~ "imagenes.py</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
-#~ "gui>. Contiene un ejemplo de cÃdigo muy bÃsico:"
+#: C/image-viewer.cpp.page:118(p)
+msgid ""
+"The calls to <code>pack_start</code> add the two widgets to the box and "
+"define their behaviour. The image will expand into any available space while "
+"the button will just be as big as needed. You will notice that we don't set "
+"explicit sizes on the widgets. In GTKmm this is usually not needed as it "
+"makes it much easier to have a layout that looks good in different window "
+"sizes. Next, the box is added to the window."
+msgstr ""
+"Las llamadas a <code>pack_start</code> aÃaden los dos widgets a la caja y "
+"definen su comportamiento. La imagen se expandirà en cualquier espacio "
+"disponible, mientras que el botÃn serà tan grande como se necesite. Se darà "
+"cuenta de que no se establecen tamaÃos explÃcitos de los widgets. "
+"Generalmente, en GTKmm no se necesita ya que hace que sea mucho mÃs sencillo "
+"tener una distribuciÃn que se ve bien con diferentes tamaÃos de la ventana. "
+"A continuaciÃn, se aÃade la caja a la ventana."
+
+#: C/image-viewer.cpp.page:124(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTKmm "
+"uses the concept of <em>signals</em>. When the button is clicked, it fires "
+"the <em>clicked</em> signal, which we can connect to some action. This is "
+"done using the <code>signal_clicked().connect</code> method which tells "
+"GTKmm to call the <code>on_open_image</code> function when the button is "
+"clicked. We will define the <em>callback</em> in the next section."
+msgstr ""
+"Se debe definir quà sucede cuando el usuario pulsa el botÃn. GTKmm usa el "
+"concepto de <em>seÃales</em>. Cuando se pulsa el botÃn, emite la seÃal "
+"<em>clicked</em>, que se puede conectar a alguna acciÃn. Esto se ha hecho "
+"usando el mÃtodo <code>signal_clicked().connect</code>, que indica a GTKmm "
+"que llame a la funciÃn <code>on_open_image</code> cuando se pulsa el botÃn y "
+"que pase la imagen como un argumento adicional a la funciÃn. El <em>retorno "
+"de la llamada</em> se definirà en la siguiente secciÃn."
+
+#: C/image-viewer.cpp.page:128(p)
+msgid ""
+"The last step is to show all widgets in the window using "
+"<code>show_all_children()</code>. This is equivalent to using the <code>show"
+"()</code> method on all our child widgets."
+msgstr ""
+"El Ãltimo paso es mostrar todos los widgets en la ventana usando "
+"<code>show_all_children()</code>. Esto es equivalente a usar el mÃtodo "
+"<code>show()</code> en cada uno de los widgets."
 
-#~ msgid "A first Gtk application"
-#~ msgstr "Una primera aplicaciÃn en GTK"
+#: 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 ""
+"Ahora se definirà el manejador de la seÃal <em>clicked</em> para el botÃn "
+"mencionado anteriormente. AÃada este cÃdigo antes del mÃtodo <code>main</"
+"code>."
 
-#~ msgid "Let's see what a very basic Gtk application looks like in Python:"
-#~ msgstr "Vea como queda una aplicacioÌn GTK+ muy baÌsica en Python:"
+#: C/image-viewer.cpp.page:175(p)
+msgid ""
+"The dialog for choosing the file is created using the <code>Gtk::"
+"FileChooserDialog</code> constructor. This takes the title and type of the "
+"dialog. In our case, it is an <em>Open</em> dialog."
+msgstr ""
+"El diÃlogo para elegir el archivo se crea usando el constructor de "
+"<code>Gtk::FileChooserDialog</code>. La funciÃn toma el tÃtulo y el tipo del "
+"diÃlogo. En este caso, es un diÃlogo de tipo <em>Open</em>."
 
-#~ msgid "Let's take a look at what's happening:"
-#~ msgstr "Eche un vistazo a lo que està pasando:"
+#: 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 ""
+"Las siguientes dos lÃneas aÃaden un botÃn <em>Abrir</em> y <em>Cerrar</em> "
+"en el diÃlogo."
 
-#~ 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 ""
-#~ "La primera lÃnea importa el espacio de nombres de GTK+ (es decir, incluye "
-#~ "la biblioteca GTK+). Las bibliotecas las proporciona ÂGObject "
-#~ "Introspection (gi)Â, que implementa asociaciones de lenguajes para la "
-#~ "mayorÃa de las bilbiotecas de GNOME."
+#: 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 ""
+"El segundo argumento del mÃtodo <code>add_button()</code> es un valor para "
+"identificar el botÃn pulsado. Aquà tambiÃn se usan valores predefinidos "
+"proporcionados por GTKmm."
 
-#~ 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 ""
-#~ "En el mÃtodo <code>__init__</code> de la clase <code>GUI</code> se crea "
-#~ "un <code>Gtk.Window</code> (vacÃa), establece su tÃtulo y despuÃs conecta "
-#~ "una seÃal para salir de la aplicaciÃn una vez que se cierra la ventana. "
-#~ "Es bastante simple, mÃs acerca de seÃales en adelante."
+#: C/image-viewer.cpp.page:186(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by <code>Gtk::Image</code>. A filter object is created "
+"first; we then add all kinds of files supported by <code>Gdk::Pixbuf</code> "
+"(which includes most image formats like PNG and JPEG) to the filter. "
+"Finally, we set this filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+"Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
+"soÌlo muestre archivos que se puedan abrir con <code>Gtk::Image</code>. "
+"Primero se crea un objeto de filtro; luego se anÌaden los tipos de archivos "
+"soportados por el <code>Gdk::Pixbuf</code> (que incluye la mayoriÌa de los "
+"formatos de imagen como PNG y JPEG) al filtro. Por uÌltimo, se establece que "
+"este filtro sea el filtro del diaÌlogo <gui>Abrir</gui>."
+
+#: 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 ""
+"<code>Glib::RefPtr</code> es un puntero inteligente usado aquà que se "
+"asegura de que el filtro se destruye cuando ya no se hace ninguna referencia "
+"a Ãl."
 
-#~ msgid ""
-#~ "Next, <code>destroy</code> is defined which just quits the application. "
-#~ "It is called by the <code>destroy</code> signal connected above."
-#~ msgstr ""
-#~ "DespuÃs se define <code>destroy</code> que simplemente sale de la "
-#~ "aplicaciÃn. Se le llama a travÃs de la seÃal <code>destroy</code> "
-#~ "conectada anteriormente."
+#: C/image-viewer.cpp.page:191(p)
+msgid ""
+"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
+"wait for the user to choose an image; when they do, <code>dialog.run</code> "
+"will return the value <code>Gtk::RESPONSE_ACCEPT</code> (it would return "
+"<code>Gtk::RESPONSE_CANCEL</code> if the user clicked <gui>Cancel</gui>). "
+"The <code>switch</code> statement tests for this."
+msgstr ""
+"<code>dialog.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
+"esperarà a que el usuario seleccione una imagen; cuando lo haga, "
+"<code>dialog.run</code> devolverà el valor <code>Gtk::RESPONSE_ACCEPT</code> "
+"(devolverÃa <code>Gtk::RESPONSE_CANCEL</code> si el usuario pulsara "
+"<gui>Cancel</gui>). La sentencia <code>switch</code> comprueba esto."
 
-#~ msgid ""
-#~ "The rest of the file does initialisation for Gtk and displays the GUI."
-#~ msgstr ""
-#~ "El resto del archivo realiza la inicializaciÃn de GTK+ y muestra la IGU."
+#: C/image-viewer.cpp.page:194(p)
+#, fuzzy
+#| 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."
+msgid ""
+"We hide the <gui>Open</gui> dialog because we don't need it any more. The "
+"dialog would be hidden later anyway, as it is only a local variable and is "
+"destroyed (and therefore hidden) when the scope ends."
+msgstr ""
+"En la Ãltima lÃnea de este mÃtodo se oculta el diÃlogo <gui>Abrir</gui> "
+"porque ya no se necesita mÃs. El diÃlogo se ocultarà de todos modos, ya que "
+"sÃlo es una variable local, y se destruye (y por lo tanto se oculta) cuando "
+"el Ãmbito termina."
 
-#~ 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 ""
-#~ "Este cÃdigo està listo para usarse, por lo que puede probarlo usando "
-#~ "<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq>. DeberÃa mostrar "
-#~ "una ventana vacÃa."
+#: C/image-viewer.cpp.page:197(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line loads the "
+"file into the <code>Gtk::Image</code> so that it is displayed."
+msgstr ""
+"Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea carga el "
+"archivo en la <code>Gtk::Image</code>, por lo que se muestra."
 
-#~ msgid "Signals"
-#~ msgstr "SeÃales"
+#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:216(p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/image-viewer</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+"Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/visor-"
+"imagenes</file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</"
+"gui> y disfrute."
 
-#~ 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 ""
-#~ "Las seÃales son un concepto clave en la programaciÃn en GTK. Cuando pasa "
-#~ "algo en un objeto, emite una seÃal; por ejemplo, cuando se pulsa un "
-#~ "botÃn, emite la seÃal <code>clicked</code>. Si quiere que su programa "
-#~ "haga algo cuando ocurre ese evento, debe conectar una funciÃn (un "
-#~ "Âmanejador de la seÃalÂ) a esa seÃal. Aquà hay un ejemplo:"
+#: C/image-viewer.cpp.page:211(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"image-viewer/image-viewer.cc\">coÌdigo de referencia</link>."
 
-#~ 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 ""
-#~ "Las dos Ãltimas lÃneas crean un <code>Gtk.Button</code> llamado <code>b</"
-#~ "code> y conectan su seÃal <code>clicked</code> con la funciÃn "
-#~ "<code>button_clicked</code> que se ha definido anteriormente. Cada vez "
-#~ "que se pulsa un botÃn, se ejecuta el cÃdigo de la funciÃn "
-#~ "<code>button_clicked</code>. Esto sÃlo imprime un mensaje aquÃ."
+#: C/image-viewer.c.page:26(p)
+msgid "Some basic concepts of C/GObject programming"
+msgstr "Algunos conceptos bÃsicos de programaciÃn en C/GObject"
 
-#~ msgid "Containers: Laying-out the user interface"
-#~ msgstr "Contenedores: diseÃar la interfaz de usuario"
+#: C/image-viewer.c.page:27(p)
+msgid "How to write a Gtk application in C"
+msgstr "CoÌmo escribir una aplicacioÌn GTK en C"
 
-#~ 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 ""
-#~ "Los widgets (controles, como botones y etiquetas) se pueden organizar en "
-#~ "la ventana usando <em>contenedores</em>. Puede organizar el diseÃo "
-#~ "mezclando diferentes tipos de contenedores, como cajas y rejillas."
+#: C/image-viewer.c.page:41(p)
+msgid ""
+"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
+"<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. Use "
+"<file>visor-imagenes</file> como nombre del proyecto y de la carpeta."
 
-#~ 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 ""
-#~ "Una <code>Gtk.Window</code> es en sà misma un tipo de contenedor, pero "
-#~ "sÃlo puede poner un widget directamente en ella. Se quieren poner dos "
-#~ "widgets, una imagen y un botÃn, por lo que se necesita poner un "
-#~ "contenedor Âde mayor capacidad dentro de la ventana para que contenga "
-#~ "otros widgets. Hay varios <link href=\"http://library.gnome.org/devel/gtk/";
-#~ "stable/GtkContainer.html\">tipos de contenedores</link> disponibles, pero "
-#~ "aquà se usarà una <code>Gtk.Box</code>. Una <code>Gtk.Box</code> puede "
-#~ "contener varios widgets, organizados horizontal o verticalmente. Se "
-#~ "pueden hacer diseÃos mÃs complejos poniendo varias cajas dentro de otras, "
-#~ "y asà sucesivamente."
+#: C/image-viewer.c.page:44(p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to "
+"use the interface builder."
+msgstr ""
+"AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
+"està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
+"Revise el tutorial del <link xref=\"guitar-tuner.c\">afinador de guitarra</"
+"link> si quiere aprender a usar el constructor de interfaces."
 
-#~ 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 ""
-#~ "Hay un diseÃador de interfaces grÃficas llamado <app>Glade</app> "
-#~ "integrado en <app>Anjuta</app> que hace que el diseÃo de IU sea realmente "
-#~ "fÃcil. Sin embargo, para este ejemplo, se va a codificar todo manualmente."
+#: C/image-viewer.c.page:59(p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"and shows it. More details are given below; skip this list if you understand "
+"the basics:"
+msgstr ""
+"C es un lenguaje mÃs detallado, por lo que no se sorprenda de que el archivo "
+"contiene un gran cantidad de cÃdigo. La mayor parte es cÃdigo de plantilla. "
+"Carga una ventana (vacÃa) y se muestra. A continuaciÃn se ofrecen mÃs "
+"detalles; omita esta lista si entiende los conceptos bÃsicos:"
 
-#~ 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 ""
-#~ "AÃada la caja y los widgets a la ventana. Inserte el siguiente cÃdigo en "
-#~ "el mÃtodo <code>__init__</code>, justo debajo de la lÃnea <code>window."
-#~ "connect_after</code>:"
+#: C/image-viewer.c.page:63(p) C/guitar-tuner.c.page:68(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
+"<code>gi18n</code> (internationalization) libraries. Functions from these "
+"libraries are used in the rest of the code."
+msgstr ""
+"Las tres lÃneas <code>#include</code> en la parte superior incluyen las "
+"bibliotecas <code>config</code> (Ãtil para definiciones de construcciÃn de "
+"autoconf), <code>gtk</code> (interfaz de usuario) y <code>gi18n</code> "
+"(internacionalizaciÃn). Las funciones de estas bibliotecas se usan en el "
+"resto del cÃdigo."
 
-#~ 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 ""
-#~ "La primera lÃnea crea una <code>Gtk.Box</code> llamada <code>box</code> y "
-#~ "las siguientes lÃneas establecen dos de sus propiedades: la orientaciÃn "
-#~ "(<code>orientation</code>) se establece a Âvertical (por lo que los "
-#~ "widgets se colocan en columna), y el espaciado (<code>spacing</code>) "
-#~ "entre los widgets se establece a 5 pÃxeles. La siguiente lÃnea aÃade la "
-#~ "<code>Gtk.Box</code> reciÃn creada a la ventana."
+#: C/image-viewer.c.page:66(p)
+msgid ""
+"The <code>create_window</code> function creates a new (empty) window and "
+"connects a signal to exit the application when that window is closed."
+msgstr ""
+"La funciÃn <code>create_window</code> crea una ventana (vacÃa) nueva y "
+"conecta una seÃal para salir de la aplicaciÃn cuando se cierra esa ventana."
 
-#~ 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 ""
-#~ "De momento, la ventana sÃlo contiene una <code>Gtk.Box</code> vacÃa, y si "
-#~ "ejecuta el programa ahora no verà ningÃn cambio (la <code>Gtk.Box</code> "
-#~ "es un contenedor transparente, por lo que no puede que està ahÃ)."
+#: 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 "
+"application. It calls a few functions which set up and then run the "
+"application. The <code>gtk_main</code> function starts the GTK main loop, "
+"which runs the user interface and starts listening for events (like clicks "
+"and key presses)."
+msgstr ""
+"La funciÃn <code>main</code> se ejecuta de manera predeterminada cuando "
+"inicia una aplicaciÃn en C. Llama a unas pocas funciones que configuran y "
+"ejecutan la aplicaciÃn. La funciÃn <code>gtk_main</code> inicia el bucle "
+"principal de GTK+, que ejecuta la interfaz de usuario y comienza a escuchar "
+"eventos (como pulsaciones del ratÃn y del teclado)."
 
-#~ msgid "Packing: Adding widgets to the container"
-#~ msgstr "Empaquetado: aÃadir widgets al contenedor"
+#: C/image-viewer.c.page:73(p) C/guitar-tuner.c.page:78(p)
+msgid ""
+"The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
+"code>, which is a framework for translating applications. These functions "
+"specify how translation tools should handle your app when you run them."
+msgstr ""
+"La definiciÃn condicional <code>ENABLE_NLS</code> configura <code>gettext</"
+"code>, que es un entorno de trabajo para traducir aplicaciones. Estas "
+"funciones especifican cÃmo deben manejar su aplicaciÃn las herramientas de "
+"traducciÃn cuando las ejecuta."
 
-#~ 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 ""
-#~ "Para aÃadir algunos widgets a la <code>Gtk.Box</code>, inserte el "
-#~ "siguiente cÃdigo justo debajo de la lÃnea <code>window.add (box)</code>:"
+#: C/image-viewer.c.page:83(p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <code>GtkContainer</code>s that can contain other widgets and "
+"even other containers. Here we will use the simplest available container, a "
+"<code>GtkBox</code>:"
+msgstr ""
+"Ahora se darà vida a la ventana vacÃa. GTK+ organiza la interfaz de usuario "
+"con varios <code>GtkContainer</code> que pueden contener otros widgets e "
+"incluso otros contenedores. Aquà se usarà el contenedor mÃs sencillo "
+"disponible, una <code>GtkBox</code>:"
 
-#~ 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 ""
-#~ "La primera lÃnea crea una <code>Gtk.Image</code> llamada <code>image</"
-#~ "code>, que se usarà para mostrar un archivo de imagen. Como se necesitarà "
-#~ "mÃs tarde en el manejador de la seÃal, se definirà como variable a nivel "
-#~ "de clase. Deberà aÃadir <code>image = 0</code> al principio de la clase "
-#~ "<code>GUI</code>. Entonces se aÃade el widget de imagen (<em>packed</em>) "
-#~ "en el contenedor <code>box</code> usando el mÃtodo <link href=\"http://";
-#~ "library.gnome.org/devel/gtk/stable/GtkBox.html#gtk-box-pack-start"
-#~ "\"><code>pack_start</code></link> de GtkBox."
+#: C/image-viewer.c.page:121(p)
+msgid ""
+"The first lines create the widgets we want to use: a button for opening up "
+"an image, the image view widget itself and the box we will use as a "
+"container. The macros like <code>GTK_BOX</code> are used for dynamic type "
+"checking and casting which is needed as C doesn't support object-orientation "
+"out-of-the-box."
+msgstr ""
+"La primera lÃnea crea los widgets que se quieren usar: un botÃn para abrir "
+"una imagen, el widget para ver la imagen y la caja que se usarà como "
+"contenedor. Las macros como <code>GTK_BOX</code> se usan para comprobaciones "
+"de tipos dinÃmicos y conversiones de tipos necesarias, ya que C no soporta "
+"orientaciÃn a objetos."
 
-#~ 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 ""
-#~ "<code>pack_start</code> toma 4 argumentos: el widget que aÃadir a la "
-#~ "GtkBox (<code>child</code>); si la <code>Gtk.Box</code> debe crecer "
-#~ "cuando aÃada el widget nuevo (<code>expand</code>); si el widget nuevo "
-#~ "debe tomar todo el espacio adicional creado si la <code>Gtk.Box</code> "
-#~ "crece (<code>fill</code>); y cuÃnto espacio debe haber, en pÃxeles, entre "
-#~ "el widget y sus vecinos dentro de la <code>Gtk.Box</code> (<code>padding</"
-#~ "code>)."
+#: C/image-viewer.c.page:126(p)
+msgid ""
+"The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
+"and define their behaviour. The image will expand into any available space "
+"while the button will just be as big as needed. You will notice that we "
+"don't set explicit sizes on the widgets. In GTK this is usually not needed "
+"as it makes it much easier to have a layout that looks good in different "
+"window sizes. Next, the box is added to the window."
+msgstr ""
+"Las llamadas a <code>gtk_box_pack_start</code> aÃaden los dos widgets a la "
+"caja y definen su comportamiento. La imagen se expandirà en cualquier "
+"espacio disponible, mientras que el botÃn serà tan grande como se necesite. "
+"Se darà cuenta de que no se establecen tamaÃos explÃcitos de los widgets. "
+"Generalmente, en GTK+ no se necesita ya que hace que sea mucho mÃs sencillo "
+"tener una distribuciÃn que se ve bien con diferentes tamaÃos de la ventana. "
+"A continuaciÃn, se aÃade la caja a la ventana."
+
+#: C/image-viewer.c.page:132(p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>. When the button is clicked, it fires the "
+"<em>clicked</em> signal, which we can connect to some action. This is done "
+"using the <code>g_signal_connect</code> function which tells GTK to call the "
+"<code>on_image_open</code> function when the button is clicked and to pass "
+"the image as an additional argument to that function. We will define the "
+"<em>callback</em> in the next section."
+msgstr ""
+"Se debe definir queÌ sucede cuando el usuario pulsa el botoÌn. GTK+ usa el "
+"concepto de <em>senÌales</em>. Cuando se pulsa el botoÌn, emite la senÌal "
+"<em>clicked</em>, que se puede conectar a alguna accioÌn. Esto se ha hecho "
+"usando el meÌtodo <code>g_signal_connect</code>, que indica a GTK+ que llame "
+"a la funcioÌn <code>on_image_open</code> cuando se pulsa el botoÌn y que pase "
+"la imagen como un argumento adicional a la funcioÌn. El <em>retorno de la "
+"llamada</em> se definiraÌ en la siguiente seccioÌn."
+
+#: C/image-viewer.c.page:137(p)
+msgid ""
+"The last <code>g_signal_connect()</code> makes sure that the application "
+"exits when the window is closed."
+msgstr ""
+"La Ãltima <code>g_signal_connect()</code> se asegura de que la aplicaciÃn "
+"finaliza al cerrar la ventana."
 
-#~ msgid ""
-#~ "Gtk containers (and widgets) dynamically expand to fill the available "
-#~ "space, if you let them. You don't position widgets by giving them a "
-#~ "precise x,y-coordinate location in the window; rather, they are "
-#~ "positioned relative to one another. This makes handling window resizing "
-#~ "much easier, and widgets should automatically take a sensible size in "
-#~ "most situations."
-#~ msgstr ""
-#~ "Los contenedores (y los widgets) de GTK+ se expanden dinÃmicamente, si "
-#~ "les deja, para rellenar el espacio disponible. No posicione widgets "
-#~ "indicando unas coordenadas x-y precisas en la ventana; en lugar de eso, "
-#~ "se posicionan relativos a otro. Esto hace que el manejo de la redimensiÃn "
-#~ "de las ventanas sea mÃs fÃcil, y que los widgets tengan un tamaÃo "
-#~ "sensible automÃtica en la mayorÃa de las situaciones."
+#: C/image-viewer.c.page:140(p)
+msgid ""
+"As a last step, make sure to replace the <code>gtk_widget_show</code> call "
+"in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
+"show the window and all the widgets it contains."
+msgstr ""
+"Como Ãltimo paso, asegÃrese de reemplazar la llamada <code>gtk_widget_show</"
+"code>, en la funciÃn <code>main()</code>, por <code>gtk_widget_show_all()</"
+"code>, para mostrar todos los widgets que contiene la ventana."
 
-#~ msgid ""
-#~ "Also note how the widgets are organized in a hierarchy. Once packed in "
-#~ "the <code>Gtk.Box</code>, the <code>Gtk.Image</code> is considered a "
-#~ "<em>child</em> of the <code>Gtk.Box</code>. This allows you to treat all "
-#~ "of the children of a widget as a group; for example, you could hide the "
-#~ "<code>Gtk.Box</code>, which would also hide all of its children at the "
-#~ "same time."
-#~ msgstr ""
-#~ "TambiÃn tenga en cuenta cÃmo se organizan los widgets de manera "
-#~ "jerÃrquica. Una vez empaquetados en la <code>Gtk.Box</code>, la <code>Gtk."
-#~ "Image</code> se considera un <em>hijo</em> de la <code>Gtk.Box</code>. "
-#~ "Esto le permite tratar a todos los hijos de un widget como un grupo; por "
-#~ "ejemplo, puede ocultar la <code>Gtk.Box</code>, lo que harÃa que tambiÃn "
-#~ "se ocultaran todos sus hijos a la vez."
-
-#~ msgid "Now insert these two lines, below the two you just added:"
-#~ msgstr ""
-#~ "Ahora inserte estas dos lÃneas, justo debajo de las dos que acaba de "
-#~ "aÃadir."
+#: C/image-viewer.c.page:148(p)
+msgid ""
+"We will now define the signal handler for the <em>clicked</em> signal or the "
+"button we mentioned before. Add this code before the <code>create_window()</"
+"code> method."
+msgstr ""
+"Ahora se definirà el manejador de la seÃal para la seÃal <em>clicked</em> en "
+"el botÃn mencionado anteriormente. AÃada este cÃdigo antes del mÃtodo "
+"<code>create_window()</code>."
 
-#~ msgid ""
-#~ "These lines are similar to the first two, but this time they create a "
-#~ "<code>Gtk.Button</code> and add it to <code>box</code>. Notice that we "
-#~ "are setting the <code>expand</code> argument (the second one) to "
-#~ "<code>False</code> here, whereas it was set to <code>True</code> for the "
-#~ "<code>Gtk.Image</code>. This will cause the image to take up all "
-#~ "available space and the button to take only the space it needs. When you "
-#~ "maximize the window, the button size will remain the same, but the image "
-#~ "size will increase, taking up all of the rest of the window."
-#~ msgstr ""
-#~ "Estas liÌneas son similares a las dos primeras, pero esta vez crean un "
-#~ "<code>Gtk.Button</code> y lo anÌaden a la <code>box</code>. Tenga en "
-#~ "cuenta que se estaÌ estableciendo el argumento <code>expand</code> (el "
-#~ "segundo) a <code>False</code>, mientras que para la <code>Gtk.Image</"
-#~ "code> se establecià a <code>True</code>. Esto haraÌ que la imagen tome "
-#~ "todo el espacio disponible y que el botoÌn tome soÌlo el espacio que "
-#~ "necesite. Cuando se maximiza la ventana, el tamanÌo del botoÌn seraÌ el "
-#~ "mismo, pero el tamanÌo de la imagen aumentaraÌ junto con el resto de la "
-#~ "ventana."
+#: C/image-viewer.c.page:186(p)
+msgid ""
+"The first argument of the signal is always the widget that sent the signal. "
+"Sometimes other arguments related to the signal come after that, but "
+"<em>clicked</em> doesn't have any. Next is the <code>user_data</code> "
+"argument which is a pointer to the data we passed when connecting the "
+"signal. In this case it is our <code>GtkImage</code> object."
+msgstr ""
+"El primer argumento de la seÃal es siempre el widget que envÃa la seÃal. "
+"Algunas veces se aÃaden otros argumentos relativos a la seÃal, pero "
+"<em>clicked</em> no tiene ninguno. Lo siguiente es el argumento "
+"<code>user_data</code>, que es un puntero a los datos que se han pasado al "
+"conectar la seÃal. En este caso, es el objeto <code>GtkImage</code>."
 
-#~ msgid ""
-#~ "Loading the image: Connecting to the button's <code>clicked</code> signal"
-#~ msgstr ""
-#~ "Cargar la imagen: conectar con la seÃal <code>clicked</code> del botÃn"
+#: C/image-viewer.c.page:192(p)
+msgid ""
+"The next interesting line is where the dialog for choosing the file is "
+"created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
+"the title of the dialog, the parent window of the dialog and several options "
+"like the number of buttons and their corresponding values."
+msgstr ""
+"La siguiente lÃnea interesante es en la que se crea el diÃlogo para elegir "
+"el archivo usando <code>gtk_file_chooser_dialog_new</code>. La funciÃn toma "
+"el tÃtulo del diÃlogo, la ventana padre del diÃlogo y varias opciones como "
+"el nÃmero de botones y sus valores correspondientes."
 
-#~ msgid ""
-#~ "When the user clicks on the <gui>Open Image...</gui> button, a dialog "
-#~ "should appear so that the user can choose a picture. Once chosen, the "
-#~ "picture should be loaded and shown in the image widget."
-#~ msgstr ""
-#~ "Cuando el usuario pulse sobre el botÃn <gui>Abrir imagen...</gui>, "
-#~ "deberÃa aparece un diÃlogo en el que el usuario pueda elegir una imagen. "
-#~ "una vez elegida, la imagen deberÃa cargarse y mostrarse en el widget de "
-#~ "imagen."
+#: C/image-viewer.c.page:199(p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by GtkImage. A filter object is created first; we then "
+"add all kinds of files supported by <code>GdkPixbuf</code> (which includes "
+"most image formats like PNG and JPEG) to the filter. Finally, we set this "
+"filter to be the <gui>Open</gui> dialog's filter."
+msgstr ""
+"Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
+"soÌlo muestre archivos que se puedan abrir con ÂGtkImageÂ. Primero se crea un "
+"objeto de filtro; luego se anÌaden los tipos de archivos soportados por el "
+"<code>GdkPixbuf</code> (que incluye la mayoriÌa de los formatos de imagen "
+"como PNG y JPEG) al filtro. Por uÌltimo, se establece que este filtro sea el "
+"filtro del diaÌlogo <gui>Abrir</gui>."
+
+#: C/image-viewer.c.page:202(p)
+msgid ""
+"<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
+"will wait for the user to choose an image; when they do, "
+"<code>gtk_dialog_run</code> will return the value <code>GTK_RESPONSE_ACCEPT</"
+"code> (it would return <code>GTK_RESPONSE_CANCEL</code> if the user clicked "
+"<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
+msgstr ""
+"<code>gtk_dialog_run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
+"esperarà a que el usuario elija una imagen; cuando lo haga, "
+"<code>gtk_dialog_run</code> devolverà el valor <code>GTK_RESPONSE_ACCEPT</"
+"code> (devolverÃa <code>GTK_RESPONSE_CANCEL</code> si el usuario pulsara "
+"<gui>Cancelar</gui>). La sentencia <code>switch</code> comprueba esto."
 
-#~ msgid ""
-#~ "The first step is to connect the <code>clicked</code> signal of the "
-#~ "button to a signal handler function, which we call <code>on_open_clicked</"
-#~ "code>. Put this code immediately after the <code>button = Gtk.Button()</"
-#~ "code> line where the button was created:"
-#~ msgstr ""
-#~ "El primer paso es conectar la seÃal <code>clicked</code> del botÃn a una "
-#~ "funciÃn manejadora de la seÃal, llamada <code>on_open_clicked</code>. "
-#~ "Ponga este cÃdigo inmediatamente despuÃs de la lÃnea <code>button = Gtk."
-#~ "Button()</code> en la que se creà el botÃn:"
+#: C/image-viewer.c.page:204(p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line sets the "
+"<code>file</code> property of the GtkImage to the filename of the image "
+"selected by the user. The GtkImage will then load and display the chosen "
+"image."
+msgstr ""
+"Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea "
+"establece la propiedad <code>file</code> de la ÂGtkImage con el nombre del "
+"archivo de imagen seleccionado por el usuario. La ÂGtkImage cargarà y "
+"mostrarà la imagen elegida."
 
-#~ msgid ""
-#~ "This will connect the <code>clicked</code> signal to "
-#~ "<code>on_open_clicked</code> method that we will define below."
-#~ msgstr ""
-#~ "Esto conectarà la seÃal <code>clicked</code> al mÃtodo "
-#~ "<code>on_open_clicked</code> que se definirà mÃs adelante."
+#: C/image-viewer.c.page:207(p)
+msgid ""
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more. Destroying automatically hides the dialog."
+msgstr ""
+"Al final de la lÃnea de este mÃtodo, se destruye el diÃlogo <gui>Abrir</gui> "
+"porque ya no se necesita mÃs. El diÃlogo se oculta automÃticamente al "
+"destruirlo."
 
-#~ msgid "Loading the image: Writing the signal's callback"
-#~ msgstr "Cargar la imagen: escribir la llamada de retorno de la seÃal"
+#: C/image-viewer.c.page:221(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.c\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"image-viewer/image-viewer.c\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "Now we can create the <code>on_open_clicked</code> method. Insert the "
-#~ "following into the <code>GUI</code> class code block, after the "
-#~ "<code>__init__</code> method:"
-#~ msgstr ""
-#~ "Ahora se puede crear el mÃtodo <code>on_open_clicked</code>. Inserte lo "
-#~ "siguente dentro del bloque de clase <code>GUI</code>, despuÃs del mÃtodo "
-#~ "<code>__init__</code>:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/helloWorld.js.page:31(None)
+msgid "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+msgstr ""
+"@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
 
-#~ msgid ""
-#~ "This is a bit more complicated than anything we've attempted so far, so "
-#~ "let's break it down:"
-#~ msgstr ""
-#~ "Esto es un poco mÃs complicado que todo lo que se ha intentado hasta "
-#~ "ahora, asà que se puede desglosar:"
+#: C/helloWorld.js.page:14(desc)
+#, fuzzy
+#| msgid "Tutorial for a hello world application"
+msgid "A basic \"hello, world\" application"
+msgstr "Tutorial para una aplicaciÃn ÂHola mundoÂ"
 
-#~ msgid ""
-#~ "The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
-#~ "dialog, which the user can use to choose files. We set three properties: "
-#~ "the title of the dialog; the action (type) of the dialog (it's an \"open"
-#~ "\" dialog, but we could have used <code>SAVE</code> if the intention was "
-#~ "to save a file; and <code>transient_for</code>, which sets the parent "
-#~ "window of the dialog."
-#~ msgstr ""
-#~ "La lÃnea que empieza por <code>dialog</code> crea un diÃlogo <gui>Abrir</"
-#~ "gui>, que el usuario puede utilizar para abrir archivos. Se establecen "
-#~ "tres propiedades: el tÃtulo del diÃlogo; la acciÃn (tipo) del diÃlogo (es "
-#~ "un diÃlogo ÂopenÂ, pero se podrÃa haber usado <code>SAVE</code> si se "
-#~ "quisiese guardar un archivo; y <code>transient_for</code>, que establecer "
-#~ "la ventana padre del diÃlogo."
+#: C/helloWorld.js.page:16(title)
+msgid "Hello World"
+msgstr "Hola mundo"
 
-#~ msgid ""
-#~ "The next two lines add <gui>Cancel</gui> and <gui>Open</gui> buttons to "
-#~ "the dialog. The second argument of the <code>add_button</code> method is "
-#~ "the (integer) value that is returned when the button is pressed: 0 for "
-#~ "<gui>Cancel</gui> and 1 for <gui>Open</gui>."
-#~ msgstr ""
-#~ "Las dos siguientes lÃneas aÃaden los botones <gui>Cancelar</gui> y "
-#~ "<gui>Abrir</gui> al diÃlogo. el segundo argumento del mÃtodo "
-#~ "<code>add_button</code> es el valor (entero) que se devuelve cuando se "
-#~ "pulsa el botÃn: 0 para <gui>Cancelar</gui> y 1 para <gui>Abrir</gui>."
+#: C/helloWorld.js.page:19(p)
+#, fuzzy
+#| msgid ""
+#| "In this tutorial we'll construct a small application, Hello World, using "
+#| "JavaScript and GTK+. To do and run all the code examples yourself, you "
+#| "need an editor to write code in, Terminal and GNOME 3 or higher installed "
+#| "into your computer. In this tutorial we'll go through the following parts:"
+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 ""
+"En este tutorial se construirà una pequeÃa aplicaciÃn, ÂHola mundoÂ, usando "
+"JavaScript y GTK+. Para escribirla y poder ejecutar el cÃdigo, necesitarà un "
+"editor en el que escribir el cÃdigo, una terminal y GNOME 3 o superior "
+"instalado en su equipo."
 
-#~ msgid ""
-#~ "Notice that we are using <em>stock</em> button names from Gtk, instead of "
-#~ "manually typing \"Cancel\" or \"Open\". The advantage of using stock "
-#~ "names is that the button labels will already be translated into the "
-#~ "user's language."
-#~ msgstr ""
-#~ "Note que se està usando nombres de botones del <em>almacÃn</em> de GTK, "
-#~ "en lugar de escribir manualmente ÂCancelar o ÂAbrirÂ. La ventaja de usar "
-#~ "nombres del almacÃn es que las etiquetas de los botones ya estarÃn "
-#~ "traducidas en el idioma del usuario."
+#: C/helloWorld.js.page:24(link) C/helloWorld.js.page:63(title)
+msgid "Label for the window"
+msgstr "Etiqueta para la ventana"
 
-#~ msgid ""
-#~ "<code>set_default_response</code> determines the button that will be "
-#~ "activated if the user double-clicks a file or presses <key>Enter</key>. "
-#~ "In our case, we are using the <gui>Open</gui> button as default (which "
-#~ "has the value 1)."
-#~ msgstr ""
-#~ "<code>set_default_response</code> determina quà botÃn se activarà si el "
-#~ "usuario hace una doble pulsaciÃn o presiona <key>Intro</key>. En este "
-#~ "caso, se usa el botÃn <gui>Abrir</gui> como predeterminado (que tiene el "
-#~ "valor Â1Â)."
+#: C/helloWorld.js.page:25(link) C/helloWorld.js.page:79(title)
+msgid "helloWorld.js"
+msgstr "helloWorld.js"
 
-#~ msgid ""
-#~ "The next three lines restrict the <gui>Open</gui> dialog to only display "
-#~ "files which can be opened by <code>Gtk.Image</code>. A filter object is "
-#~ "created first; we then add all kinds of files supported by <code>Gdk."
-#~ "Pixbuf</code> (which includes most image formats like PNG and JPEG) to "
-#~ "the filter. Finally, we set this filter to be the <gui>Open</gui> "
-#~ "dialog's filter."
-#~ msgstr ""
-#~ "Las tres lÃneas siguientes restringen el diÃlogo <gui>Abrir</gui> para "
-#~ "que sÃlo muestre archivos que se puedan abrir con <code>Gtk.Image</code>. "
-#~ "Primero se crea un objeto de filtro; luego se aÃaden los tipos de "
-#~ "archivos soportados por el <code>Gdk.Pixbuf</code> (que incluye la "
-#~ "mayorÃa de los formatos de imagen como PNG y JPEG) al filtro. Por Ãltimo, "
-#~ "se establece que este filtro sea el filtro del diÃlogo <gui>Abrir</gui>."
+#: C/helloWorld.js.page:26(link) C/guitar-tuner.js.page:30(link)
+#: C/guitar-tuner.js.page:227(title)
+msgid "Running the application form Terminal"
+msgstr "Ejecutar la aplicaciÃn desde la terminal"
 
-#~ msgid ""
-#~ "<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog "
-#~ "will wait for the user to choose an image; when they do, <code>dialog."
-#~ "run</code> will return the value <output>1</output> (it would return "
-#~ "<output>0</output> if the user clicked <gui>Cancel</gui>). The <code>if</"
-#~ "code> statement tests for this."
-#~ msgstr ""
-#~ "<code>dialog.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
-#~ "esperarà a que el usuario elija una imagen; cuando lo haga, <code>dialog."
-#~ "run</code> devolverà el valor <output>1</output> (devolverÃa <output>0</"
-#~ "output> si el usuario pulsara <gui>Cancelar</gui>). La sentencia "
-#~ "<code>if</code> comprueba esto."
+#: C/helloWorld.js.page:30(p)
+#, fuzzy
+#| msgid "After reading this tutorial, you should see this in your screen:"
+msgid "After taking this tutorial, you should see this on your screen:"
+msgstr "DespuÃs de leer este tutorial, deberÃa ver esto en su pantalla:"
 
-#~ msgid ""
-#~ "Assuming that the user did click <gui>Open</gui>, the next line sets the "
-#~ "<code>file</code> property of the <code>Gtk.Image</code> to the filename "
-#~ "of the image selected by the user. The <code>Gtk.Image</code> will then "
-#~ "load and display the chosen image."
-#~ msgstr ""
-#~ "Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea "
-#~ "establece la propiedad <code>file</code> de la <code>Gtk.Image</code> al "
-#~ "nombre del archivo de imagen seleccionada por el usuario. La <code>Gtk."
-#~ "Image</code> cargarà y mostrarà la imagen elegida."
+#: 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 ""
 
-#~ msgid ""
-#~ "All of the code you need should now be in place, so try running the code. "
-#~ "That should be it; a fully-functioning image viewer (and a whistlestop "
-#~ "tour of Python and Gtk) in not much time at all!"
-#~ msgstr ""
-#~ "Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
-#~ "ejecutar el cÃdigo. Esto deberÃa ser todo; un visor de imÃgenes "
-#~ "completamente funcional (y un completo tour sobre Python y GTK+) en poco "
-#~ "tiempo."
+#: 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 ""
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"image-viewer/image-viewer.py\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"image-viewer/image-viewer.py\">coÌdigo de referencia</link>."
+#: C/helloWorld.js.page:59(p)
+#, fuzzy
+#| msgid ""
+#| "After importing Gtk, we need to initialize it. After initializing Gtk we "
+#| "can start building our first window. We do this by creating a variable "
+#| "mywindow and assign it a new Gtk.Window of type TOPLEVEL."
+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 ""
+"DespuÃs de importar GTK+, se debe inicializar. DespuÃs de inicializar GTK+ "
+"se puede empezar a construir la primera ventana. Esto se hace creando una "
+"variable llamada Âmywindow y asignÃndole una  ÂGtk.Window de tipo ÂTOPLEVELÂ."
 
-#~ 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 ""
-#~ "Algo mÃs que una sencilla aplicaciÃn ÂHola mundoÂ; escribir un visor de "
-#~ "imÃgenes en GTK. Incluye una introducciÃn al lenguaje JavaScript."
+#: C/helloWorld.js.page:59(p)
+#, fuzzy
+#| msgid ""
+#| "After setting up our first window we'll give the window a property called "
+#| "title. Title can be any string you want it to be, to be on the safe side "
+#| "it is good to stick to UTF-8 encoding."
+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 ""
+"DespuÃs de configurar la primera ventana, se le asignarà una propiedad "
+"llamada ÂtitleÂ. El tÃtulo puede ser la cadena que quiera pero, para estar "
+"seguro, es conveniente que tenga una codificaciÃn UTF-8."
 
-#~ msgid "Write a basic GTK user interface in JavaScript"
-#~ msgstr "Escribir una interfaz GTK+ de usuario bÃsica usando JavaScript"
+#: 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 ""
 
-#~ msgid "An installed copy of the <em>gjs</em> interpreter"
-#~ msgstr "Una copia instalada del intÃrprete <em>gjs</em>"
+#: 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 ""
 
-#~ msgid "Basic knowledge of any object-orientated programming language"
-#~ msgstr ""
-#~ "Conocimiento bÃsico de cualquier lenguaje de programaciÃn orientado a "
-#~ "objetos"
+#: 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 ""
 
-#~ 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 ""
-#~ "Elija <gui>Javascript genÃrico</gui> de la pestaÃa <gui>JS</gui>, pulse "
-#~ "<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
-#~ "<file>visor-imÃgenes</file> como nombre de proyecto y de carpeta."
+#: 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 ""
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. It contains very basic example code."
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/main.js</"
-#~ "file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "Contiene un ejemplo de cÃdigo muy bÃsico:"
+#: C/helloWorld.js.page:80(p)
+#, fuzzy
+#| msgid "This is what the whole program looks like."
+msgid "Here's what the completed program looks like."
+msgstr "El programa completo se parece a esto."
 
-#~ msgid "JavaScript basics: Hello World"
-#~ msgstr "JavaScript bÃsico: hola mundo"
+#: C/helloWorld.js.page:108(title)
+#| msgid "Running the application form Terminal"
+msgid "Running the application from Terminal"
+msgstr "Ejecutar la aplicaciÃn desde la terminal"
 
-#~ msgid ""
-#~ "Before we start writing the image viewer, let's find out more about the "
-#~ "way JavaScript is used in GNOME. Of course, your very first contact with "
-#~ "any programming language should be the Hello World program which can "
-#~ "already be found in <file>main.js</file>:"
-#~ msgstr ""
-#~ "Antes de empezar a escribir el visor de imÃgenes, averigÃe algo mÃs sobre "
-#~ "cÃmo se usa JavaScript en GNOME. Por supuesto que su primer contacto con "
-#~ "un lenguaje de programaciÃn debe ser el programa ÂHola mundoÂ, que se "
-#~ "puede encontrar en el archivo <file>main.js</file>:"
+#: C/helloWorld.js.page:109(p)
+#, fuzzy
+#| msgid ""
+#| "To run this application open Terminal, go to the folder where your "
+#| "application is stored and then run"
+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 ""
+"Para ejecutar esta aplicaciÃn ,abra una terminal, vaya a la carpeta donde "
+"està la aplicaciÃn y ejecute"
 
-#~ msgid "print (\"Hello world!\");"
-#~ msgstr "print (\"ÂHola mundo!\");"
+#: C/helloWorld.js.page:109(input)
+#| msgid "helloWorld.js"
+msgid "chmod +x helloWorld.js"
+msgstr "chmod +x helloWorld.js"
 
-#~ msgid ""
-#~ "This should look quite natural if you're familiar with almost any other "
-#~ "programming language. The function <code>print</code> is called with the "
-#~ "argument <code>\"Hello world!\"</code>, which will be printed on the "
-#~ "screen. Note that each line of code ends with a semicolon."
-#~ msgstr ""
-#~ "Esto deberÃa resultarle natural si està familiarizado con la mayorÃa del "
-#~ "resto de lenguajes de programaciÃn. La funciÃn <code>print</code> se "
-#~ "llama con el argumento <code>\"ÂHola mundo!\"</code>, que se mostrarà en "
-#~ "la pantalla. Tenga en cuenta que cada lÃnea de cÃdigo termina en Â;Â."
+#: C/helloWorld.js.page:110(p)
+msgid "This makes your script executable. After that, run"
+msgstr ""
 
-#~ msgid "Classes in JavaScript"
-#~ msgstr "Clases en JavaScript"
+#: C/helloWorld.js.page:110(input)
+msgid "GJS_PATH=`pwd` gjs helloWorld.js"
+msgstr "GJS_PATH=`pwd` gjs helloWorld.js"
 
-#~ msgid "This is the standard way to define a class in JavaScript:"
-#~ msgstr "Esta es la manera estÃndar de definir una clase en JavaScript:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/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/guitarJs.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgstr ""
+"@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 
-#~ msgid ""
-#~ "This defines a class called <code>MyClass</code>. Let's go through each "
-#~ "part of the class definition:"
-#~ msgstr ""
-#~ "Esto define una clase llamada <code>MyClass</code>. Vea cada una de las "
-#~ "partes de la definiciÃn de la clase:"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:94(None) C/guitar-tuner.py.page:88(None)
+#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:92(None)
+msgid ""
+"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+msgstr ""
+"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
 
-#~ msgid ""
-#~ "<code>function MyClass</code> is the constructor of the class â its name "
-#~ "must match the class's name. You can access any member of the class by "
-#~ "using the <code>this</code> object; here, the constructor calls the "
-#~ "class's <code>_init</code> method."
-#~ msgstr ""
-#~ "<code>function MyClass</code> es el constructor de la clase; su nombre "
-#~ "debe coincidir con el de la clase. Puede acceder a cualquier miembro de "
-#~ "la clase usando el objeto <code>this</code>; aquÃ, el constructor llama "
-#~ "al mÃtodo <code>_init</code> de la clase."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:128(None) C/guitar-tuner.py.page:131(None)
+#: C/guitar-tuner.js.page:40(None) C/guitar-tuner.cpp.page:117(None)
+#: C/guitar-tuner.c.page:137(None)
+msgid ""
+"@@image: 'media/guitar-tuner-pipeline.png'; "
+"md5=5adc952909d92af5dae6954781b4ad5f"
+msgstr ""
+"@@image: 'media/guitar-tuner-pipeline.png'; "
+"md5=5adc952909d92af5dae6954781b4ad5f"
 
-#~ msgid ""
-#~ "The <code>MyClass.prototype</code> block is where you define the "
-#~ "<em>structure</em> of the class. Each class is made up of methods "
-#~ "(functions) and fields (variables); there are three methods and two "
-#~ "fields in this example."
-#~ msgstr ""
-#~ "El bloque <code>MyClass.prototype</code> es donde define la "
-#~ "<em>estructura</em> de la clase. Cada clase se compone de mÃtodos "
-#~ "(funciones) y campos (variables); en este ejemplo, hay tres mÃtodos y dos "
-#~ "campos."
+#: C/guitar-tuner.vala.page:8(desc)
+msgid ""
+"Use <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
+"\">Gtk+</link> and <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gstreamer\">GStreamer</link> to build a simple guitar tuner "
+"application for GNOME. Shows off how to use the interface designer."
+msgstr ""
+"Usar <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
+"\">GTK+</link> y <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gstreamer\">GStreamer</link> para construir un sencillo afinador de "
+"guitarra para GNOME. Muestra cÃmo usar el diseÃador de interfaces."
 
-#~ msgid ""
-#~ "The first method defined here is called <code>_init</code>, and we "
-#~ "specify that it is a function with no arguments:"
-#~ msgstr ""
-#~ "El primer mÃtodo definido se llama <code>_init</code>, y se especifica "
-#~ "que es una funciÃn sin argumentos:"
+#: C/guitar-tuner.vala.page:25(title) C/guitar-tuner.py.page:21(title)
+#: C/guitar-tuner.js.page:17(title)
+msgid "2 Guitar Tuner"
+msgstr "2. Afinador de guitarra"
 
-#~ msgid "_init: function ()"
-#~ msgstr "_init: function ()"
+#: C/guitar-tuner.vala.page:28(p)
+msgid ""
+"In this tutorial you will create an application which plays tones that you "
+"can use to tune a guitar. You will learn how to:"
+msgstr ""
+"En este tutorial se va a hacer un programa que reproduce tonos que puede "
+"usar para afinar su guitarra. Aprenderà a:"
 
-#~ 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 ""
-#~ "Se escribe la funciÃn entre corchetes. Aquà se definen dos campos, "
-#~ "<code>propertyA</code> y <code>propertyB</code>. La primera se establece "
-#~ "como una cadena, y la segunda se establece como un entero (10). La "
-#~ "funciÃn no retorna ningÃn valor."
+#: C/guitar-tuner.vala.page:30(p)
+msgid ""
+"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
+"link>."
+msgstr ""
+"Configurar un proyecto bÃsico usando el <link xref=\"getting-ready\">EID "
+"Anjuta</link>."
 
-#~ msgid ""
-#~ "The next method is called <code>aMethod</code> and has two arguments, "
-#~ "which it prints out when you call it. The final method is "
-#~ "<code>dumpProperties</code>, and prints the fields <code>propertyA</code> "
-#~ "and <code>propertyB</code>."
-#~ msgstr ""
-#~ "El siguiente mÃtodo se llama <code>aMethod</code> y tiene dos argumentos "
-#~ "que imprime cuando se invoca. El Ãltimo mÃtodo es <code>dumpProperties</"
-#~ "code>, que imprime los campos <code>propertyA</code> y <code>propertyB</"
-#~ "code>."
+#: C/guitar-tuner.vala.page:31(p)
+msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
+msgstr "Crear una IGU sencilla con el diseÃador de IU de <app>Anjuta</app>."
 
-#~ msgid ""
-#~ "Note how the class definition (prototype) is arranged; each function "
-#~ "definition is separated by a comma."
-#~ msgstr ""
-#~ "Tenga en cuenta cÃmo se ordena la definiciÃn de la clase (prototipo); "
-#~ "cada definiciÃn de funciÃn se separa con una coma."
+#: 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 ""
+"Usar la biblioteca <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gstreamer\">GStreamer</link> para reproducir sonidos."
 
-#~ msgid "Now that MyClass has been defined, we can play with it:"
-#~ msgstr "Ahora que ÂMyClass se ha definido, se puede jugar con ella:"
+#: C/guitar-tuner.vala.page:44(title)
+msgid "Create a project in <app>Anjuta</app>"
+msgstr "Crear un proyecto en <app>Anjuta</app>"
 
-#~ msgid ""
-#~ "This code creates a new instance of the class called <code>o</code>, runs "
-#~ "<code>aMethod</code>, changes <code>propertyA</code> to a different "
-#~ "string, and then calls <code>dumpProperties</code> (which outputs the "
-#~ "fields)."
-#~ msgstr ""
-#~ "Este cÃdigo crear una instancia nueva de la clase llamada <code>o</code>, "
-#~ "ejecuta <code>aMethod</code>, cambia <code>propertyA</code> a una cadena "
-#~ "diferente y entonces llama a <code>dumpProperties</code> (que muestra los "
-#~ "campos)."
+#: C/guitar-tuner.vala.page:51(p)
+msgid ""
+"Click on the <gui>Vala</gui> tab and select <gui>Gtk+ (Simple)</gui>. Click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Pulse en la pestaÃa <gui>Vala</gui> y seleccione <gui>GTK+ (simple)</gui>. "
+"Pulse <gui>Continuar</gui>, y rellene los detalles en las siguientes "
+"pÃginas. Use <file>afinador-guitarra</file> como nombre del proyecto y de la "
+"carpeta."
 
-#~ 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 ""
-#~ "Guarde el cÃdigo en el archivo <file>main.js</file> y ejecÃtelo usando "
-#~ "<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> desde el menà o "
-#~ "usando la barra de herramientas."
+#: C/guitar-tuner.vala.page:54(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</"
+"gui>. On the next page, select <link href=\"http://valadoc.org/gstreamer-";
+"0.10/index.htm\"><em>gstreamer-0.10</em></link> from the list to include the "
+"GStreamer library in your project. Click <gui>Continue</gui>"
+msgstr ""
+"AsegÃrese de que <gui>Configurar paquetes externos</gui> està <gui>activada</"
+"gui>. En la siguiente pÃgina, seleccione <link href=\"http://valadoc.org/";
+"gstreamer-0.10/index.htm\"><em>gstreamer-0.10</em></link> de la lista para "
+"incluir la biblioteca GStreamer en su proyecto. Pulse <gui>Continuar</gui>"
 
-#~ msgid ""
-#~ "Let's see what a very basic Gtk application looks like in JavaScript:"
-#~ msgstr "Vea como queda una aplicaciÃn GTK+ muy bÃsica en JavaScript:"
+#: C/guitar-tuner.vala.page:58(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. From the "
+"<gui>Project</gui> or <gui>Files</gui> tab, open <file>src/guitar_tuner."
+"vala</file> by double-clicking on it. You should see some code which starts "
+"with the lines:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/"
+"guitar_tuner.vala</file> desde las pestaÃas <gui>Proyecto</gui> o "
+"<gui>Archivo</gui> pulsando dos veces sobre Ãl. DeberÃa ver algo de cÃdigo "
+"que comience con las lÃneas:"
 
-#~ msgid ""
-#~ "<code>Gtk.init</code> initializes the Gtk library; this statement is "
-#~ "mandatory for all Gtk programs."
-#~ msgstr ""
-#~ "<code>Gtk.init</code> inicializa la biblioteca GTK; esta sentencia es "
-#~ "obligatoria para todos los programas GTK."
+#: C/guitar-tuner.vala.page:68(p)
+msgid ""
+"The code loads an (empty) window from the user interface description file "
+"and displays it. More details are given below; you may choose to skip this "
+"list if you understand the basics:"
+msgstr ""
+"El cÃdigo carga una ventana (vacÃa) desde el archivo de descripciÃn de "
+"interfaz de usuario y la muestra. Se ofrecen mÃs detalles a continuaciÃn; "
+"omita esta lista si entiende los conceptos bÃsicos:"
 
-#~ msgid ""
-#~ "The next line creates the main window by creating a new <code>Gtk.Window</"
-#~ "code> object. You can pass several properties to the window's constructor "
-#~ "by using the syntax <code>{property: value, property: value, ...}</code>. "
-#~ "In this case we are setting the title of the window."
-#~ msgstr ""
-#~ "La siguiente lÃnea crea la ventana principal creando un objeto <code>Gtk."
-#~ "Window</code>. Puede pasar varias propiedades al constructor de la "
-#~ "ventana usando la sintaxis <code>{property: value, property: value, ...}</"
-#~ "code>. En este caso, se està estableciendo el tÃtulo de la ventana."
+#: 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. "
+"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 ""
+"El constructor de la clase <code>Main</code> crea una ventana nueva abriendo "
+"un archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>, definido unas "
+"pocas lÃneas mÃs arriba), conectando sus seÃales y mostrÃndolo en una "
+"ventana. El archivo de GtkBuilder contiene una descripciÃn de una interfaz "
+"de usuario y de todos sus elementos. Puede usar el editor Anjuta para "
+"diseÃar interfaces de usuario con GtkBuilder."
+
+#: 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 ""
+"Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
+"cuando ocurre algÃn otro evento. AquÃ, se llama a la funciÃn "
+"<code>on_destroy</code> (y se sale de la aplicaciÃn) cuando cierra la "
+"ventana."
 
-#~ msgid ""
-#~ "The next line explicitly shows the window. In Gtk, every widget is hidden "
-#~ "by default."
-#~ msgstr ""
-#~ "La siguiente lÃnea muestra explÃcitamente la ventana. En GTK+, cada "
-#~ "widget està oculto de manera predeterminada."
+#: C/guitar-tuner.vala.page:81(p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"up and then run the application. The <code>Gtk.main</code> function starts "
+"the GTK main loop, which runs the user interface and starts listening for "
+"events (like clicks and key presses)."
+msgstr ""
+"La funciÃn estÃtica <code>main</code> se ejecuta de manera predeterminada "
+"cuando inicia una aplicaciÃn en Vala. Llama a algunas funciones que crean la "
+"clase ÂMain y configuran y ejecutan la aplicaciÃn. La funciÃn <code>Gtk."
+"main</code> inicia el bucle principal de GTK+, que ejecuta la interfaz de "
+"usuario y empieza a escuchar eventos (como pulsaciones del ratÃn y del "
+"teclado)."
+
+#: 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 ""
+"Este cÃdigo està listo para usarse, por lo que puede compilarlo pulsando "
+"<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> (o "
+"pulsando <keyseq><key>MayÃs</key><key>F7</key></keyseq>). Cuando lo haga, "
+"aparecerà un diÃlogo. Cambie la <gui>ConfiguraciÃn</gui> a "
+"<gui>Predeterminada</gui> y pulse <gui>Ejecutar</gui> para configurar la "
+"carpeta de construcciÃn. SÃlo tendrà que hacer esto una vez, para la primera "
+"construcciÃn."
+
+#: 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 la interfaz de usuario"
+
+#: C/guitar-tuner.vala.page:90(p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder file "
+"<file>src/guitar_tuner.ui</file> defined at the top of the class. To edit "
+"the user interface, open <file>src/guitar_tuner.ui</file> by double-clicking "
+"on it in the <gui>Project</gui> or <gui>Files</gui> section. This will "
+"switch to the interface designer. The design window is in the center; "
+"<gui>Widgets</gui> and the widget properties are on the right, and the "
+"<gui>Palette</gui> of available widgets is on the left."
+msgstr ""
+"El archivo de GtkBuilder <file>src/guitar_tuner.ui</file> contiene una "
+"descripciÃn de la interfaz de usuario (IU), definida en la parte superior de "
+"la clase. Para editar la interfaz de usuario, abra <file>src/guitar_tuner."
+"ui</file> pulsando dos veces sobre el archivo en las secciones "
+"<gui>Proyecto</gui> or <gui>Archivos</gui>. Esto cambiarà al diseÃador de "
+"interfaces. La ventana de diseÃo està en el centro; los <gui>Widgets</gui> y "
+"sus propiedades estÃn a la izquierda, y la <gui>Paleta</gui> de los widgets "
+"disponibles està a la derecha."
+
+#: 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 GtkButtonBox here to assign six GtkButtons, one for each of "
+"the six guitar strings."
+msgstr ""
+"La distribuciÃn de cualquier IU en GTK+ se organiza usando cajas y tablas. "
+"Aquà se usarà una GtkButtonBox vertical para asignar seis GtkButtons, uno "
+"para cada una de las cuerdas de la guitarra."
 
-#~ msgid ""
-#~ "Finally, <code>Gtk.main</code> runs the main loop â in other words, it "
-#~ "executes the program. The main loop listens for events (signals) from the "
-#~ "user interface and then calls a signal handler which will do something "
-#~ "useful. We'll learn more about signals shortly."
-#~ msgstr ""
-#~ "Finalmente, <code>Gtk.main</code> ejecuta el bucle principal; en otras "
-#~ "palabras, ejecuta el programa. El bucle principal escucha los eventos "
-#~ "(seÃales) de la interfaz del usuario y llama a un manejador de la seÃal "
-#~ "que harà algo Ãtil. En breve aprenderà mÃs cosas sobre las seÃales."
-
-#~ 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 ""
-#~ "Guarde el cÃdigo en <file>main.js</file> y ejecÃtelo. Notarà que la "
-#~ "aplicaciÃn no termina cuando cierra la ventana. Esto es porque todavÃa no "
-#~ "se ha configurado un manejador de seÃal para gestionar la seÃal "
-#~ "<code>destroy</code> (cerrar) de la ventana. Esto se harà en breve, pero "
-#~ "por el momento puede pulsar <keyseq><key>Ctrl</key><key>C</key></keyseq> "
-#~ "en la ventana de la terminal para salir del programa."
-
-#~ msgid "Adding classes"
-#~ msgstr "AÃadir clases"
-
-#~ msgid ""
-#~ "The proper way of doing Gtk programming is by using classes. Let's "
-#~ "rewrite the simple code you just wrote using classes:"
-#~ msgstr ""
-#~ "La manera correcta de programar en GTK+ es usando clases. Reescriba el "
-#~ "cÃdigo que acaba de escribir usando clases:"
-
-#~ 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 ""
-#~ "Tenga en cuenta que el programa es el mismo; simplemente se ha movido el "
-#~ "cÃdigo de creaciÃn de la ventana a la clase <code>ImageViewer</code>. El "
-#~ "constructor de la clase llama al mÃtodo <code>_init</code>, que crea y "
-#~ "muestra la ventana. Se crea entonces una instancia de la clase antes de "
-#~ "ejecutar el bucle principal (<code>Gtk.main</code>)."
-
-#~ msgid ""
-#~ "This code is modular and can be split into multiple files easily. This "
-#~ "makes it cleaner and easier to read."
-#~ msgstr ""
-#~ "El cÃdigo es modular y se puede dividir el varios archivos fÃcilmente. "
-#~ "Esto hace que sea mÃs limpio y fÃcil de leer."
-
-#~ msgid "The syntax for connecting any signal to a function is:"
-#~ msgstr "La sintaxis para conectar cualquier seÃal a una funciÃn es:"
-
-#~ 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 ""
-#~ "Puede encontrar definiciones de seÃales para cualquier objeto en la <link "
-#~ "href=\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>referencia "
-#~ "de clases de GTK+</link>."
-
-#~ msgid ""
-#~ "You can simplify the code by making use of an inline function definition:"
-#~ msgstr ""
-#~ "Puede simplificar el cÃdigo usando una definiciÃn de funciÃn en lÃnea:"
-
-#~ msgid "Closing the window"
-#~ msgstr "Cerrar la ventana"
-
-#~ 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 ""
-#~ "Cuando cierra una ventana de GTK, realmente no se cierra, se oculta. Esto "
-#~ "le permite mantener la ventana (lo que es Ãtil si quiere preguntar al "
-#~ "usuario si realmente quiere cerrar la ventana, por ejemplo)."
-
-#~ 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 ""
-#~ "En este caso, simplemente se quiere cerrar la ventana. La manera mÃs "
-#~ "sencilla de hacerlo es conectar la seÃal <code>hide</code> del objeto "
-#~ "GtkWindow a una funciÃn que cierra la aplicaciÃn. Vuelva al archivo "
-#~ "<file>image-viewer.js</file> y aÃada el siguiente cÃdigo al mÃtodo "
-#~ "<code>_init</code>, en la lÃnea anterior a <code>this.window.show</code>:"
-
-#~ msgid "this.window.connect (\"hide\", Gtk.main_quit);"
-#~ msgstr "this.window.connect (\"hide\", Gtk.main_quit);"
-
-#~ 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 ""
-#~ "Esto conecta la seÃal <code>hide</code> de la ventana con la funciÃn "
-#~ "<code>main_quit</code> de GTK, que termina la ejecuciÃn del bucle "
-#~ "principal de GTK. Una vez que el bucle principal termina, la funciÃn "
-#~ "<code>Gtk.main</code> retorna. El programa puede continuar ejecutando "
-#~ "cualquier cÃdigo que haya despuÃs de la lÃnea <code>Gtk.main ();</code>, "
-#~ "pero como no hay ningÃn cÃdigo despuÃs de ese punto, el programa "
-#~ "simplemente termina."
-
-#~ msgid ""
-#~ "Let's add the box and widgets to the window. Insert the following code "
-#~ "into the <code>_init</code> method, immediately above the <code>this."
-#~ "window.show</code> line:"
-#~ msgstr ""
-#~ "AÃada la caja y los widgets a la ventana. Inserte el siguiente cÃdigo en "
-#~ "el mÃtodo <code>_init</code>, justo debajo de la lÃnea <code>this.window."
-#~ "show</code>:"
-
-#~ msgid ""
-#~ "The first line creates a <code>Gtk.Box</code> called <code>main_box</"
-#~ "code> and sets two of its properties: the <code>orientation</code> is set "
-#~ "to vertical (so widgets are arranged in a column), and the <code>spacing</"
-#~ "code> between the widgets is set to 0 pixels. The next line then adds the "
-#~ "newly-created <code>Gtk.Box</code> to the window."
-#~ msgstr ""
-#~ "La primera lÃnea crea una <code>Gtk.Box</code> llamada <code>main_box</"
-#~ "code> y establece dos de sus propiedades: la <code>orientation</code> se "
-#~ "establece a Âvertical (por lo que los widgets se ordenan en columna), y "
-#~ "el <code>spacing</code> entre los widgets, que se establece a 0 pÃxeles. "
-#~ "La siguiente lÃnea aÃade la <code>Gtk.Box</code> reciÃn creada a la "
-#~ "ventana."
-
-#~ msgid ""
-#~ "To add some widgets to the <code>Gtk.Box</code>, insert the following "
-#~ "code directly below the <code>this.window.add (main_box)</code> line:"
-#~ msgstr ""
-#~ "Para aÃadir algunos widgets a la <code>Gtk.Box</code>, inserte el "
-#~ "siguiente cÃdigo justo debajo de la lÃnea <code>this.window.add (main_box)"
-#~ "</code>:"
-
-#~ msgid ""
-#~ "The first line creates a new <code>Gtk.Image</code> called <code>image</"
-#~ "code>, which will be used to display an image file. Then, the image "
-#~ "widget is added (<em>packed</em>) into the <code>main_box</code> "
-#~ "container using <code>Gtk.Box</code>'s <link href=\"http://library.gnome.";
-#~ "org/devel/gtk/stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</"
-#~ "code></link> method."
-#~ msgstr ""
-#~ "La primera lÃnea crea una <code>Gtk.Image</code> nueva llamada "
-#~ "<code>image</code>, que se usarà para mostrar un archivo de imagen. "
-#~ "Entonces, se aÃade el widget de imagen (<em>packed</em>) al contenedor "
-#~ "<code>main_box</code> usando el mÃtodo <link href=\"http://library.gnome.";
-#~ "org/devel/gtk/stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</"
-#~ "code></link> de <code>Gtk.Box</code>."
-
-#~ msgid ""
-#~ "<code>pack_start</code> takes 4 arguments: the widget that is to be added "
-#~ "to the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk."
-#~ "Box</code> should grow larger when the new widget is added (<code>expand</"
-#~ "code>); whether the new widget should take up all of the extra space "
-#~ "created if the <code>Gtk.Box</code> gets bigger (<code>fill</code>); and "
-#~ "how much space there should be, in pixels, between the widget and its "
-#~ "neighbors inside the <code>Gtk.Box</code> (<code>padding</code>)."
-#~ msgstr ""
-#~ "<code>pack_start</code> toma 4 argumentos: el widget que aÃadir a la "
-#~ "<code>Gtk.Box</code> (<code>child</code>); indica si la <code>Gtk.Box</"
-#~ "code> debe crecer a lo largo cuando se aÃade el widget nuevo "
-#~ "(<code>expand</code>); indica si el widget nuevo debe tomar todo el "
-#~ "espacio adicional creado si la <code>Gtk.Box</code> se hace mÃs grande "
-#~ "(<code>fill</code>); y cuÃnto espacio debe haber, en pÃxeles, entre el "
-#~ "widget y los demÃs widgets dentro de la <code>Gtk.Box</code> "
-#~ "(<code>padding</code>)."
-
-#~ 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 ""
-#~ "Estas lÃneas son similares a las dos primeras, pero esta vez crean un "
-#~ "<code>Gtk.Button</code> y lo aÃaden a la <code>main_box</code>. Tenga en "
-#~ "cuenta que aquà se està estableciendo el argumento <code>expand</code> "
-#~ "(el segundo) a <code>false</code>, mientras que para la <code>Gtk.Image</"
-#~ "code> se establecià a <code>true</code>. Esto harà que la imagen tome "
-#~ "todo el espacio disponible y que el botÃn tome sÃlo el espacio que "
-#~ "necesite. Cuando se maximiza la ventana, el tamaÃo del botÃn serà el "
-#~ "mismo, pero el tamaÃo de la imagen aumentarà junto con el resto de la "
-#~ "ventana."
-
-#~ msgid ""
-#~ "Finally, we must change the <code>this.window.show ();</code> line to "
-#~ "read:"
-#~ msgstr ""
-#~ "Finalmente, se debe cambiar la lÃnea <code>this.window.show ();</code> "
-#~ "para leer:"
-
-#~ msgid "this.window.show_all ();"
-#~ msgstr "this.window.show_all ();"
-
-#~ 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 ""
-#~ "Esto mostrarà el hijo de la ventana de GTK, y todos sus hijos, y los "
-#~ "hijos de sus hijos, etcÃtera. (Recuerde que los widgets de GTK estÃn "
-#~ "ocultos de manera predeterminada.)"
-
-#~ msgid ""
-#~ "When the user clicks on the <gui>Open</gui> button, a dialog should "
-#~ "appear so that the user can choose a picture. Once chosen, the picture "
-#~ "should be loaded and shown in the image widget."
-#~ msgstr ""
-#~ "Cuando el usuario pulse en el botÃn <gui>Abrir</gui>, debe aparecer un "
-#~ "diÃlogo en el que el usuario pueda elegir una imagen. una vez elegida, la "
-#~ "imagen se debe cargar y mostrar en el widget de imagen."
-
-#~ msgid ""
-#~ "The first step is to connect the <code>clicked</code> signal of the "
-#~ "button to a signal handler function, which we call <code>_openClicked</"
-#~ "code>. Put this code immediately after the <code>var open_button = new "
-#~ "Gtk.Button</code> line where the button was created:"
-#~ msgstr ""
-#~ "El primer paso es conectar la seÃal <code>clicked</code> del botÃn a una "
-#~ "funciÃn manejadora de la seÃal, llamada <code>_openClicked</code>. Ponga "
-#~ "este cÃdigo inmediatamente despuÃs de la lÃnea <code>var open_button = "
-#~ "new Gtk.Button</code> en la que se creà el botÃn:"
-
-#~ msgid ""
-#~ "We are using the <em>Lang</em> JavaScript helper here. It allows us to "
-#~ "connect a <em>class method</em> to the signal, rather than a plain "
-#~ "function (without a class) which we had used before for the window's "
-#~ "<code>hide</code> signal. Don't worry about this for now, it's just a "
-#~ "technical detail. For it to work, you also need to put the following line "
-#~ "at the top of the file:"
-#~ msgstr ""
-#~ "Aquà se està usando el JavaScript auxiliar <em>Lang</em>. Permite "
-#~ "conectar un <em>mÃtodo de clase</em> a la seÃal, en vez de una funciÃn "
-#~ "normal (sin clase) que se haya usado anteriormente para seÃal <code>hide</"
-#~ "code> de la ventana. No se preocupe por esto ahora, es sÃlo un detalle "
-#~ "tÃcnico. Para que funcione, debe poner tambiÃn la siguiente lÃnea en la "
-#~ "parte superior del archivo:"
-
-#~ msgid "const Lang = imports.lang;"
-#~ msgstr "const Lang = imports.lang;"
-
-#~ msgid ""
-#~ "Now we can create the <code>_openClicked()</code> method. Insert the "
-#~ "following into the <code>ImageViewer.prototype</code> code block, after "
-#~ "the <code>_init</code> method (and not forgetting the comma):"
-#~ msgstr ""
-#~ "Ahora se puede crear el mÃtodo <code>_openClicked()</code>. Inserte el "
-#~ "siguiente cÃdigo en el bloque de cÃdigo de <code>ImageViewer.prototype</"
-#~ "code>, despuÃs del mÃtodo <code>_init</code> (y no olvide la coma):"
-
-#~ msgid ""
-#~ "The line beginning with <code>var chooser</code> creates an <gui>Open</"
-#~ "gui> dialog, which the user can use to choose files. We set four "
-#~ "properties: the title of the dialog; the action (type) of the dialog "
-#~ "(it's an \"open\" dialog, but we could have used <code>SAVE</code> if the "
-#~ "intention was to save a file; <code>transient_for</code>, which sets the "
-#~ "parent window of the dialog; and <code>modal</code> which, if set to "
-#~ "<code>true</code>, prevents the user from clicking on another area of the "
-#~ "application until the dialog is closed."
-#~ msgstr ""
-#~ "La lÃnea que comienza por <code>var chooser</code> crear un diÃlogo "
-#~ "<gui>Abrir</gui>, que el usuario puede utilizar para elegir archivos. Se "
-#~ "establecen cuatro propiedades: el tÃtulo del diÃlogo, la acciÃn (tipo) "
-#~ "del diÃlogo (es un diÃlogo ÂopenÂ, pero se podrÃa haber usado <code>SAVE</"
-#~ "code> si la intenciÃn hubiese sido guardar un archivo; "
-#~ "<code>transient_for</code>, que establece la ventana padre del diÃlogo; y "
-#~ "<code>modal</code>, que si se establecer a <code>true</code> evita que el "
-#~ "usuario pueda pulsar en otra Ãrea de la aplicaciÃn hasta que no se cierre "
-#~ "el diÃlogo."
-
-#~ msgid ""
-#~ "<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
-#~ "will wait for the user to choose an image; when they do, <code>chooser."
-#~ "run</code> will return the value <output>1</output> (it would return "
-#~ "<output>0</output> if the user clicked <gui>Cancel</gui>). The <code>if</"
-#~ "code> statement tests for this."
-#~ msgstr ""
-#~ "<code>chooser.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
-#~ "esperarà a que el usuario elija una imagen; cuando lo haga, <code>chooser."
-#~ "run</code> devolverà el valor <output>1</output> (devolverÃa <output>0</"
-#~ "output> si el usuario pulsara <gui>Cancelar</gui>). La sentencia "
-#~ "<code>if</code> comprueba esto."
-
-#~ msgid ""
-#~ "All of the code you need should now be in place, so try running the code. "
-#~ "That should be it; a fully-functioning image viewer (and a whistlestop "
-#~ "tour of JavaScript and Gtk) in not much time at all!"
-#~ msgstr ""
-#~ "Todo el cÃdigo que necesita debe estar en su lugar, asà que trate de "
-#~ "ejecutar el cÃdigo. Esto deberÃa ser todo; un visor de imÃgenes "
-#~ "completamente funcional (y un completo tour sobre JavaScript y GTK+) en "
-#~ "poco tiempo."
-
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"image-viewer/image-viewer.js\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"image-viewer/image-viewer.js\">coÌdigo de referencia</link>."
-
-#~ msgid "A little bit more than a simple \"Hello world\" GTKmm application."
-#~ msgstr "Algo mÃs que una sencilla aplicaciÃn ÂHola mundo en GTKmm."
-
-#~ msgid "Some basic concepts of C++/GObject programming"
-#~ msgstr "Algunos conceptos baÌsicos de programacioÌn en C++/GObject"
-
-#~ msgid "How to write a Gtk application in C++"
-#~ msgstr "CÃmo escribir una aplicaciÃn GTK en C++"
-
-#~ msgid ""
-#~ "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
-#~ "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>image-viewer</file> as project name and directory."
-#~ msgstr ""
-#~ "Elija <gui>GTKmm (simple)</gui> de la pestaÃa <gui>C++</gui>, pulse "
-#~ "<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
-#~ "<file>visor-imagenes</file> como nombre de proyecto y de carpeta."
-
-#~ msgid ""
-#~ "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled "
-#~ "as we will create the UI manually in this tutorial. Check the <link xref="
-#~ "\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn "
-#~ "how to use the interface builder."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
-#~ "està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
-#~ "Revise el tutorial del <link xref=\"guitar-tuner.cpp\">afinador de "
-#~ "guitarra</link> si quiere aprender a usar el constructor de interfaces."
-
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. You should see some code which starts with the lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/main.cc</"
-#~ "file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
-
-#~ 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 ""
-#~ "Esto es una configuraciÃn de cÃdigo C++ usando GTKmm. Se ofrecen mÃs "
-#~ "detalles a continuaciÃn; omita esta lista si entiende los conceptos "
-#~ "bÃsicos:"
-
-#~ msgid ""
-#~ "The three <code>#include</code> lines at the top include the "
-#~ "<code>config</code> (useful autoconf build defines), <code>gtkmm</code> "
-#~ "(user interface) and <code>iostream</code> (C++-STL) libraries. Functions "
-#~ "from these libraries are used in the rest of the code."
-#~ msgstr ""
-#~ "Las tres lÃneas <code>#include</code> en la parte superior incluyen las "
-#~ "bibliotecas <code>config</code> (definiciones Ãtiles para construcciÃn "
-#~ "con autoconf), <code>gtkmm</code> (interfaz de usuario) <code>iostream</"
-#~ "code> (C++-STL). Las funciones de estas bibliotecas se usan en el resto "
-#~ "del cÃdigo."
-
-#~ msgid ""
-#~ "The <code>main</code> function creates a new (empty) window and sets the "
-#~ "window title."
-#~ msgstr ""
-#~ "La funciÃn <code>main</code> crea una ventana (vacÃa) nueva y establece "
-#~ "el tÃtulo de la ventana."
-
-#~ msgid ""
-#~ "The <code>kit::run()</code> call starts the GTKmm main loop, which runs "
-#~ "the user interface and starts listening for events (like clicks and key "
-#~ "presses). As we give the window as an argument to that function, the "
-#~ "application will automatically exit when that window is closed."
-#~ msgstr ""
-#~ "La llamada <code>kit::run()</code> inicia el bucle principal de GTKmm, "
-#~ "que ejecuta la interfaz de usuario y empieza a escuchar eventos (como "
-#~ "pulsaciones del ratÃn y del teclado). Como se ha pasado la ventana como "
-#~ "argumento a esta funciÃn, la aplicaciÃn se cerrarà automÃticamente cuando "
-#~ "se cierre la ventana."
-
-#~ msgid ""
-#~ "Press <gui>Execute</gui> on the next window that appears to configure a "
-#~ "debug build. You only need to do this once, for the first build."
-#~ msgstr ""
-#~ "Pulse <gui>Ejecutar</gui> en la siguiente ventana que aparece para "
-#~ "configurar una construcciÃn de depuraciÃn. Esto sÃlo necesita hacer una "
-#~ "vez para la primera construcciÃn."
-
-#~ msgid ""
-#~ "Now we will bring life into the empty window. GTKmm organizes the user "
-#~ "interface with <code>Gtk::Container</code>s that can contain other "
-#~ "widgets and even other containers. Here we will use the simplest "
-#~ "available container, a <code>Gtk::Box</code>:"
-#~ msgstr ""
-#~ "Ahora se darà vida a la ventana vacÃa. GTKmm organiza la interfaz de "
-#~ "usuario con varios <code>Gtk::Container</code> que pueden contener otros "
-#~ "widgets e incluso otros contenedores. Aquà se usarà el contenedor mÃs "
-#~ "sencillo disponible, una <code>Gtk::Box</code>:"
-
-#~ 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 ""
-#~ "La primera lÃnea crea los widgets que se quieren usar: un botÃn para "
-#~ "abrir una imagen, el widget del visor de imÃgenes en sà y la caja que se "
-#~ "usarà como contenedor."
-
-#~ msgid ""
-#~ "The calls to <code>pack_start</code> add the two widgets to the box and "
-#~ "define their behaviour. The image will expand into any available space "
-#~ "while the button will just be as big as needed. You will notice that we "
-#~ "don't set explicit sizes on the widgets. In GTKmm this is usually not "
-#~ "needed as it makes it much easier to have a layout that looks good in "
-#~ "different window sizes. Next, the box is added to the window."
-#~ msgstr ""
-#~ "Las llamadas a <code>pack_start</code> aÃaden los dos widgets a la caja y "
-#~ "definen su comportamiento. La imagen se expandirà en cualquier espacio "
-#~ "disponible, mientras que el botÃn serà tan grande como se necesite. Se "
-#~ "darà cuenta de que no se establecen tamaÃos explÃcitos de los widgets. "
-#~ "Generalmente, en GTKmm no se necesita ya que hace que sea mucho mÃs "
-#~ "sencillo tener una distribuciÃn que se ve bien con diferentes tamaÃos de "
-#~ "la ventana. A continuaciÃn, se aÃade la caja a la ventana."
-
-#~ msgid ""
-#~ "We need to define what happens when the user clicks on the button. GTKmm "
-#~ "uses the concept of <em>signals</em>. When the button is clicked, it "
-#~ "fires the <em>clicked</em> signal, which we can connect to some action. "
-#~ "This is done using the <code>signal_clicked().connect</code> method which "
-#~ "tells GTKmm to call the <code>on_open_image</code> function when the "
-#~ "button is clicked. We will define the <em>callback</em> in the next "
-#~ "section."
-#~ msgstr ""
-#~ "Se debe definir quà sucede cuando el usuario pulsa el botÃn. GTKmm usa el "
-#~ "concepto de <em>seÃales</em>. Cuando se pulsa el botÃn, emite la seÃal "
-#~ "<em>clicked</em>, que se puede conectar a alguna acciÃn. Esto se ha hecho "
-#~ "usando el mÃtodo <code>signal_clicked().connect</code>, que indica a "
-#~ "GTKmm que llame a la funciÃn <code>on_open_image</code> cuando se pulsa "
-#~ "el botÃn y que pase la imagen como un argumento adicional a la funciÃn. "
-#~ "El <em>retorno de la llamada</em> se definirà en la siguiente secciÃn."
-
-#~ msgid ""
-#~ "The last step is to show all widgets in the window using "
-#~ "<code>show_all_children()</code>. This is equivalent to using the "
-#~ "<code>show()</code> method on all our child widgets."
-#~ msgstr ""
-#~ "El Ãltimo paso es mostrar todos los widgets en la ventana usando "
-#~ "<code>show_all_children()</code>. Esto es equivalente a usar el mÃtodo "
-#~ "<code>show()</code> en cada uno de los widgets."
-
-#~ 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 ""
-#~ "Ahora se definirà el manejador de la seÃal <em>clicked</em> para el botÃn "
-#~ "mencionado anteriormente. AÃada este cÃdigo antes del mÃtodo <code>main</"
-#~ "code>."
-
-#~ msgid ""
-#~ "The dialog for choosing the file is created using the <code>Gtk::"
-#~ "FileChooserDialog</code> constructor. This takes the title and type of "
-#~ "the dialog. In our case, it is an <em>Open</em> dialog."
-#~ msgstr ""
-#~ "El diÃlogo para elegir el archivo se crea usando el constructor de "
-#~ "<code>Gtk::FileChooserDialog</code>. La funciÃn toma el tÃtulo y el tipo "
-#~ "del diÃlogo. En este caso, es un diÃlogo de tipo <em>Open</em>."
-
-#~ msgid ""
-#~ "<placeholder-1/> The next two lines add an Open and a Close button to the "
-#~ "dialog. Notice that we are using stock button names from Gtk, instead of "
-#~ "manually typing \"Cancel\" or \"Open\". The advantage of using stock "
-#~ "names is that the button labels will already be translated into the "
-#~ "user's language. The second argument to the add_button() method is a "
-#~ "value to identify the clicked button. We use predefined values provided "
-#~ "by GTKmm here, too. The next two lines restrict the Open dialog to only "
-#~ "display files which can be opened by Gtk::Image. A filter object is "
-#~ "created first; we then add all kinds of files supported by Gdk::Pixbuf "
-#~ "(which includes most image formats like PNG and JPEG) to the filter. "
-#~ "Finally, we set this filter to be the Open dialog's filter. Glib::RefPtr "
-#~ "is a smart pointer used here, that makes sure that the filter is "
-#~ "destroyed when there is no reference to it anymore. dialog.run displays "
-#~ "the Open dialog. The dialog will wait for the user to choose an image; "
-#~ "when they do, dialog.run will return the value Gtk::RESPONSE_ACCEPT (it "
-#~ "would return Gtk::RESPONSE_CANCEL if the user clicked Cancel). The switch "
-#~ "statement tests for this. We hide the Open 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. Assuming that the user did click Open, the next line loads the file "
-#~ "into the Gtk::Image so that it is displayed."
-#~ msgstr ""
-#~ "<placeholder-1/> Las dos lÃneas siguientes aÃaden los botones ÂAbrir y "
-#~ "ÂCerrar al diÃlogo. Tenga en cuenta que se estÃn usando nombres de "
-#~ "botones del almacÃn de GTK+, en vez de escribir manualmente ÂCancelar o "
-#~ "ÂAbrirÂ. La ventaja de usar nombres del almacÃn es que las etiquetas de "
-#~ "los botones ya estÃn traducidas al idioma del usuario. El segundo "
-#~ "argumento del mÃtodo Âadd_button()Â es un valor para identificar el botÃn "
-#~ "pulsado. Aquà tambiÃn se usan valores predefinidos, proporcionados por "
-#~ "GTKmm. Las dos lÃneas siguientes restringen el diÃlogo ÂAbrir para que "
-#~ "sÃlo muestre los archivos que se pueden abrir con ÂGtk::imageÂ. Primero se "
-#~ "crea un filtro de objetos; luego se aÃaden al filtro todos los tipos de "
-#~ "archivos soportados por Gdk::Pixbuf (que incluye la mayorÃa de formatos "
-#~ "de imagen como PNG y JPG). Por Ãltimo, se asocia este filtro con el "
-#~ "diÃlogo ÂAbrirÂ. Glib::RefPtr es un puntero inteligente usado aquà para "
-#~ "asegurarse de que el filtro se destruye cuando ya no se hace referencia a "
-#~ "Ãl. Âdialog.run muestra el diÃlogo ÂAbrirÂ. El diÃlogo esperarà a que el "
-#~ "usuario elija una imagen; cuando lo haga, Âdialog.run devolverà el valor "
-#~ "Gtk::RESPONSE_ACCEPT (devolverÃa Gtk::RESPONSE_CANCEL si el usuario "
-#~ "pulsara ÂCancelarÂ). La sentencia Âswitch comprueba esto. Se oculta el "
-#~ "diÃlogo ÂAbrir ya que no se necesita mÃs. El diÃlogo se ocultarÃa de "
-#~ "todos modos, ya que sÃlo es una variable local, y se destruye (y, por lo "
-#~ "tanto, se oculta) cuando termina su objetivo. Asumiendo que el usuario "
-#~ "pulsà ÂAbrirÂ, la siguiente lÃnea carga el archivo en la Gtk::Image y se "
-#~ "muestra."
-
-#~ msgid "Some basic concepts of C/GObject programming"
-#~ msgstr "Algunos conceptos bÃsicos de programaciÃn en C/GObject"
-
-#~ msgid "How to write a Gtk application in C"
-#~ msgstr "CoÌmo escribir una aplicacioÌn GTK en C"
-
-#~ msgid ""
-#~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#~ "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>image-viewer</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
-#~ "<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. "
-#~ "Use <file>visor-imagenes</file> como nombre del proyecto y de la carpeta."
-
-#~ msgid ""
-#~ "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled "
-#~ "as we will create the UI manually in this tutorial. Check the <link xref="
-#~ "\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how "
-#~ "to use the interface builder."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Usar GtkBuilder para la interfaz del usuario</gui> "
-#~ "està desactivado, ya que, en este tutorial, la IU se crearà manualmente. "
-#~ "Revise el tutorial del <link xref=\"guitar-tuner.c\">afinador de "
-#~ "guitarra</link> si quiere aprender a usar el constructor de interfaces."
-
-#~ msgid ""
-#~ "C is a rather verbose language, so don't be surprised that the file "
-#~ "contains quite a lot of code. Most of it is template code. It loads an "
-#~ "(empty) window and shows it. More details are given below; skip this list "
-#~ "if you understand the basics:"
-#~ msgstr ""
-#~ "C es un lenguaje mÃs detallado, por lo que no se sorprenda de que el "
-#~ "archivo contiene un gran cantidad de cÃdigo. La mayor parte es cÃdigo de "
-#~ "plantilla. Carga una ventana (vacÃa) y se muestra. A continuaciÃn se "
-#~ "ofrecen mÃs detalles; omita esta lista si entiende los conceptos bÃsicos:"
-
-#~ msgid ""
-#~ "The three <code>#include</code> lines at the top include the "
-#~ "<code>config</code> (useful autoconf build defines), <code>gtk</code> "
-#~ "(user interface) and <code>gi18n</code> (internationalization) libraries. "
-#~ "Functions from these libraries are used in the rest of the code."
-#~ msgstr ""
-#~ "Las tres lÃneas <code>#include</code> en la parte superior incluyen las "
-#~ "bibliotecas <code>config</code> (Ãtil para definiciones de construcciÃn "
-#~ "de autoconf), <code>gtk</code> (interfaz de usuario) y <code>gi18n</code> "
-#~ "(internacionalizaciÃn). Las funciones de estas bibliotecas se usan en el "
-#~ "resto del cÃdigo."
-
-#~ msgid ""
-#~ "The <code>create_window</code> function creates a new (empty) window and "
-#~ "connects a signal to exit the application when that window is closed."
-#~ msgstr ""
-#~ "La funciÃn <code>create_window</code> crea una ventana (vacÃa) nueva y "
-#~ "conecta una seÃal para salir de la aplicaciÃn cuando se cierra esa "
-#~ "ventana."
-
-#~ msgid ""
-#~ "The <code>main</code> function is run by default when you start a C "
-#~ "application. It calls a few functions which set up and then run the "
-#~ "application. The <code>gtk_main</code> function starts the GTK main loop, "
-#~ "which runs the user interface and starts listening for events (like "
-#~ "clicks and key presses)."
-#~ msgstr ""
-#~ "La funciÃn <code>main</code> se ejecuta de manera predeterminada cuando "
-#~ "inicia una aplicaciÃn en C. Llama a unas pocas funciones que configuran y "
-#~ "ejecutan la aplicaciÃn. La funciÃn <code>gtk_main</code> inicia el bucle "
-#~ "principal de GTK+, que ejecuta la interfaz de usuario y comienza a "
-#~ "escuchar eventos (como pulsaciones del ratÃn y del teclado)."
-
-#~ msgid ""
-#~ "The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
-#~ "code>, which is a framework for translating applications. These functions "
-#~ "specify how translation tools should handle your app when you run them."
-#~ msgstr ""
-#~ "La definiciÃn condicional <code>ENABLE_NLS</code> configura "
-#~ "<code>gettext</code>, que es un entorno de trabajo para traducir "
-#~ "aplicaciones. Estas funciones especifican cÃmo deben manejar su "
-#~ "aplicaciÃn las herramientas de traducciÃn cuando las ejecuta."
-
-#~ msgid ""
-#~ "Now we will bring life into the empty window. GTK organizes the user "
-#~ "interface with <code>GtkContainer</code>s that can contain other widgets "
-#~ "and even other containers. Here we will use the simplest available "
-#~ "container, a <code>GtkBox</code>:"
-#~ msgstr ""
-#~ "Ahora se darà vida a la ventana vacÃa. GTK+ organiza la interfaz de "
-#~ "usuario con varios <code>GtkContainer</code> que pueden contener otros "
-#~ "widgets e incluso otros contenedores. Aquà se usarà el contenedor mÃs "
-#~ "sencillo disponible, una <code>GtkBox</code>:"
-
-#~ msgid ""
-#~ "The first lines create the widgets we want to use: a button for opening "
-#~ "up an image, the image view widget itself and the box we will use as a "
-#~ "container. The macros like <code>GTK_BOX</code> are used for dynamic type "
-#~ "checking and casting which is needed as C doesn't support object-"
-#~ "orientation out-of-the-box."
-#~ msgstr ""
-#~ "La primera lÃnea crea los widgets que se quieren usar: un botÃn para "
-#~ "abrir una imagen, el widget para ver la imagen y la caja que se usarà "
-#~ "como contenedor. Las macros como <code>GTK_BOX</code> se usan para "
-#~ "comprobaciones de tipos dinÃmicos y conversiones de tipos necesarias, ya "
-#~ "que C no soporta orientaciÃn a objetos."
-
-#~ msgid ""
-#~ "The calls to <code>gtk_box_pack_start</code> add the two widgets to the "
-#~ "box and define their behaviour. The image will expand into any available "
-#~ "space while the button will just be as big as needed. You will notice "
-#~ "that we don't set explicit sizes on the widgets. In GTK this is usually "
-#~ "not needed as it makes it much easier to have a layout that looks good in "
-#~ "different window sizes. Next, the box is added to the window."
-#~ msgstr ""
-#~ "Las llamadas a <code>gtk_box_pack_start</code> aÃaden los dos widgets a "
-#~ "la caja y definen su comportamiento. La imagen se expandirà en cualquier "
-#~ "espacio disponible, mientras que el botÃn serà tan grande como se "
-#~ "necesite. Se darà cuenta de que no se establecen tamaÃos explÃcitos de "
-#~ "los widgets. Generalmente, en GTK+ no se necesita ya que hace que sea "
-#~ "mucho mÃs sencillo tener una distribuciÃn que se ve bien con diferentes "
-#~ "tamaÃos de la ventana. A continuaciÃn, se aÃade la caja a la ventana."
-
-#~ msgid ""
-#~ "We need to define what happens when the user clicks on the button. GTK "
-#~ "uses the concept of <em>signals</em>. When the button is clicked, it "
-#~ "fires the <em>clicked</em> signal, which we can connect to some action. "
-#~ "This is done using the <code>g_signal_connect</code> function which tells "
-#~ "GTK to call the <code>on_image_open</code> function when the button is "
-#~ "clicked and to pass the image as an additional argument to that function. "
-#~ "We will define the <em>callback</em> in the next section."
-#~ msgstr ""
-#~ "Se debe definir queÌ sucede cuando el usuario pulsa el botoÌn. GTK+ usa el "
-#~ "concepto de <em>senÌales</em>. Cuando se pulsa el botoÌn, emite la senÌal "
-#~ "<em>clicked</em>, que se puede conectar a alguna accioÌn. Esto se ha hecho "
-#~ "usando el meÌtodo <code>g_signal_connect</code>, que indica a GTK+ que "
-#~ "llame a la funcioÌn <code>on_image_open</code> cuando se pulsa el botoÌn y "
-#~ "que pase la imagen como un argumento adicional a la funcioÌn. El "
-#~ "<em>retorno de la llamada</em> se definiraÌ en la siguiente seccioÌn."
-
-#~ msgid ""
-#~ "The last <code>g_signal_connect()</code> makes sure that the application "
-#~ "exits when the window is closed."
-#~ msgstr ""
-#~ "La Ãltima <code>g_signal_connect()</code> se asegura de que la aplicaciÃn "
-#~ "finaliza al cerrar la ventana."
-
-#~ msgid ""
-#~ "As a last step, make sure to replace the <code>gtk_widget_show</code> "
-#~ "call in the <code>main()</code> function by <code>gtk_widget_show_all()</"
-#~ "code> to show the window and all the widgets it contains."
-#~ msgstr ""
-#~ "Como Ãltimo paso, asegÃrese de reemplazar la llamada "
-#~ "<code>gtk_widget_show</code>, en la funciÃn <code>main()</code>, por "
-#~ "<code>gtk_widget_show_all()</code>, para mostrar todos los widgets que "
-#~ "contiene la ventana."
-
-#~ msgid ""
-#~ "We will now define the signal handler for the <em>clicked</em> signal or "
-#~ "the button we mentioned before. Add this code before the "
-#~ "<code>create_window()</code> method."
-#~ msgstr ""
-#~ "Ahora se definirà el manejador de la seÃal para la seÃal <em>clicked</em> "
-#~ "en el botÃn mencionado anteriormente. AÃada este cÃdigo antes del mÃtodo "
-#~ "<code>create_window()</code>."
-
-#~ msgid ""
-#~ "The first argument of the signal is always the widget that sent the "
-#~ "signal. Sometimes other arguments related to the signal come after that, "
-#~ "but <em>clicked</em> doesn't have any. Next is the <code>user_data</code> "
-#~ "argument which is a pointer to the data we passed when connecting the "
-#~ "signal. In this case it is our <code>GtkImage</code> object."
-#~ msgstr ""
-#~ "El primer argumento de la seÃal es siempre el widget que envÃa la seÃal. "
-#~ "Algunas veces se aÃaden otros argumentos relativos a la seÃal, pero "
-#~ "<em>clicked</em> no tiene ninguno. Lo siguiente es el argumento "
-#~ "<code>user_data</code>, que es un puntero a los datos que se han pasado "
-#~ "al conectar la seÃal. En este caso, es el objeto <code>GtkImage</code>."
-
-#~ msgid ""
-#~ "The next interesting line is where the dialog for choosing the file is "
-#~ "created using <code>gtk_file_chooser_dialog_new</code>. The function "
-#~ "takes the title of the dialog, the parent window of the dialog and "
-#~ "several options like the number of buttons and their corresponding values."
-#~ msgstr ""
-#~ "La siguiente lÃnea interesante es en la que se crea el diÃlogo para "
-#~ "elegir el archivo usando <code>gtk_file_chooser_dialog_new</code>. La "
-#~ "funciÃn toma el tÃtulo del diÃlogo, la ventana padre del diÃlogo y varias "
-#~ "opciones como el nÃmero de botones y sus valores correspondientes."
-
-#~ msgid ""
-#~ "The next two lines restrict the <gui>Open</gui> dialog to only display "
-#~ "files which can be opened by GtkImage. A filter object is created first; "
-#~ "we then add all kinds of files supported by <code>GdkPixbuf</code> (which "
-#~ "includes most image formats like PNG and JPEG) to the filter. Finally, we "
-#~ "set this filter to be the <gui>Open</gui> dialog's filter."
-#~ msgstr ""
-#~ "Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
-#~ "soÌlo muestre archivos que se puedan abrir con ÂGtkImageÂ. Primero se crea "
-#~ "un objeto de filtro; luego se anÌaden los tipos de archivos soportados por "
-#~ "el <code>GdkPixbuf</code> (que incluye la mayoriÌa de los formatos de "
-#~ "imagen como PNG y JPEG) al filtro. Por uÌltimo, se establece que este "
-#~ "filtro sea el filtro del diaÌlogo <gui>Abrir</gui>."
-
-#~ msgid ""
-#~ "<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The "
-#~ "dialog will wait for the user to choose an image; when they do, "
-#~ "<code>gtk_dialog_run</code> will return the value "
-#~ "<code>GTK_RESPONSE_ACCEPT</code> (it would return "
-#~ "<code>GTK_RESPONSE_CANCEL</code> if the user clicked <gui>Cancel</gui>). "
-#~ "The <code>switch</code> statement tests for this."
-#~ msgstr ""
-#~ "<code>gtk_dialog_run</code> muestra el diÃlogo <gui>Abrir</gui>. El "
-#~ "diÃlogo esperarà a que el usuario elija una imagen; cuando lo haga, "
-#~ "<code>gtk_dialog_run</code> devolverà el valor <code>GTK_RESPONSE_ACCEPT</"
-#~ "code> (devolverÃa <code>GTK_RESPONSE_CANCEL</code> si el usuario pulsara "
-#~ "<gui>Cancelar</gui>). La sentencia <code>switch</code> comprueba esto."
-
-#~ msgid ""
-#~ "Assuming that the user did click <gui>Open</gui>, the next line sets the "
-#~ "<code>file</code> property of the GtkImage to the filename of the image "
-#~ "selected by the user. The GtkImage will then load and display the chosen "
-#~ "image."
-#~ msgstr ""
-#~ "Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea "
-#~ "establece la propiedad <code>file</code> de la ÂGtkImage con el nombre "
-#~ "del archivo de imagen seleccionado por el usuario. La ÂGtkImage cargarà y "
-#~ "mostrarà la imagen elegida."
-
-#~ msgid ""
-#~ "In the final line of this method, we destroy the <gui>Open</gui> dialog "
-#~ "because we don't need it any more. Destroying automatically hides the "
-#~ "dialog."
-#~ msgstr ""
-#~ "Al final de la lÃnea de este mÃtodo, se destruye el diÃlogo <gui>Abrir</"
-#~ "gui> porque ya no se necesita mÃs. El diÃlogo se oculta automÃticamente "
-#~ "al destruirlo."
+#: C/guitar-tuner.vala.page:98(p)
+msgid ""
+"In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
+"select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. Then "
+"click on the design window in the center to place it into the window. A "
+"dialog will display where you can set the <gui>Number of items</gui> to "
+"<input>6</input>. Then click <gui>Create</gui>."
+msgstr ""
+"En la pestaÃa <gui>Paleta</gui>, en la secciÃn <gui>Contenedores</gui>, "
+"seleccione una <gui>Caja de botones</gui> (GtkButtonBox) pulsando sobre el "
+"icono. Pulse en el centro del diseÃo de la ventana para colocarla en la "
+"ventana. Se mostrarà un diÃlogo donde puede establecer el <gui>NÃmero de "
+"elementos</gui> a <input>6</input>. Luego pulse en <gui>Crear</gui>."
 
-#~ msgid ""
-#~ "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
-#~ "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-#~ "and enjoy!"
-#~ msgstr ""
-#~ "Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/visor-"
-#~ "imagenes</file> en el diÃlogo que aparece. Finalmente, pulse "
-#~ "<gui>Ejecutar</gui> y disfrute."
+#: 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 ""
+"TambiÃn puede cambiar el <gui>NÃmero de elementos</gui> y la "
+"<gui>OrientaciÃn</gui> en la pestaÃa <gui>General</gui> a la derecha."
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"image-viewer/image-viewer.c\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"image-viewer/image-viewer.c\">coÌdigo de referencia</link>."
+#: 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 ""
+"Ahora, desde la secciÃn <gui>Controlar y mostrar</gui> de la <gui>Paleta</"
+"gui> elija un <gui>BotÃn</gui> (GtkButton) pulsando sobre Ãl. SitÃelo en la "
+"primera secciÃn de la GtkButtonBox pulsando sobre ella."
 
-#~ msgid ""
-#~ "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
-#~ msgstr ""
-#~ "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+#: C/guitar-tuner.vala.page:106(p)
+msgid ""
+"While the button is still selected, scroll down in the <gui>General</gui> "
+"tab on the right to the <gui>Label</gui> property, and change it to <gui>E</"
+"gui>. This will be the low E guitar string."
+msgstr ""
+"Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</gui> "
+"en la pestaÃa <gui>General</gui> a <gui>E</gui>. Esta serà la cuerda Mi "
+"grave de la guitarra."
 
-#~ msgid "Tutorial for a hello world application"
-#~ msgstr "Tutorial para una aplicaciÃn ÂHola mundoÂ"
+#: C/guitar-tuner.vala.page:107(p)
+msgid ""
+"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
+"the right."
+msgstr ""
+"La pestaÃa <gui>General</gui> se encuentra en la secciÃn <gui>Widgets</gui> "
+"de la derecha."
 
-#~ msgid "Hello World"
-#~ msgstr "Hola mundo"
+#: C/guitar-tuner.vala.page:112(p)
+msgid ""
+"Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on the "
+"right, and look for the <code>clicked</code> signal of the button. You can "
+"use this to connect a signal handler that will be called when the button is "
+"clicked by the user. To do this, click on the signal and type "
+"<code>main_on_button_clicked</code> in the <gui>Handler</gui> column and "
+"press the <key>Enter</key>."
+msgstr ""
+"Cambie a la pestaÃa <gui>SeÃales</gui> dentro de la secciÃn <gui>Widgets</"
+"gui> a la derecha y busque la seÃal <code>clicked</code> del botÃn. Puede "
+"usar esto para conectar un manejador de seÃal al que se llamarà cuando el "
+"usuario pulse el botÃn. Para hacer esto, pulse sobre la seÃal, escriba "
+"<code>main_on_button_clicked</code> en la columna <gui>Manejador</gui> y "
+"pulse <key>Intro</key>."
+
+#: C/guitar-tuner.vala.page:115(p) C/guitar-tuner.py.page:105(p)
+#: C/guitar-tuner.c.page:109(p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
+msgstr ""
+"Repita los pasos anteriores para el resto de botones, aÃadiendo las 5 "
+"cuerdas restantes con los nombres <em>A</em>, <em>D</em>, <em>G</em>, <em>B</"
+"em>, y <em>e</em>."
 
-#~ msgid ""
-#~ "In this tutorial we'll construct a small application, Hello World, using "
-#~ "JavaScript and GTK+. To do and run all the code examples yourself, you "
-#~ "need an editor to write code in, Terminal and GNOME 3 or higher installed "
-#~ "into your computer. In this tutorial we'll go through the following parts:"
-#~ msgstr ""
-#~ "En este tutorial se construirà una pequeÃa aplicaciÃn, ÂHola mundoÂ, "
-#~ "usando JavaScript y GTK+. Para escribirla y poder ejecutar el cÃdigo, "
-#~ "necesitarà un editor en el que escribir el cÃdigo, una terminal y GNOME 3 "
-#~ "o superior instalado en su equipo."
+#: C/guitar-tuner.vala.page:118(p) C/guitar-tuner.py.page:108(p)
+#: C/guitar-tuner.c.page:112(p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and keep it open."
+msgstr ""
+"Guarde el diseÃo de la IU (pulsando <guiseq><gui>Archivo</gui><gui>Guardar</"
+"gui></guiseq>) y dÃjelo abierto."
 
-#~ msgid "Label for the window"
-#~ msgstr "Etiqueta para la ventana"
+#: 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"
 
-#~ msgid "helloWorld.js"
-#~ msgstr "helloWorld.js"
+#: C/guitar-tuner.vala.page:125(p)
+msgid ""
+"This section will show you how to create the code to produce sounds. <link "
+"href=\"http://developer.gnome.org/platform-overview/stable/gstreamer";
+"\">GStreamer</link> is GNOME's multimedia framework â you can use it for "
+"playing, recording, and processing video, audio, webcam streams and the "
+"like. Here, we'll be using it to produce single-frequency tones."
+msgstr ""
+"En esta secciÃn se mostrarà cÃmo crear el cÃdigo para generar sonidos. <link "
+"href=\"http://developer.gnome.org/platform-overview/stable/gstreamer";
+"\">GStreamer</link> es el entorno multimedia de trabajo de GNOME: puede "
+"usarlo para reproducir, grabar y procesar vÃdeo, sonido, flujos de la cÃmara "
+"web y similares. En este caso, se usarà para generar tonos de frecuencia "
+"Ãnica."
+
+#: C/guitar-tuner.vala.page:126(p)
+msgid ""
+"Conceptually, GStreamer works as follows: You create a <link href=\"http://";
+"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
+"basics-bins.html\"><em>pipeline</em></link> containing several processing "
+"elements going from the <em>source</em> to the <em>sink</em> (output). The "
+"source can be an image file, a video, or a music file, for example, and the "
+"output could be a widget or the soundcard."
+msgstr ""
+"Conceptualmente. GStreamer funciona de la siguiente manera: puede crear una "
+"<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/";
+"html/section-intro-basics-bins.html\"><em>tuberÃa</em></link> que contenga "
+"varios elementos de procesado que van desde la <em>fuente</em> hasta el "
+"<em>sumidero</em> (salida). La fuente puede ser, por ejemplo, un archivo de "
+"imagen, un vÃdeo o un archivo de mÃsica, y la salida puede ser un widget o "
+"la tarjeta de sonido."
+
+#: 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 ""
+"Entre la fuente y el sumidero, puede aplicar varios filtros y conversores "
+"para manejar efectos, conversiones de formato, etc. Cada elemento de la "
+"tuberÃa tiene propiedades que se pueden usar para cambiar este "
+"comportamiento."
+
+#: 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 ejemplo de tuberÃa de GStreamer."
+
+#: C/guitar-tuner.vala.page:134(title) C/guitar-tuner.py.page:137(title)
+#: C/guitar-tuner.c.page:143(title)
+msgid "Set up the pipeline"
+msgstr "Configurar la tuberÃa"
+
+#: C/guitar-tuner.vala.page:135(p)
+msgid ""
+"In this example we will use a tone generator source called "
+"<code>audiotestsrc</code> and send the output to the default system sound "
+"device, <code>autoaudiosink</code>. We only need to configure the frequency "
+"of the tone generator; this is accessible through the <code>freq</code> "
+"property of <code>audiotestsrc</code>."
+msgstr ""
+"En este ejemplo se usarà un generador de tonos llamado <code>audiotestsrc</"
+"code> y se enviarà la salida al dispositivo de sonido predeterminado del "
+"sistema, <code>autoaudiosink</code>. SÃlo es necesario configurar la "
+"frecuencia del generador de tonos; esto es accesible a travÃs de la "
+"propiedad <code>freq</code> de <code>audiotestsrc</code>."
 
-#~ msgid "Running the application form Terminal"
-#~ msgstr "Ejecutar la aplicaciÃn desde la terminal"
+#: 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 ""
+"Se debe aÃadir una lÃnea para inicializar GStreamer; ponga el siguiente "
+"cÃdigo encima de la llamada a <code>Gtk.init</code>, en la funciÃn "
+"<code>main</code>:"
 
-#~ 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 ""
-#~ "Esta lÃnea indica cÃmo ejecutar el script. Debe ser la primera lÃnea del "
-#~ "cÃdigo y debe ser ejecutable. Para obtener permisos de ejecuciÃn vaya a "
-#~ "la terminal y ejecute lo siguiente en la carpeta adecuada: chmod +x "
-#~ "nombrescript. TambiÃn puede usar el gestor de archivo. Simplemente vaya a "
-#~ "la carpeta donde està el cÃdigo, pulse con el botÃn derecho sobre el "
-#~ "archivo de cÃdigo y elija ÂPropiedadesÂ, pulse en la pestaÃa ÂPermisos y "
-#~ "marque la casilla para permitir ejecutar el archivo como un programa."
+#: 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 ""
+"DespuÃs, copie la siguiente funciÃn en <file>guitar_tuner.vala</file> dentro "
+"de la clase <code>Main</code>:"
 
-#~ 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."
-#~ msgstr ""
-#~ "Para que el programa funcione se debe importar una biblioteca de "
-#~ "introspecciÃn de GObject. Para que funcione la IU se necesita GTK+, que "
-#~ "se importa al inicio, por lo que està en uso en todos los sitios."
+#: C/guitar-tuner.vala.page:174(p)
+msgid ""
+"The first three lines create source and sink GStreamer elements (<link href="
+"\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
+"code></link>), and a <link href=\"http://valadoc.org/gstreamer-0.10/Gst.";
+"Pipeline.html\">pipeline element</link> (which will be used as a container "
+"for the other two elements). Those are class variables so they are defined "
+"outside the method. The pipeline is given the name \"note\"; the source is "
+"named \"source\" and is set to the <code>audiotestsrc</code> source; and the "
+"sink is named \"output\" and set to the <code>autoaudiosink</code> sink "
+"(default sound card output)."
+msgstr ""
+"Las cinco primeras lÃneas crean los elementos Âfuente y Âsumidero de "
+"GStreamer (<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.html";
+"\"><code>Gst.Element</code></link>), y un <link href=\"http://valadoc.org/";
+"gstreamer-0.10/Gst.Pipeline.html\">elemento de tuberÃa</link> (que se usarà "
+"como contenedor de los otros dos elementos). Son variables de clase, por lo "
+"que se definen fuera del mÃtodo. A la tuberÃa se le asigna el nombre ÂnoteÂ; "
+"la fuente se llama Âsource y se asocia a la fuente <code>audiotestsrc</code> "
+"y el sumidero se llama Âoutput y se asocia con el sumidero "
+"<code>autoaudiosink</code> (la salida de la tarjeta de sonido "
+"predeterminada)."
+
+#: C/guitar-tuner.vala.page:177(p)
+msgid ""
+"The call to <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html";
+"\"><code>source.set</code></link> sets the <code>freq</code> property of the "
+"source element to <code>frequency</code>, which is passed in as an argument "
+"to the <code>play_sound</code> function. This is just the frequency of the "
+"note in Hertz; some useful frequencies will be defined later on."
+msgstr ""
+"La llamada a <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html";
+"\"><code>source.set</code></link> establece la propiedad <code>freq</code> "
+"del elemento fuente a <code>frequency</code>, que se pasa como argumento a "
+"la funcioÌn <code>play_sound</code>. Esto soÌlo es la frecuencia de la nota en "
+"Hercios; maÌs adelante se definiraÌn algunas frecuencias uÌtiles."
 
-#~ msgid ""
-#~ "After importing Gtk, we need to initialize it. After initializing Gtk we "
-#~ "can start building our first window. We do this by creating a variable "
-#~ "mywindow and assign it a new Gtk.Window of type TOPLEVEL."
-#~ msgstr ""
-#~ "DespuÃs de importar GTK+, se debe inicializar. DespuÃs de inicializar GTK"
-#~ "+ se puede empezar a construir la primera ventana. Esto se hace creando "
-#~ "una variable llamada Âmywindow y asignÃndole una  ÂGtk.Window de tipo "
-#~ "ÂTOPLEVELÂ."
+#: C/guitar-tuner.vala.page:180(p)
+msgid ""
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
+"\"><code>pipeline.add</code></link> puts the source and sink into the "
+"pipeline. The pipeline is a <link href=\"http://valadoc.org/gstreamer-0.10/";
+"Gst.Bin.html\"><code>Gst.Bin</code></link>, which is just an element that "
+"can contain multiple other GStreamer elements. In general, you can add as "
+"many elements as you like to the pipeline by adding more calls to "
+"<code>pipeline.add</code>."
+msgstr ""
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
+"\"><code>pipeline.add</code></link> aÃade la fuente y el sumidero a la "
+"tuberÃa. La tuberÃa es un <link href=\"http://valadoc.org/gstreamer-0.10/Gst.";
+"Bin.html\"><code>Gst.Bin</code></link>, que es un elemento que puede "
+"contener otros muchos elementos de GStreamer. En general, puede aÃadir "
+"tantos elementos como quiera a una tuberÃa aÃadiendo mÃs argumentos a "
+"<code>pipeline.add</code>."
+
+#: C/guitar-tuner.vala.page:183(p)
+msgid ""
+"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
+"\"><code>sink.link</code></link> is used to connect the elements together, "
+"so the output of source (a tone) goes into the input of sink (which is then "
+"output to the sound card). <link href=\"http://www.valadoc.org/gstreamer-";
+"0.10/Gst.Element.set_state.html\"><code>pipeline.set_state</code></link> is "
+"then used to start playback, by setting the <link href=\"http://www.valadoc.";
+"org/gstreamer-0.10/Gst.State.html\">state of the pipeline</link> to playing "
+"(<code>Gst.State.PLAYING</code>)."
+msgstr ""
+"Ahora, el cÃdigo <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.";
+"link.html\"><code>sink.link</code></link> se usa para conectar los elementos "
+"entre sÃ, por lo que la salida de la fuente (un tono) va a la entrada del "
+"sumidero (y entonces sale por la tarjeta de sonido). <link href=\"http://www.";
+"valadoc.org/gstreamer-0.10/Gst.Element.set_state.html\"><code>pipeline."
+"set_state</code></link> se usa para iniciar la reproducciÃn estableciendo el "
+"<link href=\"http://www.valadoc.org/gstreamer-0.10/Gst.State.html\";>estado "
+"de la tuberÃa</link> a Âplaying (<code>Gst.State.PLAYING</code>)."
+
+#: 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 <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 ""
+"No se quiere reproducir un tono molesto para siempre, por lo que lo Ãltimo "
+"que <code>play_sound</code> hace es aÃadir un <link href=\"http://www.";
+"valadoc.org/glib-2.0/GLib.TimeoutSource.html\"><code>TimeoutSource</code></"
+"link>. Esto establece un tiempo de expiraciÃn para detener el sonido; espera "
+"200 milisegundos antes de llamar a un manejador de la seÃal definido en "
+"lÃnea y destruye la tuberÃa. Devuelve<code>false</code> para quitarse a sà "
+"mismo del tiempo de expiraciÃn, ya que de otro modo, seguirÃa llamÃndose "
+"cada 200ms,"
+
+#: C/guitar-tuner.vala.page:196(title) C/guitar-tuner.c.page:118(title)
+msgid "Creating the signal handler"
+msgstr "Crear el manejador de seÃales"
+
+#: 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 ""
+"El el diseÃador de interfaces se hizo que todos los botones llamaran a la "
+"misma funciÃn, <gui>on_button_clicked</gui> cuando se pulsasen. Ahora se "
+"escribe <gui>main_on_button_clicked</gui>, lo que indica al diseÃador de "
+"interfaces que este mÃtodo es parte de la funciÃn <code>Main</code>. Se debe "
+"aÃadir esta funciÃn al archivo de cÃdigo fuente."
 
-#~ msgid ""
-#~ "After setting up our first window we'll give the window a property called "
-#~ "title. Title can be any string you want it to be, to be on the safe side "
-#~ "it is good to stick to UTF-8 encoding."
-#~ msgstr ""
-#~ "DespuÃs de configurar la primera ventana, se le asignarà una propiedad "
-#~ "llamada ÂtitleÂ. El tÃtulo puede ser la cadena que quiera pero, para estar "
-#~ "seguro, es conveniente que tenga una codificaciÃn UTF-8."
+#: 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 ""
+"Para hacer esto, en el archivo de interfaz del usuario (guitar_tuner.ui), "
+"seleccione uno de los botones pulsando sobre Ãl, abra <file>guitar_tuner."
+"vala</file> (pulsando en la pestaÃa en el centro). Cambie a la pestaÃa "
+"<gui>SeÃales</gui> de la derecha, que ya ha usado para establecer el nombre "
+"de la seÃal. Ahora vaya a la fila en la que establecià la seÃal "
+"<gui>clicked</gui> y arrÃstrela al archivo de cÃdigo fuente, al principio de "
+"la clase. Se aÃadirà el siguiente cÃdigo a su archivo de cÃdigo fuente:"
+
+#: 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 ""
+"TambiÃn puede escribir simplemente el texto al principio de la clase en vez "
+"de arrastrar y soltar."
 
-#~ msgid "This is what the whole program looks like."
-#~ msgstr "El programa completo se parece a esto."
+#: 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 ""
+"El manejador de la seÃal sÃlo tiene un argumento: el <link href=\"http://";
+"valadoc.org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> que "
+"llama a la funciÃn (en este caso, siempre es un <link href=\"http://valadoc.";
+"org/gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
 
-#~ msgid ""
-#~ "To run this application open Terminal, go to the folder where your "
-#~ "application is stored and then run"
-#~ msgstr ""
-#~ "Para ejecutar esta aplicaciÃn ,abra una terminal, vaya a la carpeta donde "
-#~ "està la aplicaciÃn y ejecute"
+#: C/guitar-tuner.vala.page:212(title)
+msgid "Define the signal handler"
+msgstr "Definir el manejador de senÌales"
 
-#~ msgid "GJS_PATH=`pwd` gjs helloWorld.js"
-#~ msgstr "GJS_PATH=`pwd` gjs helloWorld.js"
+#: 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 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 ""
+"Se quiere reproducir el sonido correcto cuando el usuario pulsa un botÃn. "
+"Para esto, se profundiza en el manejador de la seÃal definido anteriormente, "
+"<code>on_button_clicked</code>. Se podrÃa haber conectado cada botÃn a un "
+"manejador de la seÃal diferente, pero esto habÃa supuesto duplicar mucho "
+"cÃdigo. En su lugar, se puede usar la etiqueta del botÃn para saber cuÃl de "
+"ellos se ha pulsado:"
+
+#: 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 "
+"label of that button by using <code>get_child</code>, and then get the text "
+"from that label using <code>get_label</code>."
+msgstr ""
+"El <code>Gtk.Button</code> que se ha pulsado se pasa como argumento "
+"(<code>sender</code>) a <code>on_button_clicked</code>. Se puede obtener la "
+"etiqueta de ese botÃn usando <code>get_child</code>, y entonces obtener el "
+"texto de esa etiqueta usando <code>get_label</code>."
 
-#~ msgid ""
-#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
-#~ msgstr ""
-#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
+#: 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 ""
+"La sentencia Âswitch compara la etiqueta de texto con las notas que se "
+"pueden reproducir, y se llama a <code>play_sound</code> con la frecuencia "
+"correspondiente a esa nota. Esto reproduce el tono; el afinador de guitarra "
+"ya està funcionando."
 
-#~ msgid ""
-#~ "@@image: 'media/guitar-tuner-glade.png'; "
-#~ "md5=f6606525443ab2160f53a87a454364d0"
-#~ msgstr ""
-#~ "@@image: 'media/guitar-tuner-glade.png'; "
-#~ "md5=f6606525443ab2160f53a87a454364d0"
+#: 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</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+"Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/afinador-"
+"guitarra</file> en el diÃlogo que aparece. Finalmente, pulse <gui>Ejecutar</"
+"gui> y disfrute."
 
-#~ msgid ""
-#~ "@@image: 'media/guitar-tuner-pipeline.png'; "
-#~ "md5=5adc952909d92af5dae6954781b4ad5f"
-#~ msgstr ""
-#~ "@@image: 'media/guitar-tuner-pipeline.png'; "
-#~ "md5=5adc952909d92af5dae6954781b4ad5f"
+#: 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 ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"guitar-tuner/guitar-tuner.vala\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "Use <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
-#~ "\">Gtk+</link> and <link href=\"http://developer.gnome.org/platform-";
-#~ "overview/stable/gstreamer\">GStreamer</link> to build a simple guitar "
-#~ "tuner application for GNOME. Shows off how to use the interface designer."
-#~ msgstr ""
-#~ "Usar <link href=\"http://developer.gnome.org/platform-overview/stable/gtk";
-#~ "\">GTK+</link> y <link href=\"http://developer.gnome.org/platform-";
-#~ "overview/stable/gstreamer\">GStreamer</link> para construir un sencillo "
-#~ "afinador de guitarra para GNOME. Muestra cÃmo usar el diseÃador de "
-#~ "interfaces."
+#: C/guitar-tuner.vala.page:258(p)
+msgid ""
+"To find out more about the Vala programming language you might want to check "
+"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"link> and the <link href=\"http://valadoc.org/\";>Vala API Documentation</"
+"link>"
+msgstr ""
+"Para obtener mÃs informaciÃn sobre el lenguaje de programaciÃn Vala, puede "
+"querer revisar el <link href=\"http://live.gnome.org/Vala/Tutorial";
+"\">Tutorial de Vala</link> y la <link href=\"http://valadoc.org/";
+"\">documentaciÃn de la API 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 "Hacer que el programa recorra las notas automÃticamente."
+
+#: 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 ""
+"Hacer que el programa reproduzca grabaciones de cuerdas de guitarras que se "
+"estÃn afinando."
 
-#~ msgid "2 Guitar Tuner"
-#~ msgstr "2. Afinador de guitarra"
+#: 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 "
+"which allows you to load and play back music files. You'll have to choose "
+"<link href=\"http://gstreamer.freedesktop.org/documentation/plugins.html";
+"\">decoder and demuxer</link> GStreamer elements based on the file format of "
+"your recorded sounds â MP3s use different elements to Ogg Vorbis files, for "
+"example."
+msgstr ""
+"PAra hacer esto, debe configurar una tuberÃa de GStreamer mÃs complicada, "
+"que le permite cargar y reproducir archivos de mÃsica. Deberà elegir un los "
+"elementos <link href=\"http://gstreamer.freedesktop.org/documentation/";
+"plugins.html\">decodificador y demultiplexor</link> de GStreamer basÃndose "
+"en el formato del archivo de sus sonidos grabados; los MP3 usan elementos "
+"diferentes de los de los archivos Ogg Vorbis, por ejemplo."
+
+#: 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 "
+"could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
+"gstreamer/head/manual/html/chapter-intro-basics.html\">GStreamer concepts</"
+"link> that we didn't cover in this tutorial, such as <link href=\"http://";
+"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
+"basics-pads.html\">pads</link>. You may also find the <cmd>gst-inspect</cmd> "
+"command useful."
+msgstr ""
+"Puede querer conectar los elementos de maneras mÃs complicadas. Esto puede "
+"implicar usar <link href=\"http://gstreamer.freedesktop.org/data/doc/";
+"gstreamer/head/manual/html/chapter-intro-basics.html\">conceptos de "
+"GStreamer</link> que no se han comentado en este tutorial, tales como <link "
+"href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
+"section-intro-basics-pads.html\">interfaces</link>. Es posible que encuentre "
+"Ãtil el comando <cmd>gst-inspect</cmd>."
+
+#: 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 automÃticamente las notas que toca el mÃsico."
+
+#: 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="
+"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
+"plugins/html/gst-plugins-good-plugins-autoaudiosrc.html\">input source</"
+"link>. Perhaps some form of <link href=\"http://gstreamer.freedesktop.org/";
+"data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-"
+"plugins-plugin-spectrum.html\">spectrum analysis</link> would allow you to "
+"figure out what notes are being played?"
+msgstr ""
+"Puede conectar un micrÃfono y grabar sonidos con Ãl usando una <link href="
+"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
+"plugins/html/gst-plugins-good-plugins-autoaudiosrc.html\">fuente de entrada</"
+"link>. ÂEs posible que algÃn tipo de <link href=\"http://gstreamer.";
+"freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-"
+"plugins-good-plugins-plugin-spectrum.html\">anÃlisis de espectro</link> le "
+"permita saber quà notas se estÃn reproduciendo?"
+
+#: 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 construir un sencillo afinador de guitarra para "
+"GNOME. Muestra cÃmo usar el diseÃador de interfaces."
 
-#~ msgid ""
-#~ "In this tutorial you will create an application which plays tones that "
-#~ "you can use to tune a guitar. You will learn how to:"
-#~ msgstr ""
-#~ "En este tutorial se va a hacer un programa que reproduce tonos que puede "
-#~ "usar para afinar su guitarra. Aprenderà a:"
+#: 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 ""
+"En este tutorial se va a hacer un programa que reproduce tonos que puede "
+"usar para afinar su guitarra. Aprenderà a:"
 
-#~ msgid ""
-#~ "Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
-#~ "link>."
-#~ msgstr ""
-#~ "Configurar un proyecto bÃsico usando el <link xref=\"getting-ready\">EID "
-#~ "Anjuta</link>."
+#: 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 proyecto bÃsico en Anjuta"
 
-#~ msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
-#~ msgstr "Crear una IGU sencilla con el diseÃador de IU de <app>Anjuta</app>."
+#: 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 una IGU sencilla con el diseÃador IU de Anjuta"
 
-#~ msgid ""
-#~ "Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
-#~ "gstreamer\">GStreamer</link> library to play sounds."
-#~ msgstr ""
-#~ "Usar la biblioteca <link href=\"http://developer.gnome.org/platform-";
-#~ "overview/stable/gstreamer\">GStreamer</link> para reproducir sonidos."
+#: 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 sonidos"
 
-#~ msgid "Create a project in <app>Anjuta</app>"
-#~ msgstr "Crear un proyecto en <app>Anjuta</app>"
+#: C/guitar-tuner.py.page:33(p)
+msgid "Basic knowledge of the Python programming language"
+msgstr "Conocimiento baÌsico del lenguaje de programacioÌn Python"
 
-#~ msgid ""
-#~ "Click on the <gui>Vala</gui> tab and select <gui>Gtk+ (Simple)</gui>. "
-#~ "Click <gui>Continue</gui>, and fill out your details on the next few "
-#~ "pages. Use <file>guitar-tuner</file> as project name and directory."
-#~ msgstr ""
-#~ "Pulse en la pestaÃa <gui>Vala</gui> y seleccione <gui>GTK+ (simple)</"
-#~ "gui>. Pulse <gui>Continuar</gui>, y rellene los detalles en las "
-#~ "siguientes pÃginas. Use <file>afinador-guitarra</file> como nombre del "
-#~ "proyecto y de la carpeta."
+#: C/guitar-tuner.py.page:47(p)
+msgid ""
+"Choose <gui>PyGTK (automake)</gui> from the <gui>Python</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>PyGTK (automake)</gui> en la pestaÃa <gui>Python</gui>, "
+"pulse <gui>Continuar</gui>, y rellene los detalles en las siguientes "
+"pÃginas. Use <file>afinador-guiterra</file> como nombre del proyecto y de la "
+"carpeta."
 
-#~ msgid ""
-#~ "Make sure that <gui>Configure external packages</gui> is switched "
-#~ "<gui>ON</gui>. On the next page, select <link href=\"http://valadoc.org/";
-#~ "gstreamer-0.10/index.htm\"><em>gstreamer-0.10</em></link> from the list "
-#~ "to include the GStreamer library in your project. Click <gui>Continue</"
-#~ "gui>"
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Configurar paquetes externos</gui> està "
-#~ "<gui>activada</gui>. En la siguiente pÃgina, seleccione <link href="
-#~ "\"http://valadoc.org/gstreamer-0.10/index.htm\";><em>gstreamer-0.10</em></"
-#~ "link> de la lista para incluir la biblioteca GStreamer en su proyecto. "
-#~ "Pulse <gui>Continuar</gui>"
+#: C/guitar-tuner.py.page:50(p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/afinador-"
+"guitarra.py</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
+"gui>. DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. From the "
-#~ "<gui>Project</gui> or <gui>Files</gui> tab, open <file>src/guitar_tuner."
-#~ "vala</file> by double-clicking on it. You should see some code which "
-#~ "starts with the lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearà el proyecto. Abra <file>src/"
-#~ "guitar_tuner.vala</file> desde las pestaÃas <gui>Proyecto</gui> o "
-#~ "<gui>Archivo</gui> pulsando dos veces sobre Ãl. DeberÃa ver algo de "
-#~ "cÃdigo que comience con las lÃneas:"
+#: C/guitar-tuner.py.page:59(title)
+msgid "Run the code for the first time"
+msgstr "Ejecutar el cÃdigo por primera vez"
 
-#~ msgid ""
-#~ "The code loads an (empty) window from the user interface description file "
-#~ "and displays it. More details are given below; you may choose to skip "
-#~ "this list if you understand the basics:"
-#~ msgstr ""
-#~ "El cÃdigo carga una ventana (vacÃa) desde el archivo de descripciÃn de "
-#~ "interfaz de usuario y la muestra. Se ofrecen mÃs detalles a continuaciÃn; "
-#~ "omita esta lista si entiende los conceptos bÃsicos:"
+#: C/guitar-tuner.py.page:60(p)
+msgid ""
+"Most of the code in the file is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+"La mayor parte del cÃdigo del archivo se usa como plantilla. Carga una "
+"ventana (vacÃa) desde el archivo de descripciÃn de interfaz de usuario y la "
+"muestra. Se ofrecen mÃs detalles a continuaciÃn; omita esta lista si "
+"entiende los conceptos bÃsicos:"
 
-#~ msgid ""
-#~ "The constructor of the <code>Main</code> class creates a new window by "
-#~ "opening a GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a "
-#~ "few lines above), connecting its signals and then displaying it in a "
-#~ "window. This GtkBuilder file contains a description of a user interface "
-#~ "and all of its elements. You can use Anjuta's editor to design GtkBuilder "
-#~ "user interfaces."
-#~ msgstr ""
-#~ "El constructor de la clase <code>Main</code> crea una ventana nueva "
-#~ "abriendo un archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>, "
-#~ "definido unas pocas lÃneas mÃs arriba), conectando sus seÃales y "
-#~ "mostrÃndolo en una ventana. El archivo de GtkBuilder contiene una "
-#~ "descripciÃn de una interfaz de usuario y de todos sus elementos. Puede "
-#~ "usar el editor Anjuta para diseÃar interfaces de usuario con GtkBuilder."
+#: C/guitar-tuner.py.page:64(p)
+msgid ""
+"The <code>import</code> lines at the top include the tell Python to load the "
+"user interface and system libraries needed."
+msgstr ""
+"Las lÃneas <code>import</code> en la parte superior indican a Python que "
+"cargue la interfaz de usuario y las bibliotecas del sistema necesarias."
 
-#~ 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 ""
-#~ "Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
-#~ "cuando ocurre algÃn otro evento. AquÃ, se llama a la funciÃn "
-#~ "<code>on_destroy</code> (y se sale de la aplicaciÃn) cuando cierra la "
-#~ "ventana."
+#: C/guitar-tuner.py.page:68(p)
+msgid ""
+"A class is declared that will be the main class for our application. In the "
+"<code>__init__</code> method the main window is loaded from the GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
+msgstr ""
+"Se declara una clase que estarà en la clase principal de la aplicaciÃn. En "
+"el mÃtodo <code>__init__</code> se carga la ventana principal desde el "
+"archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>) y se conectan las "
+"seÃales."
 
-#~ msgid ""
-#~ "The static <code>main</code> function is run by default when you start a "
-#~ "Vala application. It calls a few functions which create the Main class, "
-#~ "set up and then run the application. The <code>Gtk.main</code> function "
-#~ "starts the GTK main loop, which runs the user interface and starts "
-#~ "listening for events (like clicks and key presses)."
-#~ msgstr ""
-#~ "La funciÃn estÃtica <code>main</code> se ejecuta de manera predeterminada "
-#~ "cuando inicia una aplicaciÃn en Vala. Llama a algunas funciones que crean "
-#~ "la clase ÂMain y configuran y ejecutan la aplicaciÃn. La funciÃn "
-#~ "<code>Gtk.main</code> inicia el bucle principal de GTK+, que ejecuta la "
-#~ "interfaz de usuario y empieza a escuchar eventos (como pulsaciones del "
-#~ "ratÃn y del teclado)."
+#: C/guitar-tuner.py.page:71(p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>destroy</code> method is "
+"called (and quits the app) when you close the window."
+msgstr ""
+"Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
+"cuando ocurre algÃn otro evento. AquÃ, se llama al mÃtodo <code>destroy</"
+"code> (y se sale de la aplicaciÃn) cuando cierra la ventana."
 
-#~ 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 ""
-#~ "Este cÃdigo està listo para usarse, por lo que puede compilarlo pulsando "
-#~ "<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> (o "
-#~ "pulsando <keyseq><key>MayÃs</key><key>F7</key></keyseq>). Cuando lo haga, "
-#~ "aparecerà un diÃlogo. Cambie la <gui>ConfiguraciÃn</gui> a "
-#~ "<gui>Predeterminada</gui> y pulse <gui>Ejecutar</gui> para configurar la "
-#~ "carpeta de construcciÃn. SÃlo tendrà que hacer esto una vez, para la "
-#~ "primera construcciÃn."
+#: C/guitar-tuner.py.page:74(p)
+msgid ""
+"The <code>main</code> function is run by default when you start a Python "
+"application. It just creates an instance of the main class and starts the "
+"main loop to bring up the window."
+msgstr ""
+"La funciÃn <code>main</code> se ejecuta de manera predeterminada cuando "
+"inicia una aplicaciÃn Python. Simplemente crea una instancia de la clase "
+"principal e inicia el bucle principal para mostrar la ventana."
 
-#~ msgid "Create the user interface"
-#~ msgstr "Crear la interfaz de usuario"
+#: C/guitar-tuner.py.page:79(p)
+msgid ""
+"This code is ready to be used, so you can run it by clicking "
+"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+msgstr ""
+"Este cÃdigo està listo para usarse, por lo que puede ejecutarlo pulsando "
+"<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq>."
 
-#~ msgid ""
-#~ "A description of the user interface (UI) is contained in the GtkBuilder "
-#~ "file <file>src/guitar_tuner.ui</file> defined at the top of the class. To "
-#~ "edit the user interface, open <file>src/guitar_tuner.ui</file> by double-"
-#~ "clicking on it in the <gui>Project</gui> or <gui>Files</gui> section. "
-#~ "This will switch to the interface designer. The design window is in the "
-#~ "center; <gui>Widgets</gui> and the widget properties are on the right, "
-#~ "and the <gui>Palette</gui> of available widgets is on the left."
-#~ msgstr ""
-#~ "El archivo de GtkBuilder <file>src/guitar_tuner.ui</file> contiene una "
-#~ "descripciÃn de la interfaz de usuario (IU), definida en la parte superior "
-#~ "de la clase. Para editar la interfaz de usuario, abra <file>src/"
-#~ "guitar_tuner.ui</file> pulsando dos veces sobre el archivo en las "
-#~ "secciones <gui>Proyecto</gui> or <gui>Archivos</gui>. Esto cambiarà al "
-#~ "diseÃador de interfaces. La ventana de diseÃo està en el centro; los "
-#~ "<gui>Widgets</gui> y sus propiedades estÃn a la izquierda, y la "
-#~ "<gui>Paleta</gui> de los widgets disponibles està a la derecha."
+#: 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 ""
+"El archivo de GtkBuilder contiene una descripciÃn de la interfaz de usuario "
+"(IU). Para editar la interfaz de usuario, abra <file>src/guitar_tuner.ui</"
+"file>. Esto cambiarà al diseÃador de interfaces. La ventana de diseÃo està "
+"en el centro; los widgets y sus propiedades estÃn a la derecha, y la paleta "
+"de los widgets disponibles està a la izquierda."
+
+#: 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 ""
+"La distribuciÃn de cualquier IU en GTK+ se organiza usando cajas y tablas. "
+"Aquà se usarà una <gui>GtkButtonBox</gui> vertical para asignar seis "
+"<gui>GtkButtons</gui>, uno para cada una de las cuerdas de la guitarra."
 
-#~ msgid ""
-#~ "The layout of every UI in GTK+ is organized using boxes and tables. Let's "
-#~ "use a vertical GtkButtonBox here to assign six GtkButtons, one for each "
-#~ "of the six guitar strings."
-#~ msgstr ""
-#~ "La distribuciÃn de cualquier IU en GTK+ se organiza usando cajas y "
-#~ "tablas. Aquà se usarà una GtkButtonBox vertical para asignar seis "
-#~ "GtkButtons, uno para cada una de las cuerdas de la guitarra."
+#: 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 ""
+"Seleccione una <gui>GtkButtonBox</gui> de la secciÃn <gui>Contenedor</gui> "
+"de la <gui>Paleta</gui> de la derecha y pÃngalo en la ventana. En el panel "
+"de <gui>Propiedades</gui>, establezca el nÃmero de elementos a Â6Â (para las "
+"seis cuerdas) y la orientaciÃn a ÂverticalÂ."
 
-#~ msgid ""
-#~ "In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
-#~ "select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. "
-#~ "Then click on the design window in the center to place it into the "
-#~ "window. A dialog will display where you can set the <gui>Number of items</"
-#~ "gui> to <input>6</input>. Then click <gui>Create</gui>."
-#~ msgstr ""
-#~ "En la pestaÃa <gui>Paleta</gui>, en la secciÃn <gui>Contenedores</gui>, "
-#~ "seleccione una <gui>Caja de botones</gui> (GtkButtonBox) pulsando sobre "
-#~ "el icono. Pulse en el centro del diseÃo de la ventana para colocarla en "
-#~ "la ventana. Se mostrarà un diÃlogo donde puede establecer el <gui>NÃmero "
-#~ "de elementos</gui> a <input>6</input>. Luego pulse en <gui>Crear</gui>."
+#: 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 ""
+"Ahora, elija un <gui>GtkButton</gui> de la paleta y pÃngalo en la primera "
+"parte de la caja."
 
-#~ 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 ""
-#~ "TambiÃn puede cambiar el <gui>NÃmero de elementos</gui> y la "
-#~ "<gui>OrientaciÃn</gui> en la pestaÃa <gui>General</gui> a la derecha."
+#: 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 ""
+"Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</gui> "
+"en la pestaÃa <gui>Widgets</gui> a <gui>E</gui>. Esta serà la cuerda Mi "
+"grave."
 
-#~ 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 ""
-#~ "Ahora, desde la secciÃn <gui>Controlar y mostrar</gui> de la <gui>Paleta</"
-#~ "gui> elija un <gui>BotÃn</gui> (GtkButton) pulsando sobre Ãl. SitÃelo en "
-#~ "la primera secciÃn de la GtkButtonBox pulsando sobre ella."
+#: C/guitar-tuner.py.page:102(p) C/guitar-tuner.c.page:106(p)
+msgid ""
+"Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
+"look for the <code>clicked</code> signal of the button. You can use this to "
+"connect a signal handler that will be called when the button is clicked by "
+"the user. To do this, click on the signal and type <code>on_button_clicked</"
+"code> in the <gui>Handler</gui> column and press <key>Return</key>."
+msgstr ""
+"Cambie a la pestanÌa <gui>SenÌales</gui> (dentro de la pestanÌa <gui>Widgets</"
+"gui>) y busque la senÌal <code>clicked</code> del botoÌn. Puede usar esto para "
+"conectar un manejador de senÌal al que se llamaraÌ cuando el usuario pulse el "
+"botoÌn. Para hacer esto, pulse sobre la senÌal, escriba "
+"<code>on_button_clicked</code> en la columna <gui>Manejador</gui> y pulse "
+"<key>Intro</key>."
+
+#: C/guitar-tuner.py.page:114(title)
+msgid "Write the signal handler"
+msgstr "Escribir el manejador de senÌales"
+
+#: C/guitar-tuner.py.page:115(p) C/guitar-tuner.c.page:119(p)
+msgid ""
+"In the UI designer, you made it so that all of the buttons will call the "
+"same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
+"to add that function in the source file."
+msgstr ""
+"El el diseÃador de interfaces, se ha hecho que todos los botones llamen a la "
+"misma funciÃn, <gui>on_button_clicked</gui>, cuando se pulsan. Se debe "
+"aÃadir esta funciÃn al archivo de cÃdigo fuente."
 
-#~ msgid ""
-#~ "While the button is still selected, scroll down in the <gui>General</gui> "
-#~ "tab on the right to the <gui>Label</gui> property, and change it to "
-#~ "<gui>E</gui>. This will be the low E guitar string."
-#~ msgstr ""
-#~ "Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</"
-#~ "gui> en la pestaÃa <gui>General</gui> a <gui>E</gui>. Esta serà la cuerda "
-#~ "Mi grave de la guitarra."
+#: C/guitar-tuner.py.page:116(p)
+msgid ""
+"To do this, open <file>guitar_tuner.py</file> while the user interface file "
+"is still open. Switch to the <gui>Signals</gui> tab, which you already used "
+"to set the signal name. Now take the row where you set the <gui>clicked</"
+"gui> signal and drag it into to the source file inside the class. The "
+"following code will be added to your source file:"
+msgstr ""
+"Para hacer esto, abra <file>guitar_tuner.py</file> mientras el archivo de la "
+"interfaz de usuario està abierto. Cambie a la pestaÃa <gui>SeÃales</gui>, "
+"que ya ha usado para establecer el nombre de la seÃal. Ahora vaya a la fila "
+"en la que establecià la seÃal <gui>clicked</gui> y arrÃstrela al archivo de "
+"cÃdigo fuente, dentro de la clase principal. Se aÃadirà el siguiente cÃdigo "
+"a su archivo de cÃdigo fuente:"
+
+#: C/guitar-tuner.py.page:122(p)
+msgid ""
+"This signal handler has two arguments: the usual Python class pointer, and "
+"the <code>Gtk.Button</code> that called the function."
+msgstr ""
+"Este manejador de la seÃal tiene dos argumentos: el puntero de clase Python "
+"habitual y el <code>Gtk.Button</code> que llamà a la funciÃn."
 
-#~ msgid ""
-#~ "The <gui>General</gui> tab is located in the <gui>Widgets</gui> section "
-#~ "on the right."
-#~ msgstr ""
-#~ "La pestaÃa <gui>General</gui> se encuentra en la secciÃn <gui>Widgets</"
-#~ "gui> de la derecha."
+#: 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 ""
+"Por ahora, se dejarà el manejador de la seÃal vacÃo mientras se escribe el "
+"cÃdigo para producir sonidos."
 
-#~ msgid ""
-#~ "Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on "
-#~ "the right, and look for the <code>clicked</code> signal of the button. "
-#~ "You can use this to connect a signal handler that will be called when the "
-#~ "button is clicked by the user. To do this, click on the signal and type "
-#~ "<code>main_on_button_clicked</code> in the <gui>Handler</gui> column and "
-#~ "press the <key>Enter</key>."
-#~ msgstr ""
-#~ "Cambie a la pestaÃa <gui>SeÃales</gui> dentro de la secciÃn <gui>Widgets</"
-#~ "gui> a la derecha y busque la seÃal <code>clicked</code> del botÃn. Puede "
-#~ "usar esto para conectar un manejador de seÃal al que se llamarà cuando el "
-#~ "usuario pulse el botÃn. Para hacer esto, pulse sobre la seÃal, escriba "
-#~ "<code>main_on_button_clicked</code> en la columna <gui>Manejador</gui> y "
-#~ "pulse <key>Intro</key>."
+#: 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 es el entorno multimedia de trabajo de GNOME: puede usarlo para "
+"reproducir, grabar y procesar vÃdeo, sonido, flujos de la cÃmara web y "
+"similares. En este caso, se usarà para generar tonos de frecuencia Ãnica."
 
-#~ msgid ""
-#~ "Repeat the above steps for the other buttons, adding the next 5 strings "
-#~ "with the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</"
-#~ "em>."
-#~ msgstr ""
-#~ "Repita los pasos anteriores para el resto de botones, aÃadiendo las 5 "
-#~ "cuerdas restantes con los nombres <em>A</em>, <em>D</em>, <em>G</em>, "
-#~ "<em>B</em>, y <em>e</em>."
+#: 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 ""
+"Conceptualmente. GStreamer funciona de la siguiente manera: puede crear una "
+"<em>tuberÃa</em> que contenga varios elementos de procesado que van desde la "
+"<em>fuente</em> hasta el <em>sumidero</em> (salida). La fuente puede ser, "
+"por ejemplo, un archivo de imagen, un vÃdeo o un archivo de mÃsica, y la "
+"salida puede ser un widget o la tarjeta de sonido."
+
+#: 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 ""
+"En este sencillo ejemplo se usarà un generador de tonos llamado "
+"<code>audiotestsrc</code> y se enviarà la salida al dispositivo de sonido "
+"predeterminado del sistema, <code>autoaudiosink</code>. SÃlo es necesario "
+"configurar la frecuencia del generador de tonos; esto es accesible a travÃs "
+"de la propiedad <code>freq</code> de <code>audiotestsrc</code>."
 
-#~ msgid ""
-#~ "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-#~ "guiseq>) and keep it open."
-#~ msgstr ""
-#~ "Guarde el diseÃo de la IU (pulsando <guiseq><gui>Archivo</"
-#~ "gui><gui>Guardar</gui></guiseq>) y dÃjelo abierto."
+#: C/guitar-tuner.py.page:140(p)
+msgid ""
+"Change the import line in <file>guitar_tuner.py</file>, just at the "
+"beginning to :"
+msgstr ""
+"Cambie la lÃnea de importaciÃn en <file>afinador_guitarra.py</file>, justo "
+"al principio, por:"
 
-#~ msgid "GStreamer pipelines"
-#~ msgstr "TuberÃas de Gstreamer"
+#: C/guitar-tuner.py.page:142(p)
+msgid ""
+"The <code>Gst</code> includes the GStreamer library. You also need to "
+"initialise GStreamer properly which is done in the <code>main()</code> "
+"method with this call added above the <code>app = GUI()</code> line:"
+msgstr ""
+"El <code>Gst</code> incluye la biblioteca GStreamer. TambiÃn debe debe "
+"inicializar GStreamer correctamente, lo que se ha hecho en el mÃtodo "
+"<code>main()</code> con esta llamada aÃadida encima de la lÃnea <code>app = "
+"GUI()</code>:"
 
-#~ msgid ""
-#~ "This section will show you how to create the code to produce sounds. "
-#~ "<link href=\"http://developer.gnome.org/platform-overview/stable/gstreamer";
-#~ "\">GStreamer</link> is GNOME's multimedia framework â you can use it for "
-#~ "playing, recording, and processing video, audio, webcam streams and the "
-#~ "like. Here, we'll be using it to produce single-frequency tones."
-#~ msgstr ""
-#~ "En esta secciÃn se mostrarà cÃmo crear el cÃdigo para generar sonidos. "
-#~ "<link href=\"http://developer.gnome.org/platform-overview/stable/gstreamer";
-#~ "\">GStreamer</link> es el entorno multimedia de trabajo de GNOME: puede "
-#~ "usarlo para reproducir, grabar y procesar vÃdeo, sonido, flujos de la "
-#~ "cÃmara web y similares. En este caso, se usarà para generar tonos de "
-#~ "frecuencia Ãnica."
+#: C/guitar-tuner.py.page:146(p)
+msgid ""
+"Then, copy the following function into the class in <file>guitar_tuner.py</"
+"file> somewhere:"
+msgstr ""
+"DespuÃs, copie la siguiente funciÃn en la de <file>guitar_tuner.py</file>, "
+"en cualquier sitio:"
 
-#~ msgid ""
-#~ "Conceptually, GStreamer works as follows: You create a <link href="
-#~ "\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
-#~ "section-intro-basics-bins.html\"><em>pipeline</em></link> containing "
-#~ "several processing elements going from the <em>source</em> to the "
-#~ "<em>sink</em> (output). The source can be an image file, a video, or a "
-#~ "music file, for example, and the output could be a widget or the "
-#~ "soundcard."
-#~ msgstr ""
-#~ "Conceptualmente. GStreamer funciona de la siguiente manera: puede crear "
-#~ "una <link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
-#~ "manual/html/section-intro-basics-bins.html\"><em>tuberÃa</em></link> que "
-#~ "contenga varios elementos de procesado que van desde la <em>fuente</em> "
-#~ "hasta el <em>sumidero</em> (salida). La fuente puede ser, por ejemplo, un "
-#~ "archivo de imagen, un vÃdeo o un archivo de mÃsica, y la salida puede ser "
-#~ "un widget o la tarjeta de sonido."
+#: 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 "
+"elements). The pipeline is given the name \"note\"; the source is named "
+"\"source\" and is set to the <code>audiotestsrc</code> source; and the sink "
+"is named \"output\" and set to the <code>autoaudiosink</code> sink (default "
+"sound card output)."
+msgstr ""
+"Las tres primeras liÌneas crean los elementos Âfuente y Âsumidero de "
+"GStreamer y un elemento de tuberiÌa (que se usaraÌ como contenedor de los "
+"otros dos elementos). A la tuberiÌa se le asigna el nombre ÂnoteÂ; la fuente "
+"se llama Âsource y se asocia a la fuente <code>audiotestsrc</code> y el "
+"sumidero se llama Âoutput y se asocia con el sumidero <code>autoaudiosink</"
+"code> (la salida de la tarjeta de sonido predeterminada)."
+
+#: C/guitar-tuner.py.page:165(p)
+msgid ""
+"The call to <code>source.set_property</code> sets the <code>freq</code> "
+"property of the source element to <code>frequency</code>, which was passed "
+"as an argument to the <code>play_sound</code> function. This is just the "
+"frequency of the note in Hertz; some useful frequencies will be defined "
+"later on."
+msgstr ""
+"La llamada a <code>source.set_property</code> establece la propiedad "
+"<code>freq</code> del elemento fuente a <code>frequency</code>, que se pasa "
+"como argumento a la funcioÌn <code>play_sound</code>. Esto soÌlo es la "
+"frecuencia de la nota en Hercios; maÌs adelante se definiraÌn algunas "
+"frecuencias uÌtiles."
 
-#~ 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 ""
-#~ "Entre la fuente y el sumidero, puede aplicar varios filtros y conversores "
-#~ "para manejar efectos, conversiones de formato, etc. Cada elemento de la "
-#~ "tuberÃa tiene propiedades que se pueden usar para cambiar este "
-#~ "comportamiento."
+#: 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 "
+"elements. In general, you can add as many elements as you like to the "
+"pipeline by calling its <code>add</code> method repeatedly."
+msgstr ""
+"Las dos siguientes lÃneas llaman a <code>pipeline.add</code>, poniendo la "
+"fuente y el sumidero en la tuberÃa. La tuberÃa puede contener muchos otros "
+"elementos de GStreamer. En general, puede aÃadir tantos elementos como "
+"quiera a una tuberÃa llamando al mÃtodo <code>add</code> repetidamente."
 
-#~ msgid "An example GStreamer pipeline."
-#~ msgstr "Un ejemplo de tuberÃa de GStreamer."
+#: 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>)."
+msgstr ""
+"El siguiente <code>pipeline.set_state</code> se usar para iniciar la "
+"reproducciÃn, estableciendo el estado de la tuberÃa a Âplaying (<code>Gst."
+"State.PLAYING</code>)."
 
-#~ msgid "Set up the pipeline"
-#~ msgstr "Configurar la tuberÃa"
+#: C/guitar-tuner.py.page:178(title) C/guitar-tuner.c.page:193(title)
+msgid "Stopping playback"
+msgstr "Detener la reproduccioÌn"
 
-#~ msgid ""
-#~ "In this example we will use a tone generator source called "
-#~ "<code>audiotestsrc</code> and send the output to the default system sound "
-#~ "device, <code>autoaudiosink</code>. We only need to configure the "
-#~ "frequency of the tone generator; this is accessible through the "
-#~ "<code>freq</code> property of <code>audiotestsrc</code>."
-#~ msgstr ""
-#~ "En este ejemplo se usarà un generador de tonos llamado "
-#~ "<code>audiotestsrc</code> y se enviarà la salida al dispositivo de sonido "
-#~ "predeterminado del sistema, <code>autoaudiosink</code>. SÃlo es necesario "
-#~ "configurar la frecuencia del generador de tonos; esto es accesible a "
-#~ "travÃs de la propiedad <code>freq</code> de <code>audiotestsrc</code>."
+#: C/guitar-tuner.py.page:179(p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
+"This sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
+"milliseconds before calling the function <code>pipeline_stop</code>, and "
+"will keep calling it until <code>pipeline_stop</code> returns <code>False</"
+"code>."
+msgstr ""
+"No se quiere reproducir un tono molesto para siempre, por lo que lo Ãltimo "
+"que <code>play_sound</code> hace es llamar a <code>GObject.timeout_add</"
+"code>. Esto establece un tiempo de expiraciÃn para detener el sonido; espera "
+"<code>LENGTH</code> milisegundos antes de llamar a la funciÃn "
+"<code>pipeline_stop</code>, y se queda llamando a <code>pipeline_stop</code> "
+"hasta que devuelve <code>False</code>."
+
+#: C/guitar-tuner.py.page:180(p)
+msgid ""
+"Now, we'll write the <code>pipeline_stop</code> function which is called by "
+"<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
+"the <code>play_sound</code> function:"
+msgstr ""
+"Ahora se escribirà el coÌdigo de la funcioÌn <code>pipeline_stop</code>, "
+"llamada por <code>GObject.timeout_add</code>. Inserte el coÌdigo siguiente "
+"<em>encima</em> de la funcioÌn <code>play_sound</code>:"
 
-#~ 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 ""
-#~ "Se debe aÃadir una lÃnea para inicializar GStreamer; ponga el siguiente "
-#~ "cÃdigo encima de la llamada a <code>Gtk.init</code>, en la funciÃn "
-#~ "<code>main</code>:"
+#: 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 ""
+"Necesita definir la constante <code>LENGTH</code> dentro de la clase, por lo "
+"que debe aÃadir este cÃdigo al principio de la clase principal:"
 
-#~ msgid ""
-#~ "Then, copy the following function into <file>guitar_tuner.vala</file> "
-#~ "inside our <code>Main</code> class:"
-#~ msgstr ""
-#~ "DespuÃs, copie la siguiente funciÃn en <file>guitar_tuner.vala</file> "
-#~ "dentro de la clase <code>Main</code>:"
+#: C/guitar-tuner.py.page:191(p)
+msgid ""
+"The call to <code>pipeline.set_state</code> pauses the playback of the "
+"pipeline."
+msgstr ""
+"La llamada a <code>pipeline.set_state</code> pausa la reproducciÃn de la "
+"tuberÃa"
 
-#~ msgid ""
-#~ "The first three lines create source and sink GStreamer elements (<link "
-#~ "href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst."
-#~ "Element</code></link>), and a <link href=\"http://valadoc.org/gstreamer-";
-#~ "0.10/Gst.Pipeline.html\">pipeline element</link> (which will be used as a "
-#~ "container for the other two elements). Those are class variables so they "
-#~ "are defined outside the method. The pipeline is given the name \"note\"; "
-#~ "the source is named \"source\" and is set to the <code>audiotestsrc</"
-#~ "code> source; and the sink is named \"output\" and set to the "
-#~ "<code>autoaudiosink</code> sink (default sound card output)."
-#~ msgstr ""
-#~ "Las cinco primeras lÃneas crean los elementos Âfuente y Âsumidero de "
-#~ "GStreamer (<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.html";
-#~ "\"><code>Gst.Element</code></link>), y un <link href=\"http://valadoc.org/";
-#~ "gstreamer-0.10/Gst.Pipeline.html\">elemento de tuberÃa</link> (que se "
-#~ "usarà como contenedor de los otros dos elementos). Son variables de "
-#~ "clase, por lo que se definen fuera del mÃtodo. A la tuberÃa se le asigna "
-#~ "el nombre ÂnoteÂ; la fuente se llama Âsource y se asocia a la fuente "
-#~ "<code>audiotestsrc</code> y el sumidero se llama Âoutput y se asocia con "
-#~ "el sumidero <code>autoaudiosink</code> (la salida de la tarjeta de sonido "
-#~ "predeterminada)."
+#: C/guitar-tuner.py.page:195(title) C/guitar-tuner.c.page:211(title)
+msgid "Define the tones"
+msgstr "Definir los tonos"
 
-#~ 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 ""
-#~ "La llamada a <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.";
-#~ "html\"><code>source.set</code></link> establece la propiedad <code>freq</"
-#~ "code> del elemento fuente a <code>frequency</code>, que se pasa como "
-#~ "argumento a la funcioÌn <code>play_sound</code>. Esto soÌlo es la "
-#~ "frecuencia de la nota en Hercios; maÌs adelante se definiraÌn algunas "
-#~ "frecuencias uÌtiles."
+#: C/guitar-tuner.py.page:196(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. First of "
+"all, we need to know the frequencies for the six guitar strings, which are "
+"defined (at the beginning of the main class) inside a dictionary so we can "
+"easily map them to the names of the strings:"
+msgstr ""
+"Se quiere reproducir el sonido correcto cuando un usuario pulsa un botÃn. En "
+"primer lugar, se necesita conocer las frecuencias de las seis cuerdas de la "
+"guitarra, que estÃn definidas (al principio de la clase principal) dentro de "
+"un diccionario, por lo que se pueden mapear fÃcilmente con los nombres de "
+"las cuerdas:"
 
-#~ msgid ""
-#~ "<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
-#~ "\"><code>pipeline.add</code></link> puts the source and sink into the "
-#~ "pipeline. The pipeline is a <link href=\"http://valadoc.org/gstreamer-";
-#~ "0.10/Gst.Bin.html\"><code>Gst.Bin</code></link>, which is just an element "
-#~ "that can contain multiple other GStreamer elements. In general, you can "
-#~ "add as many elements as you like to the pipeline by adding more calls to "
-#~ "<code>pipeline.add</code>."
-#~ msgstr ""
-#~ "<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
-#~ "\"><code>pipeline.add</code></link> aÃade la fuente y el sumidero a la "
-#~ "tuberÃa. La tuberÃa es un <link href=\"http://valadoc.org/gstreamer-0.10/";
-#~ "Gst.Bin.html\"><code>Gst.Bin</code></link>, que es un elemento que puede "
-#~ "contener otros muchos elementos de GStreamer. En general, puede aÃadir "
-#~ "tantos elementos como quiera a una tuberÃa aÃadiendo mÃs argumentos a "
-#~ "<code>pipeline.add</code>."
+#: C/guitar-tuner.py.page:209(p) C/guitar-tuner.c.page:221(p)
+msgid ""
+"Now to flesh out the signal handler that we defined earlier, "
+"<code>on_button_clicked</code>. We could have connected every button to a "
+"different signal handler, but that would lead to a lot of code duplication. "
+"Instead, we can use the label of the button to figure out which button was "
+"clicked:"
+msgstr ""
+"Ahora se se profundiza en el manejador de la seÃal definido anteriormente, "
+"<code>on_button_clicked</code>. Se podrÃa haber conectado cada botÃn a un "
+"manejador de la seÃal diferente, pero esto habÃa supuesto duplicar mucho "
+"cÃdigo. En su lugar, se puede usar la etiqueta del botÃn para saber cuÃl de "
+"ellos se ha pulsado:"
 
-#~ msgid ""
-#~ "Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
-#~ "\"><code>sink.link</code></link> is used to connect the elements "
-#~ "together, so the output of source (a tone) goes into the input of sink "
-#~ "(which is then output to the sound card). <link href=\"http://www.valadoc.";
-#~ "org/gstreamer-0.10/Gst.Element.set_state.html\"><code>pipeline.set_state</"
-#~ "code></link> is then used to start playback, by setting the <link href="
-#~ "\"http://www.valadoc.org/gstreamer-0.10/Gst.State.html\";>state of the "
-#~ "pipeline</link> to playing (<code>Gst.State.PLAYING</code>)."
-#~ msgstr ""
-#~ "Ahora, el cÃdigo <link href=\"http://valadoc.org/gstreamer-0.10/Gst.";
-#~ "Element.link.html\"><code>sink.link</code></link> se usa para conectar "
-#~ "los elementos entre sÃ, por lo que la salida de la fuente (un tono) va a "
-#~ "la entrada del sumidero (y entonces sale por la tarjeta de sonido). <link "
-#~ "href=\"http://www.valadoc.org/gstreamer-0.10/Gst.Element.set_state.html";
-#~ "\"><code>pipeline.set_state</code></link> se usa para iniciar la "
-#~ "reproducciÃn estableciendo el <link href=\"http://www.valadoc.org/";
-#~ "gstreamer-0.10/Gst.State.html\">estado de la tuberÃa</link> a "
-#~ "Âplaying (<code>Gst.State.PLAYING</code>)."
+#: 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 "
+"using <code>button.get_child</code>, and then get the text from that label "
+"using <code>label.get_label</code>."
+msgstr ""
+"El botÃn que se ha pulsado se pasa como argumento (<code>button</code>) a "
+"<code>on_button_clicked</code>. Se puede obtener la etiqueta de ese botÃn "
+"usando <code>button.get_child</code>, y obteniendo entonces el texto de esa "
+"etiqueta usando <code>label.get_label</code>."
 
-#~ msgid ""
-#~ "We don't want to play an annoying tone forever, so the last thing "
-#~ "<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.";
-#~ "org/glib-2.0/GLib.TimeoutSource.html\"><code>TimeoutSource</code></link>. "
-#~ "This sets a timeout for stopping the sound; it waits for 200 milliseconds "
-#~ "before calling a signal handler defined inline that stops and destroys "
-#~ "the pipeline. It returns <code>false</code> to remove itself from the "
-#~ "timeout, otherwise it would continue to be called every 200 ms."
-#~ msgstr ""
-#~ "No se quiere reproducir un tono molesto para siempre, por lo que lo "
-#~ "Ãltimo que <code>play_sound</code> hace es aÃadir un <link href=\"http://";
-#~ "www.valadoc.org/glib-2.0/GLib.TimeoutSource.html\"><code>TimeoutSource</"
-#~ "code></link>. Esto establece un tiempo de expiraciÃn para detener el "
-#~ "sonido; espera 200 milisegundos antes de llamar a un manejador de la "
-#~ "seÃal definido en lÃnea y destruye la tuberÃa. Devuelve<code>false</code> "
-#~ "para quitarse a sà mismo del tiempo de expiraciÃn, ya que de otro modo, "
-#~ "seguirÃa llamÃndose cada 200ms,"
-
-#~ msgid "Creating the signal handler"
-#~ msgstr "Crear el manejador de seÃales"
+#: 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 ""
+"La etiqueta de texto se usa como clave para el diccionario, y se llama a "
+"<code>play_sound</code> con la frecuencia correspondiente a esa nota. Esto "
+"reproduce el tono; el afinador de guitarra ya està funcionando."
 
-#~ 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 ""
-#~ "El el diseÃador de interfaces se hizo que todos los botones llamaran a la "
-#~ "misma funciÃn, <gui>on_button_clicked</gui> cuando se pulsasen. Ahora se "
-#~ "escribe <gui>main_on_button_clicked</gui>, lo que indica al diseÃador de "
-#~ "interfaces que este mÃtodo es parte de la funciÃn <code>Main</code>. Se "
-#~ "debe aÃadir esta funciÃn al archivo de cÃdigo fuente."
+#: 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!"
+msgstr ""
+"Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
+"<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> para iniciar la "
+"aplicaciÃn y disfrute."
 
-#~ 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 ""
-#~ "Para hacer esto, en el archivo de interfaz del usuario (guitar_tuner.ui), "
-#~ "seleccione uno de los botones pulsando sobre Ãl, abra <file>guitar_tuner."
-#~ "vala</file> (pulsando en la pestaÃa en el centro). Cambie a la pestaÃa "
-#~ "<gui>SeÃales</gui> de la derecha, que ya ha usado para establecer el "
-#~ "nombre de la seÃal. Ahora vaya a la fila en la que establecià la seÃal "
-#~ "<gui>clicked</gui> y arrÃstrela al archivo de cÃdigo fuente, al principio "
-#~ "de la clase. Se aÃadirà el siguiente cÃdigo a su archivo de cÃdigo fuente:"
+#: 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>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"guitar-tuner/guitar-tuner.py\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "You can also just type the code at the beginning of the class instead of "
-#~ "using the drag and drop."
-#~ msgstr ""
-#~ "TambiÃn puede escribir simplemente el texto al principio de la clase en "
-#~ "vez de arrastrar y soltar."
+#: C/guitar-tuner.js.page:14(desc)
+msgid ""
+"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
+msgstr ""
+"Usar GTK+ y GStreamer para construir un sencillo afinador de guitarra para "
+"GNOME."
 
-#~ 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 ""
-#~ "El manejador de la seÃal sÃlo tiene un argumento: el <link href=\"http://";
-#~ "valadoc.org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> que "
-#~ "llama a la funciÃn (en este caso, siempre es un <link href=\"http://";
-#~ "valadoc.org/gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
+#: 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 ""
+"En este tutorial se construirà una pequeÃa aplicaciÃn, ÂAfinador de "
+"guitarraÂ, usando JavaScript, GTK+ y GStreamer. Para escribirla y poder "
+"ejecutar los ejemplos, necesitarà un editor en el que escribir el cÃdigo, "
+"una terminal y GNOME 3 o superior instalado en su equipo."
 
-#~ msgid "Define the signal handler"
-#~ msgstr "Definir el manejador de senÌales"
+#: C/guitar-tuner.js.page:26(link) C/guitar-tuner.js.page:75(title)
+msgid "Buttons for the tunes"
+msgstr "Botones para los tonos"
 
-#~ msgid ""
-#~ "We want to play the correct sound when the user clicks a button. For "
-#~ "this, we flesh out the signal handler which we defined above, "
-#~ "<code>on_button_clicked</code>. We could have connected every button to a "
-#~ "different signal handler, but that would lead to a lot of code "
-#~ "duplication. Instead, we can use the label of the button to figure out "
-#~ "which button was clicked:"
-#~ msgstr ""
-#~ "Se quiere reproducir el sonido correcto cuando el usuario pulsa un botÃn. "
-#~ "Para esto, se profundiza en el manejador de la seÃal definido "
-#~ "anteriormente, <code>on_button_clicked</code>. Se podrÃa haber conectado "
-#~ "cada botÃn a un manejador de la seÃal diferente, pero esto habÃa supuesto "
-#~ "duplicar mucho cÃdigo. En su lugar, se puede usar la etiqueta del botÃn "
-#~ "para saber cuÃl de ellos se ha pulsado:"
+#: C/guitar-tuner.js.page:27(link) C/guitar-tuner.js.page:100(title)
+msgid "Making the sounds with GStreamer"
+msgstr "Crear sonidos con GStreamer"
 
-#~ msgid ""
-#~ "The <code>Gtk.Button</code> that was clicked is passed as an argument "
-#~ "(<code>sender</code>) to <code>on_button_clicked</code>. We can get the "
-#~ "label of that button by using <code>get_child</code>, and then get the "
-#~ "text from that label using <code>get_label</code>."
-#~ msgstr ""
-#~ "El <code>Gtk.Button</code> que se ha pulsado se pasa como argumento "
-#~ "(<code>sender</code>) a <code>on_button_clicked</code>. Se puede obtener "
-#~ "la etiqueta de ese botÃn usando <code>get_child</code>, y entonces "
-#~ "obtener el texto de esa etiqueta usando <code>get_label</code>."
+#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:124(title)
+msgid "Connecting buttons to playSound"
+msgstr "Conectar los botones a playSound"
 
-#~ 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 ""
-#~ "La sentencia Âswitch compara la etiqueta de texto con las notas que se "
-#~ "pueden reproducir, y se llama a <code>play_sound</code> con la frecuencia "
-#~ "correspondiente a esa nota. Esto reproduce el tono; el afinador de "
-#~ "guitarra ya està funcionando."
+#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:147(title)
+msgid "The whole program"
+msgstr "El programa completo"
 
-#~ msgid ""
-#~ "If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
-#~ "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
-#~ "and enjoy!"
-#~ msgstr ""
-#~ "Si todavÃa no lo ha hecho, elija la aplicaciÃn <file>Debug/src/afinador-"
-#~ "guitarra</file> en el diÃlogo que aparece. Finalmente, pulse "
-#~ "<gui>Ejecutar</gui> y disfrute."
+#: 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 ""
+"Esta lÃnea indica cÃmo ejecutar el script. Debe ser la primera lÃnea del "
+"cÃdigo y debe ser ejecutable. Para obtener permisos de ejecuciÃn vaya a la "
+"terminal y ejecute lo siguiente en la carpeta adecuada: chmod +x "
+"nombrescript. TambiÃn puede usar el gestor de archivo. Simplemente vaya a la "
+"carpeta donde està el cÃdigo, pulse con el botÃn derecho sobre el archivo de "
+"cÃdigo y elija ÂPropiedadesÂ, pulse en la pestaÃa ÂPermisos y marque la "
+"casilla para permitir ejecutar el archivo como un programa."
+
+#: 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 ""
+"Para que el programa funcione se debe importar una biblioteca de "
+"introspecciÃn de GObject. Para que funcione la IU se necesita GTK+ y, para "
+"que funcione GStreamer se necesita GST. Estas bibliotecas se importan al "
+"inicio, por lo que estÃn en uso en todos los sitios. TambiÃn, al principio, "
+"se importa el constructor Mainloop para gestionar el tiempo de espera que "
+"usar para los tonos de afinaciÃn."
+
+#: 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 ""
 
-#~ 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 ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"guitar-tuner/guitar-tuner.vala\">coÌdigo de referencia</link>."
+#: 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 ""
 
-#~ 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 obtener mÃs informaciÃn sobre el lenguaje de programaciÃn Vala, "
-#~ "puede querer revisar el <link href=\"http://live.gnome.org/Vala/Tutorial";
-#~ "\">Tutorial de Vala</link> y la <link href=\"http://valadoc.org/";
-#~ "\">documentaciÃn de la API de Vala</link>"
+#: 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 ""
 
-#~ msgid "Have the program automatically cycle through the notes."
-#~ msgstr "Hacer que el programa recorra las notas automÃticamente."
+#: 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 ""
 
-#~ msgid ""
-#~ "Make the program play recordings of real guitar strings being plucked."
-#~ msgstr ""
-#~ "Hacer que el programa reproduzca grabaciones de cuerdas de guitarras que "
-#~ "se estÃn afinando."
+#: 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 ""
 
-#~ msgid ""
-#~ "To do this, you would need to set up a more complicated GStreamer "
-#~ "pipeline which allows you to load and play back music files. You'll have "
-#~ "to choose <link href=\"http://gstreamer.freedesktop.org/documentation/";
-#~ "plugins.html\">decoder and demuxer</link> GStreamer elements based on the "
-#~ "file format of your recorded sounds â MP3s use different elements to Ogg "
-#~ "Vorbis files, for example."
-#~ msgstr ""
-#~ "PAra hacer esto, debe configurar una tuberÃa de GStreamer mÃs complicada, "
-#~ "que le permite cargar y reproducir archivos de mÃsica. Deberà elegir un "
-#~ "los elementos <link href=\"http://gstreamer.freedesktop.org/documentation/";
-#~ "plugins.html\">decodificador y demultiplexor</link> de GStreamer "
-#~ "basÃndose en el formato del archivo de sus sonidos grabados; los MP3 usan "
-#~ "elementos diferentes de los de los archivos Ogg Vorbis, por ejemplo."
+#: 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 ""
 
-#~ msgid ""
-#~ "You might need to connect the elements in more complicated ways too. This "
-#~ "could involve using <link href=\"http://gstreamer.freedesktop.org/data/";
-#~ "doc/gstreamer/head/manual/html/chapter-intro-basics.html\">GStreamer "
-#~ "concepts</link> that we didn't cover in this tutorial, such as <link href="
-#~ "\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
-#~ "section-intro-basics-pads.html\">pads</link>. You may also find the "
-#~ "<cmd>gst-inspect</cmd> command useful."
-#~ msgstr ""
-#~ "Puede querer conectar los elementos de maneras mÃs complicadas. Esto "
-#~ "puede implicar usar <link href=\"http://gstreamer.freedesktop.org/data/";
-#~ "doc/gstreamer/head/manual/html/chapter-intro-basics.html\">conceptos de "
-#~ "GStreamer</link> que no se han comentado en este tutorial, tales como "
-#~ "<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
-#~ "manual/html/section-intro-basics-pads.html\">interfaces</link>. Es "
-#~ "posible que encuentre Ãtil el comando <cmd>gst-inspect</cmd>."
+#: 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 ""
 
-#~ msgid "Automatically analyze notes that the user plays."
-#~ msgstr "Analizar automÃticamente las notas que toca el mÃsico."
+#: 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 ""
+"Para ejecutar esta aplicaciÃn ,abra una terminal, vaya a la carpeta donde "
+"està la aplicaciÃn y ejecute"
 
-#~ msgid ""
-#~ "You could connect a microphone and record sounds from it using an <link "
-#~ "href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-";
-#~ "plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosrc.html"
-#~ "\">input source</link>. Perhaps some form of <link href=\"http://";
-#~ "gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-"
-#~ "plugins/html/gst-plugins-good-plugins-plugin-spectrum.html\">spectrum "
-#~ "analysis</link> would allow you to figure out what notes are being played?"
-#~ msgstr ""
-#~ "Puede conectar un micrÃfono y grabar sonidos con Ãl usando una <link href="
-#~ "\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-";
-#~ "good-plugins/html/gst-plugins-good-plugins-autoaudiosrc.html\">fuente de "
-#~ "entrada</link>. ÂEs posible que algÃn tipo de <link href=\"http://";
-#~ "gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-"
-#~ "plugins/html/gst-plugins-good-plugins-plugin-spectrum.html\">anÃlisis de "
-#~ "espectro</link> le permita saber quà notas se estÃn reproduciendo?"
+#: C/guitar-tuner.js.page:228(input)
+msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
+msgstr "GJS_PATH=`pwd` gjs guitarTuner.js"
 
-#~ 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 construir un sencillo afinador de guitarra "
-#~ "para GNOME. Muestra cÃmo usar el diseÃador de interfaces."
+#: 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 ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
 
-#~ msgid "Guitar Tuner"
-#~ msgstr "Afinador de guitarra"
+#: C/guitar-tuner.cpp.page:8(desc)
+msgid ""
+"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
+"GNOME. Shows off how to use the interface designer."
+msgstr ""
+"Usar GTKmm y GStreamermm para construir un sencillo afinador de guitarra "
+"para GNOME. Muestra coÌmo usar el disenÌador de interfaces."
 
-#~ 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 ""
-#~ "En este tutorial se va a hacer un programa que reproduce tonos que puede "
-#~ "usar para afinar su guitarra. Aprenderà a:"
+#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:21(title)
+msgid "Guitar Tuner"
+msgstr "Afinador de guitarra"
 
-#~ msgid "Set up a basic project in Anjuta"
-#~ msgstr "Configurar un proyecto bÃsico en Anjuta"
+#: C/guitar-tuner.cpp.page:33(p)
+msgid "Basic knowledge of the C++ programming language"
+msgstr "Conocimiento baÌsico del lenguaje de programacioÌn C++"
 
-#~ msgid "Create a simple GUI with Anjuta's UI designer"
-#~ msgstr "Crear una IGU sencilla con el diseÃador IU de Anjuta"
+#: C/guitar-tuner.cpp.page:47(p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Elija <gui>GTKmm (simple)</gui> de la pestaÃa <gui>C++</gui>, pulse "
+"<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
+"<file>afinador-guitarra</file> como nombre de proyecto y de carpeta."
 
-#~ msgid "Use GStreamer to play sounds"
-#~ msgstr "Usar GStreamer para reproducir sonidos"
+#: C/guitar-tuner.cpp.page:50(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is selected. On the "
+"next page, select <em>gstreamermm-0.10</em> from the list to include the "
+"GStreamermm library in your project."
+msgstr ""
+"AsegÃrese de que <gui>Configurar paquetes externos</gui> està seleccionada. "
+"En la siguiente pÃgina, seleccione <em>gstreamermm-0.10</em> de la lista "
+"para incluir la biblioteca GStreamermm en su proyecto."
 
-#~ msgid "Basic knowledge of the Python programming language"
-#~ msgstr "Conocimiento baÌsico del lenguaje de programacioÌn Python"
+#: C/guitar-tuner.cpp.page:54(p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"Pulse <gui>Terminado</gui> y se crearaÌ el proyecto. Abra <file>src/main.c</"
+"file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. DeberiÌa "
+"ver algo de coÌdigo que comience con las liÌneas:"
 
-#~ msgid ""
-#~ "Choose <gui>PyGTK (automake)</gui> from the <gui>Python</gui> tab, click "
-#~ "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>guitar-tuner</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>PyGTK (automake)</gui> en la pestaÃa <gui>Python</gui>, "
-#~ "pulse <gui>Continuar</gui>, y rellene los detalles en las siguientes "
-#~ "pÃginas. Use <file>afinador-guiterra</file> como nombre del proyecto y de "
-#~ "la carpeta."
+#: C/guitar-tuner.cpp.page:68(p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
+"and <code>iostream</code> (STL). Functions from these libraries are used in "
+"the rest of the code."
+msgstr ""
+"Las tres liÌneas <code>#include</code> en la parte superior incluyen las "
+"bibliotecas <code>config</code> (definiciones uÌltiles para construccioÌn con "
+"autoconf), <code>gtkmm</code> (interfaz de usuario) <code>iostream</code> "
+"(STL). Las funciones de estas bibliotecas se usan en el resto del coÌdigo."
 
-#~ msgid ""
-#~ "Click <gui>Apply</gui> and the project will be created for you. Open "
-#~ "<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or "
-#~ "<gui>File</gui> tabs. You should see some code which starts with the "
-#~ "lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Aplicar</gui> y se crearaÌ el proyecto. Abra <file>src/afinador-"
-#~ "guitarra.py</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</"
-#~ "gui>. DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
+#: C/guitar-tuner.cpp.page:71(p)
+msgid ""
+"The <code>main</code> function creates a new window by opening a GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
+"displaying it in a window. The GtkBuilder file contains a description of a "
+"user interface and all of its elements. You can use Anjuta's editor to "
+"design GtkBuilder user interfaces."
+msgstr ""
+"La funciÃn <code>main</code> crea una ventana nueva abriendo un archivo de "
+"GtkBuilder (<file>src/guitar-tuner.ui</file>, definido unas pocas lÃneas mÃs "
+"arriba) y mostrÃndolo en una ventana. El archivo de GtkBuilder contiene una "
+"descripciÃn de la interfaz de usuario y de todos sus elementos. Puede usar "
+"el editor Anjuta para diseÃar interfaces de usuario con GtkBuilder."
 
-#~ msgid "Run the code for the first time"
-#~ msgstr "Ejecutar el cÃdigo por primera vez"
+#: C/guitar-tuner.cpp.page:74(p)
+msgid ""
+"Afterwards it calls a few functions which set up and then run the "
+"application. The <code>kit.run</code> function starts the GTKmm main loop, "
+"which runs the user interface and starts listening for events (like clicks "
+"and key presses)."
+msgstr ""
+"DespuÃs llama a algunas funciones que configuran y despuÃs ejecutan la "
+"aplicaciÃn. La funciÃn <code>kit.run</code> inicia el bucle principal de "
+"GTKmm, que ejecuta la interfaz de usuario y empieza a escuchar eventos (como "
+"pulsaciones del ratÃn y del teclado)."
 
-#~ msgid ""
-#~ "Most of the code in the file is template code. It loads an (empty) window "
-#~ "from the user interface description file and shows it. More details are "
-#~ "given below; skip this list if you understand the basics:"
-#~ msgstr ""
-#~ "La mayor parte del cÃdigo del archivo se usa como plantilla. Carga una "
-#~ "ventana (vacÃa) desde el archivo de descripciÃn de interfaz de usuario y "
-#~ "la muestra. Se ofrecen mÃs detalles a continuaciÃn; omita esta lista si "
-#~ "entiende los conceptos bÃsicos:"
+#: 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 ""
+"El archivo de GtkBuilder contiene una descripciÃn de la interfaz de usuario "
+"(IU). Para editar la interfaz de usuario, abra <file>src/guitar_tuner.ui</"
+"file>. Esto cambiarà al diseÃador de interfaces. La ventana de diseÃo està "
+"en el centro; los widgets y sus propiedades estÃn a la izquierda, y la "
+"paleta de los widgets disponibles està a la derecha."
 
-#~ msgid ""
-#~ "The <code>import</code> lines at the top include the tell Python to load "
-#~ "the user interface and system libraries needed."
-#~ msgstr ""
-#~ "Las lÃneas <code>import</code> en la parte superior indican a Python que "
-#~ "cargue la interfaz de usuario y las bibliotecas del sistema necesarias."
+#: C/guitar-tuner.cpp.page:99(p)
+msgid ""
+"While the button is still selected, change the <gui>Label</gui> property in "
+"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
+"Also change the <gui>Name</gui> property to <gui>button_E</gui>. This is the "
+"name we will refer to the widget later in code."
+msgstr ""
+"Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</gui> "
+"en la pestaÃa <gui>Widgets</gui> a <gui>E</gui>. Esta serà la cuerda Mi "
+"grave. Cambie tambiÃn la propiedad <gui>Nombre</gui> a <gui>button_E</gui>. "
+"Este es el nombre al que se harà referencia mÃs tarde en el cÃdigo."
 
-#~ msgid ""
-#~ "A class is declared that will be the main class for our application. In "
-#~ "the <code>__init__</code> method the main window is loaded from the "
-#~ "GtkBuilder file (<file>src/guitar-tuner.ui</file>) and the signals are "
-#~ "connected."
-#~ msgstr ""
-#~ "Se declara una clase que estarà en la clase principal de la aplicaciÃn. "
-#~ "En el mÃtodo <code>__init__</code> se carga la ventana principal desde el "
-#~ "archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>) y se conectan "
-#~ "las seÃales."
+#: C/guitar-tuner.cpp.page:103(p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
+"and the names <em>button_A</em>, etc."
+msgstr ""
+"Repita los pasos anteriores para el resto de botones, aÃadiendo las 5 "
+"cuerdas restantes con las etiquetas <em>A</em>, <em>D</em>, <em>G</em>, "
+"<em>B</em>, y <em>e</em> y los nombres <em>boton_A</em>, etc."
 
-#~ msgid ""
-#~ "Connecting signals is how you define what happens when you push a button, "
-#~ "or when some other event happens. Here, the <code>destroy</code> method "
-#~ "is called (and quits the app) when you close the window."
-#~ msgstr ""
-#~ "Conectar seÃales es como se define lo que pasa cuando pulsa un botÃn, o "
-#~ "cuando ocurre algÃn otro evento. AquÃ, se llama al mÃtodo <code>destroy</"
-#~ "code> (y se sale de la aplicaciÃn) cuando cierra la ventana."
+#: C/guitar-tuner.cpp.page:106(p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and close the file."
+msgstr ""
+"Guarde el diseÃo de la IU (pulsando <guiseq><gui>Archivo</gui><gui>Guardar</"
+"gui></guiseq>) y cierre el archivo."
 
-#~ msgid ""
-#~ "The <code>main</code> function is run by default when you start a Python "
-#~ "application. It just creates an instance of the main class and starts the "
-#~ "main loop to bring up the window."
-#~ msgstr ""
-#~ "La funciÃn <code>main</code> se ejecuta de manera predeterminada cuando "
-#~ "inicia una aplicaciÃn Python. Simplemente crea una instancia de la clase "
-#~ "principal e inicia el bucle principal para mostrar la ventana."
+#: C/guitar-tuner.cpp.page:113(p)
+msgid ""
+"GStreamer is GNOME's multimedia framework â you can use it for playing, "
+"recording, and processing video, audio, webcam streams and the like. Here, "
+"we'll be using it to produce single-frequency tones. GStreamermm is the C++ "
+"binding to GStreamer which we will use here."
+msgstr ""
+"GStreamer es el entorno multimedia de trabajo de GNOME: puede usarlo para "
+"reproducir, grabar y procesar vÃdeo, sonido, flujos de la cÃmara web y "
+"similares. En este caso, se usarà para generar tonos de frecuencia Ãnica. "
+"GStreamermm es la implementaciÃn de GStreamer en C++ que se usarà aquÃ."
 
-#~ msgid ""
-#~ "This code is ready to be used, so you can run it by clicking "
-#~ "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
-#~ msgstr ""
-#~ "Este cÃdigo està listo para usarse, por lo que puede ejecutarlo pulsando "
-#~ "<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq>."
+#: C/guitar-tuner.cpp.page:123(title)
+msgid "Using GStreamermm"
+msgstr "Usar GStreamermm"
 
-#~ 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 ""
-#~ "El archivo de GtkBuilder contiene una descripciÃn de la interfaz de "
-#~ "usuario (IU). Para editar la interfaz de usuario, abra <file>src/"
-#~ "guitar_tuner.ui</file>. Esto cambiarà al diseÃador de interfaces. La "
-#~ "ventana de diseÃo està en el centro; los widgets y sus propiedades estÃn "
-#~ "a la derecha, y la paleta de los widgets disponibles està a la izquierda."
+#: C/guitar-tuner.cpp.page:124(p)
+msgid ""
+"To use GStreamermm, it has to be initialised. We do that by adding the "
+"following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
+"line in <file>main.cc</file>:"
+msgstr ""
+"Para usar GStreamermm, se debe inicializar. Esto se hace aÃadiendo la "
+"siguiente lÃnea de cÃdigo junto a la lÃnea <code>Gtk::Main kit(argc, argv);</"
+"code> en <file>main.cc</file>:"
 
-#~ 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 ""
-#~ "La distribuciÃn de cualquier IU en GTK+ se organiza usando cajas y "
-#~ "tablas. Aquà se usarà una <gui>GtkButtonBox</gui> vertical para asignar "
-#~ "seis <gui>GtkButtons</gui>, uno para cada una de las cuerdas de la "
-#~ "guitarra."
+#: C/guitar-tuner.cpp.page:126(code)
+#, no-wrap
+msgid "\tGst::init (argc, argv);"
+msgstr "\tGst::init (argc, argv);"
 
-#~ 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 ""
-#~ "Seleccione una <gui>GtkButtonBox</gui> de la secciÃn <gui>Contenedor</"
-#~ "gui> de la <gui>Paleta</gui> de la derecha y pÃngalo en la ventana. En el "
-#~ "panel de <gui>Propiedades</gui>, establezca el nÃmero de elementos a "
-#~ "Â6Â (para las seis cuerdas) y la orientaciÃn a ÂverticalÂ."
+#: C/guitar-tuner.cpp.page:127(p)
+msgid ""
+"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
+"included in <file>main.cc</file> properly."
+msgstr ""
+"Mientras està con esto, asegÃrese de que <file>gstreamermm.h</file> se "
+"incluye correctamente en <file>main.cc</file>."
 
-#~ msgid ""
-#~ "Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
-#~ "first part of the box."
-#~ msgstr ""
-#~ "Ahora, elija un <gui>GtkButton</gui> de la paleta y pÃngalo en la primera "
-#~ "parte de la caja."
+#: C/guitar-tuner.cpp.page:131(p)
+msgid ""
+"To simplify the handling of the pipeline we will define a helper class "
+"<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
+"example simple, whereas you might usually want to use a separate file:"
+msgstr ""
+"Para simplificar el manejo de la tuberÃa, se definirà una clase <code>Sound</"
+"code> auxiliar. Esto se hace en <file>main.cc</file> para mantener la "
+"sencillez de este ejemplo, pero puede querer usar un archivo aparte."
 
-#~ 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 ""
-#~ "Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</"
-#~ "gui> en la pestaÃa <gui>Widgets</gui> a <gui>E</gui>. Esta serà la cuerda "
-#~ "Mi grave."
+#: C/guitar-tuner.cpp.page:178(p)
+msgid "The code has the following purpose:"
+msgstr "El cÃdigo tiene el propÃsito siguiente:"
 
-#~ msgid ""
-#~ "Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) "
-#~ "and look for the <code>clicked</code> signal of the button. You can use "
-#~ "this to connect a signal handler that will be called when the button is "
-#~ "clicked by the user. To do this, click on the signal and type "
-#~ "<code>on_button_clicked</code> in the <gui>Handler</gui> column and press "
-#~ "<key>Return</key>."
-#~ msgstr ""
-#~ "Cambie a la pestanÌa <gui>SenÌales</gui> (dentro de la pestanÌa "
-#~ "<gui>Widgets</gui>) y busque la senÌal <code>clicked</code> del botoÌn. "
-#~ "Puede usar esto para conectar un manejador de senÌal al que se llamaraÌ "
-#~ "cuando el usuario pulse el botoÌn. Para hacer esto, pulse sobre la senÌal, "
-#~ "escriba <code>on_button_clicked</code> en la columna <gui>Manejador</gui> "
-#~ "y pulse <key>Intro</key>."
+#: C/guitar-tuner.cpp.page:181(p)
+msgid ""
+"In the constructor, source and sink GStreamer elements (<code>Gst::Element</"
+"code>) are created, and a pipeline element (which will be used as a "
+"container for the other two elements). The pipeline is given the name \"note"
+"\"; the source is named \"source\" and is set to the <code>audiotestsrc</"
+"code> source; and the sink is named \"output\" and set to the "
+"<code>autoaudiosink</code> sink (default sound card output). After the "
+"elements have been added to the pipeline and linked together, the pipeline "
+"is ready to run."
+msgstr ""
+"En el constructor se crean los elementos Âfuente y Âsumidero de GStreamer "
+"(<code>GstElement</code>), y un elemento de tuberÃa (que se usarà como "
+"contenedor de los otros dos elementos). A la tuberÃa se le asigna el nombre "
+"ÂnoteÂ; la fuente se llama Âsource y se asocia a la fuente "
+"<code>audiotestsrc</code> y el sumidero se llama Âoutput y se asocia con el "
+"sumidero <code>autoaudiosink</code> (la salida de la tarjeta de sonido "
+"predeterminada). DespuÃs de aÃadir los elementos a la tuberÃa y de "
+"enlazarlos unos con otros, la tuberÃa està lista para ejecutarse."
+
+#: C/guitar-tuner.cpp.page:184(p)
+msgid ""
+"<code>start_playing</code> sets the source element to play a particular "
+"frequency and then starts the pipeline so the sound actually starts playing. "
+"As we don't want to have the annoying sound for ages, a timeout is set up to "
+"stop the pipeline after 200 ms by calling <code>stop_playing</code>."
+msgstr ""
+"<code>start_playing</code> configura el elemento fuente para reproducir una "
+"frecuencia determinada e inicia la tuberÃa, por lo que el sonido empieza a "
+"reproducirse. Como no se quiere reproducir un sonido molesto durante mucho "
+"tiempo, se establece un tiempo de expiraciÃn para detener la tuberÃa despuÃs "
+"de 200 ms, llamando a <code>stop_playing</code>."
 
-#~ msgid "Write the signal handler"
-#~ msgstr "Escribir el manejador de senÌales"
+#: C/guitar-tuner.cpp.page:189(p)
+msgid ""
+"In <code>stop_playing</code> which is called when the timeout has elapsed, "
+"the pipeline is stopped and as such there isn't any sound output anymore. As "
+"GStreamermm uses reference counting through the <code>Glib::RefPtr</code> "
+"object, the memory is automatically freed once the <code>Sound</code> class "
+"is destroyed."
+msgstr ""
+"En <code>stop_playing</code> a la que se llama cuando ha transcurrido el "
+"tiempo, se detiene la tuberÃa y como tal, ya no habrà ninguna salida de "
+"sonido. Ya que GStreamermm usa una referencia continua a traves del objeto "
+"<code>Glib::RefPtr</code>, la memoria se libera automÃticamente una vez que "
+"la clase <code>Sound</code> se ha destruido."
 
-#~ msgid ""
-#~ "In the UI designer, you made it so that all of the buttons will call the "
-#~ "same function, <gui>on_button_clicked</gui>, when they are clicked. We "
-#~ "need to add that function in the source file."
-#~ msgstr ""
-#~ "El el diseÃador de interfaces, se ha hecho que todos los botones llamen a "
-#~ "la misma funciÃn, <gui>on_button_clicked</gui>, cuando se pulsan. Se debe "
-#~ "aÃadir esta funciÃn al archivo de cÃdigo fuente."
+#: C/guitar-tuner.cpp.page:197(title)
+msgid "Connecting the signals"
+msgstr "Conectar las seÃales"
 
-#~ msgid ""
-#~ "To do this, open <file>guitar_tuner.py</file> while the user interface "
-#~ "file is still open. Switch to the <gui>Signals</gui> tab, which you "
-#~ "already used to set the signal name. Now take the row where you set the "
-#~ "<gui>clicked</gui> signal and drag it into to the source file inside the "
-#~ "class. The following code will be added to your source file:"
-#~ msgstr ""
-#~ "Para hacer esto, abra <file>guitar_tuner.py</file> mientras el archivo de "
-#~ "la interfaz de usuario està abierto. Cambie a la pestaÃa <gui>SeÃales</"
-#~ "gui>, que ya ha usado para establecer el nombre de la seÃal. Ahora vaya a "
-#~ "la fila en la que establecià la seÃal <gui>clicked</gui> y arrÃstrela al "
-#~ "archivo de cÃdigo fuente, dentro de la clase principal. Se aÃadirà el "
-#~ "siguiente cÃdigo a su archivo de cÃdigo fuente:"
+#: C/guitar-tuner.cpp.page:198(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. That means "
+"that we have to connect to the signal that is fired when the user clicks the "
+"button. We also want to provide information to the called function which "
+"tone to play. GTKmm makes that quite easy as we can easily bind information "
+"with the <em>sigc</em> library."
+msgstr ""
+"Se quiere reproducir el sonido correcto cuando el usuario pulsa un botÃn. Lo "
+"que significa que hay que conectar la seÃal disparada cuando el usuario "
+"pulsa el botÃn. TambiÃn se quiere proporcionar informaciÃn a la funciÃn "
+"llamada dependiendo del tono que reproducir. GTKmm hace que esto sea fÃcil "
+"ya que se puede vincular informaciÃn con la biblioteca <em>sigc</em>."
 
-#~ msgid ""
-#~ "This signal handler has two arguments: the usual Python class pointer, "
-#~ "and the <code>Gtk.Button</code> that called the function."
-#~ msgstr ""
-#~ "Este manejador de la seÃal tiene dos argumentos: el puntero de clase "
-#~ "Python habitual y el <code>Gtk.Button</code> que llamà a la funciÃn."
+#: C/guitar-tuner.cpp.page:203(p)
+msgid ""
+"The function that is called when the user clicks a button can be pretty "
+"simple, as all the interesting stuff is done in the helper class now:"
+msgstr ""
+"La funciÃn a la que se llama cuando el usuario pulsa un botÃn puede ser muy "
+"sencilla, ya que todo lo interesante se hace ahora en la clase auxiliar:"
 
-#~ msgid ""
-#~ "For now, we'll leave the signal handler empty while we work on writing "
-#~ "the code to produce sounds."
-#~ msgstr ""
-#~ "Por ahora, se dejarà el manejador de la seÃal vacÃo mientras se escribe "
-#~ "el cÃdigo para producir sonidos."
+#: C/guitar-tuner.cpp.page:212(p)
+msgid ""
+"It only calls the helper class we defined before to play the correct "
+"frequencies. With some more clever code we would also have been able to "
+"directly connect to the class without using the function but we will leave "
+"that to use as an exercise."
+msgstr ""
+"SÃlo llama a la clase auxiliar definida anteriormente para reproducir las "
+"frecuencias correctas. Con algo de cÃdigo mÃs inteligente, se podrÃa haber "
+"conectado directamente con la clase sin usar la funciÃn, pero esto se dejarà "
+"como ejercicio."
 
-#~ 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 es el entorno multimedia de trabajo de GNOME: puede usarlo para "
-#~ "reproducir, grabar y procesar vÃdeo, sonido, flujos de la cÃmara web y "
-#~ "similares. En este caso, se usarà para generar tonos de frecuencia Ãnica."
+#: C/guitar-tuner.cpp.page:216(p)
+msgid ""
+"The code to set up the signals should be added to the <code>main()</code> "
+"function just after the <code>builder-&gt;get_widget(\"main_window\", "
+"main_win);</code> line:"
+msgstr ""
+"El cÃdigo para configurar las seÃales de debe aÃadir a la funciÃn <code>main"
+"()</code>, justo despuÃs de la lÃnea <code>builder-&gt;get_widget"
+"(\"main_window\", main_win);</code>:"
 
-#~ 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 ""
-#~ "Conceptualmente. GStreamer funciona de la siguiente manera: puede crear "
-#~ "una <em>tuberÃa</em> que contenga varios elementos de procesado que van "
-#~ "desde la <em>fuente</em> hasta el <em>sumidero</em> (salida). La fuente "
-#~ "puede ser, por ejemplo, un archivo de imagen, un vÃdeo o un archivo de "
-#~ "mÃsica, y la salida puede ser un widget o la tarjeta de sonido."
+#: C/guitar-tuner.cpp.page:228(p)
+msgid ""
+"At first we create an instance of our helper class that we want to use now "
+"and declare a variable for the button we want to connect to."
+msgstr ""
+"En primer lugar, se crea una instancia de la clase auxiliar que se quiere "
+"usar ahora y se declara una variable para el botÃn al que se quiere conectar."
 
-#~ 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 ""
-#~ "En este sencillo ejemplo se usarà un generador de tonos llamado "
-#~ "<code>audiotestsrc</code> y se enviarà la salida al dispositivo de sonido "
-#~ "predeterminado del sistema, <code>autoaudiosink</code>. SÃlo es necesario "
-#~ "configurar la frecuencia del generador de tonos; esto es accesible a "
-#~ "travÃs de la propiedad <code>freq</code> de <code>audiotestsrc</code>."
+#: C/guitar-tuner.cpp.page:232(p)
+msgid ""
+"Next, we receive the button object from the user interface that was created "
+"out of the user interface file. Remember that <em>button_E</em> is the name "
+"we gave to the first button."
+msgstr ""
+"DespuÃs se recibe el objeto de botÃn desde la interfaz de usuario que se "
+"creà fuera del archivo de la interfaz de usuario. Recuerde que <em>button_E</"
+"em> es el nombre que se dio al primer botÃn."
 
-#~ msgid ""
-#~ "Change the import line in <file>guitar_tuner.py</file>, just at the "
-#~ "beginning to :"
-#~ msgstr ""
-#~ "Cambie la lÃnea de importaciÃn en <file>afinador_guitarra.py</file>, "
-#~ "justo al principio, por:"
+#: C/guitar-tuner.cpp.page:236(p)
+msgid ""
+"Finally we connect the <em>clicked</em> signal. This isn't fully "
+"straightforward because this is done in a fully type-safe way and we "
+"actually want to pass the frequency and our helper class to the signal "
+"handler. <code>sigc::ptr_fun(&amp;on_button_clicked)</code> creates a "
+"<em>slot</em> for the <code>on_button_clicked</code> method we defined "
+"above. With <code>sigc::bind</code> we are able to pass additional arguments "
+"to the slot and in this case we pass the frequency (as double) and our "
+"helper class."
+msgstr ""
+"Por Ãltimo, se conecta la seÃal <em>clicked</em>. Esto no es del todo "
+"sencillo porque se hace de manera completamente segura para el tipo, y "
+"actualmente se quiere pasar la frecuencia y la clase auxiliar al manejador "
+"de la seÃal. <code>sigc::ptr_fun(&amp;on_button_clicked)</code> crea un "
+"<em>slot</em> para el mÃtodo <code>on_button_clicked</code> definido "
+"anteriormente. Con <code>sigc::bind</code> es posible pasar argumentos "
+"adicionales al slot y, en este caso, se pasa la frecuencia (como ÂdoubleÂ) y "
+"la clase auxiliar."
+
+#: C/guitar-tuner.cpp.page:243(p)
+msgid ""
+"Now that we have set up the <em>E</em> button we also need to connect the "
+"other buttons according to their frequencies: 440 for A, 587.33 for D, "
+"783.99 for G, 987.77 for B and 1318.5 for the high E. This is done in the "
+"same way, just passing a different frequency to the handler."
+msgstr ""
+"Ahora que se ha establecido el botÃn <em>E</em>, se debe conectar el resto "
+"de botones de acuerdo con sus frecuencias: 440 para A, 587.33 para D, 783.99 "
+"para G, 987.77 para B y 1318.5 para E agudo. Esto se hace de la misma "
+"manera, pasando simplemente una frecuencia diferente al manejador."
 
-#~ msgid ""
-#~ "The <code>Gst</code> includes the GStreamer library. You also need to "
-#~ "initialise GStreamer properly which is done in the <code>main()</code> "
-#~ "method with this call added above the <code>app = GUI()</code> line:"
-#~ msgstr ""
-#~ "El <code>Gst</code> incluye la biblioteca GStreamer. TambiÃn debe debe "
-#~ "inicializar GStreamer correctamente, lo que se ha hecho en el mÃtodo "
-#~ "<code>main()</code> con esta llamada aÃadida encima de la lÃnea <code>app "
-#~ "= GUI()</code>:"
+#: 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 ""
+"Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
+"<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> para "
+"construir todo otra vez y pulse <guiseq><gui>Ejecutar</gui><gui>Ejecutar</"
+"gui></guiseq> para iniciar la aplicaciÃn."
 
-#~ msgid ""
-#~ "Then, copy the following function into the class in <file>guitar_tuner."
-#~ "py</file> somewhere:"
-#~ msgstr ""
-#~ "DespuÃs, copie la siguiente funciÃn en la de <file>guitar_tuner.py</"
-#~ "file>, en cualquier sitio:"
+#: C/guitar-tuner.cpp.page:256(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"guitar-tuner/guitar-tuner.cc\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "The first three lines create source and sink GStreamer elements and a "
-#~ "pipeline element (which will be used as a container for the other two "
-#~ "elements). The pipeline is given the name \"note\"; the source is named "
-#~ "\"source\" and is set to the <code>audiotestsrc</code> source; and the "
-#~ "sink is named \"output\" and set to the <code>autoaudiosink</code> sink "
-#~ "(default sound card output)."
-#~ msgstr ""
-#~ "Las tres primeras liÌneas crean los elementos Âfuente y Âsumidero de "
-#~ "GStreamer y un elemento de tuberiÌa (que se usaraÌ como contenedor de los "
-#~ "otros dos elementos). A la tuberiÌa se le asigna el nombre ÂnoteÂ; la "
-#~ "fuente se llama Âsource y se asocia a la fuente <code>audiotestsrc</code> "
-#~ "y el sumidero se llama Âoutput y se asocia con el sumidero "
-#~ "<code>autoaudiosink</code> (la salida de la tarjeta de sonido "
-#~ "predeterminada)."
+#: C/guitar-tuner.cpp.page:260(title)
+msgid "Further Reading"
+msgstr "Lecturas adicionales"
 
-#~ msgid ""
-#~ "The call to <code>source.set_property</code> sets the <code>freq</code> "
-#~ "property of the source element to <code>frequency</code>, which was "
-#~ "passed as an argument to the <code>play_sound</code> function. This is "
-#~ "just the frequency of the note in Hertz; some useful frequencies will be "
-#~ "defined later on."
-#~ msgstr ""
-#~ "La llamada a <code>source.set_property</code> establece la propiedad "
-#~ "<code>freq</code> del elemento fuente a <code>frequency</code>, que se "
-#~ "pasa como argumento a la funcioÌn <code>play_sound</code>. Esto soÌlo es la "
-#~ "frecuencia de la nota en Hercios; maÌs adelante se definiraÌn algunas "
-#~ "frecuencias uÌtiles."
+#: C/guitar-tuner.cpp.page:261(p)
+msgid ""
+"Many of the things shown above are explained in detail in the <link href="
+"\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</link> "
+"which also covers a lot more key concept for using the full power of GTKmm. "
+"You might also be interested in the <link href=\"http://library.gnome.org/";
+"devel/gstreamermm/\">GStreamermm reference documentation</link>."
+msgstr ""
+"La mayor parte de lo que se ha visto anteriormente se explica detalladamente "
+"en el <link href=\"http://library.gnome.org/devel/gtkmm-tutorial/stable/";
+"\">libro de GTKmm</link> que tambiÃn cubre muchos mÃs conceptos clave para "
+"usar todo el potencial de GTKmm. Es posible que tambiÃn le interese la <link "
+"href=\"http://library.gnome.org/devel/gstreamermm/\";>documentaciÃn de "
+"referencia de GStreamermm</link>."
+
+#: C/guitar-tuner.c.page:33(p)
+msgid "Basic knowledge of the C programming language"
+msgstr "Conocimiento bÃsico del lenguaje de programaciÃn C"
+
+#: C/guitar-tuner.c.page:47(p)
+msgid ""
+"Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
+"<gui>Continue</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
+"<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. Use "
+"<file>afinador-guitarra</file> como nombre del proyecto y de la carpeta."
 
-#~ msgid ""
-#~ "The next two lines call <code>pipeline.add</code>, putting the source and "
-#~ "sink into the pipeline. The pipeline can contain multiple other GStreamer "
-#~ "elements. In general, you can add as many elements as you like to the "
-#~ "pipeline by calling its <code>add</code> method repeatedly."
-#~ msgstr ""
-#~ "Las dos siguientes lÃneas llaman a <code>pipeline.add</code>, poniendo la "
-#~ "fuente y el sumidero en la tuberÃa. La tuberÃa puede contener muchos "
-#~ "otros elementos de GStreamer. En general, puede aÃadir tantos elementos "
-#~ "como quiera a una tuberÃa llamando al mÃtodo <code>add</code> "
-#~ "repetidamente."
+#: C/guitar-tuner.c.page:50(p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is switched <gui>ON</"
+"gui>. On the next page, select <em>gstreamer-0.10</em> from the list to "
+"include the GStreamer library in your project."
+msgstr ""
+"AsegÃrese de que <gui>Configurar paquetes externos</gui> està <gui>activada</"
+"gui>. En la siguiente pÃgina, seleccione <em>gstreamer-0.10</em> de la lista "
+"para incluir la biblioteca GStreamer en su proyecto."
 
-#~ msgid ""
-#~ "Next <code>pipeline.set_state</code> is used to start playback, by "
-#~ "setting the state of the pipeline to playing (<code>Gst.State.PLAYING</"
-#~ "code>)."
-#~ msgstr ""
-#~ "El siguiente <code>pipeline.set_state</code> se usar para iniciar la "
-#~ "reproducciÃn, estableciendo el estado de la tuberÃa a Âplaying (<code>Gst."
-#~ "State.PLAYING</code>)."
+#: C/guitar-tuner.c.page:64(p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+"C es un lenguaje mÃs detallado, por lo que no se sorprenda de que el archivo "
+"contiene un gran cantidad de cÃdigo. La mayor parte es cÃdigo de plantilla. "
+"Carga una ventana (vacÃa) desde el archivo de descripciÃn de la interfaz de "
+"usuario y la muestra. A continuaciÃn se ofrecen mÃs detalles; omita esta "
+"lista si entiende los conceptos bÃsicos:"
 
-#~ msgid "Stopping playback"
-#~ msgstr "Detener la reproduccioÌn"
+#: C/guitar-tuner.c.page:71(p)
+msgid ""
+"The <code>create_window</code> function creates a new window by opening a "
+"GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
+"above), connecting its signals and then displaying it in a window. The "
+"GtkBuilder file contains a description of a user interface and all of its "
+"elements. You can use Anjuta's editor to design GtkBuilder user interfaces."
+msgstr ""
+"La funciÃn <code>create_window</code> crea una ventana nueva abriendo un "
+"archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>, definido unas pocas "
+"lÃneas mÃs arriba), conectando sus seÃales y mostrÃndolo en una ventana. El "
+"archivo de GtkBuilder contiene una descripciÃn de una interfaz de usuario y "
+"de todos sus elementos. Puede usar el editor Anjuta para diseÃar interfaces "
+"de usuario con GtkBuilder."
+
+#: C/guitar-tuner.c.page:120(p)
+msgid ""
+"To do this, open <file>main.c</file> while the user interface file is still "
+"open. Switch to the <gui>Signals</gui> tab, which you already used to set "
+"the signal name. Now take the row where you set the <gui>clicked</gui> "
+"signal and drag it into to the source file at a position that is outside any "
+"function. The following code will be added to your source file:"
+msgstr ""
+"Para hacer esto, abra <file>main.c</file> mientras el archivo de la interfaz "
+"de usuario està abierto. Cambie a la pestaÃa <gui>SeÃales</gui>, que ya ha "
+"usado para establecer el nombre de la seÃal. Ahora vaya a la fila en la que "
+"establecià la seÃal <gui>clicked</gui> y arrÃstrela al archivo de cÃdigo "
+"fuente, fuera de cualquier funciÃn. Se aÃadirà el siguiente cÃdigo a su "
+"archivo de cÃdigo fuente:"
+
+#: C/guitar-tuner.c.page:128(p)
+msgid ""
+"This signal handler has two arguments: a pointer to the <code>GtkWidget</"
+"code> that called the function (in our case, always a <code>GtkButton</"
+"code>), and a pointer to some \"user data\" that you can define, but which "
+"we won't be using here. (You can set the user data by calling "
+"<code>gtk_builder_connect_signals</code>; it is normally used to pass a "
+"pointer to a data structure that you might need to access inside the signal "
+"handler.)"
+msgstr ""
+"El manejador de la seÃal tiene dos argumentos. un puntero al "
+"<code>GtkWidget</code> que llamà a la funciÃn (en este caso, siempre es un "
+"<code>GtkButton</code>), y un puntero a ciertos Âdatos de usuario que puede "
+"definir, pero que aquà no se usan. (Puede establecer los datos de usuario "
+"llamando a <code>gtk_builder_connect_signals</code>; normalmente se usa para "
+"pasar un puntero a una estructura de datos a la que puede necesitar acceder "
+"dentro del manejador de la seÃal.)"
+
+#: C/guitar-tuner.c.page:146(p)
+msgid ""
+"Insert the following line into <file>main.c</file>, just below the <code><!"
+"[CDATA[#include <gtk/gtk.h>]]></code> line:"
+msgstr ""
+"Inserte la siguiente lÃnea en <file>main.c</file>, justo a continuaciÃn de "
+"la lÃnea <code><![CDATA[#include <gtk/gtk.h>]]></code>:"
 
-#~ msgid ""
-#~ "We don't want to play an annoying tone forever, so the last thing "
-#~ "<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
-#~ "This sets a timeout for stopping the sound; it waits for <code>LENGTH</"
-#~ "code> milliseconds before calling the function <code>pipeline_stop</"
-#~ "code>, and will keep calling it until <code>pipeline_stop</code> returns "
-#~ "<code>False</code>."
-#~ msgstr ""
-#~ "No se quiere reproducir un tono molesto para siempre, por lo que lo "
-#~ "Ãltimo que <code>play_sound</code> hace es llamar a <code>GObject."
-#~ "timeout_add</code>. Esto establece un tiempo de expiraciÃn para detener "
-#~ "el sonido; espera <code>LENGTH</code> milisegundos antes de llamar a la "
-#~ "funciÃn <code>pipeline_stop</code>, y se queda llamando a "
-#~ "<code>pipeline_stop</code> hasta que devuelve <code>False</code>."
+#: C/guitar-tuner.c.page:148(p)
+msgid ""
+"This includes the GStreamer library. You also need to add a line to "
+"initialize GStreamer; put the following code on the line above the "
+"<code>gtk_init</code> call in the <code>main</code> function:"
+msgstr ""
+"Esto incluye la bilbioteca GStreamer. TambiÃn necesita aÃadir una lÃnea para "
+"inicializar GStreamer; ponga la siguiente lÃnea de cÃdigo antes de la "
+"llamada <code>gtk_init</code> en la funciÃn <code>main</code>:"
 
-#~ msgid ""
-#~ "Now, we'll write the <code>pipeline_stop</code> function which is called "
-#~ "by <code>GObject.timeout_add</code>. Insert the following code <em>above</"
-#~ "em> the <code>play_sound</code> function:"
-#~ msgstr ""
-#~ "Ahora se escribirà el coÌdigo de la funcioÌn <code>pipeline_stop</code>, "
-#~ "llamada por <code>GObject.timeout_add</code>. Inserte el coÌdigo siguiente "
-#~ "<em>encima</em> de la funcioÌn <code>play_sound</code>:"
+#: C/guitar-tuner.c.page:150(p)
+msgid ""
+"Then, copy the following function into <file>main.c</file> above the empty "
+"<code>on_button_clicked</code> function:"
+msgstr ""
+"DespuÃs, copie la siguiente funciÃn en <file>main.c</file> encima de la "
+"funciÃn <code>on_button_clicked</code> vacÃa:"
 
-#~ 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 ""
-#~ "Necesita definir la constante <code>LENGTH</code> dentro de la clase, por "
-#~ "lo que debe aÃadir este cÃdigo al principio de la clase principal:"
+#: C/guitar-tuner.c.page:177(p)
+msgid ""
+"The first five lines create source and sink GStreamer elements "
+"(<code>GstElement</code>), and a pipeline element (which will be used as a "
+"container for the other two elements). The pipeline is given the name \"note"
+"\"; the source is named \"source\" and is set to the <code>audiotestsrc</"
+"code> source; and the sink is named \"output\" and set to the "
+"<code>autoaudiosink</code> sink (default sound card output)."
+msgstr ""
+"Las cinco primeras lÃneas crean los elementos Âfuente y Âsumidero de "
+"GStreamer (<code>GstElement</code>), y un elemento de tuberÃa (que se usarà "
+"como contenedor de los otros dos elementos). A la tuberÃa se le asigna el "
+"nombre ÂnoteÂ; la fuente se llama Âsource y se asocia a la fuente "
+"<code>audiotestsrc</code> y el sumidero se llama Âoutput y se asocia con el "
+"sumidero <code>autoaudiosink</code> (la salida de la tarjeta de sonido "
+"predeterminada)."
+
+#: C/guitar-tuner.c.page:180(p)
+msgid ""
+"The call to <code>g_object_set</code> sets the <code>freq</code> property of "
+"the source element to <code>frequency</code>, which is passed as an argument "
+"to the <code>play_sound</code> function. This is just the frequency of the "
+"note in Hertz; some useful frequencies will be defined later on."
+msgstr ""
+"La llamada a <code>g_object_set</code> establece la propiedad <code>freq</"
+"code> del elemento fuente a <code>frequency</code>, que se pasa como "
+"argumento a la funciÃn <code>play_sound</code>. Esto sÃlo es la frecuencia "
+"de la nota en Hercios; mÃs adelante se definirÃn algunas frecuencias Ãtiles."
 
-#~ msgid ""
-#~ "The call to <code>pipeline.set_state</code> pauses the playback of the "
-#~ "pipeline."
-#~ msgstr ""
-#~ "La llamada a <code>pipeline.set_state</code> pausa la reproducciÃn de la "
-#~ "tuberÃa"
+#: C/guitar-tuner.c.page:183(p)
+msgid ""
+"<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
+"The pipeline is a <code>GstBin</code>, which is just an element that can "
+"contain multiple other GStreamer elements. In general, you can add as many "
+"elements as you like to the pipeline by adding more arguments to "
+"<code>gst_bin_add_many</code>."
+msgstr ""
+"<code>gst_bin_add_many</code> aÃade la fuente y el sumidero a la tuberÃa. La "
+"tuberÃa es un <code>GstBin</code>, que es un elemento que puede contener "
+"otros muchos elementos de GStreamer. En general, puede aÃadir tantos "
+"elementos como quiera a una tuberÃa aÃadiendo mÃs argumentos a "
+"<code>gst_bin_add_many</code>."
 
-#~ msgid "Define the tones"
-#~ msgstr "Definir los tonos"
+#: C/guitar-tuner.c.page:186(p)
+msgid ""
+"Next, <code>gst_element_link</code> is used to connect the elements "
+"together, so the output of <code>source</code> (a tone) goes into the input "
+"of <code>sink</code> (which is then output to the sound card). "
+"<code>gst_element_set_state</code> is then used to start playback, by "
+"setting the state of the pipeline to playing (<code>GST_STATE_PLAYING</"
+"code>)."
+msgstr ""
+"DespuÃs, se usa <code>gst_element_link</code> para conectar los elementos de "
+"forma conjunta, de tal forma que la salida de <code>source</code> (un tono) "
+"va a la entrada de <code>sink</code> (que es despuÃs la salida de la tarjeta "
+"de sonido). <code>gst_element_set_state</code> se usa al iniciar la "
+"reproducciÃn, configurando el estado de la tuberÃa a reproduciendo "
+"(<code>GST_STATE_PLAYING</code>)."
+
+#: C/guitar-tuner.c.page:194(p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to call <code>g_timeout_add</code>. This "
+"sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
+"milliseconds before calling the function <code>pipeline_stop</code>, and "
+"will keep calling it until <code>pipeline_stop</code> returns <code>FALSE</"
+"code>."
+msgstr ""
+"No se quiere reproducir un tono molesto para siempre, por lo que lo uÌltimo "
+"que <code>play_sound</code> hace es llamar a <code>g_timeout_add</code>. "
+"Esto establece un tiempo de expiracioÌn para detener el sonido; espera "
+"<code>LENGTH</code> milisegundos antes de llamar a la funcioÌn "
+"<code>pipeline_stop</code>, y se queda llamando a <code>pipeline_stop</code> "
+"hasta que devuelve <code>FALSE</code>."
+
+#: C/guitar-tuner.c.page:195(p)
+msgid ""
+"Now, we'll write the <code>pipeline_stop</code> function which is called by "
+"<code>g_timeout_add</code>. Insert the following code <em>above</em> the "
+"<code>play_sound</code> function:"
+msgstr ""
+"Ahora, se escribirà el cÃdigo de la funciÃn <code>pipeline_stop</code>, "
+"llamada por <code>g_timeout_add</code>. Inserte el cÃdigo siguiente "
+"<em>encima</em> de la funciÃn <code>play_sound</code>:"
 
-#~ msgid ""
-#~ "We want to play the correct sound when the user clicks a button. First of "
-#~ "all, we need to know the frequencies for the six guitar strings, which "
-#~ "are defined (at the beginning of the main class) inside a dictionary so "
-#~ "we can easily map them to the names of the strings:"
-#~ msgstr ""
-#~ "Se quiere reproducir el sonido correcto cuando un usuario pulsa un botÃn. "
-#~ "En primer lugar, se necesita conocer las frecuencias de las seis cuerdas "
-#~ "de la guitarra, que estÃn definidas (al principio de la clase principal) "
-#~ "dentro de un diccionario, por lo que se pueden mapear fÃcilmente con los "
-#~ "nombres de las cuerdas:"
+#: C/guitar-tuner.c.page:207(p)
+msgid ""
+"The call to <code>gst_element_set_state</code> pauses the playback of the "
+"pipeline and <code>g_object_unref</code> unreferences the pipeline, "
+"destroying it and freeing its memory."
+msgstr ""
+"La llamada a <code>gst_element_set_state</code> pausa la reproducciÃn de la "
+"tuberÃa y <code>g_object_unref</code> desreferencia la tuberÃa, la destruye "
+"y libera su memoria."
 
-#~ msgid ""
-#~ "Now to flesh out the signal handler that we defined earlier, "
-#~ "<code>on_button_clicked</code>. We could have connected every button to a "
-#~ "different signal handler, but that would lead to a lot of code "
-#~ "duplication. Instead, we can use the label of the button to figure out "
-#~ "which button was clicked:"
-#~ msgstr ""
-#~ "Ahora se se profundiza en el manejador de la seÃal definido "
-#~ "anteriormente, <code>on_button_clicked</code>. Se podrÃa haber conectado "
-#~ "cada botÃn a un manejador de la seÃal diferente, pero esto habÃa supuesto "
-#~ "duplicar mucho cÃdigo. En su lugar, se puede usar la etiqueta del botÃn "
-#~ "para saber cuÃl de ellos se ha pulsado:"
+#: C/guitar-tuner.c.page:212(p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. First of "
+"all, we need to know the frequencies for the six guitar strings, which are "
+"defined (at the top of <file>main.c</file>) as follows:"
+msgstr ""
+"Se quiere reproducir el sonido correcto cuando un usuario pulsa un botÃn. En "
+"primer lugar, se necesita conocer las frecuencias de las seis cuerdas de la "
+"guitarra, que estÃn definidas (al principio de <file>main.c</file>) de la "
+"siguiente manera:"
 
-#~ msgid ""
-#~ "The button that was clicked is passed as an argument (<code>button</"
-#~ "code>) to <code>on_button_clicked</code>. We can get the label of that "
-#~ "button by using <code>button.get_child</code>, and then get the text from "
-#~ "that label using <code>label.get_label</code>."
-#~ msgstr ""
-#~ "El botÃn que se ha pulsado se pasa como argumento (<code>button</code>) a "
-#~ "<code>on_button_clicked</code>. Se puede obtener la etiqueta de ese botÃn "
-#~ "usando <code>button.get_child</code>, y obteniendo entonces el texto de "
-#~ "esa etiqueta usando <code>label.get_label</code>."
+#: C/guitar-tuner.c.page:244(p)
+msgid ""
+"A pointer to the <code>GtkButton</code> that was clicked is passed as an "
+"argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
+"the label of that button by using <code>gtk_bin_get_child</code>, and then "
+"get the text from that label using <code>gtk_label_get_label</code>."
+msgstr ""
+"A <code>on_button_clicked</code> se le pasa como argumento (<code>button</"
+"code>) un puntero al <code>GtkButton</code> que se ha pulsado. Se puede "
+"obtener la etiqueta de este botÃn usando <code>gtk_bin_get_child</code> y "
+"obteniendo el texto de la etiqueta usando <code>gtk_label_get_label</code>."
 
-#~ 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 ""
-#~ "La etiqueta de texto se usa como clave para el diccionario, y se llama a "
-#~ "<code>play_sound</code> con la frecuencia correspondiente a esa nota. "
-#~ "Esto reproduce el tono; el afinador de guitarra ya està funcionando."
+#: C/guitar-tuner.c.page:245(p)
+msgid ""
+"The label text is then compared to the notes that we have using "
+"<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
+"frequency appropriate for that note. This plays the tone; we have a working "
+"guitar tuner!"
+msgstr ""
+"La etiqueta de texto se compara con las notas que se tiene usando "
+"<code>g_str_equal</code>, y se llama a <code>play_sound</code> con la "
+"frecuencia correspondiente a cada nota. Esto reproduce el tono; el afinador "
+"de guitarra ya està funcionando."
 
-#~ msgid ""
-#~ "All of the code should now be ready to go. Click <guiseq><gui>Run</"
-#~ "gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
-#~ msgstr ""
-#~ "Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
-#~ "<guiseq><gui>Ejecutar</gui><gui>Ejecutar</gui></guiseq> para iniciar la "
-#~ "aplicaciÃn y disfrute."
+#: C/guitar-tuner.c.page:256(p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+msgstr ""
+"Si tiene problemas con este tutorial, compare su coÌdigo con este <link href="
+"\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"guitar-tuner/guitar-tuner.py\">coÌdigo de referencia</link>."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/getting-ready.page:40(None)
+msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
 
-#~ msgid "@@image: 'media/guitarJs.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
-#~ msgstr "@@image: 'media/guitarJs.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/getting-ready.page:45(None)
+msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+msgstr "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
 
-#~ msgid ""
-#~ "Use Gtk+ and GStreamer to build a simple guitar tuner application for "
-#~ "GNOME."
-#~ msgstr ""
-#~ "Usar GTK+ y GStreamer para construir un sencillo afinador de guitarra "
-#~ "para 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/getting-ready.page:50(None)
+msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+msgstr "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
 
-#~ 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 ""
-#~ "En este tutorial se construirà una pequeÃa aplicaciÃn, ÂAfinador de "
-#~ "guitarraÂ, usando JavaScript, GTK+ y GStreamer. Para escribirla y poder "
-#~ "ejecutar los ejemplos, necesitarà un editor en el que escribir el cÃdigo, "
-#~ "una terminal y GNOME 3 o superior instalado en su equipo."
+#: C/getting-ready.page:8(desc)
+msgid "Install GNOME development tools"
+msgstr "Instalar las herramientas de desarrollo de GNOME"
 
-#~ msgid "Buttons for the tunes"
-#~ msgstr "Botones para los tonos"
+#: C/getting-ready.page:17(title)
+msgid "Getting ready for GNOME development"
+msgstr "PrepaÌrese para desarrollar en GNOME"
 
-#~ msgid "Making the sounds with GStreamer"
-#~ msgstr "Crear sonidos con GStreamer"
+#: C/getting-ready.page:20(title)
+msgid "Install the required tools"
+msgstr "Instalar las herramientas necesarias"
 
-#~ msgid "Connecting buttons to playSound"
-#~ msgstr "Conectar los botones a playSound"
+#: C/getting-ready.page:21(p)
+msgid ""
+"Before you can start coding you will have to install the required tools for "
+"GNOME development on your computer. This shouldn't take you more than ten "
+"minutes."
+msgstr ""
+"Antes de empezar a programar, deberà instalar las herramientas de desarrollo "
+"de GNOME requeridas en su equipo. Esto no deberÃa llevarle mÃs de 10 minutos."
 
-#~ msgid "The whole program"
-#~ msgstr "El programa completo"
+#: C/getting-ready.page:26(title)
+msgid "Automatic installation"
+msgstr "InstalaciÃn automÃtica"
 
-#~ 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 ""
-#~ "Para que el programa funcione se debe importar una biblioteca de "
-#~ "introspecciÃn de GObject. Para que funcione la IU se necesita GTK+ y, "
-#~ "para que funcione GStreamer se necesita GST. Estas bibliotecas se "
-#~ "importan al inicio, por lo que estÃn en uso en todos los sitios. TambiÃn, "
-#~ "al principio, se importa el constructor Mainloop para gestionar el tiempo "
-#~ "de espera que usar para los tonos de afinaciÃn."
+#: C/getting-ready.page:27(p)
+msgid ""
+"On an up-to-date distribution you should be able to simply install the "
+"required packages by clicking on <link href=\"media/gnome-devtools.catalog"
+"\">Install now</link>."
+msgstr ""
+"Un una distribuciÃn actualizada, deberÃa ser capaz de instalar los paquetes "
+"simplemente pulsando en <link href=\"media/gnome-devtools.catalog\">Instalar "
+"ahora</link>."
 
-#~ msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
-#~ msgstr "GJS_PATH=`pwd` gjs guitarTuner.js"
+#: C/getting-ready.page:32(title)
+msgid "Manual installation"
+msgstr "InstalaciÃn manual"
 
-#~ msgid ""
-#~ "Use GTKmm and GStreamermm to build a simple guitar tuner application for "
-#~ "GNOME. Shows off how to use the interface designer."
-#~ msgstr ""
-#~ "Usar GTKmm y GStreamermm para construir un sencillo afinador de guitarra "
-#~ "para GNOME. Muestra coÌmo usar el disenÌador de interfaces."
+#: C/getting-ready.page:33(p)
+msgid ""
+"If you prefer manual installation you can find the instructions for the "
+"various distributions in the <link href=\"http://live.gnome.org/";
+"DeveloperTools/Installation\">GNOME wiki</link>. Click on the image to go "
+"directly to the installation page for your distribution:"
+msgstr ""
+"Si prefiere la instalaciÃn manual, puede encontrar instrucciones para las "
+"diversas distribuciones en la <link href=\"http://live.gnome.org/";
+"DeveloperTools/Installation\">wiki de GNOME</link>. Pulse sobre la imagen "
+"para ir directamente a la pÃgina de instalaciÃn de su distribuciÃn."
 
-#~ msgid "Basic knowledge of the C++ programming language"
-#~ msgstr "Conocimiento baÌsico del lenguaje de programacioÌn C++"
+#: C/getting-ready.page:40(media)
+msgid "Ubuntu"
+msgstr "Ubuntu"
 
-#~ msgid ""
-#~ "Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
-#~ "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>guitar-tuner</file> as project name and directory."
-#~ msgstr ""
-#~ "Elija <gui>GTKmm (simple)</gui> de la pestaÃa <gui>C++</gui>, pulse "
-#~ "<gui>Adelante</gui> y rellene los detalles en las siguientes pÃginas. Use "
-#~ "<file>afinador-guitarra</file> como nombre de proyecto y de carpeta."
+#: C/getting-ready.page:45(media)
+msgid "Fedora"
+msgstr "Fedora"
 
-#~ msgid ""
-#~ "Make sure that <gui>Configure external packages</gui> is selected. On the "
-#~ "next page, select <em>gstreamermm-0.10</em> from the list to include the "
-#~ "GStreamermm library in your project."
-#~ msgstr ""
-#~ "AsegÃrese de que <gui>Configurar paquetes externos</gui> està "
-#~ "seleccionada. En la siguiente pÃgina, seleccione <em>gstreamermm-0.10</"
-#~ "em> de la lista para incluir la biblioteca GStreamermm en su proyecto."
+#: C/getting-ready.page:50(media)
+msgid "OpenSuSE"
+msgstr "OpenSuSE"
 
-#~ msgid ""
-#~ "Click <gui>Finished</gui> and the project will be created for you. Open "
-#~ "<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
-#~ "tabs. You should see some code which starts with the lines:"
-#~ msgstr ""
-#~ "Pulse <gui>Terminado</gui> y se crearaÌ el proyecto. Abra <file>src/main."
-#~ "c</file> desde las pestanÌas <gui>Proyecto</gui> o <gui>Archivo</gui>. "
-#~ "DeberiÌa ver algo de coÌdigo que comience con las liÌneas:"
+#: C/getting-ready.page:53(link)
+msgid "Others"
+msgstr "Otras"
 
-#~ msgid ""
-#~ "The three <code>#include</code> lines at the top include the "
-#~ "<code>config</code> (useful autoconf build defines), <code>gtkmm</code> "
-#~ "(user interface) and <code>iostream</code> (STL). Functions from these "
-#~ "libraries are used in the rest of the code."
-#~ msgstr ""
-#~ "Las tres liÌneas <code>#include</code> en la parte superior incluyen las "
-#~ "bibliotecas <code>config</code> (definiciones uÌltiles para construccioÌn "
-#~ "con autoconf), <code>gtkmm</code> (interfaz de usuario) <code>iostream</"
-#~ "code> (STL). Las funciones de estas bibliotecas se usan en el resto del "
-#~ "coÌdigo."
+#: C/getting-ready.page:60(title)
+msgid "Required versions"
+msgstr "Versiones necesarias"
 
-#~ msgid ""
-#~ "The <code>main</code> function creates a new window by opening a "
-#~ "GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
-#~ "above) and then displaying it in a window. The GtkBuilder file contains a "
-#~ "description of a user interface and all of its elements. You can use "
-#~ "Anjuta's editor to design GtkBuilder user interfaces."
-#~ msgstr ""
-#~ "La funciÃn <code>main</code> crea una ventana nueva abriendo un archivo "
-#~ "de GtkBuilder (<file>src/guitar-tuner.ui</file>, definido unas pocas "
-#~ "lÃneas mÃs arriba) y mostrÃndolo en una ventana. El archivo de GtkBuilder "
-#~ "contiene una descripciÃn de la interfaz de usuario y de todos sus "
-#~ "elementos. Puede usar el editor Anjuta para diseÃar interfaces de usuario "
-#~ "con GtkBuilder."
+#: C/getting-ready.page:61(p)
+msgid ""
+"The guides assume that you have at least the following versions of the tools "
+"installed:"
+msgstr ""
+"Las guÃas asumen que tiene instaladas, al menos, las siguientes versiones de "
+"las herramientas."
 
-#~ msgid ""
-#~ "Afterwards it calls a few functions which set up and then run the "
-#~ "application. The <code>kit.run</code> function starts the GTKmm main "
-#~ "loop, which runs the user interface and starts listening for events (like "
-#~ "clicks and key presses)."
-#~ msgstr ""
-#~ "DespuÃs llama a algunas funciones que configuran y despuÃs ejecutan la "
-#~ "aplicaciÃn. La funciÃn <code>kit.run</code> inicia el bucle principal de "
-#~ "GTKmm, que ejecuta la interfaz de usuario y empieza a escuchar eventos "
-#~ "(como pulsaciones del ratÃn y del teclado)."
+#: C/getting-ready.page:64(p)
+msgid "Anjuta - 3.0"
+msgstr "Anjuta - 3.0"
 
-#~ 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 ""
-#~ "El archivo de GtkBuilder contiene una descripciÃn de la interfaz de "
-#~ "usuario (IU). Para editar la interfaz de usuario, abra <file>src/"
-#~ "guitar_tuner.ui</file>. Esto cambiarà al diseÃador de interfaces. La "
-#~ "ventana de diseÃo està en el centro; los widgets y sus propiedades estÃn "
-#~ "a la izquierda, y la paleta de los widgets disponibles està a la derecha."
+#: C/getting-ready.page:65(p)
+msgid "Devhelp - 3.0"
+msgstr "Devhelp - 3.0"
 
-#~ msgid ""
-#~ "While the button is still selected, change the <gui>Label</gui> property "
-#~ "in the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E "
-#~ "string. Also change the <gui>Name</gui> property to <gui>button_E</gui>. "
-#~ "This is the name we will refer to the widget later in code."
-#~ msgstr ""
-#~ "Mientras el botÃn està seleccionado, cambie la propiedad <gui>Etiqueta</"
-#~ "gui> en la pestaÃa <gui>Widgets</gui> a <gui>E</gui>. Esta serà la cuerda "
-#~ "Mi grave. Cambie tambiÃn la propiedad <gui>Nombre</gui> a <gui>button_E</"
-#~ "gui>. Este es el nombre al que se harà referencia mÃs tarde en el cÃdigo."
+#: C/getting-ready.page:66(p)
+msgid "Glade - 3.10"
+msgstr "Glade - 3.10"
 
-#~ msgid ""
-#~ "Repeat the above steps for the other buttons, adding the next 5 strings "
-#~ "with the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and "
-#~ "<em>e</em> and the names <em>button_A</em>, etc."
-#~ msgstr ""
-#~ "Repita los pasos anteriores para el resto de botones, aÃadiendo las 5 "
-#~ "cuerdas restantes con las etiquetas <em>A</em>, <em>D</em>, <em>G</em>, "
-#~ "<em>B</em>, y <em>e</em> y los nombres <em>boton_A</em>, etc."
+#: C/getting-ready.page:68(p)
+msgid ""
+"Of course, any newer version will also work. Now, we wish you a lot of fun "
+"with the <link xref=\"index\">Demos</link>."
+msgstr ""
+"Por supuesto, cualquier versiÃn mÃs moderna tambiÃn funcionarÃ. Ahora, le "
+"deseamos que disfrute con las <link xref=\"index\">demostraciones</link>."
 
-#~ msgid ""
-#~ "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-#~ "guiseq>) and close the file."
-#~ msgstr ""
-#~ "Guarde el diseÃo de la IU (pulsando <guiseq><gui>Archivo</"
-#~ "gui><gui>Guardar</gui></guiseq>) y cierre el archivo."
+#. 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/entry.png'; md5=bd828b3f87debd97ff25702d1468dd37"
+msgstr "@@image: 'media/entry.png'; md5=bd828b3f87debd97ff25702d1468dd37"
 
-#~ msgid ""
-#~ "GStreamer is GNOME's multimedia framework â you can use it for playing, "
-#~ "recording, and processing video, audio, webcam streams and the like. "
-#~ "Here, we'll be using it to produce single-frequency tones. GStreamermm is "
-#~ "the C++ binding to GStreamer which we will use here."
-#~ msgstr ""
-#~ "GStreamer es el entorno multimedia de trabajo de GNOME: puede usarlo para "
-#~ "reproducir, grabar y procesar vÃdeo, sonido, flujos de la cÃmara web y "
-#~ "similares. En este caso, se usarà para generar tonos de frecuencia Ãnica. "
-#~ "GStreamermm es la implementaciÃn de GStreamer en C++ que se usarà aquÃ."
+#: C/entry.js.page:14(desc)
+msgid "How to make an entry widget and connect its contents to a label"
+msgstr ""
+"CÃmo crear un widget de entrada y conectar su contenido con una etiqueta"
 
-#~ msgid "Using GStreamermm"
-#~ msgstr "Usar GStreamermm"
+#: C/entry.js.page:17(title)
+msgid "Entry widget"
+msgstr "Widget de entrada"
 
-#~ msgid ""
-#~ "To use GStreamermm, it has to be initialised. We do that by adding the "
-#~ "following line of code next to the <code>Gtk::Main kit(argc, argv);</"
-#~ "code> line in <file>main.cc</file>:"
-#~ msgstr ""
-#~ "Para usar GStreamermm, se debe inicializar. Esto se hace aÃadiendo la "
-#~ "siguiente lÃnea de cÃdigo junto a la lÃnea <code>Gtk::Main kit(argc, "
-#~ "argv);</code> en <file>main.cc</file>:"
+#: C/entry.js.page:20(p)
+msgid ""
+"This an entry widget. An entry widget is a container that you can type in to."
+msgstr ""
+"Esto es un widget de entrada. Es un contenedor en el que puede escribir."
 
-#~ msgid "\tGst::init (argc, argv);"
-#~ msgstr "\tGst::init (argc, argv);"
+#: C/entry.js.page:57(p)
+#, fuzzy
+#| 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=\"\">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>."
+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 ""
+"En este ejemplo de usan los siguientes 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=\"\">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>."
+
+#: C/documentation.page:19(title)
+msgid "Help develop"
+msgstr "Ayudar al desarrollo"
+
+#: 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 ""
+"Los <app>Tutoriales del desarrollador de GNOME</app> los desarrolla y los "
+"mantiene una comunidad de voluntarios. Si quiere participar es bienvenido."
 
-#~ msgid ""
-#~ "While we are on it, also make sure that the <file>gstreamermm.h</file> is "
-#~ "included in <file>main.cc</file> properly."
-#~ msgstr ""
-#~ "Mientras està con esto, asegÃrese de que <file>gstreamermm.h</file> se "
-#~ "incluye correctamente en <file>main.cc</file>."
+#: 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 ""
+"Si quiere <link href=\"https://live.gnome.org/DocumentationProject/Tasks/";
+"DeveloperDocs\">contribuir al desarrollo de los <app>Tutoriales del "
+"desarrollador de GNOME</app></link>, puede ponerse en contacto con los "
+"desarrolladores usando <link href=\"https://cbe005.chat.mibbit.com/?url=irc%";
+"3A%2F%2Firc.gnome.org%2Fdocs\">irc</link>, o mediante la <link href=\"http://";
+"mail.gnome.org/mailman/listinfo/gnome-doc-devel-list\">lista decorreo</link>."
 
-#~ msgid ""
-#~ "To simplify the handling of the pipeline we will define a helper class "
-#~ "<code>Sound</code>. We do that in <file>main.cc</file> in order to keep "
-#~ "this example simple, whereas you might usually want to use a separate "
-#~ "file:"
-#~ msgstr ""
-#~ "Para simplificar el manejo de la tuberÃa, se definirà una clase "
-#~ "<code>Sound</code> auxiliar. Esto se hace en <file>main.cc</file> para "
-#~ "mantener la sencillez de este ejemplo, pero puede querer usar un archivo "
-#~ "aparte."
+#. 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/guitarJs.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
+msgid "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
+msgstr "@@image: 'media/dialog.png'; md5=be1b654bb025465e2de5d12079bcb260"
 
-#~ msgid "The code has the following purpose:"
-#~ msgstr "El cÃdigo tiene el propÃsito siguiente:"
+#: C/dialog.vala.page:14(desc)
+msgid "A popup window"
+msgstr ""
 
-#~ msgid ""
-#~ "In the constructor, source and sink GStreamer elements (<code>Gst::"
-#~ "Element</code>) are created, and a pipeline element (which will be used "
-#~ "as a container for the other two elements). The pipeline is given the "
-#~ "name \"note\"; the source is named \"source\" and is set to the "
-#~ "<code>audiotestsrc</code> source; and the sink is named \"output\" and "
-#~ "set to the <code>autoaudiosink</code> sink (default sound card output). "
-#~ "After the elements have been added to the pipeline and linked together, "
-#~ "the pipeline is ready to run."
-#~ msgstr ""
-#~ "En el constructor se crean los elementos Âfuente y Âsumidero de GStreamer "
-#~ "(<code>GstElement</code>), y un elemento de tuberÃa (que se usarà como "
-#~ "contenedor de los otros dos elementos). A la tuberÃa se le asigna el "
-#~ "nombre ÂnoteÂ; la fuente se llama Âsource y se asocia a la fuente "
-#~ "<code>audiotestsrc</code> y el sumidero se llama Âoutput y se asocia con "
-#~ "el sumidero <code>autoaudiosink</code> (la salida de la tarjeta de sonido "
-#~ "predeterminada). DespuÃs de aÃadir los elementos a la tuberÃa y de "
-#~ "enlazarlos unos con otros, la tuberÃa està lista para ejecutarse."
+#: C/dialog.vala.page:17(title)
+msgid "Dialog"
+msgstr ""
 
-#~ msgid ""
-#~ "<code>start_playing</code> sets the source element to play a particular "
-#~ "frequency and then starts the pipeline so the sound actually starts "
-#~ "playing. As we don't want to have the annoying sound for ages, a timeout "
-#~ "is set up to stop the pipeline after 200 ms by calling "
-#~ "<code>stop_playing</code>."
-#~ msgstr ""
-#~ "<code>start_playing</code> configura el elemento fuente para reproducir "
-#~ "una frecuencia determinada e inicia la tuberÃa, por lo que el sonido "
-#~ "empieza a reproducirse. Como no se quiere reproducir un sonido molesto "
-#~ "durante mucho tiempo, se establece un tiempo de expiraciÃn para detener "
-#~ "la tuberÃa despuÃs de 200 ms, llamando a <code>stop_playing</code>."
+#: C/dialog.vala.page:19(p)
+msgid "A dialog with the response signal hooked up to a callback function."
+msgstr ""
 
-#~ msgid ""
-#~ "In <code>stop_playing</code> which is called when the timeout has "
-#~ "elapsed, the pipeline is stopped and as such there isn't any sound output "
-#~ "anymore. As GStreamermm uses reference counting through the <code>Glib::"
-#~ "RefPtr</code> object, the memory is automatically freed once the "
-#~ "<code>Sound</code> class is destroyed."
-#~ msgstr ""
-#~ "En <code>stop_playing</code> a la que se llama cuando ha transcurrido el "
-#~ "tiempo, se detiene la tuberÃa y como tal, ya no habrà ninguna salida de "
-#~ "sonido. Ya que GStreamermm usa una referencia continua a traves del "
-#~ "objeto <code>Glib::RefPtr</code>, la memoria se libera automÃticamente "
-#~ "una vez que la clase <code>Sound</code> se ha destruido."
+#: C/dialog.vala.page:51(link)
+msgid "Gtk.Dialog"
+msgstr "Gtk.Dialog"
 
-#~ msgid "Connecting the signals"
-#~ msgstr "Conectar las seÃales"
+#: C/dialog.vala.page:52(link)
+msgid "Gtk.Dialog.with_buttons"
+msgstr "Gtk.Dialog.with_buttons"
 
-#~ msgid ""
-#~ "We want to play the correct sound when the user clicks a button. That "
-#~ "means that we have to connect to the signal that is fired when the user "
-#~ "clicks the button. We also want to provide information to the called "
-#~ "function which tone to play. GTKmm makes that quite easy as we can easily "
-#~ "bind information with the <em>sigc</em> library."
-#~ msgstr ""
-#~ "Se quiere reproducir el sonido correcto cuando el usuario pulsa un botÃn. "
-#~ "Lo que significa que hay que conectar la seÃal disparada cuando el "
-#~ "usuario pulsa el botÃn. TambiÃn se quiere proporcionar informaciÃn a la "
-#~ "funciÃn llamada dependiendo del tono que reproducir. GTKmm hace que esto "
-#~ "sea fÃcil ya que se puede vincular informaciÃn con la biblioteca "
-#~ "<em>sigc</em>."
+#: C/dialog.vala.page:53(link)
+msgid "Gtk.Label"
+msgstr "Gtk.Label"
 
-#~ msgid ""
-#~ "The function that is called when the user clicks a button can be pretty "
-#~ "simple, as all the interesting stuff is done in the helper class now:"
-#~ msgstr ""
-#~ "La funciÃn a la que se llama cuando el usuario pulsa un botÃn puede ser "
-#~ "muy sencilla, ya que todo lo interesante se hace ahora en la clase "
-#~ "auxiliar:"
+#: C/dialog.vala.page:54(link)
+msgid "get_content_area"
+msgstr "get_content_area"
 
-#~ msgid ""
-#~ "It only calls the helper class we defined before to play the correct "
-#~ "frequencies. With some more clever code we would also have been able to "
-#~ "directly connect to the class without using the function but we will "
-#~ "leave that to use as an exercise."
-#~ msgstr ""
-#~ "SÃlo llama a la clase auxiliar definida anteriormente para reproducir las "
-#~ "frecuencias correctas. Con algo de cÃdigo mÃs inteligente, se podrÃa "
-#~ "haber conectado directamente con la clase sin usar la funciÃn, pero esto "
-#~ "se dejarà como ejercicio."
+#: C/desktop.js.page:14(desc)
+msgid "A desktop file for the hello world application"
+msgstr "Un archivo Â.desktop para la aplicaciÃn ÂHola mundoÂ"
 
-#~ msgid ""
-#~ "The code to set up the signals should be added to the <code>main()</code> "
-#~ "function just after the <code>builder-&gt;get_widget(\"main_window\", "
-#~ "main_win);</code> line:"
-#~ msgstr ""
-#~ "El cÃdigo para configurar las seÃales de debe aÃadir a la funciÃn "
-#~ "<code>main()</code>, justo despuÃs de la lÃnea <code>builder-&gt;"
-#~ "get_widget(\"main_window\", main_win);</code>:"
+#: C/desktop.js.page:17(title)
+msgid "helloWorld.desktop"
+msgstr "helloWorld.desktop"
 
-#~ msgid ""
-#~ "At first we create an instance of our helper class that we want to use "
-#~ "now and declare a variable for the button we want to connect to."
-#~ msgstr ""
-#~ "En primer lugar, se crea una instancia de la clase auxiliar que se quiere "
-#~ "usar ahora y se declara una variable para el botÃn al que se quiere "
-#~ "conectar."
+#: 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 ""
+"Ejecutar aplicaciones desde la terminal es Ãtil al principio del proceso de "
+"crear la aplicaciÃn. Para tener una <link href=\"http://library.gnome.org/";
+"admin/system-admin-guide/stable/mimetypes-9.html.en\">integraciÃn con la "
+"aplicaciÃn</link> completa en GNOME 3, se necesita un lanzador en el "
+"escritorio. Para esto, necesita crear un archivo <file>.desktop</file>. El "
+"archivo Â.desktop describe el nombre de la aplicaciÃn, el icono que usa y "
+"varios campos de integraciÃn. Puede encontrar una descripciÃn de los "
+"archivos <file>.desktop</file> <link href=\"http://developer.gnome.org/";
+"desktop-entry-spec/\">aquÃ</link>."
+
+#: C/desktop.js.page:19(p)
+msgid ""
+"The example shows you the minimum requirements for a <code>.desktop</code> "
+"file."
+msgstr ""
+"El ejemplo muestra los requerimientos mÃnimos de un archivo <code>.desktop</"
+"code>."
 
-#~ msgid ""
-#~ "Next, we receive the button object from the user interface that was "
-#~ "created out of the user interface file. Remember that <em>button_E</em> "
-#~ "is the name we gave to the first button."
-#~ msgstr ""
-#~ "DespuÃs se recibe el objeto de botÃn desde la interfaz de usuario que se "
-#~ "creà fuera del archivo de la interfaz de usuario. Recuerde que "
-#~ "<em>button_E</em> es el nombre que se dio al primer botÃn."
+#: C/desktop.js.page:32(p)
+msgid "Now let's go through some parts of the <code>.desktop</code> file."
+msgstr "Ahora se verÃn algunas partes del archivo <code>.desktop</code>."
 
-#~ msgid ""
-#~ "Finally we connect the <em>clicked</em> signal. This isn't fully "
-#~ "straightforward because this is done in a fully type-safe way and we "
-#~ "actually want to pass the frequency and our helper class to the signal "
-#~ "handler. <code>sigc::ptr_fun(&amp;on_button_clicked)</code> creates a "
-#~ "<em>slot</em> for the <code>on_button_clicked</code> method we defined "
-#~ "above. With <code>sigc::bind</code> we are able to pass additional "
-#~ "arguments to the slot and in this case we pass the frequency (as double) "
-#~ "and our helper class."
-#~ msgstr ""
-#~ "Por Ãltimo, se conecta la seÃal <em>clicked</em>. Esto no es del todo "
-#~ "sencillo porque se hace de manera completamente segura para el tipo, y "
-#~ "actualmente se quiere pasar la frecuencia y la clase auxiliar al "
-#~ "manejador de la seÃal. <code>sigc::ptr_fun(&amp;on_button_clicked)</code> "
-#~ "crea un <em>slot</em> para el mÃtodo <code>on_button_clicked</code> "
-#~ "definido anteriormente. Con <code>sigc::bind</code> es posible pasar "
-#~ "argumentos adicionales al slot y, en este caso, se pasa la frecuencia "
-#~ "(como ÂdoubleÂ) y la clase auxiliar."
+#: C/desktop.js.page:34(p)
+msgid "Line 4: Name of the application"
+msgstr "LÃnea 4: nombre de la aplicaciÃn"
 
-#~ msgid ""
-#~ "Now that we have set up the <em>E</em> button we also need to connect the "
-#~ "other buttons according to their frequencies: 440 for A, 587.33 for D, "
-#~ "783.99 for G, 987.77 for B and 1318.5 for the high E. This is done in the "
-#~ "same way, just passing a different frequency to the handler."
-#~ msgstr ""
-#~ "Ahora que se ha establecido el botÃn <em>E</em>, se debe conectar el "
-#~ "resto de botones de acuerdo con sus frecuencias: 440 para A, 587.33 para "
-#~ "D, 783.99 para G, 987.77 para B y 1318.5 para E agudo. Esto se hace de la "
-#~ "misma manera, pasando simplemente una frecuencia diferente al manejador."
+#: C/desktop.js.page:35(p)
+msgid "Line 5: Specifies a short description of the item"
+msgstr "LÃnea 5: especifica una breve descripciÃn del elemento"
 
-#~ 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 ""
-#~ "Todo el cÃdigo deberÃa estar listo para ejecutarse. Pulse "
-#~ "<guiseq><gui>Construir</gui><gui>Construir proyecto</gui></guiseq> para "
-#~ "construir todo otra vez y pulse <guiseq><gui>Ejecutar</gui><gui>Ejecutar</"
-#~ "gui></guiseq> para iniciar la aplicaciÃn."
+#: 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 ""
+"LÃnea 6: especifica un comando que ejecutar cuando se elige el elemento en "
+"el menÃ. En este ejemplo, Âexec sÃlo indica dÃnde encontrar el archivo "
+"<code>helloworld.js</code> y el archivo se hace cargo del resto."
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"guitar-tuner/guitar-tuner.cc\">coÌdigo de referencia</link>."
+#: C/desktop.js.page:37(p)
+msgid ""
+"Line 8: Specifies whether the command in the Exec key runs in a terminal "
+"window."
+msgstr ""
+"LÃnea 8: especifica si el comando del campo ÂExec se ejecuta en una ventana "
+"de la terminal."
 
-#~ msgid "Further Reading"
-#~ msgstr "Lecturas adicionales"
+#: 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 ""
+"Si quiere que su archivo <code>.desktop</code> forme parte del sistema, "
+"copie su archivo <code>.desktop</code> a la carpeta ~/.local/share/"
+"applications."
 
-#~ msgid ""
-#~ "Many of the things shown above are explained in detail in the <link href="
-#~ "\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</"
-#~ "link> which also covers a lot more key concept for using the full power "
-#~ "of GTKmm. You might also be interested in the <link href=\"http://library.";
-#~ "gnome.org/devel/gstreamermm/\">GStreamermm reference documentation</link>."
-#~ msgstr ""
-#~ "La mayor parte de lo que se ha visto anteriormente se explica "
-#~ "detalladamente en el <link href=\"http://library.gnome.org/devel/gtkmm-";
-#~ "tutorial/stable/\">libro de GTKmm</link> que tambiÃn cubre muchos mÃs "
-#~ "conceptos clave para usar todo el potencial de GTKmm. Es posible que "
-#~ "tambiÃn le interese la <link href=\"http://library.gnome.org/devel/";
-#~ "gstreamermm/\">documentaciÃn de referencia de GStreamermm</link>."
+#: 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 ""
+"Para incluir su aplicaciÃn en la categorÃa correcta, debe aÃadir las "
+"categorÃas necesarias a la lÃnea ÂCategoriesÂ. Puede encontrar mÃs "
+"informaciÃn sobre las distintas categorÃas en la <link href=\"http://";
+"standards.freedesktop.org/menu-spec/latest/apa.html\">especificaciÃn del "
+"menÃ</link>."
 
-#~ msgid "Basic knowledge of the C programming language"
-#~ msgstr "Conocimiento bÃsico del lenguaje de programaciÃn C"
+#: 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 ""
+"En este ejemplo se ha usado un icono existente. Para usar un icono "
+"personalizado, necesita un archivo .svg con su icono y guardarlo en /usr/"
+"share/icons/hicolor/scalable/apps. Escriba el nombre del archivo del icono "
+"en el archivo .desktop, en la lÃnea 7. Puede obtener mÃs informaciÃn sobre "
+"los iconos en <link href=\"http://library.gnome.org/admin/system-admin-guide/";
+"stable/themes-11.html.en\">Instalar iconos para temas</link>, <link href="
+"\"https://live.gnome.org/GnomeGoals/AppIcon\";>Instalar iconos para temas</"
+"link> y <link href=\"http://freedesktop.org/wiki/Specifications/icon-theme-";
+"spec\">en freedesktop.org: Specifications/icon-theme-spec</link>."
+
+#: 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 ""
+"Cuando termine de escribir el archivo .desktop, debe cambiarle los permisos "
+"para permitir ejecutar el archivo como un programa. Para hacerlo, vaya a la "
+"carpeta que contiene el archivo .desktop, pulse con el botÃn derecho sobre "
+"el archivo, elija ÂPropiedadesÂ, pestaÃa ÂPermisos y marque la casilla "
+"ÂEjecutarÂ:"
 
-#~ msgid ""
-#~ "Choose <gui>Gtk+ (Simple)</gui> from the <gui>C</gui> tab, click "
-#~ "<gui>Continue</gui>, and fill out your details on the next few pages. Use "
-#~ "<file>guitar-tuner</file> as project name and directory."
-#~ msgstr ""
-#~ "Seleccione <gui>Gtk+ (simple)</gui> en la pestaÃa <gui>C</gui>, pulse "
-#~ "<gui>Continuar</gui>, y rellene los detalles en las siguientes pÃginas. "
-#~ "Use <file>afinador-guitarra</file> como nombre del proyecto y de la "
-#~ "carpeta."
+#. 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)
+msgid "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
+msgstr "@@image: 'media/button.png'; md5=7a7f59f0f168326579e22801fd917c0c"
 
-#~ 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 de que <gui>Configurar paquetes externos</gui> està "
-#~ "<gui>activada</gui>. En la siguiente pÃgina, seleccione <em>gstreamer-"
-#~ "0.10</em> de la lista para incluir la biblioteca GStreamer en su proyecto."
+#: C/button.vala.page:14(desc)
+msgid "A button widget which can be connected to other widgets."
+msgstr "Un widget de botÃn que puede estar conectado a otros widgets."
 
-#~ msgid ""
-#~ "C is a rather verbose language, so don't be surprised that the file "
-#~ "contains quite a lot of code. Most of it is template code. It loads an "
-#~ "(empty) window from the user interface description file and shows it. "
-#~ "More details are given below; skip this list if you understand the basics:"
-#~ msgstr ""
-#~ "C es un lenguaje mÃs detallado, por lo que no se sorprenda de que el "
-#~ "archivo contiene un gran cantidad de cÃdigo. La mayor parte es cÃdigo de "
-#~ "plantilla. Carga una ventana (vacÃa) desde el archivo de descripciÃn de "
-#~ "la interfaz de usuario y la muestra. A continuaciÃn se ofrecen mÃs "
-#~ "detalles; omita esta lista si entiende los conceptos bÃsicos:"
+#: C/button.vala.page:17(title) C/button.js.page:17(title)
+msgid "Button widget"
+msgstr "Widget de botÃn"
 
-#~ msgid ""
-#~ "The <code>create_window</code> function creates a new window by opening a "
-#~ "GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
-#~ "above), connecting its signals and then displaying it in a window. The "
-#~ "GtkBuilder file contains a description of a user interface and all of its "
-#~ "elements. You can use Anjuta's editor to design GtkBuilder user "
-#~ "interfaces."
-#~ msgstr ""
-#~ "La funciÃn <code>create_window</code> crea una ventana nueva abriendo un "
-#~ "archivo de GtkBuilder (<file>src/guitar-tuner.ui</file>, definido unas "
-#~ "pocas lÃneas mÃs arriba), conectando sus seÃales y mostrÃndolo en una "
-#~ "ventana. El archivo de GtkBuilder contiene una descripciÃn de una "
-#~ "interfaz de usuario y de todos sus elementos. Puede usar el editor Anjuta "
-#~ "para diseÃar interfaces de usuario con GtkBuilder."
+#: C/button.vala.page:20(p)
+msgid "A button widget connected to stdout.printf (), and a modal window."
+msgstr "Un widget de botÃn conectado a stdout.printf () y a una ventana modal."
 
-#~ msgid ""
-#~ "To do this, open <file>main.c</file> while the user interface file is "
-#~ "still open. Switch to the <gui>Signals</gui> tab, which you already used "
-#~ "to set the signal name. Now take the row where you set the <gui>clicked</"
-#~ "gui> signal and drag it into to the source file at a position that is "
-#~ "outside any function. The following code will be added to your source "
-#~ "file:"
-#~ msgstr ""
-#~ "Para hacer esto, abra <file>main.c</file> mientras el archivo de la "
-#~ "interfaz de usuario està abierto. Cambie a la pestaÃa <gui>SeÃales</gui>, "
-#~ "que ya ha usado para establecer el nombre de la seÃal. Ahora vaya a la "
-#~ "fila en la que establecià la seÃal <gui>clicked</gui> y arrÃstrela al "
-#~ "archivo de cÃdigo fuente, fuera de cualquier funciÃn. Se aÃadirà el "
-#~ "siguiente cÃdigo a su archivo de cÃdigo fuente:"
+#: 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 ""
 
-#~ msgid ""
-#~ "This signal handler has two arguments: a pointer to the <code>GtkWidget</"
-#~ "code> that called the function (in our case, always a <code>GtkButton</"
-#~ "code>), and a pointer to some \"user data\" that you can define, but "
-#~ "which we won't be using here. (You can set the user data by calling "
-#~ "<code>gtk_builder_connect_signals</code>; it is normally used to pass a "
-#~ "pointer to a data structure that you might need to access inside the "
-#~ "signal handler.)"
-#~ msgstr ""
-#~ "El manejador de la seÃal tiene dos argumentos. un puntero al "
-#~ "<code>GtkWidget</code> que llamà a la funciÃn (en este caso, siempre es "
-#~ "un <code>GtkButton</code>), y un puntero a ciertos Âdatos de usuario que "
-#~ "puede definir, pero que aquà no se usan. (Puede establecer los datos de "
-#~ "usuario llamando a <code>gtk_builder_connect_signals</code>; normalmente "
-#~ "se usa para pasar un puntero a una estructura de datos a la que puede "
-#~ "necesitar acceder dentro del manejador de la seÃal.)"
+#. 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.js.page:19(None)
+msgid ""
+"@@image: 'media/button_with_progress_bar.png'; "
+"md5=358f87347bc8c9571c591b06fafd6fe0"
+msgstr ""
+"@@image: 'media/button_with_progress_bar.png'; "
+"md5=358f87347bc8c9571c591b06fafd6fe0"
 
-#~ msgid ""
-#~ "Insert the following line into <file>main.c</file>, just below the "
-#~ "<code><![CDATA[#include <gtk/gtk.h>]]></code> line:"
-#~ msgstr ""
-#~ "Inserte la siguiente lÃnea en <file>main.c</file>, justo a continuaciÃn "
-#~ "de la lÃnea <code><![CDATA[#include <gtk/gtk.h>]]></code>:"
+#: C/button.js.page:14(desc)
+msgid "A button widget which is connected to a progress bar"
+msgstr "Un widget de botÃn que està conectado a la barra de progreso"
 
-#~ msgid ""
-#~ "This includes the GStreamer library. You also need to add a line to "
-#~ "initialize GStreamer; put the following code on the line above the "
-#~ "<code>gtk_init</code> call in the <code>main</code> function:"
-#~ msgstr ""
-#~ "Esto incluye la bilbioteca GStreamer. TambiÃn necesita aÃadir una lÃnea "
-#~ "para inicializar GStreamer; ponga la siguiente lÃnea de cÃdigo antes de "
-#~ "la llamada <code>gtk_init</code> en la funciÃn <code>main</code>:"
+#: C/button.js.page:20(p)
+msgid "A button widget connected to a progress bar."
+msgstr "Un widget de botÃn conectado a una barra de progreso."
 
-#~ msgid ""
-#~ "Then, copy the following function into <file>main.c</file> above the "
-#~ "empty <code>on_button_clicked</code> function:"
-#~ msgstr ""
-#~ "DespuÃs, copie la siguiente funciÃn en <file>main.c</file> encima de la "
-#~ "funciÃn <code>on_button_clicked</code> vacÃa:"
+#: C/bug-filing.page:10(email)
+msgid "tiffany antopolski com"
+msgstr "tiffany antopolski com"
 
-#~ msgid ""
-#~ "The first five lines create source and sink GStreamer elements "
-#~ "(<code>GstElement</code>), and a pipeline element (which will be used as "
-#~ "a container for the other two elements). The pipeline is given the name "
-#~ "\"note\"; the source is named \"source\" and is set to the "
-#~ "<code>audiotestsrc</code> source; and the sink is named \"output\" and "
-#~ "set to the <code>autoaudiosink</code> sink (default sound card output)."
-#~ msgstr ""
-#~ "Las cinco primeras lÃneas crean los elementos Âfuente y Âsumidero de "
-#~ "GStreamer (<code>GstElement</code>), y un elemento de tuberÃa (que se "
-#~ "usarà como contenedor de los otros dos elementos). A la tuberÃa se le "
-#~ "asigna el nombre ÂnoteÂ; la fuente se llama Âsource y se asocia a la "
-#~ "fuente <code>audiotestsrc</code> y el sumidero se llama Âoutput y se "
-#~ "asocia con el sumidero <code>autoaudiosink</code> (la salida de la "
-#~ "tarjeta de sonido predeterminada)."
+#: C/bug-filing.page:18(title)
+msgid "Help make <app>GNOME Developer Tutorials</app> better"
+msgstr "Ayudar a mejorar los <app>Tutoriales del desarrollador de GNOME</app>"
 
-#~ msgid ""
-#~ "The call to <code>g_object_set</code> sets the <code>freq</code> property "
-#~ "of the source element to <code>frequency</code>, which is passed as an "
-#~ "argument to the <code>play_sound</code> function. This is just the "
-#~ "frequency of the note in Hertz; some useful frequencies will be defined "
-#~ "later on."
-#~ msgstr ""
-#~ "La llamada a <code>g_object_set</code> establece la propiedad <code>freq</"
-#~ "code> del elemento fuente a <code>frequency</code>, que se pasa como "
-#~ "argumento a la funciÃn <code>play_sound</code>. Esto sÃlo es la "
-#~ "frecuencia de la nota en Hercios; mÃs adelante se definirÃn algunas "
-#~ "frecuencias Ãtiles."
+#: C/bug-filing.page:21(title)
+msgid "Report a bug or suggest an improvement"
+msgstr "Informar de un error o proponer una mejora"
 
-#~ msgid ""
-#~ "<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
-#~ "The pipeline is a <code>GstBin</code>, which is just an element that can "
-#~ "contain multiple other GStreamer elements. In general, you can add as "
-#~ "many elements as you like to the pipeline by adding more arguments to "
-#~ "<code>gst_bin_add_many</code>."
-#~ msgstr ""
-#~ "<code>gst_bin_add_many</code> aÃade la fuente y el sumidero a la tuberÃa. "
-#~ "La tuberÃa es un <code>GstBin</code>, que es un elemento que puede "
-#~ "contener otros muchos elementos de GStreamer. En general, puede aÃadir "
-#~ "tantos elementos como quiera a una tuberÃa aÃadiendo mÃs argumentos a "
-#~ "<code>gst_bin_add_many</code>."
+#: 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 ""
+"Los <app>Tutoriales del desarrollador de GNOME</app> los mantiene la "
+"comunidad de manera voluntaria. Si quiere participar, es bienvenido. Si "
+"encuentra un error, puede rellenar un <em>informe de error</em>. Para "
+"informar de un error, vaya a <link href=\"https://bugzilla.gnome.org/\"/>."
 
-#~ msgid ""
-#~ "Next, <code>gst_element_link</code> is used to connect the elements "
-#~ "together, so the output of <code>source</code> (a tone) goes into the "
-#~ "input of <code>sink</code> (which is then output to the sound card). "
-#~ "<code>gst_element_set_state</code> is then used to start playback, by "
-#~ "setting the state of the pipeline to playing (<code>GST_STATE_PLAYING</"
-#~ "code>)."
-#~ msgstr ""
-#~ "DespuÃs, se usa <code>gst_element_link</code> para conectar los elementos "
-#~ "de forma conjunta, de tal forma que la salida de <code>source</code> (un "
-#~ "tono) va a la entrada de <code>sink</code> (que es despuÃs la salida de "
-#~ "la tarjeta de sonido). <code>gst_element_set_state</code> se usa al "
-#~ "iniciar la reproducciÃn, configurando el estado de la tuberÃa a "
-#~ "reproduciendo (<code>GST_STATE_PLAYING</code>)."
+#: 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 ""
+"Este es el sistema de seguimiento de errores en el que los usuarios y los "
+"desarrolladores pueden archivar detalles sobre los errores, fallos y "
+"solicitudes de mejoras."
 
-#~ msgid ""
-#~ "We don't want to play an annoying tone forever, so the last thing "
-#~ "<code>play_sound</code> does is to call <code>g_timeout_add</code>. This "
-#~ "sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
-#~ "milliseconds before calling the function <code>pipeline_stop</code>, and "
-#~ "will keep calling it until <code>pipeline_stop</code> returns "
-#~ "<code>FALSE</code>."
-#~ msgstr ""
-#~ "No se quiere reproducir un tono molesto para siempre, por lo que lo "
-#~ "uÌltimo que <code>play_sound</code> hace es llamar a <code>g_timeout_add</"
-#~ "code>. Esto establece un tiempo de expiracioÌn para detener el sonido; "
-#~ "espera <code>LENGTH</code> milisegundos antes de llamar a la funcioÌn "
-#~ "<code>pipeline_stop</code>, y se queda llamando a <code>pipeline_stop</"
-#~ "code> hasta que devuelve <code>FALSE</code>."
+#: 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 ""
+"Para participar necesita una cuenta, que le permitirà obtener acceso, "
+"informar de errores y hacer comentarios. TambiÃn debe registrarte para poder "
+"recibir actualizaciones por correo-e sobre el estado de su informe de error. "
+"Si todavÃa no tiene una cuenta, simplemente pulse en el enlace <gui>New "
+"Account</gui> para crear una."
 
-#~ msgid ""
-#~ "Now, we'll write the <code>pipeline_stop</code> function which is called "
-#~ "by <code>g_timeout_add</code>. Insert the following code <em>above</em> "
-#~ "the <code>play_sound</code> function:"
-#~ msgstr ""
-#~ "Ahora, se escribirà el cÃdigo de la funciÃn <code>pipeline_stop</code>, "
-#~ "llamada por <code>g_timeout_add</code>. Inserte el cÃdigo siguiente "
-#~ "<em>encima</em> de la funciÃn <code>play_sound</code>:"
+#: 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 ""
+"Una vez que tenga su cuenta, inicie sesioÌn y pulse en <guiseq><gui>Informar "
+"de un error</gui><gui>Todas</gui><gui>gnome-devel-docs</gui></guiseq>. Antes "
+"de informar de un error, lea las <link href=\"https://bugzilla.gnome.org/";
+"page.cgi?id=bug-writing.html\">guiÌas para informar de un error</link> y "
+"<link href=\"https://bugzilla.gnome.org/browse.cgi?product=evince\";>busque</"
+"link> el error para ver si ya existe."
 
-#~ msgid ""
-#~ "The call to <code>gst_element_set_state</code> pauses the playback of the "
-#~ "pipeline and <code>g_object_unref</code> unreferences the pipeline, "
-#~ "destroying it and freeing its memory."
-#~ msgstr ""
-#~ "La llamada a <code>gst_element_set_state</code> pausa la reproducciÃn de "
-#~ "la tuberÃa y <code>g_object_unref</code> desreferencia la tuberÃa, la "
-#~ "destruye y libera su memoria."
+#: 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 ""
+"Para informar de un error, elija el componente <gui>platform-demos</gui> en "
+"el menà <gui>Component</gui>."
 
-#~ msgid ""
-#~ "We want to play the correct sound when the user clicks a button. First of "
-#~ "all, we need to know the frequencies for the six guitar strings, which "
-#~ "are defined (at the top of <file>main.c</file>) as follows:"
-#~ msgstr ""
-#~ "Se quiere reproducir el sonido correcto cuando un usuario pulsa un botÃn. "
-#~ "En primer lugar, se necesita conocer las frecuencias de las seis cuerdas "
-#~ "de la guitarra, que estÃn definidas (al principio de <file>main.c</file>) "
-#~ "de la siguiente manera:"
+#: 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 ""
+"Si quiere solicitar una caracterÃstica nueva, elija <gui>enhancement</gui> "
+"en el menà <gui>Severity</gui>. Rellene las secciones ÂSummary y "
+"ÂDescription y pulse <gui>Commit</gui>."
 
-#~ msgid ""
-#~ "A pointer to the <code>GtkButton</code> that was clicked is passed as an "
-#~ "argument (<code>button</code>) to <code>on_button_clicked</code>. We can "
-#~ "get the label of that button by using <code>gtk_bin_get_child</code>, and "
-#~ "then get the text from that label using <code>gtk_label_get_label</code>."
-#~ msgstr ""
-#~ "A <code>on_button_clicked</code> se le pasa como argumento (<code>button</"
-#~ "code>) un puntero al <code>GtkButton</code> que se ha pulsado. Se puede "
-#~ "obtener la etiqueta de este botÃn usando <code>gtk_bin_get_child</code> y "
-#~ "obteniendo el texto de la etiqueta usando <code>gtk_label_get_label</"
-#~ "code>."
+#: 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 ""
+"Se le asignaraÌ un nuÌmero de ID a su informe y su estado se actualizaraÌ a "
+"medida que se trate. Gracias por ayudar a mejorar los <app>Tutoriales del "
+"desarrollador de GNOME</app>."
 
-#~ msgid ""
-#~ "The label text is then compared to the notes that we have using "
-#~ "<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
-#~ "frequency appropriate for that note. This plays the tone; we have a "
-#~ "working guitar tuner!"
-#~ msgstr ""
-#~ "La etiqueta de texto se compara con las notas que se tiene usando "
-#~ "<code>g_str_equal</code>, y se llama a <code>play_sound</code> con la "
-#~ "frecuencia correspondiente a cada nota. Esto reproduce el tono; el "
-#~ "afinador de guitarra ya està funcionando."
+#: 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 ""
+"Una guÃa de programaciÃn de interfaces usuario en GTK+ para principiantes, "
+"incluyendo ejemplos de cÃdigo y ejercicios prÃcticos."
 
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"guitar-tuner/guitar-tuner.c\">coÌdigo de referencia</link>."
+#: 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. Tutoriales para principiantes"
 
-#~ msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
-#~ msgstr "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
+#: 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 ""
+"Si nunca antes ha programad, o no està familiarizado con los conceptos de la "
+"programaciÃn orientada a objetos, puede necesitar aprender primero unos "
+"conceptos bÃsicos. El libro <link href=\"http://learnpythonthehardway.org/";
+"book/\">Learn Python the Hard Way</link> puede ser un buen comienzo. Una vez "
+"que domine los conceptos bÃsicos, vuelva y revise estos tutoriales."
 
-#~ msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-#~ msgstr "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
+#: 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 ""
+"Aunque estos tutoriales estÃn diseÃados para principiantes, no se pueden "
+"cubrir todos los conceptos bÃsicos. Antes de intentar seguir estos "
+"tutoriales, debe estar familiarizado con los siguientes conceptos:"
 
-#~ msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
-#~ msgstr "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
+#: 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 objetos"
 
-#~ msgid "Install GNOME development tools"
-#~ msgstr "Instalar las herramientas de desarrollo de GNOME"
+#: C/beginner.vala.page:24(p)
+msgid "The Vala programming language:"
+msgstr "El lenguaje de programaciÃn Vala:"
 
-#~ msgid "Getting ready for GNOME development"
-#~ msgstr "PrepaÌrese para desarrollar en GNOME"
+#: C/beginner.vala.page:26(link)
+msgid "The Vala Tutorial"
+msgstr "El tutorial de Vala"
 
-#~ msgid "Install the required tools"
-#~ msgstr "Instalar las herramientas necesarias"
+#: C/beginner.vala.page:27(link)
+msgid "Sample Vala code"
+msgstr "Ejemplo de cÃdigo en Vala"
 
-#~ msgid ""
-#~ "Before you can start coding you will have to install the required tools "
-#~ "for GNOME development on your computer. This shouldn't take you more than "
-#~ "ten minutes."
-#~ msgstr ""
-#~ "Antes de empezar a programar, deberà instalar las herramientas de "
-#~ "desarrollo de GNOME requeridas en su equipo. Esto no deberÃa llevarle mÃs "
-#~ "de 10 minutos."
+#: 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 ""
+"Siguiendo estos tutoriales, aprenderà los conceptos bÃsico de la "
+"programaciÃn de interfaces de usuario usando GTK+."
 
-#~ msgid "Automatic installation"
-#~ msgstr "InstalaciÃn automÃtica"
+#: 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 "Tutoriales"
 
-#~ msgid ""
-#~ "On an up-to-date distribution you should be able to simply install the "
-#~ "required packages by clicking on <link href=\"media/gnome-devtools.catalog"
-#~ "\">Install now</link>."
-#~ msgstr ""
-#~ "Un una distribuciÃn actualizada, deberÃa ser capaz de instalar los "
-#~ "paquetes simplemente pulsando en <link href=\"media/gnome-devtools.catalog"
-#~ "\">Instalar ahora</link>."
+#: 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 "Ejemplos de cÃdigo"
 
-#~ msgid "Manual installation"
-#~ msgstr "InstalaciÃn manual"
+#: C/beginner.vala.page:41(p) C/beginner.js.page:26(p)
+msgid "To run the code samples:"
+msgstr "Para ejecutar los ejemplos de cÃdigo:"
 
-#~ msgid ""
-#~ "If you prefer manual installation you can find the instructions for the "
-#~ "various distributions in the <link href=\"http://live.gnome.org/";
-#~ "DeveloperTools/Installation\">GNOME wiki</link>. Click on the image to go "
-#~ "directly to the installation page for your distribution:"
-#~ msgstr ""
-#~ "Si prefiere la instalaciÃn manual, puede encontrar instrucciones para las "
-#~ "diversas distribuciones en la <link href=\"http://live.gnome.org/";
-#~ "DeveloperTools/Installation\">wiki de GNOME</link>. Pulse sobre la imagen "
-#~ "para ir directamente a la pÃgina de instalaciÃn de su distribuciÃn."
+#: C/beginner.vala.page:45(p)
+msgid "Copy and paste the code into <var>filename</var>.vala"
+msgstr "Copie y pegue el cÃdigo en <var>nombre_archivo</var>.vala"
 
-#~ msgid "Ubuntu"
-#~ msgstr "Ubuntu"
+#: C/beginner.vala.page:46(p) C/beginner.js.page:31(p)
+msgid "In the terminal type:"
+msgstr "Escriba en la terminal:"
 
-#~ msgid "Fedora"
-#~ msgstr "Fedora"
+#: 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>nombre_archivo</var>.vala"
 
-#~ msgid "OpenSuSE"
-#~ msgstr "OpenSuSE"
+#: C/beginner.vala.page:48(screen)
+#, no-wrap
+msgid "./<var>filename</var>"
+msgstr "./<var>nombre_archivo</var>"
 
-#~ msgid "Others"
-#~ msgstr "Otras"
+#: 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 "Ventanas"
 
-#~ msgid "Required versions"
-#~ msgstr "Versiones necesarias"
+#: 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"
 
-#~ msgid ""
-#~ "The guides assume that you have at least the following versions of the "
-#~ "tools installed:"
-#~ msgstr ""
-#~ "Las guÃas asumen que tiene instaladas, al menos, las siguientes versiones "
-#~ "de las herramientas."
+#: 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 "Botones y casillas"
 
-#~ msgid "Anjuta - 3.0"
-#~ msgstr "Anjuta - 3.0"
+#: 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 daos numÃrica y de texto"
 
-#~ msgid "Devhelp - 3.0"
-#~ msgstr "Devhelp - 3.0"
+#: 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Ã, caja combinada y barra de herramientas"
 
-#~ msgid "Glade - 3.10"
-#~ msgstr "Glade - 3.10"
+#: 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"
 
-#~ msgid ""
-#~ "Of course, any newer version will also work. Now, we wish you a lot of "
-#~ "fun with the <link xref=\"index\">Demos</link>."
-#~ msgstr ""
-#~ "Por supuesto, cualquier versiÃn mÃs moderna tambiÃn funcionarÃ. Ahora, le "
-#~ "deseamos que disfrute con las <link xref=\"index\">demostraciones</link>."
+#: 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 "Selectors"
+msgstr "Selectores"
 
-#~ msgid "@@image: 'media/entry.png'; md5=bd828b3f87debd97ff25702d1468dd37"
-#~ msgstr "@@image: 'media/entry.png'; md5=bd828b3f87debd97ff25702d1468dd37"
+#: 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 archivos"
 
-#~ msgid "How to make an entry widget and connect its contents to a label"
-#~ msgstr ""
-#~ "CÃmo crear un widget de entrada y conectar su contenido con una etiqueta"
+#: 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 tipografÃas"
 
-#~ msgid "Entry widget"
-#~ msgstr "Widget de entrada"
+#: 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"
 
-#~ msgid ""
-#~ "This an entry widget. An entry widget is a container that you can type in "
-#~ "to."
-#~ msgstr ""
-#~ "Esto es un widget de entrada. Es un contenedor en el que puede escribir."
+#: 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 "Contenedores de la distribuciÃn"
 
-#~ 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=\"\">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 ""
-#~ "En este ejemplo de usan los siguientes 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=\"\">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>."
+#: 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"
 
-#~ msgid "A complete beginner's guide to GTK+ programming"
-#~ msgstr "Una guÃa completa de programaciÃn en GTK+ para principiantes"
+#: 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 "Desplazamiento"
 
-#~ msgid "0 Beginner's Tutorials and samples"
-#~ msgstr "0. Tutoriales para principiantes y ejemplos"
+#: 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"
 
-#~ 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 ""
-#~ "En estos tutoriales y ejemplos se usa JavaScript y GTK+. Estos tutoriales "
-#~ "y ejemplos dan por supuesto que està familiarizado con la sintaxis de "
-#~ "JavaScript. Si no es asÃ, lea <link href=\"http://eloquentjavascript.net/";
-#~ "contents.html\">Eloquent JavaScript</link> o su manual de JavaScript "
-#~ "preferido."
+#: 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 "Ejercicios"
 
-#~ msgid "A desktop file for the hello world application"
-#~ msgstr "Un archivo Â.desktop para la aplicaciÃn ÂHola mundoÂ"
+#: C/beginner.py.page:24(p)
+#| msgid "The Vala programming language:"
+msgid "The Python programming language."
+msgstr "El lenguaje de programaciÃn Python:"
 
-#~ msgid "helloWorld.desktop"
-#~ msgstr "helloWorld.desktop"
+#: C/beginner.js.page:14(desc)
+msgid "A complete beginner's guide to GTK+ programming"
+msgstr "Una guÃa completa de programaciÃn en GTK+ para principiantes"
 
-#~ 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 ""
-#~ "Ejecutar aplicaciones desde la terminal es Ãtil al principio del proceso "
-#~ "de crear la aplicaciÃn. Para tener una <link href=\"http://library.gnome.";
-#~ "org/admin/system-admin-guide/stable/mimetypes-9.html.en\">integraciÃn con "
-#~ "la aplicaciÃn</link> completa en GNOME 3, se necesita un lanzador en el "
-#~ "escritorio. Para esto, necesita crear un archivo <file>.desktop</file>. "
-#~ "El archivo Â.desktop describe el nombre de la aplicaciÃn, el icono que "
-#~ "usa y varios campos de integraciÃn. Puede encontrar una descripciÃn de "
-#~ "los archivos <file>.desktop</file> <link href=\"http://developer.gnome.";
-#~ "org/desktop-entry-spec/\">aquÃ</link>."
+#: C/beginner.js.page:17(title)
+msgid "0 Beginner's Tutorials and samples"
+msgstr "0. Tutoriales para principiantes y ejemplos"
 
-#~ msgid ""
-#~ "The example shows you the minimum requirements for a <code>.desktop</"
-#~ "code> file."
-#~ msgstr ""
-#~ "El ejemplo muestra los requerimientos mÃnimos de un archivo <code>."
-#~ "desktop</code>."
+#: 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 ""
+"En estos tutoriales y ejemplos se usa JavaScript y GTK+. Estos tutoriales y "
+"ejemplos dan por supuesto que està familiarizado con la sintaxis de "
+"JavaScript. Si no es asÃ, lea <link href=\"http://eloquentjavascript.net/";
+"contents.html\">Eloquent JavaScript</link> o su manual de JavaScript "
+"preferido."
 
-#~ msgid "Now let's go through some parts of the <code>.desktop</code> file."
-#~ msgstr "Ahora se verÃn algunas partes del archivo <code>.desktop</code>."
+#: C/beginner.js.page:30(p)
+#, fuzzy
+#| msgid "Copy and paste the code into <var>filename</var>.vala"
+msgid "Copy and paste the code into <var>filename</var>.js"
+msgstr "Copie y pegue el cÃdigo en <var>nombre_archivo</var>.vala"
 
-#~ msgid "Line 4: Name of the application"
-#~ msgstr "LÃnea 4: nombre de la aplicaciÃn"
+#: C/beginner.js.page:32(screen)
+#, no-wrap
+#| msgid "./<var>filename</var>"
+msgid "gjs <var>filename</var>.js"
+msgstr "gjs <var>nombre_archivo</var>.js"
 
-#~ msgid "Line 5: Specifies a short description of the item"
-#~ msgstr "LÃnea 5: especifica una breve descripciÃn del elemento"
+#: C/beginner.c.page:23(p)
+#| msgid "The Vala programming language:"
+msgid "The C programming language"
+msgstr "El lenguaje de programaciÃn C:"
 
-#~ 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 ""
-#~ "LÃnea 6: especifica un comando que ejecutar cuando se elige el elemento "
-#~ "en el menÃ. En este ejemplo, Âexec sÃlo indica dÃnde encontrar el archivo "
-#~ "<code>helloworld.js</code> y el archivo se hace cargo del resto."
+#: C/audio-player.vala.page:8(desc)
+msgid "Coming soon..."
+msgstr "PrÃximamente..."
 
-#~ msgid ""
-#~ "Line 8: Specifies whether the command in the Exec key runs in a terminal "
-#~ "window."
-#~ msgstr ""
-#~ "LÃnea 8: especifica si el comando del campo ÂExec se ejecuta en una "
-#~ "ventana de la terminal."
+#: C/audio-player.vala.page:17(title)
+msgid "3 Audio Player"
+msgstr "3. Reproductor de sonido"
 
-#~ 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 ""
-#~ "Si quiere que su archivo <code>.desktop</code> forme parte del sistema, "
-#~ "copie su archivo <code>.desktop</code> a la carpeta ~/.local/share/"
-#~ "applications."
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: C/index.page:0(None)
+msgid "translator-credits"
+msgstr ""
+"Daniel Mustieles <daniel mustieles gmail com>, 2011-2012\n"
+"Jorge GonzÃlez <jorgegonz svn gnome org>, 2011"
 
-#~ 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 ""
-#~ "Para incluir su aplicaciÃn en la categorÃa correcta, debe aÃadir las "
-#~ "categorÃas necesarias a la lÃnea ÂCategoriesÂ. Puede encontrar mÃs "
-#~ "informaciÃn sobre las distintas categorÃas en la <link href=\"http://";
-#~ "standards.freedesktop.org/menu-spec/latest/apa.html\">especificaciÃn del "
-#~ "menÃ</link>."
+#~ msgid "thing1"
+#~ msgstr "thing1"
 
-#~ 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 ""
-#~ "En este ejemplo se ha usado un icono existente. Para usar un icono "
-#~ "personalizado, necesita un archivo .svg con su icono y guardarlo en /usr/"
-#~ "share/icons/hicolor/scalable/apps. Escriba el nombre del archivo del "
-#~ "icono en el archivo .desktop, en la lÃnea 7. Puede obtener mÃs "
-#~ "informaciÃn sobre los iconos en <link href=\"http://library.gnome.org/";
-#~ "admin/system-admin-guide/stable/themes-11.html.en\">Instalar iconos para "
-#~ "temas</link>, <link href=\"https://live.gnome.org/GnomeGoals/AppIcon";
-#~ "\">Instalar iconos para temas</link> y <link href=\"http://freedesktop.";
-#~ "org/wiki/Specifications/icon-theme-spec\">en freedesktop.org: "
-#~ "Specifications/icon-theme-spec</link>."
+#~ msgid "A widget that emits a signal when clicked"
+#~ msgstr "Un widget que emite una seÃal cuando se pulsa sobre Ãl"
+
+#~| msgid "Sample Vala code"
+#~ msgid "Sample code"
+#~ msgstr "CÃdigo de ejemplo"
 
 #~ 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:"
+#~ "<placeholder-1/> The next two lines add an Open and a Close button to the "
+#~ "dialog. Notice that we are using stock button names from Gtk, instead of "
+#~ "manually typing \"Cancel\" or \"Open\". The advantage of using stock "
+#~ "names is that the button labels will already be translated into the "
+#~ "user's language. The second argument to the add_button() method is a "
+#~ "value to identify the clicked button. We use predefined values provided "
+#~ "by GTKmm here, too. The next two lines restrict the Open dialog to only "
+#~ "display files which can be opened by Gtk::Image. A filter object is "
+#~ "created first; we then add all kinds of files supported by Gdk::Pixbuf "
+#~ "(which includes most image formats like PNG and JPEG) to the filter. "
+#~ "Finally, we set this filter to be the Open dialog's filter. Glib::RefPtr "
+#~ "is a smart pointer used here, that makes sure that the filter is "
+#~ "destroyed when there is no reference to it anymore. dialog.run displays "
+#~ "the Open dialog. The dialog will wait for the user to choose an image; "
+#~ "when they do, dialog.run will return the value Gtk::RESPONSE_ACCEPT (it "
+#~ "would return Gtk::RESPONSE_CANCEL if the user clicked Cancel). The switch "
+#~ "statement tests for this. We hide the Open 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. Assuming that the user did click Open, the next line loads the file "
+#~ "into the Gtk::Image so that it is displayed."
 #~ msgstr ""
-#~ "Cuando termine de escribir el archivo .desktop, debe cambiarle los "
-#~ "permisos para permitir ejecutar el archivo como un programa. Para "
-#~ "hacerlo, vaya a la carpeta que contiene el archivo .desktop, pulse con el "
-#~ "botÃn derecho sobre el archivo, elija ÂPropiedadesÂ, pestaÃa ÂPermisos y "
-#~ "marque la casilla ÂEjecutarÂ:"
-
-#~ msgid "Help develop"
-#~ msgstr "Ayudar al desarrollo"
+#~ "<placeholder-1/> Las dos lÃneas siguientes aÃaden los botones ÂAbrir y "
+#~ "ÂCerrar al diÃlogo. Tenga en cuenta que se estÃn usando nombres de "
+#~ "botones del almacÃn de GTK+, en vez de escribir manualmente ÂCancelar o "
+#~ "ÂAbrirÂ. La ventaja de usar nombres del almacÃn es que las etiquetas de "
+#~ "los botones ya estÃn traducidas al idioma del usuario. El segundo "
+#~ "argumento del mÃtodo Âadd_button()Â es un valor para identificar el botÃn "
+#~ "pulsado. Aquà tambiÃn se usan valores predefinidos, proporcionados por "
+#~ "GTKmm. Las dos lÃneas siguientes restringen el diÃlogo ÂAbrir para que "
+#~ "sÃlo muestre los archivos que se pueden abrir con ÂGtk::imageÂ. Primero se "
+#~ "crea un filtro de objetos; luego se aÃaden al filtro todos los tipos de "
+#~ "archivos soportados por Gdk::Pixbuf (que incluye la mayorÃa de formatos "
+#~ "de imagen como PNG y JPG). Por Ãltimo, se asocia este filtro con el "
+#~ "diÃlogo ÂAbrirÂ. Glib::RefPtr es un puntero inteligente usado aquà para "
+#~ "asegurarse de que el filtro se destruye cuando ya no se hace referencia a "
+#~ "Ãl. Âdialog.run muestra el diÃlogo ÂAbrirÂ. El diÃlogo esperarà a que el "
+#~ "usuario elija una imagen; cuando lo haga, Âdialog.run devolverà el valor "
+#~ "Gtk::RESPONSE_ACCEPT (devolverÃa Gtk::RESPONSE_CANCEL si el usuario "
+#~ "pulsara ÂCancelarÂ). La sentencia Âswitch comprueba esto. Se oculta el "
+#~ "diÃlogo ÂAbrir ya que no se necesita mÃs. El diÃlogo se ocultarÃa de "
+#~ "todos modos, ya que sÃlo es una variable local, y se destruye (y, por lo "
+#~ "tanto, se oculta) cuando termina su objetivo. Asumiendo que el usuario "
+#~ "pulsà ÂAbrirÂ, la siguiente lÃnea carga el archivo en la Gtk::Image y se "
+#~ "muestra."
 
 #~ msgid ""
-#~ "The <app>GNOME Developer Tutorials</app> are developed and maintained by "
-#~ "a volunteer community. You are welcome to participate."
+#~ "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."
 #~ msgstr ""
-#~ "Los <app>Tutoriales del desarrollador de GNOME</app> los desarrolla y los "
-#~ "mantiene una comunidad de voluntarios. Si quiere participar es bienvenido."
+#~ "Para que el programa funcione se debe importar una biblioteca de "
+#~ "introspecciÃn de GObject. Para que funcione la IU se necesita GTK+, que "
+#~ "se importa al inicio, por lo que està en uso en todos los sitios."
 
 #~ 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>."
+#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
 #~ msgstr ""
-#~ "Si quiere <link href=\"https://live.gnome.org/DocumentationProject/Tasks/";
-#~ "DeveloperDocs\">contribuir al desarrollo de los <app>Tutoriales del "
-#~ "desarrollador de GNOME</app></link>, puede ponerse en contacto con los "
-#~ "desarrolladores usando <link href=\"https://cbe005.chat.mibbit.com/?";
-#~ "url=irc%3A%2F%2Firc.gnome.org%2Fdocs\">irc</link>, o mediante la <link "
-#~ "href=\"http://mail.gnome.org/mailman/listinfo/gnome-doc-devel-list";
-#~ "\">lista decorreo</link>."
+#~ "@@image: 'media/guitar-tuner.png'; md5=f0b7ed4cdc2729d2d0f4d38b829db61e"
 
 #~ msgid "This a basic Hello World application done with JavaScript and GTK+."
 #~ msgstr ""
@@ -6820,83 +8219,6 @@ msgstr ""
 #~ "la seÃal. A veces hay otros argumentos relativos a la seÃal, pero "
 #~ "<em>clicked</em> no tiene ninguno."
 
-#~ msgid ""
-#~ "The next two lines add an <em>Open</em> and a <em>Close</em> button to "
-#~ "the dialog."
-#~ msgstr ""
-#~ "Las siguientes dos lÃneas aÃaden un botÃn <em>Abrir</em> y <em>Cerrar</"
-#~ "em> en el diÃlogo."
-
-#~ 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 ""
-#~ "El segundo argumento del mÃtodo <code>add_button()</code> es un valor "
-#~ "para identificar el botÃn pulsado. Aquà tambiÃn se usan valores "
-#~ "predefinidos proporcionados por GTKmm."
-
-#~ msgid ""
-#~ "The next two lines restrict the <gui>Open</gui> dialog to only display "
-#~ "files which can be opened by <code>Gtk::Image</code>. A filter object is "
-#~ "created first; we then add all kinds of files supported by <code>Gdk::"
-#~ "Pixbuf</code> (which includes most image formats like PNG and JPEG) to "
-#~ "the filter. Finally, we set this filter to be the <gui>Open</gui> "
-#~ "dialog's filter."
-#~ msgstr ""
-#~ "Las dos liÌneas siguientes restringen el diaÌlogo <gui>Abrir</gui> para que "
-#~ "soÌlo muestre archivos que se puedan abrir con <code>Gtk::Image</code>. "
-#~ "Primero se crea un objeto de filtro; luego se anÌaden los tipos de "
-#~ "archivos soportados por el <code>Gdk::Pixbuf</code> (que incluye la "
-#~ "mayoriÌa de los formatos de imagen como PNG y JPEG) al filtro. Por uÌltimo, "
-#~ "se establece que este filtro sea el filtro del diaÌlogo <gui>Abrir</gui>."
-
-#~ 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 ""
-#~ "<code>Glib::RefPtr</code> es un puntero inteligente usado aquà que se "
-#~ "asegura de que el filtro se destruye cuando ya no se hace ninguna "
-#~ "referencia a Ãl."
-
-#~ msgid ""
-#~ "<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog "
-#~ "will wait for the user to choose an image; when they do, <code>dialog."
-#~ "run</code> will return the value <code>Gtk::RESPONSE_ACCEPT</code> (it "
-#~ "would return <code>Gtk::RESPONSE_CANCEL</code> if the user clicked "
-#~ "<gui>Cancel</gui>). The <code>switch</code> statement tests for this."
-#~ msgstr ""
-#~ "<code>dialog.run</code> muestra el diÃlogo <gui>Abrir</gui>. El diÃlogo "
-#~ "esperarà a que el usuario seleccione una imagen; cuando lo haga, "
-#~ "<code>dialog.run</code> devolverà el valor <code>Gtk::RESPONSE_ACCEPT</"
-#~ "code> (devolverÃa <code>Gtk::RESPONSE_CANCEL</code> si el usuario pulsara "
-#~ "<gui>Cancel</gui>). La sentencia <code>switch</code> comprueba esto."
-
-#~ 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 ""
-#~ "Asumiendo que el usuario pulsà <gui>Abrir</gui>, la siguiente lÃnea carga "
-#~ "el archivo en la <code>Gtk::Image</code>, por lo que se muestra."
-
-#~ 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."
-#~ msgstr ""
-#~ "En la Ãltima lÃnea de este mÃtodo se oculta el diÃlogo <gui>Abrir</gui> "
-#~ "porque ya no se necesita mÃs. El diÃlogo se ocultarà de todos modos, ya "
-#~ "que sÃlo es una variable local, y se destruye (y por lo tanto se oculta) "
-#~ "cuando el Ãmbito termina."
-
-#~ msgid ""
-#~ "If you run into problems with the tutorial, compare your code with this "
-#~ "<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
-#~ msgstr ""
-#~ "Si tiene problemas con este tutorial, compare su coÌdigo con este <link "
-#~ "href=\"image-viewer/image-viewer.cc\">coÌdigo de referencia</link>."
-
 #~ msgid "What you should know before you jump in"
 #~ msgstr "Quà deberÃa saber antes de empezar"
 
@@ -6923,13 +8245,6 @@ msgstr ""
 #~ msgid "Third step..."
 #~ msgstr "Tercer paso..."
 
-#~ msgid ""
-#~ "You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</"
-#~ "link>"
-#~ msgstr ""
-#~ "Puede resultarle Ãtil la referencia de la API de <link href=\"http://";
-#~ "valadoc.org/gtk+-3.0/\">gtk+-3.0</link>"
-
 #~ msgid "XXXX"
 #~ msgstr "XXXX"
 



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